一种轻量化SSD的交通标志检测算法

未命名 07-14 阅读:90 评论:0

一种轻量化ssd的交通标志检测算法
技术领域
1.本发明涉及一种轻量化ssd的交通标志检测算法,属于智能交通技术领域。


背景技术:

2.交通标志检测作为自动驾驶和智能交通系统的重要组成部分,是计算机视觉识别领域的研究热点。交通标志的高精度和高效率检测是实现智能汽车安全行驶的重要保障。随着深度学习的兴起,交通标志智能检测得到了极大发展。然而,交通场景复杂多变、安装在汽车上的嵌入式终端设备资源受限,对交通标志检测技术提出了极高要求。
3.近年来兴起的深度学习技术,助推了目标检测领域的突破性发展,但目前主要使用的检测算法存在要么交通标志检测精度低、要么虽然检测精度高但检测速度慢的缺陷,不能较好的适用于嵌入式终端设备,无法满足自动驾驶对于交通标志信息高质量识别的要求。


技术实现要素:

4.针对上述现有技术存在的问题,本发明提供一种轻量化ssd的交通标志检测算法,该算法能够在保证交通标志检测精度的同时提高检测效率,较好地适用于嵌入式终端设备,满足自动驾驶对于交通标志信息高质量识别的要求。
5.为了实现上述目的,本发明提供一种轻量化ssd的交通标志检测算法,包括以下步骤:
6.(1)基于ssd网络结构,采用mobilenetv3_large网络替代ssd网络中的vgg16,并作为基础特征提取网络,形成mv3-ssd网络结构;
7.(2)利用添加se模块的逆残差结构bneck替换对应的标准卷积,作为目标检测的输出特征层;
8.(3)使用经优化后的先验框进行预测,通过非极大值抑制算法得到交通标志的位置和类别。
9.进一步地,所述的mv3-ssd网络由多个bneck、激活层和卷积层组成;部分bneck引入se注意力模块,引入过程为:首先,经过conv1
×
1和dw conv3
×
3,然后,一部分直接连接到输出,一部分经过se注意力模块,最后,将两部分结果相加,并经过尺度化和conv1
×
1激活函数层,得到该模块的最终结果。
10.进一步地,所述的先验框优化,具体为优化mv3-ssd算法中先验框的尺度大小和宽高比,步骤为:
11.①
根据特征图生成先验框的尺寸遵循线性递增规则,即随着特征图尺寸的减小,先验框尺寸线性增加,对于第k个特征图,先验框尺寸计算公式为:
[0012][0013]
其中,s
min
和s
max
分别为最低和最高尺寸,ssd算法中s
min
=0.2和s
max
=0.9;m表示特
征图层数,m=5;k代表第二层到第六层的特征层,分别为1至5的正整数;
[0014]

根据中国交通标志检测数据集中交通标志目标的尺寸分布情况,设置s
min
=0.1,s
max
=0.8,缩小各层特征层先验框的尺寸大小,提升匹配交通标志目标标注框的能力;
[0015]

