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