Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
最近のSfM手法まとめ - COLMAP / GLOMAPを中心に -
Search
hiroki kawauchi
December 26, 2024
Technology
3
360
最近のSfM手法まとめ - COLMAP / GLOMAPを中心に -
SfMのデファクト手法であるCOLMAPとGLOMAP(ECCV2024)の比較を中心に、Kaggle IMCコンペなどで使用された手法などを紹介しています。
hiroki kawauchi
December 26, 2024
Tweet
Share
More Decks by hiroki kawauchi
See All by hiroki kawauchi
CVPR2024 参加報告
kwchrk
0
9
第61回 コンピュータビジョン勉強会「Mip-Splatting: Alias-free 3D Gaussian Splatting」
kwchrk
1
380
20230827_PLATEAU_Hackathon_G
kwchrk
0
560
Other Decks in Technology
See All in Technology
[Oracle TechNight#85] Oracle Autonomous Databaseを使ったAI活用入門
oracle4engineer
PRO
1
120
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
180
Wantedly での Datadog 活用事例
bgpat
2
690
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
280
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
190
エンジニアカフェ忘年会2024「今年やらかしてしまったこと!」
keropiyo
0
100
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
140
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
550
小学3年生夏休みの自由研究「夏休みに Copilot で遊んでみた」
taichinakamura
0
180
組み込みアプリパフォーマンス格闘記 検索画面編
wataruhigasi
1
140
多領域インシデントマネジメントへの挑戦:ハードウェアとソフトウェアの融合が生む課題/Challenge to multidisciplinary incident management: Issues created by the fusion of hardware and software
bitkey
PRO
2
120
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
180
Featured
See All Featured
Writing Fast Ruby
sferik
628
61k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Speed Design
sergeychernyshev
25
680
Building Adaptive Systems
keathley
38
2.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.1k
We Have a Design System, Now What?
morganepeng
51
7.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
A Philosophy of Restraint
colly
203
16k
Statistics for Hackers
jakevdp
796
220k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Transcript
AI 2024.12 Hiroki Kawauchi 株式会社ディー・エヌ・エー 最近のSfM手法まとめ COLMAP, GLOMAP, DFSfM, VGGSfM,
ACE0, MASt3R-SfM
AI 2 自己紹介 河内大輝 /Hiroki Kawauchi AIエンジニア・データサイエンティスト(社会人2年目) @DeNA …ゲームなどでの、LLM・Computer Visionを用いたAIプロダクト開発
@大学時代/インターン/個人開発 まちづくり・交通分野 × AI …3D都市モデルとAI Agentを用いた、まちづくりのためのアプリ開発 …衛星画像を用いた、物流モニタリングシステムの新規事業開発 宇宙利用・脱炭素分野 × AI …衛星画像を用いた、森林・炭素吸収モニタリングシステム開発 …衛星画像からの物体検出モデル研究[Kawauchi & Fuse, 2022] linkedin.com/in/hiroki-kawauchi https://github.com/hiroki-kawauchi https://x.com/kwchrk_
AI 3 項目 01|Structure-from-Motion(SfM) 02|Incremental SfM (COLMAP) 03|Global SfM (GLOMAP)
04|学習ベースSfM 05|課題・まとめ
AI 4 01 Structure from Motion(SfM)
AI 5 Structure from Motion(SfM)とは ▪ 複数枚の画像から、撮影したカメラポーズ(パラメータ)と 3次元構造を推定する手法群 ▪ 3次元構造は、基本的に疎な点群として出力
利用用途 ▪ 3D Reconstruction(点群→3Dジオメトリ・ポリゴン化) ▪ 3D Visualization ▪ Multi-View Stereo(MVS:疎→密な点群を推定) ▪ Novel View Synthesis(NeRF・3DGS:自由視点画像合成) ▪ これらは疎な点群とカメラポーズを入力 ▪ Camera Relocalization ▪ 3次元点群(地図)と画像をマッチングしてカメラ位置推定 Structure from Motion(SfM) 図・出典:https://www.youtube.com/watch?v=JpSSMMMreko
AI 6 SfMに似た手法群の分類 ▪ Visual SLAM(Simultaneous Localization And Mapping) ▪
VO(Visual Odometory) ▪ VOは局所移動量の推定に主眼 (ループクロージングもなし) ▪ 本資料ではVisualSLAMやVOは扱わない(狭義のSfM) SfM・Visual SLAM・VO 図・表出典 :https://speakerdeck.com/ksakurada/visual-slamru-men-fa-zhan-falseli-shi-toji-chu-falsexi-de
AI 7 SfM手法のおおまかな分類 SfM手法分類 出典:https://www.youtube.com/watch?v=JpSSMMMreko(改変) 分類 特徴点ベースSfM 学習ベースSfM Incremental SfM
Global SfM 手法 ・Bundler[SIGGRAPH2006] ・VisualSfM[3DV2013] ・COLMAP[CVPR2016] ・OpenMVG[ICCV2013] ・Theia[2016] ・GLOMAP[ECCV2024] ・PixSfM[ICCV2021] ・VGGSfM[CVPR2024] ・DFSfM[CVPR2024] ・ACE0[ECCV2024] ・MASt3R-SfM[2024] 特徴 ・1枚ずつ画像を追加処理 ・ロバストだが効率↓ ・デファクト的(COLMAP) ・階層的にクラスタリングし て追加していく手法も ・全画像を一括処理 ・効率的だがロバスト性↓ ・少ない枚数でも動作 ・ロバストだが効率↓ ・特に学習時計算コスト↑
AI 8 02 Incremental SfM (COLMAP)
AI 9 速度・精度のバランスの取れたSfMのデファクトスタンダード手法:COLMAP ▪ ここではCOLMAPをベースにIncremental SfMの手順を説明する ▪ Library page: https://colmap.github.io/
▪ Paper: https://openaccess.thecvf.com/content_cvpr_2016/papers/Schonberger_Structure-From- Motion_Revisited_CVPR_2016_paper.pdf ▪ Code: https://github.com/colmap/colmap COLMAP[Schönberger & Frahm, CVPR2016]パイプライン Incremental SfM 図・出典:https://colmap.github.io/tutorial.html
AI 10 Feature Extraction & Matching ▪ 疎な特徴点(キーポイント検出+特徴量記述)を抽出 ▪ COLMAP:回転・拡大縮小・照明変化に頑健で軽量なSIFT(派生のRootSIFT)
▪ 近年はSuperPoint、DISK、ALIKEDなども ▪ オーバーラップした画像ペアでマッチング ▪ 特徴点をベースにマッチングを行う ▪ 近年はSuperGlueや派生のLightGlueなど ▪ cf) LoFTR等のキーポイント不要の密なマッチング手法も ▪ 但し、異なるペアでマッチングの一貫性が得られず、COLMAPとは相性悪い* ▪ cf) オーバーラップした画像ペア選択にGlobal Featureを用いて類似度を測ることも ▪ Kaggle IMCコンペ2024では、NetVLADやDINOv2など* COLMAP [Schönberger & Frahm, CVPR2016] 上図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf *出典 :https://zenn.dev/yume_neko/articles/050c204c3afd20 下図・出典:https://colmap.github.io/tutorial.html
AI 11 Geometric Verification ▪ 射影変換を推定・分解して、画像間の対応関係(相対回転・並進)を計算 ▪ 画像間の対応関係を結んだグラフをシーングラフと呼ぶ ▪ RANSAC等で外れ値除去も行い、ロバストに推定する
COLMAP [Schönberger & Frahm, CVPR2016] 右図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 12 Geometric Verification ▪ 射影変換のモデルは、基礎行列F・基本行列E・ホモグラフィ行列Hの3つ ▪ 内部パラメータ既知:キャリブレーション:E、未知:F ▪ Planar・Panoramicな場合は行列が縮退するためHが推定に適する
COLMAP [Schönberger & Frahm, CVPR2016] 上表/図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 13 COLMAP [Schönberger & Frahm, CVPR2016] 図・出典:https://colmap.github.io/tutorial.html Geometric Verification
※基礎行列F・基本行列E・ホモグラフィ行列Hなどの詳細は↓などが詳しい ▪ 櫻田健(2021)「Visual SLAM入門 〜発展の歴史と基礎の習得〜」p.56~ ▪ この後の三角測量・バンドル調整の詳細などもこちらを参照されたい ▪ https://speakerdeck.com/ksakurada/visual-slamru-men-fa-zhan-falseli-shi-toji-chu-falsexi-de ▪ 他、(書籍)「ディジタル画像処理 [改訂第二版]」など
AI 14 Geometric Verification ▪ COLMAPでは、ロバスト性向上の工夫(Scene Graph Augmentation) ▪ ①Panoramicな画像ペアを見つける
▪ 焦点距離・基礎行列Fが求まらない→後の三角測量で使わないように ▪ [1]3つのモデルでGeometric Verificationを行い、Inlierの数Nを求める ▪ 基礎行列 、基本行列 、ホモグラフィ 個 ▪ RANSAC等を用いて、外れ値に頑健に推定 ▪ [2] のとき、正しいシーンと判定 ▪ [3](キャリブレーション正)かつのとき、三角測量した際の角度の メディアン値を用いてpanoramicか判定 COLMAP [Schönberger & Frahm, CVPR2016] 右図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 15 Geometric Verification ▪ ②WTFs(Watermark, Timestamp, Frames)が含まれる画像を除外 ▪ COLMAPは、ネット上の画像を用いた復元を目指した手法だったため
▪ [1]画面端でのInlierの数 ▪ [2] のとき、WTFsが含まれていると判定 COLMAP [Schönberger & Frahm, CVPR2016] 上図・出典 :https://www.vision.rwth-aachen.de/media/papers/weyand-tsai- wacv15.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 16 Reconstruction Initialization ▪ 初期画像ペアで3次元点群の初期ペアを算出 ▪ 初期値はロバスト性、精度等に大きな影響を与える ▪ 一般的に、オーバーラップが大きい画像ペアで密に取れるとロバストで正確
▪ Panoramicでないペアを選択し、三角測量・バンドル調整(後述)を行う ▪ →初期ペアのカメラパラメータ・3次元復元結果を得る COLMAP [Schönberger & Frahm, CVPR2016] 上図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 17 Image Regstraion ▪ 3次元モデルに新しい画像を1枚ずつ登録 ▪ PnP問題として解く ▪ 入力:3次元位置を算出済みの点・新しく登録する画像の特徴点
▪ 出力:カメラポーズ(外部パラメータ)・内部パラメータ(未キャリブレーションの場合) ▪ COLMAP:EPnP法で解く COLMAP [Schönberger & Frahm, CVPR2016] 上図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 18 Image Regstraion ▪ COLMAP:追加する画像選択の工夫(Next Best View Selection) ▪
良い画像=可視特徴点が豊富、かつ、画面全体に均等に分布、を測るスコアSを提案 ▪ 画面をL階層に四分木分割 ▪ 階層l(l=1,,,L)可視点有無バイナリ ▪ ▪ 最もSが大きい画像がベスト ▪ →可視特徴点のtrackを増やして ロバストに COLMAP [Schönberger & Frahm, CVPR2016] 上図・出典・参考 :https://www.slideshare.net/slideshow/20160724cvsfmrevisited/ 64319302 下図・出典:https://colmap.github.io/tutorial.html
AI 19 Triangulation(三角測量) ▪ COLMAP:RANSACを用いたロバストで効率的な三角測量 ▪ COLMAP:RANSACを用いた三角測量を導入(outlier対策) ▪ 十分にコンセンサスが取れた点を除外する(計算コスト対策) COLMAP
[Schönberger & Frahm, CVPR2016] 上図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html
AI 20 Bundle Adjustment(バンドル調整) ▪ 再投影誤差を最小化してモデルを修正 ▪ 再投影誤差=画像上の座標とカメラパラメータ/3次元特徴点から算出した座標の誤差 ▪ この処理を行わないと3次元モデルが破綻
COLMAP [Schönberger & Frahm, CVPR2016] 上図・出典 :https://demuc.de/tutorials/cvpr2017/sparse-modeling.pdf 下図・出典:https://colmap.github.io/tutorial.html πは内部パラメータ
AI 21 Bundle Adjustment(バンドル調整、BA) ▪ COLMAP:BA前後に三角測量+外れ値除去を反復的に行い、ロバスト性↑ ▪ COLMAP:Redundant View Miningによる効率化
▪ ①Incremental処理の中で、affect/unaffectな画像に分類 ▪ Affect: 直前に追加された or 外れ値が一定以上含まれる画像 ▪ ②Unaffectな画像を視野のオーバラップが大きな画像グループに集約 ▪ ③Unaffectなグループ内の画像は代表的なパラメータに集約 COLMAP [Schönberger & Frahm, CVPR2016] 参考: https://www.slideshare.net/slideshow/20160724cvsfmrevisited/6 4319302 下図・出典:https://colmap.github.io/tutorial.html
AI 22 性能評価 ▪ 実行時間:Global SfM(Theia)の1~4倍 ▪ 推定精度:従来のIncremental SfM(Visual SfM)と同程度
▪ ロバスト性:平均track lengthが長く、BAにおける冗長性が高く詳細までロバストにカバー COLMAP [Schönberger & Frahm, CVPR2016] 表・出典:https://arxiv.org/pdf/2407.20219
AI 23 03 Global SfM
AI 24 Global SfM 一般的なGlobal SfMのパイプライン ▪ ①画像群全体での類似度ベースでオーバーラップ画像の組を推定 ▪ ②特徴点抽出とマッチング
▪ ③画像間の相対的な回転・並進の推定 ▪ ④回転・並進平均化(rotation・translation averaging)等によるGlobalな並進・回転の整合 ▪ ⑤Globalな(三角測量・)バンドル調整 ▪ →一般にIncremental SfMより(並列化でき)速度↑だが、精度・ロバスト性↓ 図・出典: https://lpanaf.github.io/assets/poster/eccv24_glomap_poster.pdf
AI 25 OpenMVG・Theia 効率性の高いGlobal SfMにおける主要ライブラリ ▪ OpenMVG ▪ Library page:https://openmvg.readthedocs.io/en/latest/
▪ openMVGはIncremental/Global SfM両方実装 ▪ Paper:https://openaccess.thecvf.com/content_iccv_2013/papers/Moulon_Global_Fusi on_of_2013_ICCV_paper.pdf (OpenMVGのGlobal SfM機能として実装されている手法) ▪ Theia ▪ Library page:http://theia-sfm.org/(TheiaもIncremental/Global SfM両方実装) 図・出典: https://lpanaf.github.io/assets/poster/eccv 24_glomap_poster.pdf
AI 26 COLMAP並のロバスト性と、GlobalSfMの高速性の両立を目指した手法 ▪ ここではGLOMAPをベースにGlobal SfMの手順を説明する ▪ Project page: https://lpanaf.github.io/eccv24_glomap/
▪ Paper: https://arxiv.org/pdf/2407.20219 ▪ Last authorのSchönbergerはCOLMAP論文のfirst author ▪ COLMAP: Structure-from-Motion Revisited ▪ GLOMAP: Global Structure-from-Motion Revisited ▪ Code: https://github.com/colmap/glomap ▪ COLMAPと同様のオーナー・リポジトリ構成で展開(※2024/11現在GPUサポートなし) パイプライン GLOMAP [Pan et al, ECCV2024] 図・出典: https://lpanaf.github.io/ass ets/poster/eccv24_glomap _poster.pdf
AI 27 Feature Extraction & Matching ▪ COLMAPと同様 Two-view Estimation(Geometric
Verification) ▪ エピポールに近い特徴点や、三角測量角度が小さい特徴点もノイズが大きくなるので除外 View Graph Calibration ▪ 未キャリブレーションの場合、基礎行列Fから焦点距離fを推定 Relative Pose Decomposition ▪ 推定されたfから基本行列Eを再度推定 ▪ 相対的なカメラポーズ(並進・回転)=シーングラフを推定 GLOMAP [Pan et al, ECCV2024] 図・出典: https://www.youtube.com/watch?v=JpSSMM Mreko
AI Rotation Averaging ▪ 各カメラの絶対的な回転成分 ・カメラiからjを見た相対的な回転 とする ▪ 前のステップで推定したカメラ間の相対回転 を元に、カメラの絶対的な回転成分 を推定 ▪ 目標:以下の最適化問題を解く ▪
すべての相対回転について (幾何的条件)を満たすすべての を推定する ▪ 目的関数 ▪ ρ:ロバスト化関数(Huberなど), d:距離関数, p:ノルム次数 28 GLOMAP [Pan et al, ECCV2024] 右図・出典 :https://www.slideshare.net/slideshow/linfinity-slam 43d/132892018 下図・出典: https://www.youtube.com/watch?v=JpSSMMMreko
AI 29 GLOMAP [Pan et al, ECCV2024] 図・出典: https://www.youtube.com/watch?v=JpSSMM Mreko
Rotation Averaging ▪ 最適化の手法 ▪ 最適化の枠組みは、以下の[Chatterjee et al, ICCV2013]のものを利用(Theiaと同じ) ▪ Chatterjee et al, “Efficient and Robust Large-Scale Rotation Averaging”, ICCV2013 ▪ ①Lie代数を用いて局所線形化した回転量の連立方程式を解き、 全回転を同時最適化するアルゴリズム ▪ ② ①について、以下で2種類の手法で2段階に最適化 ▪ [1]外れ値にロバストなL1ノルム最小化 ▪ [2]外れ値に鋭敏だが精度の良い貪欲法
AI Rotation Averaging ▪ ※基準を決めないとシーングラフ全体の絶対的な回転は決められない(ゲージ自由度) ▪ ある1つの =I(単位行列)となるように絶対座標を設定することで対処 ▪ それでもその の3軸周りに回転させる自由度は残ってしまう ▪
実用上はその自由度を残しても1つの最適解は得られる ▪ Ground Truthのカメラポーズ等と比較するときは、最も近づく変換を噛ませてから比較 ▪ GLOMAPコードには、重力センサデータを用いて自由度3→1に減らす手法も実装 ▪ Pan et al,”Gravity-aligned Rotation Averaging with Circular Regression”, ECCV2024 ▪ (GLOMAPと同じ著者) ▪ Paper: https://arxiv.org/abs/2410.12763 30 GLOMAP [Pan et al, ECCV2024] 図・出典: https://www.youtube.com/watch?v=JpSSMM Mreko
AI 31 Global Positioning ▪ Globalな三角測量とカメラ並進成分推定を同時に行う ▪ OpenMVG・TheiaはTranslation Averaging(TA;並進成分推定のみ)後でGlobal三角測量 ▪
並進成分単体で最適化するTAはいくつか推定が困難な場合(後述)がある GLOMAP [Pan et al, ECCV2024] 図・出典: https://www.youtube.com/watch?v=JpSSMM Mreko
AI 32 Global Positioning ▪ 並進成分を三角測量と一体的に推定したいが、バンドル調整のような再投影誤差は最適化に困難性 ▪ 非凸性が高く初期値に敏感・非有界で外れ値に敏感→ロバスト性↓ ▪ BATA
Loss[1](カメラ光線に関する誤差関数)による最適化を採用 ▪ X:点kの3次元位置, c:カメラiの3次元位置, d:正規化係数, ▪ : カメラiから点kを観測するカメラ光線 ▪ 非線形最小二乗法(Levenberg-Marquardt法)を用いて最適化 ▪ メリット ▪ 双線型形式:ランダムな初期値(X,cは一様分布・dは1)でも安定的に収束 ▪ 有界な誤差関数:最適なdを選ぶと、誤差項は[0,1]となり有界で、外れ値に頑健 ▪ 2つの光線がなす角θとすると誤差項は以下と等価 GLOMAP [Pan et al, ECCV2024] [1]Zhuang, et al., ”Baseline desensitizing in translation averaging.”. CVPR2018
AI 33 Global Positioning ▪ Translation Averagingで困難な場合でも対応 ▪ 内部パラメータが不正確な場合にもロバスト ▪
Translation averagingでは相対並進成分の推定に内部パラメータが必要 ▪ Co-linearな(同一直線状を動く)場合にもロバスト ▪ Translation Averagingでは、2視点間の相対的な 並進ベクトルからカメラの絶対位置を推定 ▪ Co-linearな場合不良設定となり不安定化 GLOMAP [Pan et al, ECCV2024] 図・出典: https://www.youtube.com/watch?v=JpSSMM Mreko
AI 34 Global Bundle Adjustment ▪ ここまでで求まった、絶対カメラポーズと3Dモデルを再度調整 ▪ バンドル調整前に角度誤差に基づいて3次元点をフィルタリング ▪
未キャリブレーションカメラについては大きめの誤差を許容 ▪ Levenberg-MarquardtとHuber損失を用いたGlobalバンドル調整を複数回実行 ▪ カメラ内部パラメータが事前に分かっていない場合、精度が制限される ▪ カメラ回転成分を固定→内部パラメータと並進成分を最適化 ▪ 再投影誤差によって特徴点(トラック)をフィルタし、その割合が0.1%未満で停止 GLOMAP [Pan et al, ECCV2024] 図・出典: https://www.youtube.com/watch?v=JpSSMM Mreko
AI 35 性能評価 ▪ キャリブレーション済みの場合 ▪ 精度(ロバスト性):COLMAPと同等以上の3次元復元 ▪ 実行速度:Theia(2倍)>GLOMAP~OpenMVG>(2~30倍)>COLMAP ▪
GLOMAP [Pan et al, ECCV2024] 図・出典 :https://www.youtube.com/watch?v=JpSS MMMreko
AI 36 性能評価 ▪ 未キャリブレーションの場合 ▪ 精度(ロバスト性):COLMAPと同等以上の3次元復元 ▪ 実行速度:Theia(2倍)>GLOMAP~OpenMVG>(2~4倍)>COLMAP •
10,000枚の画像・H100x8[1] ◦ COLMAP 50時間 vs GLOMAP 16時間 ▪ Pararell image matching & indexingを実装したとのこと • 1,276枚・キャリブレーション済み・64GB CPU[2] ◦ 22分07秒 • 100枚の画像・キャリブレーション済み・32GB M2 Macbook Pro CPU ◦ 40秒程度・メモリMAX3% ◦ cf)COLMAP: 240秒・メモリMAX2% GLOMAP [Pan et al, ECCV2024] [1]:https://www.linkedin.com/posts/huguens-je an-b82186b4_glomap-vs-colmap-google-verte x-ai-model-activity-7240502288614633472-co 9i/ [2]https://note.com/ngc_shj/n/n81b0f0f7fd3c
AI 37 04 学習ベースSfM
AI 38 Kaggle Image Matching (IMC) 2023(カメラポーズ推定)で1位手法 ▪ 特徴点を用いないことで、テクスチャが少ないシーンにも頑健なSfM ▪
Project page: https://zju3dv.github.io/DetectorFreeSfM/ ▪ Paper: https://arxiv.org/abs/2306.15669 ▪ Code: https://github.com/zju3dv/DetectorFreeSfM DF(Detector-Free)SfM [He et al, CVPR2024] 図・出典:https://arxiv.org/abs/2306.15669
AI 39 特徴点検出器を用いないことで、テクスチャが少ないシーンにも頑健なSfM ▪ Detectorを用いず、密なマッチングマッチング→量子化してマッチング ▪ Coarseな推定→iterativeにrefineするという多段構成 ▪ バンドル調整に加えて、トポロジー調整により3次元モデルのrefinement DF(Detector-Free)SfM
[He et al, CVPR2024] 図・出典:https://arxiv.org/abs/2306.15669
AI 40 性能評価・テクスチャが少ない場合にも頑健。処理時間はCOLMAPの6倍。 ▪ カメラポーズ推定・3次元復元ともに従来の学習ベース手法(PixSfM)より改善 ▪ 従来の学習ベースの手法に比べてテクスチャが少ない状況でも良好な推定結果(下図) ▪ 計算時間・メモリ ▪
学習:V100 GPU・約30時間 ▪ 推論 ▪ 時間:画像約15000枚のシーンで、COLMAPの約6倍(3.2時間vs19.7時間) ▪ BA時のメモリ:画像約2000枚のシーンで、PixSfMの約1/10(21.2GBvs2.63GB) DF(Detector-Free)SfM [He et al, CVPR2024] [表・出典:https://arxiv.org/abs/2306.15669
AI 41 Meta・Kaggle Image Matching (IMC) 2024(カメラポーズ推定)で1位手法 ▪ Kaggle Image
Matching 2024(カメラポーズ推定)でトリック除いた項目で1位[1] ▪ ※メモリ制限のため、COLMAPで得たトラックをVGGSfMのモジュールでrefine ▪ Project page: https://vggsfm.github.io/ ▪ Paper: https://arxiv.org/abs/2312.04563 ▪ Code: https://github.com/facebookresearch/vggsfm ▪ Non-Commercialライセンス VGGSfM [Wang et al, CVPR2024] [1]・図・出典:https://www.youtube.com/watch?v=KG-_i12fU_A
AI 42 E2E微分可能・Global SfM的に全画像について同時推定 ▪ E2E微分可能・Global SfM的にすべての画像について同時推定 ▪ 画像ペアのmatchingではなく、point trackingで特徴点を追う
▪ その後Deepカメラポーズ推定・三角測量・バンドル調整 ▪ 理論的には一括処理可能だが、実装上はバッチ処理で学習・推論 ▪ Point Tracking ▪ 入力:クエリポイントを含む複数画像→出力:各画像間の対応点のトラック ▪ Coarse Tracker→fine Trackerで処理 VGGSfM [Wang et al, CVPR2024] 図・出典 :https://arxiv.org/abs/2312.04563
AI 43 性能評価 ▪ 計算時間・メモリ ▪ スケーラビリティに制約(3-30枚に最適化・数千枚規模の処理は難しい) ▪ 学習:32 NVIDIA
A100(80GB) ▪ 推論:1 NVIDIA A100・25フレーム/4096クエリポイントで5秒程度 ▪ 性能(表はカメラポーズ精度) ▪ 既存のCOLMAP(SIFT)を大きく上回る精度・学習ベースでもトップレベルの性能を実現 VGGSfM [Wang et al, CVPR2024] 表・出典 :https://arxiv.org/abs/2312.04563
AI 44 Niantic・自己教師あり学習を用いた高速な学習ベースSfM ▪ Project page: https://nianticlabs.github.io/acezero/ ▪ Paper: https://arxiv.org/abs/2404.14351
▪ Code: https://github.com/nianticlabs/acezero ▪ Non-Commercialライセンス ACE0 [Brachmann et al, ECCV2024] 図・出典 :https://arxiv.org/abs/2404.14351
AI 45 Niantic・自己教師あり学習を用いた高速な学習ベースSfM ▪ 画像からシーンの3D座標をNNで直接予測 ▪ 先行手法のACE[CVPR2023]の枠組みを利用 ▪ カメラパラメータのRefinementもNNで行う ▪
予測された3D座標・カメラパラメータを用いた再投影誤差を最小化(自己教師あり学習) ▪ 再投影誤差による最適化と、RANSAC+PnPによるカメラポーズ推定を交互に繰り返す ACE0 [Brachmann et al, ECCV2024] 図・出典 :https://arxiv.org/abs/2404.14351
AI 46 性能評価・NeRFによるNovel View Synthesis性能の評価 ▪ カメラポーズ等の直接的な評価ではなく、SfM結果を用いたNeRFのNVS性能評価比較を行っている ▪ Scaniverseなどを提供するNianticなので、主にNVSに関心があったのでは ▪
※COLMAPを正とした簡単な比較はある ▪ NVS性能では、COLMAPと同等の性能(PSNR/SSIM/LPIPS)を実現 ▪ 計算時間・メモリ ▪ GPU前提ではあるがCOLMAPよりも大幅に高速(特に画像枚数が多い場合) ▪ V100 1枚で実行可能 ACE0 [Brachmann et al, ECCV2024] 図・出典 :https://arxiv.org/abs/2404.14351
AI 47 NAVER・3D基盤モデルDUSt3Rからの発展としてのSfM ▪ DUSt3R→MASt3R→MASt3R-SfM ▪ DUSt3R[CVPR2024]:画像ペアから点群を推定する3D基盤モデル ▪ MASt3R[ECCV2024]:DUSt3Rでは不正確だった特徴マッチングを明示的に追加学習 ▪
MASt3R-SfM:MASt3Rの後処理を精緻化することで高精度なSfMを実現 ▪ Paper page: https://arxiv.org/abs/2409.19152 ▪ Code: https://github.com/naver/mast3r/tree/mast3r_sfm ▪ Non-Commercialライセンス ▪ DUSt3R・MASt3R・MASt3R-SfMについては以下の資料が詳しいため、そちらを参照ください ▪ https://speakerdeck.com/spatial_ai_network/dust3r-mast3r-mast3r-sfm MASt3R-SfM[Duisterhof et al, 2024]
AI 48 05 課題・まとめ
AI 49 依然として残る課題:対称的・繰り返し模様への対応 ▪ 対称性が高い建物や繰り返しパターンのある場合にマッチングに失敗する Doppelgangers[Cai et al, ICCV2023] ▪
2枚の画像が同じ3D表面かどうかをバイナリ分類するモデル・データセット(76,000枚)を提案 ▪ COLMAPで失敗した12/16例を正しく修正できた SfMの残る課題:対称的・繰り返し模様 図・出典:https://arxiv.org/pdf/2309.02420
AI 50 依然として残る課題:対称的・繰り返し模様への対応 Kaggle IMC2024では、MST(最小全域木)を利用した2段階のSfMも[1] ▪ 2nd solution ▪ ①Coarse
Reconstruction ▪ 画像の類似度グラフを構築し、MSTを計算して間引き、SfMを実行 ▪ ②Fine Reconstruction ▪ ①の結果に、MSTに含まれない画像を加えていき、Outlierはフィルタ SfMの残る課題:対称的・繰り返し模様 [1]・図・出典:https://www.kaggle.com/competitions/image-matching-challenge-2024/discussion/510499
AI 51 ▪ SfMとは、複数枚の画像から、撮影したカメラポーズ(パラメータ)と 3次元構造(疎な点群)を推定する手法群 ▪ SfM(狭義)は、VisualSLAMやVOに対して、オフライン処理による 大域的な整合性を担保する手法群 ▪ SfMには、特徴点ベース・学習ベースの手法がある
▪ 特徴点ベースの中で、Increment/Global手法 ▪ COLMAPはロバスト性に強み・デファクト的 ▪ GLOMAPはCOLMAP並のロバスト性と高速性を両立(COLMAPの数倍) ▪ 学習ベースには、特徴点によらないMatching/Trackingを活用も ▪ 対称性・繰り返し模様への対応は未だに課題 ▪ 対象画像の分類やMSTなどを使った対処法も まとめ
AI 52 EOF