(202302)OpenMMLabAI实战营CV肆——目标检测简介与基础知识

目标检测

用矩形框框出感兴趣的物体同时预测物体类别。

应用方面:

  • 人脸识别:身份识别、属性分析等。
  • 智慧城市:垃圾检测、非法占道违章停车检测、确保环境安全等。
  • 自动驾驶:环境感知、路径规划与控制。
  • 下游视觉任务:检测文字出现的区域以供识别、检测出人体以供姿态估计。

与图像分类比较

目标检测的物体数量、位置、大小都不固定。但需要算法理解图像的内容,通过深度神经网络实现。

思路

通过滑窗sliding windows遍历图像所有位置,所到之处用分类模型识别窗口内容(矩形框)

缺点:单张图片就已需要大量windows,若使用不同大小的windows,分类次数又会成倍增加带来不可接受的计算成本。

改进思路1:使用启发式算法替换暴力遍历 例如 R-CNN,Fast R-CNN 中使用 Selective Search 产生提议框。但依赖外部算法,系统实现复杂,难以联合优化性能。

  • 区域提议 于图像颜色或底层特征,找出可能含有物体 的区域,再送给神经网络识别。相比于普通滑窗,减少框的个数且保证召回率。
  • eg:Selective Search算法流程:基于贪心算法,将空间相邻、特侦相似的图像块足部合并到一块。
  • 请添加图片描述

改进思路2:减少冗余计算,使用卷积网络实现密集预测(目前普遍采用的方式)。

  • 分析滑窗中的重复计算并且消除。
  • 方式:用卷积一次性计算所有特征,再取出对应位置的特征完成分类;这样在特征图上滑窗,重叠区域值计算一次卷积特征,与窗的个数无关。然后在特征图上进行密集预测;密集预测实际上是一种隐式的滑窗方法,计算效率远高于滑窗。

基本范式

  • 两阶段方法(基于区域的方法):以某种方式产生窗,再基于窗口内的特征机型预测。
  • 单阶段方法:在特征图上基于单点特征实现密集预测。

目标检测技术的演进

在这里插入图片描述
在这里插入图片描述

基础知识

框,边界框(Bounding Box)

框泛指图像上的矩形框,边界横平竖直。边界框通常指紧密包围感兴趣物体的框

相关概念

区域(Region):框的同义词

区域提议(Region Proposal,Proposal):指算法预测的可能包含物体的框,某种识别能力不强的算法的初步预测结果

感兴趣区域(Region of Interest,RoI):当我们谈论需要进一步检测这个框中是否有物体时,通常称框为感兴趣区域

锚框(Anchor Box,Anchor):图中预设的一系列基准框,类似滑窗,一些检测算法会基于锚框预测边界框

交并比(Intersection Over Union)

交并比(IoU)定义为两矩形框交集面积并集面积之比,是矩形框重合程度的衡量指标

置信度(Confidence Score)

模型认可自身预测结果的程度,通常需要为每个框预测一个置信度。大部分算法取分类模型预测物体属于特定类别的概率,部分算法让模型独立于分类单独预测一个置信度。我们倾向认可置信度高的预测结果。

非极大值抑制(Non-Maximum Suppression)

滑窗类算法通常会在物体周围给出多个相近的检测框 这些框实际指向同一物体,只需要保留其中置信度最高的.

通过非极大值抑制(NMS)算法实现:

  • 输入:检测器产生的一系列检测框 𝐵 = {𝐵1, … , 𝐵𝑛} 及对应的置信度 𝑠 = {𝑠1, … , 𝑠𝑛 },IoU 阈值 𝑡(通常0.7)

  • 步骤:

      1. 初始化结果集 𝑅 = ∅

      2. 重复直至 𝐵 为空集

        找出 𝐵 中置信度最大的框 𝐵𝑖 并加入 𝑅

        从 𝐵 中删除 𝐵𝑖 以及与 𝐵𝑖 交并比大于 𝑡 的框

  • 输出:结果集 𝑅

边界框回归(Bounding Box Regression)

问题:滑窗(或其他方式产生的基准框)与物体精准边界通常有偏差

处理方法:让模型在预测物体类别同时预测边界框相对于滑窗的偏移量

边界框编码(Bbox Coding)

