PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

公司主營業(yè)務(wù):做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出鹿泉免費(fèi)做網(wǎng)站回饋大家。

距離YOLO v4 的推出,已經(jīng)過去 5 個(gè)多月。YOLO 框架采用 C 語言作為底層代碼,這對于慣用 Python 的研究者來說,實(shí)在是有點(diǎn)不友好。因此網(wǎng)上出現(xiàn)了很多基于各種深度學(xué)習(xí)框架的 YOLO 復(fù)現(xiàn)版本。近日,就有研究者在 GitHub 上更新了基于 PyTorch 的 YOLOv4。

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

從今年 4 月 YOLOv4 發(fā)布后,對于這個(gè)目標(biāo)檢測框架,問的最多的問題或許就是:「有沒有同學(xué)復(fù)現(xiàn) YOLOv4 的, 可以交流一下么」。由于原版 YOLO 使用 C 語言進(jìn)行編程,光憑這一點(diǎn)就讓不少同學(xué)望而卻步。網(wǎng)上有很多基于 TF/Keras 和 Caffe 等的復(fù)現(xiàn)版本,但不少項(xiàng)目只給了代碼,并沒有給出模型在 COCO、PASCAL VOC 數(shù)據(jù)集上的訓(xùn)練結(jié)果。

近日,有研究者在 GitHub 上開源了一個(gè)項(xiàng)目:基于 PyTorch 深度學(xué)習(xí)框架的 YOLOv4 復(fù)現(xiàn)版本,該版本基于 YOLOv4 作者給出的實(shí)現(xiàn) AlexeyAB/darknet,并在 PASCAL VOC、COCO 和自定義數(shù)據(jù)集上運(yùn)行。

項(xiàng)目地址:https://github.com/argusswift/YOLOv4-PyTorch

除此以外,該項(xiàng)目還向主干網(wǎng)絡(luò)添加了一些有用的注意力方法,并實(shí)現(xiàn)了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4。

attentive YOLOv4

該項(xiàng)目向主干網(wǎng)絡(luò)添加了一些注意力方法,如 SEnet、CBAM。

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

SEnet (CVPR 2017)

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

CBAM (CVPR 2018)

mobilenet YOLOv4

該研究還實(shí)現(xiàn)了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4(只需更改 config/yolov4_config.py 中的 MODEL_TYPE 即可)。

下表展示了 mobilenetv2-YOLOV4 的性能結(jié)果:

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

現(xiàn)在我們來看該項(xiàng)目的詳細(xì)內(nèi)容和要求。

環(huán)境要求

Nvida GeForce RTX 2080TI

CUDA10.0

CUDNN7.0

windows 或 linux 系統(tǒng)

python 3.6

特性

DO-Conv (https://arxiv.org/abs/2006.12030) (torch>=1.2)

Attention

fp_16 training

Mish

Custom data

Data Augment (RandomHorizontalFlip, RandomCrop, RandomAffine, Resize)

Multi-scale Training (320 to 640)

focal loss

CIOU

Label smooth

Mixup

cosine lr

安裝依賴項(xiàng)

運(yùn)行腳本安裝依賴項(xiàng)。你需要提供 conda 安裝路徑(例如 ~/anaconda3)以及所創(chuàng)建 conda 環(huán)境的名稱(此處為 YOLOv4-PyTorch)。

需要注意的是:安裝腳本已在 Ubuntu 18.04 和 Window 10 系統(tǒng)上進(jìn)行過測試。如果出現(xiàn)問題,請查看詳細(xì)的安裝說明:https://github.com/argusswift/YOLOv4-PyTorch/blob/master/INSTALL.md。

準(zhǔn)備工作

1. git 復(fù)制 YOLOv4 庫

準(zhǔn)備工作的第一步是復(fù)制 YOLOv4。

然后更新配置文件「config/yolov4_config.py」中「PROJECT_PATH」。

2. 數(shù)據(jù)集準(zhǔn)備

該項(xiàng)目準(zhǔn)備了 Pascal VOC 和 MSCOCO 2017 數(shù)據(jù)集。其中 PascalVOC 數(shù)據(jù)集包括 VOC 2012_trainval、VOC 2007_trainval 和 VOC2007_test,MSCOCO 2017 數(shù)據(jù)集包括 train2017_img、train2017_ann、val2017_img、val2017_ann、test2017_img、test2017_list。

PascalVOC 數(shù)據(jù)集下載命令:

MSCOCO 2017 數(shù)據(jù)集下載命令:

在數(shù)據(jù)集下載好后,需要進(jìn)行以下操作:

將數(shù)據(jù)集放入目錄,更新 config/yolov4_config.py 中的 DATA_PATH 參數(shù)。

(對于 COCO 數(shù)據(jù)集)使用 coco_to_voc.py 將 COCO 數(shù)據(jù)類型轉(zhuǎn)換為 VOC 數(shù)據(jù)類型。

轉(zhuǎn)換數(shù)據(jù)格式:使用 utils/voc.py 或 utils/coco.py 將 pascal voc *.xml 格式(或 COCO *.json 格式)轉(zhuǎn)換為 *.txt 格式(Image_path xmin0,ymin0,xmax0,ymax0,class0 xmin1,ymin1,xmax1,ymax1,class1 ...)。

3. 下載權(quán)重文件

1)darknet 預(yù)訓(xùn)練權(quán)重:yolov4(https://drive.google.com/file/d/1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT/view)。

2)Mobilenet 預(yù)訓(xùn)練權(quán)重:

