2023年5月23日、弊社事務所にて「第2回3次元再構成を実装する会」を開催しました。参加者のうち有志が課題のデータを用いて実装し、発表する会です。 第2回となる今回は第1回と同様、Dinosaurのデータを用いて3次元再構築、SLAM、バンドル調整等を行い、前回からの進捗を報告し合いました。
第2回3次元再構成を実装する会を開催
大政の発表
大政は「numpyを使ったバンドル調整の実装例」を発表しました。
今回のバンドル調整は以下のようなものとする。
1. M枚の画像、それにわたる特徴点 x が N個与えられた状況を考える
2. 未知数はカメラの内部パラメータ \({\bf K}\)、回転 \({\bf R}\)、遷移 \({\bf t}\)、各特徴点 \(\alpha\) の3D world座標 \({\bf w}_\alpha\) とする。
3. これをレーベンバーグ・マーカンタイル法を用いたバンドル調整で求める
これを定式化する。
特徴点を \({\bf w}\) を画像にprojectして \({\bf x}\) となるとして、この対数尤度を最大化させることを考える。
$$\hat{\bf \xi} = argmax_{\bf \xi} \left[ \sum_{\alpha=1}^N \sum_{\kappa=1}^M \log \left[ Pr({\bf x}_{\alpha, \kappa} | {\bf w}_\alpha, {\bf K}, {\bf R}_{\kappa}, {\bf t}_{\kappa}) \right] \right]$$
\({\bf \xi }\)は未知のパラメータ全て。
projectした特徴点と実際の画像状の特徴点との誤差が理想的なpinholeモデルに対して正規分布に従うと考えて最小二乗法で解く。
\begin{eqnarray}
\hat{\bf \xi} &= argmax_{\bf \xi} \left[ \sum_{\alpha=1}^N \sum_{\kappa=1}^M \log \left[ {\rm Norm}_{{\bf x}_{\alpha, \kappa} } \left[ \left[ {\bf K}{\bf R}_{\kappa}^{\top} ( {\bf I} \ | – {\bf t}_{\kappa}){\bf w}_\alpha \right] , \sigma^2 {\bf I} \right] \right] \right] \\
&= argmin_{\bf \xi} \left[ \sum_{\alpha=1}^N \sum_{\kappa=1}^M \left[ \left( {\bf x}_{\alpha, \kappa} – {\bf K}{\bf R}_{\kappa}^{\top} ( {\bf I}\ | – {\bf t}_{\kappa}){\bf w}_\alpha \right)^{\top} \left( {\bf x}_{\alpha, \kappa} – {\bf K}{\bf R}_{\kappa}^{\top} ( {\bf I} \ | – {\bf t}_{\kappa}){\bf w}_\alpha \right) \right] \right] \\
&= argmin_{\bf \xi} E
\end{eqnarray}
詳細は以下のQiita記事をご覧ください。