改进YOLOv3的车辆实时检测与信息识别技术

2020-11-18 09:15徐旭东
计算机工程与应用 2020年22期
关键词:张量定位车辆

顾 恭,徐旭东

北京工业大学 信息学部 计算机学院,北京100124

1 引言

近些年来,由于全国以及全球各地汽车数量的飞速增加,用于管理和统计相关车辆信息的成本也在逐渐提高。随着计算机视觉以及人工智能技术的突破和不断发展,可以用于目标检测的识别模型越来越多,在对其背后原理逐步深入研究的同时,预测效果也有了相应提升。该领域的相关研究不但可以使工作人员在周期性的海量车辆检查中借助更新的技术加以辅佐,提高审核检查效率和准确率;也可以使露天或地下停车场的车辆信息管理调配工作得到更好的帮助。除此之外,对于车辆信息以及行驶道路上各类物体的实时准确预测更可以让自动驾驶技术在未来广泛普及成为可能[1-2]。

目前,存在几种常见模型可以在复杂无约束场景下对目标物体进行快速定位与识别,分别是R-CNN(Region-Convolutional Nerual Network)系列、SSD(Single Shot Multibox Detector)系列以及YOLO(You Only Look Once)系列等。R-CNN 模型存在着不能快速定位物体的问题,其主要原因是模型算法对于单元格产生的候选框过多且易重复,而每一次选择都需要代入卷积神经网络模型加以识别,得出物体的预测置信度和具体坐标位置,这一步骤在单一图片的处理上会消耗极多的时间。而SSD模型会随着输入图片的规格扩大,运行效率显著下降,故在目前的硬件条件下两种模型均无法做到实时预测的效果。

YOLO[3-5]系列的出现无疑在目标检测领域带来了极大地利好,YOLO严格遵循了该模型本身的名称要素You Only Look Once[6]。其含义是在有限的特征图和单元格内,只需要对每个单元格进行一次候选框集的判断即可得出该单元格是否存在物体的预测结果。这一理念使得目标检测的效率快速提升,在目前的硬件条件下,实时检测的速度可以达到40~50 f/s(每秒图像的传输帧数),完全满足人们对实时定位模型在使用方面的速率需求。在准确性上,YOLO虽然凭借较为出色的算法思想能够做到略强于上述经典算法,但仍然无法在高速变化且复杂的自然场景下满足多数物体类别的识别需要。因此,在特定的领域内,根据YOLO 的算法思想进行合理变换可以在保证实时性的基础上给特定物体的识别定位准确率带来提升[7-8]。

针对车辆定位中现存的近距离车辆定位不完整、中远距离车辆的定位存在忽视情况以及误检错检等现象[9],本文提出了一种Vehicle-YOLO的车辆实时定位与识别模型。该模型相比传统的YOLO算法,不但在自动驾驶数据集KITTI的训练和测试下有准确率的提升,并且对各类车辆模型的识别分类进行逐步细化,以求在保证实时性的前提下尽可能识别出车辆更为具体的信息,例如类型、颜色等。通过多类数据集的测试与性能分析,可以得出该模型在车辆快速定位与信息识别方面相比经典模型具有更好的表现。

2 YOLOv3模型概述

YOLOv3[5]是YOLO系列的最后一个版本,由Redmon、Farhadi二人提出。该模型主要分为Darknet-53卷积神经网络特征提取和特征图预测识别两大部分,前者用来提取图像中的多类特征,在图像尺寸降维的同时给特征通道升维,以此来获得更多、更全面的图像特点,并传输至三种不同尺寸的特征图进行相应物体的置信度和区域坐标预测。

2.1 Darknet-53

Darknet-53卷积神经网络模型的结构图如图1所示。

图1 Darknet-53网络结构图

YOLOv3 的特征提取模型Darknet-53 与传统CNN网络模型结构不同,Darknet-53舍弃了常用的池化层和全连接层,用改变卷积核步长的方式控制张量的维度,逐步达到尺寸降维、通道升维的目的。这种方法在一定程度上加强了模型的特征提取能力,使Darknet-53在完整一幅图像内搜索所占图像比例较小的物体时变得更加敏感和准确,有利于后续预测与定位。

一幅图像在该模型中一共产生5次尺寸降维,每次的高和宽均降为输入尺寸的1/2,在每次降维后共使用5层的深度残差结构来强化网络的特征提取能力且保持传入传出张量的维度一致。其中,每块残差层的算法流程如图2所示。

图2 深度残差网络算法流程图

