基于双目立体视觉的地面军用机器人障碍物检测
2022-12-19李郁峰韩肖清韩慧妍
李郁峰,韩肖清,李 琴,魏 斌,韩慧妍
(1. 太原理工大学 电气与动力工程学院,山西 太原 030024;2. 中北大学 军民融合协同创新研究院,山西 太原 030051;3. 北方自动控制技术研究所 军贸工程部,山西 太原 030006;4. 中北大学 大数据学院,山西 太原 030051)
0 引 言
障碍物检测技术是地面军用机器人应用的关键技术之一,可分为基于非视觉类传感器和基于视觉类传感器的障碍物检测技术[1]. 基于视觉传感器的非结构道路环境下的障碍物检测主要从障碍物图像的颜色信息、边缘信息、光流变化以及立体视觉四个方向进行研究[2]. 颜色信息检测方法对颜色差异较小的障碍物很难进行区分[3];边缘信息检测方法提取的结果不仅仅包含障碍物信息,还包含地面的干扰信息[4];光流变化检测方法要求被观测物必须是运动的,且其检测距离很近[5];双目立体视觉障碍物检测[6]系统根据三维空间中同一物体在左右相机上的成像视差快速获取该物体的三维信息,从而实现对障碍物的检测.
基于双目立体视觉的障碍物检测方法对于光照、天气等比较敏感,其难点体现在障碍物检测过程中双目图像匹配算法的实现,以及在不同光照情况下匹配算法的鲁棒性和实时性等方面[7-8]. 针对局部的立体匹配算法[9]在弱纹理、视差不连续区域匹配效果差,以及对光照、噪声等外界环境比较敏感的问题,本文对局部的立体匹配算法进行了改进,利用了对光照灰度不敏感的区域的代价函数快速算法,计算量小,匹配速度快,同时,在立体匹配获得视差图的基础上对实际障碍物场景进行了三维重建,并获得了障碍物的空间位置信息,具有一定的鲁棒性和实时性.
1 双目立体视觉摄像机的标定
1.1 单目摄像机的标定
实验采用改进的张正友摄像机标定算法[10],制作的平面棋盘格模板为10×10的黑白棋盘,每方格的边长为20 mm,以日光灯为光源,在两摄像机前方放置标定棋盘格的标靶. 旋转模板使得任意两幅图像所在的光轴都不会处于平行状态,同时保证摄像机外参数中的旋转矩阵为正交单位矩阵[11]. 每转动一次模板,双目摄像机同时拍摄标靶. 标定实验中为了减小标定误差,采用Matlab摄像机标定工具箱,从不同角度拍摄了12幅标定标靶的图像对进行标定. 图1 为左摄像机所采集的棋盘标靶图像.
图1 左摄像机采集的标靶图像Fig.1 Target image of the left camera
指定左上、左下、右上、右下四个点作为每幅图像角点提取的范围,如图2 所示.
图2 角点的提取范围
由四个点的坐标值求得图像的主点(u0,v0),根据图像中每个方格的边长为20 mm来提取每幅图像的角点,如图3 所示.按照输入图像的像素将每幅图像进行排列,将第一个被检测出的角点设定为右手世界坐标系的原点,标靶棋盘格平面即为世界坐标系的XwYw平面,Z轴垂直于标靶并指向摄像机. 根据标靶棋盘方格的尺寸,可以计算出每个角点的世界坐标值[12].
图3 提取的标靶上的角点
根据提取的所有角点之间的位置关系,采用改进的张正友标定算法对摄像机内参数进行标定[13]. 经过多次迭代,便可得到单目摄像机的内参数. 角点检测误差如图4 所示,每幅图像角点的提取结果由不同深度的颜色表示,由图4 可以看出角点提取的误差都小于0.5像素. 左右摄像机均按上述方法标定出内参数,结果如表1 所示.
图4 角点提取的误差分析Fig.4 Error analysis of corner extraction
表1 标定出的左、右摄像机的内参数Tab.1 Calibrated internal parameters of left and right cameras
由表1 可以看出:当分辨率为640×480,像素尺寸为7.5 μm×7.5 μm时,在左摄像机中,flx=492.832 59×7.5 μm=3.696 24 mm,fly=492.998 73×7.5 μm=3.697 49 mm;在右摄像机中,frx=492.613 57×7.5 μm=3.694 60 mm,fry=492.687 52×7.5 μm=3.695 16 mm.与实际焦距(f=3.8 mm)的差满足条件. 左右摄像机主点坐标与摄像机拍摄图像的中心(320,240)相差不大. 因此,标定结果的误差较小,满足系统要求.
1.2 双目摄像机的标定
根据单目摄像机的标定内参结果,通过双目摄像机标定获得其相对位置的外参. 左、右摄像机的旋转矩阵和平移向量分别为Rl,Tl和Rr,Tr,三维场景中任意一点P对应的世界坐标为(Xw,Yw,Zw),P点在左、右摄像机坐标系下的坐标分别为(Xl,Yl,Zl)和(Xr,Yr,Zr),由摄像机坐标系和世界坐标系之间的关系可得
(1)
式中:R,T分别为右摄像机相对于左摄像机的旋转矩阵和平移矩阵. 根据单目摄像机标定的内参结果,通过计算即可得到双目相机之间的相对位置关系,从而完成了双目立体视觉系统的标定. 利用Matlab工具箱,加载左右相机的标定结果,以左像机坐标系为世界坐标系,计算得到双目立体视觉系统的外部参数,即左、右像机的相对位置关系.
由双目摄像机标定的结果可知,旋转矩阵R近似为单位矩阵,不存在旋转;平移矩阵向量T沿Y轴、Z轴的平移基本为0,只存在沿X轴方向的移动(基线长度). 左右摄像机的平移距离为119.933 67 mm,而且与基线设定值120 mm非常接近,此标定结果可以接受. 双目立体视觉标定结果如图5 所示,可以看出标定结果误差较小,因此,两摄像机轴线基本是向前平行的.
图5 双目摄像机坐标系中的靶标位置Fig.5 Target position in binocular camera coordinate
2 基于区域的局部立体匹配
基于区域的立体匹配示意图如图6 所示,在第j条扫描线上,左图像对中的某一特征点pl(i,j),需在右图像对中寻找对应的特征点pr.
图6 基于区域的立体匹配Fig.6 Stereo matching based on region
搜索窗口W为面积s=(2k+1)×(2l+1)的矩形,窗口中心位于图6 左图中的特征点pl(i,j)处.左、右图像对中特征点(i,j)处的灰度值分别为Il(i,j)和Ir(i,j),视差用d表示.引入视差范围约束,只需在视差范围(-d,+d)内搜索即可.采用零均值归一化互相关(ZNCC)作为特征点pl(i,j)和pr的邻域像素相似性测度函数[14],相似性测度函数为
(2)
地面军用机器人在未知环境感知中,图像受噪声干扰比较严重,为了有效抑制这些噪声干扰和提高可靠性,往往取足够大的匹配窗口. 但是,匹配窗口过大就会因为视差图过度平滑而导致无法分辨障碍物与背景;同时,匹配窗口过大也会导致计算量过大. 本文采用盒滤波加速方法[15]来消除计算量随匹配窗口增大而增加的问题,该方法是一种递归的二维均值滤波快速计算算法,能够有效抑制重复计算. 经过盒滤波加速后,可以降低匹配算法的计算复杂度,大大缩短计算时间,提高计算效率.
为了验证本文基于双目立体视觉的障碍物检测算法的有效性,在光照环境中采用双目摄像机拍摄同一个时刻不同视角的两幅实验室障碍物场景图像(如图7 所示),对场景中的障碍物进行了检测.
图7 实际拍摄的障碍物场景Fig.7 Actual shot obstacle scene
对图7 场景进行立体匹配得到视差图,如图8 所示. 匹配模板窗口W=15×15,视差d与两个摄像机基线的长度有关,通过实验获得视差d为10像素,相关阈值τ=0.9.
由图8 可以看出,应用本文立体匹配算法,在光照的情况下可以获得障碍物及场景满意的视差图,也可以满足实时性要求,对于光照畸变有较好的鲁棒性,其运行时间如表2 所示.
表2 匹配算法的运算时间Tab.2 Consuming time of matching algorithms ms
图8 匹配结果视差图Fig.8 Disparity map of matching results
3 障碍物三维信息恢复
获得点三维坐标是三维重建最基本的前提. 两摄像机投影矩阵分别为Ml和Mr,且两摄像机的内部参数一致,场景中任意空间点P(X,Y,Z,1)在两摄像机Cl、Cr的图像平面上的投影点分别为Pl(ul,vl)和Pr(ur,vr),则依据成像平面坐标系与摄像机世界坐标系之间的转换对应关系可得
(3)
(4)
(5)
由式(4)和(5)联立求解,可得空间点P的世界坐标.对于空间某一点,只要其中三个方程便可求解出该点的世界坐标(X,Y,Z).在实际障碍物检测过程中,会引入噪声,因此,采用最小二乘法求出点的世界坐标值. 将式(4)和式(5)写为如下形式
Aq=B,
(6)
其中,
则Aq=B的最小二乘法为
q=(ATA)-1ATB.
(7)
由式(7)可知,由两摄像机的投影矩阵和空间点的像素坐标,就可以确定该点的实际空间坐标值. 若空间某点在左摄像机坐标系下的坐标为(xl,yl,zl),则在右摄像机坐标系下的坐标为(xl-b,yl,zl),根据成像的比例关系可以得到式(8).设(ul,vl)和(ur,vr)为该点在左右摄像机中对应的图像点像素坐标,那么对应点所在的纵坐标相同,即vl=vr,而横坐标之间有差距.
(8)
由式(8)可得
(9)
式中:ul-ur为视差值;b为两摄像机基线的距离;fx和fy分别为摄像机在u轴和v轴上的有效焦距;(u0,v0)为摄像机的主点.由式(9)可知,只要获得空间某点对应的左右摄像机图像的坐标值,就可以求出该点在摄像机坐标系下的三维坐标值.
在获得的障碍物及场景的立体匹配视差图的基础上,利用式(9)便可以求出场景在世界坐标系下的三维点云数据,对场景中的障碍物进行检测,获得的点云数据及重建效果如图9 所示. 由此可知,针对机器人周围三维场景及障碍物分布图,利用本文三维重建方法可以在标定摄像机参数并完成立体匹配的基础上顺利检测出未知环境中的障碍物,该方法检测效果良好,总运行时间为226 ms,满足系统的要求.
图9 障碍物检测效果Fig.9 Effect of obstacles detection
为了验证障碍物检测的精度,以右边障碍物为目标进行实验. 实验测量范围为1 000 mm~4 000 mm,每隔300 mm采集1组图像对,共采集10组图像对,将这些图像对作为采样点,并取其平均值作为实际测量距离,然后求得实际误差和相对误差,具体检测结果如表3 所示. 由表中数据可知,改进算法的平均相对误差为2.34%,该误差满足系统精度要求.
表3 障碍物检测结果Tab.3 Obstacle detection results
4 结 论
本文应用改进的张氏标定算法对地面军用机器人双目立体视觉系统进行了标定,标定结果误差小于0.5像素,满足系统要求. 采用改进的区域局部立体匹配算法进行了双目立体视觉系统光照场景下的立体匹配实验,获得了障碍物及场景立体匹配的视差图,运行时间为226 ms,满足系统实时性要求,对于光照畸变有较好的鲁棒性. 最后根据双目摄像机标定获得的内外参数,在立体匹配获得视差图的基础上,对障碍物场景进行了三维重建,并获得了障碍物空间位置信息,检测误差为2.34%. 这些结果表明本文方法的检测精度和运行时间满足系统的要求,可用于该地面军用机器人的路径规划及避障控制.