在前面几章里,都只做了目标检测中的目标定位任务,并未做目标分类任务。目标检测作为计算机视觉领域的核心人物之一,旨在从图像中识别出所有感兴趣的目标,并确定它们的类别和位置。现在目标检测以一阶段模型和两阶段模型为代表的。本章将以简单的任务来对这两种模型进行介绍。
一、一阶段模型(One-Stage Model)
一阶段模型是指在目标检测任务中,直接输入图像并同事输出图中存在的物体类别和对应的位置信息,无需先提取候选区域。这类模型通常具有较高的检测速度,但可能在检测精度上略有牺牲。其主要特点是将目标检测问题转化为回归问题处理,直接预测出目标的位置和类别信息。
优点:
- 检测速度快,适合实时性要求高的应用场景。
- 模型结构相对简单,易于实现和部署。
缺点:
- 相对于两阶段模型,检测精度可能稍逊一筹
- 对于小目标的检测能力仍需进一步提升
一阶段模型中的典型算法有YOLO(You Only Look Once)系列(YOLO1、YOLO2、......YOLO8)、CenterNet等。在后面的章节中才会仔细介绍这些算法,这里暂时只用简单的检测任务和简单的神经网络模型介绍一阶段模型和二阶段模型的主要区别。
如上图所示,图像输入模型中,模型输出预测框坐标和预测框对应目标的类别,只有一个阶段,预测值只需通过一个模型即可得到。
二、两阶段模型(Two-Stage Model)
两阶段模型在目标检测任务中,首先生成一系列作为样本的候选区域(Region Proposal),然后对这些候选区域进行分类和位置回归,以确定它们是否包含目标物体以及目标物体的精确位
优点:
- 检测精度高,能够处理复杂的检测任务。
- 适用于对检测精度要求较高的应用场景。
缺点:
- 检测速度相对较慢,难以满足实时性要求较高的应用场景。
- 候选区域的生成质量对模型的最终性能有较大影响,需要精心设计和优化。
两阶段模型中的典型算法有R-CNN系列,包括R-CNN、Fast R-CNN、Faster R-CNN等。其中又以Faster R-CNN使用较为广泛。在后面的章节才会仔细介绍Faster R-CNN算法。
如上图所示,图像输入模型中,第一个神经网络模型输出可能存在目标的建议框和与输入图像对应的特征图,再将特征图和建议框输入到第二个神经网络模型中,通过对建议框的筛选回归和分类得到最终的预测框坐标和对应的类别,预测值需要通过两个模型才可得到。两阶段模型在训练时对应会有两个部分的损失,需要准备的标签相较于一阶段模型多,在模型训练时推理的时间也需要更多,但最终的模型的检测效果通常下比一阶段模型较好。