优化先验框生成方式后,第一层到第六层的sk值分别调整为:0.05、0.1、0.27、0.45、0.62、0.8;根据320
×
320的输入图像尺寸,第一层到第六层特征层中最小的正方形先验框的尺寸大小分别调整为16,32,86,144,198,256;
[0016]
第二、三、四层特征层的宽高比设置为αr∈{1:1,2:1,3:1,1:2,1:3},第一、五、六层特征层只有四个不同大小的先验框,设有长宽比分别为1:3和3:1的两个矩形先验框;每层先验框的宽度和高度计算公式分别为:
[0017][0018][0019]
当αr取1:1时,正方形的边长为:
[0020][0021]
式中,sk表示当前特征层中最小正方形边长的先验框尺寸,s
k+1
表示后一层特征层的最小正方形边长的先验框尺寸。
[0022]
本发明通过采用轻量化的mobilenetv3_large作为基础特征提取网络替代ssd中的vgg16网络,减少网络参数,提升了交通标志的实时检测效率;利用添加se模块的逆残差结构bneck替换对应的标准卷积,增强了低层特征层的语义信息,结合特定数据集中目标尺寸大小的分布情况,重新设置了预设先验框的尺寸大小,提升模型对特定数据集的检测能力,弥补了轻量化网络检测精度下降的问题;本发明在保证对于交通标志检测精度的同时,大大提高了检测效率,较好地适用于嵌入式终端设备,满足了自动驾驶对于交通标志信息高质量识别的要求。
附图说明
[0023]
图1是本发明添加se注意力的逆残差模块示意图;
[0024]
图2是cctsdb交通标志尺寸与对应数目统计图;
[0025]
图3是本发明的mv3-ssd网络结构示意图;
[0026]
图4是本发明se注意力模块与bneck的结合流程图;
[0027]
图5是ssd算法的ap值统计图;
[0028]
图6是movbilenet-ssd算法的ap值统计图;
[0029]
图7是mv3-ssd算法的ap值统计图;
[0030]
图8是三种算法对指示标志识别的对比曲线图;
[0031]
图9是三种算法对警示标志识别的对比曲线图;
[0032]
图10是三种算法对禁止标志识别的对比曲线图;
[0033]
图11是本发明实施例中的原图;
[0034]
图12是ssd算法对图11的识别效果图;
[0035]
图13是movbilenet-ssd算法对图11的识别效果图;
[0036]
图14是mv3-ssd算法对图11的识别效果图。
具体实施方式
[0037]
下面结合附图对本发明作进一步说明。
[0038]
一种轻量化ssd的交通标志检测算法,包括以下步骤:
[0039]
(1)基于ssd网络结构,采用mobilenetv3_large网络替代ssd网络中的vgg16,并作为基础特征提取网络,形成mv3-ssd网络结构;
[0040]
(2)利用添加se模块的逆残差结构bneck替换对应的标准卷积,作为目标检测的输出特征层;
[0041]
(3)使用经优化后的先验框进行预测,通过非极大值抑制算法得到交通标志的位置和类别。
[0042]
所述的mv3-ssd网络由多个bneck、激活层和卷积层组成;为了使bneck结构提升网络结构的深度,增强网络的特征提取能力,防止发生梯度爆炸现象,部分bneck引入se注意力模块,引入过程为:首先,经过conv1
×
1和dw conv3
×
3,然后,一部分直接连接到输出,一部分经过se注意力模块,最后,将两部分结果相加,并经过尺度化和conv1
×
1激活函数层,得到该模块的最终结果。
[0043]
为提高检测交通标志的精度,需要优化mv3-ssd算法中先验框的尺度大小、宽高比,具体步骤为:
[0044]

根据特征图生成先验框的尺寸遵循线性递增规则,即随着特征图尺寸的减小,先验框尺寸线性增加,对于第k个特征图,先验框尺寸计算公式为:
[0045][0046]
其中,s
min
和s
max
分别为最低和最高尺寸,ssd算法中s
min
=0.2和s
max
=0.9;m表示特征图层数,m=5;k代表第二层到第六层的特征层,分别为1至5的正整数;
[0047]

根据中国交通标志检测数据集中交通标志目标的尺寸分布情况,设置s
min
=0.1,s
max
=0.8,缩小各层特征层先验框的尺寸大小,提升匹配交通标志目标标注框的能力;
[0048]

