One-stage:yolov1、yolov2、yolov3、SSD、RetinaNet(2分)
Two-stage:Fast R-CNN、Faster R-CNN(2分)
Two-stage检测算法的共性,以faster r-cnn为例,使用了复杂的网络用于每个候选区域的分类和回归;ROI pooling后的feature channels数目较大,导致内存消耗和计算量都比较大。
One-stage检测算法的共性,从网络结构上看只是多分类的rpn网络,相当于faster rcnn的第一阶段,因此one-stage主要的优势是速度快。其预测结果是从feature map回归出目标的位置及分类,有的也采用了anchor的概念。而two-stage对上述结果进行roi pooling后会进一步细化,因此two-stage算法检测精度一般相对较高。还有一种观点是,two-stage的rpn部分相当于做了正负样本均衡,这也是two-stage检测效果相对较好的一个原因。one-stage算法对小目标检测效果较差,如果所有的anchor都没有覆盖到这个目标,那么这个目标就会漏检。如果一个比较大的anchor覆盖了这个目标,那么较大的感受野会弱化目标的真实特征,得分也不会高。two-stage算法中的roi pooling会对目标做resize, 小目标的特征被放大,其特征轮廓也更为清晰,因此检测也更为准确。