上一期发出之后,很多读者已经在评论中猜出了本期的主角。对,就是今年CVPR的oral paper "An Analysis of Scale Invariance in Object Detection - SNIP"!这个paper具体的做法其实非常简单,但是背后却很有深意。这个文章很早之前就读过了,但是一直感觉没有读透。直到最近抽空细思了一下,有一些心得和大家分享。
先简单来介绍一下SNIP这个paper做的事情。在CNN中,我们需要不同种类的invariance(不变性)来做识别,这其中translation invariance在CNN中可以比较好地被考虑,然而另外一种重要的不变性,scale invariance就很难被CNN考虑到。为了解决这个问题,一般常用的两大种策略就是Image Pyramid或者Feature Pyramid。在传统的Image Pyramid中,一般会使用一个固定大小的模板进行训练,将检测问题转换为一个固定大小的输入图像的分类问题。然后建立大小不同的Image Pyramid,在这个Pyramid中的每个scale的图片上,使用这个固定大小的检测器使用sliding window或cascaded classifier来分类。这大类方法中在deep时代比较经典的有MTCNN;另外一大类方法也就是Feature Pyramid,大家应该比较熟悉,这里的代表工作包括SPPNet和FPN,其中后者已经是目前检测算法的一个标准组件。FPN中的这张图很清晰解释了这两大类方法的关系和区别: