標籤:

計算機視覺中 RNN 應用於目標檢測

作者: zhwhong

原文鏈接:jianshu.com/p/3af06422c

查看更多的專業文章,請移步至「人工智慧LeadAI」公眾號,查看更多的課程信息和產品信息,請移步至全新打造的官網:www.leadai.org.

正文共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倉庫地址:github.com/Russell91/Re

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應用於目標識別(blog.csdn.net/yaoxingfu

推薦閱讀:

語言指示位置的最佳方式
為什麼人閉上眼睛就看不見任何東西了?
眼中的血管的秘密
【認真想】你看到世界並不是真的
為什麼可以在顯示器的黑白交接處看到橙色和藍色?

TAG:RNN | 视觉 |