日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MMDetection-简介

發布時間:2024/4/11 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MMDetection-简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

MMDetection是由open-mmlab開發的基于PyTorch的目標檢測工具庫,和Detectron2一樣是目標檢測領域非常著名的工具箱,open-mmlab是香港中文大學、商湯等機構聯合成立的實驗室,主要都是國內的開發者和研究者。MMDetection中目前包含數十種模型和方法,且為開發者提供了非常合適的高層接口以便開發者以MMDetection為基礎進行項目的二次開發,這幾年也有不少檢測領域的論文采用MMDetection實現。

安裝

MMDetection的版本已經更新到2.8.0了,因此本系列所有的教程文章均以該版本為例,且操作系統為Ubuntu18.04,顯卡環境為2080Ti。

這里不建議在Windows系統下安裝配置MMDetection,一方面官方的支持并不好,另一方面,現在網上很多教程在Windows上安裝成功也是比較舊的版本了。此外,到我修改這篇文章的時候MMDetection2.9.0已經發布了,相比于之前的版本,有一些改動但是整體框架沒有太大變化。

首先,克隆官方倉庫源碼到本地并切換到源碼目錄下,使用的命令如下。

git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection

接著,在該目錄下逐行執行下面的命令,這里最好安裝并配置了conda國內源之后執行(課參考conda標準庫國內源教程和PyTorch國內源教程),并且,由于目前MMDetection支持PyTorch1.3以上的版本,我這里推薦選用比較穩定的PyTorch1.6。(具體安裝時由于每個人的操作系統版本和硬件環境不同可能會出現各種問題,遇到問題可以在本文下面留言或者參考官方文檔關于安裝的部分。)

conda create -n mmdet python=3.7 -y conda activate mmdet conda install pytorch=1.6 torchvision cudatoolkit=10.2 -y pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html pip install -r requirements/build.txt pip install -v -e .

最后,如果安裝過程是正常的,上述任何步驟不會有任何的報錯,然后通過運行下面的Python腳本(在項目根目錄看下新建輸入如下內容并允許即可)來測試mmdetection的安裝是否正確,在運行之前首先需要運行下面的命令下載預訓練模型。

mkdir checkpoints cd checkpoints/ wget http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth cd - from mmdet.apis import init_detector, inference_detector, show_result_pyplotconfig_file = 'configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py' checkpoint_file = 'checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth' device = 'cuda:0' # init a detector model = init_detector(config_file, checkpoint_file, device=device) # inference the demo image rst = inference_detector(model, 'demo/demo.jpg') show_result_pyplot(model, 'demo/demo.jpg', rst)

上面的Python腳本執行可能會出現一些警告,主要是新版本API的調整,不影響最后程序通過Matplotlib可視化如下的Demo圖像檢測結果,如果輸出的確實是類似這樣的檢測結果圖片,那代表至此的安裝沒什么大問題,基本成功了。

設計架構

MMDetection將檢測分割等任務的Pipeline抽象成了三個大部件,分別是數據集(包括Dataset和Pipeline)、模型(包括Model)和運行時(包括Schedule和Runtime),后文會一一展開這些部件的詳細內容,這里只是大體說明一下。其中數據集部分對應了標注和圖像的數據處理,模型則通過堆疊backbone、neck、head等決定數據的流動和運算,運行時則控制訓練和推理過程中的操作并制定整體的訓練流程。

那么,在MMDetection中是什么控制整個Pipeline的設計呢?其實就是整個open-mmlab設計的框架都存在的配置文件,它們一般在根目錄的configs目錄中,已經包含了一些MMDetection官方復現的檢測方法的配置文件,如Faster R-CNN。正是配置文件負責全局控制,因此官方文檔教程上第一個步驟就是介紹配置文件相關內容,本系列也將按照這個思路展開。

其實仔細觀察最基本的Faster R-CNN模型的配置文件,內容是如下的,這是因為MMDetection的配置文件有一個繼承機制,該檢測器的模型配置(ResNet50+FPN)、數據集配置(COCO檢測數據集)、運行時配置(單倍計劃和默認運行時)均繼承自_base_中的內容,該文件夾是MMDetection中最基礎的配置。

_base_ = ['../_base_/models/faster_rcnn_r50_fpn.py','../_base_/datasets/coco_detection.py','../_base_/schedules/schedule_1x.py', '../_base_/default_runtime.py' ]

配置文件的具體講解我會在本專欄的第二篇文章詳細講解,包括命名原則、繼承機制、書寫規則等,這里只是簡單介紹一下。

Benchmark

目前MMDetection官方實現的backbone和detector如下圖,官方復現基本上能達到論文精度,并且推理速度和Detectron2相比也不遑多讓。

總結

MMDetection由于其高度封裝的機制,非常適合于科研、工程項目和競賽,是目標檢測領域最受歡迎的工具箱之一,因此學習該框架是研究目標檢測相當不錯的選擇,該框架官方教程也是很詳盡的。最后,如果我的文章對你有所幫助,歡迎點贊收藏評論一鍵三連,你的支持是我不懈創作的動力。

總結

以上是生活随笔為你收集整理的MMDetection-简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。