0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于YOLOv7.0 版本的分類、檢測和分割

新機(jī)器視覺 ? 來源:集智書童 ? 作者:集智書童 ? 2022-08-22 10:31 ? 次閱讀

導(dǎo)讀 YOLOv5是目前Yolo系列應(yīng)用非常廣的算法,迭代了很多版本,目前已升級到V6.2版本,從原本訓(xùn)練目標(biāo)檢測,到也可訓(xùn)練分類模型,整個(gè)算法生態(tài)越來越完善,通過本文的梳理,希望對大家學(xué)習(xí)有幫助。

yolov5-6.2增加了分類訓(xùn)練、驗(yàn)證、預(yù)測和導(dǎo)出(所有 11 種格式),還提供了 ImageNet 預(yù)訓(xùn)練的 YOLOv5m-cls、ResNet(18、34、50、101) 和 EfficientNet (b0-b3) 模型。

此次發(fā)布的主要目標(biāo)是引入超級簡單的 YOLOv5 分類工作流程,就像現(xiàn)有的目標(biāo)檢測模型一樣。以下新的 v6.2 YOLOv5-cls 模型只是一個(gè)開始,作者將繼續(xù)與現(xiàn)有的檢測模型一起改進(jìn)這些模型。

下一個(gè)版本 v6.3 計(jì)劃于 9 月發(fā)布,將為 YOLOv5 帶來官方實(shí)例分割支持,今年晚些時(shí)候?qū)l(fā)布一個(gè)主要的 v7.0 版本,更新所有 3 個(gè)任務(wù)的架構(gòu)——分類、檢測和分割。

1、重要更新

分類模型:TensorFlow、Keras、TFLite、TF.js 模型導(dǎo)出現(xiàn)在使用python export.py --include saved_model pb tflite tfjs完全集成。

ClearML日志記錄:與開源實(shí)驗(yàn)跟蹤器 ClearML 集成。使用 pip install clearml 安裝將啟用集成并允許用戶跟蹤在 ClearML 中運(yùn)行的每個(gè)訓(xùn)練。這反過來又允許用戶跟蹤和比較運(yùn)行,甚至遠(yuǎn)程安排運(yùn)行。

Deci.ai優(yōu)化:一鍵自動編譯和量化 YOLOv5 以獲得更好的推理性能。

GPU導(dǎo)出基準(zhǔn):使用 python utils/benchmarks.py --weights yolov5s.pt --device 0 用于 GPU 基準(zhǔn)測試或 --device cpu 用于 CPU 基準(zhǔn)測試,對所有 YOLOv5 導(dǎo)出格式進(jìn)行基準(zhǔn)測試(mAP 和速度)。

訓(xùn)練可再現(xiàn)性:使用 torch>=1.12.0 的單 GPU YOLOv5 訓(xùn)練現(xiàn)在完全可再現(xiàn),并且可以使用新的 --seed 參數(shù)(默認(rèn)種子 = 0)。

Apple Metal Performance Shader (MPS) 支持:通過 --device mps 對 Apple M1/M2 設(shè)備的 MPS 支持(完整功能在 pytorch/pytorch#77764 中等待更新)。

2、分類模型與精度

使用 4×A100 在 ImageNet 上訓(xùn)練了 YOLOv5-cls 分類模型 90 個(gè) epoch,并且訓(xùn)練了 ResNet 和 EfficientNet 模型以及相同的默認(rèn)訓(xùn)練設(shè)置進(jìn)行比較。將所有模型導(dǎo)出到 ONNX FP32 進(jìn)行 CPU 速度測試,并將所有模型導(dǎo)出到 TensorRT FP16 進(jìn)行 GPU 速度測試。在 Google Colab Pro 上進(jìn)行了所有速度測試,以便輕松重現(xiàn)。

e3b52dee-205e-11ed-ba43-dac502259ad0.png ? e3c760ea-205e-11ed-ba43-dac502259ad0.png

3、使用

YOLOv5 分類訓(xùn)練支持使用 --data 參數(shù)自動下載 MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof 和 ImageNet 數(shù)據(jù)集。例如,要開始在 MNIST 上進(jìn)行訓(xùn)練,使用 --data mnist。

train

#Single-GPU
pythonclassify/train.py--modelyolov5s-cls.pt--datacifar100--epochs5--img224--batch128

#Multi-GPUDDP
python-mtorch.distributed.run--nproc_per_node4--master_port1classify/train.py--modelyolov5s-cls.pt--dataimagenet--epochs5--img224--device0,1,2,3

val

bashdata/scripts/get_imagenet.sh--val#downloadImageNetvalsplit(6.3G,50000images)
pythonclassify/val.py--weightsyolov5m-cls.pt--data../datasets/imagenet--img224#validate

test

pythonclassify/predict.py--weightsyolov5s-cls.pt--datadata/images/bus.jpg

4、構(gòu)建形式

分類模型的構(gòu)建依舊是YOLOv5的風(fēng)格,加入了分類的head,這里點(diǎn)贊,不怕沒有預(yù)訓(xùn)練權(quán)重了!

classClassificationModel(BaseModel):
#YOLOv5classificationmodel
def__init__(self,cfg=None,model=None,nc=1000,cutoff=10):#yaml,model,numberofclasses,cutoffindex
super().__init__()
self._from_detection_model(model,nc,cutoff)ifmodelisnotNoneelseself._from_yaml(cfg)

def_from_detection_model(self,model,nc=1000,cutoff=10):
#CreateaYOLOv5classificationmodelfromaYOLOv5detectionmodel
ifisinstance(model,DetectMultiBackend):
model=model.model#unwrapDetectMultiBackend
model.model=model.model[:cutoff]#backbone
m=model.model[-1]#lastlayer
ch=m.conv.in_channelsifhasattr(m,'conv')elsem.cv1.conv.in_channels#chintomodule
c=Classify(ch,nc)#Classify()
c.i,c.f,c.type=m.i,m.f,'models.common.Classify'#index,from,type
model.model[-1]=c#replace
self.model=model.model
self.stride=model.stride
self.save=[]
self.nc=nc

def_from_yaml(self,cfg):
#CreateaYOLOv5classificationmodelfroma*.yamlfile
self.model=None
審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3227

    瀏覽量

    42343
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3121

    瀏覽量

    48663
  • 跟蹤器
    +關(guān)注

    關(guān)注

    0

    文章

    130

    瀏覽量

    19999

原文標(biāo)題:?Yolov5-6.2版本更新,Yolov5也可訓(xùn)練分類模型,語義分割+實(shí)例分割即將發(fā)布!

文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    YOLOv8中的損失函數(shù)解析

    YOLO長期以來一直是目標(biāo)檢測任務(wù)的首選模型之一。它既快速又準(zhǔn)確。此外,其API簡潔易用。運(yùn)行訓(xùn)練或推斷作業(yè)所需的代碼行數(shù)有限。在2023年下半年,YOLOv8在框架中引入了姿態(tài)估計(jì)后,該框架現(xiàn)在支持最多四個(gè)任務(wù),包括分類、目標(biāo)
    的頭像 發(fā)表于 11-05 17:15 ?178次閱讀
    <b class='flag-5'>YOLOv</b>8中的損失函數(shù)解析

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測

    NPU。 應(yīng)用領(lǐng)域 圖像識別: NPU能夠迅速對圖像進(jìn)行分類、檢測分割等操作,大大提升了處理效率。 語音識別: NPU實(shí)現(xiàn)了實(shí)時(shí)語音轉(zhuǎn)換和語音合成功能,為語音交互提供了更自然的體驗(yàn)。 自然語言處理
    發(fā)表于 10-24 10:13

    手冊上新 |迅為RK3568開發(fā)板NPU例程測試

    PPOCR-Det語義分割 6.7 PPOCR-System 6.8 ppseg圖像分割 6.9 ppyoloe目標(biāo)檢測 6.10 resnet圖像分類 6.11 RetinaFac
    發(fā)表于 10-23 14:06

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測-迅為電子
    的頭像 發(fā)表于 08-23 14:58 ?558次閱讀
    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)<b class='flag-5'>Yolov</b>5<b class='flag-5'>分類</b><b class='flag-5'>檢測</b>-迅為電子

    RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測

    NPU。 應(yīng)用領(lǐng)域 圖像識別: NPU能夠迅速對圖像進(jìn)行分類、檢測分割等操作,大大提升了處理效率。 語音識別: NPU實(shí)現(xiàn)了實(shí)時(shí)語音轉(zhuǎn)換和語音合成功能,為語音交互提供了更自然的體驗(yàn)。 自然語言處理
    發(fā)表于 08-20 11:13

    基于迅為RK3588【RKNPU2項(xiàng)目實(shí)戰(zhàn)1】:YOLOV5實(shí)時(shí)目標(biāo)分類

    【RKNPU2項(xiàng)目實(shí)戰(zhàn)1】:YOLOV5實(shí)時(shí)目標(biāo)分類 https://www.bilibili.com/video/BV1ZN411D7V8/?spm_id_from=333.999.0.0
    發(fā)表于 08-15 10:51

    手冊上新 |迅為RK3568開發(fā)板NPU例程測試

    PPOCR-Det語義分割 6.7 PPOCR-System 6.8 ppseg圖像分割 6.9 ppyoloe目標(biāo)檢測 6.10 resnet圖像分類 6.11 RetinaFac
    發(fā)表于 08-12 11:03

    迅為RK3568手冊上新 | RK3568開發(fā)板NPU例程測試

    6.7 PPOCR-System 6.8 ppseg圖像分割 6.9 ppyoloe目標(biāo)檢測 6.10 resnet圖像分類 6.11 RetinaFace人臉檢測 6.12
    發(fā)表于 07-12 14:44

    OpenVINO? C# API部署YOLOv9目標(biāo)檢測和實(shí)例分割模型

    YOLOv9模型是YOLO系列實(shí)時(shí)目標(biāo)檢測算法中的最新版本,代表著該系列在準(zhǔn)確性、速度和效率方面的又一次重大飛躍。
    的頭像 發(fā)表于 04-03 17:35 ?703次閱讀
    OpenVINO? C# API部署<b class='flag-5'>YOLOv</b>9目標(biāo)<b class='flag-5'>檢測</b>和實(shí)例<b class='flag-5'>分割</b>模型

    OpenCV4.8 C++實(shí)現(xiàn)YOLOv8 OBB旋轉(zhuǎn)對象檢測

    YOLOv8框架在在支持分類、對象檢測、實(shí)例分割、姿態(tài)評估的基礎(chǔ)上更近一步,現(xiàn)已經(jīng)支持旋轉(zhuǎn)對象檢測(OBB),基于DOTA數(shù)據(jù)集,支持航拍圖
    的頭像 發(fā)表于 02-22 10:15 ?1436次閱讀
    OpenCV4.8 C++實(shí)現(xiàn)<b class='flag-5'>YOLOv</b>8 OBB旋轉(zhuǎn)對象<b class='flag-5'>檢測</b>

    YOLOv8實(shí)現(xiàn)旋轉(zhuǎn)對象檢測

    YOLOv8框架在在支持分類、對象檢測、實(shí)例分割、姿態(tài)評估的基礎(chǔ)上更近一步,現(xiàn)已經(jīng)支持旋轉(zhuǎn)對象檢測(OBB),基于DOTA數(shù)據(jù)集,支持航拍圖
    的頭像 發(fā)表于 01-11 10:43 ?1647次閱讀
    <b class='flag-5'>YOLOv</b>8實(shí)現(xiàn)旋轉(zhuǎn)對象<b class='flag-5'>檢測</b>

    深入淺出Yolov3和Yolov4

    Yolov3是目標(biāo)檢測Yolo系列非常非常經(jīng)典的算法,不過很多同學(xué)拿到Yolov3或者Yolov4的cfg文件時(shí),并不知道如何直觀的可視化查看網(wǎng)絡(luò)結(jié)構(gòu)。
    的頭像 發(fā)表于 01-11 10:42 ?727次閱讀
    深入淺出<b class='flag-5'>Yolov</b>3和<b class='flag-5'>Yolov</b>4

    在C++中使用OpenVINO工具包部署YOLOv5-Seg模型

    YOLOv5兼具速度和精度,工程化做的特別好,Git clone到本地即可在自己的數(shù)據(jù)集上實(shí)現(xiàn)目標(biāo)檢測任務(wù)的訓(xùn)練和推理,在產(chǎn)業(yè)界中應(yīng)用廣泛。開源社區(qū)對YOLOv5支持實(shí)例分割的呼聲高漲
    的頭像 發(fā)表于 12-21 10:17 ?2013次閱讀
    在C++中使用OpenVINO工具包部署<b class='flag-5'>YOLOv</b>5-Seg模型

    基于YOLOv8的自定義醫(yī)學(xué)圖像分割

    YOLOv8是一種令人驚嘆的分割模型;它易于訓(xùn)練、測試和部署。在本教程中,我們將學(xué)習(xí)如何在自定義數(shù)據(jù)集上使用YOLOv8。但在此之前,我想告訴你為什么在存在其他優(yōu)秀的分割模型時(shí)應(yīng)該使用
    的頭像 發(fā)表于 12-20 10:51 ?715次閱讀
    基于<b class='flag-5'>YOLOv</b>8的自定義醫(yī)學(xué)圖像<b class='flag-5'>分割</b>

    YOLOv5-v6.0學(xué)習(xí)筆記

    YOLOv5-6.0版本的Backbone主要分為Conv模塊、CSPDarkNet53和SPPF模塊。
    的頭像 發(fā)表于 11-23 16:23 ?1555次閱讀
    <b class='flag-5'>YOLOv</b>5-v6.0學(xué)習(xí)筆記