2021年荣获科技型企业称号 咨询热线:
致力于推动人工智能在各行业细分领域的普及和应用 18103867856
< >

计算机视觉系统中的目标检测和定位

作者:睿如信息技术 日期:2024-05-17 点击:91
一键分享

对象检测和定位是计算机视觉的关键功能,使系统能够识别和定位图像或视频中的对象。这些技术在广泛的应用中发挥着关键作用,包括自动驾驶车辆、监控系统、医学成像分析、机器人和增强现实。


20240511174123_73299.jpg


在高层次上,对象检测涉及从一组已知的类(例如人、汽车或动物)中识别对象的实例。对象定位更进一步确定图像中对象的精确位置,通常以边界框坐标的形式。检测和定位相结合,使计算机视觉系统不仅能够对存在的对象进行分类,还能精确定位它们在视觉场景中的位置。


可靠地检测和定位物体的能力已成为现实世界中运行的许多计算机视觉系统的基本要求。自动驾驶汽车需要检测其他车辆、行人和路标,而增强现实服务则依赖于检测表面和物体来覆盖数字内容。在这种情况下,拥有强大的计算机视觉解决方案至关重要。医学图像分析需要识别感兴趣的器官或区域。对象检测和定位是这些以及许多其他跨行业应用的关键推动因素。


挑战和限制


对象检测和定位面临着限制实际应用中性能的几个关键挑战:


遮挡:图像和视频中的对象通常会被其他对象部分遮挡。遮挡使得识别整个对象并定位其准确位置变得困难,尤其是当大部分对象被隐藏时。处理遮挡的方法仍然是一个开放的研究问题。


照明条件:照明、阴影、亮度和对比度的变化可能会改变物体的外观,从而给依赖于颜色、纹理和形状特征的检测算法带来挑战。在次优照明下,性能通常会下降。数据增强等方法有助于提高稳健性。


方向:从不同的视角和方向捕捉真实的物体。许多算法对旋转或倾斜的物体很敏感。尽管空间金字塔等技术有助于提高方向的鲁棒性,但旋转不变性仍然很困难。


计算复杂性:先进的深度学习模型具有很高的计算要求,使得在硬件受限的设备上进行实时推理变得困难。模型优化、压缩和高效架构有助于提高速度,但低功耗应用还需要更多突破。


其他问题:运动模糊、低分辨率、小物体、背景杂乱、物体的多样性以及类之间的相似性等因素也会带来挑战并损害性能。仍需要继续研究来处理这些问题并构建更通用、更强大的系统。


常见方法


物体检测和定位


对象检测算法通常分为三个主要类别之一:滑动窗口检测器、基于区域的卷积神经网络 (CNN) 和单次检测器。


滑动窗探测器


早期的物体检测器依赖于滑动窗口技术。这涉及到对一个对象采用分类器并将其在图像上滑动,在不同位置和尺度上提取正和负斑块。分类器应用于每个窗口位置以确定目标对象是否存在。这种方法因 Viola-Jones 人脸检测器和 HOG 行人检测器等检测器而得到普及。然而,滑动窗口方法的计算成本很高,因为分类器必须在每个图像上运行数千次。


基于区域的 CNN


较新的先进检测器在 CNN 管道中使用区域提议网络。这些网络会生成潜在的对象区域或“提议”,这样 CNN 只需评估每幅图像的一小部分区域,而不必在所有位置和尺度上进行详尽搜索。常见示例包括 R-CNN、Fast R-CNN 和 Faster R-CNN。这些基于区域的 CNN 的准确率明显高于滑动窗口方法。然而,它们在训练和推理过程中对计算的要求很高。


单次探测器


引入单次检测器是为了提高基于区域的 CNN 的速度和效率。顾名思义,单次检测器通过网络一次性执行对象定位和分类。这避免了单独的区域提议和分类步骤的需要。领先的单次检测器包括 SSD 和 YOLO 变体。虽然通常速度更快,但与基于区域的方法相比,它们牺牲了一些准确性。


在设计现代物体检测系统时,方法的选择涉及在准确性、速度和复杂性之间进行权衡。但基于 CNN 的检测器现在明显优于传统的滑动窗口方法。


关键算法


基于区域的 CNN (R-CNN)


一种开创性的物体检测算法,于 2013 年发布。R-CNN 使用选择性搜索算法生成的感兴趣区域,并使用卷积神经网络对每个区域进行分类。尽管具有突破性的性能,但由于区域提议方法和重复前向传递通过 CNN 对许多区域提议进行分类,R-CNN 的速度很慢。


快速R-CNN


Fast R-CNN 由 Ross Girshick 于 2015 年提出,与 R-CNN 相比,速度提高了几个数量级。关键区别在于它使用 CNN 处理整个图像一次以生成卷积特征图。感兴趣的区域在特征图上被识别,并通过附加的全连接层进行分类。一旦图像通过 CNN,就可以实现几乎免费的区域提议。


更快的 R-CNN


Faster R-CNN 由少清任于 2015 年提出,用区域提议网络(RPN)代替选择性搜索算法。 RPN 与检测网络共享卷积层,允许像 Fast R-CNN 这样几乎无成本的区域提议。 RPN 比 Fast R-CNN 提高了速度和准确性。


你只看一次(YOLO)


YOLO 是 Joseph Redmon 在 2016 年提出的单次检测器。它将对象检测视为空间分离的边界框和类概率的回归问题。单个神经网络在一次评估中直接从完整图像预测边界框和类别概率。这使得 YOLO 速度极快,但牺牲了一些准确性。


单次多盒探测器 (SSD)


SSD由刘伟于2016年推出。它使用单个前馈卷积网络直接预测类别和锚点偏移量,而不需要辅助区域提议网络。这形成了一个简单而快速的架构,其精度可与 Faster R-CNN 等先进的模型相媲美,同时运行速度显着加快。


关键算法部分概述了重要的对象检测模型,突出了该领域的发展。它重点关注基于区域提议的方法(如 R-CNN、Fast R-CNN 和 Faster R-CNN)与单次检测器(如 YOLO 和 SSD)之间的速度和准确性权衡。这为读者提供了推动物体检测进步的关键创新的背景信息。


绩效评估


评估对象检测系统的性能对于了解其在实际用例中的功能和局限性至关重要。有几个常用来量化对象检测性能的关键指标:


精度衡量检测到的正确物体的比例。例如,如果模型检测到 100 个物体,其中 90 个是正确检测,则其精度为 90%。高精度与较低的误报率相关。


召回率衡量的是被正确检测到的实际物体的比例。因此,如果图像中有 200 个对象,并且模型检测到其中 90 个,则其召回率为 45%。更高的召回率意味着模型可以成功检测到更多存在的对象。


mAP(平均平均精度)是用于评估大型数据集上整体对象检测性能的主要指标。 AP 将特定类别的精确召回曲线总结为单个值。 mAP 是所有类别的 AP 值的平均值,提供跨类别表现的全局指标。对于基准数据集上的领先算法,典型的 mAP 值范围为 70-90%。


FPS(每秒帧数)衡量推理速度。实时应用程序通常需要低 FPS 阈值。通常存在精度与速度的权衡,模型越快,准确度就越低。先进的探测器可在高分辨率图像上实现 20-30 FPS。


通过在模型开发过程中评估这些指标,研究人员可以更好地了解现实世界数据集和应用程序的检测能力。准确性和速度的提高对于物体检测系统的广泛采用至关重要。


数据集


几个关键数据集推动了物体检测的研究和进步。这些精选的数据集提供了开发和基准计算机视觉系统所需的训练和测试图像。


MNIST


MNIST 数据库包含 70,000 张手写数字的灰度图像。每幅图像为 28×28 像素,表示数字 0-9。 MNIST 被认为是计算机视觉的“hello world”数据集,用于训练基本图像分类模型。然而,它缺乏严格的物体检测研究所需的复杂性。


可可


Microsoft Common Objects in Context (COCO) 数据集包含超过 200,000 张标记图像,这些图像描绘了复杂的日常场景以及自然环境中的常见对象。它有 80 多个对象类别,如人、动物、家居用品和车辆。 COCO 是推动物体检测研究的选择。


图像网


ImageNet 包含超过 1400 万张图像,分为约 22,000 个名词类别。虽然它不是专门针对对象检测而设计的,但它提供了跨大量对象的充足标记训练数据。 ImageNet 在推进对象分类领域的新技术方面发挥了重要作用。


帕斯卡VOC


PASCAL 视觉对象类 (VOC) 数据集历来是对象检测研究中使用广泛的数据集。自 2005 年以来的版本包含约 10,000 张图像,带有边界框和标签,涵盖 20 个对象类别,如人、车辆和家居物品。与现代数据集相比,其相对较小的尺寸允许更快的训练时间。


实际应用