残差网络算法流程如图2所示,在模型中加入残差层的主要目的是保持通道维度不升高的情况下对图像特征进行深入提取,并且采用输入张量与先降维再升维后的变换张量相加的方式控制前馈网络中的梯度变化,有效防止了梯度消失或梯度爆炸等问题。具体算法步骤如算法1所示。

算法1 残差层优化模型梯度算法

输入:张量x,其图像宽、高和特征维度分别为x.shape=[w,h,channels];中间层及输出层卷积核数量filters1、channels。

输出:张量y,其图像宽、高和特征维度分别为y.shape=[w,h,channels]。

1. tmp=x,将输入张量x 传至缓存变量中

2. 对张量tmp 进行卷积操作,传入参数tmp、卷积核数量filters1,输出张量的维度为tmp.shape=[w,h,filters1]

3. 对步骤2得到的张量tmp 进行第二次卷积,传入参数tmp、卷积核数量channels,输出张量的维度为tmp.shape=[w,h,channels]

4. 对张量x 与张量tmp 在特征通道上进行合并,令y=x+tmp,其中y.shape=[w,h,channels]

5. 算法结束,return y

在5 次残差层的使用当中,提取后3 次输出的张量y1、y2、y3作为后续特征图预测的输入变量。以416×416像素的图像为例,第一个特征图输出的张量维度为y1.shape=[52,52,256],第二个特征图输出的张量维度为y2.shape=[26,26,512],第三个特征图输出的张量维度为y3.shape=[13,13,1 024],对于特征图尺寸越小的张量,其具有的特征维度越高。

2.2 特征图

Darknet-53 的每个输出张量各自通过相应的卷积、批标准化、激励函数作用以及上采样技术得到真正用于目标定位的特征图。其中,上采样技术的引入是为了保证卷积等操作在3个特征图上的共用性,在YOLOv3中是通过扩大y3的宽、高尺寸与y2级联,扩大y2的宽、高尺寸与y1级联实现的。

特征图内的每个像素点作为一个单元格,在给定的候选框内进行物体的置信度判断,通过非极大值抑制(Non-Maximum Suppression,NMS)算法提取每个单元格内置信度最高的候选框并输出最终结果。

3 Vehicle-YOLO模型

YOLOv3模型最终的预测结果包含多方面,分别为不同物体种类的概率以及对应在图像中该物体的矩形坐标信息,故根据YOLOv3 的结构特性可以得知,在预测框坐标为固定输出的前提下,预测的物体种类数量与最终输出张量的参数数量正相关,同时与卷积神经网络和完整预测模型的运算复杂度正相关。对于自然场景下的特定物体预测,如自动驾驶领域内最重要的车辆定位等,所需要识别的目标种类较少于生活中的常见物体种类。因此,在更加有针对性地定位车辆信息这一前提下,合理改变模型的特征提取能力,重新架构模型框架有利于定位和识别准确率的提高。

本文提出的Vehicle-YOLO 模型基本架构如图3 所示。Vehicle-YOLO 模型在深度残差网络、图像的传入规格、特征图数量及维度、上采样方式、损失函数的定义几方面做出了详细设计与架构,使模型在保证实时性的前提下,对车辆的定位与识别准确率有了进一步提升。

3.1 深度残差网络

Vehicle-YOLO 模型在卷积神经网络特征提取能力上做出了新的设计与改善,其网络结构如图4所示。

在Vehicle-YOLO中,采用了7个深度残差网络块强化网络的特征提取能力,并通过7次对传入图像的尺寸降维,逐步地缩小图像的宽、高,每次的缩小系数为0.5,共计图像尺寸缩小为原先的1/27=1/128。同时,为了避免张量维度和卷积核数量不断升高所带来的模型复杂度增长,在第五、六个深度残差网络块执行前新增两层卷积层,以此来降低张量的特征维度。在扩展模型运算深度的同时避免其预测效率下降或产生梯度消失、梯度爆炸等不利于模型训练效果的影响因素。

图3 Vehicle-YOLO结构模型架构图

图4 Vehicle-YOLO特征提取网络结构图

3.2 图像参数

本文提出的Vehicle-YOLO模型在传入数据的规格上选用宽、高均为512个像素点,整体像素为512×512的预处理图像。图像在预处理后保留了实际场景下获取到的原有图像宽高比,并按照相应尺寸进行等比缩放,有效避免了因直接更改图像尺寸而带来的多数目标物体的不规则形变以及失真情况,提高了识别准确率。

