one-stage目标检测算法(也称one-shot object detectors),其特点是一步到位,速度相对较快。另外一类目标检测算法是two-stage的,如Faster R-CNN算法先生成候选框 (region proposals,可能包含物体的区域),然后再对每个候选框进行分类(也会修正位置)。这类算法相对就慢,因为它需要多次运行检测和分类流程。而one-stage检测方法,仅仅需要送入网络 一次就可以预测出所有的边界框,因而速度较快,非常适合移动端。最典型的one-stage检测算法包括YOLO,SSD,SqueezeDet以及DetectNet。
检测器在检测时会出现问题:
存在多个目标时,由于模型只能预测一个边界框,因而它必须要选择一个物体,这会最终落在中间位置。即使是多个检测器同时检测,检测器也都会集中到中间,这是因为这些检测器并没有协同工作,每个检测器都想获得所有结果。
为了解决这个问题,让每个检测器分配到图像中的特定位置,这就是one-stage的解决办法。
以SSD为例,网络预测出845(13*13*5,网格为13*13,每个网格预测5个结果)个结果,对这些结果使用NMS筛选,理想状态下对每个目标预测一遍。