APP下载

基于目标识别与避障的煤矿救援机器人自主行走

2022-03-17固,朱

南京理工大学学报 2022年1期
关键词:标定障碍物摄像机

巩 固,朱 华

(1.江苏师范大学 计算机科学与技术学院,江苏 徐州 221116;2.中国矿业大学 机电工程学院,江苏 徐州 221116)

煤矿救援机器人属于特种机器人,工作在煤矿井下恶劣环境中,在煤矿发生矿难时为防止二次矿难发生造成救援人员伤亡,第一时刻代替救援人员进行井下搜索与救援任务,给地面救援指挥人员提供矿难井下环境信息,为进一步确定救援人员下井实施人工救援提供决策支持[1,2]。机器人在井下行走时,视觉传感器将获取的环境视频图像信息传送给机器人视觉系统,机器人通过视觉系统处理视频图像信息,识别与检测周围环境并分辨障碍物,同时辅助其它传感器实现避障[3,4]。

煤矿救援机器人在灾后进行井下工作,时效和实用性强。因没有大量煤矿井下的数据集,目前流行的基于神经网络的深度学习,需要大量的训练集和高性能的图形处理器(Graphics processing unit,GPU)[5,6]。GPU用电量比较大,而煤矿救援机器人的机体防爆要求至少需要达到国安IIB级,煤矿救援机器人下位机的机体小,里面含电池、电路板和大量线路等,机体是密封防爆防水的[3,4],无法安装大量的GPU,煤矿救援机器人的工作环境导致无法采用神经网络算法。机器人是实时运动的,成熟且适合运动视频目标识别的算法是光流场算法,所以煤矿救援机器人目标识别主要采用成熟的梯度光流场算法[4,5]。

1 梯度光流场算法

基于图像灰度梯度方法实现运动分析是目前应用于光流计算的常用方法,如Horn-Schunck算法、Lucas-Kanade算法和Nagel算法等,它采用视频运动图像前后灰度保持不变作为前提条件,导出光流约束条件[7,8]。光流计算的假设条件是视频中光流的运动是微小的[9]。

假设视觉系统采集的视频含有一个时间上连续的图像I(x,y,t),I(x,y,t)表示时刻t图像的像素点(x,y)的灰度值。d表示微分运算,在t+dt时刻,像素点(x,y)运动到新的像素位置(x+dx,y+dy),此时新的像素点灰度值表达式为I(x+dx,y+dy,t+dt),需要将动态图像采用泰勒序列表示为关于位置和时间的函数[9,10]

I(x+dx,y+dy,t+dt)=I(x,y,t)+Ixdx+Iydy+

Itdt+O(∂2)

(1)

式中:Ix、Iy和It分别表示I的偏导数,即Ix=∂I/∂x、Iy=∂I/∂y和It=∂I/∂t,它们分别代表图像像素点(x,y)的灰度随着x、y、t的变化率。可以推导得到实际计算方法

I(x+dx,y+dy,t+dt)≈I(x,y,t)+Ixdx+Iydy+Itdt

(2)

在计算过程中,假设图像像素点(x,y)的直接邻域在时间间隔dt内被移动了某个微小距离d(x,y),则有I(x+dx,y+dy,t+dt)的计算

I(x+dx,y+dy,t+dt)=I(x,y,t)

(3)

如果dx、dy和dt是非常小的值,则式(2)、(3)中的高阶项可以忽略不计,因此可推导出

-It=Ix(dx/dt)+Iy(dy/dt)

(4)

对于光流法,主要计算目标是式(4),设u和v分别表示图像像素点(x,y)沿着x和y方向移动的速度,则有

c=(dx/dt,dy/dt)=(u,v)

(5)

式中:u和v的表达式分别是u=dx/dt和v=dy/dt。光流运动速度可以估计为

-It=Ixu+Iyv=grad(I)×c

(6)

式中:grad(I)表示的是二维图像梯度。在时刻t和时刻t+dt,视频图像相同位置上的灰度微分It是视频图像空间灰度微分与其对应位置相对于机器人视觉的速度的乘积。式中主要给出了图像最强梯度方向上的分量,没有很好地计算,下面引入平滑约束条件E2(x,y),获取简化平方误差数值最小化

(7)

式中:λ是拉格朗日系数,对式(7)进行简化求解微分方程

(8)

(9)

式中:P、D计算公式如下

(10)