根据车辆目标定位在应用领域和对应功能的不同,本文最终选取了512×512 的图像作为传入数据。随着传入数据的规格在模型中不断缩小,所获得的特征图越小,则模型感受图像“野”的能力就越强,对图像会有更宏观的认知。例如在自动泊车或停车场调度系统中,需要对距离较近的车辆进行快速定位和信息提取,尤其是在狭小空间内需要对车辆周身进行完整的判断,若有车门打开占据行驶过道时也应该完整识别并标注,在车辆停靠至车位时,需要及时检测并反馈识别信息至对应的停车管理系统当中。因此在该场景或类似应用领域内,需要模型对较大目标的识别能力强、精度高,故在Vehicle-YOLO 中,输入数据的原有规格会经过7 次缩小,最终从512×512的传入数据规格变为4×4的输出数据规格,而小特征图更有助于模型精确识别较大目标。但在自动驾驶、车载记录仪和实时监控系统等应用领域内,往往需要设备对中远距离的目标做出预测和反应,因此需要较大的特征图提供更为细节的特征,以便于模型对中小型目标的存在更为敏感。最终,Vehicle-YOLO选用了64×64 的较大特征图作为定位较小目标的主要特征数据源。由于最小的特征图需要在原有图像的规格基础上缩小128倍,且尽量保证其缩小后规格仍为整数,以避免丢掉更多细节特征,故Vehicle-YOLO选取了512×512的图像作为输入数据。经后续实验证明,缩小和扩大图像的传入规格均对模型的检测实时性或检测精度存在一定影响。

3.3 特征图维度

Vehicle-YOLO 模型将会提取5 个不同规格的特征图,特征图对应张量维度由大到小依次为[64,64,X]、[32,32,X]、[16,16,X]、[8,8,X]、[4,4,X]。

Vehicle-YOLO 特征提取网络结构如图5 所示。其中,CBL模块含有Convolution(卷积)+Batch Normalization(批标准化)+Leaky Relu(激励函数)三大基本组件[10],在每种特征图内执行6 次,分别为3 次降维和3 次升维操作穿插进行,使模型的表征能力再度提高。根据应用领域的不同,可适当更改CBL 模块的使用次数和使用方法,以调节模型复杂度和识别效率。

图5 Vehicle-YOLO模型结构图

Vehicle-YOLO 的预测结果在输出前需要将通道维数调整至X 。其中,X 的计算方法如式(1)所示:

在式(1)中,A 为每个单元格作为独立的预测单元所预设的候选框数量,4为确定一个矩形所需要的中心点坐标(bx,by)及其宽bw、高bh,其定义及计算方法如下:

其中,tx、ty、tw、th分别为该矩形相对单元格左上角的相对位置,pw、ph表示候选框的宽、高,cx、cy表示单元格距离图像左上角横纵坐标的距离。在Vehicle-YOLO训练过程中,模型需要根据预设候选框学习出实际的边界框信息,并预测出相对位置,再根据式(2)~(5)的转换计算得到该边界框在完整图像内的实际位置。

预测得到矩形中心点坐标及宽、高信息后,式(1)中的1为每个候选框含有物体的置信度,S 为模型中所有可识别物体的类别数量。其中,4+1+S 是模型为一个单元格所提供的输出信息,假设某一特征图所对应张量yi的维度yi.shape=[N,N,X],则该特征图在Vehicle-YOLO预测模型下的所有输出变量总和Num 的计算方法如式(6)所示。

文本提取的5个特征图,N 分别为64、32、16、8、4,所有特征图共包含5 456个用于进行目标定位的单元格(以特征图保留下的像素作为单元格),并且每个单元格预设三种构成比例完全不同的识别候选框,即A=3,可识别目标的种类根据数据集和需求的不同会产生变化,以单独识别车辆为例,S=1。依次检查全部特征图内所含有的单元格,根据含有可识别目标的置信度以及检测到的确切目标类别配以相应的参数权重进行候选框的微调,以提高目标检测时的准确率和精度。

五种不同规格的特征图[11]通过还原预测目标的真实信息和使用NMS算法得出一幅图像完整的各目标定位结果。

五种特征图分别的检测结果以及车辆综合识别结果如图6 所示。可以看出,对于规格越大的特征图,其预测出的边界框相对越小,如图(a)、(b)中,64×64、32×32的特征图对远距离的目标有很强的检测效果;而随着特征图规格的不断减少,预设边界框的微调幅度会逐步扩大,即还原回原图像后包含和跨越的像素数量越多,故越小的特征图对于图像中大目标的敏感程度越强,如图(c)、(d)、(e)所示;而图(e)中4×4的特征图只检测出了图像中最大的车辆,说明在运行负载允许的条件下,适当延展特征图的规格可以优化模型对目标特征的适应程度,以满足不同场景下的业务需求;最终五种特征图结合并使用非极大值抑制后的检测结果如图(f)所示。

