深度学习中的目标检测

2025年2月3日 | 13分钟阅读

目标检测简介

目标检测是计算机视觉的一个过程,通过该过程可以检测和定位给定图像或视频流中的目标。虽然像图像分类这样的任务涉及输入图像并将其分类到特定类别,但目标检测会识别图像中的目标及其位置,通常用边界框表示。这项技术在各种实际应用中至关重要,包括自动驾驶汽车、面部识别和安全摄像头。

CNN 通过将深度学习应用于大型数据集并解决复杂问题,从而锐化了目标检测。一些广为人知的目标检测算法包括 YOLO(You Only Look Once)、SSD(Single Shot MultiBox Detector)、Faster R-CNN 等,它们能够以极高的准确率进行实时检测。这些算法通过带标签的数据进行学习,能够识别各种尺寸、形状甚至方向的目标。

深度学习基础

机器学习本身可以分为一个称为深度学习的子类别,它使用人工神经网络来解决问题。这些网络由称为节点或神经元的层组成,它们执行类似于生物神经元的功能。架构通常包括输入层、一个或多个隐藏层和输出层。术语“深度”的含义在于网络可以包含的多个层,以便在不同级别上学习数据的表示。

深度学习的本质在于它直接从原始数据中学习特征,从而摆脱了对领域专家进行特征工程的依赖。一些常用的深度学习模型包括卷积神经网络(CNN),它们在高精度下表现出色,尤其是在图像相关操作中。卷积层有助于检测当前图像中的空间层次结构,因此它们在图像分类、目标检测甚至分割中非常有用。

下一个重要的架构是循环神经网络(RNN),它是顺序数据任务的关键,尤其是在自然语言处理和时间序列预测中。因此,RNN 在网络内部有循环来存储先前的输入,然后它们可以处理顺序数据。

训练深度学习模型的一个方面是数据通过网络传递,通过损失函数计算误差,然后通过反向传播和随机梯度下降等优化技术调整模型的权重。随着时间的推移,当模型得到训练时,误差会减小,“准确性”也会随着呈现给它的事实而增加。

CNN

卷积神经网络(CNN)是一种广泛用于处理图像和识别其中模式的神经网络。它基于人脑视觉皮层的 3 层模型结构,该模型接收原始视觉输入并通过多个神经元层进行处理。CNN 在 20 世纪 80 年代末和 90 年代初由 Yann LeCun 主流推广,特别是 LeNet 用于手写数字的光学字符识别。

它的工作原理

CNN 通过将输入图像通过多个层来工作,每个层都有特定的功能

  • 卷积层:此层对输入图像进行卷积并应用滤波器(核)来获得特征图,这些特征图代表了边缘、纹理等特征。
  • 池化层:它降低了特征图的空间范围,从而实现了更高效的网络并减少了过拟合。
  • 全连接层:此层将前一层的每个神经元连接到下一层的每个神经元,从而产生最终输出,例如概率分数。

优点

  • 自动特征提取:CNN 可以被训练来隐式地检查和获取图像的特征,而无需进行繁琐的特征工程。
  • 高精度:CNN 用于解决各种问题,在图像分类、检测和分割方面精度很高。

缺点

  • 大量数据需求:CNN 在训练时还需要带标签的数据,这可能很昂贵且准备时间很长。
  • 计算密集型:CNN 训练具有计算密集性,通常需要使用图形处理单元(GPU)。

R-CNN

R-CNN,代表区域卷积神经网络,Ross Girshick 和他的团队于 2014 年提出了 R-CNN,即区域卷积神经网络。这是深度学习在目标检测方面最早成功的应用之一,是与以往技术的一个显著突破。

架构

