基于YOLOv3算法的盲道障碍物识别技术应用研究

2021-04-01 08:14孙嘉鑫吴琳
现代计算机 2021年5期
关键词:盲道障碍物盲人

孙嘉鑫,吴琳

(北方工业大学信息工程学院,北京100144)

0 引言

根据相关的调查表明,我国有着六百万盲人,出行问题一直困扰着盲人群体。尽管国家建设了许多有关盲人辅助的设施,但设施的管理,大众的保护意识缺乏依然对他们的出行产生了极大的干扰,如在盲道上停放车辆、盲道上有瓶子等,给盲人出行带来了困难。所以本文希望通过图像识别技术,帮助盲人在出行时识别前方障碍物。

相比于传统的检测算法通过提取目标特征来实现检测,近年来基于深度学习的计算机视觉算法可以有效地提高准确度和识别速度。本文将基于回归的检测方法中的YOLOv3算法实现通过单目摄像头实时检测障碍物。

1 相关工作

近年来人工智能技术快速发展,其中有关计算机视觉方面的YOLOv3算法凭借其优秀的性能引起了广大研究员的兴趣。2018年王殿伟等人[1],通过改进YOLOv3,利用K-means聚类方法选取目标候选框个数和宽高比维度,调整网络参数并提高输入图像分辨率,多尺度训练出最优检测模型,提升了红外检测行人的准确度并降低了漏检率。2019年张富凯等人[2]实现基于改进YOLOv3的快速车辆检测方法,通过增强深度残差网络提取特征,设计不同尺度的卷积特征图,最终实现车辆预测任务。2019年赵德安等人[3],基于YOLOv3实现在不同光线环境下对遮挡、粘连和套袋等多种情况下的苹果定位方法,其方法可以为机器人快速长时间高效率在复杂环境下识别苹果提供理论基础。

2 关键技术

2.1 YOLOv3算法

YOLOv3[3]是以YOLOv1和YOLOv2为基础的改进版。YOLOv3采用Darknet-53网络结构,Darknet-53借鉴了ResNet的残差思想[3],在基础网络中大量使用残差连接,因此将网络结构设计地更深,解决了梯度爆炸以及梯度消失的问题。YOLOv3通过使用上采样与Concat操作,融合了深、浅层的特征,最终输出了3种尺寸的特征图。分为应深层、中层和浅层的特征。深层的特征图尺寸小,感受野大,利于检测大尺度的物体,浅层的特征图便于检测小尺度的物体。

YOLOv3的另一种改进是将对象分类功能函数用Logistic取代了Softmax,Logistics可以实现多类别的预测,并且准确率不会下降。在输出时可以显示出一个物体的多重标签。

2.2 盲道障碍物识别技术

图1为一张常见的盲道图片,颜色与周围道路明显不同,将原始图片转化到Lab色彩空间后,提取盲道图片的b色彩分量,其对应的b分量图片如图1所示。

图1盲道处理对比图

获取到b分量图片之后,为了提取盲道,使用Otsu算法对b分量图像进行二值化。所获取的二值化图像中有很多干扰,为了消除干扰,对图像进行开操作,消除图像中的零碎像素点,同时尽量保留盲道部分图像信息。

获取了盲道的二值图之后,利用Canny算法对图像进行轮廓提取,再利用Hough算法获取盲道边缘的直线数据。

2.3 算法运行流程

算法的运行顺序如图2所示,先将图片中的盲道提取出来,再通过YOLO检测器进行障碍物检测,最后得到结果图片。

图2完整流程

3 实现过程

3.1 图像数据集处理

考虑到真实行走过程中会遇到的障碍,我们将类型分为自行车、摩托车、汽车、人、动物。在图片的选取上,我们挑选不同时间、不同光照、不同地点、不同天气的照片共2000张,其内容为真实出行会遇到的各种路况。识别过程如图3所示。

图3 YOLO训练流程图

3.2 图像特征处理

YOLO检测过程:输入YOLOv3模型的图片大小为(416,416,3),分辨率不同的图像将在输入后被转化为此分辨率。主干网络为Darknet-53,Darknet-53网络通过不断的下采样,降低分辨率,图片通道数在不断增加,从中提取shape为(52,52,256)、(26,26,512)、(13,13,1024)的图片作为特征层提取特征。

获取特征层之后,一部分用于物体检测,一部分经过上采样之后与其他特征层结合后用于物体检测。其中52×52的特征层用于大物体的检测,26×26和13×13的特征层用于检测中小物体。

3.3 图像识别

YOLO利用上述三个特征层提取特征并用于检测,由于本算法的数据集类别可识别8个种类,因而检测结束后将输出三个shape分别为(52,52,39),(26,26,39),(13,13,39)的检测结果,其中包括了检测的分类结果classes,检测物体的中心位置(x,y),检测出来方框的宽高w,h和最后检测物体的置信度。

训练过程:训练时,将YOLO的输出结果与实际结果进行计算loss,其中包括真实框与预测框iou的loss,(x,y)和宽高的loss和分类结果的loss,再利用优化器调整参数,经过不断地迭代训练,不断地降低损失,并对训练图像进行缩放、旋转等操作,提高YOLO识别模型的识别准确度。

4 实验结果分析

实验需要的硬件环境为处理器Intel Corei5-8400,GPU为NVIDIA GTX1050Ti,操作系统为Windows 10,深度学习框架为PyTorch。实验结果如图4,盲道的检测算法将图片要检测的部分提取出来,有效地减少图像的识别范围,减少无效识别,提升识别速率。经过有效区域提取,YOLO检测器依旧可以检测出物体的轮廓以及物体类别。实验结果表明经过处理可以有效识别出存在于盲道上的物体。

本实验中,mAP数值为96%左右如图5,识别物体准确度高。正常人的行走速度为1m/s,YOLO的检测速率为每秒15帧左右,盲道提取的速率为每秒33帧左右,该运算速率满足常人步行速度需求,达到实时检测的目的。

通过单目摄像头实现实时测障具有价格低的特点,其产品受众更广,使用简单。在日常的出行中,将摄像头佩戴在身上,可以很好地辅助盲人的行走,躲避并识别前方物体。极大地提高了盲人出行的安全性,可以鼓励更多的盲人走出家门。

图4实验结果图

图5 mAP图

5 结语

本文基于YOLOv3目标检测算法实现了实时检测物体,结合盲道提取算法识别出盲道上的障碍物,实现辅助盲人出行的效果。结果表明,在运算速度上和精准度上都可以为盲人的出行提供有效帮助。对于基数如此之大的盲人群体,该系统拥有着广阔的应用前景。

由于实际情况中的复杂性,该系统存在对于重叠物体识别不完整的问题,下一步的工作将是提升叠放物体的识别准确率,以应对实际路况中出现的特殊情况。

猜你喜欢
盲道障碍物盲人
“盲道十八弯”之忧
高低翻越
赶飞机
盲道
随声附和的盲人
月亮为什么会有圆缺
盲人节
盲人分衣服
盲人水杯
请为盲人留出一条道