中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

PyTorch版YOLOv4是否適用于自定義數據集

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

這期內容當中小編將會給大家帶來有關PyTorch版YOLOv4是否適用于自定義數據集,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

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

PyTorch版YOLOv4是否適用于自定義數據集

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

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

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

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

attentive YOLOv4

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

PyTorch版YOLOv4是否適用于自定義數據集

SEnet (CVPR 2017)

PyTorch版YOLOv4是否適用于自定義數據集

CBAM (CVPR 2018)

mobilenet YOLOv4

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

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

PyTorch版YOLOv4是否適用于自定義數據集

現在我們來看該項目的詳細內容和要求。

環境要求

Nvida GeForce RTX 2080TI

CUDA10.0

CUDNN7.0

windows 或 linux 系統

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)以及所創建 conda 環境的名稱(此處為 YOLOv4-PyTorch)。

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

準備工作

1. git 復制 YOLOv4 庫

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

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

2. 數據集準備

該項目準備了 Pascal VOC 和 MSCOCO 2017 數據集。其中 PascalVOC 數據集包括 VOC 2012_trainval、VOC 2007_trainval 和 VOC2007_test,MSCOCO 2017 數據集包括 train2017_img、train2017_ann、val2017_img、val2017_ann、test2017_img、test2017_list。

PascalVOC 數據集下載命令:

MSCOCO 2017 數據集下載命令:

在數據集下載好后,需要進行以下操作:

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

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

轉換數據格式:使用 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)在根目錄下創建 weight 文件夾,將下載好的權重文件放到 weight / 目錄下。

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

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

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

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

3)轉換數據格式:使用 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是否適用于自定義數據集

評估(Pascal VOC 數據集)

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

PyTorch版YOLOv4是否適用于自定義數據集

評估(COCO 數據集)

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

可視化熱圖

在 val_voc.py 中設置 showatt=Ture,網絡即可輸出熱圖。

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

PyTorch版YOLOv4是否適用于自定義數據集

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

向AI問一下細節

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

AI

江门市| 西贡区| 梁河县| 凤庆县| 莲花县| 综艺| 兴安盟| 泗洪县| 洛阳市| 宁化县| 金乡县| 独山县| 罗源县| 安顺市| 天长市| 胶州市| 衡水市| 益阳市| 秦皇岛市| 嘉鱼县| 治多县| 沁水县| 溆浦县| 壶关县| 榆树市| 浏阳市| 古丈县| 保康县| 上思县| 盐亭县| 镇平县| 光山县| 额尔古纳市| 成安县| 朝阳区| 泽州县| 扎囊县| 夹江县| 偏关县| 榆林市| 全椒县|