3.4 上采样

YOLOv3 在使用Darknet-53 卷积神经网络提取出三种不同规格的特征图张量后,需要再次对每种张量进行维度调整,分别使用了4 次1×1 大小的卷积核进行降维调整以及3 次3×3 大小的卷积核进行升维计算。Vehicle-YOLO继续采用了这一方法对图像特征进行更全面的提取,但是更改了传统YOLO中所用到的上采样方法,即直接传入上一层特征图所对应张量的数据进行后续计算。该步骤用直接上一层特征图对应张量的传输数据代替了原本需要一次卷积降维操作后,经过最近邻域插值算法使上一层特征图对应张量与当前特征图对应张量级联[12]后的结果。这一改变降低了图像扩张和卷积降维操作带来的计算负荷,减少算法复杂度,且预测精度仍与使用原先上采样方式的模型预测结果相对一致。其原因是最近邻域插值法使特征图宽、高均扩大一倍,以便于级联上一层特征图对应张量,但图像扩充算法在改变图像规格后无法完全达到还原图像的目的,易丢失图像特征,且随着3.1节所述的深度残差网络块的增多,特征图对应的张量均含有较多图像细节,基本无需通过级联方式为每个张量提供更多的细节特征,故在算法效率提高的同时,预测准确率不降低。算法步骤如算法2所示。

图6 特征图识别效果展示

算法2 上采样算法

输入:特征图对应张量列表feature_maps。

输出:特征图对应张量的预测列表results。

3.5 预设候选框

Vehicle-YOLO使用K-means聚类算法对单元格的预设候选框进行预测,每个单元格使用三种不同宽高比的候选框,每类特征图采用相同的三种候选框。在KITII 车辆自动驾驶数据集下,15 种预设候选框的大小分别为(10×30),(15×42),(21×64),(23×24),(25×38),(29×81),(35×51),(42×105),(48×65),(58×142),(60×255),(68×88),(82×179),(87×117),(110×42)。

3.6 相关改进工作

在YOLOv3的预测模型中,目标检测任务被看作是关于目标的区域预测以及目标种类预测的逻辑回归问题,其每个单元格的输出结果包含三方面,分别为预测边界框的坐标信息、含有物体的置信度、归为某种物体的概率。本文提出的Vehicle-YOLO模型仍沿用这样的思想对每次训练中的误差进行计算,误差损失函数由三部分构成,如式(7)所示:

其中,lossbbox为预设候选框在向真实边界框回归拟合时产生的损失,lossconfidence为该预测边界框内是否含有目标物体的置信度损失,lossprediction为目标识别时所带来的分类损失。Vehicle-YOLO使用二分类交叉熵作为物体分类时损失函数的计算方法,即将所有类别的划分问题归为该物体是否属于此项类别,这样就可以将多分类问题转化为二分类问题,具体计算方式如下所示:

其中,logitsij、pij、yij分别为第i 个物体在第j 个类别上的预测值、激励值、真实值。使用多个二分类问题叠加的方式处理多分类问题带来的好处是多个类别的识别之间并没有互斥性。在车辆检测场景中,对于一些可能同时属于多种类别的汽车(如货运轿车、运动越野车等),可以给予多重标签的定义,具体检测示例如图7所示。

图7 货车与轿车的双标签车辆检测(左下)

此外,本文还将lossbbox中用到的传统IoU替换为效果和检测机制更贴近真实场景的GIoU[13],即广义IoU作为判断预测边界框和真实边界框误差的重要标准,计算公式如下:

式(10)、(11)中的C 为最小闭合凸平面,具体示例如图8所示。

图8 最小凸平面示例

从图8 可以得出,IoUA=IoUB=0,引入GIoU 可以有效避免因预测框与实际框在不相交时无法进行优化的问题。此外,当传统IoU对于不同情况计算结果相同时,GIoU 也能区分出更好的结果。具体示例如图9所示。

图9 IoU与GIoU计算示意图

图9 中的三幅图IoU=0.33,但GIoU 的值分别为0.33、0.24、-0.1。说明预测框与实际框的重叠度和对齐度越好,GIoU的计算结果也越高。