R-CNN 方法涉及一个两阶段的检测过程

  • 区域提议:模型的第一个阶段是创建一组最有可能包含目标的区域提议。这被称为选择性搜索(Selective Search),其中建议合并相似像素邻域的区域,以表明区域中存在目标。
  • 特征提取和分类:然后,这些区域提议通过 CNN 以获得固定大小的特征向量。然后使用一系列预定义的分类器(例如,支持向量机 - SVM)将获得的特征向量分类为属于任何一个目标类别或背景。

局限性

R-CNN 是一个开创性的模型,但它也有一些局限性

  • 训练和推理速度慢:区域提议、特征提取、分类:这些组件必须孤立地进行训练,这有很多缺点:训练过程不方便且耗时。此外,R-CNN 对每个提议的区域都执行 CNN 前向传播;因此,推理速度很慢。
  • 存储要求:为每个区域提议提取和存储的特征占用了大量的存储空间。
  • 选择性搜索瓶颈:选择性搜索算法使得识别过程非常耗时且缓慢,这成为了模型的弱点。

Fast R-CNN

Ross Girshick 于 2015 年提出了 Fast R-CNN,作为 R-CNN 的改进。它解决了原始 R-CNN 范式中的一些问题,这些问题主要与速度和准确性有关。

架构

Fast R-CNN 在以下方面修改了 R-CNN 架构

  • 单阶段处理:虽然在 R-CNN 中,图像需要通过卷积神经网络两次才能生成特征图,但 Fast R-CNN 只对整个图像执行一次 CNN。然后从该特征图而不是原始图像中获得区域提议。
  • ROI 池化层:该模型采用感兴趣区域(ROI)池化层,通过该层可以从每个区域提议的特征图中获得固定大小的特征向量。该能力使网络能够在一次前向传播中一次性对所有区域进行分类和回归。
  • 联合训练:与传统的特征提取和分类然后进行边界框回归的两步架构不同,Fast R-CNN 将所有这些步骤组合到一个网络中,并进行端到端训练。

优点

  • 速度:根据结果,Fast R-CNN 显著比 R-CNN 缩短了训练和推理时间。其训练速度比 R-CNN 快约 10 倍,推理速度比 R-CNN 快 200 倍。
  • 内存效率:由于区域提议之间的共享计算,Fast R-CNN 在存储需求方面比 R-CNN 更具优势。
  • 准确性提高:由于分类和定位是联合训练的,该模型提高了平均精度(mAP),优于 R-CNN。

局限性

  • 然而,Fast R-CNN 仍然使用选择性搜索进行区域提议,这很慢且未针对速度进行优化。这一缺点导致了 Faster R-CNN 的产生。

Faster R-CNN

另一个相关的方法是 Faster R-CNN,由 Shaoqing Ren 及其同事于 2016 年提出,旨在进一步改进 Fast R-CNN。它引入了一个名为区域提议网络(RPN)的新组件,该组件可以相应地生成区域提议,从而有效地改进了整个目标检测过程并实现了端到端训练。

架构

  • 区域提议网络(RPN):Faster R-CNN 消除了外部区域提议算法,而是使用 RPN,一个小型网络,可以同时为特征图的每个位置生成目标边界和目标分数。
  • 锚框:RPN 还有助于改进提议生成,并使用锚框,即各种尺寸和比例的固定形状框。这些锚框有助于管理各种尺寸和形状的项目,以确保正确组织。
  • 端到端训练:因此,整个 RPN 和 Fast R-CNN 可以通过多任务损失函数进行端到端训练,以优化区域提议和目标检测。

优点

  • 速度:据发现,Faster R-CNN 可以减少生成区域提议所需的时间,从而无需使用像选择性搜索这样计算密集型算法。这使得模型比 R-CNN 或 Fast R-CNN 更快,因为它不需要生成区域提议。
  • 准确性提高:由于生成了更好的区域提议,Faster R-CNN 与其前代产品相比,准确性有所提高。

