Lie theoryとJacobian 1
January 05, 2021自分はVisual SLAMを作りたいと思い立ちBasaltのコードを読み始めた。 するとなかなか理解できないLie群関係のJacobianがたくさん登場した。これらJacobianを導出するためいろいろと調査した。せっかくなので本ブログにまとめたい。
したがって、本記事ではBasaltに登場する再投影誤差のJacobianを導出するまでを説明したい。
導出するJacobian:
再投影誤差:
これら式の記号の説明は本文内で行う。
もし、自分の間違った解釈や直したほうが良い表現を見つけた方は本ブログのリポジトリのIssueまで報告いただけるととてもありがたいです。コメント機能は組み込んでおりませんので…。
Jacobian導出までのロードマップ
初めにBasaltでの問題設定を説明し下記ロードマップに従って書き進めていこうと思う。
Basaltの問題設定
Basaltには以下の特徴がある。
- ランドマークの位置はHostFrameで扱われる。HostFrameとはあるランドマークを初めて観測した画像のカメラ座標系のこと。
- ランドマーク位置はStereo graphic projectionされて保持される。多くの場合ランドマーク位置は世界座標系の座標として表現されるが、BasaltではHostFrameで表現したランドマーク位置をStereo graphic projectionして保持する。
- ランドマークは必ずどれかのフレームにHostされる。このランドマークをHostしていないが観測しているフレームのカメラ座標系をTargetFrameと呼ぶ。
上記特徴からBasaltにおける再投影誤差は以下のような式で表現される:
記号の説明:
- : ランドマークをTargetFrame にて観測したときの再投影誤差。
- : TargetFrame で表現された位置をTargetFrameの画像平面に投影するカメラモデルを表現する関数。
- : TargetFrameから世界座標系への座標系変換。、をそれぞれTargetFrame、世界座標系で表現した位置とすると、が成り立つ。
- : HostFrameから世界座標系への座標系変換。
- : Stereo graphic projectionされたランドマーク位置をHostFrameにおける3次元位置に変換する関数。Stereo graphic projectionの逆関数。
- : Stereo graphic projectionされたランドマーク位置。3次元位置をStereo graphic projectionすると二次元の平面に展開されるため、位置の情報は残らず方向しかわからない。そこで、として距離の逆数も保持している。
- : ランドマークをTargetFrame にて観測したときの画像上位置。
こういった再投影誤差を考えているためGaussNewton法などでカメラPoseやランドマーク位置を推定するためには下記のJacobianを計算する必要がある。
- : Stereo graphic projectionしたランドマーク位置についての再投影誤差のJacobian
- : TargetFrameについての再投影誤差のJacobian
- : HostFrameについての再投影誤差のJacobian