一种基于图像的交通标志检测方法与流程

文档序号:26543936发布日期:2021-09-07 22:52阅读:608来源:国知局
一种基于图像的交通标志检测方法与流程

1.本发明涉及计算机视觉的深度学习领域,具体是一种基于图像的交通标志检测方法。


背景技术:

2.交通标志检测是目标检测的一个子方向,而目标检测是图像处理算法的一个重要分支,目前广泛应用于安防系统(如人脸检测)、交通领域(如人脸检测;行人、车流量统计)、医疗领域(如医学检测、医学图像识别)等等。目标检测任务主要有两个目标:目标框预测、目标框分类。而目标检测算法分为传统检测和深度学习检测两类。传统检测算法常分为三个步骤:手工特征提取,区域选择,目标分类,而常用的特征是hog和haar;常用的区域选择是滑动窗口;常用的分类器为svm、adaboost、cascade。深度学习检测算法分为一步流算法和二步流算法。一步流算法框架为特征提取、fpn特征融合、检测头预测检测框和分类,常用的一步流算法由yolo系列、ssd等。二步流算法框架为特征提取,fpn特征融合、预测检测框、对检测框分类,与一步流相比,二步流算法会进行锚框的预测,而锚框的预测有以下进步:滑动窗口、selective search、rpn模块预测、自学习锚框、无锚框。二步流常用的算法有rcnn、sppnet、fast rcnn、faster rcnn、fpn、mask rcnn。虽然一步流和二步流算法都取得了良好的效果,但是相对而言二步流的精度高于一步流精度。在实际使用场景中根据具体的需求,需要选择不同的检测算法。
3.在目标检测领域常用的数据集有imagenet、pascal voc、ilsvrc、ms

coco等。而在交通标志领域主要有以下6个数据集:kul belgium traffic sign dataset、german traffic sign、stsd、lisa、tsinghua

tencent 100k、cctsdb。kul belgium traffic sign dataset是比利时的交通标志数据集,共含有62种交通信号标志,图像是ppm格式。gtsrb是德国交通标志检测数据,其采集时使用单摄像头,共有900张图像,一般分为训练集600张和测试集300张,共有三个类别。stsd是瑞典交通标志数据集,在20000张图像上标注,包含3488个交通标志,是从350公里的公路视频中抽取的图像。lisa是美国的交通标志数据集,有两个包分别是只有图像、图像和视频都有。tt100k是腾讯基于全景地图抽取的大型交通标志数据集,包含30000个交通标志的10000张图像,有类别标签、边界框和像素掩码信息。cctsdb是长沙理工大学张建明老师团队制作完成,共有15000多张图像,共有三类交通标志:禁止标志、指示标志和警告标志,本文选用的是cctsdb。


技术实现要素:

4.本发明的目的在于提供一种基于图像的交通标志检测方法,以解决上述背景技术中提出的问题。
5.为实现上述目的,本发明提供如下技术方案:
6.一种基于图像的交通标志检测方法,所述方法包括:
7.对cctsdb数据集进行数据增强,生成数据集中的正负样本;
8.重新训练骨干网络resnet

101,提取卷积网络特征;
9.根据递归fpn结构将fpn模块多尺度融合的特征图再次前向反馈到骨干网络中进行递归处理;
10.基于注意力模块从通道注意力和空间注意力两个方面增强特征图的前景特征;
11.基于inhibition attention模块抑制sam模块大目标特征,再进行二次特征提取和递归融合,生成特征图;
12.基于transformer模块对特征图进行序列预测,生成目标框和目标类别。
13.作为本发明技术方案进一步的限定:所述重新训练骨干网络resnet

101,提取卷积网络特征的具体步骤包括:
14.读取从cctsdb数据获取的正负样本;
15.基于resnet

101网络对所述正负样本进行训练;
16.其中,resnet

101中通过残差网络来解决网络退化的问题,而残差网络由一系列残差单元组成,残差单元的数学表达式如下,其中h(x)是当前层的网络映射,f(x,w)是残差部分。
17.x
n+1
=h(x
n
)+f(x
n
,w
n
)
18.resnet

101中使用的是交叉熵损失函数,p(x)表示标签真值,q(x)表示网络的预测值,通过交叉熵来计算两个概率分布之间的距离,该值越小也就是概率分布越好。其损失函数对应的公式如下:
19.h(p,q)=


