YOLOX——Win10下训练自定义VOC数据集
前言
上個(gè)博客試著把yolox在win下的環(huán)境配置,然后就要試著訓(xùn)練自己的數(shù)據(jù)集,我這里用的是VOC格式的數(shù)據(jù)集,訓(xùn)練環(huán)境是win10 x64,CUDA11.0 cudnn 8.1 GPU 是GTX 3080,Anaconda 3.7,數(shù)據(jù)標(biāo)注工具是LabelImg。
數(shù)據(jù)準(zhǔn)備
1.在XXX/YOLOX/datasets/下創(chuàng)建一個(gè)VOCdevkit目錄,在VOCdevkit下VOC2007目錄,VOC2007目錄下再創(chuàng)建三個(gè)空目錄,分別是Annotations、ImageSets、JPEGImages,此時(shí)VOC2007目錄下只有三個(gè)空的目錄。
2.把要訓(xùn)練的圖像放到JPEGImags目錄下,如果有標(biāo)注過的數(shù)據(jù)就把對(duì)應(yīng)的xml文件放到Annotations目錄,要從頭標(biāo)注則打開LabelImg,選擇數(shù)據(jù)集路徑(JPEGImags),選擇保存標(biāo)簽文件路徑(Annotations),開始標(biāo)注。
3.把所有數(shù)據(jù)標(biāo)注完成之后,在ImageSets目錄下創(chuàng)建一個(gè)Main的目錄,這個(gè)目錄是用來保存數(shù)據(jù)配置文件的。
4.處理數(shù)據(jù),把數(shù)據(jù)分成訓(xùn)練集和測試集,并生成對(duì)應(yīng)的txt文件,處理數(shù)據(jù)python代碼:
CreateVOCData.py
import os import randomtrainval_percent = 0.1 train_percent = 0.9 data_root_path = 'D:/DL/YOLOX/datasets/VOCdevkit/VOC2007/'total_xml = os.listdir(os.path.join(data_root_path,"Annotations"))label_num = len(total_xml) list = range(label_num) tv = int(label_num * trainval_percent) tr = int(tv * train_percent) trainval = random.sample(list, tv) train = random.sample(trainval, tr)train_file = open(os.path.join(data_root_path,"ImageSets/Main/train.txt"), 'w') val_file = open(os.path.join(data_root_path,"ImageSets/Main/val.txt"), 'w')for i in list:name = total_xml[i][:-4] + '\n'if i in trainval:val_file.write(name)else:train_file.write(name)train_file.close() val_file.close()運(yùn)行之后,在XXX/YOLOX/datasets/VOCdevkit/VOC2007/ImageSets/Main下有兩個(gè)txt文件,這個(gè)就是訓(xùn)練集和驗(yàn)證集的目錄標(biāo)簽。
訓(xùn)練
1.打開YOLOX\exps\example\yolox_voc\yolo_voc_s.py,把訓(xùn)練集和測試集路徑改成自己的路徑,在win下建議寫絕對(duì)路徑。
訓(xùn)練數(shù)據(jù)路徑:
驗(yàn)證數(shù)據(jù)路徑:
更改標(biāo)簽類數(shù):
2.打開YOLOX/yolox/data/datasets/voc_classes.py
3.開始訓(xùn)練,我訓(xùn)練的是yolox_s的模型,從yolox官網(wǎng)下載yolox_s的權(quán)重放到Y(jié)OLOX目錄下,然后激活環(huán)境,開始訓(xùn)練。
-d 使用多少張顯卡訓(xùn)練
-b 批次大小
-fp16 是否開啟半精度訓(xùn)練
-c 權(quán)重文件
如果出現(xiàn)這個(gè)代表已在開始,但也別高興得太早,到10 epoch 之后開始驗(yàn)證,有可能報(bào)FileNotFoundError: [Errno 2] No such file or directory: ‘xxxxx.xml’ 這個(gè)錯(cuò),然后打開val.txt文件,這xxx.xml文件是驗(yàn)證集的第一個(gè)文件,這是讀不到目錄引起的,更改YOLOX\yolox\evaluators\voc_eval.py文件。
重新訓(xùn)練就可以了。
總結(jié)
以上是生活随笔為你收集整理的YOLOX——Win10下训练自定义VOC数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: YOLOX——Windows 10下环境
- 下一篇: C++ STL容器——序列式容器(arr