coco格式的数据集进行训练
? ?? 前幾篇博客一直在使用網上別人寫好的代碼,按照航拍數據打標的.json,.mask,.yaml,原圖片,四個文件來制作數據集(我認為是自定義格式的數據集),最近跟一個熱心的網友交流(超級感謝他)決定改為coco格式來訓練。https://blog.csdn.net/heiheiya/article/details/82143967(別人的coco格式數據訓練博客)此種數據格式訓練不需要自動提出mask,mask會根據label標記的多邊形自動生成instance,故該種模式只需要原圖片文件,整合的.json文件。
(1)首先準備數據集(包含1整合的train.json/val.json,2train的原圖片,3val的原圖片)如下圖1:
annotations文件夾下包含:
(2)修改coco.py代碼。
A.因為我識別的只有一類building,所以將NUM_CLASSES改為1+1(背景為一類).
B.如果不修改為1+1,就不需要改預訓練模型代碼,因為預訓練模型代碼里關于mrcnn的所有shape都是81維的,如果修改了,則加載權重代碼需要換下。否則會報錯提示shape不一致,像shape,ballon等都是按照后面的方式加載的權重數據。
C.紅框內的代碼注釋掉,因為本來傳來的就是默認2014,下邊val_type="minival"即可。
就是按下邊這個規則能加載到數集。
D.先注釋掉下邊代碼,只訓練heads,看下結果。
?
(3)以上所有修改完成后,進入代碼運行,需要安裝cocopytools這個,我用的是pip安裝,在安裝過程中遇到缺少模塊就pip安裝即可。有一個問題的界面如下,版本不兼容。
首先本人用的是服務器跑代碼,利用命令行進入到coco.py所在的目錄下,執行下面語句即可。
即可進入訓練:
下邊圖片是看一下2.1版本里邊的的resize_image函數:
總結
以上是生活随笔為你收集整理的coco格式的数据集进行训练的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决Mask RCNN训练时GPU内存溢
- 下一篇: python基础知识整理 第一节:入门