mmdetection使用目标检测工具箱训练,测试
向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)????????????
人工智能大數(shù)據(jù)與深度學(xué)習(xí) ?公眾號(hào):datayx
香港中文大學(xué)-商湯科技聯(lián)合實(shí)驗(yàn)室開(kāi)源了基于 PyTorch 的檢測(cè)庫(kù)——mmdetection。商湯科技和港中大組成的團(tuán)隊(duì)在 2018年的COCO 比賽的物體檢測(cè)(Detection)項(xiàng)目中奪得冠軍,而 mmdetection 正是基于 COCO 比賽時(shí)的 codebase 重構(gòu)。
https://github.com/open-mmlab/mmdetection
這個(gè)開(kāi)源庫(kù)提供了已公開(kāi)發(fā)表的多種視覺(jué)檢測(cè)核心模塊。通過(guò)這些模塊的組合,可以迅速搭建出各種著名的檢測(cè)框架,比如 Faster RCNN,Mask RCNN,R-FCN,RetinaNet , Cascade R-CNN及ssd 等,以及各種新型框架,從而大大加快檢測(cè)技術(shù)研究的效率。
?
相比 FAIR 此前開(kāi)源的 Detectron,mmdetection 有以下幾大優(yōu)勢(shì):
??? Performance 稍高
??? 訓(xùn)練速度稍快:Mask R-CNN 差距比較大,其余的很小。
??? 所需顯存稍小: 顯存方面優(yōu)勢(shì)比較明顯,會(huì)小 30% 左右。
??? 易用性更好: 基于 PyTorch 和基于 Caffe2 的 code 相比,易用性是有代差的。
與 mmdetection 一起開(kāi)源的還有一個(gè)基礎(chǔ)庫(kù)——mmcv。mmcv 基礎(chǔ)庫(kù)主要分為兩個(gè)部分:一部分是和 deep learning framework 無(wú)關(guān)的一些工具函數(shù),比如 IO/Image/Video 相關(guān)的一些操作;另一部分是為 PyTorch 寫(xiě)的一套訓(xùn)練工具,可以大大減少用戶(hù)需要寫(xiě)的代碼量,同時(shí)讓整個(gè)流程的定制變得容易。項(xiàng)目倉(cāng)庫(kù)地址為:https://github.com/open-mmlab/mmcv
建議也把mmcv倉(cāng)庫(kù)下載到本地,方便后面debug的時(shí)候查看源碼。
1. 安裝文檔—手把手教你如何搭建MMDetection框架
https://zhuanlan.zhihu.com/p/101202864
2. 入門(mén)文檔—教你如何快速上手MMDetection
https://zhuanlan.zhihu.com/p/101212969
3. 基準(zhǔn)和模型匯總—展示MMDetection上各個(gè)模型的準(zhǔn)確率和使用方法
https://zhuanlan.zhihu.com/p/101216931
4. 技術(shù)細(xì)節(jié)—手把手教你如何實(shí)現(xiàn)一個(gè)新的網(wǎng)絡(luò)
https://zhuanlan.zhihu.com/p/101222759
mmdetection的configs中的各項(xiàng)參數(shù)具體解釋
https://zhuanlan.zhihu.com/p/102072353
目標(biāo)檢測(cè)比賽中的tricks(已更新更多代碼解析)
https://zhuanlan.zhihu.com/p/102817180
環(huán)境安裝
1、安裝教程
最好按照官方倉(cāng)庫(kù)的安裝說(shuō)明進(jìn)行,很多博客里面的安裝方法都或多或少有點(diǎn)小問(wèn)題,可能是官方倉(cāng)庫(kù)一直在更新但是博客沒(méi)有更新的緣故。官方安裝說(shuō)明地址:https://github.com/open-mmlab/mmdetection/blob/master/INSTALL.md
簡(jiǎn)單來(lái)說(shuō),該倉(cāng)庫(kù)目前只支持在linux系統(tǒng)上運(yùn)行,不支持window;PyTorch的版本要求為:PyTorch 1.0+ or PyTorch-nightly,且要根據(jù)其官網(wǎng)的安裝命令安裝,避免版本沖突問(wèn)題。
2、運(yùn)行demo測(cè)試環(huán)境是否安裝成功
因?yàn)椴┲髦笆褂脛e的博客的demo代碼的時(shí)候出現(xiàn)錯(cuò)誤,找了半天不知道是什么原因,而當(dāng)我好好看官方說(shuō)明的時(shí)候才知道這個(gè)代碼在說(shuō)明中有,而且已經(jīng)更新過(guò),所以為了保險(xiǎn)期間,這里就不直接貼出代碼了,給地址你們自己去看。
測(cè)試的demo代碼地址為:https://github.com/open-mmlab/mmdetection/blob/master/GETTING_STARTED.md#high-level-apis-for-testing-images 。將代碼寫(xiě)入py文件,并存放到mmdetection文件夾目錄下,然后運(yùn)行。但是運(yùn)行官方代碼的前提是你已經(jīng)下載了相關(guān)模型的checkpoint的pth文件,并放在mmdetection文件夾目錄下的checkpoints文件夾下。官方提供的所有訓(xùn)練好的pth模型文件下載地址都在MODEL_ZOO.md中。另外隨便照一張圖片重命名為test.jpg放到mmdetection目錄下就可以了。
三、訓(xùn)練自定義的dataset
相信大家用這個(gè)mmdetection都不只是為了嘗嘗鮮試一下的吧,所以這里分享下我訓(xùn)練自定義的數(shù)據(jù)集的過(guò)程記錄。
先給大家看一下我的整個(gè)mmdetection文件夾的內(nèi)容。
1、準(zhǔn)備dataset
需要說(shuō)明的是官方提供的所有代碼都默認(rèn)使用的是coco格式的數(shù)據(jù)集,所以不想太折騰的話(huà)就把自己的數(shù)據(jù)集轉(zhuǎn)化成coco數(shù)據(jù)集格式吧。各種類(lèi)型數(shù)據(jù)轉(zhuǎn)coco格式腳本見(jiàn):轉(zhuǎn)換工具箱 。我使用的是其中的labelme2coco.py文件,親測(cè)沒(méi)有問(wèn)題。
制作好數(shù)據(jù)集之后,官方推薦coco數(shù)據(jù)集按照以下的目錄形式存儲(chǔ):
其中,$COCO_ROOT需改為你的coco數(shù)據(jù)集根目錄
2、Training前修改相關(guān)文件
首先說(shuō)明的是我的數(shù)據(jù)集類(lèi)別一共有4個(gè),分別是:‘Glass_Insulator’, ‘Composite_Insulator’, ‘Clamp’, ‘Drainage_Plate’。且我跑的模型是’configs/faster_rcnn_r50_fpn_1x.py’。
官方提供的代碼中都使用的是coco數(shù)據(jù)集,雖然我們自定義的數(shù)據(jù)集也已經(jīng)轉(zhuǎn)換成coco標(biāo)準(zhǔn)格式了,但是像class_name和class_num這些參數(shù)是需要修改的,不然跑出來(lái)的模型就不會(huì)是你想要的。
一些博客例如這個(gè),所提供的方法是按照官方給的定義coco數(shù)據(jù)集的相關(guān)文件,新建文件重新定義自己的數(shù)據(jù)集和類(lèi)等,但是其實(shí)這是有風(fēng)險(xiǎn)的,我之前按照他們的方法走到最后發(fā)現(xiàn)會(huì)出現(xiàn)錯(cuò)誤,所以最簡(jiǎn)單便捷且保險(xiǎn)的方法是直接修改coco數(shù)據(jù)集定義文件(官方也是這樣建議的)。
1、定義數(shù)據(jù)種類(lèi),需要修改的地方在mmdetection/mmdet/datasets/coco.py。把CLASSES的那個(gè)tuple改為自己數(shù)據(jù)集對(duì)應(yīng)的種類(lèi)tuple即可。例如:
4、在mmdetection的目錄下新建work_dirs文件夾
3、Training
展示下開(kāi)始訓(xùn)練的界面:
在這里插入圖片描述
訓(xùn)練完之后work_dirs文件夾中會(huì)保存下訓(xùn)練過(guò)程中的log日志文件、每個(gè)epoch的pth文件(這個(gè)文件將會(huì)用于后面的test測(cè)試)
四、Testing
有兩個(gè)方法可以進(jìn)行測(cè)試。
1、如果只是想看一下效果而不要進(jìn)行定量指標(biāo)分析的話(huà),可以運(yùn)行之前那個(gè)demo.py文件,但是要改一下checkpoint_file的地址路徑,使用我們上一步跑出來(lái)的work_dirs下的pth文件。例如:
但是使用這個(gè)測(cè)試命令的時(shí)候會(huì)報(bào)錯(cuò),報(bào)錯(cuò)的情況我也在官方庫(kù)的issue上提交了,可以查看我的error描述,看看與你的是否一致。
根據(jù)我的問(wèn)題描述可以知道使用demo.py來(lái)測(cè)試是可以出結(jié)果的,但是會(huì)出現(xiàn)”warnings.warn('Class names are not saved in the checkpoint’s ’ "的警告信息。使用這一步的test命令的時(shí)候會(huì)報(bào)錯(cuò),程序中斷,但是其實(shí)問(wèn)題是一致的,應(yīng)該是訓(xùn)練中保存下來(lái)的pth文件中沒(méi)有CLASSES信息,所以show不了圖片結(jié)果。因此需要按照下面的步驟修改下官方代碼才可以。
(1) 修改mmdetection/mmdet/tools/test.py中的第29行為:
此處的格式化輸出稱(chēng)為檢測(cè)評(píng)價(jià)矩陣(detection evaluation metrics)。此處摘錄COCO數(shù)據(jù)集文檔中對(duì)該評(píng)價(jià)矩陣的簡(jiǎn)要說(shuō)明:
閱讀過(guò)本文的人還看了以下文章:
TensorFlow 2.0深度學(xué)習(xí)案例實(shí)戰(zhàn)
基于40萬(wàn)表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測(cè)
《基于深度學(xué)習(xí)的自然語(yǔ)言處理》中/英PDF
Deep Learning 中文版初版-周志華團(tuán)隊(duì)
【全套視頻課】最全的目標(biāo)檢測(cè)算法系列講解,通俗易懂!
《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf
《深度學(xué)習(xí)入門(mén):基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼
特征提取與圖像處理(第二版).pdf
python就業(yè)班學(xué)習(xí)視頻,從入門(mén)到實(shí)戰(zhàn)項(xiàng)目
2019最新《PyTorch自然語(yǔ)言處理》英、中文版PDF+源碼
《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書(shū)代碼
《深度學(xué)習(xí)之pytorch》pdf+附書(shū)源碼
PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門(mén)《pytorch-handbook》
【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼
汽車(chē)行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)
李沐大神開(kāi)源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!
《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼
將機(jī)器學(xué)習(xí)模型部署為REST API
FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享
重要開(kāi)源!CNN-RNN-CTC 實(shí)現(xiàn)手寫(xiě)漢字識(shí)別
yolo3 檢測(cè)出圖像中的不規(guī)則漢字
同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過(guò)不了?
前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測(cè)
【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類(lèi)、‘票據(jù)’分類(lèi)兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類(lèi)
VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類(lèi)工程項(xiàng)目
特征工程(一)
特征工程(二) :文本數(shù)據(jù)的展開(kāi)、過(guò)濾和分塊
特征工程(三):特征縮放,從詞袋到 TF-IDF
特征工程(四): 類(lèi)別特征
特征工程(五): PCA 降維
特征工程(六): 非線(xiàn)性特征提取和模型堆疊
特征工程(七):圖像特征提取和深度學(xué)習(xí)
如何利用全新的決策樹(shù)集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
螞蟻金服2018秋招-算法工程師(共四面)通過(guò)
全球AI挑戰(zhàn)-場(chǎng)景分類(lèi)的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線(xiàn)識(shí)別手寫(xiě)中文網(wǎng)站
中科院Kaggle全球文本匹配競(jìng)賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
?搜索公眾號(hào)添加:?datayx??
機(jī)大數(shù)據(jù)技術(shù)與機(jī)器學(xué)習(xí)工程
?搜索公眾號(hào)添加:?datanlp
長(zhǎng)按圖片,識(shí)別二維碼
總結(jié)
以上是生活随笔為你收集整理的mmdetection使用目标检测工具箱训练,测试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 梦三国服务器维护多久,《梦三国2》天命地
- 下一篇: 3D游戏建模学习有哪些书?自学难不难?能