基于轻量型卷积神经网络的交通标志识别方法①

2020-03-23 06:05刘志刚
计算机系统应用 2020年2期
关键词:分类器特征提取轻量化

程 越, 刘志刚

(东北石油大学 计算机与信息技术学院, 大庆 163318)

随着城市现代化建设和人工智能技术的崛起, 现代城市智能化交通系统得到了进一步发展.道路交通标志识别技术作为无人驾驶和智能辅助驾驶系统的重要组成部分, 在智能化交通系统的建设中有重要的战略意义[1], 如何实时高效地完成交通标志识别任务成为国内外研究的热点.

对于交通标志的识别方法可分为两类, 基于手工选取典型特征的方法和深度学习中的卷积神经网络方法CNN[2].基于手工典型特征的方法如方向梯度直方图HOG[3]、尺度不变特征变换SIFT[4], 局部二值模式LBP[5]等, 这类方法基于人工设计获取特征, 数据预处理工作繁琐, 提取的特征局限性大.而CNN 无需对图像做复杂预处理, 直接以像素作为输入, 在输入到识别的过程中提取图像特征, 具有很强的自适应性和学习能力, 成为了图像识别领域的核心模型.

在ILSVRC 2012 竞赛中AlexNet[6]取得了冠军, 之后GoogleNet[7], VGGNet[8], ResNet[9]等模型又被相继提出, CNN 在图像分类任务上的精度不断提高.然而,现有CNN 应用于嵌入式交通标志识别设备有以下不足: (1)模型内存占用高, 无法嵌入交通标志识别设备.以AlexNet 为例, 其参数一共6000 万之多, 在Imagenet-1000 上的训练模型达到200 MB, 而VGG16 模型参数更是达到了1.38 亿.(2)模型计算开销大, 小型嵌入式设备无法支持运算.现有CNN 模型在训练和使用中需要在高性能设备上进行, 如高性能CPU 和GPU 等, 这些设备往往体积大、价格高、计算开销大, 而交通标志识别设备的功耗和硬件性能较低, 无法支持计算.(3)现有CNN 模型的全连接层参数训练慢, 无法满足识别设备的实时性.

针对以上问题, 本文引入两种轻量化卷积方法: 深度可分离卷积[10]和混洗分组卷积[11]并与极限学习机[12]相结合, 提出两种轻量型卷积神经网络模型: DSCELM 模型和SGC-ELM 模型.新模型首先利用轻量化卷积方法构建卷积层, 减少卷积层的参数使模型轻量化, 然后以ELM 作为分类器, 接受经卷积层提取的特征进行分类.设计实验, 在德国交通标志数据集[13]和比利时交通标志数据集[14]上, 通过VGG16 模型、基于深度分离卷积的MobileNet 模型、基于混洗分组卷积的ShuffleNet 模型与新模型DSC-ELM 和SGC-ELM 进行对比实验.实验结果表明: 新模型在识别精度上高于其他模型, 并且训练速度比MobileNet 和Shuffle-Net 模型更快.新模型有着模型轻量化、可嵌入性高、训练速度快以及识别精度高的优点, 使得新模型在分类识别交通标志的总体性能较现有CNN 模型更加优秀.

1 轻量型卷积神经网络

1.1 深度可分离卷积

深度可分离卷积(Depthwise Separable Convolution, DSC)的创新点在于将卷积操作分为两部分: 深度卷积(depthwise convolution)和1×1 卷积(pointwise convolution).如图1 所示, 深度可分离卷积先保持通道间的分离, 进行深度卷积, 然后再进行1×1 卷积.

图1 卷积核

普通卷积与深度可分离卷积的参数对比: 设M 为通道数, 卷积核的高度为 DK, 输入的宽和高为 DF, 卷积核的个数为N.普通卷积的计算量为:

深度可分离卷积的计算量为:

深度可分离卷积与普通卷积计算量之比为:

由此可得, 使用深度可分离卷积代替普通卷积来构建模型可使模型轻量化.标准卷积核和深度可分离卷积核如图1 所示.

1.2 混洗分组卷积

