SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
AAをつくろう!
佐藤 貴海
@リブセンスTechNight 1/28
@tkm2261
自己紹介
名前: @tkm2261
専門: 経営工学/数理最適化
所属: 株式会社ブレインパッド 2年目
お仕事: 分析何でも屋さん (研究開発)
趣味: 自転車
自宅 ⇒
過去にやったこと
仕事の内容は大体話せないので・・・
過去にやったこと
基本的にネタ要員
本題
みなさん、AAはご存知ですか?
AA(アスキーアート)
アスキーアート(ASCII art)とは、
プレーンテキストによる視覚的表現
技法のこと。テキストアート、活字
アート、文字絵などとも呼ばれる。し
ばしばAAと略される。ASCIIでない文
字コードのテキストアートも日本語で
は「アスキーアート」と呼ぶ。
引用 Wikipedia
確認されている最古のAA
(1898年)
引用: http://www.roysac.com/asciiarthistory.html
でも、こんなんじゃなくて・・・
こういう方がいいよね!
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
どうやって作ってるか知ってますか?
そ
ん
な
ん
最
近
は
自
動
の
ソ
フ
ト
と
か
あ
ん
だ
ろ
?
全部職人芸です
http://www.geocities.jp/mata_ri_watch/salon
_01.html
詳しく知りたい方はこちら
• クマでも分かるトレースAAの作り方
http://dokoaa.com/trace/
• ゼロから始めるAA講座
http://www.geocities.jp/mata_ri_watch/salon_01.html
∩___∩
| ノ ヽ
/ ● ● | クマ──!!
| ( _●_) ミ
彡、 |∪| 、`\
/ __ ヽノ /´> )
(___) / (_/
| /
| /\ \
| / ) )
∪ ( \
\_)
やる夫スレの作者はどうしてるの?
2chにはAAに語らせて、
漫画みたいなの作るスレがあります
/ ̄ ̄\
/ ─ ─\
| (●)(●)|
____. .| (__人__) |
/ \ ` ⌒´ ノ
/ ─ ─\ .}
/ (●) (●) \ }
| (__人__) | ノ.ヽ
/ ∩ノ ⊃ /∩ノ ⊃| |
( \ / _ノ | |/ _ノ | |
.\ “ /__| | /__| |
\ /___ //___ /
歴史系の作者はコイツ何者だってレベルの知識量
マンガ日本の歴史のAA版 (地図も全部AA)
やる夫がフューラーになるようです (ヒトラー)
やる夫は鎌倉幕府を成立させるようです (鎌倉時代)
やる夫が徳川家康になるようです (安土桃山)
AAで学ぶ南北戦争への道 (アメリカ)
やる夫が『梅松論』を語るそうです。 (南北朝)
etc…
やる夫スレの作者はどうしてるの?
方法1: マルチラインテンプレートを使う
過去作成された膨大なAAがインデックスされている
やる夫スレの作者はどうしてるの?
(´д`)Editというツールで閲覧・使用が可能
編集画面 インデックス
AA確認画面
やる夫スレの作者はどうしてるの?
方法2: AA作成依頼を出す
結局、職人芸
こんな現状を救うべく
. . .... ..: : :: :: ::: :::::: ::::::::::: * 。+ ゚ + ・
∧ ∧. _::::。・._、_ ゚ ・
/:彡ミ゛ヽ;)(m,_)‐-(<_,` )-、 *
/ :::/:: ヽ、ヽ、 ::iー-、 .i ゚ +
/ :::/;;: ヽ ヽ ::l ゝ ,n _i l
 ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄E_ )__ノ ̄
