雷越,邓斌,何沛恒,徐新,左荣

基于单目视觉里程计的移动机器人自定位方法

雷越,邓斌,何沛恒,徐新,左荣

(西南交通大学 先进驱动节能技术教育部工程研究中心,四川 成都 610031)

为解决在列车底部直线移动的机器人对风管进行识别定位摘解时需到达两节车厢之间的自定位问题,提出一种基于单目视觉里程计的自定位方法。该方法根据单目相机在列车底部竖直向上拍摄时图像颜色较深,而当相机将要到达两节车厢之间时所拍摄图像中会有明显亮度变化区域的特点,选取关键帧图像,通过图像处理提取出图像中目标区域信息,根据所提出的运动估计算法估计相机自身的运动。最后,通过实验计算得到该方法的绝对误差为0.059 s,相对误差为1.16%,验证了该方法的可行性。

移动机器人;单目视觉里程计;关键帧选取;图像处理;运动估计

目前,列车风管的摘解均采用人工方式操作,劳动环境差、摘解效率低、危险系数高。利用搭载视觉系统的移动机器人对风管进行识别定位摘解能够有效解决人工操作问题,而其中对在列车底部直线移动的机器人进行定位,使其能停在两节车厢之间是移动机器人实现风管识别定位摘解的重要条件。

近年来,基于视觉里程计(Visual Odometry,VO)的定位技术已成为机器人导航领域的重要研究热点[1-3]。视觉里程计利用视觉传感器采集图像,通过一系列算法来估计自身的运动轨迹,具有结构简单、信息量大、适应性强等优点[4]。按照系统所使用的相机个数可将视觉里程计分为单目视觉里程计和立体视觉里程计[5]。立体视觉里程计一般采用两个或两个以上相机作为载体获取图像,可通过对级约束关系和三角测量原理得到深度信息,重建空间结构,但相机间标定复杂,系统不稳定,计算量大,实时性低且成本昂贵;单目视觉里程计采用单个相机为载体获取图像,虽难以获得深度信息,但具备成本低廉、安装方便、计算量小、实时性高的特点[6-7]。

在现阶段VO领域,关于利用单目视觉里程计来解决实际问题的研究越来越多。文献[8]为解决移动机器人的避障问题,提出一种可实时获取移动机器人位姿的单目视觉里程计算法,根据实验结果表明该算法实时性高,但误差仍较大,还需进一步改进。文献[9]为解决在相机快速运动时单目视觉里程计精度差和不稳定的问题,提出一种基于树结构的特征匹配和实时地图更新的单目视觉里程计算法,通过公开数据集对算法进行对比验证,结果表明该算法具有不错精度和鲁棒性,但存在同一帧图像曝光时刻不同产生较大误差的问题。

本文针对移动机器人在列车底部行走的特点,提出一种基于单目视觉里程计的自定位方法,其流程如下,首先通过问题描述,建立相机运动模型,其次在对单目相机进行标定矫正后,对单目相机所采集的图像进行一定手段的处理,提取出目标区域信息,然后通过理论分析,基于VO原理提出相机运动估计算法,最后搭建简易实验平台验证该方法的的精度和可行性。

1 问题描述

在列车底部直线移动的机器人,如图1所示,从铁轨端头进入两节铁轨之间,在列车车厢底部直线行走,当移动机器人到达两节车厢之间时停留,对风管进行识别定位摘解,完成后移动至下两节车厢继续摘解,直至摘解完成。

图1 移动机器人模型

针对移动机器人为到达两节车厢之间需要对其运动进行定位使其能在两节车厢之间停留的问题,建立如图2所示的相机运动模型。将单目相机水平放置,垂直向上方采集图像。其中相机到车厢底部距离为1,到铁轨枕木距离为2,相机焦距为,相机视场角为,相机运动速度为,两节车厢间距为,相机通过设定相应帧数,在不断水平移动中进行图像采集,当相机在列车底部时,所拍摄照片整体背景较深,而当相机将要移动到车厢之间时,所采集的图像会存在明显的亮度区域变化,因此通过对图像进行一定处理计算即可对相机的运动进行估计,实现移动机器人自身的定位。

