質問: BundlerのSFMでお聞きしたいことがあります
回答: リクエストは結構だが、これが最後だよ。 学術論文の解読を匿名で、しかも無料でやらせようとか、あまり他人の専門知識と学問を舐めるんじゃない。 身分を明らかにして大学の教授にでも聞きなさい。 大体あってるが、所々致命的な読み違いや読み落としがあるように思う。 >I、まずカメラのパラメータを推定するために... 重要な点を読み落としてる。 ここには方程式の退化を避けるために、点の集合が同一平面に乗らないようにデータを選択する工夫が入っている。 このために候補となる対応点集合を平面射影変換の方程式に当てはめて支持されるかどうかを調べている。 平面射影変換の方程式を満たしている場合は点の集合が同一平面に乗ってるってこと。 だからできるだけ平面射影変換の方程式が満たされないような点を選ぶ、とある。 > まずIIの段階で5点アルゴリズムでカメラパラメータを推定とありますが、これは5点アルゴリズムでエッセンシャル行列を算出しバンドル調整で最適化してから回転要素と並進要素のカメラパラメータに分解するということでしょうか? 恐らくRANSACの手続きを誤解している。 ここでのRANSACをnaiveに行うと (i) 基本行列の推定をランダムにとった最小セット(5点)で推定 (ii) その基本行列を支持するかどうか全データで検証 (iii) 最も多くの支持を得た基本行列に関して、支持したデータセットから線型解法で基本行列を推定 となるはず。 (iii) で推定した基本行列は線型解法由来だからまだ最適化の余地がある。 これを分解して作ったカメラの姿勢を二視点のバンドル調整で最適化するのだと思う。 ちなみに「基本行列」や「基礎行列」の推定でバンドル調整に踏み込む必要があるかどうかは散々議論されている。 詳しくは金谷の基礎行列推定の論文とかを当たるのが正しい。 ここでは古典的にして確実な方法として特徴点の三次元復元とカメラ校正を同時にやっているのだろう。 > 次にIIIでカメラの3次元位置が既知のものを選択とありますが... まったく違う。ここで選択するのは「既知の三次元座標を持つ特徴点」を観測するカメラ。 既知の三次元座標ってのは要するに復元済みの三次元点ってこと。 おそらくはここから伝統的な線型解法でcamera resectioning をするものと思われる。 この推定手続きもまたRANSAC化されている。 で、基礎行列で求まるのはあくまでの二視点の相対的な姿勢であって、ここで欲しい大域的な復元と整合性のある姿勢じゃない。 より専門的には「局所的な射影復元」しか得られない。 > 次にIVでここでのDLTは特徴点カメラ座標と3次元位置が既知なので、 ここは既に書いた。 > 最後に新しい点が追加される毎に全体をバンドル調整ですが観測量や変数がどのように指定するのかというか、この操作をどのように行なっているかが全然わかりません。 これはその筋の古典にして必ず引用される "bundle adjustment a modern synthesis" を当たること。 日本語なら情処研報チュートリアルの「バンドルアジャストメント,岡谷貴之」がいいかな。 そもそも bundler はオープンソースなんだからソースを読みな。 あと色んなデータセットについて試すのも面白いかもね。 JPEGをBMPとかにしてEXIFを潰すと途端にうまくいかなくなるデータとかがあってとても面白い。