本发明属于计算机视觉中的图像识别领域,涉及一种图像检测识别方法的创新。
背景技术:
交通标识的检测与分类识别是无人驾驶系统和驾驶员辅助系统的重要组成部分,解决交通标识的识别问题对无人驾驶技术发展具有重要意义。根据当前目标检测领域的算法工作流程可以将目标识别方法分为两类:一种是双步法,如r-cnn、fastr-cnn算法模型;另一种是单步法,比较经典的算法模型有yolo和ssd(singleshotmultiboxdetector,下文简称ssd)等。ssd算法由北卡罗来纳大学教堂山分校的weiliu等人提出,专门针对解决yolo类算法的定位精度问题。ssd算法结合fasterr-cnn的anchorbox机制和yolo的回归思想,通过预测不同尺度特征提取层上的目标区域,将边界框的输出空间离散化为一系列多尺度、多比例的预选框。在检测阶段网络将生成感兴趣目标的对应置信度并对预选框进行调整以匹配目标区域。
ssd在大目标检测方面表现良好,并且对于不同目标的长宽比鲁棒性好,对于小目标检测可以通过增加输入图像的尺寸以提高检测率,但是仍然需要进一步的改进。通过基于区域建议和基于回归的目标检测算法在coco、pascalvoc2007、pascalvoc2012数据集上的平均精度均值和检测速度的对比,可以发现:基于回归的目标检测算法在检测精度上略高于基于区域建议的目标检测算法,在检测速度上明显高于基于区域建议的目标检测算法,所以本发明采用ssd算法对交通标识图像进行检测和识别。如图1是原本ssd网络结构图。
技术实现要素:
为了解决以上因外界复杂环境如光度、拍摄角度、画质而影响的交通标识图像检测结果后存在定位精度不高、实时性差的问题。
为了实现相应的技术目的,本发明采用的技术方案实现的一种基于改进ssd算法的交通标识检测识别方法,如图2是本发明对交通标识检测识别的流程图,其具体方法包括以下内容:
s1目标检测识别网络的前置网络
s1.1深度学习网络的深度对分类和识别的准确率有着很大的影响,为了能够提高网络的准确率,我们会通过加深网络深度的方法来达到这个目的。普通深度学习的网络随着深度增加,会出现错误率升高的问题,resnet(deepresidualnetwork,下文简称resnet)的提出主要解决随着网络深度的加深梯度逐渐消失,模型退化的现象,该网络引入了残差网络结构,在增加网络层的同时,最终分类的效果也明显比之前有所提高。残差结构单元通过捷径连接实现,捷径将这个结构的输入和输出进行加叠操作,这种做法并不会影响原始网络的复杂度,当模型的层数加深时还减弱了由此带来的梯度消失现象,有效提高了识别效果。深度残差网络在imagenet上通过使用不同层数的网络结构进行测试,测试结果表明随着层数的增多错误率却随之下降,其中网络层数为152层的残差网络实现了3.75%的错误率,但是随着层数的越来越深计算量的增加,训练的速度也会降低变慢。
s1.2在ssd模型中,前置网络是用来为权重附初始值,使得训练时更快收敛,提高训练效率,前置网络的选取会影响到整个网络的训练效率。
s1.3在ssd原有模型的基础上,对vgg16、resnet34、resnet18三种网络分别作为目标检测模型的前置网络,逐一在pascalvoc2007数据集上进行对比测试,实验结果显示,在准确率方面,resnet34明显高于resnet18和vgg16,resnet18则略高于vgg16;在检测时间方面,resnet18明显要快于其他两个网络。本发明基于检测实时性的考虑,采用resnet18网络来作为前置网络代替了原始算法中的vgg16网络。该方法计算量少检测速度快,而且在准确率方面达到检测效果。
s2目标检测识别网络引入预选框
s2.1在ssd模型目标检测算法中引入了预选框,预选框在不同的特征层中拥有不同的尺寸大小,在同一个特征层中又有不同的纵横比值,因此基本上可以覆盖输入图像中的各种形状和大小的目标,softmax分类和边框回归得到真实目标的所在位置。该检测算法以特征图上每个点的中点为中心,生成一系列同心的预选框,预选框最小边长为min_size,最大边长为
s2.2预选框如图3所示。预选框的大小与输入图片比值sk通过公式1计算得到。
其中m是指做预测的特征图的总数,smin和smax是表示预选框的大小与输入图片比值sk的最小值与最大值。在设定好预选框大小和输入图片比例的最小值和最大值时,按照上述公式计算可获得一组比值,该组比值依次对应着每个特征层中预选框与输入图片的比例,可计算出各特征层预选框的最大值和最小值。
s2.3当设置预选框边长的纵横比时,特征层中会另外增加2个长方形预选框,每个长方形预选框宽的长度
其中边长的纵横比为ar,确定各层特征层的取值,设置各特征层纵横比,根据以上公式计算出每层生成的长方形预选框的宽度与高度。
s3目标检测识别网络激活函数
s3.1本交通标识检测网络将在resnet18网络中的3个卷积层即conv3_2、conv4_2、conv5_2和在ssd网络中额外添加的3个卷积层即conv8、conv9、conv10上进行相邻卷积层间多尺度特征融合操作,通过该操作可得到5个特征层即convfl_1、convfl_2、convfl_3、convfl_4、convfl_5。在此基础上,加上该网络最后的平均池化层pool11构成网络特征提取层用来预测目标位置和目标置信度。经过实验对比选取的前置网络resnet18,设置比例值sk的间距值和每个特征提取层的预选框纵横比数值,基于以上网络结构的设置构建交通标识检测网络模型,检测网络的输入图像大小为300×300,每个卷积层的卷积核尺寸大小设为3×3,池化层的采样核尺寸大小设为1×1。
s3.2在相邻层特征图融合前需要加入bn层(batchnormalizationlayer)和激活函数进行归一化以及激活操作,可以达到消除层间特征图差异的效果。
s3.3在原本ssd算法的网络结构中使用的是relu激活函数,该激活函数当训练神经网络模型时设置了比较大的学习率时,会出现训练中断的情况。
s3.4激活函数selu引入了自归一化的属性,并且使用banach的不动点定理证明了即使存在噪声和干扰的情况下,通过多个网络层后仍然能够收敛到零均值和单位方差。对于不趋近单位方差的激励值,方差映射存在上下界,并不会出现梯度消失和梯度爆炸的情况。该激活函数如公式4所示
其中λ≈1.0507,α≈1.6733。
通过对激活函数的研究和比较,选取了selu激活函数应用在本发明构建的网络结构中,通过对神经元进行自动地转移和重缩放实现归一化到零均值和单位方差,以增加网络结构的鲁棒性。
s4目标检测识别网络的损失函数
s4.1损失函数由分类和回归两部分组成:回归部分是定位损失,分类部分是分类损失,用来预测边框和默认边框的差距无限接近与真值边框的差距,这样预测的边框就能准确的接近真值边框。
s4.2损失函数是定位损失和分类损失加权之和,由公式5计算,
分类损失由公式6计算,定位损失由公式7计算。其中
其中(gcx,gcy,gw,gh)表示真值框,(dcx,dcy,dw,dh)表示默认框,(lcx,lcy,lw,lh)表示预测框相对于默认框的偏移量。
s5目标检测识别网络对比分析
s5.1本目标检测识别网络的创新点。该目标检测网络构建的创新点在于改进了目标检测算法ssd模型应用在交通标识检测与识别,为了解决网络深度增加,出现错误率升高的问题,而引入残差网络结构,采用resnet18网络来作为前置网络代替原始ssd算法中庞大的vgg16网络,该方法计算量少检测速度快,而且在准确率方面更高;为了解决训练神经网络模型设置比较大的学习率时,容易出现的训练中断,并且如果较大梯度流过该神经元并更新过参数之后,神经元的梯度为0将不会存在激活现象的问题,选取selu激活函数代替原本ssd算法的网络结构中使用的relu激活函数,selu激活函数引入了自归一化的属性,通过对神经元进行自动地转移和重缩放实现归一化到零均值和单位方差,增加了网络结构的鲁棒性。选择深度残差网络作为前置网络,增加多尺度融合特征层,将交通标识数据集输入到网络模型中训练,使用训练好的模型进行交通标识区域检测,获得交通标识区域后,该方法先扩展交通标识区域并对该区域进行自适应二值化操作,然后对二值化后的图像进行连通区域分析寻找到交通标识边框,采用随机抽样一致算法和sobel算子分别判断交通标识的上下左右边界,实验结果表明本检测识别方法能达到对交通标识实时精确定位和识别的结果。
s5.2网络对比分析。构建好交通标识检测网络后,通过大量的交通标识训练数据集来训练和调优,从而得到理想的交通标识检测网络。选取其他常用交通标识检测方法中的代表方法进行比较,现有常用的代表方法为基于颜色和梯度方向直方图特征的方法,该方法主要步骤是先提取图像垂直边缘信息,再通过颜色点对区域的方法获得候选区,根据交通标识长宽比和矩形特征去除伪交通标识,基于svm分类器进行交通标识区域的精定。实验对比结果表明,本发明在正确率方面比常用的交通标识检测方法的检测准确率高,在平均检测时间方面,要小于其他交通标识检测方法。
附图说明
图1是ssd网络结构模型。
图2是本发明对交通标识检测识别的流程图。
图3是改进ssd网络引入的预选框。
图4是数据增强前的数据集中各类图数量图。
图5是数据增强后的数据集中各类图数量图。
图6是改进ssd网络损失值变化曲线图。
图7是网络对测试数据进行检测识别的效果图。
图8是网络对复杂环境下的测试数据进行检测识别的效果图。
具体实施方式
结合附图和实施例详细说明本发明的实施方式,使本发明的目的、技术方案以及优点更加清楚明白。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。参照图2,步骤如下:
步骤s1:数据处理
s11:数据格式转换,下载的gtsrb数据集都是.ppm格式的,csv文件里面有roi区域的坐标,需要根据这个roi区域的坐标,来分割出roi区域,并另存为后缀为.jpg的格式。
s12:进行数据增强,对转换格式后的数据,做数据增强。德国交通标识数据集给出的交通标识种类之间标识图数量存在差异,为了优化网络,先将创建一些数据来平衡不同类别的数据量,减少网络可能对某些类别产生的偏差,同时也向网络提供更多训练数据。本发明采用的方法是将少额的图像旋转一定的角度进行增强数据。通过对数据量较少的类别的图像旋转10度、-10度、30度和-30度等处理后形成新的数据,保证每个类别至少有500个图像,使数据量分布更加平衡。如图4是数据增强前的数据集中各类数据量,如图5是数据增强后的数据集中各类数据量。
s13:数据集格式制作和标注
选择pascalvoc数据集作为训练和测试网络模型的数据集格式。按照pascalvoc数据集的文件夹命名方式和文件夹之间的包含关系创建了相互对应的文件目录。首先将搜集和整理的各种复杂环境下产生的交通标识图片存放到jpegimages文件夹下,其中包括了在正常光照下、合理的拍摄角度等环境下拍摄的交通标识图片,也存在复杂情况下拍摄的交通标识图片即出现阴天、夜间光照不均匀、逆光或过渡曝光、拍摄角度倾斜、交通标识污损等情况。准备好交通标识图像数据集后,把图片的名称按照如000001.jpg格式的命名规则批量修改数据集中每个图片的名称,至此jpegimages文件夹下的图片整理完成。
步骤s2:训练网络模型
s21:本发明的网络结构基于原始ssd目标检测算法进行改进,在网络中设置提取特征层即convfl_1、convfl_2、convfl_3、convfl_4、convfl_5、pool11作为检测的输入,保证在多尺度下具有良好的效果。
s22:convfl_1特征层由384个38×38大小的特征图构成,其中的128个特征图在conv3_2层上基于atrous算法采用3×3尺寸的卷积核进行卷积操作,先设置参数rate、stride、padding值,将conv3_2卷积层的特征图尺寸转换为38×38大小。剩余的256个特征图由conv4_2层经过3×3大小的卷积核操作,再设置stride、padding参数值保证该层的特征图大小不变。convfl_2、convfl_3、convfl_4、convfl_5特征层均是由512个特征图构成。将两个不同层的特征图进行concat操作之前,要对特征图做一个归一化和激活操作,采用batchnormalization方法进行归一化,使用selu激活函数进行激活。
s23:基于tensorflow框架,按照上文中构建的交通标识检测网络框架进行搭建,首先在pascalvoc2007数据集上进行模型的预训练,针对交通标识检测制作的以pascalvoc为标准的交通标识检测数据测试集上进行训练、调优后得到交通标识检测网络模型。修改超参数,设置正则化权制衰减系数和初始学习率、学习率的衰减因子等超参数值。将制作的交通标识数据集输入到该网络中进行训练,进行多次迭代。
s24:通过tensorboard组件可以观察到该网络训练时损失值的变化曲线,网络训练结束后损失值由开始训练时的81.95降低为12.83,网络损失值变化曲线图如图6所示。
步骤s3:测试网络模型
训练结束得到网络模型文件,这些文件分别存储着网络的图结构、参数名以及参数值信息。将文件移入到checkpoints文件夹中,将datesets文件夹中存入从交通标识数据集中随机抽取的5000张测试图片,编写网络测试代码,在测试代码中输入网络模型文件所在路径以及待测试图片的路径,通过运行该程序进行模型测试,通过对该测试结果的统计可以得出以下结论:在5000张测试图片中,正确检测的图片有4765张,交通标识检测正确率为95.3%。如图7为测试数据执行的检测识别的结果。
步骤s4:实验对比与分析
s41:选取其他常用交通标识检测方法中的代表方法进行比较,一些常用的代表方法为基于颜色和梯度方向直方图特征的方法,该方法主要步骤是先提取图像垂直边缘信息,再通过颜色点对区域的方法获得候选区,根据交通标识长宽比和矩形特征去除伪交通标识,基于svm分类器进行交通标识区域的精定。
s42:随机抽取了1000张测试样本进行多组交通标识检测实验,下表是实验结果比较。
交通标识检测定位实验结果表
从表的实验结果中可以得出本文中的交通标识检测算法在准确率和检测时间方面均有不错的表现。在正确率方面比常用的交通标识检测方法的检测准确率高,在平均检测时间方面,小于其他交通标识检测方法。
s43:由图8可看出该检测识别算法对于光照不均匀、拍摄角度倾斜、画质模糊、自然天气等外在环境影响也具有良好的鲁棒性。
1.一种基于改进ssd算法的交通标识检测识别方法,其特征在于:具体方法包括以下内容:
s1目标检测识别网络的前置网络
s1.1深度学习网络引入残差网络结构,残差结构单元通过捷径连接实现,捷径将这个结构的输入和输出进行加叠操作;深度残差网络在imagenet上通过使用不同层数的网络结构进行测试;
s1.2在ssd模型中,前置网络是用来为权重附初始值,使得训练时更快收敛,前置网络的选取会影响到整个网络的训练效率;
s1.3在ssd原有模型的基础上,对vgg16、resnet34、resnet18三种网络分别作为目标检测模型的前置网络,逐一在pascalvoc2007数据集上进行对比测试;采用resnet18网络来作为前置网络代替vgg16网络;
s2目标检测识别网络引入预选框
s2.1在ssd模型目标检测算法中引入了预选框,预选框在不同的特征层中拥有不同的尺寸大小,在同一个特征层中又有不同的纵横比值,覆盖输入图像中的各种形状和大小的目标,softmax分类和边框回归得到真实目标的所在位置;以特征图上每个点的中点为中心,生成一系列同心的预选框,预选框最小边长为min_size,最大边长为
s2.2预选框的大小与输入图片比值sk通过公式1计算得到;
其中m是指做预测的特征图的总数,smin和smax是表示预选框的大小与输入图片比值sk的最小值与最大值;在设定好预选框大小和输入图片比例的最小值和最大值时,按照上述公式计算获得一组比值,该组比值依次对应着每个特征层中预选框与输入图片的比例,计算出各特征层预选框的最大值和最小值;
s2.3当设置预选框边长的纵横比时,特征层中会另外增加2个长方形预选框,每个长方形预选框宽的长度
其中边长的纵横比为a预,确定各层特征层的取值,设置各特征层纵横比,根据以上公式计算出每层生成的长方形预选框的宽度与高度;
s3目标检测识别网络激活函数
s3.1交通标识检测网络将在resnet18网络中的3个卷积层即conv3_2、conv4_2、conv5_2和在ssd网络中额外添加的3个卷积层即conv8、conv9、conv10上进行相邻卷积层间多尺度特征融合操作,得到5个特征层即convfl_1、convfl_2、convfl_3、convfl_4、convfl_5;加上该网络最后的平均池化层pool11构成网络特征提取层用来预测目标位置和目标置信度;经过实验对比选取的前置网络resnet18,设置比例值sk的间距值和每个特征提取层的预选框纵横比数值,基于以上网络结构的设置构建交通标识检测网络模型,检测网络的输入图像大小为300×300,每个卷积层的卷积核尺寸大小设为3×3,池化层的采样核尺寸大小设为1×1;
s3.2在相邻层特征图融合前需要加入bn层和激活函数进行归一化以及激活操作;
s3.3relu激活函数当训练神经网络模型时设置大的学习率时,会出现训练中断的情况;
s3.4激活函数selu引入了自归一化的属性,并且使用banach的不动点定理证明了即使存在噪声和干扰的情况下,通过多个网络层后仍然能够收敛到零均值和单位方差;对于不趋近单位方差的激励值,方差映射存在上下界,并不会出现梯度消失和梯度爆炸的情况;激活函数如公式4所示
其中λ≈1.0507,α≈1.6733;
选取selu激活函数应用在构建的网络结构中,通过对神经元进行自动地转移和重缩放实现归一化到零均值和单位方差,以增加网络结构的鲁棒性;
s4目标检测识别网络的损失函数;
s5目标检测识别网络对比分析。
2.根据权利要求1所述一种基于改进ssd算法的交通标识检测识别方法,其特征在于:
s4.1损失函数由分类和回归两部分组成:回归部分是定位损失,分类部分是分类损失,用来预测边框和默认边框的差距无限接近与真值边框的差距,这样预测的边框就能准确的接近真值边框;
s4.2损失函数是定位损失和分类损失加权之和,由公式5计算,
分类损失由公式6计算,定位损失由公式7计算;其中
其中(gcx,gcy,gw,gh)表示真值框,(dcx,dcy,dw,dh)表示默认框,(lcx,lcy,lw,lh)表示预测框相对于默认框的偏移量。
3.根据权利要求1所述一种基于改进ssd算法的交通标识检测识别方法,其特征在于:
s5.1本目标检测识别网络的创新点;引入残差网络结构,采用resnet18网络来作为前置网络代替原始ssd算法中庞大的vgg16网络;选取selu激活函数代替原本ssd算法的网络结构中使用的relu激活函数,selu激活函数引入了自归一化的属性,通过对神经元进行自动地转移和重缩放实现归一化到零均值和单位方差;选择深度残差网络作为前置网络,增加多尺度融合特征层,将交通标识数据集输入到网络模型中训练,使用训练好的模型进行交通标识区域检测,获得交通标识区域后,先扩展交通标识区域并对该区域进行自适应二值化操作,然后对二值化后的图像进行连通区域分析寻找到交通标识边框,采用随机抽样一致算法和sobel算子分别判断交通标识的上下左右边界,实验结果表明本检测识别方法能达到对交通标识实时精确定位和识别的结果;
s5.2网络对比分析;构建好交通标识检测网络后,通过交通标识训练数据集来训练和调优,从而得到理想的交通标识检测网络;先提取图像垂直边缘信息,再通过颜色点对区域的方法获得候选区,根据交通标识长宽比和矩形特征去除伪交通标识,基于svm分类器进行交通标识区域的精定。
技术总结