部署可扩展的目标检测管道:推理过程(下)
部署可扩展的目标检测管道:推理过程(下)
融合
感兴趣的目标可以被遮挡。有时只能看到目标的一小部分(少至几个像素)。
图19.车辆和交通信号灯被遮挡。
图20:阻塞了总线。
图21:左侧的人被遮挡了。
像YOLOv3这样的基于CNN的目标检测方法有一个缺点,即要求特征图生成对目标遮挡具有鲁棒性。而且,仅引发许多特征图并不能提高性能。已知诸如空间金字塔池之类的方法可以通过改进常规YOLOv3算法来更好地处理遮挡。
照明条件
照明的影响在像素级别上非常明显。
图22. 白天。
图23:傍晚。
图24:夜间。
结果表明,YOLOv3的分类和定位受光照均匀度的影响。
背景
感兴趣的目标可能会混入其环境中,从而使其难以识别。
图25.停车场背景。
图26:公路背景。
图27:城市市区背景。
YOLOv3在预测边界时遍历整个输入图像。通过附加的上下文,YOLO在背景区域中显示出更少的误报。
类间变异
感兴趣的类别通常可以相对较宽,例如车辆。有许多不同类型的车辆,每种都有自己的外观。
图28.汽车,公共汽车和卡车的车辆类型。
YOLOv3通过避免软最大化类来最大化类间可变性。取而代之的是,每个班级得分的预测都使用带有阈值的逻辑回归。
类内变异
同一类的目标看起来可能大不相同。
图29.绿色汽车。
图30:橙色车。
图31:黄色汽车。
YOLOv3可以很好地执行目标识别,而不管图像帧中是否存在类内差异。准确性是正确结果在所检查病例总数中所占的比例。
分类精度=预测多少/实际标签的实际数量
类 |
真实标签计数 |
汽车 |
1,078,642 |
总线 |
33,307 |
卡车 |
63,128 |
行人 |
62,837 |
红绿灯 |
827,182 |
标签总数(所有类别的总和) |
2,065,096 |
表1.真实标签计数。
图32.与预测相比,目标检测的groundtruth。
类 |
正确的预测(计数) |
总体精度 (%) |
分类准确度 (%) |
汽车 |
172,583 |
8 |
16 |
卡车 |
2,525 |
1个 |
4 |
总线 |
2,332 |
1个 |
7 |
红绿灯 |
33,087 |
2 |
4 |
行人 |
15,709 |
7 |
25 |
表2.目标检测精度。
正如所观察到的那样,从准确性的角度来看,这些类并不是很好的平衡,因此对于自动驾驶汽车开发中的模型图像分类性能而言,它们不是合适的选择。
图33.具有每个类的精度和召回性能指标的目标检测预测性能指标。
目标检测精度不足以从整体预测中识别正确的预测。
总体上较低的准确性似乎还表明,用作YOLOv3模型构建的训练数据的MSCOCO数据集并不严格代表输入数据集。数据集的这种移动导致了明显的性能下降。在自动驾驶汽车中普遍存在的训练数据集选择偏差和动态环境条件是一个普遍存在的问题,需要解决以提高目标检测精度。
通过使用来自预训练的YOLOv3模型的转移训练进行重新训练,可以提高低目标检测的准确性。在训练阶段,CNN框架初始化预训练的YOLOv3模型。使用自定义数据集对网络的各个层进行微调,可获得更好的目标检测精度。
预训练的YOLOv3模型再训练过程是另一篇文章的主题。但是,对于这篇文章,进一步评估了以mAP为最终指标的性能指标。对性能指标进行测量,使所有可配置参数保持不变,包括“交叉口相交”(IOU)阈值,客观置信度和NMS阈值,以便可以将模型性能与基准MSCOCO数据集进行比较。预训练过程的目标是缩小绩效差距。
准确性衡量的是正确预测的比例,而准确性衡量的是所有预测的阳性中实际阳性的比例,而召回率则衡量的是预测为阳性的真实阳性的数量。
对于每个类,请使用以下公式:
精度=多少预测是肯定的/总预测
召回=预测的有多少是正数/实际数为真标签
图34.总线类的精度和召回性能指标。
图35.卡车级的精度和召回性能指标。
图36.汽车类别的精度和召回性能指标。
图37.红绿灯类的精度和召回性能指标。
精确度和召回率曲线是评估目标检测器性能的绝佳方法,因为通过为每个目标类别绘制图形来改变置信度。
- 如果一个类别的目标检测器的精度随查全率的提高而保持较高,则它是好的。通过改变置信度阈值,查准率和查全率仍然很高。
- 一个弱目标检测器,需要增加被检测物体的数量(较低的精度)来检索所有地面真实物体(较高的查全率),从高精度值开始,并随着查全率的提高而减小。
声音目标检测器的其它特征包括:
- 高精度(0个误报)检测器,仅可识别相关目标
- 高召回率(0个假阴性)检测器,可以找到所有地面真相
称为F1分数的单数评估指标有助于控制精度和召回率之间的权衡。
F1分数= 2 *精度*召回率/(精度+召回率)
图35.在不同阈值水平下,F1按图像评分。
当精度和召回率都很高时,F1分数就很高。对于所有其它结果,F1得分较低。
评估目标定位
目标检测过程也需要对目标进行定位。使用IOU将预测的边界框与地面真值边界框进行比较。
IOU =两个预测边界框和相应的地面真相边界框的交集面积/两个预测边界框和相应的地真边界框的相交面积
IOU的范围可以描述为0 <= IOU <= 1
,其中零表示无重叠,而IOU显示完美重叠。通常,具有特定IOU阈值的框确定候选预测边界框。使用0.5 IOU阈值,与YOLOv3算法使用的基准IOU阈值相同。
添加到YOLOv3目标检测算法中的NMS组件也使用IOU概念来使算法性能更好。NMS计算IOU以删除多个检测,以为每个检测到的目标选择一个边界框,以生成推理局部图像输出。
评估目标检测
在给定输入数据集的情况下确定模型的性能时,使用单数度量很有帮助。
平均平均精度(“ mAP”)是每个类的平均精度的平均值,如下表所示,其IOU阈值为0.5,与YOLOv3算法使用的基准IOU阈值相同。
AP(汽车) |
25 |
AP(巴士) |
15 |
AP(卡车) |
15 |
AP(交通灯) |
25 |
AP(人) |
40 |
地图 |
24 |
表3.性能指标。
随着IOU阈值的增加,mAP会降低。假设YOLOv3可以在三个尺度上进行预测,则可以分别计算小型,中型和大型目标的mAP,并且性能可能会分别从低到高变化很大。
归纳
解决数据分布,数据类型,注释要求,质量参数,数据量以及自动化有效性方面的变化敏感性,对于实现最佳注释精度和速度至关重要。
基于NVIDIA GPU的PyTorch YOLOv3加速的目标检测推理管道显示了在现实环境数据中受影响的一些典型挑战,例如在注释自主数据时受到照明,旋转,缩放和遮挡的影响。这项工作可作为创建由推理性能指标支持的优化的,端到端,可扩展管道的概述,这有助于评估在输入数据集上执行的注释推理输出的质量。