OpenMMLab 第二版發布:吸引業界「目光」的史上最完整的目標檢測...

2020-11-23 雷鋒網

雷鋒網 AI 科技評論按:去年 10 月,香港中文大學-商湯聯合實驗室在 OpenMMLab 的首期計劃中,開放了 MMCV 和 MMDetection(初期版本)。其初衷是為了在計算機視覺的一些重要方向建立統一而開放的代碼庫,並不斷把新的算法沉澱其中。在過去的半年多時間,這些代碼庫已經產生了重要影響,越來越多的 MMLab 以外的研究團隊開始把 MMDetection 作為實現新的目標檢測算法的基礎,並不斷將其新算法回饋到 MMDetection 中。

最近,OpenMMLab 第二期正式發布,由多個大學和機構的研究人員聯合提出了新一代 Open MMLab Detection,這將有效促進目標檢測領域的應用和新方法的研究與發展。

概述

本文中,我們介紹了一個目標檢測工具箱 MMDetection,它包含了豐富的目標檢測和實例分割方法以及相關的組件和模塊。這個工具箱由 MMDet 團隊主導開發,該團隊曾打破了 2018 年 COCO 挑戰賽的檢測記錄並獲得冠軍。此後,MMDetection 逐漸發展成為一個統一的平臺,涵蓋了許多主流檢測方法和現代模塊。它不僅包括訓練和推理代碼,而且還為 200 多個網絡模型提供了權重參數。我們相信這個工具箱是迄今為止最完整的檢測工具箱。

本文介紹了該工具箱的各種特點。此外,我們還對不同的方法、組件及其超參數進行了基準研究。我們希望工具箱和基準能夠提供完善、靈活的工具包來復現現有方法並開發自定義的新探測器,從而為日益壯大的研究社區服務。

MMDetection 新功能

目標檢測和實例分割都是基本的計算機視覺任務。檢測流程通常比分類任務更複雜,並且不同的實現環境可能導致截然不同的結果。為了提供高質量的代碼庫和統一的基準測試,我們使用 PyTorch 構建了一個目標檢測和實例分段代碼庫 MMDetection。

MMDetection 有幾個主要的特點:

除了介紹代碼庫和基準測試結果外,我們還報告了訓練目標檢測器的過程和最佳方法。並討論了關於超參數、體系結構、訓練策略的燒蝕實驗。我們希望該研究能夠有助於未來的研究,並促進不同方法之間的比較。

支持架構

MMDetection 包含主流目標檢測和實例分割方法的高質量實現。下圖中提供了與其他代碼庫相比支持的架構和功能的摘要。MMDetection 支持比其他代碼庫更多的方法和功能,特別是相比最新的代碼庫。

圖 1 MMDetection 工具箱支持的檢測模型數量上遠遠超過了其他現有目標檢測代碼庫

網絡架構

一、模型表示

雖然不同探測器的模型架構不同,但它們具有共同的組件,可以粗略地概括為以下類: 

  • 主幹網絡(Backbone):其作用是從圖像中抽取特徵,將圖像從像素空間轉換到高維的特徵空間,例如 VGG 和 ResNet-50 等都是常用的主幹網絡;  

  • 銜接部分(Neck):連接主幹網絡和頭部的結構。它對主幹網絡生成的原初始特徵圖執行一些優化或重新配置,例如特徵金字塔網絡(FPN)就是一種典型的 Neck。   

  • 密集連接頭(DenseHead):用於在特徵圖所映射的密集位置上進行操作,包括 AnchorHead 和 AnchorFreeHead,代表性操作有 RPN、Retina、FCOS 等。      

  • RoI 抽取器:從一個或多個特徵映射中提取 RoIPooling 類算子特徵。從相應級別的特徵金字塔中提取 RoI 特徵的示例是 SingleRoIExtractor。     

  • RoI 連接頭(BBoxHead / MaskHead):將 RoI 特徵作為輸入並計算出對於的任務結果,包括 bbox 的位置、分類或者分割的預測結果。   

通過這些通用模塊,我們可以通過簡單地創建一些新組件並組裝現有組件來進行開發與探索。   

圖 2 單階段和兩階段檢測器的架構分解圖

二、訓練流程

