基于DCN-Mobile-YOLO模型的多车道车辆计数

2021-11-22 09:03郭仁忠
深圳大学学报(理工版) 2021年6期
关键词:主干车道计数

文 奴,郭仁忠,贺 彪, 3

1)深圳大学建筑与城市规划学院,深圳大学智慧城市研究院,广东深圳518061;2)粤港澳智慧城市联合实验室,广东深圳518061;3)国土资源部城市土地资源监测与仿真重点实验室,广东深圳518034

目标计数方法按照技术路线可分为基于传统特征提取的方法[1-3]和卷积神经网络(convolutional neural network, CNN)的方法[4-6].传统特征提取方法有基于哈尔(Haar-like, Haar)特征、局部二值模式(local binary pattern, LBP)特征和方向梯度直方图(histogram of oriented gradient, HOG)特征等,这类算法通常以边缘特征提取为主实现对目标个体的检测和计数,因而对边缘检测的精确度要求很高,不适合目标间有重叠或密集目标的计数.随着深度学习的发展,基于CNN提取目标特征进而实现目标检测和计数逐步成为目标计数的主流算法.基于CNN的目标检测算法通常分为单极检测器(one-stage detection)和二级检测器(two-stage detection),一般来说,前者在速度上占优,后者在准确率和定位精度上占优.YOLO(you only look once)系列是单级检测器的代表,不仅推理速度快且检测和定位精度高.YOLO v4[7]是基于YOLO v3的目标检测架构,在数据处理与增强、主干网络、网络训练、激活函数和损失函数等方面都进行了优化,在保证运行效率的同时极大提高了目标检测的精度.其中,在主干网络部分,YOLO v4借鉴了残差网络(如ResNet[8])提取深层特征信息的优点,提出空间金字塔池化网络(如spatial pyramid pooling-net, SSP-Net[9]和atrous spatial pyramid pooling-net, ASSP-Net[10])的设计思路,通过拼接任意大小的特征图并转换成固定输出大小的特征向量,实现一次性输出多尺度目标检测的结果.若直接使用CNNs方法对图像目标进行计数,可能存在检测漏检与重复计数的问题.DeepSORT方法[11]是一种基于检测的跟踪(tracking-by-detection)方法,是SORT(simple online and realtime tracking)方法[12]的升级版,算法结合传统的卡尔曼滤波(Kalman filter, KF)和匈牙利算法(Hungarian algorithm)实现检测目标的跟踪,通过加入特征提取网络(如重识别模块ReID[13])实现对特征的匹配和更新.该方法在一定程度上解决了单独使用目标检测方法存在的漏检和重复计数问题.

本研究采用YOLO v4作为目标检测算法的基本框架,以DeepSORT方法实现检测目标的跟踪和计数.针对YOLO v4主干网络CSPDarkNet参数量大无法适用于移动端进行实时处理的问题,引入深度可分离卷积[14],实现网络轻量化.同时,使用可变形卷积[15]代替常规卷积增强感兴趣区域(region of interest, ROI)的范围,提高目标定位的精度.

1 相关工作

1.1 传统特征提取方法

传统特征提取包括基于梯度信息[1]、颜色特征[2]和帧间差异等[3]特征信息方法.其中,基于梯度信息包括Haar特征、LBP特征和HOG特征等,它们利用方向梯度算子对图像边缘特征进行提取以实现目标的检测与计数.这类方法普适性较差且检测精度受目标个体和背景差异影响明显,对重叠目标的检测效果受限.基于颜色特征的提取方法,对图像尺寸、旋转和平移等因素影响较小,可以提高特征提取的鲁棒性,但光照变化容易导致颜色空间分布信息混乱,影响目标检测和计数的准确性.基于帧间差异的特征提取方法有光流法[16]和背景差分法[17].光流法无法对单帧图像进行建模和目标检测;背景差分法计算过程简单,计算量小,可满足实时性的要求,解决帧差法提取目标存在内部空洞问题,但是对外部环境和场景具有高度敏感性.

1.2 基于卷积神经网络的方法

现有的基于深度学习的目标检测与识别算法大致分为两大类:① 基于区域建议的目标检测与识别算法,如Faster R-CNN[18]和Mask R-CNN[19];② 基于回归的目标检测与识别算法,如SSD[20]和YOLO[21].前者是由算法生成一系列样本候选框,再通过CNN进行样本分类,属于二级检测器;后者则直接将目标边框定位的问题转化为回归问题处理,属于单级检测器.两种方法各有优势,前者在检测准确率和定位精度上占优,后者在算法速度上占优.因此,研究准确率与速度同步提升的目标检测方法,是研究学者关注的重要方向.

YOLO v4是一个能够应用于实际工作环境中的快速目标检测系统,且能够被并行优化,它在识别精度和效率之间取得平衡.YOLO系列算法是最接近工程应用的目标检测算法,被广泛用于交通标志识别与检测[22]、行人与车辆检测[23]、工业零件识别和缺陷检测[24]等研究领域.

以上方法在不同方面的应用都取得较好的结果,但由于神经网络算法的网络结构复杂与且参数量大,需强大的图形处理器(graphics processing unit, GPU)运算能力方能实现实时检测和计数,这对于移动设备或嵌入式设备的移植应用与实时计数带来较大挑战.对于多车道的目标检测,目前的目标检测方法容易出现漏检和重复检测的问题,无法确定目标计数的唯一性.因此,本研究提出一种轻量化DCN-Mobile-YOLO网络模型,并结合DeepSORT进行视频多目标跟踪,进而实现城市道路交叉口潮汐车道的车辆计数.

2 DCN-Mobile-YOLO多目标跟踪算法

本研究基于YOLO v4目标检测方法,通过修改主干网络框架,并使用可变形卷积网络(deformable convolutional networks, DCN)v2卷积以扩展特征层的ROI,从而增强目标检测的精度.同时,为解决单一目标检测框架在视频检测中存在的漏检与误检问题,结合DeepSORT追踪技术与目标检测,进一步提升视频检测的召回率.采用MobileNet主干网络实现算法在移动端的移植,提升多目标跟踪算法的检测效率.

2.1 网络基本框架

DCN-Mobile-YOLO模型的网络框架可分为主干网络DCN-MobileNet、特征增强的瓶颈neck和检测输出head三个部分,如图1.其中,neck主要包括空间金字塔池化深度卷积网络(spatial pyramid pooling in deep convolutional networks, SPP-Net)和金字塔注意力网络(pyramid attention network, PANet).

图1 DCN-Mobile-YOLO模型的网络框架Fig.1 Network Architecture of DCN-Mobile-YOLO model

DCN-MobileNet沿用YOLO v4中的DarkNet网络,为减少网络结构的参数量,采用MobileNet主体结构作为主干网络的核心卷积层.为避免可分离卷积导致的网络精度下降问题,用可变形卷积代替网络框架中的所有常规卷积.通过引入跨阶段局部网络(cross stage partial network, CSPNet),将梯度的变化集成到特征图中,既保证了准确率又减少了计算量.激活函数则用更加平滑的mish()函数代替relu()函数.同时,为实现对不同尺度的目标都有较好的检测效果,根据数据集真实(ground-truth, GT)边界框的数据对锚定框进行聚类,设计出最接近真实框的3类锚定框.网络的特征输出采用大、中和小3个尺度的特征图,根据输入图像尺寸416×416×3像素,输出尺寸为52×52、26×26和13×13像素的3种网格.

瓶颈块neck旨在增强网络特征提取的能力.SPP-Net采用了3个不同尺寸的卷积,以增加特征图对上层输出的感受野,增强网络的目标识别能力.通过引入差异化池化策略,使这类多尺度训练方法,不仅避免了网络过拟合的风险还可以实现固定尺寸的图像特征输出.PANet在特征金字塔网络(feature pyramid networks, FPN)的基础上,采用降采样和上采样方法同时对不同尺度特征图进行融合,使映射和融合后的输出层特征更丰富,提高网络对浅层特征信息和深层语义信息的表达能力.

输出特征图head对应主干网络最后3个特征层,具有多特征层目标检测能力,3个特征层尺寸分别为(52, 52, 75)、(38, 38, 75)和(19, 19, 75).其中,前2个维度表示特征图网格的大小,可实现对不同大小的待检目标的提取;第3个维度为所使用的网络训练VOC2007+2012数据集的类别,本研究设为20;位置信息([x,y,h,w])加上类别信息(class)的维度合计为5.由于不同尺寸的锚定框(anchor)都有3种,故共有3×(20+5)=75 个锚定框.

2.2 DeepSORT目标跟踪

DeepSORT算法的核心内容包括匈牙利算法和KF算法.使用DCN-MobileNet检测可获得当前帧目标检测的结果;使用匈牙利算法判断当前帧的某个目标与前一帧某个目标是否相同;KF则可以修正目标检测算法边界框的位置.KF基于目标前一时刻的位置信息预测当前时刻的位置,因此可获得比检测器更准确的估计目标位置.目标跟踪的处理流程如下:

1)采用DCN-Mobile-YOLO读取当前帧目标检测框位置,根据各检测框图像块的深度特征定义唯一的追踪身份证标识号(identity document, ID);

2)采用DeepSORT对检测框的置信度进行排序,将不符合阈值的检测框及特征删除;

3) 采用非极大值抑制(non-maximum suppression, NMS)方法对同一目标的多个检测框进行交并比(intersection-over-union, IoU),使目标具有唯一边界框;

4)获取当前检测框的状态参量(边界框面积、长宽比、中心点横坐标和纵坐标),并使用KF预测目标在当前帧的位置;

5) 使用匈牙利算法将预测后的追踪器和当前帧中的检测器进行匹配(级联匹配和IoU匹配);

6)更新Kalman追踪器参数及特征集,并进行目标消失和新目标出现的判断.

2.3 自适应车道检测规则

常见的车道车辆总数统计方法有虚拟检测线法和虚拟线框法,前者计算量小且实时性高,但在车速较慢时的统计误差大,后者采用固定检测区域与检测框重叠面积的比值来判定车道车辆数,准确性更高.但是虚拟线框法仅适用于拍摄传感器正对车道线的情况,否则将会出现车道检测的误判.

车道线划分的目的是检测出车道线,并判定当前车道目标检测的车辆流量.车辆目标检测边界框与车道划分区域的重叠面积(即IoU)是判定目标属于某个车道的前提条件,因此选择合适的车道检测规则对多车道目标检测意义重大.本研究的车道线检测采用人工标定的方法判别车道划分是否准确,在车道上设置计数检测区域,根据车辆行驶规律、车辆与车道长宽比和道路视频拍摄角度与位置,提出自适应的车道检测规则.

以图2所示的车道检测示意图为例,共有4种检测规则:① 若以车辆检测边界框(Box_A, 红色实线框)与车道检测框(Box_B, 黑色虚线框)的IoU计算,则当车道宽度过大(>3.5 m)或车辆高度过高(>2.5 m)会出现IoU<0.5,导致漏检;② 若以判定车辆检测边界框的中心点(Center_A)是否落在车道检测框(Box_B, 黑色)中为检测规则,则当车辆高度过高或车辆行驶偏两侧时,中心点会落在邻近车道中,导致误检;③ 若以车辆投影中心点(Center_C)是否落在车道检测框(Box_B)中为检测规则,当车辆行驶靠近两侧(由于拍摄位置原因,图2中是偏右侧)时,中心点会落在右侧邻近车道导致误检;④ 以车辆投影中心点(Center_C, 考虑车辆高度、 实际检测框高度与车道关系)为基础,判定其是否落在车道实际检测区域(Box_D, 黄色实线框)作为检测计数规则.根据实验设计要求和道路视频拍摄情况,本研究选定规则4作为车道统计计数的规则.

图2 车道检测区域与车辆目标检测框Fig.2 Vehicle detection area and vehicle object detection bounding box

3 实验结果和分析

实验硬件配置为:计算机CPU为Intel(R) Core(TM) i9-9900K,频率为3.60 GHz,内存为64 Gbyte,显卡型号为NVIDIA GeForce GTX 2080Ti,显存11 Gbyte×2.软件环境为Ubuntu 16.04,64 bit.深度学习框架为TensorFlow1.13.1 & Keras 2.3.1,并行计算框架为CUDA 10.

为验证本研究提出的移动端潮汐车道车辆计数方法的运行速度和检测效果,选取早高峰潮汐车道拍摄视频作为验证集验证算法的时效性,同时在VOC2007+2012数据集中分析算法的检测性能.

3.1 检测性能分析

1)精度(P)与召回率(R): 精度是衡量目标检测模型正样本检出量占总检出样本的比例,召回率代表检测出的正样本占所有正样本的比例,计算公式如式(1)和式(2).

P=TP/(TP+FP)

(1)

R=TP/(TP+FN)

(2)

其中,TP为正样本被正确检索的概率;FP为负样本被误检成正样本的概率;FN为正样本被误检成负样本的概率.

2)平均精度(average precision, AP):AP是某个类在P-R曲线上的平均精度值,常用式(3)计得.好的目标检测模型意味着召回率增加的同时精度也增加.

(3)

其中,r为取值在0~1的召回率;p(r)为精度.

3)平均精度均值(mean average precision, mAP):mAP是计算所有类别P-R曲线下面积的平均值,即

(4)

其中,n为类别数.

