文章目錄
- 1 攝像頭四個坐标系
- 2 攝像頭成像模型
- 3 攝像頭畸變模型
1 攝像頭四個坐标系
如圖所示,小孔成像過程中,涉及到四個坐标系:世界坐标系、攝像頭坐标系、像平面坐标系、像素坐标系。
a) 世界坐标系 ( O w − X w Y w Z w ) (O_w-X_wY_wZ_w) (Ow−XwYwZw):世界坐标系一般為參考坐标系,其坐标原點和坐标軸方向是根據實際情況來選擇的。
b) 攝像頭坐标系 ( O c − X c Y c Z c ) (O_c-X_cY_cZ_c) (Oc−XcYcZc):以攝像頭光心 為原點,X軸和Y軸分别與成像平面的x軸和y軸平行,Z軸與錄影機的光軸重合。
c) 像平面坐标系 ( O − x y ) (O-xy) (O−xy):原點位于攝像頭光軸與圖像平面的交點。
d) 像素坐标系 ( O − u v ) (O-uv) (O−uv):原點位于像平面的左上角點, 以像素為機關的圖像坐标系坐标。

在攝像頭成像模型中,空間中一物點 ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw,Yw,Zw)經過攝像頭成像得到圖檔中對應像點 ,這一過程需要經曆三次變換:
1)世界坐标系 ( O w − X w Y w Z w ) (O_w-X_wY_wZ_w) (Ow−XwYwZw)——錄影機坐标系 ( O c − X c Y c Z c ) (O_c-X_cY_cZ_c) (Oc−XcYcZc)
[ X c Y c Z c ] = [ R T 0 1 ] [ X w Y w Z w 1 ] \left[\begin{matrix} X_c \\ Y_c \\ Z_c \end{matrix}\right] = \left[\begin{matrix} R & T \\ 0 & 1 \end{matrix}\right] \left[\begin{matrix} X_w\\ Y_w\\ Z_w\\ 1 \end{matrix}\right] ⎣⎡XcYcZc⎦⎤=[R0T1]⎣⎢⎢⎡XwYwZw1⎦⎥⎥⎤
2)攝像頭坐标系 ( O c − X c Y c Z c ) (O_c-X_cY_cZ_c) (Oc−XcYcZc)——像平面坐标系 ( O − x y ) (O-xy) (O−xy)
空間任何一點在圖像上投影點 ,為光心與該點的連線與圖像平面的交點,由比例關系有如下關系式
{ x = f x c Z c y = f Y c Z c \begin{cases} x = f\frac{x_c}{Z_c} \\ y = f\frac{Y_c}{Z_c} \end{cases} {x=fZcxcy=fZcYc
轉化為齊次坐标與矩陣形式,可得
Z c [ x y 1 ] = [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ X c Y c Z c 1 ] Z_c \left[\begin{matrix} x\\y\\1 \end{matrix}\right] = \left[\begin{matrix} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ 0 & 0 & 1 & 0 \end{matrix}\right] \left[\begin{matrix} X_c\\Y_c\\Z_c\\1 \end{matrix}\right] Zc⎣⎡xy1⎦⎤=⎣⎡f000f0001000⎦⎤⎣⎢⎢⎡XcYcZc1⎦⎥⎥⎤
3)像平面坐标系 ( O − x y ) (O-xy) (O−xy)——像素坐标系 ( O − u v ) (O-uv) (O−uv)
如圖 所示,若主點 在像素坐标系中的坐标為 ,每一個像素在x軸與y軸方向上的實體尺寸為 (一個像素CCD單元的 x,y方向的實際長度),則圖像中任意個象素在兩個坐标系下的坐标關系可表示為下面的公式
{ u = x d x + u 0 v = y d y + v 0 \begin{cases} u = \frac{x}{dx}+u_0\\ v = \frac{y}{dy} + v_0 \end{cases} {u=dxx+u0v=dyy+v0
轉化為齊次坐标與矩陣形式,可得
[ u v 1 ] = [ 1 d x 0 u 0 0 1 d y v 0 0 0 1 ] [ x y 1 ] \left[\begin{matrix} u \\ v \\ 1 \end{matrix}\right] = \left[\begin{matrix} \frac{1}{dx} & 0 & u_0\\ 0 & \frac{1}{dy} & v_0\\ 0 & 0 & 1 \end{matrix}\right] \left[\begin{matrix} x \\ y \\ 1 \end{matrix}\right] ⎣⎡uv1⎦⎤=⎣⎡dx1000dy10u0v01⎦⎤⎣⎡xy1⎦⎤
2 攝像頭成像模型
立體視覺的基本任務是通過二維的圖像得到目标點的空間坐标,是以,建立圖像像素坐标與目标點的世界坐标的關系至關重要。不考慮鏡頭的畸變,理想的成像模型為針孔成像模型是一種線性模型。根據小孔成像的原理,空間中一點 與它的投影點 都經過小孔 ,根據透視投影的比例關系,可以得到物點在世界坐标系内的坐标與其像點在像素坐标系内的坐标關系如下
式中, f x = f d x f_x=\frac{f}{dx} fx=dxf , f y = f d y f_y=\frac{f}{dy} fy=dyf分别表示圖像坐标系在u軸和v軸的尺度因子, γ γ γ為圖像坐标系兩軸在非正交下的傾斜因子, H H H為投影矩陣。 M 1 M_1 M1為攝像頭内部參數矩陣; M 2 M_2 M2為攝像頭外參數矩陣,确定内外參數的過程稱為攝像頭标定。
3 攝像頭畸變模型
由于攝像頭制造的不足以及成像過程中的噪聲影響,攝像頭成像往往不滿足針孔模型,這種成像模型稱為非線性模型。非線性模型中畸變主要有三種,包括徑向畸變、切向畸變和薄棱鏡畸變。假設理想的成像點坐标 ,畸變後的實際成像點坐标 ,則非線性畸變模型如下
{ x d = x u + δ x y d = y u + δ y \begin{cases} x_d = x_u + δ_x \\ y_d = y_u + δ_y \\ \end{cases} {xd=xu+δxyd=yu+δy
a) 徑向畸變
圖像的徑向畸變是指像點相對理想位置發生向内或者向外的偏移,即像點在徑向上出現誤差。
{ δ x = x u ( k 1 r u 2 + k 2 r u 4 + k 3 r u 6 + . . . ) δ y = y u ( k 1 r u 2 + k 2 r u 4 + k 3 r u 6 + . . . ) \begin{cases} δ_x = x_u(k_1r_u^2 + k_2r_u^4 + k_3r_u^6 + ...)\\ δ_y = y_u(k_1r_u^2 + k_2r_u^4 + k_3r_u^6 + ...) \end{cases} {δx=xu(k1ru2+k2ru4+k3ru6+...)δy=yu(k1ru2+k2ru4+k3ru6+...)
式中, r u 2 = x u 2 + y u 2 r_u^2 = x_u^2+y_u^2 ru2=xu2+yu2, k 1 , k 2 , k 3 k_1,k_2,k_3 k1,k2,k3為徑向畸變系數。
b) 切向畸變
圖像的切向畸變是指由于光學系統的光學鏡頭裝配産生誤差,光軸不可能完全共線,即像點在切向上出現了偏差。
{ δ x = p 1 ( 3 x u 2 + y u 2 ) + 2 p 2 x u y u δ y = p 2 ( 3 y u 2 + x u 2 ) + 2 p 1 x u y u \begin{cases} δ_x = p_1(3x_u^2 + y_u^2) + 2p_2x_uy_u\\ δ_y = p_2(3y_u^2 + x_u^2) + 2p_1x_uy_u \end{cases} {δx=p1(3xu2+yu2)+2p2xuyuδy=p2(3yu2+xu2)+2p1xuyu
式中, p 1 , p 2 p_1,p_2 p1,p2為切向畸變系數。
c) 薄棱鏡畸變
圖像的薄棱鏡畸變是指由光學鏡頭制造誤差和成像敏感陣列制造誤差引起的圖像變形。
{ δ x = s 1 ( x u 2 + y u 2 ) δ y = s 1 ( x u 2 + y u 2 ) \begin{cases} δ_x = s_1(x_u^2+y_u^2)\\ δ_y = s_1(x_u^2+y_u^2)\\ \end{cases} {δx=s1(xu2+yu2)δy=s1(xu2+yu2)
式中, s 1 , s 2 s_1,s_2 s1,s2為薄棱鏡畸變系數。
據上,總結出完整的畸變模型
其中徑向畸變(主要是前兩階的)和切向畸變影響較大,占畸變的95%,而薄棱鏡畸變會造成額外的徑向畸變和切向畸變,影響較小。一般情況下,隻需考慮徑向畸變和切向畸變,薄棱鏡畸往往忽略不計。是以,非線性模型需要标定的參數包括内參數: f x , f y , u 0 , v 0 , k 1 , k 2 , p 1 , p 2 f_x,f_y,u_0,v_0,k_1,k_2,p_1,p_2 fx,fy,u0,v0,k1,k2,p1,p2,外參數:旋轉矩陣和平移矢量 。
{ δ x = x u ( k 1 r u 2 + k 2 r u 4 ) + p 1 ( 3 x u 2 + y u 2 ) + 2 p 2 x u y u δ y = y u ( k 1 r u 2 + k 2 r u 4 ) + p 2 ( 3 y u 2 + x u 2 ) + 2 p 1 x u y u \begin{cases} δ_x = x_u(k_1r_u^2 + k_2r_u^4) + p_1(3x_u^2+y_u^2) + 2p_2x_uy_u\\ δ_y = y_u(k_1r_u^2 + k_2r_u^4) + p_2(3y_u^2 + x_u^2) +2p_1x_uy_u \end{cases} {δx=xu(k1ru2+k2ru4)+p1(3xu2+yu2)+2p2xuyuδy=yu(k1ru2+k2ru4)+p2(3yu2+xu2)+2p1xuyu