2. Faculty of Aerospace Engineering, Delft University of Technology, Kluyverweg 1, 2629 HS Delft, The Netherlands
在室内卫星编队飞行平台[1, 2]中,视觉系统的标定精度是确保漂浮体定位精度的关键,其通常包括图像特征点检测和相机参数求解2个过程。关于相机参数求解,张正友算法[3]已经比较成熟,而图像特征点检测则成为研究热点。
第1类方法多采用黑白棋盘标定模板,对此实现角点检测最早的方法是Harris算法[4],采用局部灰度值的高斯梯度实现角点检测,当角点周围存在图像模糊时会得到多个虚假角点,影响标定精度。文献[5]采用2次Hough变换实现黑白栅格直线拟合,并根据直线交点获取角点精确坐标。文献[6]采用旋转直角模板进行角点筛选,然后采用多次曲线拟合实现角点确定。这2种方法计算量大,难以实现在线标定。文献[7]提出对称方差检测算法(SV算子),该方法仅采用角点附近2个象限的像素信息,实际使用中会产生错误角点。文献[8]提出一种改进的SV检测算子,采用平面到平面的变换实现角点初定位,基于区域能量中心概念实现精确定位。其仿真结果表明,该算法会造成部分角点丢失。文献[9]通过Radon变换和黑白检测算子检测4个典型特征方向上像素灰度分布特征实现角点检测,当图像边缘存在畸变时其检测性能得不到保证。文献[10]采用Hessian矩阵算子进行角点初选,然后基于对称约束确定真实角点,该方法采用圆形检测模板使得有用像素总有一部分处于扇形边缘,这会造成有用信息流失,进而影响检测精度。
第2类方法采用新的标定模板进行特征点检测。文献[11]在黑白棋盘四周增加了4条长宽比较大的长方形边界,基于参考图像和腐蚀算子检测长方形边界,在此基础上采用交比不变性原理实现角点定位。文献[12] 在黑白棋盘中增加了5个沙漏状的图形,充分减小了立体投影后图像几何形状变化的影响。文献[13]提出一种以渐进圆形为特征的标定模板及相应的检测算法,结果显示标定精度相比黑白棋盘提高20%。这些方法多次采用曲线拟合计算量较大,此外其标定模板也仅适用于具体的应用。
第3类方法是采用现有的软件工具箱直接进行相机标定,使用较广泛的有2种:Matlab相机标定工具箱[14]和OpenCV算法库[15]。前者在使用过程中需要用户人工选择4个边界角点,无法实现自动标定,而且该工具箱不支持处理大于2Mb的图像[6, 11]。从实验结果看,OpenCV算法库实现的标定精度不如Matlab标定工具箱,并且其角点检测结果往往排序混乱,对于参数求解不利。
基于此,本文在分析黑白棋盘角点特性基础上,提出一种基于交叉熵的角点检测算法。该算法原理简单、易于实现并且可用于自动标定。对比实验结果证明了算法的有效性和实用性。
1 棋盘角点特性分析典型黑白棋盘标定模板如图 1所示。定义棋盘格内部角点为:2个相间的黑色方格和白色方格的交叉点。定义像素点的四象限如图 2所示。对比其他像素点,内部角点具有如下的特性:
1) 角点相邻象限像素的灰度差绝对值最大。
2) 角点对角象限像素的灰度差异最大;
3) 角点局部灰度值变化剧烈,具有最大的灰度梯度值。
2 角点检测算法描述如图 3所示本文提出的交叉熵检测算法包括4个步骤:角点初定位,交叉熵筛选,局部非极大值抑制及亚像素坐标解算。 其主要特点是在传统角点初选基础上引入象限灰度信息距离实现精确筛选。
2.1 角点初定位根据上文特性1,定义角点邻域正方形滑动窗W,边长l=2s+1,s为分布到每个象限的正方形区域边长。据此对4个象限像素灰度和计算如下:
式中:f(i,j)为像素点(i,j)的灰度值,F(i,j)k是第k个象限的像素灰度和,k∈{1,2,3,4}。理想情况下,图 2中黑白相邻象限中像素灰度差绝对值为255s2。考虑到倾斜投影及采样噪声,灰度差通常小于该值。故得到角点初选规则如下:
式中:μ表征相邻像素象限灰度值差异程度,s表征检测窗尺寸。随着μ减小,角点检测数量呈非线性增长,根据经验取值0.1~0.3;s可以根据图像尺寸及黑白棋盘像素面积确定,通常取值为5即可。 2.2 交叉熵筛选规则随机分布的交叉熵[16]表征了其信息差异的定量描述。对于角点(i,j),可以得到先验公式如下:
即小范围内相对角点(i,j)对称的像素点灰度值也对称。由此可知互相对称的2个象限之间灰度差异最小,可以给出两者交叉熵定义如下。
定义1 针对角点(i,j),其第1象限和第3象限像素灰度交叉熵可表示为:
同理可得第二和第四象限灰度交叉熵D24(i,j)。其中s同样取值为5。对于候选角点进行交叉熵计算,对应象限灰度值对称特性最好时,即可实现角点筛选,相关实验结果见第3节。
2.3 局部梯度幅值非极大值抑制为避免在模糊角点附近产生多个候选角点(如图 4c)所示),这里引入边缘检测思想进行角点精确定位。通常真实的角点始终处于图像黑白框的边缘,采用Canny[17]算子设计非极大值抑制规则如下:
1) 计算备选角点附近x与y向的灰度梯度[18];
2) 根据梯度值计算梯度向量幅值;
3) 局部梯度幅值最大点即为最终的角点像素。
2.4 亚像素角点坐标解算室内卫星编队飞行要求视觉定位精度达到毫米级[2],因此相机标定精度要足够高。在上述像素级精度基础上,引入Forstner算子[19]实现亚像素级的角点定位。以下给出亚像素坐标计算方法:
式中:(x′,y′)是像素点(x,y)优化后的亚像素坐标。其中各个中间变量计算如下: Ix与Iy分别为像素(x,y)在x及y向的灰度梯度。 3 算法测试与分析为了对所提出的交叉熵检测算法进行性能对比测试,选择相机标定算法常用的标准测试图片[14]。
3.1 算法执行结果以图像包中“Image 13”为例,图 4为算法的检测结果,表 1总结了前3步执行过后的角点数。
如图 4a)所示,角点初选结果包括很多非角点像素;对比图 4b)可知交叉熵筛选可剔除大部分非角点像素,仅有角点附近的像素需要排除,证明了该方法的有效性;对比图 4c)说明非极大值抑制可以很好实现真实角点局部相邻像素点的排除。
3.2 与其他算法结果对比为了严格地对交叉熵检测算法性能进行对比,选择标准测试图像包中“Image13”、“Image18”和“Image20”3幅图进行实验,这几幅图的拍摄倾斜角最大,产生的畸变也最大。图 5~图 7分别对比了Harris算子、SV算子以及交叉熵检测算法之间的检测结果,该结果同时也总结于表 2中。
对比图 5中3种方法的检测结果,可知交叉熵检测算法可正确检测出所有的内部角点,Harris算子检测出所有角点,但是还包括非角点像素;SV算子性能最差,不但丢失了部分角点而且检测出了大量非角点像素。由此可知:交叉熵检测算法优于后两者。同样的结果可以从图 6、图 7中看出。
3.3 亚像素检测精度分析以“Image 13”为例,对本文算法得到的亚像素坐标值和Marlab标定工具箱得到的结果进行对比。选择图“Image 13”中第一行从右至左的角点坐标,对比结果列于表 3中。
序号 | 交叉熵检测结果 | Matlab工具箱结果 | 序号 | 交叉熵检测结果 | Matlab工具箱结果 |
1 | (538.163 1, 114.884 1) | (537.962 1, 115.351 5) | 8 | (320.468 2, 90.049 8) | (320.629 8, 89.127 8) |
2 | (509.777 7, 112.0352) | (509.575 8, 111.592 6) | 9 | (287.331 9, 84.604 9) | (286.614 4, 85.819 0) |
3 | (481.414 4, 106.867 1) | (480.436 3, 107.344 2) | 10 | (251.693 6, 82.226 4) | (252.219 4, 82.768 2) |
4 | (450.160 8, 104.001 3) | (449.958 5, 103.745 9) | 11 | (217.187 4, 78.987 4) | (217.338 0, 79.725 6) |
5 | (419.616 1, 98.969 1) | (418.928 8, 99.740 6) | 12 | (183.110 9, 76.118 8) | (182.639 6, 76.906 0) |
6 | (386.696 8, 97.175 9) | (386.935 3, 96.292 2) | 13 | (148. 390 0, 74.040 1) | (147.760 8, 74.456 8) |
7 | (354.115 2, 91.981 2) | (354.073 0, 92.497 6) |
表 3显示,2种检测方法得到的结果相差不超过1个像素值,由此证明交叉熵检测算法结果正确。
4 结 论本文提出一种基于交叉熵的角点检测算法。该算法实现过程包括4个步骤:角点初选,交叉熵筛选,局部梯度非极大值抑制以及亚像素角点解算等。实验结果显示,该算法优于Harris算子以及SV算子,其亚像素级检测精度与Matlab标定工具箱相当,易于实现在线标定。目前该算法已经应用于室内卫星编队飞行平台的视觉定位系统中,效果良好。
[1] | Andani Osuman. Multi-Robot Testbed for Distributed Space System[D]. Delft University of Technology, 2012 |
[2] | Zhao B, Guo J, Gill E K A. A Camera-Based Positioning System for the Formation Flying Testbed[C] //Proceedings of the 63rd International Astronautical Congress, 2012:8325-8333 |
[3] | Zhang Z. A Flexible New Technique for Camera Calibration[J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 2000, 22:1330-1334 |
Click to display the text | |
[4] | Chris Harris, Mike Stephens. A Combined Corner and Edge Detector[C] //Proceedings of the 4th Alvey Vision Conference, Manchester, 1988:l47-l51 |
Click to display the text | |
[5] | Arturo de Laescalera, Jose Maria Armingol. Automatic Chessboard Detection for Intrinsic and Extrinsic Camera Parameter Calibration[J]. Sensors, 2010, 10:2027-2044 |
Click to display the text | |
[6] | Wang Zhongshi, Wu Wei, Xu Xinhe, et al. Recognition and Location of the Internal Corners of Planar Checkerboard Calibration Pattern Image[J]. Applied Mathematics and Computation, 2007, 185:894-906 |
Click to display the text | |
[7] | 刘阳成,朱枫.一种新的棋盘格图像角点检测算法[J].中国图像图形学报,2006,11(5):656-660 Liu Yangcheng, Zhu Feng. A New Algorithm for X-Corner Detection[J]. Journal of Image and Graphics, 2006, 11(5):656-660(in Chinese) |
Cited By in Cnki (72) | Click to display the text | |
[8] | 郝颖明,朱枫.摄像机在线标定中的棋盘格角点自动检测方法[J].计算机工程, 2007, 33(17):213-215 Hao Yingming, Zhu Feng. Automatic X-Corners Detection for Online Camera Calibration[J]. Computer Engineering, 2007, 33(17):213-215(in Chinese) |
Cited By in Cnki (18) | Click to display the text | |
[9] | 刘阳,王福利,常玉清,等.黑白棋盘格角点检测算法[J].东北大学学报,2007,28(8):1090-1093 Liu Yang, Wang Fuli, Chang Yuqing, et al. Black and White X-Corner Detection Algorithm[J]. Journal of Northeastern University, 2007, 28(8):1090-1093(in Chinese) |
Cited By in Cnki (30) | Click to display the text | |
[10] | He Juan, Xia Junying, Xu Xiaoquan, et al. Automatic Corner Detection and Localization for Camera Calibration[C] //The 10th International Conference on Electronic Measurement & Instruments, 2011:312-315 |
Click to display the text | |
[11] | Shi Xifan, Hong Ning, Cai Tiefeng. An Automatic and Robust Chessboard Corner Extraction[J]. LNCS Transactions on Edutainment 6758, 2011, 49-56 |
Click to display the text | |
[12] | Yu Chunsheng, Peng Qingjin. Robust Recognition of Checkerboard Pattern for Camera Calibration[J]. Optical Engineering, 2006, 45:093201 |
Click to display the text | |
[13] | 梁力,尹东斐,王川.高精度摄像机标定模板的设计及识别算法[J].西安交通大学学报,2011,45(4):82-85(in Chinese) Liang Li, Yin Dongfei, Wang Chuan. Design and Detection Methods for Accurate Camera Calibration Targets[J]. Journal of Xi'an Jiaotong University, 2011, 45(4):82-85(in Chinese) |
Cited By in Cnki (12) | Click to display the text | |
[14] | Jean-Yves Bouguet. Camera Calibration Toolbox for Matlab[EB/OL]. (2013-12-02)[2014-02-10]. http://www.vision.caltech.edu/bouguetj/calib_doc/index.html |
[15] | Gary Bradski, Adrian Kaehler:Learning Open CV[M]. USA, O'Reiuy Media, Inc, 2008 |
[16] | Li C H, Lee C K. Minimum Cross Entropy Thresholding[J]. Pattern Recognition, 1993, 26:617-625 |
Click to display the text | |
[17] | John Canny. A Computational Approach to Edge Detection[J]. IEEE Trans on Pattern Analysis And Machine Intelligence, 1986, 8(6):679-698 |
Click to display the text | |
[18] | Gonzalez R C, Woods R E. Digital Image Processing[M]. 2nd ed, New Jersey, USA, Prentice Hall, 2002 |
2. Faculty of Aerospace Engineering, Delft University of Technology, Kluyverweg 1, 2629 HS Delft, The Netherlands