优化先验框生成方式后,第一层到第六层的sk值分别调整为:0.05、0.1、0.27、0.45、0.62、0.8;根据320
×
320的输入图像尺寸,第一层到第六层特征层中最小的正方形先验框的尺寸大小分别调整为16,32,86,144,198,256;
[0049]
第二、三、四层特征层的宽高比设置为αr∈{1:1,2:1,3:1,1:2,1:3},第一、五、六层特征层只有四个不同大小的先验框,设有长宽比分别为1:3和3:1的两个矩形先验框;每层先验框的宽度和高度计算公式分别为:
[0050][0051][0052]
当αr取1:1时,正方形的边长为:
[0053][0054]
式中,sk表示当前特征层中最小正方形边长的先验框尺寸,s
k+1
表示后一层特征层的最小正方形边长的先验框尺寸。
[0055]
实施例:
[0056]
1.关于ssd网络和mobilenetv3网络:
[0057]
ssd网络结构主要由两部分组成:一是前端基础网络vgg16,二是级联的卷积神经网络。ssd网络选取的多尺度特征层为:conv4_3(38
×
38
×
512)层、conv7(19
×
19
×
1024)层、conv8_2(10
×
10
×
512)层、conv9_2(5
×5×
256)层、conv10_2(3
×3×
256)层、conv11_2(1
×1×
256)层。ssd网络采用特征金字塔的方式,检测每次卷积得到的不同尺度的特征图,生成先验框。不同尺寸特征图的先验框如表1所示:
[0058]
表1不同尺寸特征图的先验框
[0059][0060]
mobilenetv3网络,首先基于rnn的控制器和分级的搜索空间,构建全局网络结构,利用netadapt算法优化每层的核数量;其次引入se注意力结构,通过学习自动获取每个特征通道的重要程度,提升有用的特征并抑制对当前任务用处不大的特征,如图1所示;最后提出h-swish激活函数,避免损失数值精度,提高运行速度,h-swish激活函数为:
[0061][0062]
mobilenetv3网络结构分为large和small两种版本,分别适用于不同资源要求。两者区别在于网络层数和通道数,图像尺寸均为112、56、28、14、7。mobilenetv3_large共19层网络,包括标准卷积、逆残差结构、添加注意力机制的逆残差结构及池化等,检测精度更高。mobilenetv3_large网络参数如表2所示:
[0063]
表2mobilenetv3_large网络参数
[0064][0065]
表2中,operator表示对图像进行的操作,conv2d为卷积层,bneck是具有线性瓶颈的逆残差结构,结合卷积、批量归一化、激活函数等操作;feature map size表示输入到网络中的图像尺寸,即特征层尺寸;non-linear type表示非线性激活函数类型;#out表示处理后得到的输出通道数目;se表示该层是否使用注意力模块,表示未添加,√表示已添加;stride代表步长。
[0066]
2.交通标志数据集分析:
[0067]
中国交通标志检测数据集(cctsdb)是一个具有多个样本和属性类别的交通标志数据集。该数据集共有15724张图片,20841个交通标志目标,分为指示、警示和禁止三类标志。大部分交通标志的尺寸分布于25个像素到75个像素之间,为小交通标志。交通标志尺寸与对应数目的统计结果如图2所示。
[0068]
3.mv3-ssd网络结构:
[0069]
mv3-ssd(mobilenetv3_large-ssd)的交通标志检测算法采用mobilenetv3_large网络替代vgg16网络;利用添加se模块的逆残差结构bneck替换对应的标准卷积,作为目标检测的输出特征层;网络输入由原300
×
300
×
3改为320
×
320
×
3,通过增加输入特征图尺度提高网络的预测精度。网络输出的6个不同特征图尺度分别为:20
×
20、10
×
10、5
×
5、3
×
3、2
×
2和1
×
1。其中,20
×
20、10
×
10的高分辨率特征图用于检测较小目标,5
×
5、3
×
3和1
×
1的低分辨率特征图用于检测较大尺寸的目标,最后经过检测框进行预测,通过非极大值抑制算法得到交通标志的位置和类别;mv3-ssd网络结构如图3所示;
[0070]
mv3-ssd网络由多个bneck、激活层和卷积层组成。部分bneck引入se注意力模块,
首先,经过conv1
×
1(大小为1
×
1的普通卷积)和dw conv3
×
3(3
×
3深度卷积);然后,一部分直接连接到输出,一部分经过se注意力模块;最后,将两部分结果相加,并经过尺度化和conv1
×
1激活函数层,得到该模块的最终结果。bneck能够结构提升网络结构的深度,增强网络的特征提取能力,防止发生梯度爆炸现象。bneck添加se模块的过程如图4所示,mv3-ssd网络参数如表3所示:
[0071]
表3mv3-ssd网络参数
[0072][0073]
[0074]
4.先验框优化:
[0075]
ssd网络的先验框是根据pascal voc多分类通用数据集设计而成,不能很好地适用于交通标志检测。如ssd网络针对38
×
38特征图的每个网格只设置了4个先验框,无法精确检测较小目标。
[0076]
为提高ssd算法检测交通标志的精度,需要优化mv3-ssd算法中先验框的尺度大小、宽高比。
[0077]
特征图生成先验框的尺寸遵循线性递增规则:随着特征图尺寸的减小,先验框尺寸线性增加。第k个特征图,先验框尺寸计算公式为:
[0078][0079]
式中,s
min
和s
max
分别为最低和最高尺寸,ssd算法中s
min
=0.2和s
max
=0.9;m表示特征图层数,m=5;k代表第二层到第六层的特征层,分别为1至5的正整数;
[0080]
从图2可知,在cctsdb数据集中,绝大多数交通标志集中在占原图0.05~0.225的范围内,少部分交通标志在0.225~0.5范围内,几乎没有交通标志在0.5~1.0范围内。ssd算法预先设置的先验框的尺寸普遍偏大,不适用于检测交通标志目标。根据cctsdb数据集中交通标志目标的尺寸分布情况,设置s
min
=0.1,s
max
=0.8,缩小各层特征层先验框的尺寸大小,提升匹配交通标志目标标注框的能力。
[0081]
优化先验框生成方式后,第一层到第六层的sk值调整为:0.05、0.1、0.27、0.45、0.62、0.8。根据320
×
320的输入图像尺寸,可得第一层到第六层特征层中最小的正方形先验框的尺寸大小分别调整为16,32,86,144,198,256。
[0082]
第二、三、四层特征层的宽高比设置为αr∈{1:1,2:1,3:1,1:2,1:3},第一、五、六层特征层只有四个不同大小的先验框,设有长宽比分别为1:3和3:1的两个矩形先验框。每层先验框的宽度和高度计算公式分别为:
[0083][0084][0085]
当αr取1:1时,正方形的边长为:式中,sk表示当前特征层中最小正方形边长的先验框尺寸,s
k+1
表示后一层特征层的最小正方形边长的先验框尺寸;
[0086]
从第一层到第五层特征层的正方形的边长分别为22,52,111,168,225,最后一层特征层设置为300,第六层特征层的正方形的边长277。mv3-ssd算法在六个不同特征层设置的先验框的大小如表4所示:
[0087]
表4mv3-ssd中各尺寸特征图的先验框
[0088][0089]
从表4可知,mv3-ssd算法的先验框的宽高比重新设计为αr∈{1:1,1:2,2:1,2:3,3:2},调整相应先验框的数量为{6,6,4,4,4,4}。对于最浅层特征bneck_14(20
×
20
×
112)增加宽高比为2:3和3:2的先验框,对于bneck_16(10
×
10
×
960)的先验框宽高比也调整为2:3和3:2,同时调整第三和第四检测特征尺度的先验框数为4,通过优化先验框,提高了交通标志的检测精确性。
[0090]
5.仿真实验
[0091]
(1)实验环境及参数设置
[0092]
实验平台使用的硬件为cpu:inter corei9-11900k、gpu:nvidia geforce rtx 3090,24g;深度学习框架采用pytorch1.7.1、torchvision0.8.2,编程语言为python3.7、编译器为pycharm。
[0093]
训练过程使用与ssd算法相同的损失函数,非极大值抑制的iou阈值设置为0.5,优化器采用随机梯度下降方法寻找梯度下降的方向。初始学习率设置为4e-4,迭代10000次后,学习率逐渐线性增加为1e-3,迭代70000次后,损失降低到较低水平,调整学习率为1e-4,迭代100000次后,学习率调整为1e-5,迭代120000次后,终止训练,batch size设置为16。
[0094]
(2)实验结果验证
[0095]
在目标检测领域,召回率(recall)、精度(precision)、平均精度(average precision,ap)以及所有类别的平均精度(mean average precision,map)、每秒处理的帧数(frames per second,fps)指标是研究领域公认的评估指标。
[0096]
为验证所提出的mv3-ssd交通标志检测算法的有效性,将算法在cctsdb数据集中进行训练与测试,并与ssd算法、mobilenetv2和ssd构成的mobilenet-ssd算法的训练与测试结果进行对比分析。三种检测算法的map值和三类目标的ap值分别如表5和图5、图6及图7所示:
[0097]
表5三种检测算法的map值对比
[0098]
[0099][0100]
由表5可知,mv3-ssd算法的map值为89.04%,相比于movbilenet-ssd算法的83.78%,提高了5.26%,相比于ssd算法的90.57%,仅降低了1.53%。mv3-ssd算法通过简化结构,降低参数数量,并未对交通标志检测精度产生较大影响。
[0101]
mv3-ssd、ssd、mobilenet-ssd三种算法检测指示标志、警示标志和禁止标志三类交通标志的pr曲线分别如图8、图9和图10所示,其中,横、纵坐标分别为召回率和精准率,各个类别的ap值为曲线与坐标轴围成的面积。
[0102]
由图8、图9和图10可知,对于三类交通标志,随着召回率的增加,mv3-ssd算法在测试集上的准确率均略低于ssd算法,这是因为mv3-ssd算法采用的mobilenetv3网络影响了特征预测层提取特征信息。随着召回率的增加,mv3-ssd算法的准确率远高于mobilenet-ssd,说明使用添加se模块的逆残差结构bneck模块,优化后的先验框生成方式,可显著提升检测的准确率和召回率。
[0103]
mv3-ssd、ssd、mobilenet-ssd三种算法的检测性能对比如表6所示:
[0104]
表6三种检测算法的检测性能对比
[0105][0106]
由表6可知,mv3-ssd算法虽然检测精度较ssd算法略有降低,但模型参数大大降低,模型大小仅为28.1m,相比于ssd算法降低了154.9m;mv3-ssd算法的模型大小仅比movbilenet-ssd算法提高了3.5m,但map比movbilenet-ssd算法提高了5.26%。在检测速度方面,mv3-ssd算法的fps为60,比ssd算法提高了23f/s。mv3-ssd算法不仅具有较高地检测精度,而且大幅提高了检测实时性,同时模型大小较小,可以部署到嵌入式设备中,适用于嵌入式终端产品。
[0107]
三种检测算法对部分交通标志图像的检测效果分别如图11、图12、图13和图14所示。
[0108]
从图11、图12、图13和图14可以看出,本发明所提出的mv3-ssd算法检测交通标志的精度虽比ssd略低,但明显优于mobilenet-ssd算法。mv3-ssd算法通过使用轻量化的特征提取网络,降低了模型参数量,提升了算法的检测速度,同时,为保证算法的精确性,设计了添加se模块的逆残差结构bneck,重新调整了预设先验框的尺寸大小,提高了预测框的置信度,优化了预测框的回归参数,使得mv3-ssd算法具有较高的检测速度和检测精度。