我們設計了一個帶鉤子觸發的標準訓練流程。該方法不僅可以用於目標檢測,還可以用於其他計算機視覺任務,例如圖像分類和語義分割。許多任務的訓練過程可通用類似的工作流程,其中訓練和驗證流程可以循環的運行,並且驗證流程可選。在每個周期,我們都會在模型上運行多次前傳和反傳操作。

為了使流程更加靈活和個性化,我們定義了一個最小流程單位,其他行為由鉤子來觸發。為了運行自定義訓練流程,我們希望在某些特定步驟之前或之後執行一些自定義操作。我們定義了一些時間點,用戶可以在其中插入任何可執行方法(鉤子),在運行的各個時期,都能實現在優先級之後的指定時間點觸發插入的鉤子。MMDetection 中的典型訓練流程如下圖所示,驗證流程未在圖中顯示。  

圖 3 典型訓練流程

基準

一、實驗設置

  • 數據集。MMDetection 支持 VOC 類型和 COCO 類型的數據集。我們採用 MS COCO 2017 作為所有實驗的主要基準,因為它更具挑戰性,並且使用更廣泛。    

  • 其它參數。(1) 在不改變寬高比的情況下,將圖像調整為最大尺寸 1333×800。(2) 我們使用 8 個 V100 GPU 進行訓練,總批量為 16(每個 GPU 2 個圖像)和單個 V100 GPU 進行推理。(3) 訓練計劃與 Detectron 相同。「1x」和「2x」分別表示 12 個時期和 24 個時期,級聯模型採用「20e」,表示 20 個時期。     

  • 評估指標。我們採用 COCO 數據集的標準評估指標,其中應用了 0.5 到 0.95 的多個 IoU 閾值。區域生成網絡(RPN)的結果用召回率(AR)測量,檢測結果用 mAP 評估。 

二、基準結果

1、主要結果     

我們對 COCO 2017 val 的不同方法進行了基準測試,包括 SSD,RetinaNet,Faster RCNN,Mask RCNN,Cascade R-CNN,Hybrid Task Cascade 和 FCOS 。我們使用四種廣泛使用的主幹網絡來評估這些結果,包括 ResNet-50,ResNet-101,ResNet-101-32x4d 和 ResNeXt101-64x4d。

在圖中我們展現了這些方法的推理速度和他們的邊界框(bbox)與實例分割(mask)AP 值之間的關係。推理時間由單個 Tesla V100 GPU 測試得出。

圖 4 不同方法的基準測試結果

2、與其他代碼庫的比較   

除了 MMDetection 之外,還有其他流行的代碼庫,如 Detectron,maskrcnn-benchmark 和 SimpleDet。它們分別建立在 caffe21,PyTorch 和 MXNet 的深層學習架構之上。我們從性能、速度和內存三個方面來對 MMDetection 和 Detectron(@ a6a835f),maskrcnnbenchmark(@ c8eff2c)和 SimpleDet(@ cf4fce4)進行比較。

Mask R-CNN 和 RetinaNet 分別代表兩級探測儀和單級探測器。由於這些代碼庫也在開發中,因此在其模型倉庫中報告的結果可能已過時,並且這些結果是在不同的硬體上所進行的測試。為了公平比較,我們提取最新的代碼並在相同的環境中進行測試,結果顯示在下圖中。

圖 5 不同代碼庫在性能、速度和內存的比較

不同架構所得內存以不同方式進行測量。MMDetection 顯示所有 GPU 的最大內存,maskrcnn-benchmark 顯示 GPU 0 的內存,Detectron 使用 caffe2 API 測量 GPU,SimpleDet 測量 NVIDIA 提供的命令顯示的內存。通常,MMDetection 和 maskrcnn-benchmark 的實際內存使用率相似且低於其他內存。

3、不同 GPU 的推理速度   

不同的研究人員可能會使用各種 GPU,這裡我們展示了常見 GPU 的速度基準,例如 TITAN X,TITAN Xp,TITAN V,GTX 1080 Ti,RTX 2080 Ti 和 V100。我們對每種類型的 GPU 進行了三種模型的評估,並將最終的推理速度展示在下圖中。需要注意的是,這些伺服器的其他硬體並不完全相同,例如 CPU 和硬碟,但結果可以為速度基準提供基礎的參考。

圖 6 不同 GPU 的推理速度基準

4、混合精度訓練  

