APP下载

基于深度学习实现人行横道检测的设计*

2020-10-23陈兴文

山西电子技术 2020年5期
关键词:人行横道卷积神经网络

吕 睿,陈兴文

(大连民族大学信息与通信工程学院,辽宁 大连 116600)

0 引言

自1995年提出LeNet奠定卷积神经网络的基础结构后[1],2010年ImageNet大赛上AlexNet的使用,使深度学习吸引大量学者研究人员的关注,并且成功应用于图像上。这些为无人驾驶在障碍物检测,道路、行人、车道线检测等方面提供了新的思路[2],并且比传统的行人检测、道路检测等算法在应对复杂场景时要好得多。本文引入深度学习方法以人行横道检测为例,探讨智能车辆技术在环境感知方面的应用,其实验结果对于提升智能辅助驾驶的安全度、舒适度具有较好的工程应用价值。

1 开发工具

1.1 anaconda平台

Anaconda是python发行的包管理工具,其中自带python的版本,还带很多python的包,支持Linux、mac、windows系统,并有一个conda强大的执行工具。Anaconda附带了一大批常用数据科学包,它附带了conda、Python和150多个科学包及其依赖项。因此可以用Anaconda立即开始处理数据。

1.2 python

文中以Python3.6为基础语言,它的语法简洁,明确,简单易懂。同时,还有非常强大的第三方库,基本上任何想通过计算机实现的功能,Python官方库里都有相应的模块进行支持,直接下载调用,给开发带来了极大的便利。

1.3 tensorflow框架

由于Tensorflow支持多种语言,可在CPU或GPU上使用。对于要求计算能力的神经网络来说,部署在GPU上可以大大加快训练速度。文中采用tensorflow1.14为框架,以python3.6作为基础语言搭建的神经网络。

2 基于深度学习的人行横道检测技术

基于深度学习的人行道检测,主要包括模型分类训练和数据测试两个阶段。分类训练包括数据集制作、特征提取和模型分类训练。数据测试主要包括窗口选择、特征提取和分类输出。具体流程如图1所示。

2.1 数据集的制作

数据集的制作采用了两种方式:使用python爬虫技术,从网上爬取正负样本和采用车载摄像头的角度分别拍摄有人行横道和没有人行横道的照片。正样本为各种情况下的人行横道,例如有人遮挡,光照不同,人行横道位于图片的不同位置等。负样本为无人行横道的道路图片和各种方格的图片。

将正负样本收集好后,调用tensorflow中的方法,将样本打上标签,正样本为0,负样本为1。统一制作成为tensorflow推荐的TFRecord文件。在读取数据时还可以加入shuffle将数据打乱读取。部分数据集如图2所示。

图1 基于深度学习的人行道检测流程

图2 部分数据集

2.2 神经网络

神经网络的结构如图3所示,由四个卷积层和两个用于分类的全连接层构成。卷积层的深度分别为6,16,64,128,前三层的卷积核大小设置为5*5,最后一层卷积的卷积核大小为3*3。第一个全连接的神经元个数为64,最终输出有0,1两类。

图3 神经网络结构

由于本项目的训练集图片大小是300*300,图片不算太大,故而放弃了7*7的卷积核,选用5*5和3*3的卷积核相结合的方式。激活函数选用ReLu线性激活函数,对于线性函数而言,ReLU的表达能力更强,尤其体现在深度网络中[4]。在卷积层之后的池化层使用max-pooling,即对邻域内特征点取最大,对纹理提取更好。为了防止过拟合的出现,训练时在全连接层加入了丢弃概率为0.5的Dropout。

在反向传播过程中的损失函数选用了交叉熵损失函数。交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异[3]。交叉熵的值越小,模型预测效果就越好。

损失函数计算完成后,将结果交给梯度下降算法,求梯度同时完成反向传播更新权值。梯度下降的方法则采用了tensorflow封装的优化算法,Adam优化算法。Adam优化算法利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率[5]。Tensorflow提供的tf.train.AdamOptimizer可控制学习速度,经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。

2.3 训练模型

整个模型的迭代次数设置为20000轮,网络的初始学习率设置为0.001,使用指数衰减的方式随着训练轮次的增加使得学习率不断减小。其优点是在迭代刚开始的时候学习率较大,使得模型可以快速收敛到最优解附近,同时随着迭代次数的增加,学习率减小可以让模型更加精确的寻找到最优解,可以避免学习率较大造成在最小值左右震荡。结果如图4。

图4 模型训练正确率与损失

3 人行横道检测结果分析

经过神经网络的训练之后,将在训练集上表现最好的模型保存下来,并调用该模型对测试集的图片进行预测,其正确率达到了95%以上。图5为不同视角和不同场景下(有人或车)检测到的结果。可见所设计的方法可以满足驾驶场景环境感知的需求,但是对于对多目标进行跟踪的计算量会随着环境复杂度的增加而增大,降低实时处理效率。

图5 实际测试案例

猜你喜欢

人行横道卷积神经网络
基于递归模糊神经网络的风电平滑控制策略
基于3D-Winograd的快速卷积算法设计及FPGA实现
“机动车礼让斑马线”,到底怎么“让”
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
基于Q-Learning算法和神经网络的飞艇控制
世界各地创意人行横道