边界框的绝对偏移量在数值上通常较大,不利于神经网络训练,通常需要对偏移量进行编码,作为回归 模型的预测目标;推理时,已知基准框 𝑃 和回归模型预测的偏移量编码 𝑇,解码得到预测框。

各阶段范式介绍

两阶段目标检测算法

两阶段的检测范式最早由 R-CNN 确立,因包含 区域提议和区域识别两个阶段得名;经历一些列发展到 Faster R-CNN 和 Mask RCNN 逐渐成熟;结合比较先进的主干网络和多尺度技术可以达到 比较优越的检测精度,使用广泛;近几年(2020~)随着单阶段算法精度和速度的 提高逐渐被取代。

多尺度检测技术

必要性:图像中物体大小可能有很大差异 (10 px ~ 500 px) ;多尺度技术出现之前,模型多基于单级特征图进行预测,通常为主干网络的倒数第二层,受限于结构(感受野)和锚框的尺寸范围,只擅长中等大小的物体;另一方面,高层特征图经过多次采样,位置信息逐层丢失,小物体检测能力较弱,定位精度较低。

图像金字塔

将图像缩放到不同大小,形成图像金字塔;检测算法在不同大小图像上即可检测出不同大小物体。

  • 优势:算法不经改动可以适应不同尺度的物体
  • 劣势:计算成本成倍增加

可用于模型集成等不在意计算成本的情况

层次化特征

基于主干网络自身产生的多级特征图产生预测结果; 由于不同层的感受大小不同,因此不同层级的特征天然适用于检测不同尺寸的物体。

  • 优势:计算成本低
  • 劣势:低层特征抽象级别不够,预测物体比较困难

改进思路:高层次特征包含足够抽象语义信息。将高层特征融入低层特征,补充低层特征的语义信息

特征金字塔网络 Feature Pyramid Network (2016)

  • 改进思路:高层次特征包含足够抽象语义信息。将高层特征融入低层特征,补充低层特征的语义信息
  • 融合方法:特征求和

单阶段目标检测算法

单阶段算法直接通过密集预测产生检测框,相比于两阶段算法,模型结构简单、速度快,易于在设备上部署;早期由于主干网络、多尺度技术等相关技术不成熟,单阶段算法在性能上不如两阶段算法,但因为速度和简洁的优势仍受到工业界青睐 随着单阶段算法性能逐渐提升,成为目标检测的主流方法。

无锚框目标检测算法

基于锚框(Anchor-based):

  • Faster R-CNN、YOLO v3 / v5、RetinaNet 都是基于锚框的检测算法
  • 模型基于特征预测对应位置的锚框中是否有物体,以及精确位置相对于锚框的偏移量
  • 需要手动设置锚框相关的超参数(如大小、长宽比、数量等),设置不当影响检测精度 ❌

无锚框(Anchor-free):

  • 不依赖锚框,模型基于特征直接预测对应位置是否有物体,以及边界框的位置
  • 边界框预测完全基于模型学习,不需要人工调整超参数 ✔️
  • YOLO v1 是无锚框算法,但由于提出时间较早,相关技术并不完善,性能不如基于锚框的算法

Detection Transformers

DETR (2020)

传统方法:在特征图上进行密集预测,依赖 Anchor 设计、NMS 后处理等额外操作

DETR:脱离密集预测范式,将检测建模为从特征序列到框序列的翻译问题,用 Transformer 模型解决

Deformable DETR (2021)

DETR 的注意力机制收敛很慢,收敛 ≈ 注意力机制注意到特定的位置 Deformable DETR 借鉴 Deformable Conv 的方式,显示建模 query 注意的位置,收敛速度更快。

目标检测模型的评估方法

可以参考之前这篇博客:测试集上评估图像分类算法的精度

检测结果的正确/错误类型

TP、FP、FN。

准确率 Precision 与 召回率 Recall

关于两个词语的含义:

准确率与召回率的平衡

两种极端情况: 1. 检测器将所有锚框都判断为物体:召回率≈100%,但大量背景框预测为物体,FP很高,准确率很低 2. 检测器只输出确信度最高的1个检测框:以很大概率检测正确,准确率=100%,但因为大量物体被预测 为背景,FN很高,召回率很低。
所以需要进行平衡。

PR 曲线 与 AP 值

评估指标和图像分类的评估指标大体上是相同的,只是在细微处有一些应用上的差别。

整理自哔哩哔哩openmmlab课程4 目标检测算法基础

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早上真好

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值