对象检测基础知识指南

2024年03月26日 由 alex 发表 101 0

如今,驾驶汽车时使用最新的驾驶辅助技术来检测车道、盲点、交通信号等已是司空见惯。如果我们退后一步,仔细观察一下背后发生的事情,数据科学家很快就会意识到,系统不仅在对物体进行分类,而且还在场景中(实时)对物体进行定位。


这些功能就是物体检测系统发挥作用的最好例证。驱动辅助技术、工业机器人和安防系统都利用物体检测模型来检测感兴趣的物体。物体检测是一项先进的计算机视觉任务,涉及[物体]定位和分类。


在本文中,我们将深入探讨物体检测任务的细节。我们将了解与之相关的各种概念,以帮助我们理解新型架构)。我们将介绍从迁移学习角度理解物体检测模型所需的关键方面和概念。


关键概念和构建模块

物体检测包括两个主要的子任务:定位和分类。对识别出的物体进行分类很容易理解。但我们如何定义物体的定位呢?让我们来了解一些关键概念:


边界框

在物体检测任务中,我们使用一个矩形框来确定给定物体的位置。这个矩形框被称为边界框,用于物体定位。通常情况下,输入图像的左上角被设置为原点或(0,0)。一个矩形边界框是通过左上角和右下角顶点的 x 坐标和 y 坐标定义的。让我们直观地理解一下。下图a展示了一幅原点位于左上角的样本图像。


2


图b显示了每个已识别对象及其相应的边界框。值得注意的是,边界框标注了相对于图像原点的左上角和右下角坐标。有了这 4 个坐标值,我们就可以唯一地识别一个边界框。另一种识别边界框的方法是使用左上角坐标及其宽度和高度值。图c 展示了这种识别边界框的替代方法。不同的解决方案可能会使用不同的方法,这主要取决于对其中一种方法的偏好。


物体检测模型需要每个训练样本中每个物体的边框坐标,此外还需要类标签。同样,在推理阶段,对象检测模型也会为每个识别出的对象生成边框坐标和类别标签。


锚点框

每个物体检测模型都会扫描大量可能的区域,以识别/定位任何给定图像中的物体。在训练过程中,模型会学习确定哪些扫描区域是感兴趣的,并调整这些区域的坐标,使之与地面实况边界框相匹配。不同的模型可能会以不同的方式生成这些感兴趣的区域。然而,最流行和广泛使用的方法是基于锚点框。对于给定图像中的每个像素,都会生成不同大小和长宽比(宽度与高度之比)的多个边界框。这些边界框被称为锚点框。下图展示了给定图像中特定像素的不同锚点框。


3


锚点框的尺寸是由两个参数控制的,一个是表示为 s ? (0,1] 的缩放比例,另一个是表示为 r >0 的纵横比。如图 2 所示,对于高度和宽度均为 h ⨉ w 的图像以及特定的 s 值和 r 值,可以生成多个锚点框。通常,我们使用以下公式来计算锚点框的尺寸:


wₐ=w.s√r


hₐ = h.s / √r


其中,wₐ 和 hₐ 分别为锚点盒的宽度和高度。锚点框的数量和尺寸要么是预定义的,要么是模型在训练过程中自行选择的。从广义上讲,模型会为每个像素生成一定数量的锚点框,并在训练过程中学会根据地面真实边界框调整/匹配锚点框。


边界框和锚框是理解整个物体检测任务的关键概念。在了解此类架构如何工作的具体细节之前,让我们先了解一下评估此类模型性能的方法。以下是一些重要的评估指标:


交集与并集(IOU)

物体检测模型通常会生成一些锚点框,然后对这些锚点框进行调整,使其与地面真实边界框相匹配。但我们如何知道匹配何时发生或匹配效果如何?


Jaccard 指数是用于确定两个集合之间相似性的一种度量。在物体检测中,Jaccard Index 也被称为 Intersection Over Union 或 IOU。其计算公式为


IOU = | bₜ ∩ bₚ | / | bₜ ∪ bₚ |


其中,Bₜ 是地面实况边界框,Bₚ 是预测边界框。简单来说,它是一个介于 0 和 1 之间的分数,由预测边界框和地面实况边界框之间的重叠面积和结合面积之比决定。重叠面积越大,得分越高。接近 1 的分数表示近乎完美的匹配。下图展示了一幅样本图像的预测边界框与地面实况边界框重叠的不同情况。


4


根据问题陈述和数据集的复杂程度,会设置不同的 IOU 阈值,以确定应考虑哪些预测边界框。例如,基于 MS-COCO 的物体检测挑战使用 0.5 的 IOU 阈值将预测的边界框视为真阳性。


平均精度 (MAP)

