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

創(chuàng)新互聯(lián)建站專注于長(zhǎng)子網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供長(zhǎng)子營(yíng)銷型網(wǎng)站建設(shè),長(zhǎng)子網(wǎng)站制作、長(zhǎng)子網(wǎng)頁(yè)設(shè)計(jì)、長(zhǎng)子網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造長(zhǎng)子網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供長(zhǎng)子網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
[[344844]]
從今年 4 月 YOLOv4 發(fā)布后,對(duì)于這個(gè)目標(biāo)檢測(cè)框架,問(wèn)的最多的問(wèn)題或許就是:「有沒(méi)有同學(xué)復(fù)現(xiàn) YOLOv4 的, 可以交流一下么」。由于原版 YOLO 使用 C 語(yǔ)言進(jìn)行編程,光憑這一點(diǎn)就讓不少同學(xué)望而卻步。網(wǎng)上有很多基于 TF/Keras 和 Caffe 等的復(fù)現(xiàn)版本,但不少項(xiàng)目只給了代碼,并沒(méi)有給出模型在 COCO、PASCAL VOC 數(shù)據(jù)集上的訓(xùn)練結(jié)果。
近日,有研究者在 GitHub 上開(kāi)源了一個(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。
SEnet (CVPR 2017)
CBAM (CVPR 2018)
mobilenet YOLOv4
該研究還實(shí)現(xiàn)了 mobilenetv2-YOLOV4 和 mobilenetv3-YOLOV4(只需更改 config/yolov4_config.py 中的 MODEL_TYPE 即可)。
下表展示了 mobilenetv2-YOLOV4 的性能結(jié)果:
現(xiàn)在我們來(lái)看該項(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)行過(guò)測(cè)試。如果出現(xiàn)問(wèn)題,請(qǐng)查看詳細(xì)的安裝說(shuō)明:https://github.com/argusswift/YOLOv4-PyTorch/blob/master/INSTALL.md。
準(zhǔn)備工作
1. git 復(fù)制 YOLOv4 庫(kù)
準(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ù)。
(對(duì)于 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)練和測(cè)試文件列表寫(xiě)入 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)行以下命令開(kāi)始訓(xùn)練,詳情參見(jiàn) config / yolov4_config.py。訓(xùn)練時(shí)應(yīng)將 DATA_TYPE 設(shè)置為 VOC 或 COCO。
它還支持 resume 訓(xùn)練,添加 --resume,使用以下命令即可自動(dòng)加載 last.pt。
檢測(cè)
修改檢測(cè)圖像路徑:DATA_TEST=/path/to/your/test_data# your own images。
結(jié)果可以在 output / 中查看,如下所示:
評(píng)估(Pascal VOC 數(shù)據(jù)集)
修改評(píng)估數(shù)據(jù)集路徑:DATA_PATH=/path/to/your/test_data # your own images
評(píng)估(COCO 數(shù)據(jù)集)
修改評(píng)估數(shù)據(jù)集路徑:DATA_PATH=/path/to/your/test_data # your own images
可視化熱圖
在 val_voc.py 中設(shè)置 showatt=Ture,網(wǎng)絡(luò)即可輸出熱圖。
在 output / 中可以查看熱圖,如下所示:
當(dāng)前題目:PyTorch版YOLOv4更新了,適用于自定義數(shù)據(jù)集
新聞來(lái)源:http://www.dlmjj.cn/article/dpcedpe.html


咨詢
建站咨詢
