一文讀懂目標檢測模型(附論文資源)

資料派THU發表於2018-05-27


來源: 大資料文摘

本文共1443字,建議閱讀5鍾。

本文為你詳細介紹目標檢測,並分享資源大禮包,為你的目標檢測入門打下基礎。


這是一份詳細介紹了目標檢測的相關經典論文、學習筆記、和程式碼示例的清單,想要入坑目標檢測的同學可以收藏了!


後臺回覆“目標檢測”可打包下載全部論文~


1. R-CNN


R-CNN是2014年出現的。它是將CNN用於物件檢測的起源,能夠基於豐富的特徵層次結構進行目標精確檢測和語義分割來源。


如何確定這些邊界框的大小和位置呢?R-CNN網路是這樣做的:在影象中提出了多個邊框,並判斷其中的任何一個是否對應著一個具體物件。



要想進一步瞭解,可以檢視以下PPT和筆記:


http://www.image-net.org/challenges/LSVRC/2013/slides/r-cnn-ilsvrc2013-workshop.pdf

http://www.cs.berkeley.edu/~rbg/slides/rcnn-cvpr14-slides.pdf

http://zhangliliang.com/2014/07/23/paper-note-rcnn/


2. Fast R-CNN


2015年,R-CNN的作者Ross Girshick解決了R-CNN訓練慢的問題,發明了新的網路Fast R-CNN。主要突破是引入感興趣區域池化(ROI Pooling),以及將所有模型整合到一個網路中。



你可以通過以下GitHub連結檢視模型的各種實現程式碼:


https://github.com/rbgirshick/fast-rcnn

https://github.com/precedenceguo/mx-rcnn

https://github.com/mahyarnajibi/fast-rcnn-torch

https://github.com/apple2373/chainer-simple-fast-rnn

https://github.com/zplizzi/tensorflow-fast-rcnn


這裡還有一個利用對抗學習改進目標檢測結果的應用:


http://abhinavsh.info/papers/pdfs/adversarial_object_detection.pdf

https://github.com/xiaolonw/adversarial-frcnn


3. Faster R-CNN


2015年,一個來自微軟的團隊(任少卿,何愷明,Ross Girshick和孫劍)發現了一種叫做“Faster R-CNN”的網路結構,基於區域建議網路進行實時目標檢測,重複利用多個區域建議中相同的CNN結果,幾乎把邊框生成過程的運算量降為0。



你可以在這裡看到關於Faster R-CNN的更多介紹,包括PPT和GitHub程式碼實現:


http://web.cs.hacettepe.edu.tr/~aykut/classes/spring2016/bil722/slides/w05-FasterR-CNN.pdf

Matlab

https://github.com/ShaoqingRen/faster_rcnn

Caffe

https://github.com/rbgirshick/py-faster-rcnn

MXNet

https://github.com/msracver/Deformable-ConvNets/tree/master/faster_rcnn

PyTorch

https://github.com//jwyang/faster-rcnn.pytorch

TensorFlow

https://github.com/smallcorgi/Faster-RCNN_TF

Keras

https://github.com/yhenon/keras-frcnn

C++

https://github.com/D-X-Y/caffe-faster-rcnn/tree/dev


4. SPP-Net(空間金字塔池化網路)



SPP-Net是基於空間金字塔池化後的深度學習網路進行視覺識別。它和R-CNN的區別是,輸入不需要放縮到指定大小,同時增加了一個空間金字塔池化層,每幅圖片只需要提取一次特徵。


相關資源:


https://github.com/ShaoqingRen/SPP_net

http://zhangliliang.com/2014/09/13/paper-note-sppnet/


更多論文:


DeepID-Net:基於變形深度卷積神經網路進行目標檢測

http://www.ee.cuhk.edu.hk/%CB%9Cwlouyang/projects/imagenetDeepId/index.html


深度感知卷積神經網路中的目標檢測器

https://www.robots.ox.ac.uk/~vgg/rg/papers/zhou_iclr15.pdf


segDeepM:利用深度神經網路中的分割和語境進行目標檢測

https://github.com/YknZhu/segDeepM


基於卷積特徵啟用圖的目標檢測網路

http://arxiv.org/abs/1504.06066


利用貝葉斯優化與結構化預測改進基於深度卷積神經網路的目標檢測

http://arxiv.org/abs/1504.03293


DeepBox:利用卷積網路學習目標特性

