SNIP论文笔记

SNIP论文笔记

notes

个人觉得SNIP这个paper写得非常地好,感觉作者们也非常地有洞见.之前我在做tracking的时候,连蒙带猜地对coco数据做了预处理,结果竟然涨点了,当时并不是特别清晰为什么,现在看了这个paper之后,发现清晰了很多. 早在yolo-v2中,其作者就提到在imagenet上pretrain的模型用于做检测去提feature可能不是太好,因为imagenet上的输入是224的,而coco数据中有很多都是小物体,这里面有一个叫做”domain-shift” 的偏差。作者还专门的查看了coco的数据集和imagenet的数据集中物体的大小所占的比重,结果发现coco的数据 集中大部分的目标小于图像中%1的面积, 并且coco最小最大%10的目标在图像中占的面积比是0.024和0.472(相差近20倍),这一点我之前也做过统计。

  • 之前一些用来处理scale变化的方法
  1. 使用dilated/strous 卷积, 或者deformable 型的cnn来提高检测器对分辩率的敏感度.

  2. 使用upsample来resize网络输入图像的大小

  3. 使用类似于FPN这种把浅层feature和深层feature相结合的方式

  4. 多scales的训练和测试.

  • paper中的一些结果
  1. 当训练样本和测试样本如果分辩率存在太大误差,则performanace必然会下降. 与其为了处理小目标而专门地改变网络结构,倒不如用高分辨率的图像去pretrain模型,然后将低分辨率的进行upsample后测试.

  2. imagenet物体大,分辨率高,而coco目标几乎都很小, 直接迁移会有问题,作者控究了几种迁移的方案.分别是, imagenet pretrain后的参数直接用来给coco这种分辨率低的数据集用;不用imagenet预训练的, 自己重写设计一个,训练和测试都用分辨低的数据集; 用imagenet训练好的模型先在低分辨率的数据集上做一下fine-tune.结果证明方案三的效果是最好的,这也给自己做实验的时候提供了一个很好的借鉴.

  3. upsample确实在一定程度上可以提高性能,但是不太明显, 因为upsample提高了小目标的检测效果, 但是会让本来正常大小或者本来就大的目标过大,性能下降.

  4. 提出SNIP(scale normalization for image pyramids).大致的思想是当这个物体的scale与pretrain的数据集(比如imagenet 是224)接近的时候,我们才把它用来做检测器的训练样本,那么具体在实现的时候就是只需要这一部分的梯度回传. 这里的实现的想法还是可以借鉴的.

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