YOLO(You Only Look Once)

  • YOLO 也是一种单阶段检测器,其中输入图像被划分为网格,网格中的每个单元格预测边界框及其相应的类别概率。YOLO 的主要优势在于其能够以极高的速度并行预测多个边界框及其相应的类别。
  • YOLO 将目标检测作为回归问题来处理,因此直接预测边界框和每个类别的概率。与需要迭代处理图像的传统方法(例如区域提议网络)相比,这些调查有助于降低计算复杂度。
  • 总而言之,YOLO 在对时间要求严苛的情况下表现最佳,而其弱点在于由于使用了网格单元,无法识别小型目标和人群。

SSD(Single Shot MultiBox Detector)

  • SSD 是另一种单阶段目标检测方法,比 YOLO 更先进。该方法使用不同大小的特征图来检测不同尺寸的目标。SSD 将检测过程分为两个步骤
  • 第一步是生成具有一般大小和各种长宽比的区域提议,第二步是预测这些区域的偏移以及类别概率。SSD 还采用非极大值抑制来消除重复检测。
  • 因此,保留了正确的边界框。这种方法使得 SSD 能够处理 YOLO 无法在不牺牲速度的情况下实现的物体尺寸变化,这对于实时检测非常有用。

目标检测的应用

自动驾驶汽车

  • 自动驾驶汽车依赖于目标识别来安全地穿越周围环境。这项技术使自动驾驶汽车能够检测和跟踪行人、车辆、交通信号灯和道路障碍物等目标。
  • 在实时模式下,这些元素会被检测和分类,从而使 AV 能够做出关于制动、加速或变道的正确决策,从而提高乘客的安全性并改善交通流量的稳定性。

监控和安全

  • 在监控和安全系统中,目标检测是一项至关重要的功能,用于检查活动并发出安全威胁警报。使用算法,安全人员可以被通知视频流中的任何违规访问、遗留物品或攻击性人员。
  • 在商业区、客运站以及人力控制难以实现的区域等人群密集区域,它非常有效。

医疗保健和医学影像

  • 目标检测的潜力是巨大的,如果将其集成到医疗保健系统中,它就有可能彻底改变医学影像。例如,在放射学中,它可以帮助识别 X 射线、MRI 和 CT 等扫描中的异常,如肿瘤、骨折或病变。
  • 通过适当的评估,目标检测使放射科医生能够快速有效地诊断疾病,从而提高患者的福祉。

零售和库存管理

  • 在零售业务方面,它用于解决库存问题并提高客户满意度。与领先的监控摄像头系统结合使用,零售商能够监控物体的移动情况,并检查错放的物品和现有库存。
  • 这项技术还可以应用于所谓的“无摩擦商店”,即通过上述一种方法记录客户信息,并在客户结账时收取所需产品的费用。

农业

  • 农业领域也通过目标检测技术得到提升。使用无人机或安装在地面的摄像头收集的数据,帮助农民评估作物健康状况、害虫入侵和杂草萌发。
  • 一些目标检测算法可以检测表明植物健康的颜色变化、形状和尺寸,这对于精准农业将非常有用。此应用有助于管理资源,提高产量,并减少对环境造成的有害影响。

增强现实和虚拟现实

  • 对于 AR 和 VR,目标检测对于将数字对象正确放置在现实生活中非常重要。这使得 AR 应用程序能够跟踪对象并识别用户正在使用的环境,从而提供交互式和沉浸式体验。
  • 例如,通过 AR 应用,人们可以在真实表面上呈现游戏角色,从而获得游戏效果;其次,基于 AR 的导航应用程序可以根据识别出的真实地形特征来指导用户。

制造业和质量控制

  • 目标检测技术的一个巨大好处是它自动化了质量控制流程,并在制造业中找出产品的缺陷。具有视觉功能的目标检测相机可以检查生产线上的产品是否存在潜在问题,例如划痕、凹痕或连接错误。
  • 这种实时检查减少了对人员进行质量控制的需求,提高了生产力,并确保只有合格的产品才能进入市场。

