首页 > 解决方案 > 为什么ssd和yolo没有roi pooling层?

问题描述

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

标签: computer-visionobject-detectionyolofaster-rcnn

解决方案


首先,我们应该了解其目的是什么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检测器。


推荐阅读