MMDetection 支持混合精度訓練,以減少 GPU 內存並加快訓練速度,同時性能幾乎保持不變;支持以 apex2 為基礎的混合精度訓練;SimpleDet 也有不同的實現方式;Detectron 目前還不支持混合精度訓練。我們在同一個 V100 節點上測試了三個代碼庫,並在下圖中展示了 MMDetection 與 maskrcnn-benchmark、SimpleDet 的比較結果。

圖 7 混合精度訓練測試結果

此外,我們研究了更多模型,以確定混合精度訓練的有效性。如下圖所示,我們可以了解到更大的批量大小可以節省更多內存。當批量增加到 12 時,FP16 訓練的內存減少到 FP32 訓練的近一半;並且混合精度訓練在應用於 RetinaNet 等更簡單的框架時內存效率更高。

圖 8 不同模型在 MMDetection 上的混合精度訓練結果

5、多節點可擴展性

由於 MMDetection 支持多個節點上的分布式訓練,因此我們分別在 GPU 不同的節點上測試其可擴展性。我們採用 Mask R-CNN 作為基準測試方法,並在另一個 V100 節點上進行實驗。接著我們採用不同的節點數量時,基本學習率被調整為線性,實驗結果展示在下圖中。

圖 9 Mask R-CNN 在多個節點上的訓練速度

回歸損失函數

通常我們採用多任務損失函數來訓練目標檢測器,該目標檢測器由分類和回歸的特徵表示。最廣泛採用的回歸損失函數是 Smooth L1 Loss;但最近也出現了更多的回歸損失函數,例如,Bounded IoU Loss,IoU Loss,GIoU Loss,Balanced L1 Loss。L1 Loss 也是衍生的一種損失函數。然而這些損失函數通常以不同的方法和設置實現。    

在這裡,我們評估同一環境下的所有損失。值得注意的是,最終的測試性能會隨著回歸損失函數的不同損失權重而變化,因此我們執行粗網格搜索以找出每個損失的最佳損失權重。下圖結果表明,通過簡單地增加 Smooth L1 Loss 的損失權重,最終性能可以提高 0.5%。  

圖 10 不同損失權重下不同回歸損失的比較

在沒有調整損失重量的情況下,L1 Loss 函數比 Smooth L1 Loss 函數性能高 0.6%,而增加損失權重不會帶來進一步的增益。L1 Loss 比 Smooth L1 Loss 具有更大的損耗值,尤其是對於相對準確的邊界框,差距更明顯。根據分析結果,提高定位精度較好的邊界框梯度將有利於定位。L1 Loss 的損失值已經非常大,所以增加損失權重不會帶來增益。

對於端到端速度更快的 R-CNN,Balanced L1 Loss 函數的 mAP 值比 L1 Loss 高 0.3%,這與採用預先計算方法的實驗結果略有不同。然而,我們發現 Balanced L1 Loss 可以在 IoU balanced 採樣或平衡 FPN 的基線上的帶來更高的增益。除了 Bounded IoU Loss 函數外,基於 IoU 的損失表現略好於具有最佳損耗權重的基於 L1 的損失。GIoU Loss 比 IoU Loss 高 0.1%,Bounded IoU Loss 與 Smooth L1 Loss 具有相似的性能,但前者需要更大的損失權重值。       

歸一化

由於 GPU 內存有限,訓練檢測器時用到的數據量通常很小(1 或 2),因此 BN 層通常置為典型設定。配置 BN 層有兩個選項:是否更新統計數據 E(x)和 Var(x),以及是否優化仿射權重 γ 和 β。按照 PyTorch 的參數名稱,我們將這兩個選項分別表示為 eval 和 requires-grad。eval = True 表示不更新統計數據;requires-grad = True 意味著 γ 和 β 在訓練期間被優化。除了凍結 BN 層外,還有其他標準化層也可以解決小批量的問題,例如 Synchronized BN(SyncBN)[25] 和 Group Normalization(GN)。

圖 11 不同 BN 設置和 LR 時間表的結果

在這裡我們研究兩個問題:不同的歸一化層如何相互比較?在哪裡為檢測器添加標準化層?

為了回答這兩個問題,我們用 ResNet-50-FPN 進行 Mask R-CNN 的三次實驗,並分別用 FrozenBN,SyncBN 和 GN 代替主幹中的 BN 層,下圖中的結果顯示出:

(1)如果我們只用相應標準化層替換主幹中的 BN 層,FrozenBN,SyncBN 和 GN 也能夠實現類似的性能。      

(2)將 SyncBN 或 GN 添加到 FPN 和 bbox / mask head 不會帶來進一步的好處。

(3)用 4conv1fc 替換 2fc bbox head 以及向 FPN 和 bbox / mask head 添加歸一化層可將性能提高約 1.5%。

(4)具有更多卷積層的 bbox head 將展現出更高的性能。 

圖 12 採用不同歸一化層添加在不同組件上的對比

訓練數據規模

作為典型的慣例,訓練圖像被調整大小到預定義的比例而不改變縱橫比。以前的研究通常更喜歡 1000×600 的規模,現在通常採用 1333×800。         

在 MMDetection 中,我們採用 1333×800 作為默認訓練數據規模。結果如下圖所示,其中 1333×[640:800:32] 表示較長的邊緣固定為 1333,較短的邊緣是從 {640,672,704,736,768 的池中隨機選擇的,800},對應「值」模式。設置 1333×[640:800] 表示在 640 和 800 之間隨機選擇較短邊緣,這對應於「範圍」模式。 

圖 13  不同訓練數據規模的比較

從結果中我們可以了解到,「範圍」模式與具有相同最小和最大尺度的「值」模式執行類似或稍微好一些。通常更寬的範圍帶來更多改進,特別是對於更大的最大尺度。具體地,就 bbox 和 mask 的 AP 值而言,[640:960] 比 [640:800] 高 0.4%且高 0.5%。但是,較小的最小比例(如 480)將無法獲得更好的性能。

其它超參數

MMDetection 主要遵循 Detectron 中的超參數設置,以及根據我們所需要進行設定。根據經驗,我們發現 Detectron 的一些超參數不是最優的,特別是對於 RPN。在下圖中,我們列出了可以進一步提高 RPN 性能的那些超參數。雖然調整可能有利於性能,但在 MMDetection 中我們默認採用與 Detectron 相同的設置,並將此研究留作參考。

圖 14 RPNResNet-50 超參數的研究結果

詳細結果

我們提供了下圖中某些方法的詳細基準測試結果。

R-50 和 R-50(c)分別表示 pytorch 類型和 caffe 類型的 ResNet-50 主幹網絡。在瓶頸殘差模塊中,pytorch 類型的 ResNet 採用了 1x1 步幅,1 卷積層;然後是採用了 3x3 步幅,2 卷積層;而 caffe 類型的 ResNet 採用 1x1 步幅,2 卷積層;然後是 3x3 步幅,1 卷積層。

圖 15 COCO val2017 的不同檢測方法的結果(APb 和 APm 分別表示 box 和 mask 的 mAP 值)

更多詳細設置和組件方面的信息,請參閱 https://github.com/open-mmlab/mmdetection/blob/master/MODEL_ZOO.md 。

原文連結

https://arxiv.org/abs/1906.07155          

GitHub 地址

https://github.com/open-mmlab/mmdetection      

