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的公式如下:
其中, 分别表示第q次迭代的模型网络参数中,对应的第l层的卷积层的参数、偏置向量的参数、BN层的参数;η表示超参数中的学习率为0.00128;
和 分别表示对应卷积层的参数、偏置向量的参数和BN层的参数的梯度,通过链式求导法则求得。
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。