为了加快Vehicle-YOLO在训练中损失函数等各项指标的收敛速度,本文对模型部分卷积层的起始参数进行了迁移学习。使用YOLOv3 的Darknet-53 特征提取模型在COCO数据集上对80种不同种类物体的预训练参数作为Vehicle-YOLO 部分卷积层的共享参数,并在训练中加以微调。全部训练共进行50 000次迭代,对全部共享卷积层进行学习率为10-4的20 000 次微调训练,并分别降低学习率为10-5和10-6,各进行15 000次对于模型全部参数的迭代训练。

此外,Vehicle-YOLO 采用数据增强的方式对训练数据进行预处理。传入图像在进入训练模型前分别有50%的概率进行图像水平翻转、图像随机裁剪以及图像角度轻微抖动的操作,以保证传入图像的多样性,尽可能模拟图像采集时的多种影响因素,还能够防止因训练数据不平衡所带来的过拟合或预测精度降低等问题。

4 实验结果与分析

4.1 实验环境

Vehicle-YOLO 模型使用python3.6 进行编译和测试,对应的开发工具Pycharm2018.1.4,主计算机视觉库Python-OpenCv3.4.2,可视化工具PyQt5.1,操作系统Windows10,CPU为i7-6700K的四核处理器,主频4 GHz,显卡GTX 1080Ti,内存32 GB,硬盘容量2 TB SSD。

4.2 数据测试与性能分析

4.2.1 基于KITTI的自动驾驶数据集测试

本文使用KITTI数据集[14]中的图像内容作为Vehicle-YOLO 车辆信息实时检测模型的数据。该数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办,是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集。在复杂实际场景的图像采集方面,KITTI不但包含了城区、乡村和高速公路等不同环境下的真实图像,而且在每张图像中最多可以达到15 辆汽车和30个行人[15],囊括复杂自然场景下的各类遮挡物与截断目标,能够满足复杂无约束场景下的车辆实时检测模型Vehicle-YOLO对于数据全面性的需求。

KITTI 为车辆目标的检测提供了四种不同的车辆类别标签,分别为Car、Van、Tram以及Truck,共含有7 481张图片。本文按照训练集∶验证集∶测试集=8∶1∶1的比例对KITTI 数据集在每次传入Vehicle-YOLO 模型训练前进行随机划分和数据增强处理。最终得到用于训练的图像数量5 984、验证集的图像数量748、测试集的图像数量749。表1 为单次数据集划分后,四种不同类型的车辆标签所对应的实际数量,为了使训练后的模型具有更好的实际效果,每次划分后的车辆类型真实数量会产生微小波动。

表1 划分后各集合中包含车辆类型标签的真实数量

本文使用Vehicle-YOLO模型对KITTI随机划分后的训练集进行了3次训练,将平均均值精度(Mean Average Precision,mAP)和画面每秒传输帧数(Frames Per Second,FPS)作为主要测试指标,mAP与FPS的计算公式如下:

其中,T 为单一图片内满足IoU 阈值的正确检测数量,S 为该类别在此图片上的总数,N 为用于测试的图像数量,M 为总检测类别数。

式(15)中,Framecount为处理图像的数量,Elapsedtime为处理Framecount所用时间。

对R-CNN、Faster R-CNN、SSD 等经典模型、传统YOLOv1-3 模型以及本文提出的车辆目标检测模型在实时性和检测精度上进行重点测试和考量。实验结果如表2所示。

表2 KITTI数据集在不同目标检测模型上的测试结果

在KITTI 数据集上各模型的实验结果如表2 所示,其中对本文提出的Vehicle-YOLO车辆检测模型进行了3次训练,分别用训练后得到的权重文件在测试集上进行测试。从表2得出,传统的YOLOv3算法模型在目标检测上的实时性和定位准确率都优于近些年提出的其他目标检测模型,其拥有接近50 的图像传速帧数和92.2%的平均均值精度。Vehicle-YOLO 因为在图像的传入规格上从传统YOLOv3 的416×416 变为512×512,且拥有五种不同规格的特征图共同进行目标预测,在定位准确率上有了进一步提升,经过3次测试集检测得到的平均均值精度分别为96.3%、96.6%、96.2%,意味着模型对车辆的敏感程度较高且保持在相对稳定的水准,不会因神经网络初始化参数的变化而对定位结果产生较大影响。在实时性方面,由于Vehicle-YOLO 的预测单元格总数从52×52+26×26+13×13=3 549 变为64×64+32×32+16×16+8×8+4×4=5 456个,且增加了对应的残差网络块,算法复杂度略有提高,但仍然可以保持41左右的每秒图像传输帧数,完全满足对于复杂场景实时检测的速度需求。

