CV之DL之YOLOv8:YOLOv8的簡(jiǎn)介、安裝和使用方法、案例應(yīng)用之詳細(xì)攻略
目錄
YOLOv8的簡(jiǎn)介
1、Yolov8的概述
2、YOLOv8對(duì)比前身YOLOv5
YOLOv8的安裝和使用方法
1、安裝和使用
T1、采用yolov8安裝和使用
第1步,安裝YOLOv8
第2步,使用YOLOv8
T1、采用CLI
T2、采用Python
T2、采用ultralytics安裝和使用
第1步,安裝ultralytics
第2步,使用
T1、CLI的形式
T2、python代碼的形式
2、下載模型
A1、檢測(cè)(COCO),80個(gè)類(lèi)別
A2、檢測(cè)(Open Image V7),600個(gè)類(lèi)別
A3、分割(COCO),80個(gè)類(lèi)別
A4、姿態(tài)(COCO)
A5、分類(lèi)(ImageNet),1000個(gè)類(lèi)別
YOLOv8的案例應(yīng)用
1、基礎(chǔ)用法
2、進(jìn)階用法
飛機(jī)檢測(cè)
倉(cāng)庫(kù)物品檢測(cè)
車(chē)牌檢測(cè)
YOLOv8的簡(jiǎn)介
2023年1月11日,Ultralytics重磅發(fā)布YOLOv8。Ultralytics YOLOv8是一種前沿、最先進(jìn)(SOTA)的模型,它在之前的YOLO版本的成功基礎(chǔ)上進(jìn)行了改進(jìn),引入了新的功能和改進(jìn),以進(jìn)一步提升性能和靈活性。YOLOv8旨在快速、準(zhǔn)確且易于使用,使其成為廣泛應(yīng)用于目標(biāo)檢測(cè)和跟蹤、實(shí)例分割、圖像分類(lèi)和姿態(tài)估計(jì)等多種任務(wù)的理想選擇。
YOLOv8是計(jì)算機(jī)視覺(jué)中的新一代技術(shù),支持目標(biāo)檢測(cè)、分類(lèi)和分割任務(wù)。YOLOv8是由Ultralytics創(chuàng)建的一種新型計(jì)算機(jī)視覺(jué)模型,也是YOLOv5的創(chuàng)建者。YOLOv8模型具有開(kāi)箱即用的目標(biāo)檢測(cè)、分類(lèi)和分割任務(wù)支持,可通過(guò)Python包和命令行界面訪(fǎng)問(wèn)。
YOLOv8由Ultralytics創(chuàng)建。YOLOv8的代碼是開(kāi)源的,并根據(jù)GPL許可證授權(quán)。使用Roboflow Universe,您可以探索經(jīng)過(guò)訓(xùn)練以解決各種問(wèn)題的模型,從在航空?qǐng)D像中識(shí)別飛機(jī)到在工作區(qū)域中識(shí)別鏟車(chē)和貨盤(pán)。
官網(wǎng)地址:YOLOv8: A New State-of-the-Art Computer Vision Model
文章解讀地址:What is YOLOv8? The Ultimate Guide.
GitHub地址:https://github.com/ultralytics/ultralytics
1、Yolov8的概述
背景痛點(diǎn) |
以往的目標(biāo)檢測(cè)模型都存在著一定的誤差和限制,難以滿(mǎn)足現(xiàn)實(shí)應(yīng)用場(chǎng)景的要求 YOLO系列模型雖然精準(zhǔn)度較高,但是易用性和擴(kuò)展性有限 |
解決方案 |
YOLOv8是繼YOLOv5后,野心勃勃的目標(biāo)檢測(cè)、實(shí)例分割和圖像分類(lèi)模型YOLOv8采用無(wú)錨框檢測(cè)、新的卷積核操作、新的C2f模塊設(shè)計(jì)等優(yōu)化了原有模型的結(jié)構(gòu)。 YOLOv8同時(shí)提供了更友好的命令行界面和Python包接口,大幅提升了開(kāi)發(fā)體驗(yàn)。 |
核心特點(diǎn) |
>> 在COCO和Roboflow100評(píng)估數(shù)據(jù)集上,精度均優(yōu)于YOLOv5和其他同類(lèi)模型; >> 支持目標(biāo)檢測(cè)、實(shí)例分割和圖像分類(lèi)三大任務(wù); >> 代碼開(kāi)源托管于GitHub,支持廣泛的開(kāi)發(fā)者社區(qū)參與迭代更新; >> 提供便利的命令行和Python接口,實(shí)現(xiàn)模型訓(xùn)練、推理、部署等流程一體化; |
優(yōu)勢(shì) |
>> 模型精度領(lǐng)先同類(lèi)網(wǎng)絡(luò),在保持實(shí)時(shí)性的基礎(chǔ)上實(shí)現(xiàn)更高的識(shí)別精度; >> 友好的開(kāi)發(fā)體驗(yàn)極大提升了模型應(yīng)用開(kāi)發(fā)效率; >> 開(kāi)放和活躍的社區(qū)支持全面解決問(wèn)題; >> 可以直接實(shí)現(xiàn)目標(biāo)檢測(cè)模型在現(xiàn)實(shí)場(chǎng)景中的部署應(yīng)用; |
總之,YOLOv8通過(guò)優(yōu)化模型結(jié)構(gòu)和提升開(kāi)發(fā)體驗(yàn),很好地結(jié)合了模型效果和易用性,成為目前目標(biāo)檢測(cè)領(lǐng)域最成熟和優(yōu)秀的模型之一。
?
2、YOLOv8對(duì)比前身YOLOv5
YOLOv8具有體系結(jié)構(gòu)和開(kāi)發(fā)人員體驗(yàn)方面的改進(jìn)。與YOLOv8的前身YOLOv5相比,YOLOv8具有:
>> 新的無(wú)錨檢測(cè)系統(tǒng)。
>>模型中使用的卷積塊的變化。
>>在訓(xùn)練期間應(yīng)用的馬賽克增強(qiáng),在最后10個(gè)時(shí)期之前關(guān)閉。
此外,YOLOv8還帶來(lái)了改進(jìn)模型開(kāi)發(fā)人員體驗(yàn)的變化。首先,該模型現(xiàn)在以可安裝在Python代碼中的庫(kù)的形式打包。快速運(yùn)行 "pip install ultralytics" 將為您提供。
YOLOv8的安裝和使用方法
1、安裝和使用
T1、采用yolov8安裝和使用
第1步,安裝YOLOv8
pip install yolov8
此命令將安裝YOLOv8庫(kù)的最新版本。然后,您可以使用"yolo"命令行程序或通過(guò)以下Python代碼將模型導(dǎo)入到您的腳本中。
第2步,使用YOLOv8
您可以在Python代碼中使用YOLOv8模型,也可以通過(guò)模型CLI使用。
T1、采用CLI
要使用YOLOv8 CLI訓(xùn)練模型,請(qǐng)使用以下命令:
yolo train --source image.jpg
將源添加到您想要進(jìn)行推理的圖像上。這將使用默認(rèn)的YOLOv8s模型權(quán)重進(jìn)行預(yù)測(cè)。
T2、采用Python
要使用Python CLI,請(qǐng)首先將"ultralytics"包導(dǎo)入到您的代碼中。然后,您可以使用該包加載、訓(xùn)練和使用模型。
加載自定義模型 |
加載自定義模型 要將自定義模型加載到項(xiàng)目中,請(qǐng)使用以下代碼: import ultralytics # 加載模型 model = ultralytics.YOLOv8('yolov8n', pretrained=True) # 使用COCO數(shù)據(jù)集進(jìn)行訓(xùn)練 model.train(dataset='COCO', epochs=100)?# 此代碼加載默認(rèn)的YOLOv8n模型權(quán)重,并使用COCO數(shù)據(jù)集進(jìn)行100個(gè)時(shí)期的訓(xùn)練。您可能希望在Google Colab中運(yùn)行此代碼,以便將訓(xùn)練過(guò)的模型保留在內(nèi)存中進(jìn)行實(shí)驗(yàn)。 您可以將 "yolov8n" 文本替換為您想要使用的模型名稱(chēng)。您可以在Ultralytics YOLOv8 GitHub存儲(chǔ)庫(kù)中了解有關(guān)不同模型大小的更多信息。 |
創(chuàng)建新模型 |
創(chuàng)建新模型(高級(jí)) 雖然推薦使用默認(rèn)的YOLOv8n權(quán)重加載模型,但您也可以使用Python包從頭開(kāi)始訓(xùn)練新模型。為此,請(qǐng)?zhí)峁┌嘘P(guān)要在其上訓(xùn)練模型的數(shù)據(jù)集信息的YOLOv5 PyTorch TXT文件: yolo create_model --data dataset.yaml --cfg yolov8n.yaml |
T2、采用ultralytics安裝和使用
第1步,安裝ultralytics
使用PyTorch>=1.8在Python>=3.8環(huán)境中使用pip安裝包含所有要求的Ultralytics軟件包。
pip install ultralytics
第2步,使用
T1、CLI的形式
可以直接在命令行界面(CLI)中使用YOLOv8,使用yolo命令:
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'
yolo可用于各種任務(wù)和模式,并接受額外的參數(shù),例如imgsz=640。有關(guān)示例,請(qǐng)參閱YOLOv8 CLI文檔。
T2、python代碼的形式
YOLOv8也可以直接在Python環(huán)境中使用,并接受與上述CLI示例相同的參數(shù):
from ultralytics import YOLO
# 加載模型
model = YOLO("yolov8n.yaml") ?# 從頭開(kāi)始構(gòu)建新模型
model = YOLO("yolov8n.pt") ?# 加載預(yù)訓(xùn)練模型(推薦用于訓(xùn)練)
# 使用模型
model.train(data="coco128.yaml", epochs=3) ?# 訓(xùn)練模型
metrics = model.val() ?# 在驗(yàn)證集上評(píng)估模型性能
results = model("https://ultralytics.com/images/bus.jpg") ?# 對(duì)圖像進(jìn)行預(yù)測(cè)
path = model.export(format="onnx") ?# 將模型導(dǎo)出為ONNX格式
有關(guān)更多示例,請(qǐng)參閱YOLOv8 Python文檔。
2、下載模型
在這里提供了在COCO數(shù)據(jù)集上預(yù)訓(xùn)練的YOLOv8 Detect、Segment和Pose模型,以及在ImageNet數(shù)據(jù)集上預(yù)訓(xùn)練的YOLOv8 Classify模型。對(duì)于所有Detect、Segment和Pose模型,都可以使用Track模式。
Ultralytics YOLO支持的任務(wù),所有模型將在第一次使用時(shí)自動(dòng)從最新的Ultralytics發(fā)布中下載。
A1、檢測(cè)(COCO),80個(gè)類(lèi)別
See?Detection Docs?for usage examples with these models trained on?COCO, which include 80 pre-trained classes.請(qǐng)查閱檢測(cè)文檔,以獲取在COCO上訓(xùn)練的這些模型的使用示例,其中包括80個(gè)預(yù)訓(xùn)練類(lèi)別。
Model | size (pixels) |
mAPval 50-95 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 37.3 | 80.4 | 0.99 | 3.2 | 8.7 |
YOLOv8s | 640 | 44.9 | 128.4 | 1.20 | 11.2 | 28.6 |
YOLOv8m | 640 | 50.2 | 234.7 | 1.83 | 25.9 | 78.9 |
YOLOv8l | 640 | 52.9 | 375.2 | 2.39 | 43.7 | 165.2 |
YOLOv8x | 640 | 53.9 | 479.1 | 3.53 | 68.2 | 257.8 |
-
mAPval?values are for single-model single-scale on?COCO val2017?dataset.
Reproduce by?yolo val detect data=coco.yaml device=0
-
Speed?averaged over COCO val images using an?Amazon EC2 P4d?instance.
Reproduce by?yolo val detect data=coco.yaml batch=1 device=0|cpu
- mAPval?值是在COCO val2017數(shù)據(jù)集上單模型單尺度的結(jié)果。 通過(guò)?yolo val detect data=coco.yaml device=0?進(jìn)行復(fù)現(xiàn)。
- 速度是在使用Amazon EC2 P4d實(shí)例上的COCO val圖像上平均得出的。 通過(guò)?yolo val detect data=coco.yaml batch=1 device=0|cpu?進(jìn)行復(fù)現(xiàn)。
A2、檢測(cè)(Open Image V7),600個(gè)類(lèi)別
See?Detection Docs?for usage examples with these models trained on?Open Image V7, which include 600 pre-trained classes.請(qǐng)查閱檢測(cè)文檔,以獲取在Open Image V7上訓(xùn)練的這些模型的使用示例,其中包括600個(gè)預(yù)訓(xùn)練類(lèi)別。
Model | size (pixels) |
mAPval 50-95 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
YOLOv8s | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
YOLOv8m | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
YOLOv8l | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
YOLOv8x | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
-
mAPval?values are for single-model single-scale on?Open Image V7?dataset.
Reproduce by?yolo val detect data=open-images-v7.yaml device=0
-
Speed?averaged over Open Image V7 val images using an?Amazon EC2 P4d?instance.
Reproduce by?yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu
- mAPval?值是在Open Image V7數(shù)據(jù)集上單模型單尺度的結(jié)果。 通過(guò)?yolo val detect data=open-images-v7.yaml device=0?進(jìn)行復(fù)現(xiàn)。
- 速度是在使用Amazon EC2 P4d實(shí)例上的Open Image V7 val圖像上平均得出的。 通過(guò)?yolo val detect data=open-images-v7.yaml batch=1 device=0|cpu?進(jìn)行復(fù)現(xiàn)。
A3、分割(COCO),80個(gè)類(lèi)別
See?Segmentation Docs?for usage examples with these models trained on?COCO-Seg, which include 80 pre-trained classes.請(qǐng)查閱分割文檔,以獲取在COCO-Seg上訓(xùn)練的這些模型的使用示例,其中包括80個(gè)預(yù)訓(xùn)練類(lèi)別。
Model | size (pixels) |
mAPbox 50-95 |
mAPmask 50-95 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-seg | 640 | 36.7 | 30.5 | 96.1 | 1.21 | 3.4 | 12.6 |
YOLOv8s-seg | 640 | 44.6 | 36.8 | 155.7 | 1.47 | 11.8 | 42.6 |
YOLOv8m-seg | 640 | 49.9 | 40.8 | 317.0 | 2.18 | 27.3 | 110.2 |
YOLOv8l-seg | 640 | 52.3 | 42.6 | 572.4 | 2.79 | 46.0 | 220.5 |
YOLOv8x-seg | 640 | 53.4 | 43.4 | 712.1 | 4.02 | 71.8 | 344.1 |
-
mAPval?values are for single-model single-scale on?COCO val2017?dataset.
Reproduce by?yolo val segment data=coco-seg.yaml device=0
-
Speed?averaged over COCO val images using an?Amazon EC2 P4d?instance.
Reproduce by?yolo val segment data=coco-seg.yaml batch=1 device=0|cpu
- mAPval?值是在COCO val2017數(shù)據(jù)集上單模型單尺度的結(jié)果。 通過(guò)?yolo val segment data=coco-seg.yaml device=0?進(jìn)行復(fù)現(xiàn)。
- 速度是在使用Amazon EC2 P4d實(shí)例上的COCO val圖像上平均得出的。 通過(guò)?yolo val segment data=coco-seg.yaml batch=1 device=0|cpu?進(jìn)行復(fù)現(xiàn)。
A4、姿態(tài)(COCO)
See?Pose Docs?for usage examples with these models trained on?COCO-Pose, which include 1 pre-trained class, person.請(qǐng)查閱姿態(tài)文檔,以獲取在COCO-Pose上訓(xùn)練的這些模型的使用示例,其中包括1個(gè)預(yù)訓(xùn)練類(lèi)別,即一個(gè)人。
Model | size (pixels) |
mAPpose 50-95 |
mAPpose 50 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
-
mAPval?values are for single-model single-scale on?COCO Keypoints val2017?dataset.
Reproduce by?yolo val pose data=coco-pose.yaml device=0
-
Speed?averaged over COCO val images using an?Amazon EC2 P4d?instance.
Reproduce by?yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
- mAPval?值是在COCO關(guān)鍵點(diǎn) val2017數(shù)據(jù)集上單模型單尺度的結(jié)果。 通過(guò)?yolo val pose data=coco-pose.yaml device=0?進(jìn)行復(fù)現(xiàn)。
- 速度是在使用Amazon EC2 P4d實(shí)例上的COCO val圖像上平均得出的。 通過(guò)?yolo val pose data=coco-pose.yaml batch=1 device=0|cpu?進(jìn)行復(fù)現(xiàn)。
A5、分類(lèi)(ImageNet),1000個(gè)類(lèi)別
See?Classification Docs?for usage examples with these models trained on?ImageNet, which include 1000 pretrained classes.請(qǐng)查閱分類(lèi)文檔,以獲取在ImageNet上訓(xùn)練的這些模型的使用示例,其中包括1000個(gè)預(yù)訓(xùn)練類(lèi)別。
Model | size (pixels) |
acc top1 |
acc top5 |
Speed CPU ONNX (ms) |
Speed A100 TensorRT (ms) |
params (M) |
FLOPs (B) at 640 |
---|---|---|---|---|---|---|---|
YOLOv8n-cls | 224 | 69.0 | 88.3 | 12.9 | 0.31 | 2.7 | 4.3 |
YOLOv8s-cls | 224 | 73.8 | 91.7 | 23.4 | 0.35 | 6.4 | 13.5 |
YOLOv8m-cls | 224 | 76.8 | 93.5 | 85.4 | 0.62 | 17.0 | 42.7 |
YOLOv8l-cls | 224 | 76.8 | 93.5 | 163.0 | 0.87 | 37.5 | 99.7 |
YOLOv8x-cls | 224 | 79.0 | 94.6 | 232.0 | 1.01 | 57.4 | 154.8 |
-
acc?values are model accuracies on the?ImageNet?dataset validation set.
Reproduce by?yolo val classify data=path/to/ImageNet device=0
-
Speed?averaged over ImageNet val images using an?Amazon EC2 P4d?instance.
Reproduce by?yolo val classify data=path/to/ImageNet batch=1 device=0|cpu
- acc?值是模型在ImageNet數(shù)據(jù)集驗(yàn)證集上的準(zhǔn)確性。 通過(guò)?yolo val classify data=path/to/ImageNet device=0?進(jìn)行復(fù)現(xiàn)。
- 速度是在使用Amazon EC2 P4d實(shí)例上的ImageNet val圖像上平均得出的。 通過(guò)?yolo val classify data=path/to/ImageNet batch=1 device=0|cpu?進(jìn)行復(fù)現(xiàn)。
YOLOv8的案例應(yīng)用
1、基礎(chǔ)用法
更新中……
2、進(jìn)階用法
飛機(jī)檢測(cè)
使用航空?qǐng)D像技術(shù)計(jì)算被攝飛機(jī)的數(shù)量。
地址:How to Use the Aerial Imagery Object Detection API
倉(cāng)庫(kù)物品檢測(cè)
檢測(cè)倉(cāng)庫(kù)環(huán)境中的鏟車(chē)、貨盤(pán)和小型載具等物品。
地址:loco-small-1 Object Detection Dataset and Pre-Trained Model by RandD
車(chē)牌檢測(cè)
在圖像中識(shí)別車(chē)牌。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-536229.html
地址:How to Use the carPlate Object Detection API文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-536229.html
到了這里,關(guān)于Py之py2neo:py2neo的簡(jiǎn)介、安裝、使用方法之詳細(xì)攻略的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!