图2 相机运动模型

2 相机标定及图像处理

2.1 单目相机模型

首先建立相机投影模型如图3,其中为相机坐标系,为像素坐标系,为相机光心,其中点像素坐标为(1,2),设为现实世界中的三维点,在成像平面上的投影为,其坐标为[,]T,其在世界坐标系下的坐标为[X,Y,Z]T。通过世界坐标系与相机坐标系的转换关系,以及图像坐标系与相机坐标系的转换关系,结合投影透视模型可得到世界坐标系与图像坐标系转换方程式为:

式中:ffcc分别为方向的焦距和偏移量;、分别为旋转矩阵和平移向量;1为相机内部的参数矩阵;2为相机外部的参数矩阵。

其中相机内部参数只与相机内部结构有关,相机外部参数与相机所在位置有关,相机在不同位置拍摄时的外部参数都不相同。通过相机标定得到相机内外参数具体数值后,便可利用相机内部参数和外部参数来确定空间物体上某一点的三维坐标与在图像上对应点之间的相互关系。

实际情况中,由于镜头制作工艺等原因,摄像机镜头会产生径向和切向畸变[10],导致所采集的图像失真,其中切向畸变产生于相机组装过程等,径向畸变产生于透镜形状等。因此通过相机标定得到内参系数后,使用内参系数对图像进行矫正,可提高后续对图像进行处理时的精度,减小误差,也是做好后续工作的重要环节和前提。

图3 相机透视投影模型

2.2 单目相机标定及矫正

为了得到相机的内部参数矩阵利用Matlab工具箱对相机进行标定。单目相机采集的不同位置标定板棋盘格图像数量为20张,部分如图4所示,棋盘格规格为9×10,正方形边长为10 mm。

图4 棋盘格采集图像

通过系统计算得到标定结果,相机的内部参数矩阵为:

相机径向畸变系数1、2、3为[0.0663,-0.0805,0];

相机切向畸变系数1、2为[0,0]。

得到相机内部参数后,将各参数代入opencv图像矫正算法中进行图像矫正,处理结果如图5所示。

图5 图像矫正

2.3 图像处理

为后续工作的顺利展开,在对该单目相机所采集的图像进行矫正后,根据本方法的思路,需要对采集的图片进行一定处理,处理流程如图6所示。

图6 图像处理流程图

首先将所采集的图像进行预处理,其中包括将图像灰度化和图像灰度直方图获取以及全局阈值分割和开运算,完成预处理后对对目标进行信息提取处理,得到所需参数进行计算。

利用全局即整个图像的信息,如整个图像的灰度直方图,在整个图像中只使用一个阈值对图像进行分割,可以将整个图像分割成两个区域,包括目标区域和背景部分。对于物体和背景对比较为明显的图像使用全局阈值法能很好的对图像进行分割。具体操作为将所采集的图像进行灰度化处理,利用Matlab等软件绘制出灰度直方图,选定直方图中波谷处即最低点的灰度值作为全域阈值分割值,对图像进行全局阈值分割,可以将目标区域和背景区域进行分离。

通过形态学中的腐蚀与膨胀组合运算可以对二值图像进行减噪处理,本方法采用形态学开运算即先腐蚀后膨胀运算,消除图像上细小的噪声,平滑物体的边界,减小计算的误差。

最后通过连通区域获取算法找到目标区域,绘制感兴趣区域,并用红框标记,通过面积提取算法提取出目标区域的面积、边长等信息作后续计算,其中边长通过面积除以图像宽度像素得到。

取一张在实验现场所拍摄的图片作为示例,首先对其进行预处理,将其灰度化后得到灰度直方图,根据灰度直方图取得全局阈值为240,利用全局阈值分割法将图像背景与目标区域分割开,并显示出所求目标区域,预处理后的结果图如图7,再经过上述所说算法进行一定处理提取出目标区域信息,如图8,通过算法得到目标区域面积,通过计算获得其边长长度,为后续计算做准备。

图7 预处理结果

图8 目标区域提取结果

3 运动估计理论分析

3.1 VO原理

相机在运动中以固定帧率采集图像时,如图9所示,设其在-1时刻和时刻所采集的图像分别为I-1和I。为现实世界中的三维点,在I-1、I中的成像点为p-1、p。通过这两点的坐标以及投影方程可得到相机在-1时刻到时刻的位姿变换矩阵T,t-1。其中T,t-1∈4*4,该矩阵可表示为:

式中:R,t-1为相机的旋转矩阵;Q,t-1为相机的平移矩阵。

将所得一系列图像进行计算估计得到变换矩阵,通过集成法集成所有矩阵可得到相机的全部运动轨迹。这也意味着VO是通过增量式一个位姿接着一个位姿重建轨迹。

图9 帧间运动估计原理图

3.2 运动估计算法

由于视觉里程计是通过增量式方法重建运动轨迹,所以会产生累积误差,需要对其进行优化得到更加精确的运动轨迹[11],这也是视觉里程计在精确性方面面临的主要问题。而本文基于单目视觉里程计的原理提出的新方法只需要对相机所拍摄的关键三至四帧图片进行处理并估计其运动轨迹,因此累计误差很小。

通过之前的相关工作,对相机所采集的图片进行关键帧选取并进行图像处理完成后,根据图10所示,找到经处理后刚出现白色区域的图片设为1,前一帧图片设为0,后一帧图片设为2,然后依次设至,如图11所示。单目相机在帧间运动时,相机在每帧时间内移动距离虽相等,但根据相机投影成像特性有1>2,导致白色区域面积并不是线性增加,因此需要采用一种算法来进行运动估计。基于这一特点,为通过反推计算在1时刻白色区域边长长度1在总区域长度0即一帧中所占用的时间,如图12,提出一种推导算法。

图10 相机关键帧选取

图11 帧间图像原理图

图12 I1帧反推原理图

其步骤如下:

(1)首先对前帧的图像进行处理并通过计算得到1,2,3, ...,x,取值为3~4即可;

(2)根据公式Δx-1=xx1计算一阶差分,得到Δ1, Δ2, Δ, ..., Δx

(3)根据Δx的值列出一阶差分表格,取得合理值Δ0;

(4)在1这一帧内采用线性处理方法,白色区域在总区域长度中所占用的时间为:

式中:为相机一帧所用时间,s。

(5)得到后,可得:

4 实验验证

4.1 简易实验平台搭建

为进行实验验证,根据移动机器人自身移动的特点,搭建如图13所示的简易实验平台,其中基座用于模拟移动机器人高度,电机丝杠组合模拟移动机器人的水平直线移动,图像采集程序如图14,通过电脑控制单目相机进行图像采集,采集格式为数据流视频格式,颜色空间为YUY2,输出大小为640×480默认值。

图13 实验平台搭建图

图14 图像采集程序

通过测量现场其余具体数据,有相机到车厢底部距离1为610 mm,相机到铁轨枕木距离2为240 mm,两节车厢间距为1000 mm。相机成像角度为46°,相机焦距为4.3 mm,帧数为30,丝杠运动速度为0.15 m/s。

为验证该方法的精度和可行性,将相机在0处距离车厢外侧的水平距离设为定值,这里设置为270 mm,直接让相机从0出发,可得:

4.2 图像处理和误差计算

在系统采集完图像后,如图15所示,对这些图像进行图像处理,首先找到经处理后首次出现白色区域的图像1,根据运动估计算法,取的值为3,然后提取出1前一帧图像0以及1后的两帧图片分别命名为2、3,经过图像处理提取出目标区域,计算其面积并获得其边长,提取结果图如图16所示。

图15 采集原图

在计算得到各帧目标区域边长后,建立一阶差分表,如表1,根据表中数据取Δ0为33.8000 p,按照式(3)计算出=0.0143 s,然后根据式(4)得到=5.0738 s,因此可得到该方法的绝对误差为|t-|=0.059 s,由下式得:

(a)0(b)I

(c)I2 (d)I3

表1 一阶差分表

5 结论

针对在列车底部直线移动机器人的自定位问题,基于单目视觉里程计的原理,提出了一种解决移动机器人自定位的新方法。本文通过建立相机运动模型,对单目相机进行标定矫正后,提出对所采集的图像的处理方法,通过理论分析提出一种运动估计算法,最后通过搭建简易实验平台对该方法的精度和可行性进行验证。根据实验结果计算出该方法的绝对误差为0.059 s,相对误差为1.16%,其中产生误差的主要原因有:

(1)一阶差分法的估计误差;

(2)图像处理误差;

(3)现场测量数据误差,后续工作还需继续对其优化。

通过实验结果表明该方法可行且精度较高,该方法也为其它需要进行自定位的移动机器人提供了一种可行参考。

[1]Nister D , Naroditsky O , Bergen J R . Visual odometry[C]. Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2004.

[2]F. Fraundorfer,D. Scaramuzza. Visual Odometry: Part II: Matching, Robustness, Optimization, and Applications[J]. IEEE Robotics & Automation Magazine,2012,19(2):78-90.

[3]李宇波,朱效洲,卢惠民,等. 视觉里程计技术综述[J]. 计算机应用研究,2012,29(8):2801-2805,2810.

[4]Cadena C,Carlone L,Carrillo H,et al. Simultaneous Localization And Mapping: Present, Future, and the Robust-Perception Age[J]. IEEE Transactions on Robotics,2016,32(6):1309-1332.

[5]R. Mur-Artal,J. D. Tardós. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras[J]. IEEE Transactions on Robotics,2017(5):1255-1262.

[6]赵文恺,李刚. 基于双目相机的视觉里程计[J]. 计算机工程与设计,2020,41(4):1133-1138.

[7]乌萌,郝金明,高扬,等. 一种场景稳健的单目视觉里程计算法[J]. 测绘科学技术学报,2019,36(4):364-370.

[8]赵黎明,陈宁. 基于平面单应性的单目视觉里程计设计[J]. 计算机工程与应用,2016,52(17):243-246,252.

[9]庞智华,齐臣坤. 一种鲁棒的单目视觉里程计算法[J]. 计算机工程,2020,46(12):80-87.

[10]汪佳丽,王炜杰,马振玲. 相机畸变的混合模型迭代检校法[J].测绘通报,2019(4):103-106.

[11]祝朝政,何明,杨晟,等. 单目视觉里程计研究综述[J]. 计算机工程与应用,2018,54(7):20-28,55.

Self-Positioning Method of Mobile Robot Based on Monocular Visual Odometer

LEI Yue,DENG Bin,HE Peiheng,XU Xin,ZUO Rong

( Engineering Research Center of Advanced Drive Energy Saving Technologies, Ministry of Education, Southwest Jiaotong University, Chengdu610031, China )

In order to solve the self-positioning problem that the robot moving linearly at the bottom of the train is expected to reach the middle of two carriages when identifying, locating and disassembling the air duct, a self-positioning method based on monocular visual odometer is proposed. On the basis of the feature that the color of the image is darker when the monocular camera shoots vertically upwards from the bottom of the train, and when the camera is about to reach the middle of the two carriages, there will be obvious brightness changes in the image, the key frame image is selected, and the target area information in the image is extracted through image processing, and the camera's own motion is estimated according to the proposed motion estimation algorithm. It turns out that the absolute error of the method is 0.059s and the relative error is 1.16%, which verifies the feasibility of the method.

mobile robot;monocular visual odometer;key frame selection;image processing;motion estimation

TP24

A

10.3969/j.issn.1006-0316.2021.04.009

1006-0316 (2021) 04-0055-07

2020-10-29

雷越(1997-),男,四川成都人,硕士研究生,主要研究方向为机器视觉、机械结构设计,E-mail:292755756@qq.com;邓斌(1964-),男,湖北荆门人,博士,教授,主要研究方向为机电液一体化。