目标检测和定位已成为当今许多现实世界计算机视觉应用中不可或缺的一部分。一些值得注意的例子包括:


自动驾驶汽车


自动驾驶汽车严重依赖物体检测来了解周围环境。这些车辆使用物体检测算法来识别其他汽车、行人、交通信号、路标等。通过确定这些物体的位置,自动驾驶车辆可以更好地在复杂的环境中安全地进行自我导航。物体检测可以在自动驾驶汽车中实现自动紧急制动、车道偏离警告和自适应巡航控制等功能。


监视


对象检测广泛用于视频监控系统中,以监视区域并检测入侵者、威胁或异常活动。可以识别人、汽车和行李等特定对象,以提供有关场景中存在的人物或事物的信息。对象检测算法允许监控摄像头跟踪感兴趣的对象并在需要时发出警报。


图片搜索


Google Images 等图像搜索引擎使用对象检测来分析图像内容并确定哪些图像与用户的查询匹配。例如,如果用户搜索“狗”,算法将通过检测图像中的该对象来识别包含狗的所有图像。对象定位通过精确定位图像中对象的位置来进一步改进图像搜索。


新进展


物体检测领域持续快速发展,3D 物体检测、视频物体检测以及速度和准确性均得到提高。近期的一些关键进展包括:


3D 物体检测


3D物体检测已成为一个重要的研究领域。激光雷达传感器和立体相机可以提供深度信息来检测 3D 空间中的物体。这允许更准确的定位和方向估计。一些示例包括 Vote3Deep、PointPillars 和 MVX-Net。


视频目标检测


视频对象检测旨在识别视频流中跨帧的对象。由于运动模糊和遮挡,这比图像检测更具挑战性。一些方法使用光流跨帧传播检测。其他方法通过循环神经网络结合时间建模。示例包括 Tubelet 建议和 MANet。


两级检测器


Faster R-CNN 等两级检测器可产生高度准确的检测,但由于区域提议生成而具有较高的延迟。像 YOLO 和 SSD 这样的一级检测器通过消除区域提议步骤,牺牲了一些实时性能的准确性。 RetinaNet、EfficientDet 和 NanoDet 等一级检测器的改进在保持速度的同时缩小了精度差距。


高效的神经网络架构


高效的神经网络架构(例如 MobileNets 和 EfficientNets)使用深度可分离卷积等技术来构建更小、更快的模型。这使得可以在移动和嵌入式设备上进行对象检测。网络剪枝和量化等模型压缩技术也可以提高效率。


自监督学习和半监督学习


可以从未标记或弱标记数据中学习的自监督学习和半监督学习方法已经成为减少注释要求和提高泛化能力的方法。例子包括对比学习和伪标签。


综合数据生成


还正在探索通过渲染管道和生成对抗网络生成合成数据以增强训练数据。这有助于提高稳健性。


总体而言,该领域不断突破准确性、速度和能力的界限,以解决新的和不断发展的现实世界用例。深度学习、模型效率和数据增强方面的进步将开辟更多的应用程序。


未来展望


近年来,物体检测和定位已经取得了长足的进步,但未来的改进和研究仍然有很多机会。以下是未来几年我们可能会看到进展的一些关键领域:


潜在的改进


  • 提高准确性,特别是对于小型、遮挡和不寻常的物体

  • 更快的检测和定位,更接近实时性能

  • 能够检测和定位大量类别和更细粒度的类别

  • 更高效的模型和更低的计算要求

  • 视频数据和网络摄像头流的性能改进


仍有待解决的挑战


  • 对光照条件、天气、运动模糊和其他环境变量的鲁棒性

  • 处理遮挡,尤其是当大部分对象被隐藏时

  • 扩大规模以检测数千或数百万个对象类别

  • 在嵌入式系统和边缘设备上有效部署模型


有前途的研究方向


  • 自监督和无监督学习以减少注释需求

  • 利用合成数据扩展可用的训练数据集

  • 将计算机视觉与雷达和激光雷达等其他模式相结合

  • 探索 Transformer 架构作为 CNN 的替代方案

  • 制定专注于实际应用的基准测试和竞赛

20240511174127_21598.jpg


在未来几年,我们可以预期目标检测和定位算法、网络架构和训练技术将持续创新。主要目标是提高在现实环境中部署这些系统的准确性、速度、可扩展性和稳健性。随着计算机视觉的不断发展,激动人心的时代即将到来。

上一条:什么是AI图像识别?它在数字世界中如何运作?

下一条:图像识别技术如何改变行业