基于
非线性
最小二乘法
二维码
视觉
定位
算法
研究
伏子帅
收稿日期:2022-09-05作者简介:伏子帅(1998-),男,江苏宿迁人,硕士研究生,研究方向为视觉定位、机器人规划及移动机器人导航。基于非线性最小二乘法的二维码视觉定位算法研究伏子帅,钱东海,孙嘉俊,李 浩(上海大学机电工程与自动化学院,上海 200444)摘 要:针对 AGV 视觉定位算法中存在附加约束的问题,将附加约束的相机坐标系相对于全局坐标系位姿求解问题归纳为非线性最小二乘问题,并采用高斯-牛顿法进行求解。论文所研究的 AGV 定位算法采用二维码作为路标进行视觉定位,算法首先通过识别经过图像预处理后的二维码,得到该二维码所包含的相对于全局坐标系中的位姿信息;其次建立包含附加约束条件的非线性最优化问题模型,接着通过高斯-牛顿法求出满足包括附加约束条件在内的约束优化问题最优解;最后通过实验验证算法能够解决存在附加约束条件的视觉定位问题,验证了算法的可行性。关键词:二维码;视觉定位;附加约束;非线性最小二乘优化;高斯-牛顿法 中图分类号:TP242.6+2 文献标识码:A DOI 编码:10.14016/ki.1001-9227.2023.01.001Research on QR code visual positioning algorithm based on nonlinear least squares methodFU Zishuai,QIAN Donghai,SUN Jiajun,LI Hao(School of Mechanical and Electrical Engineering and Automation,Shanghai University,Shanghai 200444,China)Abstract:To address the problem of additional constraints in the AGV visual positioning algorithm,the problem of sol-ving the camera coordinate system with additional constraints relative to the global coordinate system positional solution is re-duced to a nonline-ar least squares problem and solved using the Gauss-Newton method.In this paper,the AGV positioning algorithm uses QR codes as a road sign for visual positioning.Firstly,the algorithm identifies the QR code after image prepro-cessing and obtains the positional information contained in the QR code relative to the global coordinate system.Secondly,it establishes a nonlinear optimization problem model including additional constraints and then solves this problem with addition-al constraints by the Gauss-Newton method.Finally,it is verified by experiments that the algorithm in this paper can solve the problems with addi-tional constraints and the feasibility of the algorithm is verified.Key words:QR code;visual positioning;additional constraints;nonlinear least squares optimization;Gauss-Newton method0 引言视觉定位算法是根据已知 n 个在世界坐标系下的特征点及其在像素坐标系中对应的二维投影,构建出3D-2D 相对位姿关系,在相机内参已知的前提下,求解三维世界坐标点与二维像素点的相对位姿关系被称为 n点透视问题1,即 PnP 问题(Perspective-n-Point)。PnP问题是视觉定位领域的经典问题,Fishler 和 Bolles 在1981 年首次提出2,类似的问题可以追溯到 1841 年摄影测量领域,在世界上引起广泛研究。PnP 问题最常见的求解算法分为线性求解和非线性迭代优化两种。根据特征点的数目 n 的大小,PnP 问题大致可以分为两类:一类是 3n5,另一类是 n63。当 3n5 时,PnP 问题又可以具体划分为 P3P、P4P、P5P 问题。对于 P3P 问题来说,最多有 4 组解4。对于 P4P 问题来说,Fishler 和 Bolles 指出当 4 个特征点共面时解是唯一的;而当特征点不共面时,则可能出现多个解。由于共面四点制作简单、特征点坐标易确定的优点,P4P 常用于定位。Quan 和 Lan5在 1998 年针对P4P、P5P 问题,提出了 n4 的求解算法,算法的计算复杂度为 O(n5);在此基础上,Moreno 和 Lepetit6提出一种高效、高精度的 EPnP 算法,该算法的计算复杂度为 O(n)。当 n6 时,PnP 问题可以被看作是一个直接线性变换问题(DLT),DLT 算法不考虑矩阵的正交性,将变换矩阵的 12 个变量当成独立变量,得到 12 个线性约束方程,可通过 SVD 分解方法求出它的线性最小二乘解7。针对将重投影像素误差代价函数建模为位姿参数非线性函数时,可通过非线性优化求解求得代价函数最小的位姿参数。常用的非线性优化算法有梯度下降法、牛顿法、高斯-牛顿法和列文伯格-马夸尔特法等。二维码具有信息储存量大、成本低、易于制作等优点8,被广泛应用于视觉定位领域。基于二维码进行视觉定位算法研究,二维码信息中包含了该二维码所在世1自动化与仪器仪表2023 年第 1 期(总第 279 期)界坐标系中的位姿信息。沿着 AGV 移动路径每隔一段距离铺设二维码,在 AGV 移动过程中,通过车载相机识别二维码,读出该二维码的全局位姿信息,并基于图像中 4 个特征点像素坐标值求解出 AGV 相对于该二维码的位姿,从而求解出 AGV 在全局坐标系下的位姿。基于视觉定位算法构造 AGV 相机坐标系相对于全局坐标系的坐标变换矩阵时,采用最少的设计变量,即 3个欧拉角和 3 个平移坐标变量,构建非线性的像素误差代价函数,利用非线性最小二乘法求解该非线性优化问题。区别于其它常用的算法,本算法可以方便地将附加的一些约束条件加入到本非线性优化问题中,如 AGV小车架设的相机系统中相机距离地面的高度是确定的,以及相机光轴与地面的夹角成固定的角度,提出的算法可以很好地解决上述约束条件。1 二维码校正与识别近些年来,二维码因其具有信息量大、便捷、可靠性高等优点被广泛应用于视觉定位领域,工业中常常使用二维码来辅助识别产品或者确定位姿9。在基于二维码的视觉定位算法中一般选择在二维码四周顶点或位置探测图形的中心点作为算法的特征点。二维码是二维平面,四个顶点满足共面的约束条件,因此,将使用 4个共面顶点的世界坐标及对应像素坐标来计算相机位姿。其中,世界坐标可以作为已知信息存储在二维码中。相机采集到的图像通常不易识别,因此,需要在识别二维码前对采集到的图像进行处理,使其变成易于识别的状态。将采用 OpenCV+Zbar 来完成对二维码图像的校正及识别。图像预处理是二维码校正识别的第一步,这将直接关系到识别的准确性,采用图像预处理能够很大程度上改善图像歪斜、光照不均等情况10。图 1 二维码图像预处理流程图如图 1 所示,二维码图像预处理流程包括:首先对相机采集到的彩色图像转换成灰度图,接着可以采用中值滤波等方法对灰度图进行平滑处理,目的是使得灰度图直方图均衡化,也在一定程度上减少了噪声;然后使用恰当的阈值对灰度图进行二值化得到二值化图像,接着使用 OpenCV 里 findContours 函数在二值化图像中寻找轮廓,筛选轮廓中有两个子轮廓的特征,在筛选后的轮廓中以 3 个轮廓面积最接近为条件选出二维码的位置探测图形,也是二维码的定位角点;最后通过判断定位角点的位置对图像进行透视校正得到校正好的二维码图像。对图像预处理后的二维码用 Zbar 工具进行识别,可以得到二维码储存的信息为其四个顶点的世界坐标,即:Pw=018018000018018000001111 (1)2 基于二维码的视觉定位算法在二维码视觉定位算法中,二维码的 4 个共面顶点在世界坐标系下的坐标值可由校正与识别后的二维码中所包含的信息得到,将 4 个顶点的坐标值和对应像素值代入视觉定位算法中就可以求得相机位姿。相机位姿可以通过一个三维正交旋转矩阵 R 和一个平移向量 t来表示11。图 2 为视觉定位算法包含的坐标系,有世界坐标系 Ow-XwYwZw、相机坐标系 Oc-XcYcZc、图像坐标系O-xy 和像素坐标系 uv。图 2 视觉定位算法中的坐标系2.1 目标函数的建立最小二乘问题可以表示为:minxRnf(x)=12r(x)2=12r(x)Tr(x)(2)其中,r(x)=(r1(x),r2(x),rm(x)T,mn 且 r(x)是关于 x 的函数。当 r(x)是关于变量 x 的非线性函数时,问题就变为非线性最小二乘问题。f(x)被称为目标函数,在求解非线性最小二乘问题时,首先要建立目标函数。建立的目标函数 f(x)是关于 x 的非线性函数 r(x)。假设特征点在像素坐标系下坐标为 pi=(u,v)T,i=14;在相机坐标系下坐标为,pci=(xc yc zc)T,i=14;在世界坐标系下坐标为,pwi=(xw yw zw)T,i=14。根据根据针孔模型,建立像素坐标系与世界坐标系之间转换关系11:suv1=KR|txwywzw1(3)其中,K 为相机内参,可以通过棋盘格在 OpenCV 或MATLAB 里标定;R|t为相机外参,可以通过视觉定位2基于非线性最小二乘法的二维码视觉定位算法研究 伏子帅,等算法计算得到;s 为尺度因子,在计算中一般采用相机坐标系下 zc的值。那么可以表示为特征点像素坐标 pi与通过式(3)计算出的像素坐标 pi的像素误差向量的集合,误差向量为ui-ui,vi-viT,令,ri(x)=ui-ui,r2i(x)=vi-vi,那么目标函数就可以建立为:minf(x)=4i=112(pi-pi)2=4i=112 pi-1zcKR|tpwi()2(4)2.2 非线性算法原理由式(4)可知 r(x)与相机的内外参数都有关,这包括相机的焦距、畸变系数、旋转矩阵和平移向量等参数。本文视觉定位算法在进行非线性最小二乘优化之前,事先把相机的内参 K 标定好,使得的 r(x)仅是旋转矩阵cwR和平移向量cwt 的函数。旋转矩阵cwR 是关于横滚角 x、俯仰角 y和方位角 z的 33 矩阵,共有 9 个元素,其中只有 3 个是独立的,为选取最少设计变量,可以采用欧拉角 x、y、z来构造旋转矩阵cwR。因此,将以 x、y、z和平移向量 t 作为需要优化迭代的参数,可以表示为 x=(x,y,z,tx,ty,tz)T,且 r(x)是关于 x 的非线性函数。根据欧拉角的表达式,旋转矩阵cwR=R(x,x)R(y,y)R(z,z),那么 R 的表达式为:cwR=cycz-cyszsysxsycz+cxsz-sxsycz+cxsz-sxcyc-cxsycz+sxszcxsysz+sxczcxcy(5)其中,sinx用表示