author@jason_ql(lql0716)
http://blog.csdn.net/lql0716css
在圖像測量過程以及機器視覺應用中,爲肯定空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關係,必須創建相機成像的幾何模型,這些幾何模型參數就是相機參數。在大多數條件下這些參數必須經過實驗與計算才能獲得,這個求解參數的過程就稱之爲相機標定(或攝像機標定)。不管是在圖像測量或者機器視覺應用中,相機參數的標定都是很是關鍵的環節,其標定結果的精度及算法的穩定性直接影響相機工做產生結果的準確性。所以,作好相機標定是作好後續工做的前提,提升標定精度是科研工做的重點所在。html
經常使用術語
內參矩陣: Intrinsic Matrix
焦距: Focal Length
主點: Principal Point
徑向畸變: Radial Distortion
切向畸變: Tangential Distortion
旋轉矩陣: Rotation Matrices
平移向量: Translation Vectors
平均重投影偏差: Mean Reprojection Error
重投影偏差: Reprojection Errors
重投影點: Reprojected Pointspython
世界座標系(world coordinate)
(xw,yw,zw) ,也稱爲測量座標系,是一個三維直角座標系,以其爲基準能夠描述相機和待測物體的空間位置。世界座標系的位置能夠根據實際狀況自由肯定。算法
相機座標系(camera coordinate)
(xc,yc,zc) ,也是一個三維直角座標系,原點位於鏡頭光心處,x、y軸分別與相面的兩邊平行,z軸爲鏡頭光軸,與像平面垂直。apache
其中
圖1:
app
像素座標系(pixel coordinate)
如圖1,像素座標系
像素座標系中座標軸的單位是像素(整數)
。機器學習
像素座標系不利於座標變換,所以須要創建圖像座標系
其座標軸的單位一般爲毫米(mm)
,原點是相機光軸與相面的交點(稱爲主點),即圖像的中心點,
圖像座標系轉換爲像素座標系學習
其中,
圖2:
如圖,空間任意一點
該過程爲透視投影,以下矩陣表示:
其中,
其中,
αx=f/dX 、αy=f/dY ,稱爲u 、v 軸的尺度因子,M1 稱爲相機的內部參數矩陣,M2 稱爲相機的外部參數矩陣,M 稱爲投影矩陣。
畸變參數(distortion parameters)
畸變(distortion)
是對直線投影(rectilinear projection)的一種偏移。簡單來講直線投影是場景內的一條直線投影到圖片上也保持爲一條直線。
畸變簡單來講就是一條直線投影到圖片上不能保持爲一條直線了,這是一種
光學畸變(optical aberration)
,可能因爲攝像機鏡頭的緣由。
畸變通常能夠分爲:徑向畸變、切向畸變
一、徑向畸變來自於透鏡形狀
二、切向畸變來自於整個攝像機的組裝過程畸變還有其餘類型的畸變,可是沒有徑向畸變、切向畸變顯著
畸變圖示
徑向畸變
實際攝像機的透鏡老是在成像儀的邊緣產生顯著的畸變,這種現象來源於「筒形」或「魚眼」的影響。
以下圖,光線在原理透鏡中心的地方比靠近中心的地方更加彎曲。對於經常使用的普通透鏡來講,這種現象更加嚴重。筒形畸變在便宜的網絡攝像機中很是厲害,但在高端攝像機中不明顯,由於這些透鏡系統作了不少消除徑向畸變的工做。
對於徑向畸變,成像儀中心(光學中心)的畸變爲0,隨着向邊緣移動,畸變愈來愈嚴重。
徑向畸變包括:枕形畸變、桶形畸變
切向畸變
切向畸變是因爲透鏡製造上的缺陷使得透鏡自己與圖像平面不平行而產生的。
切向畸變可分爲:薄透鏡畸變、離心畸變
切向畸變圖示:
如下公式由泰勒展式得出,在opencv中
也即:
實際計算過程當中,若是考慮太多高階的畸變參數,會致使標定求解的不穩定。
張正友的方法只考慮了徑向畸變,沒有考慮切向畸變
模型:
理想狀況下(沒有畸變)圖片的像素座標爲:
(u,v)
真實的像素座標爲:
(u¯,v¯)
真實座標與理想座標的關係式(泰勒展開):
(x,y) and(x¯,y¯) are the ideal (distortion-free) and real (distorted) normalized image coordinates.
x¯=x+x[k1(x2+y2)+k2(x2+y2)2]
y¯=y+y[k1(x2+y2)+k2(x2+y2)2]
其中
k1 ,k2 是徑向畸變係數(coefficients of the radial distortion)。像素座標表示爲:
u¯=u+(u−u0)[k1(x2+y2)+k2(x2+y2)2]
v¯=v+(v−v0)[k1(x2+y2)+k2(x2+y2)2]
即:
[(u−u0)(x2+y2)(v−v0)(x2+y2)(u−u0)(x2+y2)2(v−v0)(x2+y2)][k1k2]=[u¯−uv¯−v]
一、打印一張棋盤格,把它貼在一個平面上,做爲標定物。
二、經過調整標定物或攝像機的方向,爲標定物拍攝一些不一樣方向的照片。
三、從照片中提取棋盤格角點。
四、估算理想無畸變的狀況下,五個內參和六個外參。
五、應用最小二乘法估算實際存在徑向畸變下的畸變係數。
六、極大似然法,優化估計,提高估計精度。
相關文章
《學習opencv》