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

『fSpy』を用いた写真の分析

C422cc033079e005fd1aa1b845b099da?s=47 meow
April 02, 2022

 『fSpy』を用いた写真の分析

2022/03/28(月)に 第17回 初心者のためのセキュリティ勉強会(オンライン開催) で発表したスライドです。

https://sfb.connpass.com/event/241531/

■リンク
・fSpy
https://fspy.io/
・【特定厨】写真から自宅を特定する方法
https://www.youtube.com/watch?v=9ZgEEkUPL00
・パースフリークス
http://www.persfreaks.jp/

C422cc033079e005fd1aa1b845b099da?s=128

meow

April 02, 2022
Tweet

More Decks by meow

Other Decks in Technology

Transcript

  1. 『fSpy』を⽤いた写真の分析 第17回 初⼼者のためのセキュリティ勉強会(オンライン開催) meow ( @meow_noisy) 2022/03/28(⽉)

  2. 発表概要 u 「SNSにアップロードされた写真の分析がしたい」という動機で、 u カメラパラメータ推定ツール『fSpy』の紹介 u 『fSpy』を⽤いた⼨法計測、カメラの位置、⾓度の推定⽅法を説明 u ケーススタディを通して、写真の公開⾏為がプライバシー上の リスクの増加につながることを説明

  3. おしながき u 写真の分析について u 『fSpy』について u 本来の使い⽅ u 写真の分析への応⽤ u

    ケーススタディ1: ⼨法計測 u ケーススタディ2: カメラ位置の推定 u まとめ
  4. 写真の分析について

  5. 背景 u 先⽉、SNSにアップロードされた写真の分析をしていた時、 分析できそうだけどどうすればいいかわからないことが あった u カメラまでの距離の推定 u カメラを⾒上げた時の⾓度の推定 u

    以前紹介した透視図法的アプローチの応⽤で実現できそう 被写体 カメラ 何メートル? 何度?
  6. 透視図法的アプローチ u ラムダ情報局さんの紹介していた⽅法 u 【特定厨】写真から⾃宅を特定する⽅法 u https://www.youtube.com/watch?v=9ZgEEkUPL00 u 写真内から消失点を⾒つけ、(パースのついた)正⽅形のグ リッドを作図することで、撮影⽅向を求める

    画像はYoutubeの動画から
  7. 透視図法的アプローチの応⽤可能性 u 動画の例ではグリッドを地⾯に対して引いていたが ⾼さに対してもいけそう u グリッドが引ければ⽐率からものの⾼さを推定できそう u ただ、写真からの作図はさすがに⾯倒 u ツールがないかを探す

    u → 写真分析⽤途のものは無かったが、Blenderのプラグインを 裏技的に使うことで実現可能であることがわかった
  8. 『fSpy』について 本来の使い⽅、写真の分析への応⽤

  9. 『fSpy』とは u もともとは3DCGソフト『Blender』のプラグイン u https://fspy.io/ u 1枚の写真からカメラパラメータ(カメラ位置、⾓度)を推定する u 本来の⽬的は写真と同様の3D空間を⽣成することを⽀援すること u

    スタンドアロンになったアプリも提供されている u https://github.com/stuffmatic/fSpy/releases/tag/v1.0.3 u マルチプラットフォーム: Windows / Mac / Linux
  10. 『fSpy』の(本来の)使い⽅ u 空間的には平⾏(だけどパースのついた)関係にある線の ペアを⼈が指定する(消失点を与える) u 右下図だと⾚線ペア、薄緑ペアが空間的に平⾏関係にある u なるべく⾓度がついている平⾏関係を⾒つけた⽅が良いとのこと u それだけでカメラパラメータが計算される

    注: 線が薄いので別途強調した線を引いている
  11. 『fSpy』の(本来の)使い⽅ u 正⽅形グリッドをプロットすることができる u うまく空間を捉えられているかの確認ができる xyグリッド yzグリッド xzグリッド

  12. 『fSpy』の(本来の)使い⽅ u ⽣成したカメラパラメータの情報を.fspyファイルに保存 u Blenderで.fspy ファイルをインポートすると、そのカメラ パラメータのカメラオブジェクトを空間上に⽣成可能

  13. 『fSpy』で推定したカメラパラメータを 写真の分析に活かす 1. グリッドをものさし代わりにできる u 正確なサイズはわからないが、基準からの相対サイズ⽐率を 知ることができる u パースが付いた状態なのでかなり使い勝⼿が良い 2.

    撮影位置の特定(後述) u オブジェクトの相対位置、カメラの⾓度を計算 階段の幅は 階段の⾼さ 約1.5つ分
  14. オブジェクトとの相対距離 u Camera positionの情報 u カメラとグリッドの中⼼からの距離となる u このときの数値はグリッドの個数になる u Blenderで空間を確認した⽅がわかりやすい

    fSpy上のグリッドの中⼼ fSpyの情報 (xがグリッド3.1つ分、 yがマイナス⽅向に7.94つ分... という意味) Blenderにおけるカメラの位置 Camera position の座標 に対応
  15. カメラの⾓度 u Blenderで読み込むとカメラの⾓度がわかる u 各軸の⾓度を⾸の動きに例えて説明する u x: ⾸を前後に倒している⾓度 u 真下向いている時が0度。真正⾯が90度。真上が180度。

    u y: ⾸を傾ける⾓度 u プラスだと右側に傾く。マイナスだと左側。 u z: ⾸を横に振る⾓度 u プラスの⾓度だと左に、マイナスの⾓度だと右。 u 先程の画像の例だと、26度⾒下げて、2度左に 傾けて、22度左に向けて撮影している
  16. ケーススタディ1: ⼨法計測

  17. お題 u 幕張メッセ(TGS2018)で取った写真 u ⼿前の男性の⾝⻑をチェス盤状の床のマスの⻑さからざっくり 計算してみる

  18. 床の1マスあたりの⻑さを図る u Google EarthのPro版(ネイティブ版)の定規機能を使う u 全部で11マスあるが22.35mなので1マスは2.03m程度

  19. fSpyに補助線を与える u 今回はx(横⽅向;⾚⾊)とy(奥⾏き;緑⾊)を指定 u これだけでカメラパラメータが計算完了

  20. xzグリッドをプロット u グリッドはなるべく床のマスと男性の関係がわかる場所ま で移動しておく

  21. グリッドの数、⽐率から概算する u 床1マスはグリッド6.8つ分 u 男性はグリッド5.8つ分 u よって、男性の⾝⻑は = 5.8 /

    6.8 * 2.03 ≒ 1.73 m 5.8つ 6.8つ(2.03m)
  22. ケーススタディ2: カメラ位置の推定

  23. お題 u とある建物から撮った札幌駅の⾵景 u この写真を元に撮影した時の情報を推定する 1. 撮影位置 2. カメラの⽅向 3.

    部屋の階 時計も写っているので、どういう⽂脈で撮影したのか考えると⾯⽩いかもしれない
  24. fSpyに補助線を与える u 今回はx軸(横⽅向)とz軸(⾼さ; ⻘⾊)の2つにしてみた

  25. xzグリッドをプロット

  26. 現実におけるグリッドの⻑さを調査 u 3マスで22.91m

  27. 撮影位置の推定 u グリッドの中⼼から何個分離れているか u Camera positionを⾒る u グリッドの中⼼から-x軸⽅向に-5.8個分、 -y軸⽅向に-8.1個分 x

    y 中⼼
  28. ①撮影位置の推定 u 中⼼からy軸⽅向に2マス 進んだ場所を基準に逆算する u -x軸⽅向に-5.8個分、 -y軸⽅向に-10.1個分 の場所 x y

  29. ①撮影位置の推定 u 中⼼からy軸⽅向に2マス 進んだ場所を基準に逆算する u -x軸⽅向に-5.8個分、 -y軸⽅向に-10.1個分 の場所 u ホテルグレイスリー札幌

    であるとわかる u ⼤体どのあたりの部屋かもわかる u ただし右図は衛星写真なので ⾒た⽬と2次元上の位置は異なる x y
  30. ②カメラの⽅向の推定 u Blenderでfspyのファイルをインポート u ⼤体10度くらい⾒下げて、右⽅向に17度くらい回転して撮影している ことがわかる

  31. ②カメラの⽅向の推定 u デジタル分度器で17度の⽅向をプロット u ホテル室内でこの⽅向で撮っていることがわかる https://www.ginifab.com/feeds/angle_measurement/ デジタル分度器→

  32. ③階の推定 u 消失点は⽬線(アイレベル)の⾼さにくることを利⽤ u ⼤体DAIMARUのロゴの下らへんにくる u (なお、⽬線はカメラの傾きに依存しない) ⽬線

  33. ③階の推定 u Google Earthで 標⾼を⽰すポリゴンオブジェクトを⽣成 u 標⾼45mでだいたい DAIMARUロゴの下まで浸かる

  34. ③階の推定 u ホテルグレイスリー札幌の オブジェクトの浸⽔ラインを確認 u ここが撮影した⾼さになる u → 12階から撮影している

  35. まとめ u 『 fSpy 』を(半ば裏技的に)⽤いて、写真内の物体の ⼨法計測やカメラ位置の推定を⾏った u どの位置からどういう⾓度で撮影しているのかがわかる u ⾔うまでもないが、部屋の外から⾒える景⾊の写真を

    アップロードするのは危険
  36. おまけ: 4⽉ OSINT問の出るCTF u 『**** *** ***** ***』(伏せた理由はお察しください) u 🇺🇦⽀援のクラウドファンディングが成⽴されたことにより

    開催 u 参加⽅法は下記 u https://www.justgiving.com/fundraising/capturethetalent u 4/2から開催予定 u 無料(のはず)
  37. 参考⽂献(スライド内で⾔及したもの以外) u パースフリークス u http://www.persfreaks.jp/

  38. ご清聴ありがとうございました @meow_noisy この発表以外にもSNSにおけるプライバシー保護のノウハウを多数紹介しています。 ご興味があれば、ユーザ名から⼀覧いただければと思います。 クリック