语义分割(2)SPP net
2018-06-13 本文已影响10人
horsetif
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
这篇paper的重点是可以把任意尺度的图片变为一个固定长度的表示。传统的RCNN或者其他DL的方法都是把输入照片作wrap或者crop,但是这样一定会出现unwanted geometric distortion.作者发现在卷积层是不需要尺度变化的,只有在全连接层才需要特定的尺度。所以作者在全连接层最后加入SPP layer(借鉴的事sptial pyramid pooling)。在训练的时候,作者使用的是多尺度循环训练法。
作者发现feature map 不仅仅表示的是feature的强度,还有feature的位置。所以在最后一层加入SPP,归一化为同一个长度【1】。
怎么去train?
其实就是把集中不同的max pooling 合在一起,window size=ceiling(a/n),stride=floor(a/n),文中一共提到三种。然后循环两种尺度的epoch进行训练,得到的结果就有普遍意义。
object detection
在RCNN时候,每一个region proposal都要单独训练一次,有很大的空间浪费,主要是由于尺度的问题。在这里,我们直接可以只计算一次,得到一个feature map,(卷机层的最后一层),然后我们通过select search的方法找到的region proposal,找到每一个对应位置对应的feature map,然后经过SPP layer,最后得到编码,run svm,就可以得到结果。这里只需要CNN一次就可以。
缺点
select search的方法很慢,svm很慢。网络训练非常复杂。
参考:
【1】“Beyond bags of features:Spatial pyramid matching for recognizing natural scene categories” CVPR 2006