基于树莓派平台的道路雾气和积雪检测系统设计
2022-10-31杨肖刘淼
杨肖,刘淼
(201620 上海市 上海工程技术大学 机械与汽车工程学院)
0 引言
每年由于雾气和道路积雪引发的交通安全事故不胜枚举,驾驶员通过道路广播获取天气信息,如遇恶劣天气可提前做出反应,但在一些没有道路广播的地方则会比较被动。本文提出了一种基于树莓派平台的实时雾气和路面积雪检测系统,并基于卷积神经网络(CNN)[1]的图像识别技术进行了检测,即使在低功耗、低规格的情况,系统仍可以进行实时检测。本文比较并分析了4 个卷积神经网络模型(MobileNetV1[2],MobileNetV2[3],ResNet50[4],Inception V3[5])在工作站和树莓派平台上的检测准确性以及工作速度,表明MobileNet深度学习算法在树莓派平台上的工作速度要比ResNet50 和Inception V3 快,更适用于树莓派。
1 硬件设备及软件支持
1.1 硬件设备
(1)树莓派4B 开发板
树莓派开发板是一款基于ARM 的微型电脑主板[6],外观如图1 所示。以SD/MicroSD 卡为内存硬盘,卡片主板周围有1/2/4 个USB 接口和1 个以太网接口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI 高清视频输出接口。以上部件全部整合在仅比信用卡稍大的主板上,具备所有PC 的基本功能,只需接通电视机和键盘,就能执行如电子表格、文字处理、玩游戏、播放高清视频等功能,也是嵌入式深度学习的理想平台。本文在树莓派4B 上编写和执行代码。
图1 树莓派开发板Fig.1 Raspberry Pi Development Boards
(2)TF 卡
树莓派不自带硬盘,所以应自配一个TF 卡作为树莓派的硬盘,推荐使用16 G 以上容量的TF 卡。
(3)摄像头
系统需要一个能够采集路面信息的设备,如图2 所示。此设备具有1 000 万像素的分辨率,视频清晰度较好,可通过USB 连接到树莓派。
图2 摄像头Fig.2 Camera
1.2 软件支持
软件支持可分为树莓派操作系统安装和编程环境搭建。
1.2.1 树莓派操作系统
TF 卡作为树莓派的系统硬盘,树莓派可选操作系统很多,本文选用的是树莓派官方操作系统Raspberry Pi OS,其优点是安全可靠。
1.2.2 编程环境搭建
本文使用Python 作为编程语言[7],Python 普遍使用于深度学习领域,其优点是拥有非常完善的基础代码库和大量的第三方库,如TensorFlow,OpenCV 和Numpy 等,第三方库可大大减少编程工作量。Python 的不足之处一是运行速度慢,二是代码不能加密。
2 算法设计
2.1 MobileNet
现有CNN 结构已从AlexNet[8]发展到InceptionNet,ResNet 等,并且结构越来越深,参数数量也越来越多,如深度残差网络(ResNet)的层数已经多达152 层。此类网络适用于高性能服务器或工作站,但不适用于低端、低功耗的嵌入式和移动设备,于是就出现了MobileNet 这种更轻量级、更快速的CNN 网络。
MobileNetV1 的核心思想是用深度级可分离卷积(Depthwise separable convolution)[9]来代替标准卷积核,Depthwise separable convolution 的基本结构如图3 所示。
图3 标准卷积和深度级可分离卷积结构图Fig.3 Standard convolution and depthwise separable convolution structure diagram
深度级可分离卷积把标准卷积分解为一个深度卷积(Depthwise convolution)和一个 1×1 的点式卷积(Pointwise convolution),分别起滤波和线性组合的作用,同时减少参数量和计算量。
深度级可分离卷积在计算量上与标准卷积的差别可通过式(1)—式(8)推导出来。
为分析方便假设输入特征图宽度和长度相同,特征图大小为
式中:Qin——输入特征图大小;Hin——输入特征图的高度;H'in——输入特征图的宽度,且与Hin大小相同;M——输入特征图通道数。
假设输出特征图宽度和高度相同,且与输入特征图的宽高相同,则输出特征图大小为
式中:Qout——输出特征图大小;Hout——输出特征图高度;H'out——输出特征图宽度,且与Hout大小相同;N——输出特征图通道数。
那么,对于标准卷积核k×k,其计算量为
式中:W1——标准卷积核计算量。
对于深度卷积,其计算量为
式中:Wd——深层卷积计算量。
对于点式卷积,其计算量为
式中:Wp——点式卷积计算量。
故深度级可分离卷积总计算量为
式中:W2——深度级可分离卷积总计算量。
深度级可分离卷积和标准卷积计算量比值为
式中:V——深度级可分离卷积和标准卷积计算量比值。
式(7)可化简为
2.2 算法框架设计
用于检测雾气和路面积雪的算法结构如图4所示。首先,使用摄像头采集道路图像,将图像输入树莓派,然后对图像进行预处理,再将预处理后的图像分别作为雾气和积雪数据训练的CNN 结构的输入。CNN 输出最终通过二元分类器(Binary Classifier)对雾气和积雪进行分类,该过程通过树莓派平台完成。最后将检测结果发送到服务器。
图4 算法结构图Fig.4 Algorithm structure diagram
2.3 图像预处理
由于拍摄设备在采集图像过程中受工作环境、电子元器件和电路结构等影响,会引入各种噪声。在图像信号传输过程中,由于传输介质和记录设备等的不完善也会产生图像噪声。图像噪声会干扰图片原本携带的信息,进而影响算法的准确性,通过图像预处理来消除无关信息,改善图像效果,突出图像特征,便于计算机进行识别和分析。根据图像处理所在空间的不同,可以分为基于空间域的增强方法和基于频率域的增强方法。空间域即图像本身,这种方法直接对图像的像素进行处理;频率域则是以修改图像的傅里叶变换为基础。针对空间域和频率,有多种方法实现图像预处理[10]。
基于空间域有均值滤波和中值滤波等方法,均值滤波包括邻域平均法和加权平均法等。基于频域有低通滤波和高通滤波,低通滤波包括梯形低通滤波、指数低通滤波和理想低通滤波等[11];高通滤波包括梯形高通滤波、指数高通滤波和理想高通滤波等。
3 模型训练及对比
3.1 数据准备
在模型训练和测试中,使用了40 000 张有雾气图像和正常图像,以及40 000 张积雪图像和正常图像,其中36 000 张作为训练集,4 000 张用来测试训练模型。
3.2 训练模型
用于训练的所有4 个模型均使用原始模型进行了训练,而没有进行任何网络修改。使用4 个NVIDIA GeForce GTX1080Ti 作为训练环境,设置初始学习率为0.001。在训练过程中,具有学习率降低和提前终止功能,如果在训练过程中的5 个训练轮数内验证损失没有改善,则学习率降低到1/5。测试训练好的模型的性能,测试结果见表1。
表1 各个模型的准确率Tab.1 Accuracy of each model
测试使用上述4 000 张测试集图片,在工作站上进行。从表1 中数据可知所有4 个模型的准确度均达到97%以上,说明各个模型性能较好,都可以较好地完成图像识别工作。
3.3 处理速度对比
将1 000 张道路图像分别在工作站和树莓派中进行道路检测,得出每个模型处理1 000 张图像所需时间,并计算出每秒处理图像的平均张数,定义为FPS,数据见表2。
表2 各个模型在工作站和树莓派上的运行速度Tab.2 Running speed of each model on workstation and Raspberry Pi
可知,在工作站上,与MobileNetV1 的最短时间74.43 s 和Inception V3 的最长时间82.75 s 相差为8.32 s,但树莓派上的结果显示出很大差异,Inception V3 使用了2 246.71 s,对于MobileNetV1和MobileNetV2,所需的时间分别为637.67 s 和739.93 s,而FPS 的结果为1.57、1.35。这说明在低规格树莓派平台中,像InceptionV3 这种复杂的网络并不适用,而MobileNet 这种轻量模型较适用。
4 结论
本文设计的基于卷积神经网路地道路雾气和路面积雪的检测系统,对雾气和路面积雪的检测准确率为97%以上。通过将MobileNetV1,MobileNetV2,ResNet50,Inception V3模型进行对比,包括图像识别准确率对比和在工作站及树莓派上的处理速度对比,证明MobileNet 这种轻量模型更适用于本系统。