61 相机投影原理、相机模型中的坐标系统以及标定方法
0 引言
世界坐標系下的點如何投影到CCD鏡頭上,通過成像的方式得到點在二維圖像上的像素坐標值,這是攝影測量中的一個基礎而核心的問題。這個問題中核心的東西有兩個:1、坐標系的定義及其空間轉換矩陣 2、成像中的誤差 下面將從這兩個角度對這個問題進行詳細探討。文章參考了
# 陳建平: 《相機成像原理》PPT
https://blog.csdn.net/chentravelling/article/details/53558096
# 《StereoVision》
http://vision.deis.unibo.it/~smatt/Seminars/StereoVision.pdf
另外還有《學習opencv》以及《計算機視覺中的多視圖幾何》,如有錯誤歡迎探討。
1 相機投影中的坐標系及其轉換關系
在《相機成像原理》中,陳建平指出圖像處理涉及到四個坐標系,如下圖所示。
(1)世界坐標系與相機坐標系
從世界坐標系到相機坐標系屬于剛體變換,即物體不會發(fā)生形變,只需要進行旋轉和平移(RT),此為相機的外參矩陣。
在張正友標定法中,將世界坐標系的原點設定在棋盤格的左上角點,Z軸垂直于棋盤平面(XOY平面);相機坐標系的原點在相機光心,Z軸在光軸上,垂直于成像平面。
(2)相機坐標系與圖像坐標系:稱為攝像機模型以及投影矩陣
(3)圖像坐標系與像素坐標系
(4)從世界坐標系到像素坐標系的轉換方程
其中,f 為相機焦距,1/dx (pixel/mm)和 1/dy(pixel/mm)為圖像坐標系到像素坐標系的轉換因子,考慮相機加工時每個成像單元不完全為矩形,因此在x和y方向采用了不同的比例尺進行轉換。
(5)綜述
以棋盤為例,可以棋盤的左上角點為原點,橫向為X軸,縱向為Y軸,垂直方向為Z軸方向建立世界坐標系。這個坐標系是目標物體的自有坐標系,可以用來描述相機的位置,作為雙目視覺系統(tǒng)的參考系,從而求出相機之間的相對關系。如果選擇左相機的光心和光軸建立世界坐標系,則左相機的相機坐標系和世界坐標系重合,右相機和左相機的相對位置關系可以很輕易地描述出來。以每個相機拍攝出來的照片的中心位置為基準建立的圖像坐標系是一個二維的坐標系。而表示在opencv中的像素坐標采用的是像素坐標系,這兩個坐標之間存在一個(u0,v0)的偏差。
2 成像中的誤差
(1)光芯偏移誤差與單像素點矩形(非正方形)誤差
通常來說,芯片的中心不在光軸上,因此我們引入兩個新的參數(shù)cx和cy,對可能的偏移進行建模;
在應對單像素點非正方形時,引入1/dx (pixel/mm)和 1/dy(pixel/mm)為圖像坐標系到像素坐標系在x和y方向上的轉換因子。
得到的內參轉換矩陣為:
相比于上面的相機內參矩陣,在參數(shù)數(shù)量上沒有發(fā)生變化,只不過含義發(fā)生了變化,因此不影響求解過程。通常采用張正友標定發(fā)求解這部分誤差(opencv)
(2)透鏡畸變
優(yōu)點:利用透鏡收集更多的光線;
缺點:背離了針 孔幾何模型,而且引入透鏡的畸變。
畸變是透鏡固有的特性,凸透鏡匯聚光線,凹透鏡發(fā)散光線,所以無法消除,只能改善。
主要包括徑向和切向畸變,是一個五維的畸變參數(shù)向量。徑向畸變來自于透鏡形狀,而切向畸變則來自于整個攝像機的組裝過程。
徑向畸變包括桶形畸變和枕形畸變,通常表現(xiàn)為遠離透鏡中心的光線彎曲比靠近中心的嚴重。之所以在加工透鏡時要引入該畸變是為了壓縮透鏡體積,并且增加通光量,擴大透鏡的視角,讓透鏡看到更多東西。
切向畸變是由于透鏡制造上的缺陷,使得透鏡本身與圖像平面不平行而產生的。通常采用brown的方法求解這部分誤差(opencv)
3 相機標定過程中的內參、外參與畸變參數(shù)求解
這部分主要參考了《學習opencv》與《計算機視覺中的多視圖幾何》.求解相機內外參數(shù)的過程稱為標定,有自標定和基于標定板兩種方式。
(1)平面單應性矩陣求解
在計算機視覺中,平面的單應性被定義為從一個平面到另一個平面的投影映射,如圖所示。
因此,一個二維平面上的點映射到攝像機成像儀上,就是平面單應性的例子。以張正友標定法中的棋盤格為例,通過拍攝一組在小范圍內變換姿態(tài)的棋盤格,可以獲得一組單應矩陣,可以解決以下問題。
1、表述真實世界中一個平面與對應它圖像的透視變換:從世界坐標系到像素坐標系。
2、通過透視變換實現(xiàn)圖像從一種視圖變換到另外一種視圖
因此,單應性矩陣描述了從物體平面到圖像平面的映射,同時表征了這兩個平面的的相對位置(物理變換)以及攝像機投影矩陣(內參矩陣投影變換)。
其數(shù)學表示形式如下。
其中, Q為點在世界坐標系下的點,在標定時,建立以棋盤格的左上角點定義為原點,垂直方向定義為Z軸的世界坐標系;
q為點做像素坐標系下的點,s為尺度轉換因子,通常根據(jù)習慣放在H的外面;
H為單應性矩陣,H = M * W 為內參矩陣與外參矩陣的乘積。
M =, W = [R T] ,是3*4矩陣
為了簡化求解過程,把世界坐標系構造在Z=0的平面上; 此時,其中一個列變量就不需要了,H也從3*4的矩陣被簡化為3*3矩陣。這個過程的數(shù)學描述如下。
opencv使用上述公式來計算單應性矩陣。它使用同一個物體的多個圖像來計算每個視場的旋轉和平移,同時也計算攝像機的內參數(shù)(對所有視場不變)。
(2)棋盤角點個數(shù)和參數(shù)個數(shù)
K個棋盤圖像,每個圖像N個角點,在求解時的為了得到結果,約束的數(shù)量必須大于求解參數(shù)的數(shù)量。方程如下:
2 * N * K > 6 * K + 4 // 2表示每個像素角點有兩個坐標(x, y), 6K 表示K幅圖像有6K這么多個外參數(shù), 4表示內參矩陣,固定不變
在實際使用中,為了得到高質量結果,通常會使約束的數(shù)量足夠大,比如采用 10幅 7* 8的左右視圖解單應矩陣,則上述不等式為
2 * 7*8 * 10 > 6 * 10 + 4 即 1120 > 64
采用非線性最小二乘優(yōu)化方法即可解得單應性矩陣。
(3)單應性矩陣分解得到內外參矩陣
QR分解,將滿秩的單應矩陣分解得到一個上三角陣和一個正交陣;為了保證唯一性,可以令
1、圖像的X/Y軸所指方向與相機的X/Y軸方向相同
2、相機處于z軸正方向
可以得到唯一解。
(4)畸變參數(shù)求解
其中,[x′,y′]為畸變矯正后的位置,[x,y]為畸變前的位置,[ki,pi][ki,pi]為畸變系數(shù)。
4 單目標定與雙目標定
(1)單目標定
參考以下鏈接
https://www.cnblogs.com/zhazhiqiang2018/p/9537663.html#_Toc3638
(2)雙目標定
參考以下鏈接
https://www.cnblogs.com/zhazhiqiang2018/p/9538986.html
(3)單雙目視覺標定的不同點
單目標定的結果是一組攝像機內參矩陣、畸變參數(shù)和與圖像數(shù)量相同的外參矩陣;
雙目標定的結果是在每個相機單目標定的基礎上,進而推算兩個相機之間的變換矩陣。即兩組攝像機內參矩陣、畸變參數(shù)和一個右相機到左相機的變換矩陣。
總結
以上是生活随笔為你收集整理的61 相机投影原理、相机模型中的坐标系统以及标定方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚拟机无法连接至网络
- 下一篇: python+selenium配置Edg