2. 南通大学 电子与信息学院,江苏 南通 226019
2. School of Electronics and Information, Nantong University, Nantong 226019, Jiangsu, China
食品行业的很多包装都是圆柱体,如食用油油桶、桶装饮用水和奶粉罐等.这样的产品没有棱角,易于手握,且同等条件下,圆柱可以获得最大的有效容积.虽然圆柱体包装给加工带来了种种便利,但是对圆柱表面的视觉检测却造成了很大的困难.如标贴检测时,柱面成像导致的图像失真使直线特征难以提取,以及二维码扫描问题等.因此,柱面图像反投影变换技术对此类检测意义重大.
目前关于柱面反投影算法主要应用于二维码的扭曲形变校正以及平面显示设备显示柱面全景图.对于二维码扭曲校正,最常见的方法是多项式拟合[1-2],虽然理论上任何变换都可由多项式的泰勒展开式表示,但高阶多项式插值中常出现不稳定的现象.王伟等[3-7]采用基于相机标定的空间几何信息与图像信息相结合的柱面二维码扭曲校正方法,但此方法要求相机与目标物体的位置严格地相对固定.对于平面显示柱面全景图,肖潇等[8-14]提出了用传统柱面反变换模型来解决全景环形透镜情况,同样不适用于前后左右移动的柱面图像. BaoFeng Zhang等[15]利用棋盘格校正鱼眼全景图像,但需要提前知道棋盘格的规格,且不能移动,精度低,灵活性弱.以上所有的柱面反投影算法都需要固定相机以及目标物体的位置,实际应用中这个条件通常是难以满足的,严重限制了流水线上各类产品的使用.
根据透视投影原理,圆柱截面边为二次曲线,则柱面上的点到相机的距离呈二次曲线,因此像素当量随距离远近也呈二次曲线分布.本文通过二次曲线拟合统一像素当量的方法实现柱面反投影校正, 通过修正二次曲线系数的方式使其适应目标物体的一定范围内移动,无需再次标定,提高了校正算法的适应性和鲁棒性.
1 基于二次曲线拟合的柱面反投影校正为了实现柱面图像反投影,需要事先进行标定.这里采用棋盘格作为标定物,将事先打印好的标定纸完全贴合在需要校正的柱面上.提取亚像素级别精度的棋盘格角点作为标定依据,研究其分布规律,如图 1所示.
图像满足小孔成像模型.研究像素当量的分布情形,所谓像素当量,指的是世界坐标系中物理距离与图像坐标系中像素距离的换算比例,其计算公式为物理长度(mm)比上像素数(pixel),单位为mm/pixel.根据小孔成像原理,对于贴合在圆柱表面的标定纸,每个角点到相机的距离是按二次曲线分布的,因此每个位置的像素当量同样按二次曲线分布.
1.1 竖直方向校正标定纸上的方格高度是一致的,按照像素当量的分布规律,图像上从左到右的方格高度也就会呈二次曲线分布.因此,可以通过拟合方格高度的变化情况表征像素当量倒数的分布情况.为了保证最大程度地还原原图信息,以图像中最大的像素当量作为标准,即将图像还原至离相机最近的圆柱切面.
图 1中共20个点,方格高度是呈二次曲线分布的,N0~N9、P0~P9分别表示上下两排点(白线是为了将标注点更明了).两个二次曲线的差值还是二次曲线,具体待拟合点坐标为
$ \left\{ {\begin{array}{*{20}{l}} {{x_i} = \left( {{N_{ix}} + {P_{ix}}} \right)/2,}\\ {{y_i} = {P_{ix}} - {N_{ix}}.} \end{array}} \right.\left( {i = 0,1,2, \cdots ,9} \right) $ | (1) |
图 1中的10组点可以得到一个超定方程组:
$ \left\{ {\begin{array}{*{20}{l}} {{y_0} = ax_0^2 + b{x_0} + c}\\ {{y_1} = ax_1^2 + b{x_1} + c}\\ \vdots \\ {{y_9} = ax_9^2 + b{x_9} + c} \end{array}} \right. \to \left( {\begin{array}{*{20}{c}} {x_0^2}&{{x_0}}&1\\ {x_1^2}&{{x_1}}&1\\ \vdots & \vdots & \vdots \\ {x_9^2}&{{x_9}}&1 \end{array}} \right)\left( {\begin{array}{*{20}{c}} a\\ b\\ c \end{array}} \right) = \left( {\begin{array}{*{20}{c}} {{y_0}}\\ {{y_1}}\\ \vdots \\ {{y_9}} \end{array}} \right). $ | (2) |
式(2)简写成AX=b,用最小二乘法求解这个超定方程组[16]:
$ {\mathit{\boldsymbol{A}}^{\rm{T}}}\mathit{\boldsymbol{AX}} = {\mathit{\boldsymbol{A}}^{\rm{T}}}\mathit{\boldsymbol{b}}\mathit{\boldsymbol{.}} $ | (3) |
ATA是n阶方阵,且是正定矩阵,必有det(ATA) > 0.故ATAX=ATb的解存在且唯一,即可求出最优解(a0, b0, c0).
根据像素当量倒数分布情况y=a0x2+b0x+c0,见图 2,调整x=X0轴线两边像素当量的大小.以图像$ \frac{h}{2}$为基准线,h指图像的高度.对图像中任意一点(x0, y0)进行y方向反投影变换校正:
$ \frac{{{y_0} - \frac{h}{2}}}{{{a_0}x_0^2 + {b_0}{x_0} + {c_0}}} = \frac{{y' - \frac{h}{2}}}{{{X_0}{Y_0}}}, $ | (4) |
$ y' = \frac{h}{2} + \frac{{{X_0}{Y_0}\left( {{y_0} - \frac{h}{2}} \right)}}{{{a_0}x_0^2 + {b_0}{x_0} + {c_0}}}. $ | (5) |
根据上节分析的像素当量分布的基本原理,水平方向上不同位置的像素当量数值同样呈二次曲线分布.由于水平方向上每一处的像素当量都不同,且与竖直方向上的像素当量分布曲线有较大区别,本文算法使用平均值来拟合像素当量的变化曲线.已知标定纸上每个方格的宽度是一致的,不妨假设一个方格宽度内的像素当量是恒定的,则有
$ \left\{ {\begin{array}{*{20}{l}} {{x_i} = \left( {{N_{\left( {i + 1} \right)x}} + {N_{ix}}} \right)/2,}\\ {{y_i} = \left( {{N_{\left( {i + 1} \right)x}} - {N_{ix}}} \right),} \end{array}} \right.\left( {i = 0,1, \cdots ,8} \right) $ | (6) |
$ \left\{ {\begin{array}{*{20}{l}} {{x_i} = \left( {{P_{\left( {i - 8} \right)x}} + {P_{\left( {i - 9} \right)x}}} \right)/2,}\\ {{y_i} = \left( {{P_{\left( {i - 8} \right)x}} - {P_{\left( {i - 9} \right)x}}} \right).} \end{array}} \right.\left( {i = 9,10, \cdots ,17} \right) $ | (7) |
用式(2)、式(3)求解上式18组待拟合点的最佳二次曲线参数(a1, b1, c1), 得到水平方向上像素当量倒数的分布情况y=a1x2+b1x+c1, 如图 3所示.
同理,调整x=X0轴线两边水平方向像素当量的大小.需要注意的是,由于水平方向校正过程中像素点的横坐标是不断变化的,所以x方向不是简单的增加横坐标的过程,而是依赖于前一个像素点横坐标变化的迭代增量过程,如图 4所示.线l是简单的增加横坐标过程,线m是迭代增量过程.
以中心轴右侧拉伸为例(横坐标Xi代表的原图上的一个像素):
$ \left\{ {\begin{array}{*{20}{l}} {\Delta {x_1} = \left( {{a_1}X_0^2 + {b_1}{X_0} + {c_1}} \right)/\left( {{a_1}X_1^2 + {b_1}{X_1} + {c_1}} \right), }\\ \vdots \\ {\Delta {x_{n-1}} = \left( {{a_1}X_0^2 + {b_1}{X_0} + {c_1}} \right)/\left( {{a_1}X_{n-1}^2 + {b_1}{X_{n-1}} + {c_1}} \right).} \end{array}} \right. $ |
本文采用的迭代累加过程(Xi″代表的是Xi新的横坐标值)可表示为
$ X'{'_i} = {X_i} + \Delta {x_i} + \cdots + \Delta {x_1} = X'{'_{i - 1}} + \Delta {x_i}. $ | (8) |
对于左右移动的柱面,物体到相机的距离并不发生改变,因此像素当量倒数的分布也只是左右移动,二次曲线形态不变.如图 5中ABC→A′B′C′.
不妨设柱面向右移动Δx,即中心轴线右移Δx,则y方向二次曲线系数变为
$ a{'_0} = {a_0}, b{'_0} = {b_0}-2{a_0}\Delta x, c{'_0} = {a_0}\Delta {x^2}-{b_0}\Delta x + {c_0}. $ |
x方向二次曲线系数变为
$ a{'_1} = {a_1}, b{'_1} = {b_1}-2{a_1}\Delta x, c{'_1} = {a_1}\Delta {x^2}-{b_1}\Delta x + {c_1}. $ |
对于前后移动的柱面,中心轴线不变,二次曲线变化情况如图 5中ABC→A″B″C″,则y方向二次曲线系数变为
$ a'{'_0} = r{a_0}, b'{'_0} = r{b_0}, c'{'_0} = \left[{\left( {{r^2}-1} \right)b_0^2 + 4{a_0}{c_0}} \right]/4r{a_0}. $ |
x方向二次曲线系数变为
$ a'{'_1} = r{a_1}, b'{'_1} = r{b_1}, c'{'_1} = \left[{\left( {{r^2}-1} \right)b_1^2 + 4{a_1}{c_1}} \right]/4r{a_1}. $ |
式中
实验选用德国basler工业相机,对市面上常见的金龙鱼油桶进行测试,图片大小为1280像素×960像素,所有测试图片前期均已经通过图像分割已知圆柱像素边缘.实验一首先对贴有标定纸的油桶进行镜头畸变校正[17-18],提高标定点的精度,标定点如表 1所示.根据式(1)得出y方向待拟合点坐标,如表 2所示, 根据式(6)、(7)得出x方向待拟合点坐标,如表 3所示.通过表 2、3实验数据进行二次曲线系数标定,如表 4所示.并用该二次曲线系数结合式(4)、(5)、(8)对原金龙鱼油桶上的标贴进行反投影变换.
在金龙鱼油桶上分别拍取棋盘格和油桶标贴纸的图片,然后根据本文算法对图片进行实验,得到结果如图 6所示.
从图 6不难看出,只校正了圆柱形部分,因为水平方向校正时,圆柱边缘像素当量倒数趋向于0,如图 3中的A,B两点,像素当量趋于无穷大,会导致图片形变十分严重.因此,本算法实现过程中把圆柱边缘作为临界点,也作为校正图像的宽度.这样既保留了圆柱标贴的重要信息,也不会受到边缘及背景的影响.水平方向的迭代增量坐标结果与一般增量结果比较情况如表 5所示.由于一个像素与一个像素之间差别较小且量很大,表格选取了离散点的实验结果.迭代增量算法结果如图 6(c)所示,非迭代算法结果如图 7所示.
理论上反投影算法校正后,棋盘格上的格子会校正成为正方形.为验证反投影实验法的正确性,实验对校正后图像上的方格测量其宽度以及高度,计算标准差:高度标准差为0.427 857,宽度标准差为1.464 46.本文另外实现了与性能较好的基于柱面模型参量的二维码校正方法[7]的对比,该算法通过柱面上点到柱面中心线旋转的角度修正了传统的柱面反投影算法,但仍需要参数D(0):柱面表面中心到焦点的距离.实验结果如图 8所示, 高度标准差为0.449 233,宽度标准差为1.503 25.
实验结果很好地证明了本文算法的正确性,柱面图像被显著延展为平面状态,且与其他修正算法精度相当.
3.2 移动柱面反投影效果比较在实验一的基础上,设计了实验二来验证本文算法对于移动柱面的适应性,通过柱面左右及前后移动来验证本文算法的灵活性并与其他方法相比较.首先,对柱面左右移动情况进行反投影并计算校正后的宽度高度的标准差,算法结果如表 6所示,Kuen-Tsair算法结果如表 7所示.基准位置为7 cm.曲线比较如图 9所示.
对于前后移动情况进行反投影并计算随尺度因子变化校正后的宽度高度的标准差,算法结果如表 8所示,Kuen-Tsair算法结果如表 9所示.曲线比较如图 10所示,部分反投影效果图如图 11所示.
从表 6、表 7以及图 9可以看出,本文算法左右移动高度标准差保持在0.55像素以内,宽度标准差保持在1.5像素以内. Kuen算法只能在小范围左右移动内保持与本文算法同样的精度.从表 8、表 9和图 10可以看出, ratio在0.85~1.15之间时,本文算法高度标准差保持在0.55像素以内,ratio在0.9~1.08宽度标准差保持在1.55像素以内.而Kuen算法只能在0.95~1.04之间保持与本文算法同样的精度.因此,本文提出的移动柱面参数修正算法精度与其他算法相当,但灵活性更高,更适用于流水线上的应用.实际应用如图 12所示,从图 12看出, 无论前后左右移动,本文算法都能给出一个很好的反投影效果.
基于二次曲线拟合的柱面图像反投影变换算法依托于透视投影的基本原理,在消除透镜非线性畸变的基础上,结合小孔成像模型“近大远小”的特性,分析水平方向和竖直方向像素当量的分布特点,并结合图像在两个方向各自不同的延展方式,完成了柱面图像反投影算法.同时,为了突破传统方法要求相机与物体相对关系严格固定的限制,提出一种灵活修正二次曲线系数的方法以适应物体相对相机小范围内移动的情形.实验表明,本文算法在与传统方法校正效果相当的前提下,适应性更好,仅需一次标定,效率更高.
[1] | LAVALLEE S. Registration for computer-integrated surgery: methodology, state of the art computer-integrated surgery-technology and clinical applications[M]. Cambridge, MA: MIT Press, 1996 : 77 -97. |
[2] |
雷杰, 杜歆, 朱云芳, 等. 基于泰勒模型的全向图像展开[J].
中国图象图形学报,2010, 15 (10) : 1430-1435.
LEI Jie, DU Xin, ZHU Yunfang, et al. Omni-directional image unwarping based on Taylor model[J]. Journal of Image & Graphics,2010, 15 (10) : 1430-1435. DOI: 10.11834/jig.080564 |
[3] | LEI L, HE W, ZHANG W. Distortion correction of data matrix symbol directly marked on cylinder surface[C]// Artificial Intelligence and Computational Intelligence (AICI). IEEE, 2010:225-229. DOI:10.1109/AICI.2010.169. |
[4] |
王伟, 何卫平, 郭改放, 等. 基于标定的任意半径柱面上2维条形码畸变校正[J].
中国图象图形学报,2014, 19 (1) : 69-75.
WANG Wei, HE Weiping, GUO Gaifang, et al. Restoration of distorted 2D barcode marked on arbitrary radius cylinder based on calibrated camera[J]. Journal of Image & Graphics,2014, 19 (1) : 69-75. DOI: 10.11834/jig.20140109 |
[5] |
向世明, 赵国英, 陈睿, 等. 积厚文档扫描图像校正[J].
计算机辅助设计与图形学学报,2005, 17 (1) : 42-48.
XIANG Shiming, ZHAO Guoying, CHEN Rui, et al. Restoration of images scanned from thick bound documents[J]. Journal of Computer Aided Design & Computer Graphics,2005, 17 (1) : 42-48. DOI: 10.3321/j.issn:1003-9775.2005.01.006 |
[6] | LIAO Q. The research on distortion correction algorithm of unwrapping the cylinder image of panoramic annular lens[]// Proceedings of the 2013 International Conference on Electrical and Information Technologies for Rail Transportation (EITRT2013)-Volume II. Springer, 2014:449-456. DOI:10.1007/978-3-642-53751-6_48. |
[7] | LAY K T, WANG L J, WANG C H. Rectification of QR-code images using the parametric cylindrical surface model[C]//Next-Generation Electronics (ISNE). IEEE, 2015. DOI:10.1109/ISNE.2015.7132033. |
[8] | XU Y, ZHOU Q, GONG L, et al. Study of a FPGA real-time multi-cameras cylindrical panorama video system with low latency and high performance[C]//IVMSP Workshop. 2013:1 -4.DOI:10.1109/IVMSPW.2013.6611890. |
[9] |
陈旺, 徐玮, 熊志辉, 等. 折反射全向图像柱面展开校正算法研究[J].
中国图象图形学报,2009, 14 (12) : 2559-2565.
CHEN Wang, XU Wei, XIONG Zhihui, et al. Rectification of catadioptric omnidirectional images via cylindrical unwarping[J]. Journal of Image & Graphics,2009, 14 (12) : 2559-2565. DOI: 10.11834/jig.20091220 |
[10] | WONG W K, SHENPUA W, CHU K L, et al. A study of different unwarping methods for omnidirectional imaging[C]// Signal and Image Processing Applications (ICSIPA).EEE, 2011:226-239.DOI:10.1109/ICSIPA.2011.61144083. |
[11] |
肖潇, 王伟, 毕凯. 柱面透视投影模型下的全景环形透镜畸变校正[J].
西安电子科技大学学报自然科学版,2013, 40 (1) : 87-92.
XIAO Xiao, WANG Wei, BI Kai. Panoramic annular lens distortion correction using the cylinder perspective projection model[J]. Journal of Xidian University,2013, 40 (1) : 87-92. DOI: 10.3969/j.issn.1001-2400.2013.01.016 |
[12] |
凌云峰, 朱齐丹, 吴自新, 等. 全景视觉图像柱面理论展开算法实现及其改进[J].
应用科技,2006, 33 (9) : 4-6.
LING Y F, ZHU Q D, Zi in, et al. Implementation and improvement of unwrapping algorithm cylindrical theory for omni-directional image[J]. Applied Science & Technology,2006, 33 (9) : 4-6. DOI: 10.3969/j.issn.1009-671X.2006.09.002 |
[13] |
周辉, 罗飞, 李慧娟, 等. 基于柱面模型的鱼眼影像校正方法的研究[J].
计算机应用,2008, 28 (10) : 2664-2666.
ZHOU Hui, LUO Fei, LI Huijuan, et al. Study on fisheye image correction based on cylinder model[J]. Journal of Computer Applications,2008, 28 (10) : 2664-2666. |
[14] | XU Y, ZHOU Q, GONG L, et al. High-speed simultaneous image distortion correction transformations for a multicamera cylindrical panorama real-time video system using FPGA[J]. IEEE Transactions on Circuits & Systems for Video Technology,2014, 24 (6) : 1061-1069. DOI: 10.1109/TCSVT.2013.2290576 |
[15] | ZHANG B, QI Z, ZHU J C, et al. Omnidirection image restoration based on spherical perspective projection[C]// Circuits and Systems. IEEE, 200:922-925. |
[16] |
李宝家, 刘昊阳. 超定方程组的一种解法[J].
沈阳工业大学学报,2002, 24 (1) : 76-77.
LI Jiabao, LIU Haoyang. A solving method of overdetermined systems[J]. Journal of Shengyang University of Technology,2002, 24 (1) : 76-77. DOI: 10.3969/j.issn.1000-1646.2002.01.024 |
[17] |
李勤, 达飞鹏, 温晴川. 任意方向下的摄像机镜头畸变标定[J].
仪器仪表学报,2010, 31 (9) : 2022-2027.
LI Qin, DA Feipeng, WEN Qingchuan. Calibration lens distortion of camera in all directions[J]. Chinese Journal of Scientific Instrument,2010, 31 (9) : 2022-2027. |
[18] |
周子卿, 赵鹏, 李勃, 等. 基于共线向量的非量测镜头畸变校正[J].
光学学报,2014 (10) : 172-177.
ZHOU Ziqing, ZHAO Peng, LI Bo, et al. Nonmetric lens distortion calibration based on collinear vectors[J]. Acta Optica Sinica,2014 (10) : 172-177. DOI: 10.3788/AOS201434.1015001 |