從R-CNN到YOLO,一文帶你了解目標檢測模型(附論文下載)

2021-01-11 大數據文摘

大數據文摘作品

編譯:Yanruo、小魚

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

在大數據文摘後臺回復「目標檢測」可打包下載全部論文~

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/

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

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

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

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

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

YOLOv3模型

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

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

https://github.com/pjreddie/darknet

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

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

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

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

相關焦點

  • 一文帶你讀懂計算機視覺
    在這篇論文:http://wearables.cc.gatech.edu/paper_of_week/viola01rapid.pdf 中做了介紹。這是一種機器學習模型,專門用於目標檢測的特徵提取。Haar分類器速度快但準確度低。
  • 經典目標檢測方法Faster R-CNN和Mask R-CNN|基於PaddlePaddle深度...
    機器視覺領域的核心問題之一就是目標檢測 (object detection),它的任務是找出圖像當中所有感興趣的目標 (物體),確定其位置和大小。作為經典的目標檢測框架 Faster R-CNN,雖然是 2015 年的論文,但是它至今仍然是許多目標檢測算法的基礎,這在飛速發展的深度學習領域十分難得。
  • 使用Yolov5進行端到端對象檢測
    無論答案是什麼,這絕對是目標檢測界發展速度的一個標誌。自從他們第一次移植YOLOv3以來,Ultralytics就使得使用Pytorch創建和部署模型變得非常簡單,所以我很想嘗試YOLOv5。事實證明,Ultralytics 進一步簡化了這個過程,結果不言自明。
  • 在多目標識別方面,maskr-cnn已經取得了一些進展
    maskr-cnn是業界首款實用的全卷積神經網絡模型,為計算機視覺中的多目標識別與自動對焦,開創性的成為計算機視覺發展的新方向。無論是基於計算機視覺的自動對焦系統、模式識別系統,還是圖像識別,maskr-cnn都是有標誌性意義的。它強調平滑準確的計算輸入、檢測框和定位點,訓練過程與特徵提取過程採用多級感受野融合技術進行自動優化提高目標解析度及精度,以及做出精度更高的語義推理判斷。
  • 詳解目標檢測Faster R-CNN
    Faster R-CNN 的共同作者也是 ResNet 網絡結構論文 Deep Residual Learning for Image Recognition 的共同作者。ResNet 相對於 VGG 的明顯優勢是,網絡更大,因此具有更強的學習能力。這對於分類任務是重要的,在目標檢測中也如此。
  • 深度| 像玩樂高一樣拆解Faster R-CNN:詳解目標檢測的實現過程
    | 用於圖像分割的卷積神經網絡:從R-CNN到Mark R-CNN 去年,我們決定深入了解 Faster R-CNN,閱讀原始論文以及其中引用到的其他論文,現在我們對其工作方式和實現方法有了清晰的理解。
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    本文目標在於探索其他在相同數據集上訓練出來的 NLP 模型,然後在給定的測試集上對這些模型的性能進行評估。 我們將通過不同的模型(從依賴於詞袋錶徵的簡單模型到部署了卷積/循環網絡的複雜模型)了解能否得到高於 79% 的準確率!
  • 從零開始PyTorch項目:YOLO v3目標檢測實現
    在過去幾個月中,我一直在實驗室中研究提升目標檢測的方法。在這之中我獲得的最大啟發就是意識到:學習目標檢測的最佳方法就是自己動手實現這些算法,而這正是本教程引導你去做的。在本教程中,我們將使用 PyTorch 實現基於 YOLO v3 的目標檢測器,後者是一種快速的目標檢測算法。
  • 1.8M超輕量目標檢測模型NanoDet,比YOLO快,上線兩天Star量超200
    這個項目對單階段檢測模型三大模塊(Head、Neck、Backbone)進行輕量化,得到模型大小僅 1.8m、速度超快的輕量級模型 NanoDet-m。目標檢測一直是計算機視覺領域的一大難題,其目標是找出圖像中的所有感興趣區域,並確定這些區域的位置和類別。目標檢測中的深度學習方法已經發展了很多年,並出現了不同類型的檢測方法。
  • .| 深度學習理論與實戰:提高篇(14)——​Mask R-CNN代碼簡介
    skimage.io.imread(os.path.join(IMAGE_DIR, random.choice(file_names)))# 進行目標檢測和分割results = model.detect([image], verbose=1)# 顯示結果r = results[0] visualize.display_instances(image
  • MMDetection新版本V2.7發布,支持DETR,還有YOLOV4在路上!
    最近CV界最大的新聞就是transformer的應用,這其中最火的就是Facebook提出的基於transformer的目標檢測模型DETR(https
  • 「少即是多」的目標檢測算法Sparse R-CNN
    近幾年來,目標檢測算法發展迅速,許多新出現的目標檢測範式有著很強的相同之處,如Anchor-Free的方法中不依賴於Anchor的目標檢測範式:CenterNet兼有結構簡單和高的準確率;FCOS創新性目標檢測思路。
  • ICIP 2019 積水容器檢測第一名比賽心得
    首先這個比賽就是一個檢測的比賽,然後它最後只要求在小物體上做評估,小物體的標準遵守COCO,是小於1024pixels的物體。代碼這邊我用了mmdetection。它所謂的積水容器就是瓶瓶罐罐,輪胎,塑膠袋什麼的。一開始是想只訓練小物體的,發現不行,然後就試著拿所以數據跑了一個帶fpn的基於resnet101的faster rcnn,後來發現效果不如resnet50好。
  • Facebook AI的DETR,一種基於Transformer的目標檢測方法
    今天,Facebook開源了一個這樣的框架,DETR(DEtection TRansformer)在本文中,我們將快速了解目標檢測的概念,然後直接研究DETR及其帶來的好處。目標檢測在計算機視覺中,目標檢測是一項任務,我們希望我們的模型將對象與背景區分開,並預測圖像中存在的對象的位置和類別。
  • Facebook 發布 Detectron2:基於 PyTorch 的新一代目標檢測工具
    雷鋒網 AI 開發者按:Detectron 是 FAIR 在 2018 年初公開的目標檢測平臺,包含了大量業內最具代表性的目標檢測、圖像分割、關鍵點檢測算法,該框架主要基於 python 和 caffe2 實現,開源項目已獲得了超 2.2w 的星標數。
  • 潮科技行業入門指南 | 深度學習理論與實戰:提高篇(14)——Mask R...
    >class_names, r['scores'])檢測結果r包括rois(RoI)、masks(對應RoI的每個像素是否屬於目標物體)、scores(得分)和class_ids(類別)。下圖是運行的效果,我們可以看到它檢測出來4個目標物體,並且精確到像素級的分割處理物體和背景。
  • YOLO,一種簡易快捷的目標檢測算法
    YOLO全稱You Only Look Once,是一個十分容易構造目標檢測算法,出自於CVPR2016關於目標檢測的方向的一篇優秀論文(https://arxiv.org/abs/1506.02640 ),本文會對YOLO的思路進行總結並給出關鍵代碼的分析,在介紹YOLO前,不妨先看看其所在的領域的發展歷程。
  • FAIR最新視覺論文集錦:FPN,RetinaNet,Mask 和 Mask-X RCNN(含代碼...
    如果你關注最近兩年計算機視覺的發展,就知道冥冥之中存在著那樣一些優秀的算法,而你要做的,就是等著大神們把它寫出來、訓練好、再公開源碼。認真地說,FPN這篇論文寫的非常不錯,很合我胃口。能構建出一個簡單易行的基本模型,在各種不同的任務都好使,並不是一件容易的事。深究細節之前先強調一點,FPN 是基於一個特徵提取網絡的,它可以是常見的 ResNet 或者 DenseNet 之類的網絡。
  • 經典解讀 | Cascade R-CNN詳細解讀
    連結 | https://zhuanlan.zhihu.com/p/42553957源碼連結:https://github.com/zhaoweicai/cascade-rcnn從文章的題目上我們就可以看出來這篇文章目標是提高檢測質量,希望能獲得更精確的檢測結果。文章提出的cascade結構的效果是驚豔的,幾乎對於任意的R-CNN(Faster rcnn,FPN,R-FCN等)都可以帶來2到4個點的AP提升!!!而且實現十分簡單,已使用Pytorch在Pascal VOC上復現論文。此外,本篇文章的實驗講解部分對於理解R-CNN網絡有很大的幫助,建議詳細閱讀。   0.
  • 先理解Mask R-CNN的工作原理,然後構建顏色填充器應用
    分割掩碼到第 3 節為止,我們得到的正是一個用於目標檢測的 Faster R-CNN。而分割掩碼網絡正是 Mask R-CNN 的論文引入的附加網絡。掩碼分支是一個卷積網絡,取 ROI 分類器選擇的正區域為輸入,並生成它們的掩碼。其生成的掩碼是低解析度的:28x28 像素。