精度和召回率是用于了解机器学习分类器性能的典型指标。以下公式定义了这些指标:


精度 = TP / (TP + FP)


召回率 = TP/ (TP + FN)


其中,TP、FP 和 FN 分别代表真阳性、假阳性和假阴性结果。精度和召回率通常一起用于生成精度-召回率曲线,以便对性能进行稳健的量化。这是因为精确度和召回率具有相反的性质,即随着模型召回率的增加,精确度开始下降。PR 曲线用于计算 F1 分数、曲线下面积(AUC)或平均精度(AP)指标。平均精确度是以不同召回率阈值下精确度的平均值来计算的。图(a) 显示了一条典型的 PR 曲线,图(b) 则描述了如何计算平均精确度。


5


图(c) 描述了如何将平均精度指标扩展到物体检测任务中。如图所示,我们按 IOU 的不同阈值计算 PR 曲线(针对每个类别)。然后,我们取所有平均精度值(针对每个类别)的平均值,得到最终的 mAP 指标。这一综合指标是对特定模型性能的稳健量化。通过将性能缩小到一个可量化的指标,可以很容易地对同一测试数据集上的不同模型进行比较。


另一个用于对物体检测模型进行基准测试的指标是每秒帧数(FPS)。该指标指的是模型每秒可分析物体的输入图像或帧数。对于安全视频监控、人脸检测等实时用例来说,这是一个重要指标。


有了这些概念,我们现在就可以了解物体检测的总体框架了。


物体检测框架

物体检测是一个重要而活跃的研究领域。多年来,人们开发了许多不同但有效的架构,并将其应用于现实世界中。物体检测任务要求所有这些架构处理一系列子任务。在了解具体模型如何处理这些问题的细节之前,让我们先了解一下处理物体检测的总体框架。总体框架包括以下步骤:


  • 区域建议网络
  • 定位和类别预测
  • 输出优化


现在,让我们逐一详细介绍这些步骤。


区域建议

顾名思义,物体检测框架的第一步也是最重要的一步就是提出感兴趣区域(ROI)。ROI 是输入图像中模型认为极有可能存在物体的区域。物体存在或不存在的可能性是通过一个名为 "物体度得分 "的分数来定义的。对象度得分大于某个阈值的区域将进入下一阶段,而其他区域将被剔除。


例如,请看下图中模型提出的不同 ROI。值得注意的是,这一步会生成大量的 ROI。根据对象性得分阈值,模型会将 ROI 划分为前景和背景,并只通过前景区域进行进一步分析。


6


生成感兴趣区的方法有很多种。早期的模型使用选择性搜索和相关算法来生成 ROI,而更新、更复杂的模型则使用深度学习模型来生成 ROI。


定位和类别预测

物体检测模型不同于我们通常使用的分类模型。物体检测模型会为上一步的每个前景区域生成两个输出结果:


  • 物体类别: 这是典型的分类目标,为每个建议的前景区域分配一个类别标签。通常情况下,预先训练好的网络会用来从提议的区域中提取特征,然后使用这些特征来预测类别。最先进的模型,如在 ImageNet 或 MS-COCO 上训练的具有大量类别的模型,被广泛地改编/移植学习。值得注意的是,我们为每个建议的区域生成一个类别标签,而不只是为整个图像生成一个标签(与典型的分类任务相比)。
  • 边界框坐标: 边界框的定义是一个包含 x、y、宽和高 4 个值的元组。在此阶段,模型也会为每个建议的前景区域生成一个元组(以及对象类别)。


输出优化

如前所述,物体检测模型在第一步中提出了大量的 ROI,然后在第二步中进行边界框和类别预测。虽然在第一步中对 ROI 进行了一定程度的过滤(基于对象性得分的前景与背景区域),但在第二步中仍有大量区域用于预测。为如此大量的建议区域生成预测,可确保很好地覆盖图像中的各种对象。然而,对于同一区域来说,也有一些区域存在大量重叠。例如,请看下图中为同一物体预测的 6 个边界框。这可能会导致难以准确计算输入图像中不同物体的数量。


7


因此,该框架的第三步是优化输出。这一优化步骤确保输入图像中的每个对象只有一个边界框和类别预测。进行优化的方法有很多种。到目前为止,最流行的方法是非最大值抑制法(NMS)。顾名思义,NMS 会分析每个物体的所有边界框,找出概率最大的一个,并抑制其余的边界框(应用 NMS 后的优化输出见图 6(b))。


至此,我们对一般物体检测框架有了一个高层次的了解。我们讨论了给定图像中物体定位和分类的三个主要步骤。

文章来源:https://medium.com/towards-data-science/object-detection-basics-a-comprehensive-beginners-guide-part-1-f57380c89b78
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消