我们知道目标检测框架像faster-rcnn
and mask-rcnn
has an roi pooling layer
or roi align layer
。但是为什么ssd和yolo框架没有这样的层呢?
首先我们要明白这样做的目的是什么roi pooling
: 从特征图上的建议区域获得固定大小的特征表示。由于所提出的区域可能有不同的大小,如果我们直接使用区域的特征,它们的形状会不同,因此无法输入到全连接层进行预测。 (我们已经知道全连接层需要固定形状的输入)。如需进一步阅读,here https://stackoverflow.com/questions/43430056/what-is-the-purpose-of-the-roi-layer-in-a-fast-r-cnn是一个很好的答案。
So we understood that roi
pooling essentially requires two inputs, proposed regions and feature maps. As is clearly described in the following figure https://arxiv.org/abs/1506.01497 .
那么为什么不呢YOLO and SSD use roi pooling
?仅仅因为他们不使用区域提案!它们的设计本质上不同于诸如R-CNN、快速 R-CNN、更快 R-CNN, 实际上YOLO and SSD被分类为one-stage
探测器而 r-cnn 系列 (R-CNN、快速 R-CNN、更快 R-CNN) 叫做two-stage
检测器只是因为它们首先提出区域,然后执行分类和回归。
For one-stage
detecors, they perform predictions (classification and regression )directly from feature maps. Their method is to divide images in grids and each grid will predict a fixed amount of bounding boxes with confidence scores and class scores. The original YOLO used a single scale feature map while SSD used multi-scale feature maps, as clearly shown in the following fig https://arxiv.org/abs/1512.02325
我们可以看到YOLO和SSD,最终输出是一个固定形状的张量。因此它们的行为与类似问题非常相似linear regression
,因此它们被称为one-stage
探测器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)