catia怎么将特征参数化_VSLAM中特征点的参数化表示
VSLAM中特征點的參數化表示有很多,最直接的是用三維坐標XYZ來表示,但通常大家更喜歡用逆深度表示,因為逆深度優(yōu)勢在于能夠建模無窮遠點。Open VINS文檔中給出了五種特征參數化表示:Global XYZ,Global Inverse Depth,Anchored XYZ,Anchored Inverse Depth,Anchored Inverse Depth (MSCKF Version),區(qū)別在于:
- Global vs Anchored:特征點的表示是全局坐標系的坐標還是局部相機坐標系的坐標。
- XYZ vs Inverse Depth:使用的XYZ還是逆深度
- Two different Inverse Depth:兩種不同類型的逆深度參數
特征的參數化表示即以何種方式表示特征點的位置,在優(yōu)化中它決定了特征以何種參數進行的迭代更新
,在EKF中它決定了以何種參數構建高斯模型。不論在優(yōu)化還是EKF中,我們關心的都是特征在圖像上的投影與特征參數之間的關系(Jacobian)。本文理論推導全部參考Open VINS,感興趣的可以直接閱讀原版,鏈接如下:
Measurement Update Derivations " Camera Measurement Update?docs.openvins.com1. 特征點重投影過程
設k時刻特征在圖像上的投影為
,特征參數為,特征參數到圖像投影的轉換過程為:根據鏈式法則有:
下面分別計算每一步的轉換關系及Jacobian。
a. normalize平面轉到圖像平面
對于Normalize平面上的觀測點
,先畸變得到畸變觀測點,再通過內參矩陣轉成圖像平面上的觀測點 。轉換關系:
- 對于Radial畸變模型:
- 對于Fisheye畸變模型:
Jacobian:
- 對于Radial畸變模型:
- 對于Fisheye畸變模型:
b. 透視投影
轉換關系:
Jacobian:
c. 剛性變換
轉換關系:
Jacobian:
2. 特征參數表示
針對不同的特征參數表示
,都先將其轉換成世界系下的XYZ,即,再投影到圖像上。這樣做的好處在于到的轉換關系和Jacobian保持不變,只需要構造不同的并推導,就能很方便求得與的關系。a. Global vs Anchored
Global XYZ表示為:
,很容易寫出Jacobian為:Anchored XYZ表示選擇某個相機坐標系作為Anbchor坐標系
,用特征在下的位置作為參數表示,Anchored XYZ的表示為:,很容易寫出Jacobian為:值得一提的是參考文檔中將世界系中的相機位姿拆分成了IMU位姿以及相機到IMU的外參,這樣是為了分別對IMU位姿和相機外參求Jacobian,這里只討論了對特征點的Jacobian,所以未進行拆分。
b. 球坐標逆深度 vs MSCKF逆深度
逆深度顧名思義是用
作為特征參數,根據逆深度和一個單位方向向量(baering)共同確定3D空間中的一個點:逆深度的好處是能夠表示無窮遠點(
),當特征點較遠時, 數值比較大,直接估計 會存在數值問題,此外,有論文覺得將逆深度建模成高斯分布 比直接將深度建模成高斯分布 效果要更好。單位方向向量
的構造有兩種,一種是《Inverse Depth Parametrization for Monocular SLAM》中提出的球坐標表示,另一種是《 A multi-state constraint kalman filter for vision-aided inertial navigation》(MSCKF)中提出的表示。- 球坐標表示:
- MSCKF表示:
可以看到MSCKF的
表示比球坐標表示要簡潔得多,但MSCKF逆深度有個缺點是當時,,存在數值奇異,所以只能用在相機坐標系,因為相機系下特征點的深度都大于0。而球坐標逆深度僅在都趨近于0時才存在數值奇異,所以能用在全局坐標系。將Achored和逆深度結合起來得到Anchored逆深度表示:
總結
以上是生活随笔為你收集整理的catia怎么将特征参数化_VSLAM中特征点的参数化表示的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载] java(三)对象的序列化与s
- 下一篇: android dp转px的公式_And