Google Earth の衛星画像と深層学習を利用した驚きの Google 謹製ライン検出コンテンツが凄すぎた!

doxas : 2016-12-17 13:51:10

意味がわからないレベルの凄さはさすが Google

今回ご紹介するのは、WebGL とディープラーニングを合わせた驚きのコンテンツで、Google 謹製の、ブラウザ上で動作するアプリケーションです。

大量の画像を使っていますが、モバイル端末でもスムーズに動作します。また描画には WebGL が使われているため、ビジュアル面でも非常に軽快な動きが実現できており、もう完全に意味がわからないレベルですごいです。

私はあまりディープラーニングについては詳しくないのですが、このアプリケーションについては驚きを隠せません。

さすがは Google と思わず唸らされる、そんな作品です。

ラインを引いて、あるいはドラッグして楽しむ

今回のコンテンツは、まず最初にトップページで「Draw モード」か、あるいは「Drag」モードかを選択します。

それぞれのモードの違いは、実際に動作を見てみれば理解しやすいでしょう。

まずは、最初に Draw モードから見ていきます。

こちらのモードはその名のとおり、ユーザーがスクリーン上に自由にラインを引くことができるモードになっています。

適当にスクリーン上をマウスでドラッグするか、モバイル端末ならスワイプするように指を滑らせます。すると、そのときに描いたラインに合致するエッジを持つマップ画像が、一瞬で探し当てられ画面に描画されます。

待ち時間はほとんど無いに等しく、非常に高速です。

このラインのエッジと、衛星画像の特徴とを結びつけるところが、いわゆる深層学習のアルゴリズムによって実装されているのだと思います。

驚くべきは、この一連の動作はなんと クライアントだけで行っている という点。

つまり、ユーザーが描いたラインのデータを一度サーバーに飛ばしてからレスポンスをもらっているわけではなく、その場で、ブラウザ上で全ての処理を行っているみたいです。

つまりモバイル端末に搭載された CPU のレベルで、これだけの高速な処理を実現しているということになります。

これほんと信じられないですが、すごいですね。

どのようなシルエットでも見つけてきます。

このドローモードだけでも十分にすごいのですが、ドラッグモードもやはりすごいですね。

こちらは、ユーザーが自由にラインを引くという、先ほどのドローモードとはちょっと違っています。

ドラッグモードでは、ユーザーが画面上をドラッグ操作すると、それに反応するようにしてある程度ラインは勝手に引かれていきます。

しかし、そのラインのエッジはけして途切れること無く次々と繋がっていくようにアルゴリズムが組み込まれているようで、無制限に世界各地の衛星画像が連結されていく様子は本当にすごいです。

これだけのことを JavaScirpt でやってるというのがまずすごいですが、描画は WebGL だけあって非常に滑らか。拡大や縮小、あるいは動的に変化するラインの形状などが、WebGL のちからによってスムーズに描画されていく様子は圧巻です。

なんとなく、二次元の画像を使っているために WebGL の作品として見てしまうとあまり派手さを感じないのですが、その実、中身はとんでもないことをやっているなと思わずため息が出てしまう……そんな作品だなと思います。

今回のアプリケーションの実装に際しての様々な検証や工夫は、別途ブログとして公開されている記事があり、これを読むと理解が深まると思います。

また、びっくりなことにソースコードも Github で公開されていますね。

どんだけ太っ腹なんだ……

今回のコンテンツは途方もない料のリソースを持つ Google だからこそというアドバンテージはあるものの、純粋に、JavaScript の実装として見てみても驚くべきものだと思います。

ブログやソースコードと併せて、ぜひ実際に動いている様子を確認してみてください。その軽快な動きに、きっと驚くと思います。

ぜひチェックしてみてください。

リンク:

Land Lines - Chrome Experiments

Land Lines | Web | Google Developers

ofZach/landlines: landlines front end app

share

follow us in feedly

search

search

monthly

sponsor

social