由式(3)和(4)结合探讨,可以推导出

(11)

上述表达式就是光流基本方程,它的向量表达式为

▽I·U+It=0

(12)

式(12)也称为光流约束方程,其中▽I=[Ix,Iy]表示图像像素点(x,y)的灰度梯度,U=[u,v]T表示光流。光流的确定是基于Gauss-Seidel的迭代方法,基于动态图像的光流算法伪代码流程见表1。

表1 基于动态图像光流视频运算的算法流程

算法流程先设置好固定迭代次数k,并且对输入视频的图像进行计算,然后进行条件判断决定是否终止迭代计算。

2 视觉系统标定

机器人采用双目视觉系统,先分别求得左右两个摄像机的内外参数和畸变系数,然后通过标定获得双目摄像机之间的相对位置[11,12],接着分别对左右摄像机进行标定,摄像机标定后,最后实现机器人的立体视觉系统标定[13]。双目立体视觉系统的模型示意图如图1所示,图中f是CCD摄像机的焦距,b是两摄像机的中心距离。

图1 双目立体视觉系统模型

由图1可知,双目视觉系统的光轴会聚模型采用3D坐标计算,左摄像机根据参照物图像,获得左摄像机投影矩阵M关系式(13)和展开式(14)

(13)

(14)

双目立体视觉系统求解[XwYwZw]T采用式(15)进行计算,在实际应用中,由于数据总是有噪声的,可以用最小二乘法求出[XwYwZw]T。将图1进一步细化为图2。

图2 双目系统结构模型

(15)

图2中,两个摄像机的光轴与基线形成的夹角是a1和a2,基线是左右两台摄像机物镜光学中心的连线B,左右两台摄像机的焦点是f1和f2。三角形ΔO1O2P′中有

x=cot(w1+a1)×z

(16)

B=cot(w1+a1)×z+cot(w2+a2)×z

(17)

三角形△O1PP′中有

(18)

最终可以推导出

(19)

式中:有

(20)

(21)

完成上述工作之后,需要做好摄像机的标定样本和确定好摄像机的标定工作。在标定工作中,标定精度的精确度直接影响着机器人视觉系统的精度。完成摄像机标定工作后,机器人才可以识别环境,将识别环境信息反馈给机械设备,系统结合其他传感器信息控制机器人实现自主行走[11,14]。

标定样本主要采用的是8×10长方块的棋盘标准规格黑白图案,内部角点有63个,棋盘格子大小固定,大小均为35 mm×35 mm。一般棋盘格数采用的是8×8。棋盘格数量越多,标定精度越高,因此标定工作量也会变大。

摄像机标定的参数主要有摄像机内部参数焦距f、主点c、畸变参数k、像素误差i_er、摄像机外部参数平移向量T、旋转矢量RV、像素误差o_er和旋转矩阵R等,左右摄像机分别采用下标l和r区分,如对左摄像机的左焦距用fl表示。有:fl=[flx,fly],cl=[ul0,vl0],kl=[kl1,kl2,kl3,kl4],i_erl=[i_erlx,i_erly],Tl=[Tlx,Tly,Tlz],RVl=[RVlx,RVly,RVlz],o_erl=[o_erlx,o_erly],旋转矩阵Rl为

(22)

需要分别对左右摄像机进行标定,在左右摄像机已标定好的基础上实现立体视觉系统标定,最后检测标定误差。表2和表3分别是左摄像机的标定过程与结果。

表2 左摄像机标定过程

表3 左摄像机标定结果

右摄像机的标定过程和左摄像机标定过程是相似的,得到的标定结果见表4。

表4 右摄像机标定结果

获得左右摄像机的畸变参数后,可以对原始标定图像进行矫正,矫正过程是左右摄像机分别对同一幅标定图像进行畸变矫正。在矫正之后,实现左右摄像机的立体视觉标定,文中采用先对左右两个摄像机单独进行标定,再进行两台摄像机相对位置标定的方式,需要对外部参数平移向量T、旋转矢量RV等进行标定。标定效果如图3所示,立体视觉标定后的效果见图4。

图3 摄像机镜头畸变矫正

图4 立体视觉矫正后图像

由于摄像机的安装、摄像机本身等其他不可抗拒因素,摄像机在标定过程中存在一些畸变。虽然摄像机经过了畸变矫正,但仍然可能存在一定的误差。标定棋盘的角点检测因为棋盘边界的毛刺、线的不平行等其检测效果也会存在一定的误差。图5是本文标定后的左右摄像机所有角点反映到图像空间中的图像坐标误差。