技术特征:
1.一种轻量化ssd的交通标志检测算法,其特征在于,包括以下步骤:(1)基于ssd网络结构,采用mobilenetv3_large网络替代ssd网络中的vgg16,并作为基础特征提取网络,形成mv3-ssd网络结构;(2)利用添加se模块的逆残差结构bneck替换对应的标准卷积,作为目标检测的输出特征层;(3)使用经优化后的先验框进行预测,通过非极大值抑制算法得到交通标志的位置和类别。2.根据权利要求1所述的一种轻量化ssd的交通标志检测算法,其特征在于,所述的mv3-ssd网络由多个bneck、激活层和卷积层组成;部分bneck引入se注意力模块,引入过程为:首先,经过conv1
×
1和dw conv3
×
3,然后,一部分直接连接到输出,一部分经过se注意力模块,最后,将两部分结果相加,并经过尺度化和conv1
×
1激活函数层,得到该模块的最终结果。3.根据权利要求1或2所述的一种轻量化ssd的交通标志检测算法,其特征在于,所述的先验框优化,具体为优化mv3-ssd算法中先验框的尺度大小和宽高比,步骤为:

根据特征图生成先验框的尺寸遵循线性递增规则,即随着特征图尺寸的减小,先验框尺寸线性增加,对于第k个特征图,先验框尺寸计算公式为:其中,s
min
和s
max
分别为最低和最高尺寸,ssd算法中s
min
=0.2和s
max
=0.9;m表示特征图层数,m=5;k代表第二层到第六层的特征层,分别为1至5的正整数;

