背景介紹
YOLOv8是來(lái)自Ultralytics的最新的基于YOLO的對(duì)象檢測(cè)模型系列,提供最先進(jìn)的性能。
利用以前的 YOLO 版本,YOLOv8模型更快、更準(zhǔn)確,同時(shí)為訓(xùn)練模型提供統(tǒng)一框架,以執(zhí)行:
物體檢測(cè)
實(shí)例分割
圖像分類
下面是使用YOLOv8做目標(biāo)檢測(cè)和實(shí)例分割的演示視頻:
YOLOv8的新特性與可用模型
Ultralytics為YOLO模型發(fā)布了一個(gè)全新的存儲(chǔ)庫(kù)。它被構(gòu)建為 用于訓(xùn)練對(duì)象檢測(cè)、實(shí)例分割和圖像分類模型的統(tǒng)一框架。
以下是有關(guān)新版本的一些主要功能:
更快更準(zhǔn)確。
支持:
物體檢測(cè)
實(shí)例分割
圖像分類
可擴(kuò)展到所有以前的版本。
新骨干網(wǎng)絡(luò)。
新的無(wú)錨頭。
新的損失函數(shù)。
YOLOv8 還高效靈活地支持多種導(dǎo)出格式,并且該模型可以在 CPU 和 GPU 上運(yùn)行。
YOLOv8 模型的每個(gè)類別中有五個(gè)模型用于檢測(cè)、分割和分類。YOLOv8 Nano 是最快和最小的,而 YOLOv8 Extra Large (YOLOv8x) 是其中最準(zhǔn)確但最慢的。
YOLOv8 捆綁了以下預(yù)訓(xùn)練模型:
在圖像分辨率為 640 的 COCO 檢測(cè)數(shù)據(jù)集上訓(xùn)練的對(duì)象檢測(cè)檢查點(diǎn)。
在圖像分辨率為 640 的 COCO 分割數(shù)據(jù)集上訓(xùn)練的實(shí)例分割檢查點(diǎn)。
在圖像分辨率為 224 的 ImageNet 數(shù)據(jù)集上預(yù)訓(xùn)練的圖像分類模型。
如下是使用YOLOv8x做目標(biāo)檢測(cè)和實(shí)例分割模型的輸出:
如何使用YOLOv8
要充分發(fā)揮YOLOv8的潛力,需要從存儲(chǔ)庫(kù)和ultralytics包中安裝要求。要安裝要求,我們首先需要克隆存儲(chǔ)庫(kù)。
在最新版本中,Ultralytics YOLOv8提供了完整的命令行界面 (CLI) API 和 Python SDK,用于執(zhí)行訓(xùn)練、驗(yàn)證和推理。要使用yoloCLI,我們需要安裝ultralytics包。
pip install ultralytics【1】如何使用命令行界面 (CLI) 使用 YOLOv8? 安裝必要的包后,我們可以使用命令訪問(wèn) YOLOv8 CLI yolo。以下是使用yoloCLI 運(yùn)行對(duì)象檢測(cè)推理的示例。
yolo task=detect mode=predict model=yolov8n.pt source="image.jpg"該task標(biāo)志可以接受三個(gè)參數(shù):detect、classify和segment。同樣,模式可以是train、val或之一predict。我們也可以像export導(dǎo)出經(jīng)過(guò)訓(xùn)練的模型時(shí)一樣傳遞模式。 【2】如何通過(guò)Python API使用YOLOv8? 我們還可以創(chuàng)建一個(gè)簡(jiǎn)單的Python文件,導(dǎo)入YOLO模塊并執(zhí)行我們選擇的任務(wù)。
from ultralytics import YOLO model = YOLO("yolov8n.pt") # load a pretrained YOLOv8n model model.train(data="coco128.yaml") # train the model model.val() # evaluate model performance on the validation set model.predict(source="https://ultralytics.com/images/bus.jpg") # predict on an image model.export(format="onnx") # export the model to ONNX format
例如,上述代碼首先會(huì)在COCO128數(shù)據(jù)集上訓(xùn)練YOLOv8 Nano模型,在驗(yàn)證集上進(jìn)行評(píng)估,并對(duì)樣本圖像進(jìn)行預(yù)測(cè)。
讓我們使用yoloCLI 并使用對(duì)象檢測(cè)、實(shí)例分割和圖像分類模型進(jìn)行推理。
【3】目標(biāo)檢測(cè)的推理結(jié)果 以下命令使用YOLOv8 Nano模型對(duì)視頻運(yùn)行檢測(cè)。
yolotask=detectmode=predictmodel=yolov8n.ptsource='input/video_3.mp4'show=True推理在筆記本電腦GTX1060 GPU上以接近105 FPS的速度運(yùn)行。我們得到以下輸出:
YOLOv8 Nano 模型在幾幀中將貓混淆為狗。讓我們使用 YOLOv8 Extra Large 模型對(duì)同一視頻運(yùn)行檢測(cè)并檢查輸出:
yolotask=detectmode=predictmodel=yolov8x.ptsource='input/video_3.mp4'show=TrueExtra Large模型在GTX1060 GPU上的平均運(yùn)行速度為 17 FPS。
【4】實(shí)例分割的推理結(jié)果 使用YOLOv8 實(shí)例分割模型運(yùn)行推理同樣簡(jiǎn)單。我們只需要更改上面命令中的task和model名稱。
yolotask=segmentmode=predictmodel=yolov8x-seg.ptsource='input/video_3.mp4'show=True因?yàn)閷?shí)例分割與對(duì)象檢測(cè)相結(jié)合,所以這次的平均 FPS 約為 13。
分割圖在輸出中看起來(lái)非常干凈。即使貓?jiān)谧詈髱讕卸阍诜綁K下,模型也能夠檢測(cè)并分割它。
【5】圖像分類推理結(jié)果
最后,由于YOLOv8已經(jīng)提供了預(yù)訓(xùn)練的分類模型,讓我們使用該yolov8x-cls模型對(duì)同一視頻進(jìn)行分類推理。這是存儲(chǔ)庫(kù)提供的最大分類模型。
yolo task=classify mode=predict model=yolov8x-cls.pt source='input/video_3.mp4' show=True
默認(rèn)情況下,視頻使用模型預(yù)測(cè)的前5個(gè)類進(jìn)行注釋。在沒(méi)有任何后處理的情況下,注釋直接匹配ImageNet類名。
審核編輯:劉清
文章出處:【微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
python
+關(guān)注
關(guān)注
55文章
4767瀏覽量
84375 -
CLI
+關(guān)注
關(guān)注
1文章
79瀏覽量
8521
原文標(biāo)題:使用YOLOv8做目標(biāo)檢測(cè)、實(shí)例分割和圖像分類
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論