Upgrade to Pro — share decks privately, control downloads, hide ads and more …

画像から撮影場所を当てる話 ~ 理論的背景 & どこが〇〇区らしいか ~

A82e268e52c06ad69b83f1a251c682d4?s=47 Keisuke OGAKI
February 04, 2022

画像から撮影場所を当てる話 ~ 理論的背景 & どこが〇〇区らしいか ~

"機械学習で逆ストリートビューを作り、写真から港区らしさを判定する"
https://www.m3tech.blog/entry/photo2geo
というブログの理論的背景を補強したりデモを追加したりするスライドです。

google slide: https://docs.google.com/presentation/d/1Dz2IgmPBvmA0AiMChlRnZHQb4We1igzFlxJYr84JdNQ/edit?usp=sharing

A82e268e52c06ad69b83f1a251c682d4?s=128

Keisuke OGAKI

February 04, 2022
Tweet

More Decks by Keisuke OGAKI

Other Decks in Science

Transcript

  1. 画像から撮影場所を当てる話 理論的背景 & どこが〇〇区らしいか

  2. None
  3. https://share.streamlit.io/hi-king/tokyo_pho to2geo/main/scripts/web.py

  4. どうしてできるのか

  5. この写真は地球上のどこ?

  6. 先行研究1: im2gps (CVPR2008) -> 写真から撮影場所を当てるのは、巨大なデータセットがあればできる

  7. -> 非常に多クラスになってしまうラベル付けを画像検索で解く 検索 似ている画像のGPSタグから、クエリ 画像の撮影位置 • 専用の学習がいらない • クラス数がどんなに増えても大丈夫

  8. 先行研究2: PlaNet (ECCV2016) -> ニューラルネットのパラメータは世界中の画像を覚えることができる能力がある 26263クラス分類😇

  9. VS Geoguessur 複数画像を入れられる改良も!

  10. 東京版を作る

  11. データクローリングどうやってやる? im2gps: flickrから画像収集 PlaNet: Google+から画像収集 • GeoGuessurみたいな方法でできない。。。? ◦ Goole Maps

    API !!! ▪ url = f'https://maps.googleapis.com/maps/api/streetview?location={latitude},{longitude}&size= 456x456&heading={heading}' • GPSと市区町村ってどうやって紐付ける? ◦ 'https://geolonia.github.io/japanese-addresses/api/ja/{district}/{area}.json' ▪ 東京都/中央区.json ▪ 市区町村の”字”の座標一覧が取れるので、最も近い字からラベリング [ { "town": "佃二丁目", "koaza": "", "lat": 35.668796, "lng": 139.786583 }, { "town": "築地三丁目", "koaza": "",
  12. やってみました! • 隣接してる組み合わせは間違えやすい(渋谷・港、中央・千代田) • 旭川は東京と間違える場所ないのね。。。

  13. 過学習ではないのか?

  14. -> ウマ娘はウマ!?!?

  15. -> 予測が当たっているかも確かに重要だが、 何がその判定を支えているか、というのはモデルの汎化性能の検証に重要 ウマ娘のデザインだけでなく、背景のターフがウマ判定 に大きく寄与していた (ただし、ウマ娘のデザインが完全に影響がないという 結論でないこともまた注意 )

  16. どこを見ているかを調べよう

  17. その区らしさ上位を見てみる 柵?

  18. Grad-CAM -> NNの推論プロセスに沿った方法でどこを見ているか検証しよう

  19. Grad-CAM -> NNの推論プロセスに沿った方法でどこを見ているか検証しよう 1. 入力画像からCNNのある 層の特徴マップを得る 2. まぁとりあえず識別までやってみ る。 3.

    特徴マップの層まで、 ”目的のクラ スだけ”誤差逆伝搬 4. backwardで得られたwとforwardで 得られたAを掛けて(重み x 値)、最終 的に1枚のGrad-CAMを得る
  20. 1. 入力画像からCNNのある層の特徴マップを得る ただし、一般にこの段階では X, Y, channelの3次元であり、まだ画像に落とすことは できない。特定の1channelが直接港区らしさにのみ反応していればいいのだが、陽 に制約を入れていないのでそんな都合よくは学習されない。

  21. 2. まぁとりあえず識別までやってみる。 いくつかのFC層などを挟み、最終的に識別クラス数 (=区の数)のベクトルにしている わけで、とりあえずそこまで推論を進める。 (港区0.7, 中央区0.2などのスコアが出る )

  22. 3. 特徴マップの層まで、 ”目的のクラスだけ”誤差逆伝搬 特徴マップのv(x, y, channel)ごとに、どれだけ目的のクラ スへの影響度が得られると考える これをchannnelごとに平均取ることで、どのチャンネルが どれだけ港区らしさに重要か、のチャンネル重み wがえら

    れる
  23. 4. backwardで得られたwとforwardで得られたAを掛けて (重み x 値)、最終的に1枚のGrad-CAMを得る

  24. Grad-CAM -> NNの推論プロセスに沿った方法でどこを見ているか検証しよう 1. 入力画像からCNNのある 層の特徴マップを得る 2. まぁとりあえず識別までやってみ る。 3.

    特徴マップの層まで、 ”目的のクラ スだけ”誤差逆伝搬 4. backwardで得られたwとforwardで 得られたAを掛けて(重み x 値)、最終 的に1枚のGrad-CAMを得る
  25. • 全く同じ or ほぼ同じオブジェクトの出現を見ていることはある • このタスクでは、実際その区にありがちなものであれば、手がかりにしてOK 柵でした!

  26. おもしろ結果シリーズ

  27. 塀! 港区は塀 植え込みも港区らしさ

  28. ポツンと家・木がある感 路側帯がデカイ! -> より抽象的な、田舎を認識している 旭川(北海道)らしさ

  29. 中央区の水面から眺める江東区 -> 今回の問題設定では外れているが、実は正解 江東区 中央区

  30. 新橋の路地

  31. ビル単体は難しい

  32. ビル単体は難しい

  33. None
  34. 面白かったコメント スラドに寄せられてたコメントたちはなかなか面白いです https://srad.jp/story/21/12/16/1551245/ :da:

  35. GeoGuesserガチ勢はやっ ぱりみてるらしい 京都人