为什么ssd和yolo没有roi池层?

tid*_*idy 1 object-detection computer-vision yolo faster-rcnn

我们知道对象检测框架就像faster-rcnnmask-rcnn有一个roi pooling layeror roi align layer。但是,为什么ssd和yolo框架没有这样的层?

dan*_*ang 5

首先,我们应该了解目的是roi pooling从特征图上的建议区域中获得固定大小的特征表示。由于建议的区域可能具有各种大小,因此,如果我们直接使用区域中的特征,它们的形状将有所不同,因此无法馈入完全连接的层进行预测。(我们已经知道完全连接的层需要固定的形状输入)。为了进一步阅读,这里是一个不错的答案。

因此,我们了解到roi池化本质上需要两个输入,即建议的区域特征图。如下图所示 数字

那么为什么不使用YOLOSSDroi pooling呢?仅仅是因为他们不使用区域提议!它们的设计本质上不同于R-CNN,Fast R-CNN,Faster R-CNN等模型,实际上YOLOSSD属于one-stage检测器,而r-cnn系列(R-CNN,Fast R-CNN,Faster R-CNN))之所以称为two-stage检测器,是因为它们先提出区域,然后执行分类和回归。

对于one-stage检测器,他们直接从特征图执行预测(分类和回归)。他们的方法是将图像划分为网格,每个网格将使用置信度分数和类别分数预测固定数量的边界框。原始YOLO使用单比例尺特征图,而SSD使用多比例尺特征图,如下所示 在此处输入图片说明

我们可以看到YOLO和SSD,最终输出是一个固定形状的张量。因此,它们的行为与类似的问题非常相似linear regression,因此被称为one-stage检测器。