基于Yolo V3 算法的盲道识别
2021-03-23陈朝阳高翔森孙铭悦李泽宇
陈朝阳 高翔森 孙铭悦 董 岩 李泽宇
(1、北京建筑大学 测绘与城市空间信息学院,北京102616 2、北京市建筑遗产精细重构与健康检测重点实验室,北京102616)
盲道是专门提供给盲人的道路,盲人可通过凹凸不平的盲道,来判断前方道路情况。但是仅凭盲道的凹凸反馈,在磨损严重、盲道缺失的路段,很容易出现盲人迷路的情况容易造成安全隐患。盲人可通过盲杖、导盲犬和智能导盲设备解决这些问题,但是这些设备存在不宜携带、准确度低等问题。
为了能够更好的解决这些问题,帮助盲人出行,提出了许多新颖的方法,比如通过超声波传感器、颜色传感器等。李子康[1]等人设计了一种借助超声波与红外传感器的障碍物检测;赵晓军[2]等人设计了一种基于GPS 的导盲杖,为盲人的出行保驾护航。但是,这些方法都有其局限性。
1 实验环境搭建与材料准备
本文的实验平台为Ubuntu-18.04.4 操作系统,使用NVIDIA GeForce GTX 1660 Ti 显卡,运行内存为16GB,实验环境完全满足Yolo V3 算法。在盲道数据集的制作上,由于没有可供选择的数据集,采用自制的方式,在互联网采集了1000 张盲道图片,还采集了1000 张汽车图片,以及1000 张行人图片,通过精灵标注助手标注。其中90%作为训练集,10%作为测试集。
图1 盲道
图2 汽车
图3 行人
2 训练模型框架选择
在进行模型训练时,可供选择的框架有Tensorflow 框架、Darknet 框架等,本文选择使用Darknet 框架对YOLO V3 算法进行训练。Darknet 作为一个开源的轻量型深度学习框架,虽然没有Tensorflow 强大,但是安装容易,没有任何依赖项,移植性高,方便操作。
在开始训练前,需要对四个文件进行设置,分别是detector.c、my_data.data、my_yolov3.cfg 和myData.names。detector.c 文件是Darknet 框架中自带的YOLO 配置文件,用于训练模型和检测,可以设置每迭代多少次后保存一次权重文件。my_data.data 记录了训练模型读取所需数据的路径和记录标注目标的名称的文件路径,以及断点续训的backup 文件的保存路径。my_yolov3.cfg文件中是有关卷积网络的设计,以及输入图片的batch、学习率、最大迭代次数等设置,使用者可以通过结合自己训练的数据模型在此文件中修改参数,使得后续训练出的权重文件在进行目标检测时有更好的效果。myData.names 文件中记录了标注信息的名字,分别为blind sidewalk、people 和car。
3 训练设置
本文基于Darknet 框架来训练Yolo 网络模型,首先将batchsize 设置为32,subdivision 设置为8,动量参数设置为0.9,动量衰减正则项设置为0.0005,学习率为0.001,max_batches(最大迭代次数)为50200。
4 训练结果分析
在训练完成后,利用记录的loss 值的信息,绘制loss 变化曲线,图4 记录了模型训练时loss 值的变化情况。
图4 loss 曲线
图4 中的纵坐标表示模型训练时的损失值(loss),横坐标表示模型进行的迭代次数。从图中可以看到训练开始时loss 值下降的比较迅速,当迭代到10000 次时,loss 值下降的速度就比较缓慢了;当到达17000 次左右,loss 值曲线趋于平缓并上下轻微波动;当达到20000 次后模型loss 值收敛于0.1,最终结束本次训练。在模型训练完成后,利用测试集进行了模型对盲道、行人、汽车三类目标识别的准确率以及召回率的测试。测试结果如图5。
图5 召回率测试
图5 中的纵坐标为精确率(Precision),表示预测的正样本的正确率;横坐标为召回率(Recall),表示正样本预测的正确率。平均准确率(AP)是从准确率与召回率这两个角度去权衡检测模型的准确性,是模型准确性的检测的直接评价标准,也可以进行分析模型对单个类别的检测效果。从图中可以直接看出模型在测试集中对各目标检测的准确度,盲道检测准确性达到了87.46%,汽车检测的准确性达到了77.47%,行人检测的准确性达到了97.63%。通过对模型每一类目标识别的AP,又计算了mAP 即对每类的平均准确率再取平均值,图6 为模型对目标检测的准确率。
图6 mAP 准确率
纵坐标表示该模型检测的三类目标,横坐标表示平均准确率,由图中可以看出该模型对行人检测的准确率最高达到了98%,其次就是对盲道检测的准确率达到了87%,最后是对汽车检测的准确率达到77%。
5 结论
传统的盲道识别方法存在成本高、速度慢、精度低等问题。本文提出使用YoloV3 算法,对盲道进行识别,制作了盲道数据集,使用Darknet 框架训练了检测模型,训练的模型对盲道的识别准确率达到了87.46%,满足对盲道的检测需求,为视觉障碍者出行导航提供了新的思路。