阜阳师范大学 计算机与信息工程学院,安徽阜阳 236037
摘要:在移动机器人研究领域,障碍物检测是一个重要方向。相比于传统的超声波、毫米波雷达以及激光检测等方法,利用双目视觉进行障碍物的检测,可以很好的获得障碍物的深度信息。并且视觉检测具有被动测量;可识别障碍物种类;检测广角更宽;获得信息时间更短;价格较低等优势。本文提出了一种基于双目视觉的室内环境下移动机器人的障碍物检测方法,使用YOLOv3算法框架在VS2015环境下进行快速的目标检测,然后通过非迭代K均值算法,对检测目标分类为障碍物和非障碍物两类,从而实现障碍物的快速检测。
关键词:移动机器人;障碍物;双目视觉;YOLOv3;非迭代K均值算法
1
0 引言
近年来机器人技术和行业快速发展,移动机器人应用场景也越来越广泛,其研究和应用也已经从军事和工业领域扩展到了农业[1]、家用[2]、服务[3]和安防[4]等行业。在移动机器人研究领域,障碍物检测是一个重要方向。完成移动机器人行进中机器人障碍物检测是十分有必要的。传统算法需要进行多次校对识别,降低了识别的准确率和效率[5]。相比于上述方法,利用双目视觉进行障碍物的检测,具有如下四点优势:(1)机器视觉使用的相机是被动式测量,不会对周围环境造成干扰;(2)可以检测更宽广视角下的障碍物而无需进行扫描;(3)机器视觉能在瞬时得到一个面上的信息,并进一步得到一个区域范围的信息;(4)相比于其他传感器,用于障碍物检测的相机价格更低,且图像内包含的信息更多[6]。
移动机器人的作业环境既有室外环境也有室内环境。而室内环境中光线对相机的等感光元件的影响较小,因此本文主要研究在室内环境中移动机器人双目视觉的障碍物检测。
1 障碍物检测与分类算法
针对双目视觉障碍物检测技术中,双目匹配精度差、障碍物检测算法稳定性与鲁棒性差等问题,胡颖等人提出了用卷积神经网络双目视觉进行障碍物检测[7];潘峥嵘和马莉为了提高障碍物检测的准确性和实时性,提出一种改进的Harris—Laplace方法检测特征点再结合二阶矩SIFT进行特征点描述匹配的算法,从而得到更精准的障碍物特征信息[8];刘锐和陈凤翔等人提出了一种基于柱状图的障碍物检测方法,并成功完成了室内未知环境下多旋翼前进方向的障碍物检测工作[9]。实际上障碍物检测可以看做目标检测的一种应用形式,因此本文从目标检测进行探究。在目标检测方面,从RCNN、Fast-RCNN、Faster-RCNN、SSD到YOLO,目标检测的准确率和速度都达到了新的高度。其中YOLO网络是目前最优秀的目标检测架构之一,在检测实时性方面表现尤为突出。
1.1YOLO算法
在2018年的国际计算机顶级会议上Joseph Redmon 和Ali Farhadi又提出了功能优化的YOLOv3算法[11]。
1.1.1网络结构Darknet-53
在深度学习图像处理的网络架构上,YOLOv3采用了Darknet-53的网络结构,该网络结构含有53个卷积层,与残差网络residual network的结构有类似部分,即在一些层之间设置了快捷链路(shortcut connections)。
1.1.2主流算法模型对比
YOLOv3在之前版本的基础上改进之后形成更深的网络层次和多尺度检测,提高了mAP及小物体检测效果。采用COCO mAP50做评估指标,YOLOv3的表现优秀,在精确度相当的情况下,YOLOv3的速度是其它模型的3、4倍。
1.2分类算法
1.2.1 K均值聚类算法[12]
K均值算法是一种用于数据分类用于数据分类的聚类分析方法,给定样本集D={x1,x2,. . . ,xm},“k均值”(k-means)算法针对聚类所得簇划分C={C1,C2,. . . ,Ck}最小化平方误差
(1)
其中
(2)
是簇Ci的均值向量。显然,式(1)在可以反映出簇内样本围绕簇均值向量的紧密程度,其中E值越小则簇内样本相似度越高。
1.2.2非迭代K均值算法
本文中是利用样本围绕图像中心点的紧密程度来寻找与中心相似度较高的点。对于图像中检测到的目标而言,将判断检测目标是否构成障碍物的问题,简化为检测目标边界框中心点的分类问题,若检测目标中心点和图像中心点为相似度较高的同一簇,则可以认为检测目标为移动机器人前进方向的障碍物,反之,则是非障碍物。
因此,本文提出了对各中心点进行分类所用的方法是非迭代K均值算法。
对于待分类的数据集,非迭代K均值如下:
(1)先确定数据集要分类的簇的数量,设簇
;
(2)选取各分类簇的初始的簇核心 ;
(3)计算样本与各簇核心
的距离:
;
(4)根据距离最近的簇核心,确定的簇标记:
,将样本
划入相应的簇:
;
2 硬件部分设计
硬件部分:
(1)选用领晰双目摄像头进行图像采集,该双目相机获取的图像为黑白格式。
(2)将双目摄像头安装在二自由度云台上。
1
3 实验结果与分析
3.1目标检测结果
由图1和表1实验结果可知,处于移动机器人正前方的行人被检测到,并且识别率较好可达90%以上,对于椅子的识别效果良好,左右图像的识别率均值64.5%,垃圾篓由于颜色较浅,未能识别,检测到工业机器人,但其不在移动机器人行进的路线上,该目标不构成障碍。因此要将不在移动机器人前进路线上的工业机器人目标检测结果排除,本文用K-means聚类算法一次迭代,将构成障碍的检测目标归为障碍物类别,将不构成障碍的检测目标归为非障碍物类别,从而而把非障碍物类别的检测目标过滤。
1
图1 双目相机目标检测结果
1
表1 双目相机左右图像目标检测结果对比
障碍物 | 左图像 识别率 | 右图像 识别率 | 识别率均值 |
Person1 | 90% | 94% | 92% |
Chair | 52% | 77% | 64.5% |
Bench (重复识别) | 79% | 52% | 65.5% |
Person2 | 99% | 100% | 99.5% |
Robot (误识别) | 37% | 63% | 50% |
由识别图像5可知,各检测目标边界框的中心点之间的位置关系也表征了检测目标之间的位置关系。因此,对检测目标分类为障碍物类和非障碍物类,可以通过对各检测目标边界框的中心点分类来实现。
1
图5 双目相机目标检测边界框中心点标注
1
3.2识别框的中心点
图6 边界框参数示意
每个边界框的预测值实际上包含5个元素,其表征函数为:
(3)
其中前4个表征边界框的位置与大小,而最后一个值是置信度。(x,y)是边界框左上角在图像中的位置,(w,h)是边界框的宽度和长度。x、y、w、h的单位均是图像中的像素最小单位,图像规格为1280*800,因此图像中心像素点坐标为Pcentor(640,400)。
表2左、右图像检测目标的表征函数相关参数
检测目标 | 左图像表征函数值 | 右图像表征函数值 |
Person1 | 392,278,76,206,0.9 | 377,280,79,197,0.94 |
Chair | 539,351,146,208,0.52 | 506,360,157,191,0.77 |
Bench | 543,366,144,211,0.79 | 509,373,155,199,0.52 |
Person2 | 611,241,77,207,0.99 | 590,235,84,226,1.00 |
Robot | 1003,287,43,82,0.37 | 994,287,51,83,0.63 |
由表2中的左图像表征函数值和有图像中的表征函数值进行如下运算可得图8。
1
图7 左、右图像检测目标中心点
1
3.3检测目标分类
对本文实验中检测到的障碍物目标边界框中心点和图像中心点集合进行非迭代K均值分类。
(4)
(5)
本实验中的点可分为两类,第一类是处在移动机器人的前进方向范围内,是主要障碍物,即是我们所要检测的目标,这些点距离图像中心点较近的点;第二类是在目标检测时,检测到的物体,但是该类物体不在移动机器人前进方向范围内,不属于障碍物,是检测结果的干扰项,是我们在障碍物检测时需要舍去的检测目标。因此,聚类簇数k=2,分别是簇和簇
。由图3可知
显然是非障碍物目标,因此算法开始选取两个样本Pcentor=(640,400),Robot作为簇核心。对于左图像中的检测物,即Pcentor(640,400),L-Robot(1024.5,328)
考察样本L-Person1(430,381),它与当前簇核心坐标Pcentor,的距离分别为210.86,596.86,因此
将被划入簇
中,类似的对数据集中的所有样本考察一遍后,可得如下表所示结果:
表3 K均值算法初始考察左图像分类结果
Sample | Distance from L-Person1 | Distance from L-Robot | Obstacle | Non-Obstacle |
L-Person1 | 210.86 | 596.86 | √ | |
L-Chair | 61.72 | 431.6 | √ | |
L-Bench | 75.74 | 433.92 | √ | |
L-Person2 | 56.31 | 375.36 | √ | |
L-Robot | 391.18 | 0 | √ |
同理,考察右图像中的检测目标分类结果如下:
表4 K均值算法初始考察右图像分类结果
Sample | Distance from R-Person1 | Distance from R-Robot | Obstacle | Non-Obstacle |
R-Person1 | 224.53 | 605.07 | √ | |
R-Chair | 78.49 | 453.16 | √ | |
R-Bench | 90.10 | 456.32 | √ | |
R-Person2 | 52.61 | 387.99 | √ | |
R-Robot | 386.18 | 0 | √ |
由表3和表4可知,当前簇划分为
(5)
(6)
进一步考察容易得到迭代之后的簇划分结果未变。
1
图8 障碍物检测分类结果
1
4 结论
本文提出基于非迭代K均值算法的移动机器人障碍物检测方法。选用dark-net版本yolov3神经网络框架的和训练好的数据集yolov3.weights作为图像软件检测工具。 对于检测到的移动机器人前方的目标,对检测目标进行分类,分为障碍物和非障碍物。具体分类方法是通过考虑各个目标识别框中心点与采集图像中心点和明显非障碍物识别框中心点之间的相似度来进行分类,运用非迭代K均值算法,可以较好将各检测目标分成障碍物和非障碍物两类,从而完成障碍物检测。
参考文献
[1] Ball D,Upcroft B,Wyeth G,et al. Vision-based Obstacle Detection and Navigation for an Agricultural Robot [J]. Journal of Field Robotics. 2016,33(8):1107–1130.
[2]冯书鹏,王明娣. 扫地机器人自适应越障机构的设计及其应用研究[J]. 机械传动,2018,42(11):173-175.
[3] Chivarov N,Chikurtev D,Markov E,et al. Cost Oriented Tele-Controlled Service Robot for Increasing the Quality of Life of Elderly and Disabled - ROBCO 18[J]. IFAC-Papers OnLine,2018,51 (30):192-197.
[4] 彭道刚,关欣蕾,戚尔江,等. 巡检机器人云台远程控制系统的设计[J]. 电气传动,2018,48(11) :43-47.
[5]李丽丽.机器人视觉中的障碍物优化识别方法研究[J]. 计算机仿真 2016(6):306-309
[6]何勇,蒋 浩,方 慧,等. 车辆智能障碍物检测方法及其农业应用研究进展[J].农业工程学报,2018,34(9):21-31.
[7]胡 颖,马国军,何 康,等. 卷积神经网络双目视觉路面障碍物检测[J]. 计算机工程与设计,2018,39(10):3278-3283.
[8] 潘峥嵘,马莉. 基于特征信息提取的双目视觉障碍物检测研究[J]计算机测量与控制,2013(7):1779-1782.
[9] 刘锐,陈凤翔,陈科羽,等. 基于双目视觉的障碍物检测方法研究[J]. 计算机测量与控制,2018,26 (12) :67-71.
[10] Redmon J,pvala S,Girshick R,et al . You Only Look Once: Unified, Real-Time Object Detection [J].Computer Science.
[11] Redmon J,Farhadi A. YOLOv3: An Incremental Improvement[J]. arXiv Preprint,2018,2018:arXiv:1804.02767.
[12] 周志华.机器学习[M].北京:清华大学出版社,2016:202-203.
1