MMDetection V2.0來了!更快更強的通用目標檢測平臺

2021-12-17 CVer

點擊上方「CVer」,選擇加"星標"置頂

重磅乾貨,第一時間送達

本文作者:陳愷

https://zhuanlan.zhihu.com/p/145084667

本文已由原作者授權,不得擅自二次轉載

MMDetection V1.0 版本發布以來,我們收到了很多用戶的反饋,其中有不少有價值的建議,同時也有很多開發者貢獻代碼,和我們一起不斷完善。經過 2 個月的醞釀,再經過 3 個月的開發和打磨(也就說了五六次「下周發版」吧,這裡十分感謝主要開發的小夥伴們:文蔚,嘉瑞和鈺杭),終於,在 2020 年 5 月 6 日,我們低調地發布了MMDetection V2.0。今天我們打算介紹一下。

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

太長不看版:經過對模型各個組件的重構和優化,我們全面提升了 MMDetection 的速度和精度,達到了現有檢測框架中的最優水平。通過更細粒度的模塊化設計,MMDetection 的任務拓展性大大增強,成為了檢測相關項目的基礎平臺。同時對文檔和教程進行了完善,增強用戶體驗。

下面簡單介紹下 MMDetection V2.0 的各項改進,更具體的細節見文檔。

最大最全的模型庫

截至 2020 年 5 月底,MMDetection 官方模型庫已經支持了35篇論文中的算法,提供了超過 250 個預訓練模型,是目標檢測領域最大規模的模型庫。除此之外,還有 16 篇論文在 Github 上開源了基於 MMDetection 的代碼。目前官方支持的方法如圖所示:

從 V1.0 到 V2.0,我們新支持了 Res2Net,RegNet(獨家放送)等 backbone,也支持了CARAFE,PISA,FSAF,NASFCOS 等方法。對新方法的及時支持使得 MMDetection 既可以用作學術研究的標準 benchmark,也可以用作各種 idea 實現的助力,以及各種比賽的刷(pai)分(lie)利(zu)器(he)。

靈活的設計,全新的體驗

模塊化設計是 MMDetection 自誕生之初就遵循的原則,使得它能保持強大的生命力,得到社區的廣泛支持。

從設計上看,MMDetection V2.0 的模塊化設計比之前的版本更加細粒度,使得更多的模塊可以被更靈活地替換或調整,讓 MMDetection 從單純的目標檢測框架向檢測類任務的框架平臺轉變。新的模塊設計如下圖所示。

在進行代碼重構的過程中,我們針對之前的反饋,在用戶體驗上著重進行了改進,這裡舉幾個例子。

痛點 2:配置文件非常長,修改起來容易出錯,而且改動的點不夠清晰。

V2.0改進:我們設計了新的 config 系統,支持了多重繼承機制。將常用的數據集配置、基礎模型以及訓練策略放到了 _base_ 文件夾中,每個新的 config 只需要繼承一個或者多個已有的 config,然後對其中需要修改的欄位進行重載即可。下圖是 Mask R-CNN R-101 的配置文件在 1.0 和 2.0 版本的對比。V2.0 版本 只需要 2 行,而且所有的改動一目了然,如下圖所示。

除此之外,我們在 V2.0 中增加了不少實用的小功能和改進,使得 MMDetection 簡直是各位開發者的貼心小棉襖。(還有什麼需求都可以提,我們慢慢加,當然能直接提 PR 就最好不過了。。。)

飛一般的速度

在進行代碼重構的時候,我們也針對各個模塊進行了優化, 實現了30%以上的訓練加速和60%以上的測試加速。

它變強了,但沒有禿

MMDetection V2.0 的基準模型精度相比於 V1.x 有了顯著的提升。我們雖然在 V1.0 的技術報告中對各種參數做了 ablation study,但是代碼庫中的默認配置選用了最樸實無華的版本。在 V2.0 中,在不增加訓練和測試代價的前提下,通過對默認超參的調節和實現的優化,例如使用 L1 Loss 而非 SmoothL1 Loss 等,獲得了不小的精度提升。Detectron2 在這方面也有不少可圈可點的地方,和 MMDetection V2.0 的主要區別在於默認採用了 multi-scale 訓練,而我們仍然選擇以 single-scale 作為默認配置。不過在採用相同參數的情況下,精度幾乎一致。