混洗分组卷积(Shuffled Grouped Convolution,SGC)是将分组卷积法和通道混洗机制结合起来.分组卷积法如图2 所示, 将卷积核拆分为两组进行分组卷积, 每组包含 Dout/2个卷积核, 分别与对应部分的输入进行卷积.每组卷积核卷积完成后都会得到 Dout/2通道的输出, 然后将通道堆叠最终得到所需的 Dout通道输出.此时卷积的计算量为:

图2 分组卷积法

相比普通卷积的计算量减少一半, 当分组数增加时, 模型的参数也就随之减少.

分组卷积虽然可以减少模型参数, 但是每组卷积核仅对输入的固定部分向后传递的信息进行处理, 这样就局限了卷积核学习的特征, 阻碍了训练过程中通道组之间的信息流动, 减弱了特征表示.解决以上问题的方法就是在分组卷积的基础上引入通道混洗机制.

通道混洗机制如图3 所示, 将卷积核分为三组的分组卷积, 在执行一次卷积操作后, 将得到的特征拆分为若干组, 混洗后再输入下一次分组卷积.利用分组卷积法和通道混洗机制相结合的方法构建卷积层, 可以减少模型参数量, 加强通道组间的信息流通, 增强特征表示能力.

图3 通道混洗机制

2 极限学习机

现有CNN 网络利用全连接层进行分类, 需要依靠梯度下降训练算法更新参数, 导致模型学习慢, 而且泛化能力较差, 易陷入局部最小[15].极限学习机(Extreme Learning Machines, ELM)是由南洋理工大学黄广斌教授提出的求解单隐层前馈神经网络的学习算法.极限学习机只需要人为确定隐含层中神经元的个数, 输入层到隐含层的权重为一次随机确定并且在算法执行过程中无需再调整, 隐含层到输出层的权重则是通过求广义逆的方法得到, 无需经过迭代.由于极限学习机独特的求参机制, 将CNN 全连接层替换为ELM 可以加快模型训练速度, 提高泛化性.

极限学习机结构如图4 所示.假设有 N个任意样本(Xi,ti), 其中:

图4 极限学习机

具有L 个隐层节点的单隐层神经网络可以表示为:

其中, g(x) 为激活函数, Wi=[wi,1,wi,2,···,wi,n]T为输入权重, βi为输出权重, bi是 第i 个隐层单元的偏置,Wi·Xj是 Wi和 Xj的内积, o i=[oi1,oi2,···,oim]T表示网络输出值.ELM 成本函数 E为:

学习目标是使得 E 最小, 即存在 βi, Wi和 bi使得:

矩阵表示为:

其中, H 为神经网络隐层节点的输出矩阵, β为输出权重, T 为期望输出.

式中, W 为输入层到隐含层的权值; b 为隐含层偏置;g()为激活函数.极限学习机的思想为: 随机确定 Wi和bi进 而可得到输出矩阵H, 再通过式(6)求得输出权重 β.

3 轻量级卷积神经网络与ELM 相结合

现有CNN 模型内存占用高、计算开销大、训练速度慢, 无法适用于移动交通标志识别设备.模型采用轻量化卷积代替普通卷积的策略, 可实现在牺牲合理精度的基础上极大减少卷积层的参数, 提升训练速度.然而, 模型的全连接层在训练过程中需要耗费大量时间确定自身参数, 所以要想使模型训练更加快速, 除修改卷积层外, 还应对分类器进行改进.ELM 有着独特的求参机制, 将其作为分类器有训练速度快、泛化性强的优点.但ELM 对输入特征的质量有较高的要求.

根据以上情况, 将轻量型卷积神经网络与ELM 结合起来可以充分发挥各自的优势: 使用轻量化卷积方法构建卷积层可使模型轻量化, 并且提取的特征可靠,满足ELM 对特征的高要求[16]; ELM 分类器独特的求参机制, 使得模型分类更加快速准确.

3.1 DSC-ELM 模型

DSC-ELM (Depthwise Separable Convolution-ELM)模型结构可分为两部分:

(1)特征提取部分: 特征提取部分采用深度可分离卷积构建卷积层.此部分包含两个普通3×3 卷积和17 个bottleneck.每个bottleneck 包含以下3 个操作:首先经过pointwise convolution 扩展通道, 扩展倍数除第一个bottleneck 为1 倍外均为6 倍; 再进行depthwise convolution; 最后再利用pointwise convolution 压缩通道.这种“先扩张, 后压缩”的设计可以通过将通道数扩大, 从中间层获得更多特征.图像输入模型后首先进行3×3 卷积, 然后将得到的特征图送入17 个bottleneck中, 经过17 个bottleneck 后, 再进行一次3×3 卷积, 特征提取部分结束.表1 为特征提取部分结构.

表1 DSC-ELM 特征提取部分结构

(2)分类部分: 模型使用ELM 分类器替换卷积神经网络中的全连接层.将特征提取部分提取的特征展平后作为ELM 分类器的输入, 然后进行分类.

近年来,各高校投入了大量经费用于学科技术建设和实验室建设改造,为跟上时代步伐,对实验仪器进行了大量更新,各实验室都添置了大量的新型仪器,学校的综合实力得到了提高,实验教学的设施条件得到了明显的改善。但同时,各实验室也积累了大量闲置和淘汰的仪器设备;实验室的仪器、设备,必然要报废、淘汰、更新,这是无可非议的。但如何处理这些数额庞大的淘汰仪器,更科学、更合理地利用资源,使之发挥更多作用,是值得思考的。若能变“废”为“宝”,有效利用,不仅能为学校节约可观的资源,还可另辟“蹊径”,打开一条锻炼学生动手能力、拓展思维空间之路。

DSC-ELM 模型总体结构如图5 所示.

图5 DSC-ELM 模型结构

3.2 SGC-ELM 模型

SGC-ELM (Shuffled Grouped Convolution-ELM)模型结构可分为两部分:

(1)特征提取部分: 特征提取部分采用混洗分组卷积构建卷积层.此部分包括: 1 个3×3 卷积、1 个3×3 的最大池化、3 个Stage 以及GlobalPool.每个Stage包含若干个ShuffleNet unit, ShuffleNet unit 结构如图6所示.

图像输入模型后先经过3×3 卷积和3×3 的最大池化操作, 然后将特征送入3 个Stage.经过3 个Stage后, 再进行1 次GlobalPool 操作, 特征提取部分结束.表2 为特征提取部分结构.

(2)分类部分: 将特征提取部分提取的特征展平后输入ELM 进行分类.

SGC-ELM 模型总体结构如图7 所示.

3.3 新模型的训练

(1)首先对模型进行预训练.预训练模型的目的是保证网络卷积层提取的特征是有效的, 若不进行预训练, 模型提取的特征质量低, 影响最终的分类结果;

(2)预训练结束后, 将图像输入模型提取特征;

(3)分类器训练.将提取的特征展平后输入ELM分类器, 通过公式 β= H+T求得极限学习机隐含层到输出层的权值参数, 模型训练结束.

图6 ShuffleNet unit 结构

表2 SGC-ELM 特征提取部分结构

图7 SGC-ELM 模型结构

4 实验与分析

4.1 数据集

4.2 实验设计

所有实验的硬件环境为CPU: Intel(R) Core(TM)i5-8300H 2.30 GHz 8 G.GPU: NVIDIA GeForce GTX 1050 Ti 4G.网络模型: 实验使用预训练VGG16、预训练MobileNet、预训练ShuffleNet 与新模型DSC-ELM和SGC-ELM 作对比实验.

(1)准备数据集, 并对数据集进行预处理.将数据集图片转换为jpg 格式, 每张图片归一化为48×48, 其目的是为了节省内存开销, 加快训练速度.

(2)准备模型, 并加载预训练参数: VGG16 加载ImageNet 数据集预训练参数; MobileNet 加载Cifa100数据集预训练参数; ShuffleNet 加载ImageNet 数据集预训练参数; 新模型DSC-ELM 和SGC-ELM 的特征提取部分分别加载Cifa100 和ImageNet 数据集预训练参数.加载预训练参数的目的是使ELM 接收的特征可靠, 从而达到更精确的分类结果.

(3)设置网络超参数: 迭代次数在GTSRB 数据集上设为10, 在Belgium TSC 数据集上设为50; 批处理大小设为32; 学习率设为0.001, 并在每次循环后对学习率进行衰减, 衰减率为0.98.

(4)如图8 所示, 将数据集送入模型进行训练和测试.

图8 模型的训练和测试

(5)从精度、训练时间、内存占用对比5 种模型的实验结果.

4.3 实验结果与对比分析

5 种网络模型在GTSRB 和Belgium TSC 数据集上的实验结果如表3 所示.

表3 实验结果

(1)测试精度对比分析.5 种模型的测试精度从高到低依次为DSC-ELM、SGC-ELM、VGG16、MobileNet、ShuffleNet.MobileNet 和ShuffleNet 精度低于VGG16,原因是采用了轻量化卷积方法构建卷积层, 卷积层参数减少, 导致损失一定的精度.DSC-ELM 与SGCELM 模型精度均达到98%以上, 高于其他模型, 其原因在于新模型采用ELM 作为分类器, ELM 泛化性强,在接受到良好特征后能达到很好的分类效果, 而其他模型采用梯度下降算法更新参数, 易陷入局部极值, 损失精度.

(2)训练时间对比分析.从表3 看出, 5 种模型训练速度从快到慢依次为: SGC-ELM、DSC-ELM、ShuffleNet、MobileNet、VGG16.VGG16 模型参数庞大, 导致计算缓慢, 在5 种模型中耗时最长.ShuffleNet、MobileNet 模型参数量少, 训练速度较快, 而ShuffleNet相较于MobileNet 少了1×1 卷积, 速度快于MobileNet.SGC-ELM 和DSC-ELM 在训练速度上明显优于其他模型, 原因在模型的ELM 分类器可通过广义逆一次求得权值参数, 而其他模型在训练时需要计算梯度信息,并通过迭代进行调整, 耗费时间较长.

(3)内存占用对比分析: 从表3 看出, 5 种模型内存占用从高到低依次为: VGG16、MobileNet、ShuffleNet、DSC-ELM、SGC-ELM.VGG16 模型参数庞大, 导致内存占用高.MobileNet 和ShuffleNet 采用轻量化卷积构建卷积层, 模型参数量较少, 内存占用较VGG16 低,而ShuffleNet 模型结构中采用Shuffle 替换1×1 卷积,相比MobileNet 减少大量权值参数.DSC-ELM、SGCELM 模型无全连接层, 而是采用单隐层的ELM 作为分类器, 相比其他模型内存占用低, SGC-ELM 采用ShuffleNet unit 构成, 模型参数量小于DSC-ELM, 内存占用较DSC-ELM 低.

5 结论

现有CNN 为了追求高的分类精度, 模型深度加深, 复杂度提高, 导致模型内存占用高, 训练速度慢.交通标志识别设备的功耗和硬件性能较低, 对模型的速度和精度要求较高, 使得现有CNN 模型无法应用于这种设备.针对以上问题, 本文通过引入两种轻量化卷积方法并与极限学习机相结合, 提出两种轻量型卷积神经网络模型: DSC-ELM 模型和SGC-ELM 模型.新模型通过采用轻量化卷积方法构建卷积层进行特征提取,使模型轻量化, 并以ELM 作为分类器, 接受提取的特征进行分类, 解决了现有CNN 全连接层参数训练速度慢的问题.通过实验验证, 新模型相较于对比模型训练速度快, 分类精度高, 内存占用低, 可以很好的应用于嵌入式交通标志识别设备.

猜你喜欢
分类器特征提取轻量化
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
基于ABAQUS的某轻卡车蓄电池支架轻量化
中低速磁浮直线感应电机轻量化研究
重卡车架轻量化设计
学贯中西(6):阐述ML分类器的工作流程
基于朴素Bayes组合的简易集成分类器①
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
一种自适应子融合集成多分类器方法