原培新, 蔡 炟, 曹文伟, 陈 超
(东北大学 机械工程与自动化学院, 辽宁 沈阳 110819)
随着世界流通领域的高速发展,以及铁路运输的业务量大幅度增长,诸多因素对我国铁路货物运输提出了严峻考验.由于铁路货运到达的目的地不同,列车的编组解体作业成为不可缺少的环节,编组站便成为重要的枢纽.编组站的主要任务是货物列车的解体与编组作业,驼峰是编组站的主要特征.驼峰的形状和骆驼背类似,因此而得名.在驼峰上铺设铁轨,当列车经过驼峰时,利用列车自身的重力和驼峰坡度产生的势能使两个车钩的拉力为零,工作人员提起连接车钩的把手,将车钩分解.此时分解后的列车顺坡自动溜放到编组场的预定线路上,根据要求进行最后的编组.现今,列车在编组站上的溜车调度、信息接收等操作均已实现自动化,但是人工操作仍然是驼峰处列车摘钩的唯一方式,这不仅增加工作人员的劳动强度,也威胁其人身安全.
早在20世纪70年代,德国的KB公司就开始进行铁路运输自动摘钩相关技术的研究.该公司研发了摘钩机械手,并在列车旁铺设轨道,机械手在轨道上根据自动化综合系统对目标车厢进行追踪,利用雷达测出列车此时的运行速度并传输给机械臂,机械臂根据之前得到的位置信息感知车钩目标的距离,对车钩手柄进行抓取,完成摘钩作业.但是,由于当时的实验环境困难和技术落后等因素,造成对目标的识别和测距结果偏差严重,无法抓取,最后放弃了这项研究.
沈阳市裕国站实验基地设计了一种代替工作人员进行摘钩作业的机器人:在货车驼峰线旁铺设一条轨道,工作人员在后台通过机器人上的摄像头观测现场,找到适当位置时,控制机械手的进给量进行车钩抓取,从而实现车厢分解.虽然此方法可以保障工作人员的人身安全,但依旧存在不足:1)没有实现节约人力物力,由于需要人工观测和控制机械臂,从某种程度来说此方法使摘钩作业变得更加复杂;2)人工观测存在一系列不稳定因素,如注意力不集中、光线强烈无法准确识别等原因,会造成抓取失败或抓取错误等,影响工作效率.
为实现完全的摘钩自动化,解放人力,提高摘钩工作效率,本次研究以与裕国站共同合作的项目为支撑,在自动摘钩机器人的基础上,为其植入“眼睛和大脑”,使用双目立体视觉技术进行目标识别和测距,为机器人摘钩提供数据基础.通过实际现场考察和实验研究,本课题的难点如下:
1) 摘钩作业时间短,需要在机器人和车厢同步时准确识别目标把手和测量距离;
2) 和单目视觉技术相比,双目立体视觉一直都是研究的难点.由于左右相机存在光照不均匀或者遮挡现象,会给立体匹配算法的应用带来困难.
针对实际工程背景和研究的难点,本次研究首先通过模板匹配对摄像机拍摄双目图像中的车钩把手进行匹配与识别;其次,对摄像机进行标定获得系统成像模型参数,恢复双目相机间的位姿,即旋转矩阵R和平移向量T,从而实现立体校正;最后,通过立体匹配技术获得双目相机的视差d,利用三角测量恢复场景的深度Z,它可以控制机械手的进给量,从而进行准确的摘钩作业.此方法可代替人工后台观测,得到摘钩环境的三维信息,为机器人建立“大脑”,实现真正的自动摘钩.
虽然本文主要研究的是机器视觉部分,但为了便于分析,需要对机器人自动摘钩的过程进行介绍.在驼峰处进行摘钩时,并不是每一节车厢都要摘钩分解,因此在摘钩之前需要确定目标车厢.现今,编组站大部分装置已实现自动化,可利用计数传感器系统对车厢数量依次计数,当得到目标车厢的数字信息时,机器人底座开始在铺设好的轨道上运行.如图1所示,雷达测速传感器可以测量此时列车速度,反馈给机器人达到共速.当机器人和列车处于相对静止状态时,便可以通过双目摄像机采集车厢、手柄和车钩组成的实时双目图像,如图2所示,用视觉算法对目标把手进行识别和测距,此距离为目标点到视觉系统的物理距离(mm).最后将信息反馈给机器人的执行装置,进行自动抓取.
图1 自动摘钩过程示意图
图2 列车双目图像
在机器视觉中,相机成像会涉及以下4种坐标系:图像像素坐标系(uOpv)、图像物理坐标系(xOy)、摄像机坐标系(XcOcYcZc)、世界坐标系(XwOwYwZw).如图3所示,世界坐标系(XwOwYwZw)通过一系列矩阵变换得到图像像素坐标系(uOpv).
图3 摄像机成像模型
由此可得
(1)
式中:M为3×4的投影矩阵;fx,fy,u0,v0均与摄像机的内部结构有关,故M1为相机内参数矩阵,M2为相机外参数矩阵,由旋转矩阵R和平移向量T组成.下文的左、右单目摄像机标定其实就是对摄像机内、外参数求解的过程.
当机器人与列车在行进间共速时,为了测量目标把手的距离,需要对把手进行识别并确定该区域在整个图像的位置.本文使用图像预处理和模板匹配算法,首先通过图像算法增强图像质量,使图像细节丰富,纹理清晰.最后选择一个把手区域图像作为模板,根据模板与双目图像之间的相似度来确定目标把手在图像的位置并识别.通过图像预处理和模板匹配算法进行目标识别的步骤为:①图像边缘检测;②图像锐化;③模板匹配识别.
3.1.1 图像边缘检测
在图像处理技术中,图像的边缘是灰度变化明显的像素连接而成的集合,它是图像特征的基本体现,Sobel算子是常用的边缘检测算法.在数学中,函数的导数往往表征着函数的极值,而图像的边缘灰度相对于周围像素具有突变的性质,因此计算图像灰度值的导数可以有效地提取图像的边缘特征.二维梯度可近似图像的一阶导数,其表达式为
(2)
由向量分析可知,梯度向量是导数方向上的最大变化率.式(2)表示的梯度向量中,梯度幅值和方向如下:
(3)
Sobel算子不仅用到差分方法还将差分与局部相结合,当邻域像素与当前选定的像素距离越大时,其产生的影响越小,结果如图4所示.
图4 Laplacian边缘检测图像
3.1.2 图像锐化
模板匹配是利用模板图像和原始图像进行对比,根据相似度识别目标.因此,得到高质量、特征细节清晰的双目图像是模板匹配的重要前提.图像锐化突出图像的高频部分,使图像边缘清晰,特征明显.图像锐化将原图像与边缘图像进行权重融合,经对比,原始灰度图像和锐化结果如图5和图6所示.
图5 原始灰度图像
图6 图像锐化效果图
3.1.3 模板匹配识别
模板匹配就是利用已知模板对原始图像进行搜索找到对应区域的过程.为了保证匹配的精度,本文选用了基于图像灰度的模板匹配方法.该方法通过计算模板与原图像灰度值差的平方和S(x,y)来确定匹配程度,如式(4)所示:
(4)
式中:n是模板图像的像素个数;t(u,v)是模板像素灰度值;f(x+u,y+v)是原始图像与模板对应区域处的像素灰度值.
截取图像的目标把手作为模板,尺寸为64×355像素,对其进行灰度变换、图像边缘检测和图像锐化操作,结果如图7所示.
图7 模板图像预处理
利用模板图像与锐化后的双目图像进行模板匹配,结果如图8所示,红框标注的区域为目标把手.
图8 左、右图像目标把手识别
特征点体现图像的重要特征,它对图像的理解和分析有着很重要的作用.特征点在保留图像重要特征的同时可以有效地减少信息的数据量,提高了计算速度,为实时处理提供了可能.SIFT(scale-invariant feature transform)[1-2]特征检测是提取特征点的常用算法,它对旋转、尺度缩放、亮度变化保持鲁棒性,对视角的变化、仿射变换和噪声也保持一定程度的稳定性,并适用于在海量特征中进行快速、精准匹配.SIFT特征检测结果见图9.
图9 双目图像SIFT特征检测
特征匹配[3-5]是双目立体视觉技术中极为重要的一步,它解决了数据关联性问题,经过匹配,可知2幅图像特征点之间的关系,进一步得出相机之间的位姿关系.根据2幅图像的匹配特征点的描述进行排序,取最近距离的点对作为匹配点,SIFT匹配结果如图10所示.
图10 SIFT特征点匹配
3.3.1 单目摄像机标定
实验的标定板是8×11的黑白棋盘格,每个小正方形的边长为20 mm,如图11所示.
图11 棋盘格标定板
如图12所示,使用双目相机从不同距离和角度各拍摄16张标定板图像.Harris角点检测得到棋盘格标定板的角点坐标,通过平面单应性原理和张正友标定技术[6-7]进行单目摄像机标定,标定所得的单目摄像机的参数如表1和表2所示.
图12 左右摄像机拍摄的标定板图像
表1 左摄像机标定结果
表2 右摄像机标定结果
3.3.2 双目摄像机标定
(5)
令f=[F11F12F13F21F22F23F31F32F33]T,由式(5)得
[u1u2u1v2u1v1u1v1v2v1u2v21]f=0 .
(6)
当有n对匹配点时可得
(7)
由于未知向量f中有9个未知数,若要保证有唯一解至少需要8对匹配点.
求解本质矩阵E[10]:Ml和Mr分别为左、右相机的内参数矩阵,令三维点的世界坐标系与左相机坐标系重合,右相机相对于三维点的位姿就是两相机间的位姿,由本质矩阵E的奇异值分解得到双目相机的位姿信息R和T,E的奇异值分解为
E=UΣVT.
(8)
经计算,基础矩阵为
(9)
本质矩阵为
(10)
旋转矩阵为
(11)
平移向量为
T=[-66.1 1.29 -0.13]T.
(12)
立体校正[11-13]是根据标定后的左、右单目摄像机参数和双目相机的位姿关系(R,T)使左、右2幅图像平面原点坐标相同,左、右投影面共面和行对齐,如图13所示.
设定2幅图像的旋转矩阵R和平移向量T,为了使图像重投影畸变最小化,将右侧摄像机的图像平面旋转至左侧摄像机的旋转平面的旋转矩阵R在2台摄像机之间被分为两半,左右摄像机的合成旋转矩阵分别为r1和r2,r1和r2的关系为
(13)
图13 立体校正示意图
为了将左摄像机的极点变换到无穷远处并使极线水平对准矩阵Rrect,构造一个旋转矩阵.该旋转矩阵由极点e1方向开始,将主点(cx,cy) 作为左摄像机成像平面的原点,极点方向就是2台摄像机投影中心之间的平移矢量方向,
(14)
下一个矢量e2与e1正交,e2通过e1与主光线方向的叉乘来得到,并进行归一化:
(15)
第三个矢量e3通过e1与e2交叉相乘得到.故将左侧摄像机中极点转换到无穷远处的矩阵为Rl,综上所述,2台摄像机可以通过式(16)实现共面和行对齐,式(16)为
(16)
图14a和14b为立体校正前后双目图像,校正前的双目图像存在畸变且左右图像未实现行对齐,校正后的图像消除了镜头畸变,并实现了行对齐.图14c为特征匹配的点云,其中橙色线表示左
图14 立体校正
摄像机匹配点连接的折线,蓝色线表示右摄像机对应匹配点连接的折线.在图中取部分匹配点对标注其坐标,从中可以看出经过立体校正后的匹配点的纵坐标误差在1个像素之内.
在立体视觉中,立体匹配[14-16]一直是一个关键的问题,它是在立体校正的基础上计算视差d.根据计算像素区域的不同,立体匹配算法大致可分为:基于局部区域的立体匹配算法和全局立体匹配算法.根据实验现场的环境可知,所检测的手柄和车钩周围环境组成了一个纹理丰富的场景,故本文选择基于局部的立体匹配算法.
SAD(sum of absolute difference)[17]是一种基于局部区域的立体匹配算法,计算的是像素邻域内对应位置的像素灰度差的绝对值之和,其表达式为
Ir(u+i+d,v+j)| .
(17)
式中:Il(u+i,v+j),Ir(u+i+d,v+j)为左右图像的像素灰度;W是像素Il(u+i,v+j)为中心的邻域窗口;d为视差.
SAD算法在速度和匹配质量方面较其他算法更具有优势,但其易受光照影响.
Census变换[18]也是一种常用的基于局部区域的立体匹配算法,它是在图像区域定义一个矩形窗口,用该窗口遍历整幅图像.选取中心像素为参考像素,将矩形窗口中的每个像素灰度值与参考像素灰度值进行比较,灰度值小于或等于参考值 的像素记为0,大于参考值的像素记为1,最后将它们按位连接,得到变换结果.其表达式如下:
(18)
Census变换对光照变化不敏感,且能够容忍一定的噪声,但其对弱纹理区域和重复场景匹配效果不好.
为了提高匹配的效率和鲁棒性,现将上述两种算法进行加权融合,其匹配步骤如下:
1) 匹配代价计算.以左视图为基准图像,选择1个参考匹配点为中心像素建立一个大小为m×n的矩形窗口.以右视图为匹配图像,沿着校正后的水平线进行搜索.将SAD算法和Census变换通过加权的方式进行相加融合,其表达式为
(19)
该算法将SAD算法和Census进行权值相加,当光照变换不均匀可增加Census的权重(减小α值),当要求实时性可增加SAD算法的权重.
2) 视差计算.当代价函数确定后,取使代价函数最小的视差dmin为所求视差.
3) 视差优化.计算出的视差为离散的数值.可通过亚像素插值等方法进行视差精确化.由于实验环境的影响,所得的视差图会存在大量噪声,可采用平滑滤波等方法进行去噪优化.
双目立体视觉就是用2台相同的工业摄像机模拟人的双眼,通过视差和三角测量等一系列算法感知物体的距离,从而恢复出物体的深度信息[19-20].如图15所示,令世界坐标系为XO1YZ,其与左相机的坐标系重合.基线b是2台摄像机光心间的距离.空间三维点P的坐标为(X,Y,Z),由于世界坐标系和左相机坐标系重合,所以点P在左相机坐标系下的坐标为(X,Y,Z).当使用双目相机观察同一点时,会存在视差d,因此点P在右相机坐标系下的坐标为(X-b,Y,Z).定义点P在左、右摄像机成像平面下的坐标为p1(x1,y1)和p2(x2,y2),令y1=y2=y,通过上述关系,可以求出
(20)
式中f是焦距.
图15 三角测量示意图
得到视差图和图像深度信息,便可以进行全局的三维重建,对式(1)进行逆变换,得
(21)
实验使用2台相同型号的CMOS彩色工业摄像机,其参数如表3所示,将2台摄像机固定在双目云台上,通过USB2.0数据线与计算机相连进行供电并配有可变焦镜头,从而完成双目立体视觉系统的搭建.在双目立体视觉系统中,2台工业摄像机的光心在同一条水平线上,其连线(基线)长度为66 mm.
以苏家屯编组站的两节连接车厢为研究区域,C++为主要编程语言,通过VS2017配置OpenCV库为编程环境进行双目图像的采集、图像预处理、立体校正和立体匹配等操作,利用双目立体视觉系统采集带有车钩和把手的图像.若想实现机械臂对车钩的自动摘取,需对车厢、车钩和最重要的目标把手进行测距.
表3 摄像机参数
图16是通过立体匹配算法得到的列车分解区域的视差图,灰度值较大的部分表示距离拍摄像机的垂直距离较小,根据灰度图的灰度值分布可知列车各部分的距离.为了便于实验分析将其转化为三通道的RGB图像,在彩色图像中,蓝色表示距离摄像机较近的部分,绿色则表示较远.为了更直观地表示深度图与原图像的关系,将左摄像机拍摄的矫正图像和深度图的灰度图进行融合.其中蓝色部分是左摄像机经过立体校正后的拍摄图像,红色部分是视差图.可以看出,场景中的车厢、车钩和把手均被深度图表示,在蓝色的原始图像的强纹理区域实现了立体匹配与视差计算,进而验证了算法和实验的准确性.
将立体匹配算法得到的三通道RGB视差图像与原始列车图像进行对比,如图17所示,列车的车钩、 车厢和目标把手各自的区域在视差图中清晰可见.通过三角测量算法,公式(21)计算列车的车厢、车钩和把手三部分物理距离,测距结果如表4至表6所示.深度Z表示双目立体视觉系统的光心和三维场景各个部分的垂直距离,根据前文机器人摘钩过程,该距离是一个物理量,其单位为mm.机器人在识别到目标把手后,可根据把手的距离进行伸缩,当抓取到把手时,执行机构可模仿人工摘钩动作,实现自动摘钩.实验中三部分的深度计算值和利用激光测距仪检测出的实际距离的误差如表4至表6所示,经过比较可知车钩处纹理丰富,故匹配精确,即其距离测量结果较为理想;反观目标把手,由于把手处表面纹理较少,且目标较小,因此存在误匹配,影响测量精度,但总体误差不大,可以在后续研究中继续优化.
图16 列车视差图像
图17 视差图像区域标注
表4 目标把手处测距结果
表5 车厢处测距结果
表6 车钩处测距结果
为了更加直观地观测列车分解的操作场景,重建出的场景三维稀疏点云如图18所示.
图18 列车场景三维重建结果
1) 对复杂背景下的双目图像进行边缘检测和图像锐化等图像预处理操作,增强图像质量.使用模板匹配算法搜索图像上目标区域并进行识别.
2) 利用匹配点和单目摄像机的标定参数恢复了双目相机的位姿关系,并进一步实现了立体校正,其校正效果良好,验证了双目摄像机参数和位姿信息的准确性.
3) 通过SAD加权Census的立体匹配算法得到了区域明显的视差图,测量了场景的深度信息,并与激光测距仪的实际深度信息对比进行验证.
4) 经对比,目标把手处目标较小且纹理信息单一,所以测得的距离误差较大,但误差在规定范围内.实验结果表明,该方法稳定可靠,测量目标精准.