見出し画像

存在しない東海道五十三次を探す

私は東海道五十三次のファンです。どういう経緯でファンになったのか覚えていませんが、学生時代に自転車旅行の計画を練っていたらいつのまにか好きになっていたような気がします。東海道って旅程の1つの基準になりやすい。


画像2
いろんな地形

そもそも東海道五十三次がなにかというと、江戸時代に整備された東海道にある53の宿場を指しています(参考:Wikipedia)。ちなみに起点となる東京都の日本橋、終点となる京都府の三条大橋をいれると55個になります。また歌川広重の浮世絵作品としても有名です。令和となった今でも宿場があった場所を周る旅好きは多いらしい。好きと言いつつ私が知っているのはこれぐらいです。


画像6
大昔に北海道を縦断したときの写真

ただ実際に東海道五十三次を巡るとなると大変です。私自身も時間やお金の問題で自転車旅行はけっきょく諦めたのでした。でも最近はGoogleマップをはじめとする地図アプリを使うことで、視覚的にはある程度の旅行ができてしまうのです。宿場の位置情報はネットにも載っているので地図上で検索すれば一瞬。ちなみに個人的なオススメは現地人が書き込んだであろう関係なさげなクチコミを見ることです(散歩中の犬のどアップ写真とか)。


それでもまあまあ楽しいのですがなんか物足りないっす。






存在しない東海道五十三次を見つけたら楽しいかも?




存在しない東海道五十三次を見つけるには

私は地図や衛生写真を眺めるだけでも楽しめるタイプなので、無い土地を見るのはもっと楽しいかもしれません。無いので。言うなれば54個目の存在しない宿場を探す感じでしょうか(東海道五十四次?)。しかし、存在しない宿場は見つけようがありません。存在しないので。

ではどうしましょうか。存在しないなら生成してみましょう。


存在しない東海道五十三次.001

今回は数あるAI技術の中からGAN(敵対的生成ネットワーク)というものを使用します。AIにもりんごとみかんを判別したり人の書いた文章の続きを考えてくれたりと色々なジャンルがありますが、GANは生成モデルと言われる中の1つです。ざっくり例を挙げると、大量の画像をAIに学習させるとその特徴を踏まえた新しい画像を生成してくれるようなイメージです(ほんとにざっくり説明)。

今回は東海道五十三次の位置情報を用いて収集した空中画像をAIに学習させてみます。存在しない東海道五十三次は生まれるのでしょうか。


学習データを集める

ではどうやって東海道五十三次の空中画像を集めるかですが、今回は国土地理院のサービスを利用させてもらいます。地理院タイルという国土地理院が提供しているデータベースの中から日本全国の空中写真を見ることができるのです。よくある地図アプリのように地名で検索することも可能です。

ただし東海道五十三次の宿場を1つずつ検索して画像保存していくのはけっこう大変です。そこで宿場の位置情報(緯度・経度)を入力として自動で画像を収集してくれるプログラムを作りました。


スクリーンショット 2022-05-03 21.20.21
ブラウザ上で動かせる

宿場の位置情報が書かれたCSVファイルを読み込み、指定した要件に合わせて地理院タイルから自動で画像を収集してくれる仕組みです。画像はZIPファイルとしてGoogleDriveにも保存してくれます。ちなみに日本橋と三条大橋も入れているので全部で55枚の画像となります(記事TOPの画像がそれ)。ただ機械学習するにはあまりにも画像が少なすぎるので、線形補間により宿場間の画像も取得しデータを水増しする機能も入れました。


ざっくりですが補間をする際のイメージ図です。今回は宿場間に8個分の補間を行なったので、最終的に487枚の画像になりました。単なる線形補間なので街道をちゃんとなぞっているわけではないですが、何となく合っていればヨシということにしておきます。


画像3
おそらく日本橋(東京)から三島(静岡)あたりまで

長いので始めの100枚分だけですが画像を繋げるとこんな感じになります。途中に出てくる海は相模湾っぽい。これでいつでも空中旅行ができます。


無いを生成してみた

データ数量をある程度増やすことができたので、次はGANを使って東海道の空中写真を学習させていきます。

ちなみに学習用のプログラムはGoogle Colab Proというオンラインの実行環境で動かしました。機械学習(とりわけDeep Learningと呼ばれるもの)はGPUなどのマシンスペックが良いほど学習速度や成果物のクオリティが良くなると言われています。Colab Proは一部使用制限があったり月額利用料がかかるものの、そのお値段以上に良いGPUが使えるのでよく使わせてもらってます(ステマじゃないよ)。


「○時間学習させればOK!」的な分かりやすい基準はないのですが、とりあえず今回は5日間ほどGANで学習させてみました。ちなみに機械学習あるあるなのですが、学習中はそっちの状況が気になって他作業の集中力が半減すると言われています(わたし調べ)。上のGIFは学習中の様子なのですが、だんだんと出力画像が鮮明になっていく様子がわかるでしょうか。

ここまで長い道のりでしたが(旅だけに)、存在しない東海道五十三次を生成できるようになりました。今回はいくつか気になったものを抜粋して紹介していきます。ついでに一番良さげな写真を54個目の新しい宿場として勝手に認定したいと思います。


1枚目はこちらの写真。山の麓に町が広がっているようですが……左下から伸びている道路の先がグラウンドのようになっています。道路から直にグラウンド、それも山の中ってありますか? しかもその先にも道が続いているらしい。ほんとにあったらごめんなさい。廃校の跡地をそのまま道路にしたのだろうか。


次の写真はこちら。田園風景のようですが左上にあるのは海っぽいです。海と田んぼってこんなに隣接するものですか?なんならちょっと同化している気がします。微妙に沈んでますし。ただ、田園風景と海の景色が同時に楽しめると考えるとなかなか良い町ですね。


お次はこちら。なんか森の広がり方がすごい。建物の大きさや道路の広さ的にまあまあしっかりとした街みたいですが、「人間の都合なんて知らねえよ」的に森林が侵食している気がします(ほんとにあったらごめんなさい)。自然の力ってすごい。


次も森林の侵食シリーズです。内陸から伸びてきた森が砂浜でばーっと広がって海まで到達している。それでもまだ足りないのか海中にも木が生えているようにも見えます。自然の力ってすごいその2。


こちらはどこの写真でしょうか。工場地帯? 車両基地のようにも見えます。実在する地域の面影もたぶん残っているのでピンと来る方いたら教えてください。大量発生している薄青色の建物も気になりますが、特におかしいのは中央右寄りに並んでいる線路みたいなやつでしょうか。現実にこんな並び方していても使い道ないのでは……両脇の道路に押されてギュウギュウになったのかも。リアルだとありえませんがこれは実在しない場所なのでそういうのもあり。


以上なんか面白いなと思った写真を紹介してきましたが、最後にベストオブ存在しないを決めたいと思います(そんなに期待してはいけません)。あわよくば東海道五十三次の新しい宿場となってほしいところですが認めてもらえるでしょうか。写真はこちら!




東海道五十四次(仮)

なんだこれ。運河っぽい川? の真ん中へと道路が伸びていますが途中から水に沈んでいます。意味もなくただ沈んでいる可能性もありますが、この先に水中の街が広がっているのではと考えるとちょっとワクワクします。宿場というのはいわゆる旅路の中継地点ですから、陸路と海路の境界に位置しているのはなにかしら意味があるような気もしてきますね。海に突入するわけですから旅人もちょっと一息いれたいはず。

写真からあふれ出す妄想のワクワク感とこじつけによる存在価値により、東海道五十三次の新しい宿場として認定! おめでとうございます。




少しずつパラメーターを変えることでグニョグニョ動く

ちなみにこんな感じの動画(連番画像)をGANで出力し、コマ送りにしながら面白そうな地形を探していました。徹夜で作業したら目がチカチカします。これが私の旅行だ。


さいごに

こうしてなんとか存在しない東海道五十三次を見つけることができました。そもそも存在しないので全て私のさじ加減なのですが。

本音を書くと「もうちょい奇想天外な地形が生まれても良いのにな」と思っていたのですが、良くも悪くも生成された画像はどれもけっこうリアル寄りでした(本当にありそうだった)。学習データ自体の画像を加工してありえない地形が生成される確率を上げても良かったものの、そこの制作過程はリアル志向にやりました。制限があるからこそ予想を超えたときに、面白いものが生まれるのではないでしょうか。旅も人生もおんなじです(とこじつけて記事を終わる)。

スキを押すと「あたり」か「はずれ」が出ます。