计算机系统应用教程网站

网站首页 > 技术文章 正文

这次终于能把对象检测弄清楚了!

btikc 2024-09-16 13:10:56 技术文章 21 ℃ 0 评论

对象检测作为计算机视觉领域的一项高级任务,融合了对象的定位和分类两大关键步骤。

在本文中,我们将详细探讨对象检测任务的核心内容,学习与之相关的各种概念,以增进我们对这一领域的理解。

同时,我们还将从迁移学习的视角出发,介绍理解对象检测模型所需的关键方面和概念。

关键概念和构建模块

对象检测包括两个主要子任务,定位和分类。

已识别对象的分类很容易理解,但是我们如何定义对象的定位呢?让我们先介绍一些关键概念:

边界框

在对象检测任务中,我们采用矩形边界框来标识给定对象的位置。

这个矩形框,我们称之为边界框,扮演着定位对象的关键角色。通常,我们会将输入图像的左上角设定为原点,即(0,0)点。

而矩形边界框的具体位置则由其左上角和右下角的x、y坐标共同定义。

为了更直观地理解这一点,我们可以借助图像来进行说明。在图1(a)中,我们可以看到一张以左上角为原点的示例图像。


图1: (a) 包含不同对象的样本图像,(b) 每个对象的边界框,其中左上角和右下角顶点已标注,(c) 另一种标识边界框的方法是使用其左上角坐标以及宽度和高度参数。


接着,在图1(b)中,每个被识别出的对象都被一个相应的边界框所包围,并且这些边界框的左上角和右下角坐标都是相对于图像原点的。

值得注意的是,我们只需要四个数值(两个x坐标和两个y坐标)就能唯一地确定一个边界框的位置。

当然,还有另一种方式来表示边界框,那就是使用其左上角的坐标以及其宽度和高度值。

如图1(c)所示,这种表示方法同样能有效地标识出边界框。

在实际应用中,不同的解决方案可能会采用不同的边界框表示方法,这主要取决于开发者的个人偏好。

不过,无论采用哪种方式,对象检测模型在训练时都需要每个训练样本中每个对象的边界框坐标以及相应的类别标签。同样地,在推理阶段,对象检测模型也会为每个识别出的对象生成边界框坐标及类别标签。


另外大家想更进一步学习机器学习、深度学习、神经网络技术的可以看看以下文章(文章中提到的资料都打包好了,都可以直接进人工智能交流群7领取)

锚框

每个对象检测模型都会细致地扫描图像中的大量潜在区域,以识别和定位其中的对象。

在训练阶段,模型会学习如何识别哪些扫描区域是真正感兴趣的,并相应地调整这些区域的坐标,以准确匹配真实对象的边界框。

尽管不同的模型可能采用不同的方法来生成这些潜在感兴趣区域,但其中最流行且广泛使用的方法是基于锚框的。

具体来说,对于给定图像中的每个像素,模型会生成多个不同大小和长宽比的边界框,这些边界框被称为锚框。

图2展示了给定图像中特定像素的不同锚框示例。


图2:对于给定的图像,特定像素(以红色高亮显示)的不同锚框


锚框的大小和形状由两个关键参数控制:尺度s(取值范围在0到1之间)和长宽比r(大于0)。

给定图像的尺寸h × w以及特定的s和r值,可以生成多个大小和形状各异的锚框。

在实际应用中,我们通常使用特定的公式来计算锚框的尺寸



锚框的数量和具体维度要么是预先设定的,要么是在训练过程中由模型自适应选择的。

为了让整个过程更加清晰,模型会为每个像素生成多个锚框,并在训练过程中学习如何调整这些锚框以匹配真实的边界框。

边界框和锚框是理解对象检测任务的核心概念。

在深入探讨这些架构的具体工作原理之前,我们先来了解一下如何评估这些模型的性能。

以下是一些关键的评估指标:


交并比(IOU)

对象检测模型首先会生成大量的锚框,随后通过调整这些锚框来匹配图像中真实存在的对象的边界框。

然而,我们如何判断这些锚框的匹配程度呢?

这里,我们引入了Jaccard指数,它在对象检测领域也被称为交并比(Intersection over Union,简称IOU),IOU用于量化两个边界框之间的相似度。




具体来说,IOU的计算公式涉及真实的边界框B?和模型预测的边界框B?。

简而言之,IOU是一个介于0和1之间的值,它表示了预测边界框与真实边界框之间重叠区域的面积与这两个边界框联合面积的比率。

当两个边界框的重叠部分越大,IOU得分就越高。接近1的IOU值意味着预测边界框与真实边界框几乎完全重合。

图3展示了不同情况下预测边界框与真实边界框之间的重叠情况。


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


为了更准确地评估模型的性能,我们通常会根据问题的具体要求和数据集的复杂性,设定一个IOU阈值。例如,在MS-COCO对象检测挑战中,就采用了0.5的IOU阈值作为标准,来确定哪些预测边界框被视为真阳性。



平均精度均值(MAP)

精度和召回率是评估分类器性能的两个关键指标。这些指标通过以下公式来定义:



其中,TP代表真阳性、FP代表假阳性和FN代表假阴性结果。由于精度和召回率之间存在权衡关系,即提高召回率时可能会降低精度,因此通常将它们结合使用,生成精度-召回率(PR)曲线,以更全面地量化模型性能。

PR曲线不仅展示了模型在不同召回率下的精度表现,还可以用于计算F1分数、曲线下面积(AUC)或平均精度(AP)。AP是在不同召回率阈值下精度的平均值,它提供了一个综合的评估视角。

图4(a)展示了典型的PR曲线,而图4(b)则详细说明了AP的计算方法。


