多视图几何总结——摄像机模型
多視圖幾何總結——攝像機模型
- 多視圖幾何總結——攝像機模型
- 有限攝像機矩陣——推導
- 有限攝像機矩陣——計算
- (1)最小配置解
- (2)超定解(DLT)
- (3)幾何誤差
- 仿射無限攝像機
多視圖幾何總結——攝像機模型
攝像機模型相對來說比較基礎,針孔模型對于搞CV或者SLAM的人來說,是入門必須掌握的知識點,這里為了保證總結的完整性,同時也讓自己再鞏固下,抽了點時間進行一個簡單的總結。
多視圖幾何中對于相機模型的介紹主要分為有限攝像機和無限攝像機,有限攝像機就近似于我們非常熟悉的針孔模型,而無限攝像機書中主要介紹的是仿射攝像機,下面分別總結分析下:
有限攝像機矩陣——推導
先上圖
如上左圖所示,我們需要將一個空間點XXX映射到一個圖像點xxx上即
根據右上圖我們很容易推到處下面的變換:
這個結論是將圖像平面的原點設立在主軸與圖像平面的交點上,而實際上我們默認的圖像坐標系應該是位于圖像的左上角,向下為x軸向右為y軸,因此我們這里進行一個坐標系調整(可以理解為在齊次坐標下對點進行一個平移):
即
令
則上面的矩陣可以改寫為
這里的KKK就是內參,而XcamX_{cam}Xcam?指的是相機坐標系下的空間坐標,現在我們將其轉到世界坐標系下
其中C~\widetilde{\mathrm{C}}C為攝像機中心在世界坐標系下的坐標,結合上面的內參我們可以將針孔模型的最終結論寫成如下形式:
而我們所謂的攝像機矩陣就是
為了增加一般性,將KKK變為
其中sss為扭曲參數,這個參數的意義可以解釋為像素元素產生的扭曲似的x軸和y周不垂直,在現實生活中,這個參數不為零的情況一般出現在對一張照片再次重拍的情況,所以參數sss一般是為零的。那為什么要這么做呢?因為這樣我們可以將KKK看做是一個上三角矩陣,如果我們已經事先得到了相機矩陣PPP,我們可以很輕易地通過QR分解的分解的方法獲得KKK和RRR,從而確定相機的內參和相機的相對于全局坐標系的方向,在相機標定中就是這么做的。
順便提一句,上面這種情況下,相機矩陣一共11個自由度,秩為3.
有限攝像機矩陣——計算
有限攝像機矩陣計算的過程其實就是相機的標定過程,我們給定的數據是一組空間中的3D點XiX_iXi?和對應的2D圖像點xix_ixi?,求解一個3×4的矩陣PPP滿足xi=PXix_i=PX_ixi?=PXi?,這和計算單應矩陣、基礎矩陣的方法幾乎是一致的,可以參考多視圖幾何總結——基礎矩陣、本質矩陣和單應矩陣的求解過程,這里簡單分幾種情況討論下:
(1)最小配置解
上一節的文末提到了PPP矩陣的自由度是11,而我們一對點(指一個3D空間點和一個2D圖像點)能構成兩個約束,因此最小配置解需要的點的對數是6,但是最后一對點我們只需要知道x或者y方向的數據即可,最后構成一個Ap=0Ap=0Ap=0的方程,存在一維零空間,求解即可
(2)超定解(DLT)
在滿足某個歸一化的約束下,求∣∣Ap∣∣||Ap||∣∣Ap∣∣的最小值(為什么是這樣可以參考剛剛提到的博客里面單應矩陣的求解方法,這里有一點不同的是,這里需要對3D空間點進行歸一化,平移到原點后縮放使它們到原點的均方根距離是3\sqrt{3}3?,而不是2\sqrt{2}2?)
(3)幾何誤差
其實就是根據幾何意義建立一個優化目標,通過非線性優化的方法進行迭代優化,如下式:
,這是以圖像上的誤差作為優化目標,當然我們也可以用空間點的誤差作為優化目標,或者是兩個誤差一起優化,只是優化目標函數不同而已,這里可以將DLT或者最小配置解的結果作為迭代最小化的初始值,從書上的結果大概可以知道,非線性優化的方法會更加準確,但是肯定也會更加耗時。
上面提到的幾種方法是不考慮約束的(s=0,α1=α2)(s=0, \alpha_1=\alpha_2)(s=0,α1?=α2?),上面的方法其實也是可以在帶約束下進行求解的,簡單地說就是在幾何誤差的方法中我將約束確定下來只優化剩下了沒確定的六個參數,在DLT方法中就是進行一個矩陣映射,然后最小化映射后的結果。求出來矩陣PPP之后進行QR分解就可以獲得KKK和RRR了
這里在實際的算法操作中(例如張正友標定法)是不是一致的我還沒有來得及去確認…之后有時間再補上。
仿射無限攝像機
仿射無限攝像機可以將其理解為其攝像機中心在無窮遠平面,而仿射性質體現在將無窮遠點映射為無窮遠點,怎么理解呢?可以參考下這篇知乎如何理解無窮遠攝像機模型?,對比下面兩張圖片就明白了
第一張圖是有限攝像機拍出來的結果,第二張圖就是仿射無限攝像機拍出來的圖,可以發現在現實生活中平行的線(樓角)在這張圖片中也是平行的,這就是所謂的將無窮遠點映射為無窮遠點,用過Solidworks的同學應該記得咱們畫圖的時候就是用的這種視角,我對于這個理解就這么深了,這種相機矩陣在電影拍攝的場景中有所應用,在SLAM里面好像還沒有注意到相關的應用,因此不再深究
ok,有問題歡迎交流~
此外,對SLAM算法感興趣的同學可以看考我的博客SLAM算法總結——經典SLAM算法框架總結
總結
以上是生活随笔為你收集整理的多视图几何总结——摄像机模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 概率机器人总结——(扩展)卡尔曼滤波先实
- 下一篇: 概率机器人总结——占用栅格地图先实践再推