[サーフィン × 人工知能] 海岸線の衛星写真からサーフポイントを検索 – Deep Surfari – Quest for untouched surf points using Deep Learning on satellite imagery.
2017 BLOG
本記事はこちらに移動しました。
このページはアーカイブ用に残しているものです。
いまからちょうど一年前. 2016年の9月に10日ほどの休みを取って、南米チリに行ってきました。チリの友人たちとサーフィンをするのが目的の旅でした。ちょうどそのころにやった実験の記録です。
Deep Surfari – Quest for untouched surf points using Deep Learning on satellite imagery.
このプロジェクトの直接のきっかけはその直前の8月のWIRED LABでのトークセッションです。世界のサーフポイントの波のデータ可視化に取組んでいる山崎みどりさん、サーファー向けの写真アプリ SurfPicを運営する電通の秋元健さんとの対談をする機会をいただきました。
初めてのお二人との顔合わせの席でもやはり話題は海外のサーフスポットについて. 「あそこに行きたい」「どこそこは波を当てるのが難しい」などなど話題はつきませんでした. 山崎さんは僕の憧れの地、モロッコにも行かれたことがあるとか. 長い長い海岸線を持つ彼の地には、未知のサーススポットも数多く残されている… といった話で盛り上がりました。
サーフポイントの緯度経度情報を登録するために、Google Mapsで衛星写真を眺めるのを日課にしているという秋元さんの話を聞いているときにひらめきました。
「もしかしたら海岸線の衛星写真を解析することで、新しいサーフスポットを見つけられるのではないか… 」 会社に戻ってすぐにサーフスポットの情報を集めはじめました。
ということで、題して Deep Surfari (SurfariはSurfingとSafariをあわせた造語で、未開のサーフスポットを探す探検を意味してます). 画像解析にはもちろんDeep Learningのモデルを利用します。
今回のテストは以下のようなステップで行いました.
- 世界のサーフスポットの衛星写真を集める.
- サーフスポットではないランダムな海岸線の衛星写真を集める
- 畳み込みニューラルネットワーク(CNN)で、サーフスポットとそれ以外を識別するモデルを作る.
- 対象とする地域の海岸線に沿って集めた衛星写真を、3のモデルにかけて「サーフスポットらしい」場所を探す
順に説明します。
1.世界の有名サーフスポットの衛星写真を集める.
まずは世界のサーフスポットの位置情報を集めるために、wannasurf.comの地図をスクレイプしました. マッピングすると以下のようになります。集めた5980のサーフスポットの位置情報はこちらで公開してます。
この情報に基づいて、Google MapsのImage APIをつかって、サーフポイントの海岸線の衛星写真を集めました。
サーフポイントの衛星写真の例
2. サーフスポットではないランダムな海岸線の衛星写真を集める
次に比較対象となる「サーフスポットではない」海岸線の写真を集めます. アメリカ海洋大気庁 NOAAが海岸線に関するデータを公開しているのでそちらを利用します. 地図上で海岸線の情報を取得したい範囲を選択すると、緯度経度の情報をダウンロードできます.
あとは1と同様にGoogle Mapsで写真をダウンロードします. (ランダムに選択した海岸線上のポイントが、サーフポイントである可能性もまれにありえるとは思うのですが、そこは今回は目をつぶりました)
サーフポイント「以外」のランダムな海岸線の写真の例
3. 畳み込みニューラルネットワーク(CNN)で、サーフスポットとそれ以外を識別するモデルを作る.
画像認識で一般的に用いられるCNNを応用します. ImageNet(よくある犬とか車とかを識別するやつです)用に学習済みのモデル(今回はVGG16を用いました)をベースに、今回の目的「サーフスポットかどうかの二値を識別する」ために追加の学習(fine-tuning)を行います。このときはDeepLearningのフレームワークとしては当時はCaffeを使いました.
4. 対象とする海岸線に沿って衛星写真を集め、3で学習したモデルにかけて、「サーフスポットらしい」ポイントを探す
2と同様に自分が調べたい地域を選んで海岸線の衛星写真を集め、3で学習したモデルにかけていきます. このときはもちろんチリの長い海岸線に沿ってデータを集めてみました (首都サンチアゴから行けそうな北のほうに絞ってます). こうして作った地図がこちらです. モデルが算出するサーフスポットらしさの数値に合わせて、色をつけてます (より「らしい」ポイントほど濃い)
絶対こんな場所無理だとという場所から、ここは良さそう!という場所まで様々ですね. 自分の技量は無視していることは言うに及びません (笑
さらにいつかサーフトリップに行ってみたいモロッコも同じようにマッピングしてみました。
定量的な結果の確認をやったわけではないのですが、ざっと見た感じでは、波のうねりが規則的な間隔で入ってきているポイントや、海岸から海に向かって飛びてている小さい岬やピアの周辺を、サーフポイントらしさとして学習 しているようです。
サーフポイントとして認識された衛星写真の例
こうしてポイントに対する妄想だけをたくましくして望んだチリ. 一言でいうと最高でした. 南極からのスウェルを受けるチリはほぼ全てのポイントがレフトのポイント. ローカルもグーフィーフッターが多かったように思います。
サンチアゴから車で3時間ほど南下したPichilemという街を中心に、周りのポイントをいくつか回ったのですが、そのなかで特によかったのが、Puertocilloというレフトの長い長いポイント. 今回の実験でもサーフポイントらしいとして高い点数がついていたポイントです. 衛星写真からも、南からのうねりが岬をまわりこんでくることで整えられているのがわかります.
もう一つ印象に残ったポイントは、世界的にもビッグウェーブのポイントとして知られるPunta de Lobos. こちらもちゃんと認識されました! ただ実際に行ってみると、見ているだけでお腹いっぱいというポイントでした. ゲットアウトしようとして30分ほどパドルし続けましたが、あまりの波のパワーに結局ラインナップまでたどりつけませんでした…
一方で今回のやり方には当然さまざまな問題があるのはいうまでもありません。
- 衛星写真を撮影したときにたまたま年に一度のべた凪 or スウェルが入っている可能性もある
- 海底の地形を考慮していない
- そもそもプライベートビーチだったり、軍用地で立ち入りできない場所である可能性もなどなど.
- サメの存在
アップデートするとしたら… 海底の等高線の地図や海流の方向も学習の際に考慮するようにするとより正確な予測ができるものと想像できます。またいずれはWebサービス化も考えたいですね。だれもが自分の好きな地域を指定して、新しいポイントを探せるようにできると面白そうです(最近はブラウザ上でDeep Learningのモデルを動かせるようになってきてます)
衛星写真 × Deep Learningのプロジェクトは、最近もさまざまなものが発表されています。衛星写真から特定の視覚的な特徴をもった建築物など(駐車場、プール、ガスタンク、野球場 etc)を探すプロジェクトや、国勢調査の情報との関係を学習することで、衛星写真からその地域の所得やデモグラフィック(人種構成など)を推定するといった研究(例えば、テニスコートや緑地が多い地域は高所得、ストリートバスケのコートは低所得といった結果が定量的に示されています) 等、用途もさまざまです。
Deep Learningのなかでも技術的に成熟している画像認識のモデルを転用できる、厖大なデータがすぐにアクセスできるかたちでオンラインで提供されている一方で、人手で総当りするのは不可能に近い、といった意味で、Deep Learningを応用しやすい/しがいのある領域だと思います。
この地球上に未開のサーフスポットがどのくらい残されているのかはわかりませんが、しらみつぶしに衛星写真にあたりつつ、まだ見ぬパーフェクトなブレークに想いを馳せるのもなかなかオツなんじゃないでしょうか。
その前に…. 自分のサーフィンのスキルをもっともっと上げていかないといけないですね!
ps. チリ本土の後でイースター島でもサーフィンしてきました!! 火山の島だけあってリーフのポイントが豊富. また行ってみたい場所です.
ps2. 人工知能のクリエイティブな使い方について、Create with AIというサイトを運営してます。興味がある方はそちらをフォローしてください!
Featured Articles