Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

関東コンピュータビジョン勉強会

30,501 views

Published on

第28回コンピュータビジョン勉強会@関東

Published in: Science
  • Be the first to comment

関東コンピュータビジョン勉強会

  1. 1. 第28回コンピュータビジョン勉強会@関東 コンピュータビジョン最先端ガイド5 第2章 複数画像からの三次元復元 #2 カメラパラメータ推定 東京大学 情報理工M1 伊神 大貴<@_Nonane_>
  2. 2. 自己紹介 • @ketsumedo_yarouの手下その2 • 3次元の研究をしているという? – していない • L0-normの最適化をごりごりしています – 全ての非線形関数を生まれる前に消し去りたい
  3. 3. ステレオによる3次元復元 3 Depth?
  4. 4. ステレオによる3次元復元 4 Depth
  5. 5. ステレオによる3次元復元 5 Depth 点のマッチングとカメラの位置姿勢 から3次元復元ができる
  6. 6. カメラパラメータ スクリーン座標 ワールド座標 𝒙 = 𝐊 𝐑 𝒕 𝒑 𝒖 𝒗 𝟏 ~ 𝑓 𝑠 𝑐 𝑥 0 𝑎𝑓 𝑐 𝑦 0 0 1 𝑅11 𝑅12 𝑅13 𝑡 𝑥 𝑅21 𝑅22 𝑅23 𝑡 𝑦 𝑅31 𝑅32 𝑅33 𝑡 𝑧 𝒑 𝒙 𝒑 𝒚 𝒑 𝒛 𝟏 カメラ内部行列 DOF: 5 カメラ外部行列 DoF: 6
  7. 7. カメラパラメータ カメラ内部行列 DOF: 5 スクリーン座標 カメラ外部行列 DoF: 6 ワールド座標 𝒙 = 𝐊 𝐑 𝒕 𝒑 𝒖 𝒗 𝟏 ~ 𝑓 𝑠 𝑐 𝑥 0 𝑎𝑓 𝑐 𝑦 0 0 1 𝑅11 𝑅12 𝑅13 𝑡 𝑥 𝑅21 𝑅22 𝑅23 𝑡 𝑦 𝑅31 𝑅32 𝑅33 𝑡 𝑧 𝒑 𝒙 𝒑 𝒚 𝒑 𝒛 𝟏 焦点距離など,カメラ 固有のパラメータ カメラの位置,姿勢を 示すパラメータ
  8. 8. 透視投影 𝑐 𝑠 𝑦𝑠 𝑓 𝑥 𝑠 𝑦𝑐 𝑥 𝑐 𝑧 𝑐 画像面
  9. 9. 透視投影 𝑐 𝑠 𝑦𝑠 𝑓 𝑥 𝑠 𝑦𝑐 𝑥 𝑐 𝑧 𝑐 画像面 𝒑 = (𝑝 𝑥, 𝑝 𝑦, 𝑝 𝑥) 𝒙 = (𝑢, 𝑣)
  10. 10. 透視投影 𝑐 𝑠 𝑦𝑠 𝑓 𝑥 𝑠 𝑦𝑐 𝑥 𝑐 𝑧 𝑐 画像面 𝒑 = (𝑝 𝑥, 𝑝 𝑦, 𝑝 𝑥) 𝒙 = (𝑢, 𝑣) 𝑐 𝑠 ′ 𝑦𝑠 ′ 𝑥 𝑠 ′ 𝒙′ = (𝑢, 𝑣)
  11. 11. 透視投影 𝑐 𝑠 𝑦𝑠 𝑓 𝑥 𝑠 𝑦𝑐 𝑥 𝑐 𝑧 𝑐 画像面 𝒑 = (𝑝 𝑥, 𝑝 𝑦, 𝑝 𝑥) 𝒙 = (𝑢, 𝑣) 𝑐 𝑠 ′ 𝑦𝑠 ′ 𝑥 𝑠 ′ 𝒙′ = (𝑢, 𝑣) 𝑢 𝑣 = 𝑓 𝑝 𝑥 𝑝𝑧 + 𝑐 𝑥 𝑓 𝑝 𝑦 𝑝 𝑧 + 𝑐 𝑦 ⇔ 𝑢 𝑣 1 ~ 𝑓 0 𝑐 𝑥 0 𝑓 𝑐 𝑦 0 0 1 𝑝 𝑥 𝑝 𝑦 𝑝 𝑧
  12. 12. 内部パラメータ 𝑓: 焦点距離 𝑠: スキュー 𝑎: アスペクト比 𝑐 𝑥, 𝑐 𝑦: 光学中心 𝐊= 𝑓 𝑠 𝑐 𝑥 0 𝑎𝑓 𝑐 𝑦 0 0 1 ※歪曲収差パラメータも存在 →キャリブレーションチャートを用いた推定が一般的 MATLAB Calibration Toolbox OpenCVのcvCalibrateCamera2など ・𝑠 = 0, 𝑎 = 1とし, 𝑐 𝑥, 𝑐 𝑦をそれぞれ画像中心とすることも多い Bundlerなどはこの仮定を利用している
  13. 13. カメラパラメータ カメラ内部行列 DOF: 5 スクリーン座標 カメラ外部行列 DoF: 6 ワールド座標 𝒙 = 𝐊 𝐑 𝒕 𝒑 𝒖 𝒗 𝟏 ~ 𝑓 𝑠 𝑐 𝑥 0 𝑎𝑓 𝑐 𝑦 0 0 1 𝑅11 𝑅12 𝑅13 𝑡 𝑥 𝑅21 𝑅22 𝑅23 𝑡 𝑦 𝑅31 𝑅32 𝑅33 𝑡 𝑧 𝒑 𝒙 𝒑 𝒚 𝒑 𝒛 𝟏 焦点距離など,カメラ 固有のパラメータ カメラの位置,姿勢を 示すパラメータ
  14. 14. カメラの位置姿勢 14 𝒙0 𝒄0 回転行列 𝐑0 = 𝐈 並進ベクトル 𝒕0 = 𝟎 𝒙0~ 𝐊0 𝐑0 𝒕0 𝑝 𝑥 𝑝 𝑦 𝑝 𝑧 1 = 𝐊0 𝑝 𝑥 𝑝 𝑦 𝑝 𝑧 𝒑 = 𝑝 𝑥, 𝑝 𝑦, 𝑝𝑧, 1
  15. 15. カメラの位置姿勢 15 𝒑 = 𝑝 𝑥, 𝑝 𝑦, 𝑝𝑧, 1 𝒙0 𝒙1 Rotation 𝐑1 and translation 𝒕1 𝒄0 𝒄1 回転行列 𝐑0 = 𝐈 並進ベクトル 𝒕0 = 𝟎 𝒙0~ 𝐊0 𝐑0 𝒕0 𝑝 𝑥 𝑝 𝑦 𝑝 𝑧 1 = 𝐊0 𝑝 𝑥 𝑝 𝑦 𝑝 𝑧 𝒙1~ 𝐊1 𝐑1 𝒕1 𝑝 𝑥 𝑝 𝑦 𝑝 𝑧 1
  16. 16. 外部パラメータ 𝐑: 回転行列 𝒕: 並進ベクトル𝐑 𝒕 = 𝑅11 𝑅12 𝑅13 𝑡 𝑥 𝑅21 𝑅22 𝑅23 𝑡 𝑦 𝑅31 𝑅32 𝑅33 𝑡 𝑧 →SfM (Structure from Motion) による推定が一般的 -Bundler, VisualSFMなどが有名なソフト
  17. 17. Structure from Motion 17 SfMのパイプライン 1. 画像から特徴量を抽出し,マッチングを行う
  18. 18. Structure from Motion 18 2. 基本行列𝐄を対応点の組{(𝒙𝒊𝟏, 𝒙𝒊𝟎)}から求める (e.g. five-point algorithm, eight-point algorithm) SfMのパイプライン 1. 画像から特徴量を抽出し,マッチングを行う
  19. 19. 2枚での外部パラメータ推定 19 𝒑 = 𝑝 𝑥, 𝑝 𝑦, 𝑝𝑧, 1 𝒙0 𝒙1 Rotation 𝐑1 and translation 𝒕1 𝒄0 𝒄1 回転行列 𝐑0 = 𝐈 並進ベクトル 𝒕0 = 𝟎 Epipolar constraint: 𝒙 𝟎 𝐄 𝟎𝟏 𝒙 𝟏 = 𝟎 𝑬 = 𝒕 × 𝑹 :essential matrix {𝒙 𝟎, 𝒙 𝟏}の組が8つ以上あれば解ける
  20. 20. Structure from Motion 20 2. 基本行列𝐄を対応点の組{(𝒙𝒊𝟏, 𝒙𝒊𝟎)}から求める (e.g. five-point algorithm, eight-point algorithm) 3. バンドル調整による再投影誤差の最小化を行う SfMのパイプライン 1. 画像から特徴量を抽出し,マッチングを行う
  21. 21. バンドル調整 21 : カメラパラメータ : 点の3次元座標 : 点のセンサー座標 : 再投影されたセンサー座標 argmin 𝒑 𝑖,𝒒 𝑗 𝑢𝑖𝑗 − 𝑢 𝒑𝑖, 𝒒 𝑗 2 𝒑𝑖 𝒒 𝑗 𝒖𝒊𝑗 𝒖𝒊𝑗 再投影誤差の最小化
  22. 22. SfMのソフトウェア • Bundler – 最も有名なオープンソースのSfMソフトウェア – やや古い • Photosynth, Autodesk 123D Catch, Arc3D – SfMを行うWebサービス – 使いやすいがパラメータや途中経過が見えない
  23. 23. SfMのソフトウェア • Bundler – 最も有名なオープンソースのSfMソフトウェア – やや古い • Photosynth, Autodesk 123D Catch, Arc3D – SfMを行うWebサービス – 使いやすいがパラメータや途中経過が見えない • VisualSFM
  24. 24. VisualSFM
  25. 25. VisualSFMによる復元結果 Exif有り Exif無し 焦点距離の初期値としてExifを利用しており,結果に 大きく影響する -Bundlerも同様
  26. 26. SLAM • SLAM (Simultaneous Localization and Mapping) – カメラやセンサを用いて自己位置推定と地図作成 を同時に行うタスク – RGB-D SLAM, Monocular SLAMなど Kinect Fusion PTAM
  27. 27. SLAMの基本 27 PTAMなど 1. Map initialization -ステレオなどによる
  28. 28. SLAMの基本 28 PTAMなど 1. Map initialization -ステレオなどによる 2. Tracking -マップの点を新しい入力画像に投影する -再投影誤差を最小化することでカメラの位置姿勢を推定する
  29. 29. SLAMの基本 29 PTAMなど 1. Map initialization -ステレオなどによる 2. Tracking 3. Mapping -マップの点を新しい入力画像に投影する -再投影誤差を最小化することでカメラの位置姿勢を推定する -三角測量の原理に基づきマップに点を追加する -バンドル調整によるリファインメントを行う
  30. 30. LSD-SLAM 30
  31. 31. LSD-SLAM 31 -Monocular SLAMの最新論文 -特徴点ではなく画像全てを利用 Large-Scale Direct Monocular SLAM -Semi-denseデプスマップ -CPUでのリアルタイム動作 -オープンソース

×