图4:a) 典型的PR曲线(精度-召回率曲线)展示了模型在不同召回率下的精度。由于精度和召回率指标的性质相反,因此曲线呈下降趋势;b) PR曲线用于计算聚合/综合得分,如F1得分、曲线下面积(AUC)和平均精度(AP);c) 平均精度均值(mAP)是一个强大的综合指标,用于理解模型在不同阈值下跨所有类别的性能。每条彩色线代表基于每个类别的特定IOU阈值的PR曲线。


对于对象检测任务,我们需要将AP的概念扩展到多类别的情况。图4(c)展示了这一扩展过程:我们在不同的IOU阈值下为每个类别计算PR曲线,并计算每个类别的AP值。

最终,我们将所有类别的AP值取平均,得到平均精度均值(mAP),这是一个综合评估对象检测模型性能的稳健指标。

mAP使得我们能够在相同的测试数据集上方便地比较不同模型的性能,通过将其量化为一个可比较的数值。

除了mAP,另一个在评估对象检测模型时常用的指标是每秒帧数(FPS),它衡量了模型处理输入图像或帧的速度。

对于实时应用(如安全视频监控、面部检测等),FPS是一个至关重要的指标。

在掌握了这些基本概念后,我们接下来将探讨对象检测的一般框架。

对象检测框架


对象检测作为一个关键且蓬勃发展的研究领域,多年来已经催生出众多高效且各具特色的架构,这些架构在实际应用中发挥着重要作用。

对象检测任务通常要求这些架构解决一系列复杂的子任务。为了深入理解这些架构的工作原理,我们先来概述一下对象检测的一般框架。这个框架主要包括以下几个关键步骤:

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


区域建议

在对象检测框架中,第一步也是至关重要的一步是识别感兴趣区域(ROI),这些区域是输入图像中模型预测存在对象可能性较高的部分。

为了量化这种可能性,我们引入了一个称为对象性分数的指标。当某个区域的对象性分数超过设定的阈值时,该区域会被进一步处理,而分数低于阈值的区域则会被忽略。

如图5所示,模型能够提出多个不同的ROI。

值得注意的是,此步骤通常会生成大量的ROI候选区域。

根据设定的对象性分数阈值,模型会对这些ROI进行筛选,将那些更有可能包含目标对象的区域(即前景)继续传递给后续阶段进行更细致的分析,而将背景区域排除在外。


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


生成感兴趣区域(ROI)的方法多种多样。

早期的方法主要依赖于选择性搜索和相关算法,而近年来,随着深度学习技术的飞速发展,更先进和复杂的模型开始采用深度学习技术来自动生成ROI。

我们将在后续讨论不同对象检测架构时,详细介绍这些生成ROI的方法及其原理。


定位和类别预测

对象检测模型与我们通常使用的分类模型存在显著差异。在对象检测任务中,模型针对前一步骤筛选出的每个前景区域生成两个主要输出:

  • 对象类别:这是典型的分类任务,模型需要为每个提出的前景区域分配一个具体的类别标签。为了实现这一点,通常会使用预训练的网络从提出的区域中提取特征,并基于这些特征来预测类别。广泛采用迁移学习的模型,如在ImageNet或MS-COCO上训练的包含大量类别的最新模型,能够大大提高分类的准确性。值得注意的是,对象检测模型为每个提出的区域独立生成类别标签,而不仅仅是针对整个图像给出一个标签(这与传统的分类任务有所不同)。
  • 边界框坐标:边界框是一个包含x、y坐标(表示左上角位置)、宽度和高度四个值的元组,用于精确定位对象在图像中的位置。在此阶段,模型会为每个提出的前景区域生成一个精确的边界框坐标,以实现对对象的精确定位。


输出优化

对象检测模型的工作流程包含两个关键步骤。首先,模型会提出大量感兴趣区域(ROI),然后在第二步中为每个ROI生成边界框坐标和对象类别预测。

虽然第一步已经基于对象性分数对ROI进行了初步过滤,以区分前景和背景区域,但在第二步中,模型仍然需要对大量区域进行预测。

这种大规模的预测确保了图像中各种对象都能得到良好的覆盖和检测。

然而,这也带来了一个问题:由于预测区域的密集性,常常会出现同一对象被多个重叠的边界框包围的情况。

如图6(a)所示,同一个对象可能被多达六个预测边界框所覆盖。

这种情况不仅会造成计算资源的浪费,还可能影响模型对图像中不同对象数量的准确统计。

为了解决这一问题,后续的处理步骤通常会采用非极大值抑制(Non-Maximum Suppression, NMS)等技术来合并或去除冗余的边界框,从而更精确地定位和计数图像中的对象。


图6:(a) 对象检测模型为同一对象生成了6个具有良好重叠度的边界框。(b) 使用非极大值抑制(NMS)优化后的输出。


因此,在对象检测框架中,第三步是优化输出,旨在确保每个对象在输入图像中仅与一个边界框和类别预测相对应。

为了实现这一优化,有多种方法可供选择,其中最流行的是非极大值抑制(NMS)。

NMS的工作原理是分析每个对象的所有边界框,识别出概率最高的那个,并相应地抑制其他边界框,以减少冗余。

如图6(b)所示,应用NMS后,我们得到了优化后的输出,每个对象仅由一个边界框准确标注。

免费分享一些我整理的人工智能学习资料给大家,整理了很久,非常全面。包括人工智能基础入门视频+AI常用框架实战视频、机器学习、深度学习与神经网络等视频、课件源码、毕设项目、AI热门论文等。

下面是截图,扫码进群免费领取:人工智能交流群7

我会在群里与朋友们定期分享人工智能的发展就业情况相关资料

最后祝大家天天进步!!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表