实时行人和车辆检测用于自动驾驶
摘要
在自动驾驶技术中,快速高效的行人检测与车辆检测已成为一项日益重要的任务。本文提出了一种基于 YOLOv2并优化特征提取的行人检测和车辆检测算法。我们采用关于特征框尺寸的先验经验,替代原始YOLOv2算法中的K均值聚类算法。首先对带有行人和车辆标签的数据集进行统计分析,进而设计更符合行人和车辆特征的预选框初始值。结合难例挖掘、多尺度训练和模型预训练,所提出的算法不仅提高了检测精度,同时保持了良好的检测效率。
在交通基准记录上的实验结果表明,该优化算法满足低速自动驾驶的实时性和精度要求。
关键词 —行人检测, 车辆检测, YOLOv2, 实时, Darknet-19
引言
随着自动驾驶技术的快速发展,快速高效的目标检测算法正变得越来越重要 [1]。与超声波、激光、雷达等技术相比,视觉检测更符合人眼获取信息的习惯,且实现成本更低。基于视觉的目标检测技术利用车载传感器感知车辆周围环境,并控制车辆的转向和速度。
根据传感器获取的道路信息、位置以及障碍物情况,为车辆提供可通行区域,使车辆能够在道路上安全可靠地行驶。
智能驾驶在车辆视觉中的目标包括车辆、行人、交通标志等。其中,行人和车辆是道路交通环境中的两个主要参与者。行人并非刚性物体,其姿态和外观具有可变性。由于姿态、距离等问题,并且由于遮挡,车辆有时无法被准确检测。背景环境也多种多样,增加了识别与检测的难度。特别是,实时车载行人与车辆检测系统是自动辅助驾驶系统的重要组成部分。一种体积小、低功耗且准确、实时的检测系统能够有效保护行人和车辆。
在传统视觉领域,关于精确的行人检测和车辆检测已有大量研究。传统目标检测通常采用滑动窗口框架,其中大多数模型利用图像处理技术提取候选区域相关的视觉特征,例如Viola‐Jones (VJ) [2] 和方向梯度直方图 (HOG) [3]。这些模型将局部区域的梯度方向直方图特征或类Haar特征作为分类器输入,但容易受到光照和遮挡的影响。随后,由HOG检测器发展而来的基于可变形部件的模型 (DPM) [4],能够有效解决遮挡问题。它通过多个相关子模型的组合,显著提升了性能,但效果始终不够理想。
ImageNet挑战 [5] 和Pascal视觉对象类别(VOC)挑战 [6] 的成功表明,基于深度学习的目标检测具有良好的发展前景。例如,基于区域的卷积神经网络(R‐CNN) [7] 是一种结合区域建议和卷积神经网络(CNN)的目标检测方法。与之前的最佳结果相比,其平均精度均值(mAP)提高了超过30%。与深度学习相关的目标检测方法大致可分为两类:1. 基于区域建议的方法,如R‐CNN、SPP‐net [8], Fast R‐CNN [9], Faster R‐CNN [10], R‐FCN(基于区域的全卷积网络) [11];2. 端到端(无区域建议)方法,如YOLO(你只看一次) [12], SSD(单次多框检测器)[13]。基于区域建议的深度学习方法通常通过选择性搜索(SS)或区域建议网络(RPN)获取感兴趣区域(ROI),然后使用CNN模型对每个区域进行分类,以得到类别和置信度。另一类方法则采用单通道网络架构,将目标框与目标识别相结合,一次性输出目标类别和目标位置信息,这类算法提升了识别的执行效率。目前,基于区域建议的方法仍占主导地位,但端到端方法在检测速度上的优势是显而易见的,后续发展将有待观察。
II. 相关工作
行人检测和车辆检测是自动驾驶应用领域中目标检测的一个重要分支。现有方法分为传统模型和深度学习模型两种类型。传统检测通常采用滑动窗口框架,主要包括三个步骤:
- 步骤1:使用不同大小的滑动窗口从地图中选择一部分作为候选区域;
- 步骤2:提取与候选区域相关的视觉特征。例如人脸检测中常用的Haar特征;行人检测和普通目标检测中常用的HOG特征;
- 步骤3:使用分类器进行识别,例如常用的支持向量机(SVM)模型。
Dalal等人提出了梯度方向直方图(HOG)描述符来提取轮廓特征。Viola和Jones基于类Haar特征及其扩展提取了两种类Haar特征。Viola‐Jones (VJ) 和方向梯度直方图 (HOG) 是处理模型,它们在MIT行人数据库 [15] 和INRIA数据库 [3] 上提供了合理的结果。然而,这些方法对光照和目标遮挡均较为敏感,在较新且更具挑战性的数据集(如KITTI目标数据集和Caltech行人数据集 [17])上表现较差。在传统目标检测中,DPM相较于之前的方法显著提升了性能,并连续获得了VOC 2007‐2009检测冠军。DPM将目标视为多个组件,并通过组件之间的关系来描述目标,这一特性非常适合自然界中许多非刚性物体的特点。DPM在某些检测任务中取得了良好的效果,但DPM相对复杂,检测速度较慢。
最近,深度学习模型提升了目标检测的性能;尤其是基于区域建议的目标检测模型表现出良好的识别能力。
Ross Girshick等人将卷积神经网络(CNN)与区域建议相结合,采用选择性搜索提取区域建议,利用卷积神经网络进行特征提取,并使用SVM作为分类器。该方法将卷积神经网络应用于检测问题,将其转化为分类问题,使平均精度均值(mAP)相对提升了30%以上。但该方法存在重复计算、训练复杂等缺点。何恺明等人提出了SPP‐net,在全连接层之前添加了空间金字塔池化层(SPP层),以解除输入尺寸固定的限制。所提取的特征具有更好的尺度不变性,并降低了过拟合的可能性。随后,Ross Girshick等人设计了一种简单且可扩展的检测算法Fast R‐CNN,该方法仅使用卷积神经网络进行特征提取,并采用一种类似于SPP层的特殊池化层以及两个全连接层替代SVM实现分类,大幅降低了计算复杂度和训练复杂度。尽管这些方法显著提高了识别准确率,但在执行效率方面仍有改进空间。为了将预选框提取与目标分类整合到一个网络框架中,Ross Girshick等人设计了区域建议网络(RPN),利用预训练卷积神经网络从图像中生成候选区域,其速度比选择性搜索或边缘框更快。然后将该方法与Fast R‐CNN结合,称为Faster R‐CNN,进一步提升了执行效率,满足了实时性要求。R‐FCN将最后一个全连接层改为位置敏感的卷积网络,使得所有计算均可共享。
当然,其他端到端算法也具有较高的执行效率,例如 YOLO、SSD等。YOLO采用单通道网络架构,将目标框与识别任务结合起来,一次性输出目标类别和目标位置信息,从而提升了识别的执行效率。然而,其识别准确率仍有待提高,特别是对小目标的识别。SSD同样使用单一卷积神经网络架构,并借鉴Faster R‐CNN中的锚点机制,通过多尺度特征金字塔预测,在不同层级的特征图上进行检测,增强了对小目标的识别能力。
YOLOv2采用一系列方法,如多尺度训练、细粒度特征、批归一化、带锚框的卷积、维度聚类等,改进了原始 YOLO的多目标检测框架。YOLOv2的基础模型采用一种名为Darknet‐19的架构作为特征提取器,这是基于先前的研究经验设计的。Darknet包含19个卷积层和 5个最大池化层,结构与GoogleNet类似。此外,D 添加了直通层,类似于 ResNet [18] 将高分辨率特征与低分辨率特征相结合,以增加更精细的特征。YOLOv2 使用 K均值聚类 自动选择最佳初始框。为了提高所选框的交并比(IOU)得分,YOLOv2 定义了公式(1):
$$
d(box, centroid) = 1 - IOU(box, centroid)
$$
(1)
根据标准的使用欧氏距离的k‐means结果,选择初始锚框的数量k = 5。这些措施能够在保持原始速度优势的同时提高精确度。图1基于从不同论文中收集的相关数据,提供了各种方法在性能(每秒帧数,FPS)与平均精度均值(MAP)之间的近似对比。由于评估硬件和环境的不同,该数据仅供参考,不构成绝对对比。
III. 行人检测系统
A. 所提模型
本文提出的检测系统具有与YOLOv2相似的架构,该架构已被证明是通用目标检测中最先进的深度学习方案之一。提出的网络采用单CNN通道网络结构和合适的锚框卷积,直接预测目标位置和分类。
在本研究中,我们提出提取用于行人检测和车辆检测的锚框架构。鉴于检测系统的特性,我们在所提模型中采用关于特征框尺寸的先验经验,而非K均值聚类算法,以降低计算复杂度。我们对数据集上的行人和车辆标签进行统计分析,设计出更符合行人和车辆特征的锚框初始值,如图2所示。并通过结合多种策略训练和测试所提模型,以提高行人检测准确率,包括难例挖掘、多尺度训练、模型预训练以及对关键参数的适当校准。所提出的检测模型训练过程如图3所示。
YOLOv2使用K均值聚类; (b) 提出的方法)
首先,我们根据先验知识分析了KITTI数据集和 Caltech行人数据集中行人与车辆的标签信息。大多数行人的外观较为瘦长,而大多数车辆则接近矩形或正方形,这意味着行人的标签框具有高>宽的关系,而车辆标签框的高度小于或等于其宽度。基于驾驶环境中人体、车辆及周围物体的比例关系以及视觉透视原理,我们提取了用于行人的预选锚框,其边长比为高: 宽 ≈ 3:1,以及用于车辆的边长比为高:宽 ≈ 2:3。数据分析也证实,数据集中标签框的边长比同样符合这一比例。具体操作将在后文详细描述。我们使用Caltech行人数据集训练所提出的CNN模型,并进一步利用相同的数据集对预训练模型进行测试,以生成困难负样本。这些困难负样本作为训练过程的第二步被输入到网络中。所得模型将在KITTI数据集上进一步微调。在最终的微调过程中,我们采用多尺度训练过程以进一步提升模型性能。对于整个训练过程,我们遵循与 YOLOv2类似的端到-end训练策略。接下来将详细讨论所提出方案中的关键步骤。
B. 锚框的选择
根据RPN、SSD和YOLOv2可知,锚定机制对目标检测的贡献巨大。YOLOv2使用K均值聚类来自动生成最佳初始框。然而,k‐均值算法对种子点的初始化非常敏感,并且对于单类或双类分类而言,K均值聚类方法在行人检测和车辆检测中过于复杂。本文可以选择手工选择的先验框。我们将来自KITTI数据集和 Caltech行人数据集的目标检测标签信息进行整合,并提取真实边界框的信息。图4、图5和图6分别展示了不同数据集中行人和汽车标签宽高比的统计分析结果,包括分布直方图和正态分布。图4和图6显示,行人框的高宽比最可能的像素比范围为 [2, 3]。在图4中,由于 Caltech行人数据集中坐姿行人较多而KITTI数据集中标注较少,因此在 [1.2, 1.3] 处出现较高比例。这大致符合正常人体特征。从图5可以看出,由于从车辆侧面以及车辆后方或前方的不同视觉观测,车辆的高宽比的像素比主要分布在 [0.36, 0.5] 和 [0.72, 0.75] 之间。在实际道路驾驶环境中,概率分布与行人和车辆的视觉位置关系相符。图7展示了图片中行人和车辆的标签信息,也验证了前述的统计分析结果。
YOLOv2 将 YOLO 的预测偏移改为预测网格单元的位置纬度,将预测值限制在 0‐1 范围内,从而提高了稳定性。该网络对特征图中的每个单元预测五个边界框。对于每个边界框,模型预测五个匹配值(tx, ty, tw, th, to)。在检测过程中,所提模型预测 k个锚框,每个锚框包含 5 个坐标值和两个类别,因此总共具有 k * (4+1+2) = 7*k 输出维度。
C. 难例挖掘
难例挖掘已被证明是提升深度学习性能的有效策略,尤其适用于包括行人和车辆检测在内的目标检测任务。该方法基于这样的思想:困难负样本是网络检测失败的区域正确的预测。因此,可以将困难负样本再次输入网络,以强化并改进我们的训练模型。该训练过程将有助于减少误报并提升分类性能。在我们的方法中,困难负样本是从训练过程第一步的预训练模型中获取的。如果某个区域与真实区域的交并比低于0.5,则将其视为困难负样本。在困难负样本的训练过程中,我们明确将这些困难负样本添加到候选区域中用于微调模型,并将前景与背景的比例平衡至约1:3,这与我们在第一步中使用比例相同。
D. 检测调优
根据这些参考文献,按以下步骤操作以获得更精确的行人与车辆区域提取和检测模型。因此,采用检测调优阶段来调整所提模型网络的参数,以提取相似的行人与车辆特征。为了使模型对不同尺寸图像具有鲁棒性,本文采用论文 [14] 中提出的方法来划分调优过程。
训练期间,每隔几轮会改变模型输入尺寸,以使模型能够适应不同的输入分辨率。对于每个批次数量,模型会随机选择一个新的输入图像尺寸,更改模型输入尺寸后继续训练。这些训练规则迫使模型适应不同的输入分辨率。模型处理小尺寸输入时速度更快,因此所提模型可根据需要调整速度与精度。
IV. 实验结果
本文使用著名的Caltech行人数据集和KITTI数据集对行人检测和车辆检测进行了评估。我们的行人检测系统在精确度和有效性方面进行了分析。
A. 实验设置
数据集介绍
Caltech行人数据集是行人检测领域中最流行且最具挑战性的数据集,包含约10小时、30 Hz下的 250,000帧图像,共标注了2300个独特行人的 350,000个标注。行人通常由完整的边界框标注,而被遮挡的行人则另有一个边界框标出其可见区域。该数据集通过安装在车辆上的单目相机在城市交通环境中采集,因此非常适合用于车辆相关应用或系统。性能评估采用合理设置,即从set06到set10每30帧选取至少50像素高且遮挡部分少于35%的图像进行评估。
KITTI数据集是一个公开数据集,用于测试行人检测、车辆检测等算法,车辆跟踪和交通场景中的语义分割。目标检测包含7481张训练图像和7518张测试图像,总共包括80256个标注对象。所有图像均为彩色,并以png(可移植网络图形)格式保存。该数据集使用安装在标准旅行车上的两个高分辨率彩色与灰度视频摄像头采集。数据集在德国卡尔斯鲁厄市的中等规模城市、乡村地区和高速公路上驾驶过程中采集。每张图像中最多可见15辆车辆和30名行人。
深度学习框架和参数
所提检测模型基于流行的深度学习框架Caffe实现。卷积神经网络在单块NVIDIA GeForce GTX 1080 GPU (8 GB内存)上进行训练。模型初始化采用了在VOC数据集上预训练得到的网络参数,并随后使用KITTI数据集对模型进行了微调。
训练之前,我们将锚框的数量设置为5。对于每个锚框,我们设置两个值作为锚框边长的初始值,每组中两个值之间的比例符合图3、4和5中行人检测特征尺度的要求。在第一阶段的训练中,我们选择Caltech行人数据集对网络架构进行预训练。训练过程中,我们使用随机梯度下降,初始学习率为0.1,多项式衰减率的幂次为4,权重衰减为0.0005,动量为0.9。并且我们采用数据增强方法,如随机裁剪、旋转以及色调、饱和度和曝光偏移,类似于Faster R‐CNN和SSD所使用的训练策略。预训练完成后,我们从训练过程第一步得到的预训练模型中提取困难负样本。然后,我们在KITTI数据集、Caltech行人数据集以及这些困难负样本上使用高分辨率图像对模型进行微调。训练过程中,改变模型输入尺寸以使模型对不同尺寸的图像具有鲁棒性。对于每张图像,除了执行水平翻转外,我们还每10轮随机缩放一次再输入网络。具体而言,我们将每张图像缩放到480、600、640、1280中的某一个尺寸。在图像输入模型之前,从每张图像中减去整个数据集的平均RGB值,以降低概率分布对像素值的影响。该训练规则迫使模型适应不同的输入分辨率。
B. 结果
在实验中,所提模型在合理的测试集上与知名的行人检测模型(包括Faster R‐CNN、YOLOv2)进行了对比。在KITTI数据集上的实验结果如表I所示。与 YOLOv2相比,提出的方法在检测速度上略快,并且在检测精度上有一定提升;与Faster R‐CNN相比,提出的方法在检测精度上有所提高,同时检测速度更快。结果表明,所提检测模型在提供可接受的准确率的同时,实现了最快的测试速率。
| 时间成本* | 准确率 | 准确率 | ||
|---|---|---|---|---|
| 行人 | 车辆 | |||
| Faster R‐CNN | 0 | 0.5 | 65% | 75% |
| YOLO V2 | 128 | 20 | 43.33% | 59.57% |
| PROPOSED | 0 | 22 | 45% | 61.34% |
*获取锚框尺寸的时间
C. 有效性分析
表I还对比了这些检测模型在获取锚框尺寸时所用的时间。YOLOv2使用K均值聚类来获取锚框尺寸,但 K均值聚类容易受到初始k值设置的影响,导致锚框大小无法更好地表示不同类别的标签特征信息。尤其是在标签分布不均匀的情况下,先验经验可以尽可能多地保留各类别的不同标签信息。图8展示了使用提出的方法进行行人检测的两个示例。还有其他因素可能降低性能,例如由于边界框不够精确,导致特征提取器被某些标签混淆。
V. 结论
本文提出了一种基于YOLOv2的新型行人和车辆检测方法。由于行人和车辆的高度/宽度比相对稳定,因此选择了相应的特征框尺寸。这种先验经验替代了复杂的基于视觉的选择方法,在保持良好检测效率的同时提高了检测精度。未来可以考虑采用不同的卷积神经网络来改进架构,并将特征集成到深度网络中以提升性能。

36


被折叠的 条评论
为什么被折叠?