總結

其實大多數研究員和開發者在寫代碼的過程中都會逐漸感受到,代碼的工程質量會顯著影響研發效率。對於整個社區而言,目標檢測的代碼框架不僅需要工程上穩定高效的實現,還需要保持靈活性來支持新方法。而 MMDetection 正是在朝著這個方向不斷努力。也歡迎各位提 PR 和Issue,讓我們一起把它變得更好。

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


廣告時間

最後,還是要給商湯我們的團隊打個小廣告,目前有許多坑等待優秀的同學們一起來填,歡迎大家推薦和轉發,簡歷投遞請聯繫 chenkai@sensetime.com

郵件主題/簡曆命名格式:崗位+姓名+CVer推薦

1. 見習算法研究員(多名)

負責開源框架(各種方向,不限於檢測)的開發和維護,例如定期實現新的 SOTA 算法,添加新功能把輪子打磨得更順手等。base 香港,長期實習優先。保證這段經歷能讓你在算法和工程能力上都能有不小的收穫。

2. 見習算法研究員(檢測方向,1 名)

負責檢測算法的算法研究和業務落地。

3. 全職算法研究員(分割方向,1 名)

負責語義分割方向的算法研究和業務落地。社招優先。

4. 全職開源社區運營(1 名)

負責開源社區運營,提升社區開發者活躍度,連接核心開發團隊和開源社區,負責用戶需求的挖掘和整理。負責中英文平臺的宣傳。

5. 項目經理(全職/實習,1 名)

負責設計、細化和實施開源項目開發計劃,把控項目風險,協調核心開發團隊以及社區開發者的開發任務。

同時,也給 MMLab 打個廣告,實驗室長期招收有志於在 CV 和 NLP領域有所突破,做出有影響力工作的同學,有CUHK,NTU、HKU、USYD、SIAT 等多個base可以申請,歡迎大家直接聯繫對應的老師。

CVer-目標檢測 交流群已成立


掃碼添加CVer助手,可申請加入CVer-目標檢測 微信交流群,目前已匯集4000人!涵蓋2D/3D目標檢測、小目標檢測、遙感目標檢測等。互相交流,一起進步!


同時也可申請加入CVer大群和細分方向技術群,細分方向已涵蓋:目標檢測、圖像分割、目標跟蹤、人臉檢測&識別、OCR、姿態估計、超解析度、SLAM、醫療影像、Re-ID、GAN、NAS、深度估計、自動駕駛、強化學習、車道線檢測、模型剪枝&壓縮、去噪、去霧、去雨、風格遷移、遙感圖像、行為識別、視頻理解、圖像融合、圖像檢索、論文投稿&交流、PyTorch和TensorFlow等群。


一定要備註:研究方向+地點+學校/公司+暱稱(如目標檢測+上海+上交+卡卡),根據格式備註,可更快被通過且邀請進群

▲長按加群


▲長按關注我們

請給CVer一個在看

相關焦點

  • MMDetection v2.0 訓練自己的數據集
    1 新建容器進入正題 mmdetection docker環境上次已經介紹一次了 ,現在我們新建一個容器sudo nvidia-docker run -shm-size=8g -name mm_det -it -v /train_data:/mmdetection/datanvidia-docker:新建容器能調用GPU
  • mmdetection目標檢測框架安裝與測試
    香港中文大學-商湯科技聯合實驗室開源了基於 PyTorch 的檢測庫——mmdetection。商湯科技和港中大組成的團隊在 2018年的COCO 比賽的物體檢測(Detection)項目中奪得冠軍,而 mmdetection 正是基於 COCO 比賽時的 codebase 重構。這個開源庫提供了已公開發表的多種視覺檢測核心模塊。
  • PaddleDetection目標檢測套件
    軟硬體環境簡介引用官方的項目介紹PaddleDetection飛槳目標檢測開發套件,旨在幫助開發者更快更好地完成檢測模型的組建、訓練、優化及部署等全開發流程。PaddleDetection模塊化地實現了多種主流目標檢測算法,提供了豐富的數據增強策略、網絡模塊組件(如骨幹網絡)、損失函數等,併集成了模型壓縮和跨平臺高性能部署能力。經過長時間產業實踐打磨,PaddleDetection已擁有順暢、卓越的使用體驗,被工業質檢、遙感圖像檢測、無人巡檢、新零售、網際網路、科研等十多個行業的開發者廣泛應用。
  • MMDetection環境搭建與安裝教程
    點擊上方「海邊的拾遺者」,選擇「星標」公眾號第一時間獲取價值內容MMDetection是商湯和港中文大學聯合開源的基於PyTorch的目標檢測工具箱,支持Faster-RCNN,Mask-RCNN等主流目標檢測框架。
  • MMDetection新版本V2.7發布,支持DETR,還有YOLOV4在路上!
    最近CV界最大的新聞就是transformer的應用,這其中最火的就是Facebook提出的基於transformer的目標檢測模型DETR(https
  • 開源 | 商湯聯合港中文開源 mmdetection
    ,這是一個基於 PyTorch 的開源目標檢測工具包,屬於香港中文大學多媒體實驗室 open-mmlab 項目的一部分。項目地址:https://github.com/open-mmlab/mmdetection根據 GitHub 項目所述,mmdetection 的主要特徵可以總結為以下幾個方面:模塊化設計:你可以通過連接不同組件輕鬆構建自定義目標檢測框架。
  • YOLO9000:更好,更快,更強
    自從引入神經網絡以來,目標檢測系統變得更快更準確。但是大多數目標檢測方法仍然局限於一小部分的對象。  與分類標記等任務的數據集相比,當前目標檢測系統的數據集是有限的。最常見的目標檢測數據集擁有成千上萬到十萬個圖像。每個圖像擁有幾十個到幾百個的標籤。分類任務的數據集有數以百萬計的圖像,數以十萬計的類別。  我們希望將目標檢測的數據集的規模擴展到對象分類的級別。
  • 目標檢測四大開源神器:Detectron2/mmDetectron/darknet/SimpleDet
    :Detectron2/mmDetectron/SimpleDet。話題說回主人公:Detectron2(新一代目標檢測和分割框架)Detectron2 不僅支持 Detectron已有的目標檢測、實例分割、姿態估計等任務,還支持語義分割和全景分割。新增了Cascade R-CNN,Panoptic FPN和TensorMask新模型。
  • MMDetection目標檢測工具箱
    MMDetection是基於深度學習的目標檢測算法框架,使用MMDetection能快速搭建目標檢測網絡,實現目標檢測。本文將介紹MMDetection:MMDetection,包含一組豐富的對象檢測和實例細分方法以及相關的組件和模塊。
  • 香港中文大學多媒體實驗室 | 開源視頻目標檢測&跟蹤平臺(附源碼下載)
    經過對模型各個組件的重構和優化,全面提升了MMDetection的速度和精度,達到了現有檢測框架中的最優水平。通過更細粒度的模塊化設計,MMDetection的任務拓展性大大增強,成為了檢測相關項目的基礎平臺。
  • 目標檢測三大開源神器:Detectron2/mmDetectron/SimpleDet
    Please see detectron2, which includes implementations for all models in maskrcnn-benchmark話題說回主人公:Detectron2(新一代目標檢測和分割框架)Detectron2 不僅支持 Detectron已有的目標檢測、實例分割、姿態估計等任務,還支持語義分割和全景分割
  • 如何用PaddleDetection做一個完整的目標檢測項目
    針對不同的業務場景(性能、目標大小、準確率等)可以選擇框架中的不同模塊組合得到最適合的模型,實現任務。相比於tensorflow的Object_Detection,優勢之一就是將YOLOv3這一目標檢測的快速算法融合到了框架下。文章將以一個Yolov3識別水果的例子為說明,詳解如何利用PaddleDetection完成一個項目。
  • Kaggle實戰目標檢測奇淫技巧合集
    這裡分享一下我總結的一些目標檢測中會用到的 「奇淫技巧」,牽扯到代碼的我就直接拿 mmdetection[1] 來舉例了,修改起來比較簡單。1.模型選擇近一年多以來目標檢測領域沒有太大的動靜,即使最近一段時間的 Anchor Free 和神經網絡搜索框架比較熱,但都沒有太大的革新,當前檢測競賽圈的通用配置還是 Cascade-R-CNN + ResNeXt/ResNet 系列 + FPN+DCN 2,畢竟二階段為王!然後就是一些根據實驗結果的調整了,由於商湯沒有開源 SeNet 系列的訓練模型,所以如果有卡的話可以自己搞。
  • mmdetection最小復刻版(一):整體概覽
    mmdetection的最小實現版本簡稱 mmdetection-mini。0 為何而生 很多人可能有疑問:mmdetection那麼好用,你為啥要自己又寫一遍呢?沒事幹?其實不然,基於我目前的理解,出於一下幾點原因:學習目的 mmdetection無疑是非常優異的目標檢測框架,但是其整個框架代碼其實非常多。我希望通過從0構建整個結構,來徹底熟悉整個框架,而不是僅僅熟悉算法部分。
  • 超越YOLOv4,更快更強的CenterNet2來了!
    超越現所有網絡,如ScaledYOLOv4、GFLV2等,其中一個版本,49.2 mAP/33FPS!代碼剛剛開源!作者單位:UT Austin(鼎鼎大名的CenterNet一作本人), Intel1 簡介我們都知道目標檢測的目的就是找到圖像中的所有目標,並識別它們的位置和屬於某一類的概率。
  • 資源 | 一個基於PyTorch的目標檢測工具箱,商湯聯合港中文開源mmdetection
    近日,商湯和港中文聯合開源了 mmdetection,這是一個基於 PyTorch 的開源目標檢測工具包,屬於香港中文大學多媒體實驗室 open-mmlab
  • mmdetection專題之詳解hook機制
    本文是CV檢測第二篇,面向對象是【mmdetection hook機制】,其他精彩內容請移步菜單欄。mmdetection專題旨在分析mmdetection的框架邏輯,主要從註冊器、HOOK機制等幾個非常重要的機制來看mmdetection的整體邏輯。mmdetection是一款優秀的基於PyTorch的開源目標檢測系統,由香港中文大學(CUHK)多媒體實驗室(mmlab)開發。
  • 目標檢測系列之五(YOLO V4)
    Specials3 Methodology3.1 Selection of architecture3.2 Selection of BoF and BoS3.3 Additional improvement3.4 YOLOv44 Experiment and Result5 實現版本1 IntroductionYOLO V4建立了一個更高效更強大的目標檢測模型,使用單張1080Ti或者
  • 【乾貨】目標檢測(Object Detection)和目標跟蹤(Object Tracking)的區別
    1.跟蹤是一系列的檢測。假設在交通錄像中,想要檢測一輛車或者一個人,我使用錄像不同時刻的快照(通過暫停鍵)來檢測我的目標,一輛車或一個人。然後通過檢查我的目標是如何在錄像不同的畫面中移動(對錄像每一幀進行目標檢測,比如YOLO算法,就能知道我的目標在不同的畫面裡的坐標),由此實現對目標的追蹤。
  • 算法系列 | MobileNet V2—SSD 的車道線檢測方法剖析
    本文藉助 Tensorflow Object detection API 開源框架和 MobileNet V2—SSD 算法,闡述如何創建、訓練自定義車道線數據集,並獲得 LDW 目標檢測模型。2)環境配置 通用軟體平臺為 Win 10、JetBrains PyCharm Community Edition 2019.2 x64、 Anaconda 3( 64 bit )。