x
p(x)log q(x)。
20.作为本发明技术方案进一步的限定:所述根据递归fpn结构将fpn模块多尺度融合的特征图再次前向反馈到骨干网络中进行递归处理的步骤包括:
21.读取fpn融合后输出的结果;
22.通过反馈连接的方式将检测头的输入梯度特征带回到fpn骨干网络的低层;
23.再次递归循环,生成第一特征图。
24.作为本发明技术方案进一步的限定:所述基于注意力模块从通道注意力和空间注意力两个方面增强特征图的前景特征的步骤包括:
25.基于cam模块并行处理最大全局池化层和平均池化层,并对并行处理结果进行mlp处理;
26.对mlp处理后的处理结果进行加和操作和sigmoid激活,并输出通道注意力特征向量;
27.其中,所述通道注意力用于区分每个通道的重要性,所述重要性是通过全局描述子生成。在全局描述子生成中,平均池化对特征图的每个像素都有表示,最大池化是在计算梯度反向传播时,特征图中响应最大的区域有梯度反馈,其数学表达式如下式:
28.m
c
(f)=σ(mlp(avgpool(f)))+mlp(avgpool(f))。
29.作为本发明技术方案进一步的限定:所述基于注意力模块从通道注意力和空间注意力两个方面增强特征图的前景特征的步骤还包括:
30.基于sam子模块将输入的特征图基于通道做最大池化和平均池化,生成两个w*h*1的输出;
31.连接两个所述输出,并进行卷积降维,生成w*h*1的特征向量;
32.对所述特征向量进行sigmoid激活,生成空间特征向量;
33.其中,卷积核采用7*7,数学表达式如下:
34.m
c
(f)=σ(f
7*7
([avgpool(f),maxpool(f)]))。
[0035]
与现有技术相比,本发明的有益效果是:本发明根据图像中交通标志远小的特征,增加recursivefpn模块,多尺度提取特征,提高远小交通标志的检测精度。通过cbam模块和hibition attention模块,从空间和通道两个方面增强图像的前景特征,从而提高检测精度。通过利用transformer模块替代原本手工设计的rpn、detect、regression、nms等组件,将目标检测和目标分类任务转换成序列预测任务,实现真正的端到端检测,与此同时提高目标检测的准确率。
附图说明
[0036]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
[0037]
图1为基于图像的交通标志检测方法的流程框图。
[0038]
图2为基于图像的交通标志检测方法的子流程框图。
具体实施方式
[0039]
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0040]
图1示出了基于图像的交通标志检测方法的流程框图,本发明实施例中,一种基于图像的交通标志检测方法,所述方法包括步骤s1

步骤s6,具体如下:
[0041]
步骤s1:对cctsdb数据集做数据增强,获得数据集中的正负样本;
[0042]
步骤s2:在数据集上重新训练骨干网络resnet

101,提升卷积网络特征提取效果;
[0043]
步骤s3、利用recursive fpn结构,将普通fpn模块多尺度融合的特征图再次前向反馈到骨干网络中进行递归处理,提高小目标的特征。
[0044]
步骤s4、利用注意力模块,从通道注意力和空间注意力两个方面增强特征图的前景特征。
[0045]
步骤s5、利用inhibition attention模块,通过抑制sam模块的大目标特征,再进行二次特征提取,递归融合获得特征图。
[0046]
步骤s6、利用transformer模块对特征图进行序列预测,最终获得目标框和目标类别。
[0047]
本发明为基于注意力模块和带有自注意力机制的变换模块的目标检测算法,主要分三个组件:第一部分由resnet

101构成的骨干网络;第二部分将骨干网络输出的特征图进行进一步的多尺度融合和提取,其中包括rescursive fpn、cbam注意力模块、inhibition attention模块;第三部分为目标框和结果的预测,用transformer模块代替原本的detection、regression等模块。
[0048]
在步骤s2中,在数据集上重新训练骨干网络resnet

101,提升卷积网络特征提取
效果的具体流程如下:
[0049]
从cctsdb数据中获取数据集正负样本后,再resnet

101网络中训练。resnet

101中通过残差网络来解决网络退化的问题,而残差网络由一系列残差单元组成,残差单元的数学表达式如下,其中h(x)是当前层的网络映射,f(x,w)是残差部分;
[0050]
x
n+1
=h(x
n
)+f(x
n
,w
n
)。
[0051]
resnet

101中使用的是交叉熵损失函数,p(x)表示标签真值,q(x)表示网络的预测值,通过交叉熵来计算两个概率分布之间的距离,该值越小也就是概率分布越好。其损失函数对应的公式如下:
[0052]
h(p,q)=


x
p(x)log q(x)。
[0053]
在步骤s3中,利用recursive fpn结构,将普通fpn模块多尺度融合的特征图再次前向反馈到骨干网络中进行递归处理,提高小目标的特征的具体详述如下:
[0054]
与传统的自上而下的fpn融合相比,递归fpn将自上而下的fpn融合后输出的结果再次输入到骨干网络中,再次递归循环,其用反馈连接的方式将检测头的输入梯度特征带回到传统fpn骨干网络的低层中,加快训练的速度,提高检测精度。将一个2次递归的rfp结构展开,就是一个循环两次的fpn结构。前面一半的结构就是传统的fpn结构,然后将fpn生成的{p3,p4,p5}作为下一个fpn结构的输入,用aspp结构转换成通道数和尺寸{p3’,p4’,p5’},将其与第二个fpn的数据相加生成{c3,c4,c5},然后生成{p3”,p4”,p5”},最后{p3,p4,p5}与{p3”,p4”,p5”}结合输出检测头需要的多尺度特征图。
[0055]
rfp是递归结构,递归公式如下式,n为超参数,表示递归迭代次数,n表示展开后第n步;i表示fpn结构中的层数,s表示前馈的层数。
[0056][0057][0058]
在步骤s4中,利用注意力模块,从通道注意力和空间注意力两个方面增强特征图的前景特征的具体流程如下:
[0059]
在通用的注意力模块中分两块:空间注意力和通道注意力,本文采用cbam模块,从空间注意力与通道注意力两个方面来增强特征图的前景特征。cbam模块将输入的特征图先进行通道注意力提取,再进行空间注意力的提取。
[0060]
通道注意力使用的是cam子模块,作用与常用的se模块相同。cam模块中先并行处理最大全局池化层和平均池化层,然后经过mlp(同se模块中的excitation)处理,最后将两个层的数据进行加和操作和sigmoid激活,输出通道注意力特征向量。cam模块在提取全局描述子时,用最大池化和平均池化来聚合全局描述子。通道注意力就是用来区分每个通道的重要性,而这个重要性是通过全局描述子生成。而全局描述子生成中,平均池化对特征图的每个像素都有表示,而最大池化则是在计算梯度反向传播时,特征图中响应最大的区域有梯度反馈,其数学表达式如下式:
[0061]
m
c
(f)=σ(mlp(avgpool(f)))+mlp(avgpool(f))。
[0062]
空间注意力使用的是sam子模块,先将输入的特征图基于通道做最大池化和平均池化,得到2个w*h*1的输出,然后将两个channel做一个连接,经过一个卷积降维后,输出w*
h*1的特征向量,再进行sigmoid最终输出空间特征向量。其数学表达式如下式,其中卷积核用的是7*7,其效果比3*3的效果好,感受野大。其数学表达式如下:
[0063]
m
c
(f)=σ(f
7*7
([avgpool(f),maxpool(f)]))。
[0064]
请参阅图2,图2示出了基于图像的交通标志检测方法的子流程框图,在步骤s5中,利用inhibition attention模块,通过抑制sam模块的大目标特征,再进行二次特征提取,递归融合获得特征图的具体流程为:
[0065]
inhibition sam模块结构如上图所示,该模块的目的是抑制大目标的注意力,进行第二次特征提取,从而提升特征图对小目标的注意力。输入特征向量为w’*h’*c,经过骨干网络和fpn获得特征图w*h*c;再经过sam模块得到注意力向量w*h*1,将注意力向量与特征图相乘得到输出特征图m1。数学表达式如下式:
[0066]
s=sam(backbone(f))
[0067]
m1(f)=f
scale
(backbone(f)*s)。
[0068]
获取w*h*1的注意力向量后,进行上采样和取反操作,获取w’*h’*1的注意力向量;然后将注意力向量与输入特征向量相乘,获取第二个输入特征向量w’*h’*c,然后将第二个输入特征向量进行上一步的操作,获得输出特征图2;最后将输出特征图m1和m2连接后进行1*1的卷积,获得最终的输出特征向量w*h*c。数学表达式如下式,其中上采样使用的是双线性插值,获得的为w’*h’*c。
[0069]
f
inhibition
(f,s)=f
scale
(f*(1

upsample(s)))
[0070]
m2(f,s)=m1(f
inhibition
(f,s))
[0071]
m(f)=σ(f
1*1
(m1(f),m2(f)))。
[0072]
本模块通过第二步,将容易检出的大目标的空间注意力抑制,然后进行第二次特征提取和注意力增强,最后将获取的两次特征图输出进行卷积合成一张特征图。
[0073]
步骤s6中,利用transformer模块对特征图进行序列预测,最终获得目标框和目标类别的具体流程如下:
[0074]
本文使用上节提到的resnet

101作为骨干网络进行特征提取,将输入的图像从w*h*3,提取出特征图w/32*h/32*2048。然后使用encoder模块和decoder模块对特征进行编码和解码,最后通过fnn模块预测类别和矩形框的结构。其中encoder模块,将w*h*c的特征图降维到wh*c的特征图,然后再空间位置编码模块中分别对x、y编码,然后将两个维度的编码拼接到一起,数学表达式如下,将posx代入公式可以获得128维的向量,posy代入公式可以获得128维的向量,将两个向量拼接起来获得一个256维的位置编码。
[0075]
pe(pos
x
,2i)=sin(pos
x
/10000
2i/128
)
[0076]
pe(pos
x
,2i+1)=cos(pos
x
/10000
2i/128
)
[0077]
pe(pos
y
,2i)=sin(pos
y
/10000
2i/128
)
[0078]
pe(pos
y
,2i+1)=cos(pos
y
/10000
2i/128
)。
[0079]
decoder模块中,将encoder中的输出和空间位置编码一起输入解码模块,由于这是一个检测任务,所以decoder最后的结果输出是两个预测,分别是检测框和类别。损失函数使用的是二分图匹配算法,用来将不确定顺序的输出框与真值的序列进行匹配,然后用自定义的损失函数来计算类别和矩形框的误差。
[0080]
fnn模块是由线性激活层、relu层和全连接层组成,最终生成类别和目标框坐标。
memory)、电载波信号、电信信号以及软件分发介质等。
[0088]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0089]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1