Terrapatternは画像検索エンジンだが、誰もがそれを初めて使ったとき、“何でGoogleがこれを10年前からやってないの?”、と不思議に思うだろう。地図上の特徴(施設など)…野球場、マリーナ、ロータリー、などなど…をクリックすると、アルゴリズムが複数の都市の「それはここだ!」と信じたものの写真を見せてくれる。速いし、使い方は簡単、そして可能性としてはとっても役に立つ。
実際に試してみると、その検索がとても自然であることが分かるだろう。どんな原理なのか? ひとにぎりのデジタルアーチストとデベロッパーが、35000ドル足らずでどうやって作ったのか?
最近のおもしろいヴィジュアルコンピューティングプロジェクトの多くがそうであるように、このプロジェクトも畳み込みニューラルネットワーク(convolutional neural network)を使っている。基本的にはそれはAIのようなプログラムで、画像からあらゆるデテール(細部情報)を取り出し、さまざまな構造体の中に、そのパターンを探す。それは、人間の目が相似のパターンを探すやり方と同じだが、その精妙さと柔軟性は、人間の脳が上だ。
Terrapatternの場合は、小さな矩形の地形図を見て、それをOpenStreetMapが提供している地図上の特徴のタグ付き画像の、巨大なデータベースと比較するよう、ニューラルネットワークを訓練する。それは、地形図上の情報を何らかのコンセプトに結びつけることを学習する。
たとえばカメラが人間の顔を認識して、その顔が瞬(まばた)きしてるか微笑んでいるかを判断するとき、何をどうやっているのか。それは顔や微笑みや目などを“知っている”のではなくて、それらを画素の何らかのパターンに結びつけ、相似性の高いものを拾い上げているだけだ。
Terrapatternを訓練して、船や貯水塔など、ありとあらゆる地理的特徴を認識しカテゴライズできるようになると、それに、ニューヨークやピッツバーグ、デトロイト、サンフランシスコなどの大きな詳細地図を見せる。するとTerrapatternはそれらの地形図を舐めるように見て、特徴と類似性の巨大なデータベースを作る。そしてそれに対して、小さな矩形の地形図でクェリすると、相似物が直ちに返される。ユーザーが地形図(施設など)をクリックしたときニューラルネットワークは“考える”のではなくて、データベースのデータ集合を照合するだけだ。
そうやってユーザーはたとえば、“オークラウンドのテニス場”を見つけたり、いろんな視覚的検索が完全にできるが、Terrapatternが探すのはあくまでもパターンの相似だから、原っぱの真ん中の家、とか、行き止まりの袋小路、とか、枯れた芝生、円形の駐車場などなども、そんなパターンが見つかれば検索結果として返す。Terrapatternにとってそれは、空港やフェリーのターミナルを探すことと、なんら変わらない。それらはすべて、ニューラルネットワークにとっては、特徴の集まり〜組み合わせにすぎない。
TerrapatternはGolan Levin, David Newbury, Kyle McDonaldの三名がKnight FoundationのPrototype Fundから得たお金で作った。彼らの資金と時間では、4つの都市の特徴マップデータベースを作るのが精一杯だったが、今後はほかの都市もやっていくつもりだ。そしてうまくいけば、もっと高いレベルと低いレベルの特徴を検出したい。野球場を見つけるのはふつうのレベルだが、小さな交差点(低レベル)や刑務所(高レベル)を見つけるのは難しい。
この作品はCreative Commons 4.0のライセンスにより、無料で利用できる。彼らのコードは、GitHubにある。