第4课 目标检测与MMDetection
1. 目标检测概述
- 目标检测任务:用矩形框框出所有感兴趣物体同时预测物体类别
- 应用
- 人脸识别
- 智慧城市
- 自动驾驶
- 下游视觉任务
- 目标检测 VS 图像分类
- 滑窗
- 固定大小的窗口
- 遍历图像所有位置,所到之处用分类模型识别窗口中的内容
- 为了检测不同大小、不同形状的物体,可以使用不同大小、长宽比的窗口扫描图片
- 滑窗效率较低
- 改进思路1:使用启发式算法替换暴力遍历,例如Selective Search产生提议框
- 改进思路2:减少冗余计算,使用卷积神经网络实现密集预测
- 滑窗中的冗余计算
- 滑窗中的冗余计算
- 目标检测基本范式
- 两阶段方法
- 单阶段方法
- 目标检测技术的演进
2. 基础知识
- 边界框
- 区域(Region)
- 区域提议(Region Proposal)
- 感兴趣区域(Region of Interest,ROI)
- 锚框(Anchor Box)
- 交并比
- 置信度
- 非极大值抑制(NMS)
- 边界框回归
- 边界框编码
3. 两阶段目标检测算法
- 两阶段算法概述
- 两阶段的检测范式最早由 R-CNN 确立,因包含区域提议和区域识别两个阶段得名
- 经历一些列发展到 Faster R-CNN 和 Mask RCNN 逐渐成熟
- 结合比较先进的主干网络和多尺度技术可以达到比较优越的检测精度,使用广泛
- 近几年(2020~)随着单阶段算法精度和速度的提高逐渐被取代
- Region-based CNN(2013)
- Fast R-CNN(2014)
- ROI Pooling
- ROI Align
- Faster R-CNN(2015)
- Anchor
- RPN
- 两阶段算法的发展与演进
4. 多尺度检测技术
- 多尺度检测必要性
- 图像中物体大小可能有很大差异 (10 px ~ 500 px)
- 多尺度技术出现之前, 模型多基于单级特征图进行预测, 通常为主干网络的倒数第二层, 受限于结构(感受野) 和锚框的尺寸范围, 只擅长中等大小的物体
- 另一方面, 高层特征图经过多次采样, 位置信息逐层丢失, 小物体检测能力较弱, 定位精度较低
- 特征金字塔网络FPN
- Faster R-CNN + RPN
5. 单阶段目标检测算法
- 单阶段检测算法概述
- YOLO(2015)
- SSD(2016)
- RetinaNet(2017)
- 正负样本不均衡问题 -> Focal Loss
- YOLO v3(2018)
6. 无锚框目标检测算法
- 锚框 vs 无锚框
- 基于锚框(Anchor-based)
- Faster R-CNN、 YOLO v3 / v5、 RetinaNet 都是基于锚框的检测算法
- 模型基于特征预测对应位置的锚框中是否有物体,以及精确位置相对于锚框的偏移量
- 需要手动设置锚框相关的超参数(如大小、长宽比、数量等),设置不当影响检测精度
- 无锚框(Anchor-free)
- 不依赖锚框, 模型基于特征直接预测对应位置是否有物体, 以及边界框的位置
- 边界框预测完全基于模型学习, 不需要人工调整超参数
- YOLO v1 是无锚框算法, 但由于提出时间较早, 相关技术并不完善, 性能不如基于锚框的算法
- 基于锚框(Anchor-based)
- FCOS(2019)
- CenterNet(2019)
7. Detection Transformers
- DETR(2020)
- Deformable DETR(2021)
8. 目标检测模型的评估方法
-
检测结果的正确/错误类型
- TP
- FP
- FN
-
准确率与召回率
-
准确率与召回率的平衡
-
PR曲线与AP值
-
Mean AP
9. MMDetection
-
两阶段目标检测器的构成
-
单阶段目标检测器的构成