Vehicle-YOLO 因为特征图的增加,强化了模型对“野”的感受和细节特征的提取效果。这一结构性变化使得Vehicle-YOLO 对远距离的小目标更加敏感,容易发现并识别它们;对近距离的大目标有更好的判断,定位精度进一步提高。部分测试效果如图10~图12所示。

为了更清晰地体现两种模型在车辆定位和识别上所产生的差异,用绿色的“Car”识别预测框统一代表传统YOLOv3 中普通轿车的定位结果,而用蓝色“Car”的识别预测框代表本文提出的Vehicle-YOLO模型中普通轿车的定位结果。根据其余定位标签的颜色差异可以对比出两种模型在车辆定位和识别上的特点。受图像采集时的距离影响,远距离的车辆目标在图像中的显示比例较小,而相比传统YOLOv3,Vehicle-YOLO更不容易出现误判或漏判的情况。如图10(b)、(c)所示,YOLOv3在图像中部区域误将其中某辆轿车识别为货车,并用“Van”的红色边界框标出,虽然两种模型都将车辆在图像中的位置预测准确,但Vehicle-YOLO 模型在预测过程中更能避免误判的发生,精度略高。

图11(b)、(c)中,最右侧的卡车均被“Truck”所代表的黄色边界框表示出,但Vehicle-YOLO 在较大目标的特征提取中有更好的效果,故边界框的预测位置更佳,包含的车辆区域更加全面,冗余信息较少,这在进一步提取车辆多维信息的过程中会有较大帮助。且YOLOv3在图像中部出现了将复杂区域识别为货车“Van”的错判现象,本文提出的模型可以在车辆识别方面更好地避免此类问题的发生。

同样,图12(b)、(c)体现出Vehicle-YOLO在远距离目标的识别上具有优势,准确定位出远处货车并用标签“Van”的边界框标出。而在图像左侧区域,未产生与YOLOv3相同的错判情况。

通过KITTI的实验可以发现,在图像内较为明显车辆的检测过程中,YOLOv3 与Vehicle-YOLO 均具有较好的定位与识别能力,Vehicle-YOLO 对较大目标的定位精度更优,且Vehicle-YOLO 在复杂道路场景下更易避免错判、漏判、误判等情况的发生。

4.2.2 多种车辆数据集的综合测试

图10 两种模型检测结果对比图1

图11 两种模型检测结果对比图2

图12 两种模型检测结果对比图3

车辆目标定位作为自动驾驶或车辆调度系统等实际应用领域中的重要信息获取方式,不仅应满足对车辆的跟踪与位置识别,更重要的是在有限的目标区域内尽可能提取更多的车辆信息。Vehicle-YOLO模型无论是单一识别车辆这一目标或是利用KITTI 提供的四种不同类型的车辆标签进行检测,都不能真切地满足现实场景内对车辆信息定位及识别的真正需要。为了细化不同车辆的主要特征,同时也希望在初次完成定位时就采集到车辆进一步的信息,为后续车辆多维信息的获取提高准确率,节约时间,本文通过整合多种不同数据集,收集并标注了与车辆定位相关的训练与测试数据,对车辆的类型进行了重新汇总与扩充,包含10 种不同的车辆类型,以便于在定位伊始就可以对该车辆进行识别分类,为后续全面的信息获取做铺垫。包含10 种车辆类型的Vehicle_Type数据集分别从VOC2007-VOC2015[20]、KITTI[14]、UA-Detrac[21-22]以及自主采集等多个渠道进行获取,并对训练集的车辆实际区域进行手动标注,最终获得12 536张数据图像,近49 000个车辆数据用于训练和测试。

从表3的实验结果可以看出,随着模型识别种类的增加和不同类别数据数量的不平衡,测试结果相比KITTI略有降低,但仍然保持95.2%的平均均值精度,高于传统YOLOv3 约2.8 个百分点。在传输速率方面,因为增加的识别种类所带来的复杂度远不及模型本身参数的计算过程,故每秒传输帧数变化幅度不大。

表3 Vehicle_Type数据集在YOLOv3和本文模型上的检测结果

在车辆信息自动获取的相关应用领域内,目标车辆的类别也尤为重要,在快速定位车辆的同时还能对车辆类别进行直接识别分类对其余信息的获取准确性和识别速度均可以带来正向影响。本文选用300 张复杂无约束自然场景下的车辆图像对Vehicle-YOLO模型的车辆定位和识别分类能力做出测试,这些测试数据均来源于国内真实道路中的各类场景,每张图像包含的车辆较少且主体明显。车辆需要在Vehicle-YOLO定位后提取出类型、品牌、颜色、车牌内容、车牌颜色五种不同方面的信息,实验内容如表4所示。

