当前位置: 首页 > news >正文

目标检测基础知识

如今,使用最新的驾驶辅助技术(如车道检测、盲点、交通信号灯等)驾驶汽车已经很常见。

如果我们退后一步来了解幕后发生的事情,我们的数据科学家很快就会意识到系统不仅对对象进行分类,而且还在场景中(实时)定位它们。

这些功能是正在运行的物体检测系统的主要例子。驾驶辅助技术、工业机器人和安全系统都利用对象检测模型来检测感兴趣的对象。对象检测是一项先进的计算机视觉任务,涉及对象的定位和分类。

在本文中,我们将更深入地研究对象检测任务的细节。我们将了解与之相关的各种概念,以帮助我们理解新颖的架构(在后续文章中介绍)。

我们将涵盖从迁移学习的角度理解对象检测模型所需的关键方面和概念。

关键概念和构建模块

目标检测由两个主要子任务组成:定位和分类。识别对象的分类很容易理解。但是我们如何定义对象的本地化呢?让我们介绍一些关键概念:

Bounding Boxes 边界框

对于对象检测任务,我们使用矩形框来识别给定对象的位置。这个规则框被称为边界框,用于对象的定位。通常,输入图像的左上角被设置为原点或(0,0)。矩形边界框是借助左上角和右下角顶点的 x 和 y 坐标来定义的。让我们直观地理解这一点。

图 1(a) 描绘了一个示例图像,其原点设置在左上角。

图 1:(a) 包含不同对象的示例图像,(b) 每个对象的边界框,并注释了左上角和右下角顶点,(c.) 识别边界框的另一种方法是使用其顶部-左坐标以及宽度和高度参数。

图 1(b) 显示了每个已识别的对象及其相应的边界框。值得注意的是,边界框用相对于图像原点的左上角和右下角坐标进行注释。

通过 4 个值,我们可以唯一地标识一个边界框。识别边界框的另一种方法是使用左上角坐标及其宽度和高度值。图 1(c) 显示了这种识别边界框的替代方法。

不同的解决方案可能使用不同的方法,这主要取决于一种方法相对于另一种方法的偏好。

除了类标签之外,对象检测模型还需要每个训练样本的每个对象的边界框坐标。类似地,对象检测模型在推理阶段生成边界框坐标以及每个识别对象的类标签。

Anchor Boxes 锚盒

每个对象检测模型都会扫描大量可能的区域,以识别/定位任何给定图像的对象。

在训练过程中,模型学习确定哪些扫描区域是感兴趣的,并调整这些区域的坐标以匹配地面实况边界框。不同的模型可能会以不同的方式生成这些感兴趣区域。

然而,最流行和最广泛使用的方法是基于锚框的。对于给定图像中的每个像素,会生成多个不同大小和纵横比(宽度与高度的比率)的边界框。这些边界框称为锚框。图 2 说明了给定图像中特定像素的不同锚框。

图 2:给定图像的特定像素(以红色突出显示)的不同锚框

锚框尺寸由两个参数控制,比例表示为 s 𝜖 (0,1],纵横比表示为 r >0。如图 2 所示,对于高度和宽度为 h ⨉ w 的图像以及 s 和 的具体值r,可以生成多个anchor box,通常我们使用下面的公式来获取anchor box的尺寸:

其中wₐ和hₐ分别是锚框的宽度和高度。锚框的数量和尺寸要么是预先定义的,要么是在训练过程中由模型选取的。

为了正确看待事物,模型会为每个像素生成多个锚框,并随着训练的进行,学习将它们与地面真实边界框进行调整/匹配。

边界框和锚框是理解整个目标检测任务的关键概念。在我们详细了解此类架构如何工作之前,让我们首先了解评估此类模型性能的方式。

以下是使用的一些重要评估指标:

交集与并集 (IOU)

对象检测模型通常会生成许多锚框,然后调整这些锚框以匹配地面实况边界框。但我们如何知道比赛何时发生或比赛的效果如何?

杰卡德指数是用于确定两个集合之间相似性的度量。在物体检测中,Jaccard Index 也称为 Intersection Over Union 或 IOU。其给出如下:

其中 Bₜ 是真实边界框,Bₚ 是预测边界框。简单来说,它是 0 到 1 之间的分数,由预测边界框和真实边界框之间的重叠面积与联合面积之比确定。重叠度越高,得分就越高。

