溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發(fā)布時間:2021-09-17 09:19:17 來源:億速云 閱讀:173 作者:柒染 欄目:web開發(fā)

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

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

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

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

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

項目地址:https://github.com/argusswift/YOLOv4-PyTorch

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

attentive YOLOv4

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

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

SEnet (CVPR 2017)

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

CBAM (CVPR 2018)

mobilenet YOLOv4

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

下表展示了 mobilenetv2-YOLOV4 的性能結果:

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

現(xiàn)在我們來看該項目的詳細內(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

安裝依賴項

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

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

準備工作

1. git 復制 YOLOv4 庫

準備工作的第一步是復制 YOLOv4。

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

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

該項目準備了 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ù)集下載好后,需要進行以下操作:

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

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

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

3. 下載權重文件

1)darknet 預訓練權重:yolov4(https://drive.google.com/file/d/1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT/view)。

2)Mobilenet 預訓練權重:

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

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

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

4)訓練時在 config/yolov4_config.py 中設置 MODEL_TYPE。

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

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

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

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

訓練

運行以下命令開始訓練,詳情參見 config / yolov4_config.py。訓練時應將 DATA_TYPE 設置為 VOC 或 COCO。

它還支持 resume 訓練,添加 --resume,使用以下命令即可自動加載 last.pt。

檢測

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

結果可以在 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 中設置 showatt=Ture,網(wǎng)絡即可輸出熱圖。

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

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

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

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI