第35回 CV勉強会@関東 後編
CVPR2016読み会
Structure-from-Motion Revisited
2016年7月24日 @OZ_Z_C
2016/7/24 CV勉強会@関東 CVPR2016読み会 1
自己紹介
@OZ_Z_C (twitter)
 某企業研究所所属
専門:画像符号化 (画像圧縮)
仕事
過去:H.264 encoderの開発、など
2016/4~ CV的な研究テーマに従事
よろしくお願いします!
2016/7/24 CV勉強会@関東 CVPR2016読み会 2
今回読んだ論文
タイトル
Structure-from-Motion Revisited
どんな論文?
Structure-from-Motionを全体的に地道によくした
この論文を選んだ理由
Structure-from-Motionを勉強したかった
アルゴリズム全体について述べられているので全体像を知るにはちょうどよい
ソースコード&ビルド済みバイナリを公開していた
COLMAP
http://people.inf.ethz.ch/jschoenb/colmap/
2016/7/24 CV勉強会@関東 CVPR2016読み会 3
今回読んだ論文
タイトル
Structure-from-Motion Revisited
どんな論文?
Structure-from-Motionを全体的に地道によくした
この論文を選んだ理由
Structure-from-Motionを勉強したかった
アルゴリズム全体について述べられているので全体像を知るにはちょうどよい
ソースコード&ビルド済みバイナリを公開していた
COLMAP
http://people.inf.ethz.ch/jschoenb/colmap/
いろいろDLしてやってみたが、うまくいかなかった・・・
自前ビルドは、LinuxかMac推奨 (Windowsでやったが挫折)
ビルド済みバイナリはなぜかうまく動かなかった
2016/7/24 CV勉強会@関東 CVPR2016読み会 4
発表の流れ
論文の流れに沿って下記順序で説明
1. Structure-from-Motionのアルゴリズム
2. 提案手法のコントリビューション
3. 性能評価
2016/7/24 CV勉強会@関東 CVPR2016読み会 5
Structure-from-Motion (SfM) とは
Structure-from-Motion (SfM)
様々な視点で撮影された画像から三次元構造を再構成する技術
本論文は、インターネット上で収集した大量の写真への対応を考慮
2016/7/24 CV勉強会@関東 CVPR2016読み会 6
http://www.cs.cornell.edu/~snavely/bundler/
Incremental SfMのアルゴリズム
Incremental SfM
2枚の画像からスタートし、画像を追加しながら徐々に三次元モデルを拡張
Bundler、VisualSfMなどの先行技術もIncremental SfM
本論文の提案手法もIncremental SfM
論文中では、 Incremental SfMを単にSfMと呼ぶ
他には、全体を同時に最適化するglobal SfMもあり (Theiaなど)
2016/7/24 CV勉強会@関東 CVPR2016読み会 7
Incremental SfMのアルゴリズム
Correspondence Search
特徴抽出~マッチング
特徴点単位で、他の画像の特徴点とマッチング
SfMでは様々な視点、照明条件(天候・時間帯など)で撮影した画像を使用
回転、拡大縮小、照明変化に頑健なSIFTやその派生(本論文ではRootSIFT)などが用いられる
Geometoric Verification
射影幾何を用いて、画像単位での対応関係(シーングラフ)を求める
アウトライヤ(外れ値)を除去するにはRANSACなどの手法を使用
RANSAC:ランダムに選択した点で幾何モデルを計算、幾何モデルの検証、を反復的に実行し
てアウトライヤを除去するアルゴリズム
2016/7/24 CV勉強会@関東 CVPR2016読み会 8
Incremental SfMのアルゴリズム
Incremental Reconstruction
初期化
初期ペア画像で三次元モデルを初期化
初期値は大事
ロバスト性、精度、パフォーマンス(演算量❓)に影響
Image Registration
三次元モデルに新しい画像を登録
三次元位置を算出済みの点と、新しく登録する画像の特徴点でPnP問題を解く
カメラの位置・姿勢を推定
2016/7/24 CV勉強会@関東 CVPR2016読み会 9
Incremental SfMのアルゴリズム
Incremental Reconstruction
三角測量
三角測量により、新しい画像の特徴点の三次元位置を算出
バンドル調整
画像登録(カメラの位置・姿勢推定)と三角測量(点の三次元位置算出)は互いに影響
再調整しないと、すぐ三次元モデルが破綻してしまう
下記2つの間の誤差(再投影誤差)を最小化してモデルを修正
画像上の特徴点(観測点)座標
構築した三次元モデルから算出した特徴点座標
2016/7/24 CV勉強会@関東 CVPR2016読み会 10
提案手法のChallengeとContribution
Challenge
対象は大規模なインターネット上の画像
精度と完全性の最大化がSfMのKey challenge
State-of-the-artと比較して顕著に性能が改善
Contribution
1. ロバストなシーングラフの拡張
2. ベストな次登録画像を選択するアルゴリズム
3. ロバスト&効率的な三角測量
4. 反復的なBA、再三角測量、フィルタリング
5. 効率的なBAパラメータ化
2016/7/24 CV勉強会@関東 CVPR2016読み会 11
提案手法のChallengeとContribution
ContributionとIncremental SfMアルゴリズムの関係
2016/7/24 CV勉強会@関東 CVPR2016読み会 12
4.1 Scene Graph
Augmentation
4.2 Next Best View
Selection
4.3 Robust and Efficient
Triangulation
4.5 Redundant View
Mining
4.4 Bundle Adjustment
4.1 Scene Graph Augmentation
二つの工夫でロバストにシーングラフを拡大
1. Panoramic (純粋な回転) なシーン(画像ペア)を見つける
焦点距離・基礎行列などが求められない→のちの三角測量で使わないようにするため
手順
1. 下記3つの手法でGeometric Verificationを行い、インライアの数Nを求める
基礎行列F:NF、基本行列E:NE、ホモグラフィH:NH
2. NH / NF < εHF の場合、general (普通の❓) シーンとみなす
3. NE / NF > εEF (正しくキャリブレーションされている)かつNH / NF < εHF の場合、三角測量した際
の角のメディアン値αmを用いてpanoramic or planar を判定する
NH / NE > εHE の間違い? 実際はαmを使っていない? (ソースコードより)
2016/7/24 CV勉強会@関東 CVPR2016読み会 13
Panoramicな例
4.1 Scene Graph Augmentation
二つの工夫でロバストにシーングラフを拡大
2. WTFs (Watermark, Timestamp, Frames) が含まれる画像を除外
手順
1. 画面端でのインライアの数NSを求める
2. NS / NF > εSF ∨ NS / NE > εSE の場合、WTFsが含まれた画像とみなす
2016/7/24 CV勉強会@関東 CVPR2016読み会 14
[60]T.Weyand, et.al. Fixing wtfs: Detecting image matches caused by watermark, timestamps, and frames in internet photos
4.2 Next Best View Selection
“良い”画像とは?
可視点 (Visible point) がたくさんある
画面全体にまんべんなく分布している
これらの両方をうまく評価できる指標?
下記4パターンだと右下が一番良い
2016/7/24 CV勉強会@関東 CVPR2016読み会 15
4.2 Next Best View Selection
スコアSを提案
画面をL階層に四分木分割
階層l (l = 1, … ,L ) の各セルに可視点があるかないかを2値で表現
𝑆 = 𝑙=1
𝐿
𝑤𝑙 ∙ 𝑁𝑙 𝑤𝑙: = 22l 重み , 𝑁𝑙: l階層目の”1”のセル数
最もSが大きい画像がBest!
2016/7/24 CV勉強会@関東 CVPR2016読み会 16
数の違い
分布の
違い
wl = 2l ?
4.3 Robust and Efficient Triangulation
下記2点を実現するアルゴリズムを提案
大量にアウトライヤが混入しているケースへの対応
計算コストの削減
提案手法
三角測量にRANSACを導入する (アウトライヤへの対応)
十分にコンセンサスが取れた点を除外する (計算コストの削減)
2016/7/24 CV勉強会@関東 CVPR2016読み会 17
4.4 Bundle Adjustment
突然ですが、VisualSfMでは・・・
1. 各画像登録・三角測量後は局所的なBA (local BA) のみ行う
2. ある程度画像・三角点が増えて来たら全体的なBA (global BA) を行う
3. global BAの前に、再三角測量 (RT) を行う
4. global BA後は、再投影誤差が大きい点をフィルタリングする
提案手法
pre-BA RT、 post-BA RTを行うBAを提案
pre-BA RT、global BA、 post-BA RT、フィルタリングを反復的に行う
BAはアウトライヤに大きく影響→もう一度RTをやると結果が良くなる
アウトライヤをフィルタリングした後にBAすれば、モデルが劇的に良くなる
2016/7/24 CV勉強会@関東 CVPR2016読み会 18
4.5 Redundant View Mining
BAは大きなボトルネック
提案方式の演算量内訳 (1: 改善前、2:改善後)
先行研究
Kushalら[文献33]
二つの画像間での共可視点の数で冗長なカメラを見つけて演算コストを削減
Niら[文献43]
観測データをサブマップに分割し、並列で最適化
Carloneら[文献11]
複数の低ランクな点を、一つの高ランクなカメラにまとめる(?)
提案手法
上記手法の良いとこどり
2016/7/24 CV勉強会@関東 CVPR2016読み会 19
4.5 Redundant View Mining
提案手法
1. affectなシーンとunaffectなシーンに分類
Affectの定義 : 直前に追加された画像 or アウトライヤが一定の割合以上含まれている画像
2. unaffectなシーンを視野のオーバーラップが大きな画像のグループに分類
共可視点の多さを下記Vabで評価
:i番目の画像で、Nx個の空間上の点が可視かどうかをNx桁の0/1で表現したベクトル
|Vab| > V (V:閾値) を超えた場合、グループに追加
閾値を下回る場合 or グループ内の画像数が一定以上になった場合:新しいグループを作成
3. グループ内の画像を一つのカメラとみなしてパラメータを統一・・・?
affectなシーンはパラメータが調整できるようそのままにしておく
unaffectなシーンの最適化をいかに効率よくさぼるかが狙い?
2016/7/24 CV勉強会@関東 CVPR2016読み会 20
babaabV vvvv 
iv
性能評価
比較手法
Incremental SfM : Bundler, Visual SfM
global SfM : Theia, DISCO
データセット
17種類のデータセットで比較
Quadデータセットはカメラ位置のground truth付き
2016/7/24 CV勉強会@関東 CVPR2016読み会 21
Romeデータセットの実行結果
性能評価
実行時間と精度の比較
実行時間はTheiaが早い (global SfMのため)
VisualSfM (incremental) よりわずかに遅い。精度は同等。
Completenessがsignificantly outperform (Avg. Track Lengthが長い?)
2016/7/24 CV勉強会@関東 CVPR2016読み会 22
fin.
2016年7月24日 @OZ_Z_C
2016/7/24 CV勉強会@関東 CVPR2016読み会 23

20160724_cv_sfm_revisited