mobilenetv2:(https://pan.baidu.com/share/init?surl=sjixK2L9L0YgQnvfDuVTJQ,提取碼:args);

mobilenetv3:(https://pan.baidu.com/share/init?surl=75wKejULuM0ZD05b9iSftg,提取碼:args)。

3)在根目錄下創(chuàng)建 weight 文件夾,將下載好的權(quán)重文件放到 weight / 目錄下。

4)訓(xùn)練時(shí)在 config/yolov4_config.py 中設(shè)置 MODEL_TYPE。

4. 轉(zhuǎn)換成自定義數(shù)據(jù)集(基于自定義數(shù)據(jù)集進(jìn)行訓(xùn)練)

1)將自定義數(shù)據(jù)集的圖片放入 JPEGImages 文件夾,將注釋文件放入 Annotations 文件夾。

2)使用 xml_to_txt.py 文件將訓(xùn)練和測試文件列表寫入 ImageSets/Main/*.txt。

3)轉(zhuǎn)換數(shù)據(jù)格式:使用 utils/voc.py 或 utils/coco.py 將 pascal voc *.xml 格式(或 COCO *.json 格式)轉(zhuǎn)換為 *.txt 格式(Image_path xmin0,ymin0,xmax0,ymax0,class0 xmin1,ymin1,xmax1,ymax1,class1 ...)。

訓(xùn)練

運(yùn)行以下命令開始訓(xùn)練,詳情參見 config / yolov4_config.py。訓(xùn)練時(shí)應(yīng)將 DATA_TYPE 設(shè)置為 VOC 或 COCO。

它還支持 resume 訓(xùn)練,添加 --resume,使用以下命令即可自動(dòng)加載 last.pt。

檢測

修改檢測圖像路徑:DATA_TEST=/path/to/your/test_data# your own images。

結(jié)果可以在 output / 中查看,如下所示:

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

評估(Pascal VOC 數(shù)據(jù)集)

修改評估數(shù)據(jù)集路徑:DATA_PATH=/path/to/your/test_data # your own images

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

評估(COCO 數(shù)據(jù)集)

修改評估數(shù)據(jù)集路徑:DATA_PATH=/path/to/your/test_data # your own images

可視化熱圖

在 val_voc.py 中設(shè)置 showatt=Ture,網(wǎng)絡(luò)即可輸出熱圖。

在 output / 中可以查看熱圖,如下所示:

PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集

上述就是小編為大家分享的PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文題目:PyTorch版YOLOv4是否適用于自定義數(shù)據(jù)集
URL網(wǎng)址:http://muchs.cn/article16/isjegg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、云服務(wù)器、關(guān)鍵詞優(yōu)化、定制開發(fā)網(wǎng)站內(nèi)鏈、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)