翻越相机标定的奥林匹斯

科技资讯 投稿 9200 0 评论

翻越相机标定的奥林匹斯

    张正友 99年发表的论文 "Flexible Camera Calibration by Viewing a Plane from Unknown Orientations",在 2013年获得 ICCV 的 Helmholtz Prize,便是对其影响的认可

     

 

1  相机标定

1.1  定义

    求解:相机的内参和畸变系数

$\qquad s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix}  = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix}  \begin{bmatrix} r_{11} & r_{12} & r_{13} & t_1 \\ r_{21} & r_{22} & r_{23} & t_2 \\ r_{31} & r_{32} & r_{33} & t_3 \end{bmatrix}  \begin{bmatrix} X_w \\ Y_w \\ Z_w\\ 1 \end{bmatrix} $

1.2  二维展开

    开个脑洞,类比《三体》中的质子展开过程:高维度的相机标定问题,如果展开到二维空间,就是一个曲线拟合的问题,如下图,参见 Ceres Solver 的曲线拟合例程

 

2  特征提取

    选 1/3 英寸(对角线6mm CIS芯片,同样根据最佳实践原则 #3,推测出镜头的理想焦距为 12~24mm

    这意味着,如果提取的特征点偏差 1个像素,造成的尺寸偏差为 0.08mm,因此,特征提取的精度非常重要

2.1  标定板图案

    常用标定板的图案,有棋盘格、圆、非对称圆、圆环,以及 ChArUco 等,Halcon 公司有特定图案的 Halcon 标定板

2.1.1  特征提取精度

    参考[2]中,对三种图案标定板的各五张合成图像(非相机拍摄,添加相同的径向畸变,比较不同图案的特征提取精度

     2  圆标定板,特征为圆心,定位误差次小,为 2.6pixel

    对于0.08mm/pixel 的机器视觉系统,当镜头确定时(畸变系数固定,不同标定板对应的特征,提取精度最大相差 4.3pixel,约 0.34mm

2.1.2  反投影误差

    而用相机拍摄的三种图案的实际图像,进行标定后,得到反投影误差的 RMSE 分别为 0.139,0.135 和 0.115

2.2  迭代标定法

     

2.2.1  偏差原因

     

       

     

2.2.2  方法步骤

    2)相机标定,得到标定参数

    3)畸变校正和透视校正(转换为平行正对图像

    5)根据标定参数(每次迭代更新,将特征点转换回原始位置

    选相机真实拍摄的图像,采用该方法标定,得到反投影误差的 RMSE,如下:  

    以上结果,是参考[2]中所列,本人未实践过,但在一家公司公众号的文章中 (参考[4],发现了类似迭代标定法的动图,如下:

 

3  优化方法

   

3.1  RANSAC 标定法

    对于特征中离群点的剔除,常用的一种方法是 RANSAC:以反投影误差 $E_{reproj}$ 做阈值,小于的为内点,大于的为外点,不断迭代使选定的内点都满足 $<E_{reproj}$

3.1.1  方法步骤

    2)计算所有特征点的反投影误差 $E_{reproj}$

    重复步骤 2 和 3,直到所有的内点都满足 $E_{reproj} < T_{reproj}$ (文中 T 取 2

    5)将提取的特征点,在像素位置坐标中画十字线,均分成四组 (避免四点共线

    7)如果本次筛选的 $S_{in}^i$,比之前筛选的内点数量多,则更新 $N$ 值为 $S_{in}^i$ 的内点数

    9)对每一幅图像,都执行步骤 5 6 7 8,获取每一幅图像的最大内点集 $S_{con}$

    以上步骤,和 OpenCV 中的 findHomography( 函数,在求解单应性矩阵时所用的 RANSAC 法类似,可参考之

3.1.2  测试效果

  

     

     

3.2  目标函数

3.2.1  2d 和 3d

    考虑镜头的畸变,相机标定是一个非线性优化的过程,对于张氏标定法,目标函数在 2d 像平面上,如下:

    $\quad\displaystyle\sum_{i=1}^{N} \sum_{j=1}^{L}|| m_{u,i,j}^d - \hat{m}_{u,i,j}^{d}(f_x, f_y, u_0, v_0, k_1, k_2, R_i, t_i||^2$

      

    $\quad\displaystyle\sum_{i=1}^N \sum_{j=1}^L || m_{c,i,j}(R_i, t_i - \hat{m}_{c, i, j}(f_x, f_y, u_0, v_0,k_1, k_2, R_i, t_i||^2$

   

3.2.2  $E_1$ 和 $E_2$

    $\quad E_1 = \begin{split}\frac{1}{n}\displaystyle\sum_{i=1}^{n}\sqrt{||M_{c,i} - \hat M_{c,i}||^2} \end{split}$

    $\quad E_3 = \begin{split}\frac{1}{m}\displaystyle \sum_{i,j=1}^{n}\sqrt{(|| M_{w,i} - M_{w,j}|| - ||\hat M_{c,i} - \hat M_{c,j}||^2} \end{split}$

   

 

参考

    Accurate Camera Calibration using Iterative Refinement of Control Points,2009

    计算机与机器视觉中的高精度相机标定 (下

    Camera Calibration Toolbox for Matlab,Jean-Yves Bougue

    A novel optimization method of camera parameters used for vision measurement,2013

    Automatic machine vision calibration using statistical and neural network methods,2005

编程笔记 » 翻越相机标定的奥林匹斯

赞同 (31) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