计算机视觉中 RNN 应用于目标检测 2018-01-11

北京 上海巡回站 | NVIDIA DLI深度学习培训
2018年1月26/1月12日

NVIDIA 深度学习学院 带你快速进入火热的DL领域
阅读全文                                                       
>

正文共3278个字,16张图,预计阅读时间9分钟。


深度学习在计算机视觉领域取得的巨大的发展,最近几年CNN一直是目前主流模型所采取的架构。最近半年RNN/LSTM应用在识别领域逐渐成为一种潮流,RNN在获取目标的上下文中较CNN有独特的优势。以下我们分析最近有关RNN做目标识别的相关文章。


1、Inside-Outside Net: Detecting Objects in Context with Skip Pooling and Recurrent Neural Networks  CVPR2016(论文笔记)


本文的主要贡献是用skip pooling和 RNNlayer。在多尺度的feature map 上做roi pooling,最后一个feature map是通过rnn得到的。


识别精度在VOC2012上达到76.4%,原因主要是利用多尺度的feature map和rnn layer。文章中用到了很多trick:


1) rnn 用的是修改后的IRNN,速度快,精度与LSTM相似。


2)由于是在多尺度feature map上做roi pooling,每个尺度上feature map的响应幅度不一样,所以需要先做L2-norm,然后再将这些尺度得到roi 特征concate到一起。然后统一在scale到一个尺度上(scale由网络学习得到)。


3)加入的lstm单元现用segmentation的数据集做预训练,让权重预学习。(很重要,有两个百分点提升)


4)如果把最后一层IRNN换成级联的3*3的卷积层,精度下降0.8%,所以IRNN对于提升不是那么明显。


思考:


1)此方法对于小尺度的物体,如bottle、plant等识别效果不好,是否可以利用最早的feature map做识别,最早的feature 尺度信息保存的较好。


2)rnn只是用来提特征用,并没有考虑到物体的上下文信息。


3)是否可以在第一轮识别到物体后,利用attention的机制,现将这些物体在feature map上去除,重点识别小的物体。



2、End-to-end people detection in crowded scenes


在Lentet得到特征的基础用,用LSTM做控制器,按序列输出得到的框。细节方面需要注意的是没有用NMS,用的hungarian loss(匈牙利算法)。本文最大的贡献出了源码,方便做detection的理解LSTM在目标识别中的应用。


Github仓库地址:https://github.com/Russell91/ReInspect/


3、CNN-RNN: A Unified Framework for Multi-label Image Classification


本文的主要目的是做图像的多label识别。


文中有一句话很重要:”when using the same image features to predict multiple labels, objects that are small in the images are easily get ignored or hard torecognize independently”. 用同一个feature map预测多label时,往往会忽略小物体。


所以作者利用两个并行的网络,第二个网络输入时当前输出的label,先得到label embeding,然后通过rnn得到一向量,融合图像的feature map得到image embeding,最终输出当前图像下一个label。


思考:


1)利用Deconvolution 将feature 扩到原图一样大小,做小物体的目标识别。


2)用不同尺寸的卷积核。


小思考—–为什么原来多级的级联的卷积,最后的卷积的感受野很大了,为什么还能识别一些较小的物体,比如行人,想象一下最后一层的类别热度图,原因是: a 此类有较强的文理信息b 尺度还是比较大. faster RCNN最后一层卷积层只有14*14,最后也有很好的识别效果,究竟是为什么?



4、Attentive contexts for object detection


文章利用local(多尺度的cnn特征)和global(LSTM生成)来做目标识别。用global的原因是:图像中的其他信息有利于当前box的识别,比如图像中出现其他的汽车对当前框识别为汽车的提升很大,但在文章中global的提升不是很明显,只有0.6%的提升。作者所用的global信息感觉很一般,并没有真正用到lstm的作用。


思考一下,lstm到底怎么用才能提取global信息:之前不容易识别到的椅子或者瓶子,不能用cnn最后得到的特征,应为太稀疏了,一是瓶子之类的没有纹理信息,而是像椅子之类的纹理太乱,与其他的物体太冲突。可以利用本文lstm的思路,将隐层的输出当做test时候的隐层输入,怎么将这20类的所有隐层信息集合起来是个难点。



5. Recurrent Convolutional Neural Network for Object Recognition  CVPR2015 清华大学 链接二


每一层卷积后用RNN(类似一种cnn,只不过权重共享),在参数较少的情况下,让网络的层数更深,每层获取的context信息更丰富,用cuda-convenet实现,文章借鉴意义不大,从引用量上就可以看出。



6. Image caption相关论文


  • show and tell: a neural image caption generator  CVPR2015

  • image captioning with deep bidirectional LSTMs


此类文章的主要思想是将图像的cnn特征当做传统LSTM的输入,最终生成一句句子描述,对目标识别的借鉴意义不大.


7.combining the best of convolutional layers and recurrent layers: a hybrid network for semantic segmentation


本文的主要思想也是用了3层的lstm去提特征,最后用1*1的卷积层降维到K(类别数)层的feature map,本身没有什么创意,只是效果很好. 而且文中作者又设计了一个FCN+LSTM的级联网络,效果做到了state-of-the-art. 借鉴的地方不多。



8. semantic object parsing with graph LSTM


本文主要思想是抛弃原来逐点做序列的思想,转而利用超像素做为序列,而且超像素的输入顺序是根据前一步FCN得到的confidence map决定。


Graph LSTM是用来做语义分割,是否可以借鉴用来做目标识别.


9. pixel recurrent nerual networks


本文利用pixel rnn来做图像的补全,将各种门的计算用cnn来实现,加快计算速度(仅限于门的计算,cell state的更新还是传统方式),最大的贡献是用了多中网络,pixel CNN   pixel RNN  multiscale RNN—先生成低分辨率的图像,然后用这些低分变率的pixel作为先验知识最终生成一幅完整的图。



[参考]: 综述:计算机视觉中RNN应用于目标识别(http://blog.csdn.net/yaoxingfu72/article/details/51525878)


原文链接:https://www.jianshu.com/p/3af06422c768

查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

www.leadai.org


请关注人工智能LeadAI公众号,查看更多专业文章

大家都在看

LSTM模型在问答系统中的应用

基于TensorFlow的神经网络解决用户流失概览问题

最全常见算法工程师面试题目整理(一)

最全常见算法工程师面试题目整理(二)

TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

装饰器 | Python高级编程

今天不如来复习下Python基础


标签: