トップ 問題解決の記録

stereo_fusion crash問題

前提: COLMAP密再構築(MVS)パイプラインの流れ

COLMAPのSfM(疎なカメラ位置推定)が完了した後、密な3D復元を行うMVS(Multi-View Stereo)パイプラインは以下の順で進む:

  1. image_undistorter: SfMで推定したカメラパラメータに基づき、入力画像の歪み補正とリサイズを行う
  2. patch_match_stereo: 補正済み画像群から、各画像の全ピクセルに対して深度値を推定し、depth map(深度マップ)を生成する
  3. stereo_fusion: 複数画像のdepth map群を統合し、1つの密な点群fused.ply)として出力する
  4. poisson_mesher: 密点群から三角形メッシュを生成する

つまり、stereo_fusionpatch_match_stereoの直後、poisson_mesherの直前という位置づけにある。

目的

patch_match_stereoで生成したdepth map群をstereo_fusionで統合し、1つの密な点群(fused.ply)として出力する。

問題

stereo_fusionが --input_type geometric モードでアクセス違反(STATUS_STACK_BUFFER_OVERRUN 0xC0000409)によりクラッシュ。同一の入力データでも実行のたびに異なるタイミングで落ちる不安定な挙動を示した。

再現実験(2026-06-09)

後日、s03の同一データを使って再現実験を実施した:

  1. patch_match_stereogeom_consistency=true で再実行 → 77枚すべて正常完了(約2.9分)
  2. stereo_fusion --input_type geometric を実行 → 正常完了(2,131,751点、約0.9分)
  3. 0xC0000409は再現しなかった

原因(再現実験後の考察)

当初は「CUDA 13.2環境との相性問題」と推定したが、再現実験で問題が再現しなかったことから、以下の複合要因が疑われる:

ただし、photometric に変更して以降このクラッシュが一切発生していないことは事実であり、geometric モードが特定の条件下で不安定であることに変わりはない。

対策

恒久対策

--input_typegeometric から photometric(輝度ベース)に変更。

影響

ステータス

恒久対策済み