单阶段目标检测架构简介
了解单阶段目标检测架构。
一步完成的目标检测
利用特征图从图像中提取候选区域,然后预测这些区域是否包含目标对象的概率,最后将高概率的区域送入分类头进行处理,这种方法虽然检测精度较高,但整体速度较慢。
根据我们所参与项目的不同,对模型的速度可能有不同的要求。例如,在处理实时视频时,通常需要模型能够以每秒30帧(FPS)的速度处理画面(这是最常见的视频帧率,也可能更高或更低),以便及时捕捉到下一个视频帧。
对于非实时的离线视频,我们可以允许稍长的处理时间,但如果一段一分钟的视频需要十分钟才能处理完,显然也不是理想的选择。
在大多数应用场景中——无论是实时或离线视频,单张图像还是批量图像——我们都倾向于使用速度最快的模型,并且最好不以牺牲检测精度为代价。
在此背景下,单阶段(one-stage)目标检测器成为了解决方案的关键。这类方法省去了多阶段流程,能够在同一过程中同时生成候选区域及其类别得分,实现高效检测。
下图展示了双阶段与单阶段检测器结构的差异:
![双阶段与单阶段目标检测器对比]
双阶段检测器首先通过二分类的“目标性得分”(objectness score)提取候选区域(前景:该区域包含目标;背景:该区域无目标)。第二步,仅将被标记为前景的区域(即可能包含目标的区域)送入分类头,得到每个区域的最终类别结果。而单阶段检测器则在同一个网络层中同时完成这两个任务:不再单独生成目标性得分,而是直接生成候选框的四个坐标,并在同一层中预测其对应类别。
最终,两种检测器输出的结果形式相同:均为边界框的四个参数(, , , )以及预测的类别标签。
本模块将介绍的主要模型
一些关键的单阶段检测器及其改进版本均基于相同的单阶段设计思想,但在结构和优化方式上各有不同。
我们将按照发展顺序,从最早的单阶段检测模型开始,逐步介绍到当前最先进的模型,具体包括:
- SSD(Single Shot MultiBox Detector)
- YOLO(You Only Look Once)
- YOLOv2
- YOLOv3
- YOLOv4
- YOLOX
- YOLOv6
- YOLOv7