表4 不同定位方式预测目标对车辆信息提取的影响

表4 中的单一定位方式指的是Vehicle-YOLO 模型对所有车辆只进行单一类型识别,统称为“Car”,车辆类型信息需要在定位后再次识别并分类;而多种类定位则选用本节提到的Vehicle_Type 数据集内的10 种不同车辆类别对车辆在定位的基础上直接进行类型识别。除此之外,车辆的品牌、颜色、车牌内容、车牌颜色等信息均采用一致的卷积神经网络训练模型进行识别。由表可以看出,多种类定位虽然对车辆信息的获取更加深入,但是受数据平衡性和种类特征相似性的影响,使得定位总数和五种信息的识别准确率略有不足。本文认为,扩充实验数据和平衡不同种类的训练目标数量应该对定位识别结果有所改善。部分车辆信息识别结果和可视化内容如图13~图18所示。

图13 露天场景下车辆定位效果图

图14 露天场景下车辆信息识别效果图

图15 地下停车场车辆定位效果图

图13 ~图18展示了部分Vehicle-YOLO模型在国内多种复杂场景下的车辆定位和信息识别效果。因为Vehicle-YOLO具有较好的中远距离目标定位能力,所以车辆在所占图像比例较小、画质较为模糊时,也能够有不错的定位效果,为后续的车辆多维信息识别提供保障。

图16 地下停车场车辆信息识别效果图

图17 中远距离模糊车辆定位效果图

图18 中远距离车辆信息识别效果图

图19 所示为300 张复杂场景图像中,482 辆汽车在Vehicle-YOLO 模型的单一和多种类定位预测方式下,对车辆进行五种上述信息的识别所需花费的平均耗时。由于多种类预测方式在车辆的目标定位阶段已经同步完成了车辆类别的识别工作,故后续信息的提取种类减少,平均耗时约为5.4 s;而单一种类预测的方式需要在后续阶段对车辆类型进行重新识别,平均耗时约为6.8 s。因此,在保证多种类预测方式具有较高识别准确率的情况下,可有效提高目标车辆的信息检测效率。

图19 不同种类定位方式下的车辆信息识别平均耗时

4.2.3 基于VOC数据集的通用目标测试

Vehicle-YOLO 虽然是针对实时复杂场景下车辆的目标定位和信息获取所提出,但在结构改进和模型完善上均以常见目标的出现特点为出发点进行研究与设计。因此,为了检验该模型在通用物体定位与识别上的工作性能,本文使用包含20种不同类别对象的经典数据集VOC进行测试。训练集和测试集分别由VOC2012[20,23]数据集的训练和测试部分构成。检测结果如表5所示。

表5 VOC2012数据集在不同目标定位模型上的检测结果

从表5中的实验结果可知,Vehicle-YOLO在检测时间方面依然略低于传统YOLOv3模型,但仍然满足实时性要求,而在常见物体的检测准确率方面,Vehicle-YOLO有更好的表现。说明Vehicle-YOLO的设计相较于另外三种模型,平均均值精度提升了8.8 个百分点、7.3 个百分点、3.6 个百分点,证明了Vehicle-YOLO 在物体特征的判断和提取过程的优化上是合理的。

4.3 Vehicle-YOLO性能优化

为了在模型检测精度和算法实时性方面做出尽可能的平衡,本文在其余输入参数条件保持一致的情况下对模型传入数据的尺寸进行了改变,以便得出最优的传入图像数据规格。实验数据继续沿用4.2.1节中的KITTI数据集。具体实验结果如表6所示。

表6 不同规格的传入数据对模型检测指标的影响

从表6的实验结果可以得知,较小的输入图像规格会严重降低目标定位精度,而随着图像规格的增大,模型的运算效率变缓明显。考虑到3.1节所述的7次图像数据规格减小,选用512×512的图像作为输入数据较为合理。

此外,为了探究特征图数量对模型性能的影响,将Vehicle-YOLO模型的传入图像规格固定为512×512,仅更改相应的网络残差块和特征提取部分,使得生成的特征图数量为3 至7 个,以此获得对模型效率最佳的特征图个数。在KITTI数据集中的实验结果如表7所示。

表7 采用不同数量的特征图对车辆定位的实验结果

