mmlab系列学习第四课--目标检测
什么是目标检测
给定一张图片,用矩形框框出所有感兴趣物体,同时预测物体类别
发展历史
划窗法:太慢,效率低
改进思路 1:使用启发式算法替换暴力遍历。例如 R-CNN,Fast R-CNN 中使用 Selective Search 产生提议框
依赖外部算法,系统实现复杂,难以联合优化性能
改进思路 2:减少冗余计算,使用卷积网络实现密集预测
![](https://i-blog.csdnimg.cn/blog_migrate/d21a2f9c6936006dd2f638891d2d1a66.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b416bcf4d742afc4ab17a034c5fce8d2.png)
用卷积一次性计算所有特征,再取出对应位置的特征完成分类。
目标检测的范式
两阶段方法:r-cnn系列模型
一阶段方法:yolo系列模型
![](https://i-blog.csdnimg.cn/blog_migrate/20ccd2dbeb2d62d82db66e778d9b9816.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7e487552ee11aba570d30753495b8ae0.png)
基础知识
理解目标检测的基础:
框泛指图像上的矩形框,边界横平竖直
描述一个框需要 4 个像素值:
• 方式1:左上右下边界坐标 𝑙,𝑡, 𝑟, 𝑏
• 方式2:中心坐标和框的长宽 𝑥, 𝑦, 𝑤, ℎ
边界框通常指紧密包围感兴趣物体的框
检测任务要求为图中出现的每个物体预测一个边界框
以下这些概念都指某种框,用在不同的上下文中:
1. 区域(Region):框的同义词
2. 区域提议(Region Proposal,Proposal)
指算法预测的可能包含物体的框,某种识别能力不强的算法的初步预测结果
3. 感兴趣区域(Region of Interest,RoI)
当我们谈论需要进一步检测这个框中是否有物体时,通常称框为感兴趣区域
4. 锚框(Anchor Box,Anchor)
图中预设的一系列基准框,类似滑窗,一些检测算法会基于锚框预测边界框
交并比(IoU)定义为两矩形框交集面积与并集面积之比,是矩形框重合程度的衡量指标
置信度(Confidence Score):模型认可自身预测结果的程度,通常需要为每个框预测一个置信度
![](https://i-blog.csdnimg.cn/blog_migrate/8ba0bbdbe1edad4839a929691817df2d.png)
两阶段方法
![](https://i-blog.csdnimg.cn/blog_migrate/9206c38dcc463ae1bdb253ca0f7ceedc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9414a3852ae69ade78a30c8eceb8386d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9da43374866dd0b3e3dfdc119f3a7a08.png)
单阶段目标检测算法
![](https://i-blog.csdnimg.cn/blog_migrate/c8da39da1529d85bc9ece64dc5bb9d01.png)
而一阶段的算法如下所示:
![](https://i-blog.csdnimg.cn/blog_migrate/f8e3d0a0aaa02ee5a64e51659813c64f.png)
单阶段算法直接通过密集预测产生检测框,相比于两阶段算法,模型结构
简单、速度快,易于在设备上部署
早期由于主干网络、多尺度技术等相关技术不成熟,单阶段算法在性能上
不如两阶段算法,但因为速度和简洁的优势仍受到工业界青睐
随着单阶段算法性能逐渐提升,成为目标检测的主流方法
最早的单阶段算法之一
主干网络:自行设计的 DarkNet 结构,产生 7×7×1024 维的特征图
检测头:2 层全连接层产生 7×7 组预测结果,对应图中 7×7 个空间位置上物体的类别和边界框的位置
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 个边界框偏移量
无锚框目标检测算法
![](https://i-blog.csdnimg.cn/blog_migrate/f3e20666a9132e98c270a42179124b64.png)
FCOS, Fully Convolutional One-Stage (2019)
特征生成:主干网络 + FPN 产生 P3~P7 共 5 级特征图,对应降采样率 8~128 倍
密集预测头:两分支、5 层卷积构成的密集预测头,对于每个位置,预测类别、边界框位置和中心度三组
数值(与 Anchor-based 有所不同)
CenterNet
![](https://i-blog.csdnimg.cn/blog_migrate/65e2af72ce61e0035c165644334fe676.png)
Detection Transformers
DETR (2020)
传统方法:在特征图上进行密集预测,依赖 Anchor 设计、NMS 后处理等额外操作
DETR:脱离密集预测范式,将检测建模为从特征序列到框序列的翻译问题,用 Transformer 模型解决
Deformable DETR (2021)
DETR 的注意力机制收敛很慢,收敛 ≈ 注意力机制注意到特定的位置
Deformable DETR 借鉴 Deformable Conv 的方式,显示建模 query 注意的位置,收敛速度更快