OpenMMLab AI实战营第四课笔记

目标检测基础知识

框,边界框(Bounding Box)

框泛指图像上的矩形框,边界横平竖直
描述一个框需要4 个像素值:

  • 方式1:左上右下边界坐标𝑙, 𝑡, 𝑟, 𝑏
  • 方式2:中心坐标和框的长宽𝑥, 𝑦, 𝑤, ℎ
    边界框通常指紧密包围感兴趣物体的框
    检测任务要求为图中出现的每个物体预测一个边界框
框的相关概念

以下这些概念都指某种框,用在不同的上下文中:

  1. 区域(Region):框的同义词
  2. 区域提议(Region Proposal,Proposal)
    指算法预测的可能包含物体的框,某种识别能力不强的算法的初步预测结果
  3. 感兴趣区域(Region of Interest,RoI)
    当我们谈论需要进一步检测这个框中是否有物体时,通常称框为感兴趣区域
  4. 锚框(Anchor Box,Anchor)
    图中预设的一系列基准框,类似滑窗,一些检测算法会基于锚框预测边界框
交并比Intersection Over Union

交并比(IoU)定义为两矩形框交集面积与并集面积之比,是矩形框重合程度的衡量指标
在这里插入图片描述

置信度Confidence Score

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

非极大值抑制Non-Maximum Suppression

滑窗类算法通常会在物体周围给出多个相近的检测框
这些框实际指向同一物体,只需要保留其中置信度最高的
删除,因为它和置信度更高框重叠
输入:检测器产生的一系列检测框𝐵 = 𝐵1, … , 𝐵𝑛 及对应的置信度
𝑠 = 𝑠1, … , 𝑠𝑛 ,IoU 阈值𝑡(通常0.7)
步骤:

  1. 初始化结果集𝑅 = ∅
  2. 重复直至𝐵 为空集
    ① 找出𝐵 中置信度最大的框𝐵𝑖 并加入𝑅
    ② 从𝐵 中删除𝐵𝑖 以及与𝐵𝑖 交并比大于𝑡 的框
    输出:结果集𝑅
边界框回归Bounding Box Regression

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

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

边界框编码Bbox Coding

边界框的绝对偏移量在数值上通常较大,不利于神经网络训练,通常需要对偏移量进行编码,作为回归
模型的预测目标

两阶段目标检测算法

两阶段算法概述

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

多尺度检测技术

多尺度检测必要性

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

图像金字塔Image Pyramid

将图像缩放到不同大小,形成图像金字塔
检测算法在不同大小图像上即可检测出不同大小物体
优势:算法不经改动可以适应不同尺度的物体
劣势:计算成本成倍增加
可用于模型集成等不在意计算成本的情况

层次化特征

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

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

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

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

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

单阶段目标检测算法

单阶段检测算法概述

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

YOLO: You Only Look Once (2015)

最早的单阶段算法之一
主干网络:自行设计的DarkNet 结构,产生7×7×1024 维的特征图
检测头:2 层全连接层产生7×7 组预测结果,对应图中7×7 个空间位置上物体的类别和边界框的位置
在这里插入图片描述

YOLO 的分类和回归目标

将原图切分成S×S 大小的格子,对应预测图上S×S 个位置
如果原图上某个物体的中心位于某个格子内,则对应位置的预测值应给出物体类别和B组边界框位置
其余位置应预测为背景类别,不关心边界框预测结果

SSD: Single Shot MultiBox Detector (2016)

主干网络:使用VGG + 额外卷积层,产生11 级特征图
检测头:在6 级特征图上,使用密集预测的方法,产生所有位置、不同尺度、所有锚框的预测结果

RetinaNet (2017)

基于focal loss 的单阶段检测器
特征生成:ResNet 主干网络+ FPN 产生P3~P7 共5 级特征图,对应降采样率8~128 倍
多尺度锚框:每级特征图上设置3 种尺寸×3 种长宽比的锚框,覆盖32~813 像素尺寸
密集预测头:两分支、5 层卷积构成的检测头,针对每个锚框产生K 个二类预测以及4 个边界框偏移量

无锚框目标检测算法

锚框vs 无锚框

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

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

FCOS, Fully Convolutional One-Stage (2019)

特征生成:主干网络+ FPN 产生P3~P7 共5 级特征图,对应降采样率8~128 倍
密集预测头:两分支、5 层卷积构成的密集预测头,对于每个位置,预测类别、边界框位置和中心度三组
数值(与Anchor-based 有所不同)

CenterNet (2019)

针对2D 检测的算法,将传统检测算法中的“以框表示物体”变成“以中心点表示物体”,将2D 检测建模
为关键点检测和额外的回归任务,一个框架可以同时覆盖2D 检测、3D 检测、姿态估计等一系列任务

Detection Transformers

DETR (2020)

传统方法:在特征图上进行密集预测,依赖Anchor 设计、NMS 后处理等额外操作
DETR:脱离密集预测范式,将检测建模为从特征序列到框序列的翻译问题,用Transformer 模型解决

Deformable DETR (2021)

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

目标检测模型的评估方法

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

正确结果(True Positive):算法检测到了某类物体(Positive),图中也确实有这个物体,检测结果正确(True)
假阳性(False Positive):算法检测到了某类物体(Positive),但图中其实没有这个物体,检测结果错误(False)
假阴性(False Negative):算法没有检测到物体(Negative),但图中其实有某类物体,检测结果错误(False)
检测到的衡量标准:对于某个检测框,图中存在同类型的真值框且与之交并比大于阈值(通常取0.5)
在这里插入图片描述

准确率与召回率的平衡

两种极端情况:

  1. 检测器将所有锚框都判断为物体:召回率≈100%,但大量背景框预测为物体,FP很高,准确率很低
  2. 检测器只输出确信度最高的1个检测框:以很大概率检测正确,准确率=100%,但因为大量物体被预测
    为背景,FN很高,召回率很低
    一个完美的检测器应该有100%召回率和100%的精度;在算法能力有限的情况下,应该平衡二者
    通常做法:将检测框按置信度排序, 仅输出置信度最高的若干个框
    置信度= 分类概率,或修正后的分类概率(YOLO、FCOS)
PR 曲线与AP 值

为得到阈值无关的评分,可以遍历阈值,并对Precision 和Recall 求平均
具体做法:
• 检测框按置信度排序,取前K 个框计算Precision 和
Recall
• 遍历K 从1 至全部检测框,将得到的Precision 和
Recall 值绘制在坐标系上,得到PR 曲线
• 定义Average Precision = Precision 对Recall 的平均
值,即PR 曲线下的面积,作为检测器的性能衡量指标

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值