MMDetection論文閱讀筆記

MMDetection是商湯聯合港中文開發的一個基於pytorch的深度學習目標檢測框架,框架中提供了目前主流的一些目標檢測的模型。最近準備學習一下MMDetection這個目標檢測框架,這篇文章是MMDetection論文的閱讀筆記。

論文地址:MMDetection: Open MMLab Detection Toolbox and Benchmark

1. 論文摘要

我們提出了一個目標檢測工具箱MMDetection,這個工具箱包含了大量的目標檢測與實例分割的方法以及一些相關的模組與組件。這個工具箱開始於2018年COCO檢測挑戰賽冠軍隊伍MMDet的程式碼庫,逐漸進化成一個包含流行的目標檢測演算法以及現在常用模組的統一的目標檢測平台。MMDetection不僅包含了訓練與推理的程式碼,而且提供了200多種預訓練模型(現在好像已經有300多種了)。我們相信這個框架將會慢慢變成一個最完善的目標檢測工具箱。在這片論文中,我們介紹了這個工具箱很多的特性,除此之外我們也對不同的方法,不同的組件和他們的超參數進行了基準研究。我們希望這個提供彈性工具的工具箱能夠服務於逐漸發展龐大的研究社區,讓他們可以方便的重新實施已經存在的演算法,並且研究開發自己新的檢測器。程式碼地址:[ https:
//github.com/open-mmlab/mmdetection]( https:
//github.com/open-mmlab/mmdetection).

2. MMDetection框架整體介紹

  1. 模組化設計

    ​ 將目標檢測演算法解耦為不同的組件,研究者可以通過組合不同的模組快速開發出自己的目標檢測框架

  2. 支援很多目標檢測框架

  3. 高效

    ​ 所有的bbox與mask操作均在gpu上進行處理,速度更快(相比較Detectron, maskrnn-benchmark,simpleDet這幾個框架)。

  4. state of art

    ​ MMDet的隊伍獲得了COCO檢測挑戰賽2018年的冠軍。這個工具箱就是基於MMDet的程式碼庫開發的。

2.1 MMDetection框架支援的模型

mm1.png

2.2 模型架構

雖然不同模型的架構不同, 但是其基本的結構可以分為以下幾個部分:

Backbone:將圖片轉換為feature map,例如不包含全連接層的resnet50

Neck:Neck是連接backbone與head的一部分網路,主要工作就是對backbone得到的feature map進行重構融合,代表為FPN

DenseHead:在feature map上,執行一個密集的定位操作,包含了anchorHead與anchorFreeHead。

ROIExtractor:利用類似ROIpooling的操作從單一或者多層特徵圖中提取感興趣區域的操作

ROIHead:利用ROI提取器得到的ROI作為輸入,然後進行bbox分類回歸或者mask預測。
mm2.png

2.3 訓練pipeline

採用hook機制設計了一個統一的訓練pipeline,這種設計不僅在目標檢測中可以使用,在其他的電腦視覺任務中也可以使用。

mm3.png

2.4 其他的模組

框架還提供了多尺度訓練,多尺度預測的方案

提供了多種loss

多種neck方案

多種nms的策略

總之這個框架幾乎涵蓋了所有目標檢測中常用的一些策略及模型。