为验证DCN-Mobile-YOLO模型的检测效果,分别采用MobileNet、CSPDarkNet和DCN-MobileNet 三个不同主干网络的YOLO v4模型,计算对VOC2007+2012数据集中所有类别检测后的AP值,结果如图3.由图3可见,DCN-Mobile-YOLO相对于主干网络为MobileNet和CSPDarkNet的YOLO v4网络,mAP值分别提升了13.19%和6.63%.

图3 不同主干网络的YOLO模型AP值Fig.3 AP values of YOLO models with different backbone networks

4)参数量.DCN-MobileNet借鉴了MobileNet的可分离卷积思想,将标准卷积分解为depthwise卷积和pointwise卷积各1个,分别起到滤波和线性组合的作用,大量减少了参数量和计算量.同时,在常规卷积操作中,以轻微牺牲参数量的代价,采用DCN v2卷积扩张ROI进而提高目标检测模型的精度.表1列举了不同主干网络模型的参数量.由表1可见,DCN-MobileNet的参数量比MobileNet 仅多0.48%,是CSPDarknet参数量的17%.设训练批次(batchsize)为32,总训练周期(epoch)为200,对比算法的训练时间发现,当MobileNet作为主干网络时,单个训练周期可以节省1/2的训练时间.

表1 不同主干网络的YOLO v4模型参数量

5)检测效率与精度.图4为不同模型目标检测和车道车辆计数的结果.需要特别说明的是,检测帧率与当前检测出的数量和模型相关,相同模型下检测数量越多检测帧率越低.由图4可见,DCN-Mobile-YOLO模型的当前帧检测数量和总检测数量计数比MobileNet-YOLO和CSPDarknet-YOLO模型都要多,且实时帧率速度更快.

图4 不同主干网络的YOLO v4模型检测结果Fig.4 Model test results of YOLO v4 models with different backbone networks

3.2 潮汐车道流量分析

为研究潮汐车道的通行能力和各车道流量数据,利用GoPro运动摄像机采集2020-01-09中国深圳市深南-北环立交早高峰时间段(07∶05-09∶00)的视频数据(07∶00-07∶05的数据因安装设备,未采集).以5 min为一个时间周期,将早高峰时间段划分为23个时段,得到不同车道目标检测和车流量结果分别见表2和图5.其中,1~23为时段序号;车道1为潮汐车道;车道2为左转车道;车道3~7为直行车道;车道8为右转车道.

表2 2020-01-09深南-北环立交早高峰各时段各车道车辆计数统计

图 5 2020-01-09深南-北环立交早高峰各时段不同车道流量数据Fig.5 Traffic flow data of different lanes at Shennan-Beihuan interchange on 2020-01-09

由表2可知,潮汐车道和左转车道23个时段内单个车道的平均车流量分别为26辆和17辆,两者差异不大,直行车道的平均车流量为55辆.

将车道按照潮汐+左转(车道1和2)、直行(车道3~7)和右转(车道8)划分为3类,根据表2的数据统计对应类型车道在每个时段的平均流量(时段内总车流量除以车道数),结果如图5.再统计3种类型的车道在整各早高峰时间段(07∶05-09∶00)内每5 min内的平均流量,结果表明,潮汐+左转、直行和右转车道每5 min的车流量分别是43、274和22辆,占比分别为2∶10∶1.可见,若将左转车道设置为直行,潮汐车道设置为左转,可进一步优化车道通行效率,缓解直行车道的通行压力.

结 语

提出一种针对移动端的多车道目标追踪和计数模型DCN-Mobile-YOLO.为解决MobileNet-YOLO模型检测精度有限的问题,在YOLO v4主干网络中引入DCN v2卷积并替换原来的CSPDarknet网络.以VOC2007+2012数据集作为训练集和验证集,根据AP指标分析YOLO框架下MobileNet、CSPDarknet和DCN-MobileNet3种主干网络在验证集中的表现.结果表明,在所有类别的AP值实验比较中,DCN-Mobile-YOLO模型比MobileNet-YOLO和CSPDarknet-YOLO模型分别提升了13.19%和6.63%.采集早高峰交通视频数据,使用DCN-Mobile-YOLO模型统计左转(含潮汐车道)、直行和右转的流量数据,通过分析潮汐车道对交通流量的影响,发现早高峰车流量瓶颈在直行方向,提出将左转车道改为可变车道,将潮汐车道设计为左转车道的建议.

猜你喜欢
主干车道计数
基于OpenCV的直道车道线识别技术研究
抓主干,简化简单句
北斗+手机实现车道级导航应用
古人计数
矮砧密植苹果园动态修剪效果好
避免跟车闯红灯的地面车道线
递归计数的六种方式
古代的计数方法
古代的人们是如何计数的?
斑马线前该如何礼让