接近 1 的分数表示接近完美的匹配。图 3 显示了样本图像的预测边界框和真实边界框之间重叠的不同场景。

图 3:并交交集 (IOU) 是预测边界框与真实边界框之间的匹配程度的度量。重叠度越高,得分就越好。

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

平均精度 (MAP)

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

其中,TP、FP 和 FN 分别代表 True Positive、False Positive 和 False Negative 结果。精度和召回率通常一起使用来生成精度-召回率曲线,以获得可靠的性能量化。这是由于精确度和召回率的对立性质所必需的,即

随着模型的召回率增加,其精确度开始下降。PR 曲线用于计算 F1 分数、曲线下面积 (AUC) 或平均精度 (AP) 指标。平均精度计算为不同召回阈值下精度的平均值。图 4(a) 显示了典型的 PR 曲线,图 4(b) 描述了 AP 的计算方法。

图 4:a) 典型的 PR 曲线显示了模型在不同召回值下的精度。由于精确度和召回率指标的相反性质,这是一个向下倾斜的图表;

(b) PR-Curve用于计算聚合/组合分数,例如F1分数、曲线下面积(AUC)和平均精度(AP);

(c) 平均精度 (mAP) 是一个强大的组合指标,用于了解不同阈值下所有类别的模型性能。

每条彩色线根据每个类别的特定 IOU 阈值描绘了不同的 PR 曲线。

图 4(c) 描述了如何将平均精度度量扩展到对象检测任务。如图所示,我们计算不同 IOU 阈值下的 PR 曲线(这是针对每个类别进行的)。

然后,我们对所有平均精度值(每个类别)取平均值,以获得最终的 mAP 指标。这种综合指标是对给定模型性能的稳健量化。

通过将性能范围缩小到仅一个可量化的指标,可以轻松比较同一测试数据集上的不同模型。

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

有了这些概念,我们现在就准备好了解接下来对象检测的一般框架了。

物体检测框架

物体检测是一个重要且活跃的研究领域。多年来,已经开发了许多不同但有效的架构并在现实环境中使用。对象检测任务需要所有此类架构来处理一系列子任务。

在详细了解特定模型如何处理对象检测之前,让我们先了解处理对象检测的总体框架。总体框架包括以下步骤:

Region Proposal Network 区域提案网络

Localization and Class Predictions 本地化和类别预测

Output Optimizations 输出优化

现在让我们详细介绍一下每个步骤。

Regional Proposal 区域提案

区域提议网络(Region Proposal Network, RPN)是一个用于目标检测的神经网络组件,其作用是在图像中找出可能包含目标的区域,即候选区域。RPN 通常与 Faster R-CNN 框架结合使用,在进行目标检测任务时,它首先会生成一系列的矩形区域提议,这些提议随后被用来定位图像中的目标。

RPN 通过滑动窗口的方式在特征图(feature map)上移动,每个位置上评估多个预定义大小和比例的锚点框(anchor boxes),然后对这些锚点框进行分类和回归,以判断它们是否包含目标以及框的位置需要如何调整以更好地匹配目标。

具体来说,RPN 会输出两个值:一个是每个锚点框是否包含目标的概率(前景与背景),另一个是框的位置调整量。这样,RPN 能够为后续的检测网络(如 Fast R-CNN)提供高质量的区域提议。

顾名思义,目标检测框架的第一步也是最重要的一步是提出感兴趣区域(ROI)。ROI 是输入图像中模型认为很可能存在对象的区域。对象存在或不存在的可能性是使用称为对象性分数的分数来定义的。

对象性得分大于特定阈值的区域将被传递到下一阶段,而其他区域将被拒绝。

例如,请查看图 5,了解模型提出的不同 ROI。值得注意的是,这一步会生成大量的 ROI。

基于客观性得分阈值,模型将 ROI 分类为前景或背景,并且仅通过前景区域进行进一步分析。

图 5:区域提案是对象检测框架的第一步。感兴趣的区域突出显示为红色矩形框。该模型将图像可能性高(高目标得分)的区域标记为前景区域,将其余区域标记为背景区域。

