目标检测是一项计算机视觉任务,旨在让计算机识别物体的位置和类别,在本文中,目标检测的主要任务是通过监控视频图像识别车辆及其所在位置,是后续轨迹跟踪任务的基础。
目标检测任务以 2014 年左右为分界线,随着深度学习概念的提出和快速发展,基于深度学习的目标检测相比传统的手工设计特征工程的目标检测算法有了极大的提升。Viola 和 Jones利用滑动窗口、特征筛选、检测级联首次实现了人脸的实时检测,保持同等检测精度的情况下其运算速度是其他算法的数十倍;2005 年,Dalal 和 Triggs提出方向梯度直方图描述器,即 HOG 检测器,对当时的尺度不变特征变换和形状语境作出重要改进,该检测器主要目标是解决行人检测;之后由Felzenszwalb提出的可变形部件模型 DPM 把传统目标检测算法推向了巅峰。
2012 年开始,卷积神经网络 CNN 开始作为图像特征提取的重要手段。2014年 Girshick 等人提出具有 CNN 深度特征的区域用于目标检测算法,即 RCNN 算法,为两阶段目标检测算法,它首先用在 ImageNet 预训练的 CNN 模型提取特征,再利用 SVM 分类器对区域内目标进行分类,该算法在 VOC2007 数据集精度相比当时性能最好的传统检测算法提高了 25 个百分点,但其运算效率非常低,检测速度极慢。
2014 年,何凯明等人提出空间金字塔池化网络(Spatial Pyramid Pooling Net,SPPNet),该网络能使 CNN 生成固定形状的表示,而不需要固定输入大小,并且只对图像进行一次卷积运算,在不损失任何精度的情况下,速度相比 RCNN 提高了 20倍。
2015 年,RCNN 原作者基于 SPPNet 进行了改进,提出 Fast RCNN 算法,同时训练检测和边界框回归,平均精度由 RCNN 的 58.5%提高到了 70%,检测速度也是 SPPNet 的 10 倍。之后不久,Ren 等人提出了 Faster RCNN 检测器,这是第一个接近实时且训练时端到端的检测框架。之前的检测算法均是利用 CNN 的深层特征,虽然有利于分类,但是却不利于边界框的回归。2017 年,Lin 等人基于 Faster RCNN 提出了特征金字塔(Feature Pyramid Networks,FPN),利用 CNN 金字塔的各层特征,使得检测网络在各种尺度目标的检测中显示出巨大提升,该结构之后也被广泛应用到各种新型检测器中。
2015 年,Joseph提出了首个单阶段检测器,YOLO(You Only Look Once),在超越 RCNN 的精度下,速度达到了 45fps,其快速版本更是达到了 155fps,开启了单阶段检测算法的时代,也为目标检测在工业届的部署应用提供了技术支撑。YOLO 算法提出了一个全新的设计思路,即将 CNN 应用在整个图像,用输出特征直接回归预测目标分类和边界框。后来原作者在 YOLO 基础上做了一系列改进,陆续提出了 YOLO9000、YOLOv3算法,加入 FPN 等结构,改进损失函数。2020 年 AlexAB发布 YOLOv4,集合了计算机视觉领域多种数据增强手段,尝试各种新的主干网络组合方式、应用 Mish 激活函数、Dropblock 防止过拟合策略、FPN 与 PAN 网络的结合、边界框损失函数 CIOU_Loss 的改进,在 COCO 数据集达相比 YOLOv3 平均精度提升了 10 个百分点。同年,Jocher Glenn发布 YOLO第 5 版本,虽然命名未得到官方承认,但其实际性能得到了进一步提升。从近几年的 YOLO 系列算法的高速发展可以看出无论是学术界还是工业界都对该算法有着极大的兴趣和期待。
2016 年,Liu 等人提出 SSD(Single Shot MultiBox Detecter),这是与 YOLO争雄的第二款单阶段检测器,速度精度都有优势。该算法在网络的不同层检测不同尺度的对象,其他算法仅在网络顶层运行检测部分,之后也有 SSD 算法的诸多改进版本。 单阶段检测速度块,结构简单,但精度与两阶段检测器还是有一定差距,Lin等人探究其背后原因,于 2017 年提出 RetinaNet,他们认为单阶段精度落后两阶段的一个主要原因是模型训练过程出现极度的前景-背景类别不均衡现象,并提出一种新型损失函数,Focal Loss,该损失函数使得模型在分类过程中更加关注难分类的样本,该模型使得单阶段检测器达到与双阶段检测器相当的精度。但是类别不均衡问题并不会得到完美解决,该领域仍需大量的实验和研究。
吕石磊等人使用轻量级骨干网络 MobileNet-v2 对 YOLOv3 进行改进,提高模型在 CPU 端推理速度,在特定目标识别任务中,达到了较高的精度;李继辉将 CBAM 注意力机制引入 YOLOv3 网络中,同时使用剪枝量化手段使算法在嵌入式开发板 NVIDIA TX2 上达到了 24FPS 接近实时的处理速度;周方禹将 SE 注意力机制和双向金字塔特征融合机制引入目标检测网络,在 PASCAL VOC 2007/2012 等公开数据集和安全帽私有数据集验证了改进模型的有效性。
目标检测算法作为计算机视觉的基础任务,近几年发展飞快,精度不断提升,但在应用时需要根据实际场景对速度和精度做权衡。本文研究对象为高速公路监控视频流,对算法的实时性有更高的要求,同时不同类别车辆数量差距巨大对检测效果也有较大影响。