http://arxiv.org/abs/1505.02146


5. YOLO模型


YOLO是指標準化、實時的目標檢測。


可以先看大資料文摘翻譯的這個視訊瞭解YOLO:


TED演講 | 計算機是怎樣快速看懂圖片的:比R-CNN快1000倍的YOLO演算法



有了YOLO,不需要一張影象看一千次,來產生檢測結果,你只需要看一次,這就是我們為什麼把它叫"YOLO"物體探測方法(You only look once)。


程式碼實現:


https://github.com/pjreddie/darknet

https://github.com/gliese581gg/YOLO_tensorflow

https://github.com/xingwangsfu/caffe-yolo

https://github.com/tommy-qichang/yolo.torch

https://github.com/nilboy/tensorflow-yolo


相關應用:


Darkflow:將darknet轉換到tesorflow平臺。載入訓練好的權值,用tensorflow再次訓練,再將匯出計算圖到C++環境中。

https://github.com/thtrieu/darkflow


使用你自己的資料訓練YOLO模型。利用分類標籤和自定義的資料進行訓練,darknet支援Linux / Windows系統。

https://github.com/Guanghan/darknet



IOS上的YOLO實戰:CoreML vs MPSNNGraph,用CoreML和新版MPSNNGraph的API實現小型YOLO。

https://github.com/hollance/YOLO-CoreML-MPSNNGraph


安卓上基於TensorFlow框架執行YOLO模型實現實時目標檢測。

https://github.com/natanielruiz/android-yolo


6. YOLOv2模型


時隔一年,YOLO作者放出了v2版本,稱為YOLO9000,並直言它“更快、更高、更強”。YOLO v2的主要改進是提高召回率和定位能力。


各種實現:


Keras

https://github.com/allanzelener/YAD2K

PyTorch

https://github.com/longcw/yolo2-pytorch

Tensorflow

https://github.com/hizhangp/yolo_tensorflow

Windows

https://github.com/AlexeyAB/darknet

Caffe

https://github.com/choasUp/caffe-yolo9000


相關應用:


Darknet_scripts是深度學習框架中YOLO模型中darknet的輔助指令碼,生成YOLO模型中的引數anchors。

https://github.com/Jumabek/darknet_scripts


Yolo_mark:圖形化標記用於訓練YOLOv2模型的影象目標

https://github.com/AlexeyAB/Yolo_mark


LightNet:改進的DarkNet

https://github.com//explosion/lightnet


用於生成YOLOv2模型所需訓練資料的邊界框標記工具

https://github.com/Cartucho/yolo-boundingbox-labeler-GUI


Loss Rank Mining:基於實時目標檢測的一種通用的困難樣本挖掘方法。LRM是第一個高度適用於YOLOv2模型中的困難樣本挖掘策略,它讓YOLOv2模型能夠更好的應用到對實時與準確率要求較高的場景中。

https://arxiv.org/abs/1804.04606


7. YOLOv3模型


再次改進YOLO模型。提供多尺度預測和更好的基礎分類網路。相關實現:


https://pjreddie.com/darknet/yolo/

https://github.com/pjreddie/darknet

https://github.com/experiencor/keras-yolo3

https://github.com/marvis/pytorch-yolo3


8. SSD(單網路目標檢測框架)



SSD可以說是YOLO和Faster R-Cnn兩者的優勢結合。相比於Faster R-Cnn,SSD的目標檢測速度顯著提高,精度也有一定提升;相比YOLO,速度接近,但精度更高。


相關實現:


https://github.com/zhreshold/mxnet-ssd

https://github.com/rykov8/ssd_keras

https://github.com/balancap/SSD-Tensorflow

https://github.com/amdegroot/ssd.pytorch

https://github.com/chuanqi305/MobileNet-SSD


9. DSOD(深度監督目標檢測方法)



與SSD類似,是一個多尺度不需要proposal的檢測框架,是一種完全脫離預訓練模型的深度監督目標檢測方法。


相關實現:


https://arxiv.org/abs/1708.01241

https://github.com/szq0214/DSOD

https://github.com/Windaway/DSOD-Tensorflow

https://github.com/chenyuntc/dsod.pytorch


後臺回覆“目標檢測”可打包下載全部論文~


更多更全面的目標檢測資源連結可以前往GitHub檢視:


https://github.com/amusi/awesome-object-detection


相關文章