雷鋒網(公眾號:雷鋒網) AI 科技評論   雷鋒網

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 港中文開源視頻動作分析庫MMAction,目標檢測庫算法大更新
    機器之心報導參與:李亞洲、杜偉昨日,香港中文大學多媒體實驗室(MMLab)OpenMMLab 發布動作識別和檢測庫 MMAction,同時也對去年發布的目標檢測工具箱 mmdetection 進行了升級,提供了一大批新的算法實現。
  • mmdetection使用目標檢測工具箱訓練,測試
    商湯科技和港中大組成的團隊在 2018年的COCO 比賽的物體檢測(Detection)項目中奪得冠軍,而 mmdetection 正是基於 COCO 比賽時的 codebase 重構。https://github.com/open-mmlab/mmdetection這個開源庫提供了已公開發表的多種視覺檢測核心模塊。
  • 2020「水下目標檢測算法賽」賽題解析——聲學圖像
    為了解決該類問題,將光學技術、聲學技術和 AI 算法更好的融入到海洋產業中,近期,一場由國家自然基金委、鵬城實驗室和湛江市人民政府聯合主辦的線上比賽「水下目標檢測算法賽」拉開了帷幕。聲學圖像在水下目標檢測中探程遠、實用性強,針對「聲學圖像目標檢測」賽項,鵬城實驗室專門開設了 2 期在線直播課程,先後請到上海達華測繪有限公司專家李太春老師和河海大學、水下信息感知技術研究中心副主任霍冠英老師,為參賽者和算法愛好人士提供深入淺出的專業講座。
  • 融合視頻目標檢測與單目標、多目標跟蹤,港中文開源視頻感知平臺
    機器之心報導編輯:魔王香港中文大學多媒體實驗室(MMLab)OpenMMLab 開源一體化視頻目標感知平臺 MMTracking。新年伊始,香港中文大學多媒體實驗室(MMLab)OpenMMLab 又有新動作,發布了一款一體化視頻目標感知平臺 MMTracking。
  • ...檢測與單目標、多目標跟蹤,港中文開源一體化視頻感知平臺MM...
    新年伊始,香港中文大學多媒體實驗室(MMLab)OpenMMLab 又有新動作,發布了一款一體化視頻目標感知平臺 MMTracking。該框架基於 PyTorch 寫成,支持單目標跟蹤、多目標跟蹤與視頻目標檢測,目前已開源。GitHub 地址:https://github.com/open-mmlab/mmtracking
  • 「小目標」是什麼,怎麼投?|「小目標」最全介紹
    來源:基金豆二、「小目標」的投資理念A股市場存在長期向上、牛短熊長、結構行情波動劇烈三大特徵,投資者如果目標太宏大,投資過程會漫長而痛苦,結果不是半途而廢就是收益坐了過山車。「小目標」是把長期投資拆解成一個個小目標,步步止盈逐個達成,保持紀律不焦慮不貪婪,長期複利賺取可觀收益。投資過程也更快樂,更享受。
  • 大盤點|性能最強的目標檢測算法
    本文便對mAP最高的目標檢測算法進行了盤點。趁最近目標檢測(Object Detection)方向的論文更新較少,趕緊做個"最強目標檢測算法"大盤點。要知道衡量目標檢測最重要的兩個性能就是 精度和速度,特指mAP 和 FPS。
  • Google I/O 完整盤點,這才是地球上最「性感」的發布會
    持續不斷的尖叫和歡呼,隨處可見的自拍與合影,即使是在開場的前一刻,我們都能感受到這個全世界科技領域最吸引人的大會是怎樣的令人心潮澎湃。開場前的 DJ 打碟以及氣球遊戲也許不太得你的胃口,但沒關係,後面兩個小時的高質量內容輸出證明,這也許仍然是今年最值得你關注的技術大會。
  • 「瘋狂原始人2」發布中文版終極預告
    「瘋狂原始人2」發布中文版終極預告 動漫 178動漫整編 ▪ 2020-11
  • 歐盟「史上最嚴」數據保護法 GDPR 生效;騰訊上線「下飯視頻」;中...
    歐盟「史上最嚴」數據保護法 GDPR 生效昨日,通用數據保護條例(The一年前,投資快手後,騰訊的另一款短視頻產品 QIM 傳來在內測的消息,這款產品被定位類似於「美拍」、「快手」,主打拍照、短視頻分享,在廣場可以看到附近的人分享的視頻照片。
  • 史上最全 OpenCV 活體檢測教程!
    基於 OpenCV 的活體檢測在本教程的第一部分,我們將對活體檢測進行討論,包括「活體檢測是什麼?」以及「為什麼我們需要活體檢測來改進人臉識別系統?」這個腳本的最終目標是向兩個目錄中填充數據:1. 「dataset/fake/」:包含「fake.mp4」文件中的人臉 ROI 區域。2. 「dataset/real/」:包含「real.mov」文件中的人臉 ROI 區域。基於這些幀,我們接下來將在圖像上訓練一個基於深度學習的活體檢測器。
  • CVPR 2017國內外亮點論文匯集:史上最盛大會議,華人佔據半壁江山
    深度學習界的「春晚」CVPR 2017 已在夏威夷火奴魯魯 Hawaii Convention Center 開幕,在本次大會接收的眾多論文當中,有華人參與的接近半數。這七百餘篇論文中有哪些亮點?眾多參會的中國研究機構又貢獻了多少?我們為你整理了一篇觀看指南。  不久之前,谷歌發布了 2017 版學術指標。
  • PyTorch 1.0 預覽版發布:90% 的功能能經受住業界的考驗
    正式發布 PyTorch 1.0 開發者預覽版,在帶來 PyTorch 1.0 一系列更新的同時,還重點介紹了該框架的生態支持和教育方面的合作。Facebook 表示,PyTorch 1.0 是 PyTorch 推出以來最重要的版本,1.0 代表著該框架版本已經非常穩定、成熟,而今天發布的預覽版,其中 90% 的功能已經能夠經受住業界的考驗。那 PyTorch 1.0 現在到底有了怎樣的進展呢?雷鋒網接下來從 PyTorch 1.0 的重要更新、生態支持以及教育合作三個角度進行介紹。
  • MMDetection新版本V2.7發布,支持DETR,還有YOLOV4在路上!
    最近CV界最大的新聞就是transformer的應用,這其中最火的就是Facebook提出的基於transformer的目標檢測模型DETR(https
  • 埃洛克防務發布「守望者」、「觀測者」
    AIRLOOK子公司埃洛克防務正式發布定點巡航系統——「守望者」、偵查系統——「觀測者」,兩款防務無人機系統將提供全天候視頻監測,二、三維地圖數據獲取
  • CLOT x Nike Air Max 1「死亡之吻」最快「這個時間」回歸!
    先前曾為大家報導過人稱鞋壇「絕跡神鞋」 CLOT x Nike Air Max 1 死亡之吻,即將回歸的消息!可惜當時並未公布該雙鞋款到何時回歸,不過最近網絡又再度流出關於「死亡之吻」相關的發售資訊,不僅如此,這次回歸還將加碼推出新配色,推出後勢必造成搶購熱潮~「死亡之吻」是陳冠希所主理的潮流品牌CLOT與大陸球鞋店ACU合作推出的鞋款,也是鞋壇史上第一雙使用中國元素的Air Max球鞋,大膽將中醫穴位的概念印製在鞋墊內,並加上透明PVC材質拼接的鞋面,更凸顯整雙鞋與眾不同之處
  • SegmentFault 發布「 2020 最受開發者歡迎的技術活動」,七牛雲連...
    【天極網IT新聞頻道】近日,中國領先的新一代開發者社區 SegmentFault 思否陸續發布《2020 中國技術品牌影響力企業 30 強》,《中國開源先鋒 33 人之心尖上的開源人物》,《2020 最受開發者歡迎的技術活動》榜單,七牛雲公司、CEO 許式偉、以及技術活動 ECUG Con 獲得 3 項榮譽。
  • vivo 發布 TOF 3D 超感應技術:更安全的「刷臉支付」來了
    就在剛過不久的 6 月 12 日,vivo 正式發布了「未來」旗艦 ——vivo NEX,並公布了「零界全面屏」和「第三代屏幕指紋識別」等幾項新技術,成功吸引到了不少人的眼球。時隔兩周後的今天,vivo 除了在本屆 MWCS 2018 大會上展出了 vivo X21 FIFA 世界盃非凡版和 NEX 兩款新機以外,還在現場首次發布了「TOF 3D 超感應技術」。作為國內數一數二的智慧型手機廠商,這項新技術的發布也自然成為了大會首日開展的焦點之一。
  • 豐田版「霍金助手」:機器人史上的一小步,豐田的一大步
    發布後,炸出了不少本田的粉絲,紛紛表示本田大法好。看過評論後我發現,本田那些「不務正業」的偉大事業深入人心,比如造飛機、造個人平衡車和造機器人。其實,本田的友商豐田,造車之餘也會搞點副業,比如機器人。最近,豐田的機器人事業又有了新進展,算是機器人史上的一小步,豐田的一大步了。故事還得從一個叫 Romulo Camargo 的哥們兒說起,他是美國特種部隊的一個退役老兵。
  • 中國太空探索一大步:「天問一號」,目標火星
    如果任務進展順利,我國的深空探測能力和技術水平將實現跨越式發展,成為世界第三個在火星著陸,第二個在火星巡視的國家。從長遠角度來看,火星探測有助於人類更好地理解地球、利用地球,同時為實現火星殖民的目標奠定基礎。