阮祥伟, 李 华, 余 烨
(1.中国电子科技集团 第三十八研究所,安徽 合肥 230088; 2.合肥工业大学 计算机与信息学院,安徽 合肥 230601)
车标作为车辆制造商的标识,难以进行更改和去除,是提取和判别车辆信息的重要辅助手段[1]。车标检测的研究存在着诸多挑战,如车标种类繁多、形状复杂、在图像中占比过小、部分车标相似度大、背景干扰信息复杂和图像分辨率参差不齐等,因此车标检测仍然存在很大的研究空间,快速、准确地检测和识别车标成为越来越多学者关注的问题。
传统的车标检测方法大多是先根据车牌的位置对车标进行粗定位,然后对粗定位区域做形态学处理实现精定位,最后使用手工描述子提取特征进行分类。文献[2]首先使用局部特征描述子(local binary pattern, LBP)算法提取特征,利用级联(cascade)分类器对车牌进行定位,根据车牌的位置确定车标的粗定位区域;然后根据粗定位区域的边缘梯度特征对车标进行精定位;最后使用方向梯度直方图(histogram of oriented gradients, HOG)提取特征,结合支持向量机(support vector machine, SVM)分类器进行识别。文献[3]在车牌位置确定的前提下,根据车标和车牌的相对位置,使用HOG算法提取特征,然后采取多尺度滑动窗口的策略,结合SVM分类器对车标进行识别。文献[4]首先检测出车辆的位置,然后分割获得感兴趣区域,提取感兴趣区域的HOG特征,使用自适应提升(adaptive boosting, Adaboost)算法和SVM分类器对车标进行分类。
传统的车标检测算法存在如下缺点:① 由于传统车标检测算法大多是基于车牌位置提出的,因此车牌定位精确度会直接影响车标的检测;② 不同光照的复杂性也会使得形态学处理较为困难,难以获得准确的车标位置;③ 手工描述子固定不变,无法准确地提取车标完整的特征信息,影响车标的识别率。
随着计算机硬件的不断发展,原本受限于计算机算力和内存的深度学习得到迅速发展,越来越多的学者开始针对卷积神经网络(convolutional neural network, CNN)进行深入研究,基于卷积神经网络的车标检测算法也在迅猛发展。文献[5]提出了基于区域的卷积神经网络(region-based CNN, R-CNN)算法,该算法首先生成候选框区域,使用CNN网络提取候选区域的特征,通过SVM进行分类,得到待检测目标的位置和类别。相比于传统方法,R-CNN在目标检测的精度上提升很大,但是需要对每一个候选框的原始图像进行特征提取,且候选框的数目巨大,导致算法速度非常缓慢。因此,文献[6]提出了faster-RCNN目标检测算法,通过区域建议网络(region proposal network, RPN)结构代替过去比较耗时的选择性搜索方法,在速度上得到了很大的提高。R-CNN系列方法虽然在目标检测的精度上有很好的效果,但是需要先选出候选区域,然后提取特征进行分类,导致检测速度很慢。
为了使检测的速度变得更快,满足实时要求,文献[7]提出了更快的One-Stage目标检测方法YOLO,相比于R-CNN系列的Two-Stage检测方法,YOLO避免了候选区域的生成,直接通过卷积神经网络进行目标检测和定位,因此YOLO的检测速度更快,但是其检测精度特别是对于小目标的检测精度有所降低。针对One-Stage方法检测精度低的问题,文献[8-9]对YOLO算法进行了优化和改进,提出了YOLOv2[8]和YOLOv3[9],使用了锚框辅助定位、多尺度训练、残差结构优化网络、特征金字塔等方法提高检测精度。YOLOv3算法在检测的精度和速度上都有很大的提升,性能超过了SSD[10]、DSSD[11]和RetinaNet[12]等目标检测算法。文献[13]针对车标和小目标的检测问题对YOLOv3进行改进,改进的YOLOv3能够在所给的车标检测数据集中快速地检测出车标,但是检测精度有待提升。大多数目标检测方法都需先穷举出目标可能存在的区域,然后对该位置的物体进行分类,这样不仅步骤繁琐,还会浪费大量的时间。为解决上述问题,文献[14]提出了CenterNet目标检测算法,该算法首先采用关键点估计找到中心点,然后再回归目标的尺寸和偏移方向。与基于包围盒的检测器相比,CenterNet是端到端可微分的,具有更简单直观的优势,检测速度更快,并且直接应用于车标检测任务中也有着良好的表现。
针对车标这一目标,本文以YOLOv3算法为基础,对其进行改进,并提出了一种速度快、精度高的车标检测算法(network of vehicle logo detection,NVLD)。本文重新设计了一种特征提取网络,替代YOLOv3中的基础网络Darknet-53,使得对车标等小目标的特征提取速度更快,更加精确;改进特征金字塔网络结构,融合更多的浅层卷积层特征信息,提升网络对于车标小目标的检测精度;在YOLOv3损失函数的基础上设计并添加了IOU损失函数,能够更准确地进行边界框回归,提高车标检测的精度。实验结果表明,针对车标这一目标,本文提出的车标检测算法比其他目标检测算法的准确率更高、检测速度更快。
NVLD骨干网络的输入是416×416×3大小的整车图像,其中3为输入图像的通道数,2个416分别为输入图像的宽和高。经过骨干网络的各个卷积层将特征图的尺寸大小和通道数依次调整为208×208×64、104×104×128、52×52×256、26×26×512、13×13×1 024。本文借鉴MobileNet网络中的深度可分离卷积策略,先使用1×1的卷积核控制各个通道组卷积后的通道数,再使用3×3的卷积核对各个通道组进行卷积,从而减少了计算量和存储空间,提升了提取特征的速度,进而提升了车标检测的速度。NVLD骨干网络共由33个卷积层构成,如图1所示。图1中每个卷积层用“Cfk/sg”表示,C、f、k、s分别表示通道数、卷积核大小、步长和分组数。在每个卷积层后增加批量归一化(batched normalization,BN)和修正线性单元(rectified linear unit, ReLU)操作。图1中虚框表示改进的残差结构,它采用2个分支的卷积操作,将输入为2x×2x×f(高×宽×通道数)的特征图转化为2个x×x×2f的特征图,并进行特征值相加。
图1 NVLD骨干网络结构
特征金字塔结构可以提高目标检测的精度,已被广泛应用于目标检测,尤其是小目标检测算法中。特征金字塔网络(feature pyramid networks, FPN)[15]目标检测算法对经典的特征金字塔进行改进,通过上采样的方式,重用浅层网络卷积层的信息,利用多尺度融合检测机制,提高了小目标检测的准确率。
本文针对车标等小目标所表现出来的特点进行分析,在FPN的基础上,对在特征金字塔结构中利用浅层网络卷积下采样和反卷积上采样的操作,加以多尺度、多特征层融合的方式,提高浅层特征的利用率,经典的FPN和本文改进的FPN结构如图2所示。
图2 经典的FPN和本文改进的FPN结构
首先,对骨干网络中13×13×1 024大小的特征图进行反卷积操作生成26×26×512大小的特征图,然后将反卷积操作获得的特征图与骨干网络中26×26×512大小的特征图对应值相加,即进行Add操作。
其次,对骨干网络中52×52×256大小的特征图进行卷积下采样操作生成26×26×512大小的特征图,然后将生成的特征图与Add操作得到的特征图进行特征值通道叠加,即Concat操作,形成一个新的融合了更多浅层信息的26×26×512大小的特征图。同样地,将26×26×512大小的特征图进行反卷积操作生成52×52×256大小的特征图,然后与骨干网络原有的52×52×256大小特征图进行Add操作,再与骨干网络中104×104×128大小特征图经过卷积下采样后生成的52×52×256大小的特征图进行Concat操作。
最后,本文对13×13×1 024大小的特征图和新的26×26×512、52×52×256大小的特征图进行一系列卷积操作,利用YOLOv3检测模块进行边界框回归和类别预测。
目标检测任务的目的包括检测图像中目标的位置与类别,为了衡量这2个最重要的因素,最常用的评估指标是平均精度均值(mean average precision, mAP),其中,评价预测的边界框是否准确的指标是交并比(intersection over union, IOU)。YOLOv3的损失函数包括置信度损失函数Lossobj、中心坐标损失函数Losscenter、宽高大小损失函数Lossscale和类别损失函数Losscls。为了更精确地回归出边界框,本文在YOLOv3损失函数的基础上增加了一个IOU损失,IOU损失的计算公式为:
Lossiou=1-IOU
(1)
(2)
Lossnvld=Lossobj+Losscenter+Lossscale+Losscls+Lossiou
(3)
(2)式中,A、B为预测边界框和真实边界框;IOU为预测边界框和真实边界框的交集与并集的比值;σ为很小的正数,保证|A∪B|+σ和Lossiou的值大于0。由定义可以看出,IOU具有尺度不变性,而且与评价标准一致,因此更能精确地表示边界框预测是否准确。如(3)式所示,本文的损失函数Lossnvld是由YOLOv3的损失函数(Lossobj+Losscenter+Lossscale+Losscls)增加IOU损失函数Lossiou组成的。
本文用于车标检测研究的数据集是HFUT-VL3,来源于中国高速公路上的卡口系统抓拍的车辆图像,经过筛选并去除背景等处理,只保留整车图像。车标检测算法主要用于辅助公安部门进行车辆信息的提取,车辆主要来源于公路上卡口抓拍的图像,因而本文使用公路卡口系统抓拍的图像做数据集更加符合要求,具有更高的实际意义。
值得注意的是,公路卡口系统中的摄像头主要抓拍露天图片,会受到天气的影响,如遇雨雪、大雾等恶劣天气,就会出现夜晚整体图像低光、车灯高光、反射前车灯或者卡口的光导致局部高光等不利情况。这些干扰因素增加了车标检测的难度,对车标检测算法的要求更高,更具挑战性,因此,本文旨在更好地克服这些难题。HFUT-VL3数据集的示例图像如图3 所示。
HFUT-VL3 车标检测数据集共7 021张,图片大小从156×232到515×422,总计27类车标,种类如图4所示。
本次实验使用4 948张图像作为训练集,2 071张图像作为测试集,每种类别的训练和测试比例大约为2∶1。
图3 HFUT-VL3数据集示例
图4 27类车标
本实验的软件环境为MXNet深度学习框架、Cuda10.0,硬件为Intel Core i7-8700 K CPU、32 GiB内存和2080Ti显卡。本文的结果是在损失函数趋于稳定以后,取后20次迭代的网络模型对测试集进行测试,并对所得的结果求其均值,因此排除了偶然性,更能表现算法的实际效果。
本文计算mAP时设置IOU的阈值为0.5。当IOU为0.5时,预测的边界框和真实的边界框相交的面积大约是真实边界框的2/3,一定程度上能够保证车标定位的准确度。若IOU阈值增大,为满足预测框和真实框的交并比不低于阈值,相应的预测框会减少,漏检的车标会增多;相反,若IOU阈值减小,预测框定位不准确,误检的车标可能会变多。综上所述,为了满足实际需求,选择IOU为0.5计算mAP的值。
基于YOLOv3检测方法,本文提出的NVLD算法针对车标,一方面改变了提取特征的基础网络,使之更快、更加准确地提取特征;另一方面,改变了特征金字塔的上采样方式,对浅层网络进行特征重用,对小目标的检测更准确;最后增加了IOU损失,使得预测的边界框更符合评价标准,提高了检测的精度。为验证上述改进的有效性,本文针对改进内容进行结果对比,见表1所列。
表1中,速度为训练时每秒处理的图像数目;OBB(our backbone)是使用本文的骨干网络替代YOLOv3的骨干网络(Darknet-53)形成的车标检测网络;OBB+OFPN(our backbone+our FPN)是在YOLOv3的基础上使用本文的骨干网络和改进的特征金字塔结构形成的车标检测网络;OBB+OFPN+IOUloss (our backbone+our FPN+IOUloss)是在YOLOv3的基础上将本文的骨干网络和改进的特征金字塔以及以IOU作为损失函数组合而成的NVLD车标检测网络。由实验结果可以看出,相对于YOLOv3的骨干网络Darknet-53,本文的骨干网络在稍微提高检测精度的前提下,在速度上提高了大约2倍;针对车标小目标改进的浅层网络信息重用的特征金字塔结构mAP提升了将近1%;针对边界框回归设计的IOU损失函数也将检测精度提升了近0.4%。综合所有的改进,相比于YOLOv3检测网络,本文车标检测网络的mAP提升了1.5%,而检测速度仅仅是YOLOv3的1/2。
表1 改进有效性验证结果
为了评估本文提出的车标检测方法比其他检测网络的检测具有优势,本文将提出的NVLD与其他检测方法进行实验比较。实验结果见表2所列。从表2可以看出,针对车标检测算法任务提出的NVLD算法具有最高的mAP。对于Two-Stage算法,以Faster-FCNN为代表,本文的NVLD算法在精度上略高于Faster-RCNN,在速度上是Faster-RCNN的近20倍;对于One-Stage算法,如YOLO、SSD和DSSD,其检测精度mAP均低于NVLD检测算法,相比于YOLOv3算法(Darknet-53为骨干网络),本文车标检测算法的mAP提升了1.5%;相比于SSD算法(VGG16为骨干网络),NVLD算法的mAP提升了近2%;以MobileNetv1为骨干网络的YOLOv3速度是最快的,但是mAP比NVLD低了近3%;对于免锚框的One-Stage算法CenterNet,NVLD的mAP也略高于CenterNet,检测的速度也比CenterNet快;NVLD车标检测算法的mAP为94.91,比其他检测算法的mAP都高,检测速度更是达到了74张/s,表明本文的车标检测算法NVLD综合了速度和精度的优势,更适合实际生活中的车标检测任务。
表2 NVLD与其他算法的比较
基于YOLOv3检测算法,本文提出了一种速度更快、精确度更高的车标检测方法NVLD。首先在借鉴MobileNet和ResNet思想的基础上,NVLD检测方法采用一种新的特征提取基础网络,用于代替YOLOv3的基础网络Darknet-53,提高了检测的精度和速度;其次NVLD针对车标小目标修改了YOLOv3中的特征金字塔结构,使用反卷积的方式进行上采样,并用特征值加的方式融合了更多的浅层卷积层信息;最后在损失函数部分增加IOU损失更加全面精确地进行边界框回归。实验结果表明本文提出的车标检测方法在速度和精度上都有很大的提升,更加符合车标检测的实际需求。