表7 中,除传统YOLOv3 使用的是416×416 的传入图像,本文提出的Vehicle-YOLO 均使用512×512 的传入图像进行性能检测,特征图维度由64×64依次减少至1×1。特别注意的是,在表7数据部分的1~2行,使用同等数量的特征图,由于Vehicle-YOLO 模型用特征提取网络的中间层特征图所对应张量代替了YOLOv3 中上采样后的特征图张量,在降低模型复杂度、提升检测速率的同时,定位精度略有下降。随着特征图和对应深度残差块数量的增加,mAP 略有提高,但FPS 降低更为明显。因此通过检测精度和模型运算速率的综合评估,将模型的特征图数量设定为5个。

不仅特征图输出数量的多少是提高模型效率的重要研究内容,预设边界框(Anchors)数量的合理选择对模型的性能也有影响。为了探究每个单元格中预设边界框的数量对Vehicle-YOLO 模型的性能影响,本文以每个单元格为基本元素,分别将预设边界框的数量设置为不同值,检测其评估指标的变化。

分别对预设边界框的数量在三种不同的传入图像规格下进行调整和测试,预设边界框数量分别为3、4、5。在KITTI数据集上测试的结果如表8所示,更改每个单元格的预设边界框数量在同一传入图像规格的前提下,对Vehicle-YOLO模型性能提升帮助很小,甚至没有带来明显改变,但模型预测速度逐渐降低。并且相比提升传入图像的尺寸规格所带来的精度提高,每秒传输帧数的降低更加显著。

表8 更改每个单元格的预设框数量对模型的性能影响

为了测试损失函数的改进、数据增强等方法对模型检测精度的影响,在KITTI 数据集上进行了对比实验,具体结果如图20、表9所示。

图20 两种损失函数计算方式在KITTI上训练的收敛曲线

表9 损失函数优化与数据增强对Vehicle-YOLO的性能影响

图20展示了Vehicle-YOLO的损失函数在KITTI数据集训练过程中的收敛速度和具体数据,传统方式是采用YOLOv3的损失函数计算方式在Vehicle-YOLO模型上训练得到的,而优化方式则是使用3.6 节的技术对损失函数的计算方式进行优化后,投入Vehicle-YOLO 模型训练得到的。从全局图(a)可以看到,新增的广义IoU判别方式对损失函数的计算和优化效果带来了较为明显的提升。在前几百次迭代后,相较于传统的损失函数优化算法,修改后的损失函数收敛速度更快。从局部图(b)中可以看出,优化方式得到的最终损失与传统计算方式相比数值更低,训练效果更佳。

从表9的结果可以看到,四种改进方式均在上一阶段的基础上给Vehicle-YOLO 的检测性能带来提升,在KITTI 测试集上的提升幅度分别为0.3%、1.2%、0.3%及0.2%。其中,GIoU 的计算方式对损失函数的优化效果最为明显,对模型的检测性能提升也最大。

因此,在考虑平均均值精度和图像传输帧数二者的性能平衡方面,通过以上多种角度的实验内容和结果分析,本文提出的Vehicle-YOLO 车辆目标检测模型选用图像规格为512×512,特征图数量为5,每个预测单元格所含的预设边界框数量为3 的基础设定作为最终传入数据和参数的标准。

5 结束语

为解决复杂无约束场景下车辆目标定位及相关信息高效识别的问题,本文提出了一种基于YOLOv3的车辆定位识别模型Vehicle-YOLO。该模型采用7 次深度残差网络输出五种不同规格的特征图用于目标检测,在特征图内的每个单元格提供了三种不同比例的预设边界框用于车辆目标定位的微调工作,以提升最终的预测精度。同时利用KITTI 数据集和多种车辆数据整合后的Vehicle_Type 数据集对模型进行多类别车辆定位识别训练,使得车辆区域的定位和车辆类型的识别工作可以同步完成,提高车辆多维信息获取的执行效率。实验结果表明,该模型不但在KITTI数据集的测试上拥有较好的定位精度和运算速度,并且在多类通用物体的目标检测任务上也有良好表现。

但在模型训练方面仍存在特征提取单一化的问题,由于数据集的主体为国外车辆,且图像采集视角具有一定的规律性,故在今后的车辆目标定位中,应主要对数据增强,国内外车辆数据的平衡性和全面性做出进一步设计与研究,以提升模型对图像中各角度车辆的检测能力。

猜你喜欢
张量定位车辆
定义在锥K上的张量互补问题解集的性质研究*
偶数阶张量core逆的性质和应用
四元数张量方程A*NX=B 的通解
《导航定位与授时》征稿简则
一类结构张量方程解集的非空紧性
Smartrail4.0定位和控制
车辆
找准定位 砥砺前行
冬天路滑 远离车辆
提高车辆响应的转向辅助控制系统