论文笔记《Spatial Memory for Context Reasoning in Object Detection》

  很久不写论文笔记了,不是没看,而是不多看到好的或者说值得记的了,今天被xinlei这篇paper炸了出来,这篇被据老大说xinlei自称idea of the year,因此看的时候仍是很认真的,而后最后确实也发现了很多干货。算法

1、introduction编程

  这篇文章主要仍是解决detection中如何有效的利用context信息的问题,这里做者提出了有两种context信息:一、image-level的信息,也就是当前场景的信息,例如一张床出如今卧室里面,一个篮球出如今篮球场里面,都是极其合理的  二、obeject-object relationship,例如一我的手上拿着一个球,比一我的手上拿着一辆车仍是要合理不少不少的。。  网络

  首先传统的faster rcnn的pipeline中几乎没有利用过任何的context信息,做者提出特别实在NMS的时候,暴力去除掉那些候选框并非一个好主意,所以提出来spatial memory network来解决这个问题。这个方法的核心就是,当你在图片中检测到车,记住它,而后在下次迭代的时候做为先验知识会帮助下一次的检测获得一些以前漏检的结果。ide

 

2、insight&&contribution优化

具体的内容其实仍是要看paper,文章太长了而后mac截图好麻烦,记几点关键的吧。idea

1.首先将在图片中的检测物体的行为model成一个公式 spa

   随后为了实现obeject-obeject的这种conditional的关系,能够将原式近似为:
  再后来引入state变量,其实就是memory,也就是把上式的O0:n-1 encode成state,而且编程了spatial memory。

 

  这些推导固然都是合理的,不过其实通常DL的论文,怎么解释都有道理。。code

2.下图式整个算法的pipeline,灰色的是原来的faster rcnn的步骤,只不过把conv5的feature换成了m_conv5的feature,而且在每次迭代的时候,经过memory S获得更好的detection结果,而后再根据新的结果更新S,如此迭代优化。xml

这里为决定memory S的选择也是比较合理的,以下图所示:blog

    细节就不说了,主要是融合了conv5_3的feature以及softmax的的score,前者具备spatial的fearure,后者更多的是semantic的信息。

3.最后一个比较合理的地方就是训练的一个关键了,不少时候你有一个很好的idea,最后的结果很差,未必是你的idea很差,而是有些地方没有处理好。

  以下图所示,一开始训练的时候并不收敛,做者通过实验和推导发现了问题所在,那就是memory和detection的在bp的时候是有contract的,咱们但愿第一次以后的迭代是不会检测到前面的物体的,因此网络会不停的接受矛盾的signal,一个但愿它尽可能检测一切物体,一个但愿不要检测太多,这样的矛盾是的detecor的更新是不合理的,因此最后做者发现,第一次没有memory的时候更新detector M,后面的迭代就不BP了。

 

3、conclusion

  让我最喜欢的是两点,一个是context信息的object-obejct的阐述,还有一个是训练的时候bp的细节,到了这个份上,这个工做到底work不work对于我来讲已经不是关键了。。。。

相关文章
相关标签/搜索