<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PyTorch版YOLOv4更新了,不僅適用于自定義數(shù)據(jù)集,還集成了注意力和MobileNet

          共 6050字,需瀏覽 13分鐘

           ·

          2021-05-01 02:24

          轉(zhuǎn)載自 | 計(jì)算機(jī)視覺研究院

          編者薦語

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


          從今年4月YOLOv4發(fā)布后,對(duì)于這個(gè)目標(biāo)檢測(cè)框架,問的最多的問題或許就是:「有沒有同學(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。

          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)在我們來看該項(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)行過測(cè)試。如果出現(xiàn)問題,請(qǐng)查看詳細(xì)的安裝說明:
          https://github.com/argusswift/YOLOv4-PyTorch/blob/master/INSTALL.md
          準(zhǔn)備工作
          1. git 復(fù)制 YOLOv4 庫
          準(zhǔn)備工作的第一步是復(fù)制YOLOv4。
          git clone github.com/argusswift/YOLOv4-PyTorch.git
          然后更新配置文件「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ù)集下載命令:
          # Download the data.cd $HOME/datawget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar# Extract the data.tar -xvf VOCtrainval_11-May-2012.tartar -xvf VOCtrainval_06-Nov-2007.tartar -xvf VOCtest_06-Nov-2007.tar

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

          #step1: download the following data and annotation   2017 Train images [118K/18GB]   2017 Val images [5K/1GB]   2017 Test images [41K/6GB]   2017 Train/Val annotations [241MB]   #step2: arrange the data to the following structure   COCO   ---train   ---test   ---val   ---annotations
          在數(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è)試文件列表寫入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。
          CUDA_VISIBLE_DEVICES=0 nohup python -u train.py  --weight_path weight/yolov4.weights --gpu_id 0 > nohup.log 2>&1 &
          它還支持resume訓(xùn)練,添加--resume,使用以下命令即可自動(dòng)加載last.pt。
          CUDA_VISIBLE_DEVICES=0 nohup python -u train.py  --weight_path weight/last.pt --gpu_id 0 > nohup.log 2>&1 &
          檢測(cè)
          修改檢測(cè)圖像路徑:DATA_TEST=/path/to/your/test_data# your own images。
          for VOC dataset:CUDA_VISIBLE_DEVICES=0 python3 eval_voc.py --weight_path weight/best.pt --gpu_id 0 --visiual $DATA_TEST --eval --mode detfor COCO dataset:CUDA_VISIBLE_DEVICES=0 python3 eval_coco.py --weight_path weight/best.pt --gpu_id 0 --visiual $DATA_TEST --eval --mode det

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

          評(píng)估(Pascal VOC 數(shù)據(jù)集)
          修改評(píng)估數(shù)據(jù)集路徑:DATA_PATH=/path/to/your/test_data # your own images
          for VOC dataset:CUDA_VISIBLE_DEVICES=0 python3 eval_voc.py --weight_path weight/best.pt --gpu_id 0 --visiual $DATA_TEST --eval -


          評(píng)估(COCO 數(shù)據(jù)集)
          修改評(píng)估數(shù)據(jù)集路徑:DATA_PATH=/path/to/your/test_data # your own images
          CUDA_VISIBLE_DEVICES=0 python3 eval_coco.py --weight_path weight/best.pt --gpu_id 0 --visiual $DATA_TEST --eval --mode val
          type=bboxRunning per image evaluation... DONE (t=0.34s).Accumulating evaluation results... DONE (t=0.08s). Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.438 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.607 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.469 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.253 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.486 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.567 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.342 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.571 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.632 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.458 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = 0.691 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = 0.790
          可視化熱圖
          在 val_voc.py 中設(shè)置 showatt=Ture,網(wǎng)絡(luò)即可輸出熱圖。
          for VOC dataset:CUDA_VISIBLE_DEVICES=0 python3 eval_voc.py --weight_path weight/best.pt --gpu_id 0 --visiual $DATA_TEST --evalfor COCO dataset:CUDA_VISIBLE_DEVICES=0 python3 eval_coco.py --weight_path weight/best.pt --gpu_id 0 --visiual $DATA_TEST --eval
          在 output / 中可以查看熱圖,如下所示:


          ?------------------------------------------------


          雙一流高校研究生團(tuán)隊(duì)創(chuàng)建 ↓

          專注于計(jì)算機(jī)視覺原創(chuàng)并分享相關(guān)知識(shí) ?

          聞道有先后,術(shù)業(yè)有專攻,如是而已 ╮(╯_╰)╭


          瀏覽 89
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  水蜜桃视频免费观看 | 亚洲男女激情 | 尤物精品 | 亚洲成人网站在线播放 | 全操欧女影视 |