张凯斐,王翠娥
(吕梁学院 计算机科学与技术系,山西 离石 033001)
计算机视觉中图像识别技术[1]的发展为移动设备的图像识别提供了便捷的通道。目前图像识别技术 结合卷积神经网络[2](ConvolutionalNeural Networks,CNN)在对车辆和行人[3]识别等方面的研究也越来越深入。文献[4]在探索计算机视觉基础上,探讨了车辆识别领域目前仍需解决可移动设备对车辆、行人识别的精确度和实时性等问题。并阐述了车辆识别技术应用于智能交通是未来进一步的研究热点。
关于对车辆、行人识别的相关研究,Davidson R Y[5]等人将改进的Faster R-CNN的方法应用到了车辆识别中,该方法提高了模型对目标的判别能力,提升了算法的检测精度。在文献[6]中基于DNN-LSTM的算法实现了对车辆前方行人的准确识别。Philip Geismann等人在文献[7]提出了一种两阶段识别行人视频序列的方法,在合理的运行条件下,仍能获得良好的识别性能。以上研究虽然在车辆及行人的识别上有了进步,但当同步到一些现实的场景中时,模型较大的网络已不能满足可移动设备的需求。所以研究小而高效的网络模型已成为趋势。在卷积神经网络中较常见的轻量级模型[8]有:Mobilenet、SqueezeNet等。对于Mobilenet网络[9]的应用与研究,文献[10]中作者针对MobileNet模型分类准确率较低的问题,提出一种基于局部感受野扩张的D-MobileNet模型。黄跃珍等人[11]使用了相关模块对MobileNet网络结构进行改进,提高车型识别精度。虽然这些改进都提高了模型识别的精确度,但都依然存在检测实时性较低的问题。
可移动网络模型针对车辆及行人识别的研究已经在精确度上具有很明显的优势,但是在过于追求精确度的情况下忽视了网络模型在速率上的提升。通过学习研究相关方法,本文基于MobileNet网络,对模型速率上的提升做了相关研究及改进,并通过实验结果表明,改进模型识别速率显著提升。这一改进对智能[12]车载识别系统、智能交通[13]和无人驾驶等方向的未来研究和发展都具有积极意义。
Andrew G.Howard等人于2017年提出MobileNet[14]模型。模型涉及深度可分离卷积,将标准的卷积分割成深度卷积(depthwise convolution)和逐点卷积(pointwise convolution)。深度可分离卷积的分解过程如图1所示:
其中(a)表示标准卷积滤波器,标准的可割成(b)和(c)两部分。(b)表示深度卷积过滤器。(c)表示1×1的卷积滤波器,即逐点卷积。M和N分别表示输出、出入的通道数。
图1 深度可分离卷积过程
图2 MobileNet网络卷积过程
卷积过程如图2,输入的特征映射F尺寸为(DF,DF,M),采用的标准卷积K(DK,DK,M,N),如图(a)所示,输出的特征映射G尺寸为(DG,DG,N),标准卷积计算过程如式(1)。
(1)
标准卷积对应计算量:DK·DK·M·N·DF·DF。将标准卷积(DK,DK,M,N)拆分为深度卷积和逐点卷积,深度卷积尺寸为(DK,DK,1,M),如图(b)所示,具有滤波作用,输出特征为(DG,DG,M)。逐点卷积负进行通道转换,尺寸为(1,1,M,N)如图(c)所示。得到最终输出(DG,DG,N)。
深度卷积的卷积计算过程如式(2):
(2)
DK·DK·M·DF·DF+M·N·DF·DF
(3)
网络模型的计算量变化由(4)式表达。
(4)
由此可见,对于MobileNet网络而言,这种分解方式能够有效的减少参数计算量,缩减模型大小。因此MobileNet卷积结构的这种优势在图像识别应用中较为流行[15]。
通过研究MobileNet网络结构的各层参数,对MobileNet模型网络模型中Con DW3×3、Conv3×3卷积层相关参数做L2正则化处理。L2正则化可以看做是对网络参数的约束或惩罚,将引导网络中的参数向规定的趋势优化。L2正则化也称为权重衰减,因为L2正则化会施加较大惩罚在稀疏的权重向量上,避免权重出现极值。加入正则化的权重的绝对值总体上是逐渐衰减,则模型的复杂度趋于简洁。
Mobilenet的网络结构如图3。
由图3可知depthwise convolution采用3×3卷积核进行卷积操作,而pointwise convolution则采用1×1卷积核进行卷积。在深入研究了MobileNet网络的压缩原理与思想之后,具体分析了其结构特点与参数分布特点。MobileNet网络参数[14]及各层计算量如表1所示。
图3 mobilenet网络结构
表1 MobileNet网络的计算与参数分布
由表1可知在MobileNet中1×1的卷积参与了90%以上的计算,相关参数占70%以上。
由于传统的Mobilenet模型对1×1的卷积层参数已具有较好优化,为提升模型的泛化能力,有效控制过拟合,同时达到提升速率的目的。改进模型重点对3×3的depthwise conv卷积层参数进行优化。
模型相关参数正则化算法如下:
(1)损失函数由式(5)定义:
(5)
(6)
(2)本文定义损失函数为平方损失函数由公式(7)表示:
(7)
(3)参数的正则化由式(8)定义:
(8)
(4)将正则化的参数代入到式(7)中,对网络层进行优化,正则化后的损失函数可由式(9)表示:
(9)
(5)对Con DW3×3、Conv3×3进行网络层优化,就是对网络层中对应的权值进行正则化。通过此方法使模型参数值较小,减少了参数量。进而1×1卷积对3×3网络层输出进行卷积计算时,采样的数量明显减少。并增加了3×3卷积层参数的计算量,降低了1×1卷积层的计算量,达到计算量均匀分布而提升网络模型速率的目的。正则化过程如下:
进行正则化后这一层的输出为:
(10)
在正则化过程中,只考虑权值,公式中简化了偏置。经深度卷积层进行L2正则化处理后的Dw层计算量为:Dk·Dk·(L2M)·Df·Df。改进模型参数的减少量由式(11)表达:
(11)
改进模型选取基于车载行车记录仪收集的图像数据集进行训练和预测。该模型训练的数据是经过预处理后的图像,对图像特征提取时,要求图片有合适的大小。实验选取50×50的图像集进行实验。
3.1.1 数据集划分
图4 实验流程图
车载图像数据集源于行车记录仪采集,共20 000张 50×50的图像,将相关数据集转化为TFrecord格式之后进行划分。选取15 000张图像作为改进模型的训练集,剩余5 000张图像作为测试集,流程如图4所示。
3.1.2 数据的读取及预处理
一个网络训练的结果受多因素影响,在训练相关改进模型之前对图像进行预处理[16]。预处理过程如下:
(1)通过tfrecord读取数据集以减少内存消耗,加速模型相关数据集读取。
(2)利用最大值法对图像数据集进行灰度化处理。灰度最大值法可由公式(12)表达:
Gray(i,j)=max{R(i,j),G(i,j),B(i,j)}
(12)
3.1.3 对灰度化的数据集进行图像增强
改进算法主要研究图像识别在速率上的提升,所以图像质量的好坏直接影响识别算法速率提升的效果,数据集图像中的类别较少,对图像数据及进行上述预处理过程之后,可减少数据集图像中的无关信息。图像预处理效果如图5所示。
图5 图像预处理效果图
改进模型初始权值设置为1,学习率设置为0.03,训练迭代次数设置为100 epoch,正则项系数λ的初始值设置为1。通过实验次数的增加根据实验情况可更改超参数的值。
图6 传统MobileNet网络模型实验结果与改进的网络实验结果对比图
设置改进模型的各类参数及训练步数,采用训练集对改进模型进行预训练。用训练好的改进模型对测试集中的数据进行测试,得出测试结果。
改进算法以识别速率作为模型性能评价指标进行了一系列的实验,得出了较为理想的实验结果。我们将实验结果和传统的MobileNet网络进行对比,实验结果表明,改进算法的识别速率有明显提升,速率对比如图6所示,准确率和召回率对比如图7、8所示。
由图7、8可见,传统模型识别准确率为73.2%,改进模型准确率为74.8%,准确率有所提高。改进算法较传统算法而言有明显优势。
图7 传统的MobileNet网络模型实验结果
图8 改进的MobileNet网络模型实验结果
3.3.1 相关算法对比
表2 不同网络实验结果
利用本文收集的实际数据集,我们将改进算法与常用的轻量级网络Squeezenet进行了实验,在计算量和速率两方面进行对比。结果如表2所示。
由表2可知,同数据集下进行模型测试,改进算法参数的计算量、识别速率均具有显著优势。
3.3.2 基于不同数据集的测试对比
为验证改进算法的合理性,我们将模型用于COCO(Common Objects in Context)数据集进行相关实验做对比,改进算法在本文的数据集和COCO数据集上的实验结果如表3所示。
由表3可知,改进算法模型在识别速率上比COCO数据集要高14%左右,说明改进算法具有较好的泛化能力。
3.3.3 不同大小图像对测试结果的影响
考虑到在实际的实验过程中可能会遇到图像大小不一的问题,实验将三种不同尺寸图像输入模型,来检验图像的大小是否会影响到模型的识别速率。实验结果如表4所示。
表3 不同数据集测试结果
表4 图像大小对网络结果的影响对比表
实验结果表明输入图像的尺寸虽对识别率存在一定影响,但改进算法检测实时性保持良好。
本文提出一种MobileNet网络模型的车载图像识别改进算法。对模型网络结构中Con DW3×3、Conv3×3卷积层相关参数做L2正则化处理,优化了相关参数以提升模型效率。通过实验验证,改进后的算法模型在本文数据集中的识别速率可以达到76%左右。与传统的Mobilenet网络模型相比,改进模型的识别速度更快。改进算法对于智能车载识别系统和嵌入式的小模型网络研究具有重要意义。