一、透视投影
透视投影(Perspective Projection)是计算机视觉和图形学中描述三维物体在二维平面成像的基础模型,其核心思想是模拟人类视觉系统的成像原理------中心投影。具体而言,三维空间中的点通过一个固定的投影中心(相机光心)投射到成像平面上,形成近大远小的视觉效果。

(一)透视投影的性质
1.中心投影特性
透视投影的所有投影线(从物体点到投影中心的连线)交汇于一点,即投影中心 O c O_c Oc(在相机模型中对应光心)。设成像平面为 Z = f Z = f Z=f(焦距为 f f f),投影中心位于原点 ( 0 , 0 , 0 ) (0,0,0) (0,0,0),则三维点 P ( X , Y , Z ) P(X,Y,Z) P(X,Y,Z) 在成像平面的投影点 p ( x , y ) p(x,y) p(x,y) 满足:
x = f X Z , y = f Y Z x = f \frac{X}{Z}, \quad y = f \frac{Y}{Z} x=fZX,y=fZY
其中 Z Z Z 是点 P P P 到投影中心的深度值,决定了投影的缩放比例。
2.非线性比例变换
透视投影对不同深度的物体产生非线性缩放:深度 Z Z Z 越大(物体越远),投影后的尺寸越小。例如,两个相同大小的物体,距离相机更远的那个在图像中显得更小,这符合人类视觉的近大远小直觉。
3.平行线汇聚于消逝点
三维空间中平行于某一方向的直线,在透视投影下会汇聚于图像平面上的一个点,称为消逝点(Vanishing Point)。例如,铁轨在远处汇聚于地平线的一点,这是透视投影最典型的视觉特征。

4.保直线性
三维空间中的直线经过透视投影后仍为直线,但曲线可能变为曲线(如圆可能投影为椭圆)。
5.有限视野与透视缩短
透视投影的视野范围由成像平面的大小和焦距决定,超出视野的物体不会被投影。此外,与成像平面不垂直的物体(如倾斜的长方体)会发生"透视缩短",即物体在深度方向的尺寸在图像中被压缩。
(二)消逝点的概念
1. 消逝点的定义
消逝点是三维空间中一组平行直线在透视投影下的汇聚点。数学上,设三维空间中平行直线的方向向量为 d = ( d x , d y , d z ) \mathbf{d} = (d_x, d_y, d_z) d=(dx,dy,dz),则其对应的消逝点是该方向向量在投影平面上的"无穷远点"的投影。

2. 消逝点的计算
假设相机光心在原点,成像平面为 Z = f Z = f Z=f,平行直线的方向向量为 d = ( d x , d y , d z ) \mathbf{d} = (d_x, d_y, d_z) d=(dx,dy,dz)。由于直线平行,其参数方程可表示为 P ( t ) = P 0 + t d P(t) = P_0 + t\mathbf{d} P(t)=P0+td( t t t 为参数)。当 t → ∞ t \to \infty t→∞ 时,点 P ( t ) P(t) P(t) 的投影坐标为:
x = f d x d z , y = f d y d z ( 假设 d z ≠ 0 ) x = f \frac{d_x}{d_z}, \quad y = f \frac{d_y}{d_z} \quad (\text{假设 } d_z \neq 0) x=fdzdx,y=fdzdy(假设 dz=0)
若 d z = 0 d_z = 0 dz=0(即直线平行于成像平面),则消逝点位于无穷远处,对应齐次坐标系中的无穷远点(见第二部分齐次坐标系)。
3. 消逝点的应用
消逝点在计算机视觉中具有重要作用:
- 相机标定:通过检测场景中的消逝点(如建筑物的平行线),可以估计相机的内参和外参。
- 场景理解:利用消逝点判断物体的方向和空间结构,例如区分水平、垂直和深度方向的平行线。
- 三维重建:通过多个消逝点的几何关系,恢复场景的三维结构。
(三)数学推导
1. 针孔相机模型的几何推导
透视投影的数学基础是针孔相机模型(Pinhole Camera Model),假设光线通过一个无限小的针孔投射到成像平面,忽略镜头畸变。设:
- 世界坐标系中的点 P w = ( X w , Y w , Z w ) P_w = (X_w, Y_w, Z_w) Pw=(Xw,Yw,Zw)
- 相机坐标系以光心 O c O_c Oc 为原点,成像平面位于 Z = f Z = f Z=f 处(焦距 f f f),图像坐标系以光心在成像平面的垂足为原点 O i O_i Oi,像素坐标系以图像左上角为原点 O u O_u Ou,像素尺寸为 ( d x , d y ) (dx, dy) (dx,dy)。

根据相似三角形原理(图1),相机坐标系下的点 P c = ( X , Y , Z ) P_c = (X, Y, Z) Pc=(X,Y,Z) 在成像平面的投影为:
x = − f X Z , y = − f Y Z x = -f \frac{X}{Z}, \quad y = -f \frac{Y}{Z} x=−fZX,y=−fZY
(负号表示成像平面位于光心后方,实际计算中常将成像平面置于光心前方,符号取正,即"虚拟成像平面")
2. 齐次坐标下的透视投影矩阵
为了将平移、旋转等变换统一为矩阵乘法,并处理无穷远点(如消逝点),引入齐次坐标系(见第二部分)。三维点的齐次坐标为 P c = ( X , Y , Z , 1 ) T \mathbf{P}_c = (X, Y, Z, 1)^T Pc=(X,Y,Z,1)T,投影到二维图像平面的齐次坐标为 p = ( x , y , z ) T \mathbf{p} = (x, y, z)^T p=(x,y,z)T,满足:
p = K [ I ∣ 0 ] P c \mathbf{p} = \mathbf{K} [\mathbf{I} \mid \mathbf{0}] \mathbf{P}_c p=K[I∣0]Pc
其中 K \mathbf{K} K 是相机内参矩阵(见第三部分), [ I ∣ 0 ] [\mathbf{I} \mid \mathbf{0}] [I∣0] 表示相机坐标系到图像平面的投影。更一般地,考虑世界坐标系到相机坐标系的外参变换(旋转矩阵 R \mathbf{R} R 和平移向量 t \mathbf{t} t),透视投影的完整变换为:
p = K [ R ∣ t ] P w \mathbf{p} = \mathbf{K} [\mathbf{R} \mid \mathbf{t}] \mathbf{P}_w p=K[R∣t]Pw
其中 [ R ∣ t ] [\mathbf{R} \mid \mathbf{t}] [R∣t] 是外参矩阵, P w = ( X w , Y w , Z w , 1 ) T \mathbf{P}_w = (X_w, Y_w, Z_w, 1)^T Pw=(Xw,Yw,Zw,1)T 是世界坐标系下的齐次坐标。
展开矩阵运算,透视投影的坐标变换可表示为:
{ u = f u X c Z c + u 0 v = f v Y c Z c + v 0 \begin{cases} u = f_u \frac{X_c}{Z_c} + u_0 \\ v = f_v \frac{Y_c}{Z_c} + v_0 \end{cases} {u=fuZcXc+u0v=fvZcYc+v0
其中 ( u , v ) (u, v) (u,v) 是像素坐标, f u , f v f_u, f_v fu,fv 是焦距在像素单位下的尺度因子, ( u 0 , v 0 ) (u_0, v_0) (u0,v0) 是主点坐标(见第三部分相机内参)。
(四)正投影与弱透视投影
1. 正投影(Orthographic Projection)
正投影是透视投影的特例,假设投影中心位于无穷远处,所有投影线互相平行且垂直于成像平面。其数学表达式为:
x = X , y = Y x = X, \quad y = Y x=X,y=Y
忽略深度信息 Z Z Z,适用于工业设计、工程制图等需要保持物体真实尺寸的场景。正投影矩阵为:
P ortho = [ 1 0 0 0 0 1 0 0 0 0 0 1 ] \mathbf{P}_{\text{ortho}} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} Portho= 100010000001
但实际应用中,正投影常包含平移和缩放变换,以适配不同的坐标系范围。

2. 弱透视投影(Weak Perspective Projection)
弱透视投影是透视投影的近似,适用于物体距离相机较远且深度变化较小的场景(如航拍图像)。其假设:
- 物体到相机的距离远大于物体自身尺寸,即深度 Z ≈ Z 0 Z \approx Z_0 Z≈Z0(常数);
- 忽略深度引起的缩放差异,用平均深度 Z 0 Z_0 Z0 代替所有点的深度。

弱透视投影的变换过程分为两步:
- 首先将三维点正投影到与成像平面平行的平面(忽略深度),得到 ( X , Y ) (X, Y) (X,Y);
- 然后按比例 f / Z 0 f / Z_0 f/Z0 缩放到成像平面,即:
x = f Z 0 X , y = f Z 0 Y x = \frac{f}{Z_0} X, \quad y = \frac{f}{Z_0} Y x=Z0fX,y=Z0fY
弱透视投影的误差来源于深度变化 Δ Z = Z − Z 0 \Delta Z = Z - Z_0 ΔZ=Z−Z0,当 Δ Z ≪ Z 0 \Delta Z \ll Z_0 ΔZ≪Z0 时,近似效果较好。相比透视投影,弱透视投影计算更简单,广泛应用于人脸检测、人体姿态估计等任务。

二、齐次坐标系
(一)齐次坐标系的定义
1. 为什么引入齐次坐标系?
在欧几里得几何中,平移、旋转、缩放等变换可通过矩阵乘法表示,但平移变换对向量的作用是加法( p ′ = p + t \mathbf{p}' = \mathbf{p} + \mathbf{t} p′=p+t),无法用单一矩阵乘法实现。齐次坐标系通过在n维空间中引入第n+1维坐标,将平移转换为矩阵乘法,并统一处理无穷远点(如透视投影中的消逝点)。
2. 定义
- n维点的齐次坐标 :将n维点 ( x 1 , x 2 , ... , x n ) (x_1, x_2, \dots, x_n) (x1,x2,...,xn) 表示为n+1维向量 ( x 1 , x 2 , ... , x n , w ) (x_1, x_2, \dots, x_n, w) (x1,x2,...,xn,w),其中 w ≠ 0 w \neq 0 w=0,且齐次坐标 ( x 1 w , x 2 w , ... , x n w , w ) (x_1w, x_2w, \dots, x_nw, w) (x1w,x2w,...,xnw,w) 与 ( x 1 , x 2 , ... , x n , 1 ) (x_1, x_2, \dots, x_n, 1) (x1,x2,...,xn,1) 表示同一点(通过除以 w w w 归一化)。
- 无穷远点 :当 w = 0 w = 0 w=0 时,齐次坐标表示无穷远点,例如二维空间中方向向量 ( a , b ) (a, b) (a,b) 对应无穷远点 ( a , b , 0 ) (a, b, 0) (a,b,0)。
3. 齐次坐标的等价性
两个齐次坐标 ( x 1 , y 1 , w 1 ) (x_1, y_1, w_1) (x1,y1,w1) 和 ( x 2 , y 2 , w 2 ) (x_2, y_2, w_2) (x2,y2,w2) 表示同一点,当且仅当存在非零常数 k k k 使得 x 2 = k x 1 , y 2 = k y 1 , w 2 = k w 1 x_2 = kx_1, y_2 = ky_1, w_2 = kw_1 x2=kx1,y2=ky1,w2=kw1。
(二)齐次坐标系下的点、线、几何变换
1. 二维齐次坐标系中的点与线
- 点 :二维点 ( u , v ) (u, v) (u,v) 的齐次坐标为 ( u , v , 1 ) (u, v, 1) (u,v,1),无穷远点为 ( a , b , 0 ) (a, b, 0) (a,b,0)。
- 线 :二维直线方程 a x + b y + c = 0 ax + by + c = 0 ax+by+c=0 的齐次表示为 ( a , b , c ) (a, b, c) (a,b,c),满足 a u + b v + c w = 0 a u + b v + c w = 0 au+bv+cw=0(点 ( u , v , w ) (u, v, w) (u,v,w) 在直线上)。
- 点与线的关系 :点 p = ( u , v , w ) T \mathbf{p} = (u, v, w)^T p=(u,v,w)T 在直线 l = ( a , b , c ) T \mathbf{l} = (a, b, c)^T l=(a,b,c)T 上,当且仅当 l T p = 0 \mathbf{l}^T \mathbf{p} = 0 lTp=0。
2. 几何变换的齐次矩阵表示
在二维空间中,常见几何变换可表示为3×3矩阵对齐次坐标的作用:
- 平移(Translation)
T ( t x , t y ) = [ 1 0 t x 0 1 t y 0 0 1 ] , p ′ = T p T(t_x, t_y) = \begin{bmatrix} 1 & 0 & t_x \\ 0 & 1 & t_y \\ 0 & 0 & 1 \end{bmatrix}, \quad \mathbf{p}' = T \mathbf{p} T(tx,ty)= 100010txty1 ,p′=Tp

-
缩放(Scaling)
S ( s x , s y ) = [ s x 0 0 0 s y 0 0 0 1 ] S(s_x, s_y) = \begin{bmatrix} s_x & 0 & 0 \\ 0 & s_y & 0 \\ 0 & 0 & 1 \end{bmatrix} S(sx,sy)= sx000sy0001 -
旋转(Rotation)
绕原点旋转角度 θ \theta θ:
R ( θ ) = [ cos θ − sin θ 0 sin θ cos θ 0 0 0 1 ] R(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix} R(θ)= cosθsinθ0−sinθcosθ0001

-
剪切(Shearing)
H ( s x y , s y x ) = [ 1 s x y 0 s y x 1 0 0 0 1 ] H(s_{xy}, s_{yx}) = \begin{bmatrix} 1 & s_{xy} & 0 \\ s_{yx} & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} H(sxy,syx)= 1syx0sxy10001 -
投影变换(Projective Transformation)
更一般的线性变换,包括透视变换,如二维透视变换矩阵:
P = [ a b c d e f g h i ] , 其中 p ′ = P p , 归一化后 ( u ′ , v ′ , 1 ) = ( a u + b v + c g u + h v + i , d u + e v + f g u + h v + i , 1 ) P = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix}, \quad \text{其中} \mathbf{p}' = P \mathbf{p}, \text{归一化后} (u', v', 1) = \left( \frac{a u + b v + c}{g u + h v + i}, \frac{d u + e v + f}{g u + h v + i}, 1 \right) P= adgbehcfi ,其中p′=Pp,归一化后(u′,v′,1)=(gu+hv+iau+bv+c,gu+hv+idu+ev+f,1)
3. 三维齐次坐标系
三维点 ( X , Y , Z ) (X, Y, Z) (X,Y,Z) 的齐次坐标为 ( X , Y , Z , 1 ) (X, Y, Z, 1) (X,Y,Z,1),无穷远点为 ( X , Y , Z , 0 ) (X, Y, Z, 0) (X,Y,Z,0)。三维几何变换(如旋转、平移、缩放)通过4×4矩阵表示,例如:
- 三维平移矩阵:
T ( t x , t y , t z ) = [ 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 ] T(t_x, t_y, t_z) = \begin{bmatrix} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{bmatrix} T(tx,ty,tz)= 100001000010txtytz1 - 绕x轴旋转 θ \theta θ 的矩阵:
R x ( θ ) = [ 1 0 0 0 0 cos θ − sin θ 0 0 sin θ cos θ 0 0 0 0 1 ] R_x(\theta) = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta & 0 \\ 0 & \sin\theta & \cos\theta & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} Rx(θ)= 10000cosθsinθ00−sinθcosθ00001
(三)其他变换的齐次坐标表示
1. 透视投影变换矩阵
在三维到二维的透视投影中,齐次坐标的变换矩阵可表示为:
P persp = [ f 0 0 0 0 f 0 0 0 0 1 0 ] \mathbf{P}_{\text{persp}} = \begin{bmatrix} f & 0 & 0 & 0 \\ 0 & f & 0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} Ppersp= f000f0001000
该矩阵将相机坐标系下的点 ( X , Y , Z , 1 ) (X, Y, Z, 1) (X,Y,Z,1) 投影到图像平面,得到齐次坐标 ( f X , f Y , Z , 1 ) (fX, fY, Z, 1) (fX,fY,Z,1),归一化后为 ( f X / Z , f Y / Z , 1 ) (fX/Z, fY/Z, 1) (fX/Z,fY/Z,1),即像素坐标的基础。
2. 仿射变换与投影变换的区别
- 仿射变换(Affine Transformation) :齐次矩阵的最后一行为 ( 0 , 0 , 0 , 1 ) (0, 0, 0, 1) (0,0,0,1),保持直线和平行性,包含平移、旋转、缩放、剪切。

- 投影变换(Projective Transformation):最后一行可为任意值,允许透视变形,如消逝点的生成,是更一般的变换(仿射变换是投影变换的特例)。

三、相机参数
(一)世界、相机、图像平面、图像坐标系
在计算机视觉中,坐标系的转换是理解相机成像的关键。以下定义四种主要坐标系:

1. 世界坐标系(World Coordinate System, O w X w Y w Z w O_wX_wY_wZ_w OwXwYwZw)
用户自定义的三维坐标系,用于描述场景中物体的位置,原点和坐标轴方向可任意选择(如场景中的某一角点)。
2. 相机坐标系(Camera Coordinate System, O c X c Y c Z c O_cX_cY_cZ_c OcXcYcZc)
以相机光心 O c O_c Oc 为原点,通常定义 Z c Z_c Zc 轴为相机光轴(垂直于成像平面), X c X_c Xc 和 Y c Y_c Yc 轴平行于成像平面的行列方向。
3. 图像平面坐标系(Image Plane Coordinate System, O i X i Y i O_iX_iY_i OiXiYi)
位于相机坐标系的 Z = f Z = f Z=f 处(假设成像平面在光心前方),原点 O i O_i Oi 是光轴与成像平面的交点(主点),单位为物理长度(如毫米)。
4. 像素坐标系(Pixel Coordinate System, O u v O_uv Ouv)
以图像左上角为原点, u u u 轴向右, v v v 轴向下,单位为像素。像素坐标系与图像平面坐标系通过缩放和平移转换(考虑像素尺寸和主点偏移)。
(二)相机外参、相机内参
1. 相机外参(Extrinsic Parameters)
相机外参描述世界坐标系到相机坐标系的刚体变换,包括旋转和平移,即将世界点 P w \mathbf{P}_w Pw 转换为相机点 P c \mathbf{P}_c Pc:
P c = R P w + t \mathbf{P}_c = \mathbf{R} \mathbf{P}_w + \mathbf{t} Pc=RPw+t
其中:
- R \mathbf{R} R 是3×3正交旋转矩阵(满足 R T R = I \mathbf{R}^T \mathbf{R} = \mathbf{I} RTR=I),描述相机的朝向(俯仰、偏航、滚转角度);
- t \mathbf{t} t 是3×1平移向量,描述相机光心在世界坐标系中的位置 t = − R O w \mathbf{t} = - \mathbf{R} \mathbf{O}_w t=−ROw( O w \mathbf{O}_w Ow 是世界坐标系原点在相机坐标系中的位置)。
用齐次坐标表示为:
P c h = [ R t 0 T 1 ] P w h \mathbf{P}_c^h = \begin{bmatrix} \mathbf{R} & \mathbf{t} \\ \mathbf{0}^T & 1 \end{bmatrix} \mathbf{P}_w^h Pch=[R0Tt1]Pwh
其中 P c h = ( X c , Y c , Z c , 1 ) T \mathbf{P}_c^h = (X_c, Y_c, Z_c, 1)^T Pch=(Xc,Yc,Zc,1)T, P w h = ( X w , Y w , Z w , 1 ) T \mathbf{P}_w^h = (X_w, Y_w, Z_w, 1)^T Pwh=(Xw,Yw,Zw,1)T。
2. 相机内参(Intrinsic Parameters)
相机内参描述相机坐标系到像素坐标系的转换,包括焦距、主点位置、像素畸变等,与相机硬件相关,不随相机外部位置变化。
(1)理想针孔模型(无畸变)
假设成像平面与相机坐标系的 Z c Z_c Zc 轴垂直,主点 O i O_i Oi 在图像平面中心,像素为正方形:
- 焦距(Focal Length) : f f f(物理单位,如毫米),转换为像素单位为 f u = f / d x f_u = f / dx fu=f/dx, f v = f / d y f_v = f / dy fv=f/dy,其中 d x , d y dx, dy dx,dy 是像素在 X , Y X, Y X,Y 方向的物理尺寸(如毫米/像素)。
- 主点(Principal Point) : ( u 0 , v 0 ) (u_0, v_0) (u0,v0),即光轴与成像平面的交点在像素坐标系中的坐标(通常位于图像中心附近)。
转换过程:
- 相机坐标系下的点 P c = ( X c , Y c , Z c ) \mathbf{P}_c = (X_c, Y_c, Z_c) Pc=(Xc,Yc,Zc) 投影到图像平面,得到物理坐标 ( x , y ) = ( f X c / Z c , f Y c / Z c ) (x, y) = (f X_c / Z_c, f Y_c / Z_c) (x,y)=(fXc/Zc,fYc/Zc);
- 转换为像素坐标 ( u , v ) (u, v) (u,v):
u = x d x + u 0 = f u X c Z c + u 0 , v = y d y + v 0 = f v Y c Z c + v 0 u = \frac{x}{dx} + u_0 = f_u \frac{X_c}{Z_c} + u_0, \quad v = \frac{y}{dy} + v_0 = f_v \frac{Y_c}{Z_c} + v_0 u=dxx+u0=fuZcXc+u0,v=dyy+v0=fvZcYc+v0
用齐次矩阵表示为:u v 1 \] = \[ f u 0 u 0 0 f v v 0 0 0 1 \] \[ X c / Z c Y c / Z c 1 \] \\begin{bmatrix} u \\\\ v \\\\ 1 \\end{bmatrix} = \\begin{bmatrix} f_u \& 0 \& u_0 \\\\ 0 \& f_v \& v_0 \\\\ 0 \& 0 \& 1 \\end{bmatrix} \\begin{bmatrix} X_c / Z_c \\\\ Y_c / Z_c \\\\ 1 \\end{bmatrix} uv1 = fu000fv0u0v01 Xc/ZcYc/Zc1 内参矩阵 K \\mathbf{K} K 为: K = \[ f u 0 u 0 0 f v v 0 0 0 1 \] \\mathbf{K} = \\begin{bmatrix} f_u \& 0 \& u_0 \\\\ 0 \& f_v \& v_0 \\\\ 0 \& 0 \& 1 \\end{bmatrix} K= fu000fv0u0v01
实际相机中,像素可能存在倾斜(如传感器排列不严格正交),引入倾斜因子 s s s(描述 X , Y X, Y X,Y 方向的耦合)。此时内参矩阵变为:
K = [ f u s u 0 0 f v v 0 0 0 1 ] \mathbf{K} = \begin{bmatrix} f_u & s & u_0 \\ 0 & f_v & v_0 \\ 0 & 0 & 1 \end{bmatrix} K= fu00sfv0u0v01
其中 s = − f u cot θ s = -f_u \cot\theta s=−fucotθ, θ \theta θ 是像素行与列之间的夹角(理想情况 θ = 9 0 ∘ , s = 0 \theta = 90^\circ, s = 0 θ=90∘,s=0)。
(3)镜头畸变(Distortion)
实际镜头存在畸变,主要分为径向畸变(Radial Distortion)和切向畸变(Tangential Distortion):
- 径向畸变 :由镜头曲率引起,离图像中心越远畸变越明显,包括桶形畸变(Barrel Distortion)和枕形畸变(Pincushion Distortion)。径向畸变后的坐标为:
{ x distorted = x ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) y distorted = y ( 1 + k 1 r 2 + k 2 r 4 + k 3 r 6 ) \begin{cases} x_{\text{distorted}} = x \left( 1 + k_1 r^2 + k_2 r^4 + k_3 r^6 \right) \\ y_{\text{distorted}} = y \left( 1 + k_1 r^2 + k_2 r^4 + k_3 r^6 \right) \end{cases} {xdistorted=x(1+k1r2+k2r4+k3r6)ydistorted=y(1+k1r2+k2r4+k3r6)
其中 r 2 = x 2 + y 2 r^2 = x^2 + y^2 r2=x2+y2, k 1 , k 2 , k 3 k_1, k_2, k_3 k1,k2,k3 是径向畸变系数。 - 切向畸变 :由镜头安装误差引起,导致像素点沿切线方向偏移:
{ x distorted = x + 2 p 1 x y + p 2 ( r 2 + 2 x 2 ) y distorted = y + p 1 ( r 2 + 2 y 2 ) + 2 p 2 x y \begin{cases} x_{\text{distorted}} = x + 2 p_1 xy + p_2 (r^2 + 2 x^2) \\ y_{\text{distorted}} = y + p_1 (r^2 + 2 y^2) + 2 p_2 xy \end{cases} {xdistorted=x+2p1xy+p2(r2+2x2)ydistorted=y+p1(r2+2y2)+2p2xy
其中 p 1 , p 2 p_1, p_2 p1,p2 是切向畸变系数。
畸变校正过程:首先通过畸变模型计算理想坐标到畸变坐标的映射,然后反向求解畸变坐标到理想坐标的逆映射,用于图像校正。
(三)完整投影过程
结合外参和内参,世界坐标系下的点 P w \mathbf{P}_w Pw 到像素坐标系 p = ( u , v , 1 ) T \mathbf{p} = (u, v, 1)^T p=(u,v,1)T 的变换为:
p h = K [ R ∣ t ] P w h \mathbf{p}^h = \mathbf{K} [\mathbf{R} \mid \mathbf{t}] \mathbf{P}_w^h ph=K[R∣t]Pwh
其中:
- P w h = ( X w , Y w , Z w , 1 ) T \mathbf{P}_w^h = (X_w, Y_w, Z_w, 1)^T Pwh=(Xw,Yw,Zw,1)T 是世界点的齐次坐标;
-
R ∣ t \] \[\\mathbf{R} \\mid \\mathbf{t}\] \[R∣t\] 是3×4外参矩阵,将世界点转换为相机坐标;
展开后为:
u v 1 \] = K \[ R t \] \[ X w Y w Z w 1 \] = K ( R P w + t ) \\begin{bmatrix} u \\\\ v \\\\ 1 \\end{bmatrix} = \\mathbf{K} \\begin{bmatrix} \\mathbf{R} \& \\mathbf{t} \\end{bmatrix} \\begin{bmatrix} X_w \\\\ Y_w \\\\ Z_w \\\\ 1 \\end{bmatrix} = \\mathbf{K} \\left( \\mathbf{R} \\mathbf{P}_w + \\mathbf{t} \\right) uv1 =K\[Rt\] XwYwZw1 =K(RPw+t) 其中 P w = ( X w , Y w , Z w ) T \\mathbf{P}_w = (X_w, Y_w, Z_w)\^T Pw=(Xw,Yw,Zw)T 是世界点的三维坐标,除法操作(除以 Z c Z_c Zc)隐含在齐次坐标的归一化过程中。