本发明属于数字图像处理和机器学习领域,具体涉及一种基于卷积神经网络的交通标志识别方法。
背景技术:
早在上世纪八十年代初,一些国家就开始关注交通标志识别了,主要使用如利用模板匹配、边缘检测、神经网络等方法。交通标志检测与识别的图像来源于车辆摄像设备,虽然交通标志一般都具有比较明显的颜色和形状特征,但由于户外的自然情况复杂多变,采集的图像易受很多不利因素的影响,如天气影响、背景干扰和物体遮挡等因素,这会直接影响交通标志检测与识别的结果。对于交通标志的检测阶段,主要难点在于光照的变化使得交通标志外观发生剧烈的变化,导致简单利用rgb颜色模型很难对其准确分割;交通标志的识别阶段,由于目标被局部遮挡或因拍摄视角产生的图像畸变,会引起识别算法性能出现下降。为提高现阶段交通标志检测与识别的鲁棒性、实时性和识别率,本技术提出一种基于卷积神经网络的交通标志检测与识别方法。
该方法不仅在gtrsb数据库的实验中识别率达到95.46%,超过现有的其它方法,而且识别一幅交通标志的时间仅有0.02s左右,满足实时性。同时,传统方法对于交通标志的识别需要人工提取特征,再用提取的大量特征来训练分类器。本文提出的基于卷积神经网络的方法,不需要人为去提取特征,直接以二维图形作为输入,在训练的时候自动提取特征并训练,大大减少了特征提取需要耗费的大量时间,而且效果更好。不仅如此,由于卷积神经网络的特殊结构,对于多尺度干扰、少量遮挡、少量平移等都有较好的适应性。
技术实现要素:
本发明旨在解决以上现有技术的问题。提出了一种大大减少了特征提取需要耗费的大量时间,而且效果更好的基于卷积神经网络的交通标志检测与识别方法。本发明的技术方案如下:
一种基于卷积神经网络的交通标志检测与识别方法,其包括以下步骤:
101、获取包含有交通标志的输入图像,并采用直方图均衡化对该输入图像的rgb图像进行预处理操作;
102、将预处理后的rgb图像转换为hsv(色调、饱和度、亮度)颜色模型,判断像素是否为目标像素(即交通标志区域的像素),提取目标hsv颜色信息,结合8连通区域进行初步分割获得感兴趣区域;
103、设计区分交通标志与非交通标志的二分类卷积神经网络,以此来判断感兴趣区域是否为交通标志;
104、得到交通标志的位置后,使用基于卷积神经网络的交通标志识别方法,算法设置的参数包括卷积神经网络的层数、特征图数量在内的参数,通过训练样本来学习网络中的参数,进而识别不同位置的交通标志的类别。
进一步的,所述步骤102rgb图像转换为hsv颜色模型具体包括:假设所有的颜色值都已经归一化到[0,1],在rgb三个分量r、g、b中,假设最大的为max,最小的为min,则rgb转换为hsv公式如下:
v=max。
进一步的,所述判断像素是否为目标像素包括步骤:
设定颜色阈值,如果像素值在阈值范围内即为目标像素,否则为背景像素,满足以下设定的hsv像素值即为红色目标像素
a)hue<0.05orhue>0.95
b)saturation>0.5
c)value>0.15。
进一步的,所述结合8连通区域进行初步分割获得感兴趣区域包括:将只包含目标像素值或者与目标像素值相近的区域作为二值图,在其中寻找具有相同像素值且位置相邻的前景像素点组成的图像区域,寻找8连通区域,经过初步分割获得感兴趣区域。
进一步的,所述步骤103的区分交通标志与非交通标志的二分类卷积神经网络一共包含7层,第一层为输入层,中间的隐藏层为2个卷积层、2个采样层和一个全连接层,最后一层是输出层;所述输入层用于输入图像矩阵;第二层为第一卷积层,与输入层连接,该层包含6个特征图,即可以得到6种不同的特征;第三层为第一下采样层,与第一卷积层连接,该层包含6个特征图,通过max-pooling计算得到,也是得到6种不同的特征;第四层为第二卷积层,与下采样层连接,该层一共有12个特征图,第五层为第二下采样层,与第一下采样层基本相似;第六层为全连接层,共包含196个节点;最后一层为输出层,输出节点为2,输出层的两个输出神经元表示交通标志和非交通标志。
本发明的优点及有益效果如下:
1.本发明利用hsv颜色模型提取特征,确定交通标志的大致区域。
2.本发明利用二分类卷积神经网络检测交通标志的准确位置。
3.本发明在gtrsb数据库的实验中识别率达到95.46%,超过现有的其它方法,而且识别一幅交通标志的时间仅有0.02s左右,满足实时性。
4.本发明提出的基于卷积神经网络的方法,不需要人为去提取特征,直接以二维图像作为输入,在训练的时候自动提取特征并训练,大大减少了特征提取需要耗费的大量时间,而且效果更好。此外,本方法对于多尺度干扰、少量遮挡、少量平移等都有较好的适应性。
附图说明
图1是本发明提供优选实施例的系统结构框图。
图2为具体实施方式中交通标志检测的结构框图。
图3为dcnn(detectionconvolutionalneuralnetwork,dcnn)的网络结构图。
图4为具体实施方式中交通标志识别的结构框图。
图5为rcnn(recognitionconvolutionalneuralnetwork)的网络结构图。
图6为dcnn的roc曲线图。
图7为dcnn精度召回曲线图。
图8为rcnn在gtsrb数据集中训练卷积神经网络时迭代10次平均误差图。
图9为rcnn在gtsrb数据集中训练卷积神经网络时迭代100次平均误差图。
图10为本发明与现有交通标志识别技术的识别准确率柱状图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
附图1是本发明的系统结构框图。其按照以下几个步骤进行:
步骤1、采用直方图均衡化分别对输入图像的r、g、b三通道做直方图均衡化
步骤2、将步骤1预处理的rgb图像转换为hsv颜色模型,然后提取目标颜色信息,结合8连通区域进行初步分割获得感兴趣区域(regionofinterest,roi)
步骤201、rgb图像转换为hsv颜色模型。假设所有的颜色值都已经归一化到[0,1],在rgb三个分量r、g、b中,假设最大的为max,最小的为min,则rgb转换为hsv公式如下:
v=max
步骤202、设定颜色阈值。如果像素值在阈值范围内即为目标像素,否则为背景像素。满足以下设定的hsv像素值即为红色目标像素。
a)hue<0.05orhue>0.95
b)saturation>0.5
c)value>0.15
步骤203、只包含目标像素值或者与目标像素值相近的区域,即为二值图,在其中寻找具有相同像素值且位置相邻的前景像素点组成的图像区域,寻找8连通区域,经过初步分割获得rois。
步骤3、设计用于交通标志检测阶段的二分类卷积神经网络,称为dcnn(detectionconvolutionalneuralnetwork)。dcnn的网络结构如图3所示,该卷积神经网络一共包含7层,第一层为输入层,中间的隐藏层为2个卷积层、2个采样层和一个全连接层,最后一层是输出层。
步骤302、对于输入层,需要输入的数据是48×48像素大小的图像矩阵。由于从图像中分割出来的roi分辨率大小不一,忽略输入图像本身的长宽大小比,直接将该图像缩放到48×48大小。
步骤303、dcnn的第二层为卷积层,与输入层连接。该层包含6个特征图,既可以得到6种不同的特征。卷积核的大小为5×5,卷积核的移动步长默认为1,因此,用5×5的卷积核去对输入层的48×48大小图像做卷积,得到的特征图大小为(48-5+1)×(48-5+1),即为44×44。每个卷积核包含5×5共25个训练参数,外加一个偏置项,而总共有6个卷积核,所以,需要训练的参数个数为(5×5+1)×6=156,总的连接个数为156×(44×44)=302016。
步骤304、dcnn的第三层为下采样层,与上一层卷积层连接。该层包含6个特征图,通过max-pooling计算得到,也是得到6种不同的特征。下采样层的采样范围为2×2,因为采样间不包含重叠部分,因此移动步长为2。每次对图像的2×2即4个像素进行采样,因此得到的特征图的分辨率为上一层的1/4,因此,该层的特征图大小为22×22。间隔为2的采样计算过程与卷积计算过程相似,不同的是各个计算区域间是没有重叠的。
步骤305、dcnn的第四层为卷积层,与上一层下采样层连接。该层一共有12个特征图,卷积核大小为5×5,特征图分辨率为(22-5+1)×(22-5+1),即为18×18。该层与第二层相似,不同之处在于第二层的输入数据为来自于输入层的一个图像,不同的卷积核分别与其进行卷积运算,而本层的输入数据不是输入层,而是第三层的6个特征图,需要用这6个特征图通过计算得到本层的12个特征图。6个特征图的12种排列组合方式。每一行表示一种特征图,一共6种特征图。每一列表示与选取的几个特征图进行卷积运算得到的一个特征图。以该层特征图1为例,该特征图由下采样层的第2、3、4个特征图得到,使用相同的卷积核对这3个特征图对应的相同位置分别做卷积运算,并将得到的3个卷积结果通过sigmoid函数映射为一个1个卷积结果,作为特征图1的一个像素值。这种组合方式,因为特征图的不完全连接,可以有效的减少连接的数量。
步骤306、dcnn的第五层为下采样层,与第三层基本相似。采样范围为2×2,采样间隔为2,每个特征图大小为9×9,共12个特征图,与上一层的特征图一一对应。
步骤307、dcnn的第六层为全连接层,共包含196个节点,每个节点都与上一层的每个节点连接,因此权重连接的个数为(9×9×12)×196=190512。
步骤308、dcnn的最后一层为输出层,输出节点为2,是将倒数第二层的所有神经元作为2路softmax的输入,得到该样本分别在两类上的概率分布,然后根据高概率的类别判断为哪一类。因为dcnn在交通标志检测中的主要作用是判断roi是否为交通标志,因此输出层的两个输出神经元表示交通标志和非交通标志。
步骤4、利用步骤3已训练dcnn判断步骤2获取的rois是否为交通标志,是则保留,否则舍弃,得到最终检测结果。
步骤5、设计用于交通标志识别阶段的卷积神经网络,称为rcnn(recognitioncnn)。rcnn的结构如图5所示,一共含有9层,其中中间的隐藏层为3个卷积层、3个采样层和一个全连接层。
步骤501、rcnn的输入层为48×48的图像,与dcnn一样,输入样本和dcnn阶段一样,需要把输入图像归一化到相同大小,即48×48像素大小。rcnn的第二层为卷积层,共有6个特征图。卷积核大小为77,因此该层每个特征图大小为(48-7+1)×(48-7+1),即为42×42。本层与dcnn中的第二层基本相同。rcnn的第三层为下采样层,使用max-pooling方法对上一卷积层的特征图进行采样运算,采样范围为2×2大小,采样间隔为2,得到6个大小为21×21的特征图。rcnn的第四层为卷积层,共16个特征图,卷积核大小为4×4。该层与dcnn的结构基本一致,得到特征图的方式也与dcnn相同。rcnn的第五层为下采样层,与第三层相似。同样的,第六层与第七层与前面相似。rcnn最后一层为输出层,输出神经元为43个,分别代表交通标志43个类别。
步骤6、对步骤4保留的交通标志进行识别,得到交通标志的类别。
为了验证本发明的效果,进行了以下实验:
1.dcnn在gtsdb数据集进行测试
1.1实验分析:
交通标志检测的目的是尽量去掉多余的背景信息,保留只含交通标志的区域。所以,交通标志检测的卷积神经网络不仅要保证识别率,同时也要保证样本的召回率。
对一个二分类问题来说,会得到四种情况:
假负类fn:falsenegative,被判定为负样本,但事实上是正样本。
假正类fp:falsepositive,被判定为正样本,但事实上是负样本。
真负类tn:truenegative,被判定为负样本,事实上也是负样本。
真正类tp:truepositive,被判定为正样本,事实上也是正样本。
其中tp+fp+tn+fn=样本总数。
引入以下概念来评价二分类卷积神经网络。
精确度(precision):
precision=tp/(tp+fp)
真正类率(truepositiverate,tpr),也称召回率(recall):
tpr=recall=tp/(tp+fn)
假正类率(falsepositiverate,fpr),也称转移性(specificity):
fpr=fp/(fp+tn)
图6为dcnn的roc曲线,roc曲线的横坐标为负正类率(fpr),纵坐标为真正类率(tpr)。在roc曲线中,(0,1),即fpr=0,tpr=1,意味着fn=0,并且fp=0,即分类效果特别好,没有分类错误的;(1,0),即fpr=1,tpr=0,意味着tn=0,并且tp=0,即分类效果特别差,全部分类错误:(0,0),即fpr=tpr=0,意味着fp=tp=0,即全都识别成负样本;(1,1),即fpr=1,tpr=1,意味着fn=tn=0,即全都识别成正样本。从上述四点和图像可以看出,roc曲线上的点越接近(0,1),即图像上的点越接近左上角,分类效果越好。图6为二分类卷积神经网络的roc曲线,该曲线非常接近左上角,所以该二分类卷积神经网络的分类效果很好。图7为dcnn精度召回曲线,dcnn的识别率为98%,对应的召回率为97.8%,基本满足识别率与召回率都比较高的要求。
2.rcnn在gtsrb数据集进行测试
2.1实验分析:
在一次迭代过程中,把整个训练样本分成若干份,每一份含有相同数量的数据,如50。每一次训练卷积神经网络的时候输入50张交通标志图,通过前向传播得到这50张图像的误差,然后根据这个误差对网络权值与偏置进行求导,并反向传播更新参数。即一次用50张图像来更新参数。
假设参数调整的次数为n,则n=训练样本数/50×迭代次数。图8、图9分别显示了卷积神经网络在训练数据集上分别更新参数次数为7840、78400的平方误差率收敛曲线。即训练网络分别迭代10、100次。观察发现在参数调整越5万次,即迭代64次左右时平方误差趋于0.01,并基本保持不变。
图10是用gtsrb数据集,通过提取hog、lbp、haar特征结合svm的分类方法,以及利用lrc(线性回归)分类的方法的和本文方法的识别正确率比较。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。