ちょっと、立ち上がってみた
AAをつくろう!
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
理想
必要ステップ
STEP1 : 画像処理
STEP2 : 評価関数の定義
STEP3 : 最適化
STEP4 : 出力
使用言語: Python
画像処理:OpenCV、PIL
STEP1 : 画像処理
AAは文字(白黒)しか表現できないので以下で処理
グレースケール(0-1値化) エッジ抽出
お好みでどちらかを使用
STEP1 : 画像処理
文字も画像なので、
ピクセル単位の色の有無を予め保存
PILのImageFont.truetypeでフォントを指定して
getsize関数で取得可能
STEP2 : 評価関数の定義
作ったAAがどれほど画像に似ているかを評価
とりあえず、
ピクセル単位の色の有無の一致度を使用
10
01
vs. 11
01
一致度: 3
STEP2 : 評価関数の定義
作ったAAがどれほど画像に似ているかを評価
とりあえず、
ピクセル単位の色の有無の一致度を使用
10
01
vs. 11
01
一致度: 3
人間の目には補完機能があるため、
0を1と外した場合はより重いペナルティを課した
STEP3 : 最適化
評価関数が決まったので、
より一致度の高いAAを作る
今回は遺伝的アルゴリズム
生物進化の仕組みを模倣して、より良い解を見つけるアルゴリズム
引用: http://www.sist.ac.jp/~kanakubo/research/evolutionary_computing/genetic_algorithms.html
選択淘汰: 強い個体(良い解)が
生き残りやすい
交叉: 次世代を作る
突然変異: 突然変異種を作る
最適化分野で最も中2心をくすぐるアルゴリズム
つまり、
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
ミクさんをいっぱいつくって
交配 させて・・・
交配 させて・・・
何世代も
マッチョ(優秀)な個体を作り上げるアルゴリズム
動的計画法したほうが良いかも
あるピクセルの矩形に対する、
評価関数を最大にする文字は常に一定なので
動的計画法でもいけるかも・・・
ただ、考えるのが面倒くさいので
一度計算した評価関数をキャッシュするだけにした
まずは初期解
乱数で始祖ミクさん達を作っても良いが・・・
さすがに何が何だかわからない
とりあえず、空白検知
空白地帯を全角と半角スペースで埋めると・・・
※半角スペース2連続は禁止
ミクさんぽい!
近傍探索もやっておく
配置文字のピクセルがズレない同型の文字で
評価関数が最大の文字を選ぶと
お前が始祖ミクだ!
ネットに転がってる
AA自動生成ツールはこんな感じで
やってそう
ここからが頑張りドコロ
交配の定義
GAの肝である、交叉を考える
交配の定義
ミクさん♂
今回はこんな感じにしてみた
ミクさん♀
ミクさん Jr.
行単位で、ランダムに合成
その他細かいところを
ゴニョゴニョやって・・・
完成!
・・・が
死ぬほど遅い
並列計算は実施済み
高速化しよう!
今回はPythonにJITコンパイラを突っ込む
Numbaを選択
その他の選択肢
候補 今回諦めた理由
Cython
cdefとか結構手を入れるのでPythonに戻す
のが面倒。pyximportも面倒
C拡張 C言語は極力触りたくない
PyPy numpyサポートが怪しい。いつか触るかも
Julia
なるべくPythonでやりたい。これでダメなら入
門するかも。
かなり早くなった
10倍ぐらいは速くなった気がする
(力尽きて未計測)
ホントに完成!
GIFにしてみた
グレースケール版
GIFにしてみた
エッジ抽出版
現実
理想と現実のギャップ
現実
__ _
/iiヘ,, ‐::----::‐.._ ///ヘ
,/-:..´: : : : : : : : : : :::///_. ヾ\
/::/: : : : : : : : : : : : ///|: : ヽ//
/// : : : ヘ : : i : : : :\ヾヽ|:: : ::×
/ /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ
/{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ
/: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ
/: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ
/: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ
/: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、
/: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、
/: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、
/: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ',
./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ',
/: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :',
,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ',
i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :',
{: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :|
',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :|
ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::|
\: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :|
` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: |
ヾ三彡 >、`ー---´: : : : : : : : : : /: :/
{:`ー\: : : : : : : : : : : : : /{/
`ー- `ー,, __ ,, -´
理想
結 論
人間すごい!
人間すごい!
• 自動で作ったAAは何か不自然
• 人間の目は画像 ⇒ AAの時に
デフォルメと取捨選択を行っている
• 人間はなるべく「レ」や「|」といった文字で
境界をはっきりさせている
この仕組は評価関数次第なので
人間の感覚に近い関数を設計できる人
大募集!
ご清聴ありがとうございました!

Contenu connexe

Tendances

冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
 

Tendances (20)

WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみたWASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
 
PHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったことPHPで大規模ブラウザゲームを開発してわかったこと
PHPで大規模ブラウザゲームを開発してわかったこと
 
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
 
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
 
SDL2の紹介
SDL2の紹介SDL2の紹介
SDL2の紹介
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
冬のLock free祭り safe
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
決定森回帰の信頼区間推定, Benign Overfitting, 多変量木とReLUネットの入力空間分割
 
ラベル付けのいろは
ラベル付けのいろはラベル付けのいろは
ラベル付けのいろは
 
計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング計算機アーキテクチャを考慮した高能率画像処理プログラミング
計算機アーキテクチャを考慮した高能率画像処理プログラミング
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
 
レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方
 
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
静的型つき組版処理システムSATySFi @第61回プログラミング・シンポジウム
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
「日本語LaTeX」が多すぎる件について
「日本語LaTeX」が多すぎる件について「日本語LaTeX」が多すぎる件について
「日本語LaTeX」が多すぎる件について
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 

En vedette

30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座
Sakiyama Kei
 

En vedette (10)

High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
Data Science Bowl 2017 Winning Solutions Survey
Data Science Bowl 2017Winning Solutions SurveyData Science Bowl 2017Winning Solutions Survey
Data Science Bowl 2017 Winning Solutions Survey
 
Word2vecで大谷翔平の二刀流論争に終止符を打つ!
Word2vecで大谷翔平の二刀流論争に終止符を打つ!Word2vecで大谷翔平の二刀流論争に終止符を打つ!
Word2vecで大谷翔平の二刀流論争に終止符を打つ!
 
30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座
 
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
NIPS2016論文紹介 Riemannian SVRG fast stochastic optimization on riemannian manif...
 
Quoraコンペ参加記録
Quoraコンペ参加記録Quoraコンペ参加記録
Quoraコンペ参加記録
 
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entriesIcml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
Icml2015 論文紹介 sparse_subspace_clustering_with_missing_entries
 
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
 
IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習IIBMP2016 深層生成モデルによる表現学習
IIBMP2016 深層生成モデルによる表現学習
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 

Plus de Takami Sato (6)

Kaggle Santa 2019で学ぶMIP最適化入門
Kaggle Santa 2019で学ぶMIP最適化入門Kaggle Santa 2019で学ぶMIP最適化入門
Kaggle Santa 2019で学ぶMIP最適化入門
 
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision TreeNIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
 
Kaggle&競プロ紹介 in 中田研究室
Kaggle&競プロ紹介 in 中田研究室Kaggle&競プロ紹介 in 中田研究室
Kaggle&競プロ紹介 in 中田研究室
 
Overview of tree algorithms from decision tree to xgboost
Overview of tree algorithms from decision tree to xgboostOverview of tree algorithms from decision tree to xgboost
Overview of tree algorithms from decision tree to xgboost
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門セクシー女優で学ぶ画像分類入門
セクシー女優で学ぶ画像分類入門
 

AAをつくろう!

  • 2. 自己紹介 名前: @tkm2261 専門: 経営工学/数理最適化 所属: 株式会社ブレインパッド 2年目 お仕事: 分析何でも屋さん (研究開発) 趣味: 自転車 自宅 ⇒
  • 8. こういう方がいいよね! __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´
  • 11. 詳しく知りたい方はこちら • クマでも分かるトレースAAの作り方 http://dokoaa.com/trace/ • ゼロから始めるAA講座 http://www.geocities.jp/mata_ri_watch/salon_01.html ∩___∩ | ノ ヽ / ● ● | クマ──!! | ( _●_) ミ 彡、 |∪| 、`\ / __ ヽノ /´> ) (___) / (_/ | / | /\ \ | / ) ) ∪ ( \ \_)
  • 12. やる夫スレの作者はどうしてるの? 2chにはAAに語らせて、 漫画みたいなの作るスレがあります / ̄ ̄\ / ─ ─\ | (●)(●)| ____. .| (__人__) | / \ ` ⌒´ ノ / ─ ─\ .} / (●) (●) \ } | (__人__) | ノ.ヽ / ∩ノ ⊃ /∩ノ ⊃| | ( \ / _ノ | |/ _ノ | | .\ “ /__| | /__| | \ /___ //___ /
  • 13. 歴史系の作者はコイツ何者だってレベルの知識量 マンガ日本の歴史のAA版 (地図も全部AA) やる夫がフューラーになるようです (ヒトラー) やる夫は鎌倉幕府を成立させるようです (鎌倉時代) やる夫が徳川家康になるようです (安土桃山) AAで学ぶ南北戦争への道 (アメリカ) やる夫が『梅松論』を語るそうです。 (南北朝) etc…
  • 18. こんな現状を救うべく . . .... ..: : :: :: ::: :::::: ::::::::::: * 。+ ゚ + ・ ∧ ∧. _::::。・._、_ ゚ ・ /:彡ミ゛ヽ;)(m,_)‐-(<_,` )-、 * / :::/:: ヽ、ヽ、 ::iー-、 .i ゚ + / :::/;;: ヽ ヽ ::l ゝ ,n _i l  ̄ ̄ ̄(_,ノ  ̄ ̄ ̄ヽ、_ノ ̄ ̄E_ )__ノ ̄
  • 21. __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ 理想
  • 22. 必要ステップ STEP1 : 画像処理 STEP2 : 評価関数の定義 STEP3 : 最適化 STEP4 : 出力 使用言語: Python 画像処理:OpenCV、PIL
  • 26. STEP2 : 評価関数の定義 作ったAAがどれほど画像に似ているかを評価 とりあえず、 ピクセル単位の色の有無の一致度を使用 10 01 vs. 11 01 一致度: 3 人間の目には補完機能があるため、 0を1と外した場合はより重いペナルティを課した
  • 30. __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ ミクさんをいっぱいつくって
  • 47. その他の選択肢 候補 今回諦めた理由 Cython cdefとか結構手を入れるのでPythonに戻す のが面倒。pyximportも面倒 C拡張 C言語は極力触りたくない PyPy numpyサポートが怪しい。いつか触るかも Julia なるべくPythonでやりたい。これでダメなら入 門するかも。
  • 53. 理想と現実のギャップ 現実 __ _ /iiヘ,, ‐::----::‐.._ ///ヘ ,/-:..´: : : : : : : : : : :::///_. ヾ\ /::/: : : : : : : : : : : : ///|: : ヽ// /// : : : ヘ : : i : : : :\ヾヽ|:: : ::× / /: : : 」_ ヽ: ::|ヽ_:_:: : `,_ヽ',: : : : :ヽ /{: : :´/ _` ヽ::i´ \`: ::|::::i ',: : : : : ヽ /: :!: : /イ{゜:i ヽiイiテヾ: : :i::::|:ヘ: : : : : : ヽ /: : :.!:./:::代ソ 弋::ソ}|ヽ:|∠ |: : : : : : :ヽ /: : : :|V |:::ト, 、_ .イ: |≦-,__',: : : : : : : :ヽ /: : : : ,' ヽ| >-、-t ´ |::/|´:⌒:`',: : : : : : : : `、 /: : : : ,' /::::::「ii | |// i⌒i>::',: : : : : : : : ::`、 /: : : : : i ./:::}:::::| ii |´\ /i01.i:::::::',: : : : : : : : : :`、 /: : : : : ::{ /:::::|::::::| ii |`iミY:::r-´ヘ::::::》: : : : : : : : : : ', ./: : : : : : : | \_|:::::::| ii |:::} }ヘ:::::::i/ ',: : : : : : : : : : ', /: : : : : : : : | |:::::::| ii/_ヽ∠ヽ`、:::ヘ´」',: : : : : : : : : : :', ,': : : : : : : : : :', |::::::∨ーt´--`-}::::;::ヽ:|',: : : : : : : : : : : ', i: : : : : : : : : : :\ \/:::::/ |;:r-:::i:! i: : : : : : : : : : : :', {: : : : : : : : : : :ヽ:\ /:::::::/ |:|!;i|:::| |: : : : : : : : : : : : :| ',: : : : : : : : : : : :\___./__:::::,' ,':|iiii|:::|:|: : : : : : : : : : : : :| ヽ: : : : : : : : : : : : : : : : :/::,' /:::|iiiii|::::|: : : : : : : : : : : : ::| \: : : : :\: : : : : : /::::ヽ{ /:::::|iiiiii|./: : : : : : : : : : : |: :| ` - ,,_二==-{:::::::::::::::} ___/::::-=二´: : : : : : : : : : : :ノ: | ヾ三彡 >、`ー---´: : : : : : : : : : /: :/ {:`ー\: : : : : : : : : : : : : /{/ `ー- `ー,, __ ,, -´ 理想
  • 56. 人間すごい! • 自動で作ったAAは何か不自然 • 人間の目は画像 ⇒ AAの時に デフォルメと取捨選択を行っている • 人間はなるべく「レ」や「|」といった文字で 境界をはっきりさせている