CN111460894B - 一种基于卷积神经网络的车标智能检测方法 - Google Patents
一种基于卷积神经网络的车标智能检测方法 Download PDFInfo
- Publication number
- CN111460894B CN111460894B CN202010139068.3A CN202010139068A CN111460894B CN 111460894 B CN111460894 B CN 111460894B CN 202010139068 A CN202010139068 A CN 202010139068A CN 111460894 B CN111460894 B CN 111460894B
- Authority
- CN
- China
- Prior art keywords
- layer
- logo detection
- car logo
- car
- logo
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/50—Context or environment of the image
- G06V20/52—Surveillance or monitoring of activities, e.g. for recognising suspicious objects
- G06V20/54—Surveillance or monitoring of activities, e.g. for recognising suspicious objects of traffic, e.g. cars on the road, trains or boats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/08—Detecting or categorising vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种基于卷积神经网络的车标智能检测方法,首先给定车标检测训练集及车标检测测试集,并构建和初始化车标检测模型及SGD优化器;其次,在车标检测模型的每次迭代计算中,将车标检测训练集中的输入图像作为车标检测模型的输入得到车标检测结果,且根据损失函数,计算出损失值并进行反向传播对车标检测模型的网络参数进行调整,同时利用车标检测测试集对车标检测模型进行评估,直至迭代结束,得到最终的最优网络参数来更新车标检测模型;最后,获取待测包含车标信息的输入图像输入计算,得到待测包含车标信息的输入图像的车标检测结果。实施本发明,提高车标检测模型的识别准确率和定位精准度,实现高鲁棒性高准确率的车标智能检测。
Description
技术领域
本发明涉及车辆标识智能检测技术领域,尤其涉及一种基于卷积神经网络的车标智能检测方法。
背景技术
在全球私家车基数大且数量逐年增长的情况下,智能交通系统有着极为重要的作用。车标作为车辆一个关键信息,不易被更换,能够成为车辆的一个显著特征。所以,车标的检测对帮助破案和车辆检测管控具有十分重要的意义。
目前,车标检测算法大多采用边缘检测技术或者使用传统手工设计特征,这些方式繁琐且对于不同场景下的车标的检测鲁棒性不够高。
针对这个问题,亟需一种车标智能检测方法,克服边缘检测技术和传统手工提取车标特征存在的效率低、鲁棒性差的问题以及目前存在的车标检测方法识别确率低、定位精准度低的问题,以提高车标检测模型的识别准确率和定位精准度,实现高鲁棒性高准确率的车标智能检测。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于卷积神经网络的车标智能检测方法,克服边缘检测技术和传统手工提取车标特征存在的效率低、鲁棒性差的问题以及目前存在的车标检测方法识别确率低、定位精准度低的问题,以提高车标检测模型的识别准确率和定位精准度,实现高鲁棒性高准确率的车标智能检测。
为了解决上述技术问题,本发明实施例提供了一种基于卷积神经网络的车标智能检测方法,所述方法包括以下步骤:
步骤S1、给定车标检测训练集Itrain={(ai,bi)|i∈[1,M]}以及车标检测测试集Itest={(ai,bi)|i∈[1,H]};其中,ai表示第i张包含车标信息的输入图像,其大小为(3×K×K),(3×K×K)中3表示颜色通道数量,对应的颜色通道d∈{红,绿,蓝},(3×K×K)中K表示单张图片的宽或高的尺寸;bi表示第i张输入图像中对应的车标标签,且第i个车标标签中包含第i张输入图像中所有的车标的坐标位置和对应类别的标注信息;bi={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Bnum};Bnum为车标标签bi中车标对象的数量;carobjj表示车标标签bi中第j个车标对象;txj表示carobjj中心的横坐标值,tyj表示carobjj中心的纵坐标的值,且txj∈(0,K),tyj∈(0,K);twj表示carobjj的宽;thj表示carobjj的高,且twj∈(0,K],thj∈(0,K];clsj表示其类别索引值,且clsj∈[0,C-1],C为类别数量;M表示所述车标检测训练集Itrain的样本数量;H表示所述车标检测测试集Itest的样本数量;
步骤S2、基于YOLOv3改进的深度卷积神经网络构建出车标检测模型D,以及构建用于所述车标检测模型D训练过程中的随机梯度下降SGD优化器,且进一步对所述车标检测模型D及所述随机梯度下降SGD优化器的参数均进行初始化;其中,所述车标检测模型D的参数包括迭代次数q、网络参数θq和最优网络参数θbest;q=0,…,n,n为大于1的正整数;l表示对应的网络层数的索引,W表示对应卷积层的参数,O表示对应的偏置值,BN表示BN层的可学习参数,表示q次迭代训练中对应第l层的卷积层的参数,表示q次迭代训练中第l层对应的偏置值,表示q次迭代训练中第l层的可学习参数;迭代次数q初始为0;网络参数θq初始为θ0,最优网络参数θbest初始为θ0;所述随机梯度下降SGD优化器的参数初始化包括初始化学习率、动量和权重衰减系数;
步骤S3、获取当前迭代次数q,将所述车标检测训练集Itrain={(ai,bi)|i∈[1,M]}中的输入图像作为所述车标检测模型D的输入并通过网络逐层计算,得到对应车标检测训练集的车标检测结果Ytrain={yi|i∈[1,M]};其中,yi表示所述车标检测模型D对所述车标检测训练集Itrain的第i张输入图像的检测结果;
步骤S4、根据预设的二分类交叉熵损失函数和GIoU损失函数,计算所述车标检测训练集的车标检测结果Ytrain和所述车标检测训练集Itrain中的车标标签之间的误差,得出损失值,并利用得出的损失值进行反向传播,对所述车标检测模型D的网络参数θq进行调整;
步骤S5、利用所述车标检测测试集Itest对所述车标检测模型D进行评估,若所述车标检测模型D的网络参数θq的测试mAP值最高,则令θbest=θq;同时在参数更新结束阶段,判断训练迭代次数q是否已达到最大迭代次数n,若已经达到最大迭代次数n,则训练阶段结束,进入下一步骤S6;反之,将跳转至步骤S3进行循环迭代训练,并令q=q+1;
步骤S6、得到最终的车标检测模型D的最优网络参数θbest,并根据所得到的最终的最优网络参数θbest,更新所述车标检测模型D;
步骤S7、获取待测包含车标信息的输入图像,且将所述待测包含车标信息的输入图像作为更新后的车标检测模型D的输入并通过网络逐层计算,得到所述待测包含车标信息的输入图像的车标检测结果。
其中,在所述步骤S2中,所述车标检测模型D包括62层卷积层、5层最大值池化层、2层上采样层、19层残差连接操作层,17层拼接操作层以及3层YOLO层;其中,
每层卷积层后都包含BN层和LeakyReLU激活函数;
每层YOLO层都会根据输入的特征图进行计算,即计算出该特征图中车标对象的边界框,边界框包含置信度,中心坐标bx和by,宽度bw和高度bh以及C个车标的类别置信度;其中,置信度表示该边界框中包含车标对象的确定性,且confidence∈[0,1];中心坐标bx和by、宽度bw和高度bh分别表示对应该边界框的中心坐标(bx,by),以及其宽度bw和高度bh;类别置信度表示检测该边界框中对各个车标类别的确定性。
其中,在所述步骤S3中,将所述车标检测训练集Itrain中第i张输入图像ai输入到所述车标检测模型D中经过网络的逐层计算,得到的车标检测结果包括大小分别为(K/8)*(K/8)*[B*(5+C)]、(K/16)*(K/16)*[B*(5+C)]和(K/32)*(K/32)*[B*(5+C)]的3个特征图;其中,K/8、K/16和K/32分别表示输入的高或宽为K,经过计算将其缩放为原来的1/8、1/16和1/32;[B*(5+C)]表示每一个特征图的通道数量,B表示对于每一个特征图的网格单元grid所要检测的边界框的数量,(5+C)表示每一个边界框所要检测的参数数量,具体参数包括每一个边界框的置信度、中心坐标bx和by、宽度bw和高度bh,C表示车标的类别数量。
其中,在所述步骤S4中,得出的损失值为分别对边界框的置信度、中心坐标bx和by、对应的宽度bw和高度bh以及C个表示车标的类别置信度进行损失计算而得到的值。
其中,在所述步骤S4中,利用得出的损失值进行反向传播,对所述车标检测模型D的网络参数θq进行调整的具体步骤为:
根据预设的二分类交叉熵损失函数和GIoU损失函数,利用链式求导法则,对所述车标检测模型D中的网络参数θq进行梯度的计算,并通过随机梯度下降法,将对应的网络参数θq进行更新;其中,
更新网络参数θq的公式如下:
其中,分别表示第q次迭代的模型网络参数中,对应的第l层的卷积层的参数、偏置向量的参数、BN层的参数;η表示超参数中的学习率为0.00128;和分别表示对应卷积层的参数、偏置向量的参数和BN层的参数的梯度,通过链式求导法则求得。
其中,在所述步骤S5中,利用所述车标检测测试集Itest对所述车标检测模型D进行评估,若所述车标检测模型D的网络参数θq的测试mAP值最高,则令θbest=θq的步骤具体包括:
将所述车标检测测试集Itest中的输入图像作为所述车标检测模型D的输入并通过网络逐层计算,得到对应的车标检测测试集的检测结果Ytest={yi|i∈[1,H]};
使用非极大值抑制过滤处理车标检测测试集的检测结果Ytest={yi|i∈[1,H]},使得车标检测测试集的检测结果Ytest={yi|i∈[1,H]}。最后,所有边界框置信度小于0.5的边界框将被过滤。并且,所有相互重叠的边界框,即相互之间IOU大于0.5的边界框,将只选出置信度最高的边界框,检测只剩下置信度最高的检测的边界框;
将过滤后的Ytest={yi|i∈[1,H]}的每一个检测结果yi整理成和车标检测测试集Itest={(ai,bi)|i∈[1,H]}的对应的车标标签bi相同的集合形式,得到Yout={prei|i∈[1,H]};其中,prei={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Pnum},prei表示对第i张Itest中的输入图像的对应检测结果,Pnum表示prei中检测的车标对象的数量;
以所述车标检测测试集Itest中对应车标标签作为基准,将Yout和所述车标检测测试集Itest中的车标标签进行以交并比为0.5作为阈值来计算mAP值;
定义当前车标检测模型D的网络参数θq的mAP为mAPq,并定义最优模型网络参数θbest的准确率为mAPbest,若mAPq>mAPbest,则令θbest=θq。
实施本发明实施例,具有如下有益效果:
1、与现有的车标检测算法相比,本发明的车标检测模型在给定包含车标信息的图像时,能够准确快速地给出检测结果,且能够更好地捕捉和利用车标的细节和抽象特征,能对光照、对比度、旋转、噪声等不利因素影响下的输入图像有较好的鲁棒性,在实际应用中有较好的价值和前景;
2、本发明的车标检测模型基于YOLOv3改进,通过结合收缩路径和扩展路径,并使用残差结构的密集连接来构造深度CNN网络,使得车标检测模型能够将浅层特征和深层特征很好的结合起来,且能够较好地捕捉到车标的主要特征。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。
图1为本发明实施例提供的基于卷积神经网络的车标智能检测方法的流程图;
图2为本发明实施例提供的基于卷积神经网络的车标智能检测方法中车标检测模型的架构图;
图3为本发明实施例提供的基于卷积神经网络的车标智能检测方法中车标检测模型训练过程中的反向传播示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
如图1所示,为本发明实施例中,提出的一种基于卷积神经网络的车标智能检测方法,所述方法包括以下步骤:
步骤S1、给定车标检测训练集Itrain={(ai,bi)|i∈[1,M]}以及车标检测测试集Itest={(ai,bi)|i∈[1,H]};其中,ai表示第i张包含车标信息的输入图像,其大小为(3×K×K),(3×K×K)中3表示颜色通道数量,对应的颜色通道d∈{红,绿,蓝},(3×K×K)中K表示单张图片的宽或高的尺寸;bi表示第i张输入图像中对应的车标标签,且第i个车标标签中包含第i张输入图像中所有的车标的坐标位置和对应类别的标注信息;bi={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Bnum};Bnum为车标标签bi中车标对象的数量;carobjj表示车标标签bi中第j个车标对象;txj表示carobjj中心的横坐标值,tyj表示carobjj中心的纵坐标的值,且txj∈(0,K),tyj∈(0,K);twj表示carobjj的宽;thj表示carobjj的高,且twj∈(0,K],thj∈(0,K];clsj表示其类别索引值,且clsj∈[0,C-1],C为类别数量;M表示所述车标检测训练集Itrain的样本数量;H表示所述车标检测测试集Itest的样本数量;
具体过程为,给定车标检测训练集以及车标检测测试集为了对后续车标检测模型D训练和测试,得到训练好的车标检测模型,便于待测包含车标信息的输入图像中车标标签的识别。
步骤S2、基于YOLOv3改进的深度卷积神经网络构建出车标检测模型D,以及构建用于所述车标检测模型D训练过程中的随机梯度下降SGD优化器,且进一步对所述车标检测模型D及所述随机梯度下降SGD优化器的参数均进行初始化;其中,所述车标检测模型D的参数包括迭代次数q、网络参数θq和最优网络参数θbest;q=0,…,n,n为大于1的正整数;l表示对应的网络层数的索引,W表示对应卷积层的参数,O表示对应的偏置值,BN表示BN层的可学习参数,表示q次迭代训练中对应第l层的卷积层的参数,表示q次迭代训练中第l层对应的偏置值,表示q次迭代训练中第l层的可学习参数;迭代次数q初始为0;网络参数θq初始为θ0,最优网络参数θbest初始为θ0;所述随机梯度下降SGD优化器的参数初始化包括初始化学习率、动量和权重衰减系数;
具体过程为,将构建的车标检测模型D对输入的输入图像进行特征提取,根据提取的特征推断计算,并进行车标的定位和识别。通过损失函数计算得到误差梯度,进行反向传播,使得不断调整车标检测模型中的参数。最终生成的车标检测模型D能够有效地提取车标特征,且具有较好的泛化能力来实现对车标对象的精确定位和识别。
车标检测模型D包括62层卷积层、5层最大值池化层、2层上采样层、19层残差连接操作层,17层拼接操作层以及3层YOLO层;其中,每层卷积层后都包含BN层和LeakyReLU激活函数;每层YOLO层都会根据输入的特征图进行计算,即计算出该特征图中车标对象的边界框,边界框包含置信度,中心坐标bx和by,宽度bw和高度bh以及C个车标的类别置信度;其中,置信度表示该边界框中包含车标对象的确定性,且confidence∈[0,1];中心坐标bx和by、宽度bw和高度bh分别表示对应该边界框的中心坐标(bx,by),以及其宽度bw和高度bh;类别置信度表示检测该边界框中对各个车标类别的确定性。
车标检测模型D中,网络将收缩路径(contracting path)和扩张路径(expansivepath)进行了结合,用于车标的特征提取和对车标的定位和识别。收缩路径在其中主要的作用在于特征提取。通过有效利用残差连接(identity shortcut connection)和密集连接(dense connection),将图像中的深层和浅层特征进行提取,加强车标检测模型的学习能力以及鲁棒性。扩张路径在其中的作用主要在于利用提取得到的特征,对具体对象进行定位和识别的计算使之完成检测任务。
在收缩路径中,残差连接和密集连接有规律地连接在车标检测模型的网络中。密集连接将多层网络路径中计算得到浅层特征和深层特征进行拼接(concatenation)用“Concat”来表示,再对得到的拼接特征图进行卷积操作进一步得提取计算,保证了特征的有效利用以及网络计算的高效;残差连接通过将输入特征和多层网络的输出特征进行逐元素相加操作,使得网络在学习过程中减缓了模型退化问题,帮助网络更好地学习到图像的特征。结合密集连接和残差连接的特点,使得模型有着较高的计算效率和模型鲁棒性。为了增加车标检测模型的网络的感受野,使之能够提取更多的抽象特征。在多个残差连接和密集连接中,加入最大池化下采样层,使得网络能够通过逐层采样的方式,在增加抽象特征的同时加快计算速度,提高车标检测模型的鲁棒性。
在扩张路径中,车标检测模型的网络在加入卷积层的同时加入上采样操作,使得特征图的分辨率在后续的计算有所增大。扩张路径通过卷积核和上采样操作,将收缩路径提取的特征给后续的卷积继续计算。通过这种方式,能够使得网络定位更加精准,并增加识别的鲁棒性。
通过长跳跃连接(Long skip connection)将来自收缩路径的高分辨率特征与扩张路径的上采样的输出的特征图进行拼接操作,使得随后连续的卷积层可以基于该信息学习和推断,得出更为精确的输出,加强车标检测模型的定位精确性以及分类准确性。
在这里定义x0为单张图像,作为一个包含L层的卷积神经网络(convolutionalneuralnetwork),对第l层定义Hl(·),表示为第l层的操作,可以表示为卷积层(Convolution Layer)、最大池化下采样层(Max-pooling)、上采样层(up-sampling)、残差连接(identity shortcut connection)、拼接操作(concatenation)以及YOLO层中的其中一种类型。l表示对每一层的Hl(·)的索引下标。接着,这里定义xl为第l层的输出,对于普通的逐层计算的网络,我们将第l-1层的输出xl-1作为第l层的输入。定义公式如下:
xl=Hl(xl-1)
其中,输入输出都为特征图张量。对应的,Residual操作,即残差连接(identityshortcut connection)的连接方式如下所示:
xl=Hl(xl-1)+xl-1
其中+表示两个特征图逐个元素相加,使得xl-1得特征图能够再次重用,这种连接方式能够使得网络构造得更深,且能够抑制模型退化得问题,在基础连接模块的基础上,将输入和网络的输出进行逐元素相加。Concat操作,即密集连接(dense connection)的方式如下所示:
xl=Hl([x0,x1,…,xl-1])
其中[…]表示拼接操作,将后续的所有输出都纳入输入中,将其拼接成一个张量输入到第l层中。对应的,残差密集连接模块为本发明提出的内容,其连接方式如下所示:
xl=Hl([x0,x1,…,xl-1])+xl-1
通过对第l层之前的所有特征进行拼接作为输入,并将第l-1层的特征再和第l层的输入进行逐个元素相加,得到第l层的输出结果。本发明提出的残差密集连接模块结合了上述两个模块的优点,网络在预防模型退化的同时,更加高效得利用浅层层和深层得特征图,从而提高了计算效率和模型得鲁棒性。连接方式是,在密集连接连接多层的同时,不仅包含了对之前多层的Concat操作,还包含了上一层和下一层的逐个元素相加的计算,使得浅层信息不仅得到了利用,还使得网络能够加强指数集成的作用,从而加强模型的鲁棒性以及分类准确率。本文提出的车标检测网络如表1所示。表格中,“索引”表示车标检测模型D网络每层操作的下标索引;“层”表示每一层的操作类型;“通道数量”表示当前层的输出通道数量;“核大小/步长”表示对应卷积和池化层所包含的参数,对于不涉及这两个参数的操作,将不显示数值;“输入索引”表示该层输入来源属于哪几层的输出。所有层的操作默认以上一层的输出作为输入,所以在输入索引栏里没有数值的层都是默认从上一层输出作为输入。在特殊情况下,有的层的输入需要从其他层的输出进行获取,所以在“输入索引中”会有所标记。并且Residual(number1,number2)表示将表中索引为number1和number2的层的输出进行Residual操作。如Residual(5,8)表示将其中索引为5和索引为8的层输出进行Residual操作,并将其作为该层的输出;Residual操作的具体过程请参见文献:K.He,X.Zhang,S.Ren and J.Sun,"Deep Residual Learning for Image Recognition,"2016IEEE Conference on Computer Vision and Pattern Recognition(CVPR),Las Vegas,NV,2016,pp.770-778。且Concat(number1,number2)表示将表中索引为number1和number2的层的输出进行Concat操作。如Concat(78,81)表示将其中索引为78和索引为81的层的输出进行Concat操作,并将其作为该层的输出。Concat操作的具体过程请参见文献:G.Huang,Z.Liu,L.v.d.Maaten and K.Q.Weinberger,"Densely Connected ConvolutionalNetworks,"2017 IEEE Conference on Computer Vision and Pattern Recognition(CVPR),Honolulu,HI,2017,pp.2261-2269。
YOLO层为基于YOLOv3算法的输出层,其不包含可学习参数。通过将输入的特征图进行计算,并且不改变输入特征图的大小,得出相应的车标检测结果。并且,该层设置了对应的先验框的参数,用于检测时带入计算。表中的所有Conv层后都有BN和LeakyReLU,在表里进行了省略。并且,每一层的Conv和BN都包含可学习的参数。细节上来讲,每层Conv的可学习参数为对应的卷积核大小;每层BN的可学习参数为对应的方差和均值两个标量。
如图2所示,为车标检测模型的架构图。图2中,白色的立方体和灰色的立方体都表示特征图。这里设定输入的图像通道大小为3,尺寸为K×K大小的图像。所以对应的立方体的上方和左边分别表示特征图的宽和高;下方的数字表示对应的通道数。灰色的箭头表示从输入到输出的中间包含的一系列操作,这些操作分别标识在箭头的下方,每个类型的操作都被对应的方框分隔开。并且对应的索引顺序为从上到下、从左到右的顺序,和网络架构细节参数表1中的“索引”一一对应。
表1
对灰色的箭头,图2中用灰色的索引数字块表示,即用表1中的索引下标,就可以清楚每以步骤包含的操作;对虚线的箭头,其表示拼接操作Concat,并且在虚线箭头中用虚线的数字块进行标识;对垂直的长箭头,在其旁边用黑色的数字块进行标识,对应表1中操作下标索引。
值得注意的是,YOLO层没有在图2中画出,灰色的立方体即为YOLO的输入特征图。
YOLO的输出即包含车标对象的类别信息、坐标位置、边界框大小等信息。其中Conv的参数分别表示为(k*k*c/s)即表示为卷积核高、宽、特征图通道数量以及步长。如Conv:3*3*32/1表示为步长为1,卷积核大小为3*3,且输出通道为32的卷积层。Maxpool表示最大池化下采样层(Max-pooling),对应的参数为(k*k/s)即表示为池化层对应核的高、宽、步长。如Maxpool:2*2/2即表示核大小为2*2,且步长为2的最大池化下采样层。Upsample即表示上采样层(up-sampling)对应的参数为(k*k/s)即表示为池化层对应核的高、宽、步长。如Upsample:2*2/2即表示核大小为2*2,且步长为2的上采样层。需要注意的是,YOLO层没有在图中画出,其作用最后就是对输出的灰色的特征图进行检测,即不改变图中灰色特征图的尺寸,并且对其车标对象进行检测。
对车标检测模型D中的所有网络参数进行初始化。网络结构如表1所示。其中,l表示对应的网络层数的索引,W表示对应卷积层的参数,O表示对应的偏置值,BN表示BN(Batch Normalization)层的可学习参数。在q次迭代训练中,即表示对应第l层的卷积层的参数,表示第l层对应的偏置值,表示第l层的可学习参数。
需要注意的是,下采样层、上采样层、残差连接、拼接(concatenation)操作以及YOLO层中不包含学习参数,这些层的参数只需要预设即可。不同参数的预设值在表1中给出,并且YOLO层的先验框的参数在YOLO层细节参数表2给出。
表2
索引 | 层 | 先验框1 | 先验框2 | 先验框3 |
88 | YOLO | (116,90) | (156,198) | (373,326) |
98 | YOLO | (30,61) | (62,45) | (59,119) |
108 | YOLO | (10,13) | (16,30) | (33,23) |
在此默认将上述不包含学习参数的层所对应的参数设为都0,表示不存在可学习参数。对θq进行初始化,令q=0,得到车标检测模型D的初始网络参数θ0。并令θbest=θ0,目标即为求出车标检测模型D的最优网络参数θbest。对每一层的卷积层进行标准正态分布随机初始化,即从对每一个参数,从标准正态分布中随机取值然后赋值。接着求得其参数个数ParameterNumber,再利用如下公式对每一个参数进行偏移:
其中W表示某一层的卷积层的参数,对其做对应参数个数的偏移,使得模型能够更容易训练和收敛。对每层的Batch Normalization(BN)的每个通道参数设为1,并且将偏置值设为0。最终得到车标检测模型D的初始参数θ0。
步骤S3、获取当前迭代次数q,将所述车标检测训练集Itrain={(ai,bi)|i∈[1,M]}中的输入图像作为所述车标检测模型D的输入并通过网络逐层计算,得到对应车标检测训练集的车标检测结果Ytrain={yi|i∈[1,M]};其中,yi表示所述车标检测模型D对所述车标检测训练集Itrain的第i张输入图像的检测结果;
具体过程为,将车标检测训练集Itrain作为输入,载入到计算机内存中,为接下来的训练阶段做准备,然后将车标检测训练集Itrain中第i张输入图像ai输入到车标检测模型D中经过网络的逐层计算,得到的车标检测结果包括大小分别为(K/8)*(K/8)*[B*(5+C)]、(K/16)*(K/16)*[B*(5+C)]和(K/32)*(K/32)*[B*(5+C)]的3个特征图;其中,K/8、K/16和K/32分别表示输入的高或宽为K,经过计算将其缩放为原来的1/8、1/16和1/32;[B*(5+C)]表示每一个特征图的通道数量,B表示对于每一个特征图的网格单元grid所要检测的边界框的数量,(5+C)表示每一个边界框所要检测的参数数量,具体参数包括每一个边界框的置信度、中心坐标bx和by、宽度bw和高度bh,C表示车标的类别数量。
即首先定义x0为单张图像即为ai,对应的单张输入图像大小为(3×K×K)。作为一个包含L层的卷积神经网络(convolutional neuralnetwork),对第l层定义Hl(·),表示为第l层的操作,可以表示为卷积层(Convolution Layer)、最大池化下采样层(Max-pooling)用Maxpool表示、上采样层(up-sampling)用Upsample表示、残差连接(identity shortcutconnection)、拼接操作(concatenation)以及YOLO层中的其中一种类型,l表示对每一层的Hl(·)的索引下标。接着定义xl为第l层的输出,对于普通的逐层计算的网络,将第l-1层的输出xl-1作为第l层的输入。然后定义表示第l层操作的输出的对应某个标量的值,(e,f)为对应的特征图网格单元grid坐标索引,e为特征图宽的索引,f为特征图高的索引,定义z为通道数索引。
经过网络的逐层计算,对于每张输入图片,3个YOLO输出3个大小不相等的特征图x88、x98和x108,其对应的特征图大小分别为(K/32)*(K/32)*[B*(5+C)]、(K/16)*(K/16)*[B*(5+C)]和(K/8)*(K/8)*[B*(5+C)]。上述的三个不同的尺寸即表示检测时的输出特征图的尺寸分别为(K/32)*(K/32)、(K/16)*(K/16)和(K/8)*(K/8)。相当于对于一张输入的图像,输出三个大小分别为(K/32)*(K/32)、(K/16)*(K/16)和(K/8)*(K/8)的网格(grids),每个网格单元中要检测[B*(5+C)]个数量的参数。
YOLO层的计算方式如下:定义任意一个特征图为一个三维张量T,且S表示对应特征图的高或宽的尺寸;则有网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox的置信度confidence计算公式如下:
T(e,f,z)=δ(Tinput(e,f,z)),
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=0+ui*(5+C)},{ui∈N|0≤ui≤B-1}
其中,e、f、z为上述介绍的坐标索引,即在网格坐标为(e,f)的网格单元grid,对应通道索引为z的标量值为T(e,f,z)。δ(·)为sigmoid激活函数;Tinput为输入的张量,且和T有着相同的维度大小,也表示任意一个特征图。所以Tinput(e,f,z)为在网格坐标为(e,f)的网格单元grid,对应通道索引为z的标量值。ui为检测的边界框BBox的索引。上述公式通过输入输入张量Tinput,计算出所有网格单元grid中所有检测的边界框BBox的置信度confidence。对应的,网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox的中心横坐标bx的计算公式如下:
T(e,f,z)=δ(Tinput(e,f,z))+e,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=1+ui*(5+C)},{ui∈N|0≤ui≤B-1}
其中e为该网格单元grid对应的横坐标下标索引。对应的,网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox的中心纵坐标by的计算公式如下:
T(e,f,z)=δ(Tinput(e,f,z))+f,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=2+ui*(5+C)},{ui∈N|0≤ui≤B-1}
其中f为该网格单元grid对应的纵坐标下标索引。通过加入偏移量e、f,使得车标检测模型D更容易学习和对目标进行拟合。对应的,网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox的宽度bw的计算公式如下:
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=3+ui*(5+C)},{ui∈N|0≤ui≤B-1}
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=4+ui*(5+C)},{ui∈N|0≤ui≤B-1}
其中为YOLO层预设的第ui个检测的边界框BBox的先验高度。exp(·)表示以自然常数为底的指数函数。通过利用先验的预设,使得车标检测模型D能够快速学习和拟合目标参数。对应的,网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox的C个类别的类别置信度class confidence计算公式如下:
T(e,f,z)=δ(Tinput(e,f,z)),
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|5+ui*(5+C)≤z≤(ui+1)*(5+C)-1},{ui∈N|0≤ui≤B-1}
通过以上方式,就能求出网格坐标为(e,f)的网格单元grid,所包含的第ui个检测的边界框BBox的C个类别中,每个类别所对应的的类别置信度(class confidence),从[5+ui*(5+C),(ui+1)*(5+C)-1]这个范围中,取出最大值所对应的下标索引,就能根据索引找到在网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox中的车标类别检测。
通过上述定义,根据表1,将每一个YOLO层的前一层输出作为对应的输入,带入计算。并且,每个YOLO层的先验框的数量B=3。表2详细列出了每个YOLO层的每个先验框的宽和高的大小。表2为本发明中各个YOLO层的先验框的详细信息。其中“层”、“索引”表头的定义和表1对应;“先验框0”、“先验框1”、“先验框2”即表示每个不同先验框的先验大小,即上述提到的在每个YOLO层计算时,将第ui个下标索引带入即可对应。ui=0即表示先验框0,ui=1即表示先验框1,ui=2即表示先验框2。分别将x87、x97、x107作为输入,将x88、x98和x108作为输出,分别一一对应带入上述YOLO层的公式中。例如,令Tinput=x87,T=x88,YOLO层在表1中的索引为88,依据上述的公式,我们就能得到x88对应的所有网格单元grid的所有检测的边界框BBox中的置信度confidence,中心坐标bx和by,宽度bw和高度bh,以及C个类别中每个类别的类别置信度class confidence。x98和x108的输出也是同理。YOLO层的计算的具体过程请参见文献:J.Redmon,A.Farhadi,YOLOv3:An incremental improvement.(2018)arXiv preprint arXiv:1804.02767。
经过上述计算,对第i张输入图像ai进行输入,取出该车标检测模型D中的x88、x98和x108作为车标检测结果yi。所以yi为包含3个不同大小的张量的集合,yi={xl|l=88,98,108}。并且x88、x98和x108的特征图大小分别为(K/32)*(K/32)*[B*(5+C)]、(K/16)*(K/16)*[B*(5+C)]和(K/8)*(K/8)*[B*(5+C)]。将整个车标检测训练集Itrain的每个训练样本都以此方式输入,就能得到整个车标检测训练集Itrain的车标检测结果Ytrain。
步骤S4、根据预设的二分类交叉熵损失函数和GIoU损失函数,计算所述车标检测训练集的车标检测结果Ytrain和所述车标检测训练集Itrain中的车标标签之间的误差,得出损失值,并利用得出的损失值进行反向传播,对所述车标检测模型D的网络参数θq进行调整;
具体过程为,首先通过二分类交叉熵损失函数(BinaryCross-EntropyLoss)和GIoU损失(Generalized Intersection over Unionloss)将车标检测训练集Itrain={(ai,bi)|i∈[1,M]}中的车标标签和对应车标检测训练集Itrain的检测结果Ytrain={yi|i∈[1,M]}进行损失值的计算,即分别对边界框的置信度confidence,中心坐标bx和by,对应的宽度bw和高度bh,以及C个表示车标的类别置信度class confidence进行损失计算得出损失值,为下一步反向传播更新网络参数做准备。
对第i个车标检测训练集的Itrain样本,可以得到第i个车标标签bi和车标检测结果yi。通过步骤S4可知,yi={xl|l=88,98,108}。对任意一个YOLO层的输出结果,计算的方式如下:
根据步骤S4中定义的任意一个特征图为一个三维张量T,且S表示对应特征图的高或宽。T表示任意一个YOLO层的输出xl,且l=88,98,108。这里将张量T作为步骤5的损失函数的输入。在计算损失之前,首先根据Itrain中对应输入图像ai的车标标签bi生成基准张量Truth,且这里张量T和基准张量Truth依然表示任意的特征图。基准张量Truth的目的是作为真实对照标签,和输出的检测张量T能够进行直接比对,从而计算出损失值。作为区分,基准张量Truth中的边界框不叫边界框BBox,这里定义为真值边界框(TruthBox,TBox),其他的定义和张量T相同。所以,基准张量Truth中网格坐标为(e,f)的网格单元grid的第ui个真值边界框TBox的置信度confidence,中心坐标bx和by,宽度bw和高度bh,以及C个类别的类别置信度class confidence的计算方式为:
首先遍历车标标签bi={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Bnum}中的所有车标对象,对每一个车标对象,都有如下计算方式:
根据T的宽和高以及输入图像ai的宽和高确定缩放因子,即输入图像ai和张量T的缩放比例。T表示任意一个YOLO层的输出xl,且l=88,98,108。根据T的大小,生成和T相同尺寸大小的基准张量Truth。根据缩放因子,计算出车标对象carobjj的中心坐标txj和tyj在基准张量Truth中的网格单元grid的横坐标和纵坐标(e,f)的映射。然后在该网格单元grid中,确定该车标对象carobjj应该位于哪一个真值边界框TBox。如表2所示,每个边界框都有预设的先验大小,如果这个真值边界框TBox与车标标签中的车标对象重叠的面积大于其他网格单元grid的真值边界框TBox,则令对应的置信度confidence为1,并赋值中心坐标bx和by,宽度bw和高度bh,以及C个类别置信度class confidence。即通过计算,明确该车标对象carobjj位于网格坐标为(e,f)的网格单元grid的第qi个真值边界框TBox,且qi∈[0,B-1]。qi为计算得出的对应真值边界框TBox的下标索引。则有如下置信度confidence赋值公式:
Truth(e,f,z)=1,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=0+qi*(5+C)}
并且,赋值中心坐标bx和by,宽度bw和高度bh的公式为:
Truth(e,f,z)=txj,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=1+qi*(5+C)}
Truth(e,f,z)=tyj,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=2+qi*(5+C)}
Truth(e,f,z)=twj,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=3+qi*(5+C)}
Truth(e,f,z)=thj,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|z=4+qi*(5+C)}
接着赋值C个类别的类别置信度class confidence,有如下赋值公式:
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|5+qi*(5+C)≤z≤(qi+1)*(5+C)-1}
其中,r为该车标标签中对应车标对象的车标类别,且r∈[0,C-1]。
通过以上赋值,将bi={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Bnum}的Bnum个车标对象在Truth中进行了转化。而其他Truth中没有被赋值的网格单元grid里的真值边界框TBox的置信度confidence,中心坐标bx和by,宽度bw和高度bh,以及C个类别的类别置信度classconfidence全部为0则有如下公式:
Truth(e,f,z)=0,
{e∈N|0≤e≤S},{f∈N|0≤f≤S},{z∈N|ui*(5+C)≤z≤(ui+1)*(5+C)-1},{ui∈N|0≤ui≤B-1}
根据上述得到的基准张量Truth,就可以直接和对应的张量T在数值上直接比对计算损失值。
根据上述得到的张量T和对应的基准张量Truth,置信度confidence的损失计算为二分类交叉熵损失函数。可表示为:
其中,log(·)表示以自然常数为底的对数函数。Confidence Loss的计算的具体过程请参见文献:J.Redmon,A.Farhadi,YOLOv3:An incremental improvement.(2018)arXiv preprint arXiv:1804.02767。对应的中心坐标bx、by、宽度bw和高度bh的损失计算为GIoU损失函数可表示为:
TBBox(e,f,ui)=(T(e,f,1+ui*(5+C)),T(e,f,2+ui*(5+C)),T(e,f,3+ui*(5+C)),T(e,f,4+ui*(5+C)))
TruthTBox(e,f,ui)=(Truth(e,f,1+ui*(5+C)),Truth(e,f,2+ui*(5+C)),
Truth(e,f,3+ui*(5+C)),Truth(e,f,4+ui*(5+C)))
TBBox表示张量T中所有网格单元中的所有边界框BBox的包含中心坐标bx和by,宽度bw和高度bh信息的张量。所以,TBBox(e,f,ui)表示张量T中,网格坐标为(e,f)的网格单元grid的第ui个检测的边界框BBox中包含的中心坐标bx和by,宽度bw和高度bh的向量。同理,TruthTBox表示基准张量Truth中所有网格单元中的所有真值边界框TBox的包含中心坐标bx和by,宽度bw和高度bh信息的张量。所以,TruthTBox(e,f,ui)表示基准张量Truth中,网格坐标为(e,f)的网格单元grid的第ui个真值边界框TBox中包含的中心坐标bx和by,宽度bw和高度bh的信息的向量。所以I(TBBox(e,f,ui),TruthTBox(e,f,ui))表示检测的边界框BBox和对应的真值边界框TBox所计算得出的相交的面积;U(TBBox(e,f,ui),TruthTBox(e,f,ui))表示检测的边界框BBox和对应的真值边界框TBox所计算得出的并集的面积。IoU(TBBox(e,f,ui),TruthTBox(e,f,ui))即算出两个边界框之间的交并比(intersection over union,IOU)。同理,A(TBBox(e,f,ui),TruthTBox(e,f,ui))表示能够同时包含检测的边界框BBox和对应的真值边界框TBox这两个边界框的最小矩形面积。通过上述GIoU损失函数,能够对张量T中的每一个网格单元grid中的每一个检测的边界框BBox中的中心坐标bx、by、宽度bw和高度bh的检测进行损失误差计算。GIoU损失函数的具体过程请参见文献:H.Rezatofighi,N.Tsoi,J.Gwk,A.Sadeghian,I.Reid,S.Savarese,Generalized intersection over union:A metricanda loss for bounding box regression,in:Proceedingsof the IEEE Conference onComputer Vision and Pattern
Recognition(CVPR),2019,pp.658-666。
对应的对所有网格单元grid的所有检测的边界框BBox的C个类别的类别置信度class confidence的损失函数为二分交叉熵损失函数,其公式如下所示:
ClassLoss的计算的具体过程请参见文献:J.Redmon,A.Farhadi,YOLOv3:Anincremental improvement.(2018)arXiv preprint arXiv:1804.02767。通过上述的三个损失,即confidenceLoss、GIoULoss和ClassLoss,分别对张量T的置信度confidence,中心坐标bx和by,宽度bw和高度bh,以及C个类别的类别置信度class confidence的输出不断惩罚,即希望最终的检测效果在能不断向基准张量Truth逼近。
最终,给每一个损失函数分配权重,最终的损失公式如下所示:
TotalLoss=λconfidence*ConfidenceLoss+λgiou*GIoULoss+λcls*ClassLoss
其中,λconfidence为ConfidenceLoss的权重;λgiou为GIoULoss的权重;λcls为ClassLoss的权重,并在这里设定λconfidence为20.0;设定λgiou为1.2;设定λcls为15.7。
其次,根据预设的二分类交叉熵损失函数和GIoU损失函数,利用链式求导法则,对所述车标检测模型D中的网络参数θq进行梯度的计算,并通过随机梯度下降法,将对应的网络参数θq进行更新;其中,
更新网络参数θq的公式如下:
其中,分别表示第q次迭代的模型网络参数中,对应的第l层的卷积层的参数、偏置向量的参数、BN层的参数;η表示超参数中的学习率为0.00128;和分别表示对应卷积层的参数、偏置向量的参数和BN层的参数的梯度,通过链式求导法则求得。
步骤S5、利用所述车标检测测试集Itest对所述车标检测模型D进行评估,若所述车标检测模型D的网络参数θq的测试mAP值最高,则令θbest=θq;同时在参数更新结束阶段,判断训练迭代次数q是否已达到最大迭代次数n,若已经达到最大迭代次数n,则训练阶段结束,进入下一步骤S6;反之,将跳转至步骤S3进行循环迭代训练,并令q=q+1;
具体过程为,将车标检测测试集Itest中的输入图像作为所述车标检测模型D的输入并通过网络逐层计算,得到对应的车标检测测试集的检测结果Ytest={yi|i∈[1,H]};
使用非极大值抑制过滤处理车标检测测试集的检测结果Ytest={yi|i∈[1,H]},使得车标检测测试集的检测结果Ytest={yi|i∈[1,H]}。最后,所有边界框置信度小于0.5的边界框将被过滤。并且,所有相互重叠的边界框,即相互之间IOU大于0.5的边界框,将只选出置信度最高的边界框,检测只剩下置信度最高的检测的边界框,为了去除无效的和重叠的检测的边界框BBox;
将过滤后的Ytest={yi|i∈[1,H]}的每一个检测结果yi整理成和车标检测测试集Itest={(ai,bi)|i∈[1,H]}的对应的车标标签bi相同的集合形式,得到Yout={prei|i∈[1,H]};其中,prei={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Pnum},prei表示对第i张Itest中的输入图像的对应检测结果,Pnum表示prei中检测的车标对象的数量;
以车标检测测试集Itest中对应车标标签作为基准,将Yout和车标检测测试集Itest中的车标标签进行以交并比为0.5作为阈值来计算mAP值,即各类别AP(AveragePrecision)的平均值;其中,AP即为“P-R曲线”的面积,即为查准率(precision,P)与查全率(recall,R)的绘制曲线,为所有recall值的precision的平均值,且AP∈[0,1];
定义当前车标检测模型D的网络参数θq的mAP为mAPq,并定义最优模型网络参数θbest的准确率为mAPbest,若mAPq>mAPbest,则令θbest=θq;
最后,在网络参数更新结束阶段进行判断,判断训练迭代次数q是否已达到最大迭代次数n,若已经达到最大迭代次数n,则训练阶段结束,进入下一步骤;反之,q=q+1,并跳转至步骤S3进行循环迭代训练。
步骤S6、得到最终的车标检测模型D的最优网络参数θbest,并根据所得到的最终的最优网络参数θbest,更新所述车标检测模型D;
具体过程为,迭代结束后保存最终的车标检测模型D的模型参数θbest并更新车标检测模型D,得到最优车标检测模型。
步骤S7、获取待测包含车标信息的输入图像,且将所述待测包含车标信息的输入图像作为更新后的车标检测模型D的输入并通过网络逐层计算,得到所述待测包含车标信息的输入图像的车标检测结果。
具体过程为,获取待测包含车标信息的输入图像导入更新后的车标检测模型D的输入并通过网络逐层计算,得到待测包含车标信息的输入图像的车标检测结果,即待测包含车标信息的输入图像所对应的车标标签。
实施本发明实施例,具有如下有益效果:
1、与现有的车标检测算法相比,本发明的车标检测模型在给定包含车标信息的图像时,能够准确快速地给出检测结果,且能够更好地捕捉和利用车标的细节和抽象特征,能对光照、对比度、旋转、噪声等不利因素影响下的输入图像有较好的鲁棒性,在实际应用中有较好的价值和前景;
2、本发明的车标检测模型基于YOLOv3改进,通过结合收缩路径和扩展路径,并使用残差结构的密集连接来构造深度CNN网络,使得车标检测模型能够将浅层特征和深层特征很好的结合起来,且能够较好地捕捉到车标的主要特征。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (5)
1.一种基于卷积神经网络的车标智能检测方法,其特征在于,所述方法包括以下步骤:
步骤S1、给定车标检测训练集Itrain={(ai,bi)|i∈[1,M]}以及车标检测测试集Itest={(aidx_i,bidx_i)|idx_i∈[1,H]};其中,ai表示第i张包含车标信息的输入图像,其大小为(3×K×K),(3×K×K)中3表示颜色通道数量,对应的颜色通道d∈{红,绿,蓝},(3×K×K)中K表示单张图片的宽或高的尺寸;bi表示第i张输入图像中对应的车标标签,且第i个车标标签中包含第i张输入图像中所有的车标的坐标位置和对应类别的标注信息;bi={carobjj=(txj,tyj,twj,thj,clsj)|j∈N,1≤j≤Bnum};Bnum为车标标签bi中车标对象的数量;carobjj表示车标标签bi中第j个车标对象;txj表示carobjj中心的横坐标值,tyj表示carobjj中心的纵坐标的值,且txj∈(0,K),tyj∈(0,K);twj表示carobjj的宽;thj表示carobjj的高,且twj∈(0,K],thj∈(0,K];clsj表示其类别索引值,且clsj∈[0,C-1],C为类别数量;M表示所述车标检测训练集Itrain的样本数量;H表示所述车标检测测试集Itest的样本数量;
步骤S2、基于YOLOv3改进的深度卷积神经网络构建出车标检测模型D,以及构建用于所述车标检测模型D训练过程中的随机梯度下降SGD优化器,且进一步对所述车标检测模型D及所述随机梯度下降SGD优化器的参数均进行初始化;其中,所述车标检测模型D的参数包括迭代次数q、网络参数θq和最优网络参数θbest;q=0,…,n,n为大于1的正整数;l表示对应的网络层数的索引,W表示对应卷积层的参数,O表示对应的偏置值,BN表示BN层的可学习参数,表示q次迭代训练中对应第l层的卷积层的参数,表示q次迭代训练中第l层对应的偏置值,表示q次迭代训练中第l层BN层的可学习参数;迭代次数q初始为0;网络参数θq初始为θ0,最优网络参数θbest初始为θ0;所述随机梯度下降SGD优化器的参数初始化包括初始化学习率、动量和权重衰减系数;
具体过程为,将构建的车标检测模型D对输入的输入图像进行特征提取,根据提取的特征推断计算,并进行车标的定位和识别,通过损失函数计算得到误差梯度,进行反向传播,使得不断调整车标检测模型中的参数,最终生成的车标检测模型D能够有效地提取车标特征;
车标检测模型D由15个残差密集连接模块、4个残差模块、2个长跳跃连接以及若干个卷积层组成,总共包括62层卷积层、5层最大值池化层、2层上采样层、19层残差连接操作层,17层拼接操作层以及3层YOLO层;其中,每层卷积层后都包含BN层和LeakyReLU激活函数;每层YOLO层都会根据输入的特征图进行计算,即计算出该特征图中车标对象的边界框,边界框包含置信度,中心坐标bx和by,宽度bw和高度bh以及C个车标的类别置信度;其中,置信度表示该边界框中包含车标对象的确定性,且置信度confidence∈[0,1];中心坐标bx和by、宽度bw和高度bh分别表示对应该边界框的中心坐标(bx,by),以及其宽度bw和高度bh;类别置信度表示检测该边界框中对各个车标类别的确定性;
步骤S3、获取当前迭代次数q,将所述车标检测训练集Itrain={(ai,bi)|i∈[1,M]}中的输入图像作为所述车标检测模型D的输入并通过网络逐层计算,得到对应车标检测训练集的车标检测结果Ytrain={yi|i∈[1,M]};其中,yi表示所述车标检测模型D对所述车标检测训练集Itrain的第i张输入图像的检测结果;
步骤S4、根据预设的二分类交叉熵损失函数和GIoU损失函数,计算所述车标检测训练集的车标检测结果Ytrain和所述车标检测训练集Itrain中的车标标签之间的误差,得出损失值,并利用得出的损失值进行反向传播,对所述车标检测模型D的网络参数θq进行调整;
步骤S5、利用所述车标检测测试集Itest对所述车标检测模型D进行评估,若所述车标检测模型D的网络参数θq的测试mAP值最高,则令θbest=θq;同时在参数更新结束阶段,判断训练迭代次数q是否已达到最大迭代次数n,若已经达到最大迭代次数n,则训练阶段结束,进入下一步骤S6;反之,将跳转至步骤S3进行循环迭代训练,并令q=q+1;
步骤S6、得到最终的车标检测模型D的最优网络参数θbest,并根据所得到的最终的最优网络参数θbest,更新所述车标检测模型D;
步骤S7、获取待测包含车标信息的输入图像,且将所述待测包含车标信息的输入图像作为更新后的车标检测模型D的输入并通过网络逐层计算,得到所述待测包含车标信息的输入图像的车标检测结果;
残差密集连接模块连接方式如下所示:
xl=Hl([x0,x1,…,xl-1])+xl-1
通过对第l层之前的所有特征进行拼接作为输入,并将第l-1层的特征再和第l层的输入进行逐个元素相加,得到第l层的输出结果;该网络用于在预防模型退化的同时,更加高效的利用浅层和深层的特征图,提高计算效率和模型的鲁棒性;连接方式是,在密集连接连接多层的同时,不仅包含了对之前多层的Concat操作,还包含了上一层和下一层的逐个元素相加的计算,用于对浅层信息进行利用和加强指数集成。
2.如权利要求1所述的基于卷积神经网络的车标智能检测方法,其特征在于,在所述步骤S3中,将所述车标检测训练集Itrain中第i张输入图像ai输入到所述车标检测模型D中经过网络的逐层计算,得到的车标检测结果包括大小分别为(K/8)*(K/8)*[B*(5+C)]、(K/16)*(K/16)*[B*(5+C)]和(K/32)*(K/32)*[B*(5+C)]的3个特征图;其中,K/8、K/16和K/32分别表示输入的高或宽为K,经过计算将其缩放为原来的1/8、1/16和1/32;[B*(5+C)]表示每一个特征图的通道数量,B表示对于每一个特征图的网格单元grid所要检测的边界框的数量,(5+C)表示每一个边界框所要检测的参数数量,具体参数包括每一个边界框的置信度、中心坐标bx和by、宽度bw和高度bh,C表示车标的类别数量。
3.如权利要求2所述的基于卷积神经网络的车标智能检测方法,其特征在于,在所述步骤S4中,得出的损失值为分别对边界框的置信度、中心坐标bx和by、对应的宽度bw和高度bh以及C个表示车标的类别置信度进行损失计算而得到的值。
4.如权利要求3所述的基于卷积神经网络的车标智能检测方法,其特征在于,在所述步骤S4中,利用得出的损失值进行反向传播,对所述车标检测模型D的网络参数θq进行调整的具体步骤为:
根据预设的二分类交叉熵损失函数和GIoU损失函数,利用链式求导法则,对所述车标检测模型D中的网络参数θq进行梯度的计算,并通过随机梯度下降法,将对应的网络参数θq进行更新;其中,
更新网络参数θq的公式如下:
5.如权利要求4所述的基于卷积神经网络的车标智能检测方法,其特征在于,在所述步骤S5中,利用所述车标检测测试集Itest对所述车标检测模型D进行评估,若所述车标检测模型D的网络参数θq的测试mAP值最高,则令θbest=θq的步骤具体包括:
将所述车标检测测试集Itest中的输入图像作为所述车标检测模型D的输入并通过网络逐层计算,得到对应的车标检测测试集的检测结果Ytest={yidx_i|idx_i∈[1,H]};
使用非极大值抑制过滤处理车标检测测试集的检测结果Ytest={yidx_i|idx_i∈[1,H]},使得车标检测测试集的检测结果Ytest={yidx_i|idx_i∈[1,H]};最后,所有边界框置信度小于0.5的边界框将被过滤;并且,所有相互重叠的边界框,即相互之间IOU大于0.5的边界框,将只选出置信度最高的边界框,检测置信度最高的检测的边界框;
将过滤后的Ytest={yidx_i|idx_i∈[1,H]}的每一个检测结果yidx_i整理成和车标检测测试集Itest={(aidx_i,bidx_i)|idx_i∈[1,H]}的对应的车标标签bidx_i相同的集合形式,得到Yout={preidx_i|idx_i∈[1,H]};其中,preidx_i={out_carobjidx=(otxidx,otyidx,otwidx,othidx,oclsidx)|idx∈N,1≤idx≤Pnum},preidx_i表示对第idx_i张Itest中的输入图像的对应检测结果,Pnum表示preidx_i中检测的车标对象的数量;
以所述车标检测测试集Itest中对应车标标签作为基准,将Yout和所述车标检测测试集Itest中的车标标签进行以交并比为0.5作为阈值来计算mAP值;
定义当前车标检测模型D的网络参数θq的mAP为mAPq,并定义最优模型网络参数θbest的准确率为mAPbest,若mAPq>mAPbest,则令θbest=θq。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139068.3A CN111460894B (zh) | 2020-03-03 | 2020-03-03 | 一种基于卷积神经网络的车标智能检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010139068.3A CN111460894B (zh) | 2020-03-03 | 2020-03-03 | 一种基于卷积神经网络的车标智能检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460894A CN111460894A (zh) | 2020-07-28 |
CN111460894B true CN111460894B (zh) | 2021-09-03 |
Family
ID=71682462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010139068.3A Active CN111460894B (zh) | 2020-03-03 | 2020-03-03 | 一种基于卷积神经网络的车标智能检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460894B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738367B (zh) * | 2020-08-17 | 2020-11-13 | 成都中轨轨道设备有限公司 | 一种基于图像识别的零件分类方法 |
CN112101434B (zh) * | 2020-09-04 | 2022-09-09 | 河南大学 | 基于改进YOLO v3的红外图像弱小目标检测方法 |
CN112052817B (zh) * | 2020-09-15 | 2023-09-05 | 中国人民解放军海军大连舰艇学院 | 基于迁移学习的改进YOLOv3模型侧扫声纳沉船目标自动识别方法 |
CN112132140B (zh) * | 2020-09-23 | 2022-08-12 | 平安国际智慧城市科技股份有限公司 | 基于人工智能的车品牌识别方法、装置、设备及介质 |
CN112200186B (zh) * | 2020-10-15 | 2024-03-15 | 上海海事大学 | 基于改进yolo_v3模型的车标识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107871136A (zh) * | 2017-03-22 | 2018-04-03 | 中山大学 | 基于稀疏性随机池化的卷积神经网络的图像识别方法 |
CN109902609A (zh) * | 2019-02-22 | 2019-06-18 | 淮阴工学院 | 一种基于YOLOv3的交通标志检测与识别方法 |
CN107590492B (zh) * | 2017-08-28 | 2019-11-19 | 浙江工业大学 | 一种基于卷积神经网络的车标定位与识别方法 |
CN110766098A (zh) * | 2019-11-07 | 2020-02-07 | 中国石油大学(华东) | 基于改进YOLOv3的交通场景小目标检测方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108776807A (zh) * | 2018-05-18 | 2018-11-09 | 复旦大学 | 一种基于可跳层双支神经网络的图像粗细粒度分类方法 |
CN109086656B (zh) * | 2018-06-06 | 2023-04-18 | 平安科技(深圳)有限公司 | 机场异物检测方法、装置、计算机设备及存储介质 |
CN109948719B (zh) * | 2019-03-26 | 2023-04-18 | 天津工业大学 | 一种基于残差密集模块网络结构的眼底图像质量自动分类方法 |
-
2020
- 2020-03-03 CN CN202010139068.3A patent/CN111460894B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107871136A (zh) * | 2017-03-22 | 2018-04-03 | 中山大学 | 基于稀疏性随机池化的卷积神经网络的图像识别方法 |
CN107590492B (zh) * | 2017-08-28 | 2019-11-19 | 浙江工业大学 | 一种基于卷积神经网络的车标定位与识别方法 |
CN109902609A (zh) * | 2019-02-22 | 2019-06-18 | 淮阴工学院 | 一种基于YOLOv3的交通标志检测与识别方法 |
CN110766098A (zh) * | 2019-11-07 | 2020-02-07 | 中国石油大学(华东) | 基于改进YOLOv3的交通场景小目标检测方法 |
Non-Patent Citations (1)
Title |
---|
Real-time traffic sign detection and classification towards real traffic scene;YiqiangWu等;《Multimedia Tools and Applications》;20200302;第79卷;18204-18211,18213 * |
Also Published As
Publication number | Publication date |
---|---|
CN111460894A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111460894B (zh) | 一种基于卷积神经网络的车标智能检测方法 | |
CN111368909B (zh) | 一种基于卷积神经网络深度特征的车标识别方法 | |
CN113569667B (zh) | 基于轻量级神经网络模型的内河船舶目标识别方法及系统 | |
CN109583483A (zh) | 一种基于卷积神经网络的目标检测方法和系统 | |
CN112287941B (zh) | 一种基于自动字符区域感知的车牌识别方法 | |
CN111968138B (zh) | 基于3d动态边缘不敏感性损失函数的医学图像分割方法 | |
CN111563418A (zh) | 一种基于注意力机制的非对称多模态融合显著性检测方法 | |
CN112200045A (zh) | 基于上下文增强的遥感图像目标检测模型建立方法及应用 | |
CN111652273B (zh) | 一种基于深度学习的rgb-d图像分类方法 | |
CN117253154B (zh) | 一种基于深度学习的集装箱弱小序列号目标检测识别方法 | |
CN110852327A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111739037B (zh) | 一种针对室内场景rgb-d图像的语义分割方法 | |
CN115631344A (zh) | 一种基于特征自适应聚合的目标检测方法 | |
CN116279592A (zh) | 一种用于无人物流车的可行驶区域划分方法 | |
CN112396036A (zh) | 一种结合空间变换网络和多尺度特征提取的遮挡行人重识别方法 | |
CN115797629A (zh) | 基于检测增强和多阶段边界框特征细化的实例分割方法 | |
CN113221731B (zh) | 一种多尺度遥感图像目标检测方法及系统 | |
CN114596480A (zh) | 一种基于yolov5优化的海底生物目标检测方法和系统 | |
CN110136098B (zh) | 一种基于深度学习的线缆顺序检测方法 | |
CN117152601A (zh) | 一种基于动态感知区域路由的水下目标检测方法及系统 | |
CN115860139A (zh) | 一种基于深度学习的多尺度船舶目标检测方法 | |
CN114708591A (zh) | 基于单字连接的文档图像中文字符检测方法 | |
CN114463614A (zh) | 使用生成式参数的层次性显著建模的显著性目标检测方法 | |
CN113159158A (zh) | 一种基于生成对抗网络的车牌矫正与重构方法及系统 | |
CN112598055A (zh) | 头盔佩戴检测方法、计算机可读存储介质和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |