【機器視覺】1. 張正友平面標定法
05-14
張正友的平面標定方法是介於傳統標定方法和自標定方法之間的一種方法。它既避免了傳統方法設備要求高,操作繁瑣等缺點,又較自標定方法精度高,因此張氏標定法被廣泛應用於計算機視覺方面,本文嘗試對這一標定方法做一介紹。包括:
- 模型 即如何由光學成像公式和坐標變換方法建立攝像機的參數矩陣
- 演算法 即如何對參數矩陣進行計算
- 優化 即如何計算畸變,以及如何對參數進行優化
坐標變換
定義[位置(position)描述] 在三維坐標系A下確定空間中一點的位置,用一個 的矢量表示為定義[姿態(orientation)描述]
在物體上固定一個坐標系B,給出此坐標系相對於參考坐標系A的表達,即在坐標系A中表達坐標系B的三個單位矢量 用旋轉矩陣 描述姿態。定義[位姿(pose)描述]位置描述和姿態描述統稱為位姿(pose)描述。將坐標系B固定在物體上,並考察坐標系B相對於參考坐標系A的位姿,用 表示坐標系B的原點在坐標系A中的位置矢量,用旋轉矩陣 表示姿態,那麼B相對於A的旋轉 旋轉矩陣的性質- -
- - 旋轉矩陣中的9個元素只有3個是獨立的
- 旋轉矩陣是單位正交矩陣, 是單位矢量,且相互垂直
- -
定義[平移坐標變換]
只變換位置不變換姿態 定義[旋轉坐標變換]只變換姿態不變換位置,兩個坐標系原點相同
一般坐標變換(位姿變換)方程 定義[齊次坐標變換]用 的列矢量表示三維空間中的點,稱為點的齊次坐標 (Homogeneous coordinate),即 ,那麼齊次變換矩陣 且 使用齊次坐標的目的,是為了利用矩陣變換,不僅能表示伸縮與旋轉,還能夠表示平移。三維點的齊次坐標有形如[x,y,z,w]的形式,設w=1,此時相當於我們把3維的坐標平移搬去了w=1的平面上,也就是4維空間的點投影到w=1平面上,齊次坐標映射的3D坐標是(x/w,y/w,z/w),也就是(x,y,z);(x,y,z)在齊次空間中有無數多個點與之對應。所有點的形式是(kx,ky,kz,k),其軌跡是通過齊次空間原點的「直線」,而每個點相當於3維的世界坐標。當w=0時,可解釋為無窮遠的「點」,其意義是描述方向。這也是平移變換的開關,當w=0時,此時不能平移變換了。這個現象是非常有用的,因為有些向量代表「位置」,應當平移,而有些向量代表「方向」,如表面的法向量,不應該平移。從幾何意義上說,能將第一類數據當作」點」,第二類數據當作」向量」。可以通過設置w的值來控制向量的意義。下面對旋轉運動的表示與轉換進行討論。方向餘弦矩陣可以用來表示兩個坐標系之間的旋轉,同樣也可以用來表示一個向量繞相同坐標系中某個軸的旋轉。討論一下當它表達兩個坐標系之間的選擇時的定義方式,如下,假設兩組坐標系的基底,分別為:另外,假設有一個向量a ,那麼a 在這兩組基底下的投影為:
則 歐拉角適合用於表示兩個坐標系之間的旋轉。歐拉角方法根據一切旋轉都能分解為三次繞空間中不同軸的旋轉的原理,表明了一切坐標系的取向,都可以用三個歐拉角來表示。攝像機模型
攝像機模型中的幾個坐標系
- -[世界坐標系(w)] 參考坐標系/基準坐標系,用於描述攝像機和物體的位置
- -[攝像機坐標系(c)] 固定在攝像機上,原點在光心,Zc軸沿光軸方向, Xc/Yc軸分別平行於成像平面
- -[以物理單位表示的圖像坐標系 (x, y)] 原點在攝像機光軸與圖像平面的交點,x/y軸與攝像機Xc/Yc軸平行,沿圖像平面方向
- -[以像素為單位表示的圖像坐標系 (u, v)] 原點在數字圖像的左上角,u/v軸沿圖像平面向右向下為正方向
首先考慮針孔攝像機模型,記空間點在攝像機坐標系中的齊次坐標為 ,它的像點在圖像坐標系中的齊次坐標記為 ,相機焦距為f,根據相似三角形有
則攝像機參數矩陣(單應矩陣)
直接線性變換(DLT)標定
定義[單應性變換]單應性變換(homography transform)就是一個平面到另一個平面的映射關係。在標定問題里,單應矩陣包括攝像機內外參數矩陣。我們先舉一個簡單的例子。在圖像拼接中,得到了兩張圖像的特徵匹配,兩個點集分別記作X和X;用單應性變換來擬合二者的關係,可表達為 其中 是X中特徵點的坐標, 是X中特徵點的坐標,H即是單應性矩陣,代表它們之間的變換關係。H是個3×3的矩陣,有8個自由度,所以待求未知參數有8個 則整理為Ah=0的形式,其中由未知變數的個數可知,求解出H至少需要4對匹配點。通常情況下為了得到更穩定的結果,會用到多於4對的特徵匹配。所以,這個方程會變成超定的,可以將最小二乘解作為最後的解。方程的最小二乘解有一個既定的結論,即對A進行SVD分解,A的最小的奇異值對應的右奇異向量即是h的解。
證明:解方程Ah=0等價於優化問題 因為U是單位正交矩陣,所以 令 ,則方程等價於由於 是一個對角矩陣,對角元的元素按遞減的順序排列,因此最優解在 取得,就是V的最小奇異值對應的列向量,即V的最後一列。Q.E.D.回到標定問題,當uv坐標系中u垂直於v時,若不考慮畸變,那麼 攝像機矩陣張氏標定法:攝像機參數的估計
張正友平面標定法的前提 - 認為內參數矩陣 - 標定物:平面靶標 - 將世界坐標系置於靶標平面,原點設在靶標一角,Xw/Yw方向沿靶標平面,Zw方向垂直於靶標平面 - 先不考慮畸變,標定攝像機參數,得到參數的線性初值;然後利用線性初值,進行非線性標定,得到畸變參數 因此,在中令 , 則令則對於n個特徵點 對A進行SVD分解,即$A=USigma V^T$,則以上方程的解是V的最後一列。假如考慮雜訊影響,假設雜訊為零均值高斯雜訊,方差矩陣為 ,由最大似然估計求解單應矩陣H,或定義目標函數F,求解H 使F取到最小 實際應用中假設 ,則 使用不考慮雜訊情況下得到的單應矩陣H作為初值計算 通過Levenburg-Marquardt演算法求出H的最終解。H是一個齊次矩陣,所以有8個未知數,至少需要8個方程,每對對應點能提供兩個方程,所以至少需要四個對應點,就可以算出世界平面到圖像平面的單應性矩陣H。這樣得到的H,計算結果與真實解相差一個常數因子,即那麼由於旋轉矩陣是個酉矩陣, 和 正交,即可得約束條件即每個單應性矩陣能提供兩個方程,而內參數矩陣包含5個參數,要求解,至少需要3個單應性矩陣。為了得到三個不同的單應性矩陣,我們使用至少三幅棋盤格平面的圖片進行標定。通過改變相機與標定板之間的相對位置來得到三個不同的圖片。假如只有兩幅圖片,那麼 將不能估計,也就是認為數字圖像坐標系uv相互垂直( )。記則可以看到,B是一個對稱陣,所以B的有效元素為六個,讓這六個元素寫成向量b,即那麼利用約束條件可得我們至少需要三幅包含棋盤格的圖像,可以計算得到B,然後通過Cholesky分解得到相機的內參數矩陣K,首先計算出 然後定義 於是內參數而外參數考慮到R是單位正交陣,因此對R進行奇異值分解就有 ,其中U和V通過對 的特徵向量作正交化單位化得到。張氏標定法:畸變的估計
張氏標定法只關注了影響最大的徑向畸變,並忽略四階以上的畸變數其中 表示角點在成像面上的實際坐標, 表示角點在成像面上的理想坐標。將畸變模型轉換到數字圖像坐標進行求解其中,(u,v)是理想的像素坐標, 是實際的像素坐標。 代表主點,則即簡記為 那麼上述的推導結果是基於理想情況下的解,但由於可能存在高斯雜訊,所以使用最大似然估計進行優化。設我們採集了n副包含棋盤格的圖像進行定標,每個圖像里有棋盤格角點m個。令第i副圖像上的角點 在上述計算得到的攝像機矩陣下圖像上的投影點為: 其中Ri和ti是第i副圖對應的旋轉矩陣和平移向量,K是內參數矩陣。則角點的概率密度函數為: 似然函數讓L取得最大值,即讓 最小。這裡使用的是多參數非線性系統優化問題的Levenberg-Marquardt演算法進行迭代求最優解。Levenburg-Marquardt演算法
通常的最小二乘問題都可以表示為對 在 處作泰勒展開 其中Jacobi矩陣記 那麼即F(x)的梯度下面討論利用數值最優化方法求解非線性最小二乘問題的過程。最速下降法假設 ,則h是F(x)下降方向,即對於任意足夠小的 ,都滿足則其中為矢量h和F(x)夾角,當 時,下降最大。即 是最快下降方向。高斯-牛頓演算法選擇h使得F(x)在 附近二階近似,則 則 即直到 高斯-牛頓法可以看做使用Hessian矩陣的最速下降法即LM演算法通常高斯牛頓法收斂較快,但是不穩定,且要求 非奇異。而梯度下降法穩定,但是收斂較慢。所以接下來我們介紹高斯牛頓演算法和最速下降法混合法,即Levenburg-Marquardt演算法,即加入正則項使得 記其解為 ,則 - ,即為Gauss-Newton法 - 當 充分大時 ,即為最速下降法 - 特別當 因為所以定義增益比 則- - 在實際中,我們選擇一階近似、二階近似並不是在所有定義域都滿足的,而是在 作用域內滿足這個近似條件。
- - 當 較大時,表明F(x+h)的二階近似L(h)比F(x+h)更加接近於F(x),因此二階近似比較好,所以可以減小 ,採用更大的迭代步長,接近Gauss-Newton法來更快收斂;
- - 當 較小時,表明採取的二階近似較差,因此通過增大 ,採用更小的步長,接近最速下降法來穩定的迭代。
總結:張正友平面標定法偽代碼
推薦閱讀:
※CVPR2018視覺跟蹤之端到端的光流相關濾波
※深度學習的「警察」與「小偷」
※有趣的圖像處理技術(二)
※腦洞大開的機器視覺多領域學習模型結構 | CVPR 2018論文解讀
※Focal Loss for Dense Object Detection解讀
TAG:計算機視覺 | 同時定位和地圖構建SLAM | 凸優化 |