根据中国交通标志检测数据集中交通标志目标的尺寸分布情况,设置s
min
=0.1,s
max
=0.8,缩小各层特征层先验框的尺寸大小,提升匹配交通标志目标标注框的能力;

优化先验框生成方式后,第一层到第六层的s
k
值分别调整为:0.05、0.1、0.27、0.45、0.62、0.8;根据320
×
320的输入图像尺寸,第一层到第六层特征层中最小的正方形先验框的尺寸大小分别调整为16,32,86,144,198,256;第二、三、四层特征层的宽高比设置为α
r
∈{1:1,2:1,3:1,1:2,1:3},第一、五、六层特征层只有四个不同大小的先验框,设有长宽比分别为1:3和3:1的两个矩形先验框;每层先验框的宽度和高度计算公式分别为:框的宽度和高度计算公式分别为:当α
r
取1:1时,正方形的边长为:式中,s
k
表示当前特征层中最小正方形边长的先验框尺寸,s
k+1
表示后一层特征层的最小正方形边长的先验框尺寸。

技术总结
一种轻量化SSD的交通标志检测算法,其步骤包括:基于SSD网络结构,采用MobileNetV3_large网络替代SSD网络中的VGG16,并作为基础特征提取网络,形成MV3-SSD网络结构;利用添加SE模块的逆残差结构Bneck替换对应的标准卷积,作为目标检测的输出特征层;经优化后的先验框进行预测,通过非极大值抑制算法得到交通标志的位置和类别。本发明在保证对交通标志检测精度的同时,大大提高了检测效率,较好地适用于嵌入式终端设备,满足了自动驾驶对于交通标志信息高质量识别的要求。标志信息高质量识别的要求。标志信息高质量识别的要求。


技术研发人员:张刚 杜家辉 尤佳锐 何淏 秦圣陶 独轩 魏莱
受保护的技术使用者:江苏建筑职业技术学院
技术研发日:2023.02.20
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