有多种不同的方式来生成感兴趣区域。早期的模型通常利用选择性搜索和相关算法来生成投资回报率,而更新、更复杂的模型则利用深度学习模型来生成投资回报率。

当我们在接下来的文章中讨论特定架构时,我们将介绍这些内容。

推荐资源:

《机器学习+深度学习》和人工智能60G入门学习zi料包

【1.超详细的人工智能学习大纲】:一个月精心整理,快速理清学习思路!

【2.基础知识】:Python基础+高数基础,打好基础!

【3.机器学习入门】:机器学习十大算法经典算法详解,并且整理好哪些要重点学,哪些可以放弃的知识点!

【4.深度学习入门】:神经网络基础(CNN+RNN+GAN)包括pytorch框架+Transformer详解!

【5.方向选择】:数据、CV、NLP、大模型等项目实战

Localization And Class Predictions 本地化和类别预测

对象检测模型与我们通常使用的分类模型不同。对象检测模型为上一步中的每个前景区域生成两个输出:

对象类:这是典型的分类目标,为每个建议的前景区域分配类标签。通常,预先训练的网络用于从建议区域中提取特征,然后使用这些特征来预测类别。

最先进的模型,例如在 ImageNet 或 MS-COCO 上训练的具有大量类别的模型,得到了广泛的适应/迁移学习。

值得注意的是,我们为每个建议区域生成一个类标签,而不仅仅是整个图像的单个标签(与典型的分类任务相比)

边界框坐标:边界框定义为具有 4 个 x、y、宽度和高度值的元组。在此阶段,模型还会为每个建议的前景区域(以及对象类)生成一个元组。

Output Optimization 输出优化

如前所述,对象检测模型在第一步中提出大量 ROI,然后在第二步中提出边界框和类别预测。

虽然在第一步中对 ROI 进行了一定程度的过滤(基于客观性分数的前景与背景区域),但在第二步中仍然有大量区域用于预测。

为如此大量的建议区域生成预测可确保图像中各种对象的良好覆盖。然而,有许多区域的同一区域有大量重叠。

例如,查看图 6(a) 中为同一对象预测的 6 个边界框。这可能会导致难以准确计算输入图像中不同对象的数量。

图 6 (a) 对象检测模型为同一对象生成 6 个具有良好重叠的边界框。

(b) 使用 NMS 优化输出。

因此,该框架的第三步涉及输出的优化。这一优化步骤确保输入图像中的每个对象只有一个边界框和类别预测。有多种不同的方法可以执行此优化。

到目前为止,最流行的方法称为非极大值抑制(NMS)。顾名思义,NMS 会分析每个对象的所有边界框,以找到概率最大的一个并抑制其余的边界框(参见图 6(b),了解应用 NMS 后的优化输出)。

这总结了对通用对象检测框架的高级理解。我们讨论了给定图像中对象的定位和分类所涉及的三个主要步骤。

相关文章:

  • 目标检测135个前沿算法模型汇总(附源码)!
  • vue项目启动报错(node版本与Webpack)
  • vue-cli 构建打包优化(JeecgBoot-Vue2 配置优化篇)
  • MEMO数据DID与ZK技术:赋能RWA代币化与可信流通的新基石
  • C++ 01.vscode配置c++开发环境
  • C++语法理解记录
  • 安卓开发用到的设计模式(1)创建型模式
  • 缺乏经验的 PCB 过孔建模方法
  • NIFI的处理器:JSLTTransformJSON 2.4.0
  • 基于LiveData和ViewModel的路线管理实现(带PopupWindow删除功能)
  • 【神经网络与深度学习】流模型的通俗易懂的原理
  • Simon J.D. Prince《Understanding Deep Learning》
  • vscode连接WSL卡住
  • jvm调优以及常见jvm问题解决等
  • chrono类 根据duration 类的周期类型得到对应的周期名称
  • 基于AI大语言模型的历史文献分析在气候与灾害重建中的技术-以海南岛千年台风序列重建为例
  • 现代生活中的健康养生之道
  • 传统Spring MVC + RESTful 与 Vue3 结合 JWT Token 验证的示例
  • 双检锁(Double-Checked Locking)单例模式
  • 管理会议最佳实践:高效协同与价值最大化
  • php零基础做网站/同城广告发布平台
  • 合肥网站制作联系方式/网络营销考试答案