導(dǎo)讀 YOLOv5是目前Yolo系列應(yīng)用非常廣的算法,迭代了很多版本,目前已升級(jí)到V6.2版本,從原本訓(xùn)練目標(biāo)檢測(cè),到也可訓(xùn)練分類(lèi)模型,整個(gè)算法生態(tài)越來(lái)越完善,通過(guò)本文的梳理,希望對(duì)大家學(xué)習(xí)有幫助。
yolov5-6.2增加了分類(lèi)訓(xùn)練、驗(yàn)證、預(yù)測(cè)和導(dǎo)出(所有 11 種格式),還提供了 ImageNet 預(yù)訓(xùn)練的 YOLOv5m-cls、ResNet(18、34、50、101) 和 EfficientNet (b0-b3) 模型。
此次發(fā)布的主要目標(biāo)是引入超級(jí)簡(jiǎn)單的 YOLOv5 分類(lèi)工作流程,就像現(xiàn)有的目標(biāo)檢測(cè)模型一樣。以下新的 v6.2 YOLOv5-cls 模型只是一個(gè)開(kāi)始,作者將繼續(xù)與現(xiàn)有的檢測(cè)模型一起改進(jìn)這些模型。
下一個(gè)版本 v6.3 計(jì)劃于 9 月發(fā)布,將為 YOLOv5 帶來(lái)官方實(shí)例分割支持,今年晚些時(shí)候?qū)l(fā)布一個(gè)主要的 v7.0 版本,更新所有 3 個(gè)任務(wù)的架構(gòu)——分類(lèi)、檢測(cè)和分割。
1、重要更新
分類(lèi)模型:TensorFlow、Keras、TFLite、TF.js 模型導(dǎo)出現(xiàn)在使用python export.py --include saved_model pb tflite tfjs完全集成。
ClearML日志記錄:與開(kāi)源實(shí)驗(yàn)跟蹤器 ClearML 集成。使用 pip install clearml 安裝將啟用集成并允許用戶跟蹤在 ClearML 中運(yùn)行的每個(gè)訓(xùn)練。這反過(guò)來(lái)又允許用戶跟蹤和比較運(yùn)行,甚至遠(yuǎn)程安排運(yùn)行。
Deci.ai優(yōu)化:一鍵自動(dòng)編譯和量化 YOLOv5 以獲得更好的推理性能。
GPU導(dǎo)出基準(zhǔn):使用 python utils/benchmarks.py --weights yolov5s.pt --device 0 用于 GPU 基準(zhǔn)測(cè)試或 --device cpu 用于 CPU 基準(zhǔn)測(cè)試,對(duì)所有 YOLOv5 導(dǎo)出格式進(jìn)行基準(zhǔn)測(cè)試(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) 支持:通過(guò) --device mps 對(duì) Apple M1/M2 設(shè)備的 MPS 支持(完整功能在 pytorch/pytorch#77764 中等待更新)。
2、分類(lèi)模型與精度
使用 4×A100 在 ImageNet 上訓(xùn)練了 YOLOv5-cls 分類(lèi)模型 90 個(gè) epoch,并且訓(xùn)練了 ResNet 和 EfficientNet 模型以及相同的默認(rèn)訓(xùn)練設(shè)置進(jìn)行比較。將所有模型導(dǎo)出到 ONNX FP32 進(jìn)行 CPU 速度測(cè)試,并將所有模型導(dǎo)出到 TensorRT FP16 進(jìn)行 GPU 速度測(cè)試。在 Google Colab Pro 上進(jìn)行了所有速度測(cè)試,以便輕松重現(xiàn)。
?
3、使用
YOLOv5 分類(lèi)訓(xùn)練支持使用 --data 參數(shù)自動(dòng)下載 MNIST、Fashion-MNIST、CIFAR10、CIFAR100、Imagenette、Imagewoof 和 ImageNet 數(shù)據(jù)集。例如,要開(kāi)始在 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)建形式
分類(lèi)模型的構(gòu)建依舊是YOLOv5的風(fēng)格,加入了分類(lèi)的head,這里點(diǎn)贊,不怕沒(méi)有預(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
-
開(kāi)源
+關(guān)注
關(guān)注
3文章
3419瀏覽量
42769 -
模型
+關(guān)注
關(guān)注
1文章
3371瀏覽量
49293 -
跟蹤器
+關(guān)注
關(guān)注
0文章
131瀏覽量
20122
原文標(biāo)題:?Yolov5-6.2版本更新,Yolov5也可訓(xùn)練分類(lèi)模型,語(yǔ)義分割+實(shí)例分割即將發(fā)布!
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
在樹(shù)莓派上部署YOLOv5進(jìn)行動(dòng)物目標(biāo)檢測(cè)的完整流程
![在樹(shù)莓派上部署<b class='flag-5'>YOLOv</b>5進(jìn)行動(dòng)物目標(biāo)<b class='flag-5'>檢測(cè)</b>的完整流程](https://file1.elecfans.com/web2/M00/0B/44/wKgZomcxbtSASks4AAAW0BjJUx4709.png)
YOLOv6在LabVIEW中的推理部署(含源碼)
![<b class='flag-5'>YOLOv</b>6在LabVIEW中的推理部署(含源碼)](https://file1.elecfans.com//web2/M00/8D/98/wKgZomS-F6iADBs8AADw4J6SGjY218.png)
YOLOv8中的損失函數(shù)解析
![<b class='flag-5'>YOLOv</b>8中的損失函數(shù)解析](https://file1.elecfans.com/web2/M00/0B/CA/wKgaomcp4mOAWXxdAAAAZMZaAdw759.png)
RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類(lèi)檢測(cè)
手冊(cè)上新 |迅為RK3568開(kāi)發(fā)板NPU例程測(cè)試
RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類(lèi)檢測(cè)-迅為電子
![RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)<b class='flag-5'>Yolov</b>5<b class='flag-5'>分類(lèi)</b><b class='flag-5'>檢測(cè)</b>-迅為電子](https://file.elecfans.com/web2/M00/8F/36/poYBAGPjTaSAUhNtAAC4IPnonvY171.png)
RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類(lèi)檢測(cè)
基于迅為RK3588【RKNPU2項(xiàng)目實(shí)戰(zhàn)1】:YOLOV5實(shí)時(shí)目標(biāo)分類(lèi)
手冊(cè)上新 |迅為RK3568開(kāi)發(fā)板NPU例程測(cè)試
圖像語(yǔ)義分割的實(shí)用性是什么
圖像分割與目標(biāo)檢測(cè)的區(qū)別是什么
迅為RK3568手冊(cè)上新 | RK3568開(kāi)發(fā)板NPU例程測(cè)試
maixcam部署yolov5s 自定義模型
OpenVINO? C# API部署YOLOv9目標(biāo)檢測(cè)和實(shí)例分割模型
![OpenVINO? C# API部署<b class='flag-5'>YOLOv</b>9目標(biāo)<b class='flag-5'>檢測(cè)</b>和實(shí)例<b class='flag-5'>分割</b>模型](https://file1.elecfans.com/web2/M00/C6/E7/wKgZomYNI5yAcjPFAAAnnaRSWvY109.png)
OpenCV4.8 C++實(shí)現(xiàn)YOLOv8 OBB旋轉(zhuǎn)對(duì)象檢測(cè)
![OpenCV4.8 C++實(shí)現(xiàn)<b class='flag-5'>YOLOv</b>8 OBB旋轉(zhuǎn)對(duì)象<b class='flag-5'>檢測(cè)</b>](https://file1.elecfans.com/web2/M00/C0/8A/wKgZomXWrpyAA-X_AABPfe5K8eA015.png)
評(píng)論