图5 摄像机标定后角点图像坐标误差

由图5可知,标定后的摄像机采集的图像坐标误差分布在±2个像素点,满足机器人视觉系统的标定要求,因标定棋盘角点时棋盘的边界毛刺、线的不平行等导致检测效果存在误差,在标定后的摄像机采集的图像坐标中,误差均分布在±6个像素点内,同样达到摄像机标定要求,误差在可控范围内,因误差造成检测的伪角点可以忽略不计。

3 试验

试验场地在中国矿业大学文昌校区煤矿瓦斯实验基地。试验井巷中,在煤矿救援机器人自主行走的过程中,机器人上位机实时识别周围环境,特别是自身前进的环境,然后反馈给下位机。下位机根据识别的环境,规划自身的行走路径。煤矿救援机器人起始速度是0.1 m/s,然后逐步达到正常行驶速度0.3 m/s。

巷道试验中,人为地设置一个立体不规则障碍物,障碍物放置在机器人前进路线的偏前方,图6所示为障碍物位置。试验中,煤矿井巷中的光照度值是6.75 lx,机器人分别在距离障碍物3 m、6 m和9 m处采集视觉感知距离,将机器人目标识别算法获取的障碍物数据和人工测量数据进行比较,比较结果见表5。表5中“实测”项是人工测定结果,“测量”项是机器人测定结果。

图6 井巷试验环境

从表5和图7机器人行走中识别障碍物并且避开障碍物结果可以得出,在煤矿井下环境中,光照度很低的情况下,机器人在距障碍物不同长度距离时获得的障碍物信息有误差,并且随着距离的大小变化而变化,距离越远,障碍物识别的误差就越大,说明光照度对机器人视觉识别影响是较大的。

表5 低光照下井巷中障碍物信息

图7 井巷中机器人避障

光照度很低的情况,机器人经过视觉系统采集的视频传到上位机,上位机经过增强处理,利用视觉识别算法获取周围环境和前方障碍物,然后传给下位机。障碍物识别结果见图8,图中左边(a)和(c)是机器人行走中的视觉系统的视频原图,右边(b)和(d)是对应的识别障碍物结果图。

图8 井巷中障碍物识别结果

机器人自主行走中,刚开始出现偏离中心线比较快,并且偏差值逐渐增大的现象。图9是每隔10 s记录一次机器人基于视觉识别障碍物自主行走偏离中心线的距离,总共记录300 s,距离单位为cm,中心线左边的距离记录为正值,则偏中心线右边记录为负值,同室内试验要求相同,偏离中心线距离绝对值大于50 cm时需要进行人工干预。在机器人自主行走过程中,需要进行适当的人工干预。

图9 自主行走试验记录结果

最后在山东新泰煤矿井下环境中实现煤矿救援机器人行走中视觉识别自身环境试验,建立环境信息。试验结果如图10所示,图中左边(a)和(c)是机器人行走中的视觉系统的视频原图,右边(b)和(d)是机器人视觉识别环境信息结果。

图10 煤矿井下环境识别

煤矿井下的试验在实时性方面取得了良好的效果,算法具有较好的稳定性,但是光照度和煤矿井巷对无线电波的吸收是影响机器人目标识别准确率的最大因素,在一定条件下需要人工适当干预。

4 结束语

煤矿井下属于非结构化的特殊环境,实现煤矿救援机器人实时识别目标是决定煤矿救援机器人避障自主行走的前提,本文提出并研究了光流场算法,实现了煤矿救援机器人的双目标定工作,采用光流场算法解决煤矿救援机器人在煤矿井下自主行走中的目标识别和避障问题,提出的方法在试验过程中实现了煤矿救援机器人识别环境和避障自主行走。基于视觉目标识别与避障实现煤矿救援机器人在煤矿井下人为控制不到的地方完全自主行走一直是难度非常大的研究内容,下一步工作方向是研究在煤矿井下人为控制不到的地方实现全自主行走的煤矿救援机器人。

猜你喜欢

标定障碍物摄像机
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
一种全景泊车控制器标定系统的设计研究
高低翻越
赶飞机
CT系统参数标定及成像—2
CT系统参数标定及成像—2
月亮为什么会有圆缺
用迷你摄像机代替眼球
高清新阵营