LSTM for multi-target detection

论文题目是End-to-end people detection in crowded scenes,链接

截止目前,这是我看过的年度最佳论文,可以比肩LeCun做pose的paper,比R-CNN不知道高到哪里去,应该是NIPS2015的paper,你问我支不支持这个paper,我是支持的,我就明确告诉你,我还觉得可以是oral。

这是一个全新的多物体检测的框架(恕我愚昧),也很赶时髦,CNN+LSTM+end to end。以前的物体检测方法大体可以分为两种:sliding window fashion跟基于proposal的分类。像Overfeat就是sliding window fashion一种典型例子,它充分利用了卷积神经网络里面可以共享权值的特性;R-CNN呢,就是基于proposal的分类的例子,流程是这样的:产生proposal –> 对proposal进行分类,分类对的就认为是最终检测的结果。想R-CNN这类方法有没有有点呢?有!直观,而且不用考虑尺度的问题,但是缺点也很明显,很难处理物体overlap比较大以及遮挡比较严重的情况,一般的proposal方法都不能产生这样的proposal。

回到这篇paper,前面提到他是一个CNN+LSTM的框架,结构图如下所示,CNN用来学习特征,然后LSTM用来产生预测结果。LSTM一个RNN,R字代表recurrent,循环的意思,也正是因为这样,RNN可以产生不固定长度的序列,把这个应用在多物体检测上真是绝配,毕竟多物体检测就是不确定有多少个检测目标。

在实际操作中,作者用了GoogLeNet作为特征的提取器,然后LSTM是基于GoogLeNet最顶层的特征(1024维)来进行预测。每一次,LSTM把1024维的特征以及前一个LSTM单元的输出作为下一个LSTM单元输入,每个LSTM单元的输出是一个五元组,用来表示一个检测结果,其中包括这个检测结果的分数以及预测框,当检测结果的分数低于某个阈值的时候,LSTM就停止forward。

然后Loss的定义就比较中规中矩,如下所示。

作者是首先将预测结果跟groundtruth做一次匹配,每个groundtruth只能跟一个预测结果匹配上,然后只对于匹配上的预测结果会惩罚它的预测框,所有的预测分数都会做一次惩罚。

最后还是感叹一下,这个思路真的很好,把多物体检测跟LSTM完美结合在一起,嵌入到CNN里面。

坚持原创技术分享,您的支持将鼓励我继续创作!