system: [SYSTEM]

user: 4. 实验过程 4.1. 特征点提取 特征点的提取在模式识别中有很多方法例如：二值分割，边缘算子提取等，这里我们选用计算机视觉开源库里OPENCV里的Canny算子进行圆形物边缘的提取以便计算圆的中心。Canny算子是John F. Canny 1986年开发出来的一个多级边缘检测算法，实践证明，这种边缘检测算法是众多边缘检测算子中表现较突出的一种方法，下面我们详细阐述特征点提取的步骤： 1) 对原图进行中值滤波，然后用Canny算子提取边缘，如图3所示。 图3. 使用canny算子得到的边缘二值图像 2) 人工选择区域并且由计算机将识别圆心，如图4所示。 图4. 人工选取的区域，并由计算机自动识别的圆心(绿色环状物) 4.2. 内参数初始化 对于主点 ( u 0 ， v 0 ) 的初始值，可以由像片的长度和高度来决定，即 u 0 = w i d t h 2 ， v 0 = h e i g h t 2 ， (17) (17)式中： w i d h t 为影像以像素为单位的宽度， h e i g h t 为影像以像素为单位的高度，对于 m u ， m v ，可以由像片大小，视场角和焦距算出，式中符号含义与前文相同 m u = w i d t h 2 / ( f × θ ) m v = h e i g h t 2 / ( f × θ ) (18) 对于5个投影参数k 1 、k 2 、k 3 、k 4 、k 5 ，我们采用 r = k 1 × θ + k 2 × θ 3 进行拟合。 θ 为0˚~75˚的等间隔采样点(单位为弧度)，投影半径 r = f × θ ，并且暂时忽略k 3 、k 4 、k 5 。得到至少2个方程，解出k 1 、k 2 作为整体迭代求解的初始值。 4.3. 外参数初始化 由于鱼眼影像的变形越靠近边缘越大，我们只将离主点较近的9个圆心点作为像方点用二维DLT进行外参数的初始化。 x = h 1 X + h 2 Y + h 3 h 7 X + h 8 Y + 1 y = h 4 X + h 5 Y + h 6 h 7 X + h 8 Y + 1 (19) (X，Y)为控制点坐标，(x，y)为相应的像点坐标，当控制点大于等于4个时，将式(18)线性化，通过线性方程求解二维dlt的8个参数，由于8个参数是内外方为元素的函数值，由这8个参数解出外方位元素。当平面控制点的z坐标为0时，经典的共线方程可表示为式(19)。 x − x 0 = − f a 1 ( X − X s ) + b 1 ( Y − Y S ) + c 1 ( − Z s ) a 3 ( X − X s ) + b 3 ( Y − Y S ) + c 3 ( − Z s ) y − y 0 = − f a 2 ( X − X s ) + b 2 ( Y − Y S ) + c 2 ( − Z s ) a 3 ( X − X s ) + b 3 ( Y − Y S ) + c 3 ( − Z s ) (20) 将(20)转化成(21) x = ( f a 1 λ − a 3 λ x 0 ) X + ( f b 1 λ − b 3 λ x 0 ) Y + ( x 0 − f λ ( a 1 X s + b 1 Y s + c 1 Z s ) ) − a 3 λ X − b 3 λ Y + 1 y = ( f a 2 λ − a 3 λ y 0 ) X + ( f b 2 λ − b 3 λ y 0 ) Y + ( y 0 − f λ ( a 2 X s + b 2 Y s + c 2 Z s ) ) − a 3 λ X − b 3 λ Y + 1 (21) 式中： λ = ( a 3 × X s + b 3 × Y s + c 3 × Z s ) 。 比较式(19)与(21)，可得出以下八式： h 1 = f a 1 λ − a 3 λ x 0 h 2 = f b 1 λ − b 3 λ x 0 h 3 = x 0 − f λ ( a 1 X S + b 1 Y S + c 1 Z s ) h 4 = f a 1 λ − a 3 λ y 0 h 5 = f b 2 λ − b 3 λ y 0 h 6 = y 0 − f λ ( a 2 X S + b 2 Y S + c 2 Z s ) h 7 = − a 3 λ h 8 = − b 3 λ } (22) 由上式可得 h 1 − h 7 x 0 f = a 1 λ h 2 − h 8 x 0 f = b 1 λ h 4 − h 7 y 0 f = a 2 λ h 5 − h 8 y 0 f = b 2 λ − h 7 = − a 3 λ − h 8 = − b 3 λ } (23) 有上式最终可得到： a 1 a 3 = − h 1 − h 7 x 0 f h 7 b 1 b 3 = − h 2 − h 8 x 0 f h 8 a 2 a 3 = − h 4 − h 7 y 0 f h 7 b 2 b 3 = − h 5 − h 8 y 0 f h 8 } (24) 主点 ( x 0 ， y 0 ) 与4.2节提到的主点 ( u 0 ， v 0 ) 等同，f在前文4.2节已有论述。 在以Y轴为主轴的转角系统下， tan ( κ ) = b 1 b 2 ，根据式(22)与式(24)， tan ( κ ) = h 2 − h 8 x 0 h 5 − h 8 y 0 ，再由 b 1 2 + b 2 2 + b 3 2 = 1 得 b 3 2 = 1 1 + ( h 2 − h 8 x 0 ) 2 f 2 h 8 2 + ( h 5 − h 8 y 0 ) 2 f 2 h 8 2 (25) 通过 sin ( ω ) = − b 3 可求得 ω ，再由旋转矩阵的正交性 ( c 1 c 2 c 3 ) = ( a 1 a 2 a 3 ) × ( b 1 b 2 b 3 ) = ( a 2 b 3 − a 3 b 2 a 3 b 1 − a 1 b 3 a 1 b 2 − a 2 b 1 ) (26) 由 tan ( ϕ ) = − a 3 c 3 = 1 a 1 b 3 b 2 − a 2 a 3 b 1 ， b 1 ， b 2 在上一步已求出， a 1 b 3 ， a 2 a 3 可由式(24)确定。 由式(22)，可得到 h 3 = x 0 − f λ ( a 1 X s + b 1 Y s + c 1 Z s ) h 6 = y 0 − f λ ( a 2 X s + b 2 Y s + c 2 Z s ) λ = ( a 3 X s + b 3 Y s + c 3 Z s ) (27) X s ， Y s ， Z s 的初值可通过解(27)方程组得到。 4.4. 整体求解 观测方程如下： u = r ( θ ) × cos ( φ ) × m u + u 0 (28) v = r ( θ ) × sin ( φ ) × m v + v 0 (29) 由4.2节求出的3个旋转角可得到 a 1 ， a 2 ， a 3 ， b 1 ， b 2 ， b 3 ，加上3个平移参数 X s ， Y s ， Z s ，根据坐标齐次变换： x = a 1 X + b 1 Y + X s y = a 2 X + b 2 Y + Y s z = a 3 X + b 3 Y + Z s (30) (30)式(X，Y)为物方坐标点，(x，y，z)为近似像空间坐标点： θ = acos ( z s q r t ( x 2 + y 2 + z 2 ) ) φ = asin ( y s q r t ( x 2 + y 2 ) ) (31) 式(19)，(20)建立了物方点和像方点之间的关系，由上述关系，对于每一对物方点和像方点可得间接平差的误差方程： v = A x − L (32) 式(32)中：A为观测值对每个待求参数的偏导，v为残差，L为观测值减去近似值。对每一点对依次求出像点坐标对内参、外参、畸变系数的偏导数。但是这里对内外参求偏导数的解析式较为复杂。我们应用数值微分，通过8点的函数值求得近似偏导数，由数值微分理论，求偏导数的精度可达o(x 4 )。 最后我们用非线性邻域里较为可靠的优化方法L_M进行非线性最小二乘求解，此方法亦将“残差平方和最小”作为准则进行优化。 4.5. 影像纠正 4.5.1. 直接纠正 通过原影像坐标的反解，得到入射角 θ 和极角 φ ，再代入中心投影方程得到纠正后影像的坐标，由于重投影后，纠正影像的高度和宽度比原图像大，会有空白点，可以对其进行格网插值，选择双三次卷积进行插值。 具体步骤如下： 1) 依次由原图像的像点 ( u ， v ) 得到球面坐标 ( θ ， φ ) x = u − u 0 m u ， y = v − v 0 m v ， r = s q r t ( x 2 + y 2 ) 求解 多项式 r = k 1 × θ + k 2 × θ 3 + ⋯ + k 5 × θ 9 的根，选择合理的值 φ = acos ( x / r ) ，注意 r = 0 的情形； 2) 得到的球面坐标 ( θ ， φ ) 应用中心投影模型 r = f × tan ( θ ) ， { X = r × cos ( φ ) + X 0 Y = r × sin ( φ ) + Y 0 进行重投影，灰度 值的确定可采用双三次卷积。 4.5.2. 间接纠正 直接纠正会导致纠正图像上存有空白点，间接纠正是从纠正影像上的坐标点通过中心投影反算得到 ( θ ， φ ) ，再应用模型正算映射到原影像，通过双三次卷积插值恢复其灰度。具体介绍其步骤： 由相机视场角估算出纠正影像的大小，并算出主点坐标 ( u 0 ， v 0 ) ，依次求出纠正影像的像素坐标所对 应的 ( θ ， φ ) ，其中 x = u − u 0 m u ， y = v − v 0 m v ， r = s q r t ( x 2 + y 2 ) ， θ = atan ( r f ) ， φ = acos ( x / r ) 。注意 r = 0 的情形应用解出的参数确定的模型： r = k 1 × θ + k 2 × θ 3 + ⋯ + k 5 × θ 9 ， { X = r × cos ( φ ) + X 0 Y = r × sin ( φ ) + Y 0 ，确定纠正影像 的坐标与原影像的坐标映射关系，灰度插值采用双3次卷积插值。