体育分析

  • 体育分析使用目标检测来优化相关分析和广播。当记录了场上球员的物理位置、球的运动以及比赛期间和整个比赛过程中球员的位置时,教练和分析师就能够观察和预测球队的策略以及场上特定球员的行为。
  • 目标检测的另一个应用是自动化精彩片段的制作,并帮助裁判做出正确的决定,满足球迷或消费者的需求。

野生动物保护

  • 目标检测是野生动物保护的一个有用方法。野生动物保护者使用带有目标检测技术的无人机和相机来统计野生动物数量、评估动物行为和识别偷猎者。
  • 通过帮助收集和分析用于跟踪动物生活环境运动和种群动态的数据,目标检测有助于制定适当的保护干预措施和政策。

建筑和现场安全

  • 在建筑行业,目标检测的应用提高了现场安全性和项目交付。我们可以使用目标检测并提供建筑工地的图像和视频源,算法可以扫描工人设备的安全问题、安全措施的合规性以及正在进行的建筑工程的进展。
  • 此应用还增强了安全性方面,并确保所有项目都按时完成,并以正确的方式实施,同时符合预算金额。

案例研究和现实世界实现

特斯拉 - 自动驾驶

  • 特斯拉,作为 Model 3 的专家,首先部署了基于深度学习的目标检测算法。该公司的自动驾驶汽车使用一系列摄像头和传感器来识别道路上的目标,并将它们分类到不同的类别,包括:行人的肖像、其他汽车和交通标志。
  • 特斯拉的神经网络通过海量的驾驶数据进行训练,使车辆能够瞬间做出决定,并使其驾驶更安全、更轻松。目标检测在 Autopilot 功能中起着重要作用,例如车道保持、自适应巡航控制和防撞。

亚马逊 - 无人收银商店(Amazon Go)

  • 目标检测和深度学习的应用有很多例子;其中之一是亚马逊 Go,这是一家无人收银商店。该商店使用数百个摄像头来识别特定顾客是否拿走了商品或将其放回货架。
  • 这些数据随后通过后台的目标检测算法进行实时处理,以便客户的虚拟购物车可以添加新商品或删除列表中的商品。计算机视觉、传感器融合和深度学习得到集成,目标检测确保每个商品都得到正确识别,从而提供统一的购物体验。

苹果 - Face ID

  • 苹果的 Face ID 使用深度学习分类的目标检测来识别和解锁 iPhone。它使用 TrueDepth 摄像头,该摄像头打印出用户面部特征的深度数据,并使用神经网络进行面部检测和设备解锁。
  • 这种目标检测形式不仅限于面部特征,而且是动态的,它可以跟踪用户的变化,使其更安全、更方便。

谷歌 - Google 相册

  • Google 相册还使用 ODM 来改进对照片中的物体、人物和场景的使用。深度学习模型可用于将照片自动标记到不同的相册中。
  • 例如,在 Google 相册中键入“狗”将显示所有包含狗的照片,这是由于使用了目标识别,并且该识别已从大量数据集中开发而来。

约翰迪尔

  • 农业机械生产领域的领先公司约翰迪尔将其目标检测技术应用于精准农业。基于深度学习模型,约翰迪尔的设备可以识别田地里的作物、杂草和其他物体。
  • 它还可以用于在最需要的地方施用肥料和杀虫剂,从而减少浪费并提高生产力。农民将 OD 应用于农业,可以让他们检查作物健康状况,管理作物所需的各种资源,并提高作物产量。

结论

深度学习的目标检测已成为计算机视觉领域最成功的进展之一,它能够以合理的速度和高精度识别图像中的多个目标。通过 YOLO 和 SSD 深度学习技术,可以实现目标检测的实际应用,例如在自动驾驶汽车和监控系统中。预计随着深度学习模型的改进,目标检测的功能将进一步扩展,以解决当前问题,例如检测小型或重叠的物体,并在各种场景中提高效率。


下一主题机器学习示例