精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn) 原創(chuàng)

發(fā)布于 2024-10-25 08:23
瀏覽
0收藏

本文將通過(guò)一個(gè)完整的實(shí)戰(zhàn)案例來(lái)展示使用Python、命令行或Google Colab等方式在自定義數(shù)據(jù)集上訓(xùn)練自己的計(jì)算機(jī)視覺(jué)模型。

簡(jiǎn)介

當(dāng)前,Ultralytics公司研制的高級(jí)YOLOv8模型成為解決計(jì)算機(jī)視覺(jué)問(wèn)題的最佳方法之一,同時(shí)該模型也最大限度地減少了有關(guān)開(kāi)發(fā)過(guò)程遭遇的麻煩。YOLOv8是Ultralytics YOLO(You Only Look Once)系列模型的第8次也是最新一次迭代,與其他迭代一樣,它使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來(lái)預(yù)測(cè)對(duì)象類(lèi)別及其邊界框。YOLO系列對(duì)象探測(cè)器以準(zhǔn)確和快速而聞名,并提供了一個(gè)基于PyTorch構(gòu)建的平臺(tái),從而簡(jiǎn)化了人們從頭開(kāi)始創(chuàng)建模型的大部分過(guò)程。

尤其重要的是,YOLOv8也是一個(gè)非常靈活的模型。它可以在各種平臺(tái)上使用你選擇的任何數(shù)據(jù)集進(jìn)行訓(xùn)練,預(yù)測(cè)模型可以基于許多數(shù)據(jù)源運(yùn)行。本文將作為一個(gè)全面的教程,涵蓋訓(xùn)練和運(yùn)行YOLOv8模型的許多不同方法,并展示每種方法的優(yōu)缺點(diǎn),這些方法將根據(jù)你的硬件和數(shù)據(jù)集幫你選擇最合適的開(kāi)發(fā)方案。

【注意】本文中創(chuàng)建上述示例數(shù)據(jù)集時(shí)使用的所有圖像均由作者本人拍攝。

開(kāi)發(fā)環(huán)境搭建

要開(kāi)始訓(xùn)練我們的YOLOv8模型,第一步是決定我們想在什么樣的環(huán)境中訓(xùn)練我們的模型(請(qǐng)記住,訓(xùn)練和運(yùn)行模型是單獨(dú)的任務(wù))。

歸納來(lái)看,可供我們選擇的環(huán)境在很大程度上可以分為兩類(lèi):基于本地運(yùn)行和基于云端方案運(yùn)行。

通過(guò)基于本地的訓(xùn)練,我們基本上是使用設(shè)備的物理硬件直接在我們的系統(tǒng)上運(yùn)行訓(xùn)練過(guò)程。在基于本地的訓(xùn)練中,YOLOv8為我們提供了兩個(gè)選項(xiàng):Python API和CLI。這兩種選擇的結(jié)果或速度沒(méi)有真正的區(qū)別,因?yàn)橥瑯拥倪^(guò)程是在幕后進(jìn)行的;唯一的區(qū)別在于訓(xùn)練的設(shè)置和運(yùn)行方式。

另一方面,基于云端的訓(xùn)練允許你利用云服務(wù)器的硬件。通過(guò)使用互聯(lián)網(wǎng),你可以連接到云運(yùn)行時(shí)并執(zhí)行代碼,就像在本地計(jì)算機(jī)上一樣,只是現(xiàn)在它在云硬件上運(yùn)行。

到目前為止,最受歡迎的機(jī)器學(xué)習(xí)云平臺(tái)是谷歌Colab。它使用Jupyter筆記本格式,允許用戶創(chuàng)建可以編寫(xiě)和運(yùn)行代碼片段的“單元格”,并提供與Google Drive和Github的強(qiáng)大集成。

你決定使用哪種環(huán)境在很大程度上取決于你可用的硬件。如果你有一個(gè)配備高端NVIDIA GPU的強(qiáng)大系統(tǒng),基于本地的訓(xùn)練可能會(huì)對(duì)你很有效。如果你的本地機(jī)器的硬件不符合機(jī)器學(xué)習(xí)的配置建議,或者你只是想要比本地更多的計(jì)算能力,谷歌Colab可能是你更恰當(dāng)?shù)倪x擇。

谷歌Colab最大的好處之一是它免費(fèi)提供了一些計(jì)算資源,但也有一個(gè)簡(jiǎn)單的升級(jí)路徑,可以讓你利用更快的計(jì)算硬件。即使你已經(jīng)有了一個(gè)強(qiáng)大的系統(tǒng),如果谷歌Colab的高層計(jì)劃中提供的更快的GPU比你現(xiàn)有的硬件有顯著的性能提升,你也可以考慮使用谷歌Colab。使用免費(fèi)計(jì)劃,你只能使用NVIDIA T4,其性能大致相當(dāng)于RTX 2070。對(duì)于更高級(jí)別配置的計(jì)劃,L4(性能約為4090)和A100(性能約2 4090)是可用的。在比較GPU時(shí),請(qǐng)記住VRAM的數(shù)量是機(jī)器學(xué)習(xí)性能的主要決定因素。

數(shù)據(jù)集

為了開(kāi)始訓(xùn)練模型,你需要大量數(shù)據(jù)來(lái)訓(xùn)練它。對(duì)象檢測(cè)數(shù)據(jù)集通常由各種對(duì)象的圖像集合組成,此外還有一個(gè)圍繞對(duì)象的“邊界框”,指示其在圖像中的位置。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

檢測(cè)到的對(duì)象周?chē)倪吔缈蚴纠?/span>

YOLOv8兼容的數(shù)據(jù)集具有特定的結(jié)構(gòu)。它們主要分為有效文件夾、訓(xùn)練文件夾和測(cè)試文件夾,分別用于模型的驗(yàn)證、訓(xùn)練和測(cè)試(驗(yàn)證和測(cè)試之間的區(qū)別在于,在驗(yàn)證過(guò)程中,結(jié)果用于調(diào)整模型以提高其準(zhǔn)確性;而在測(cè)試過(guò)程中,結(jié)果僅用于提供模型真實(shí)世界準(zhǔn)確性的衡量標(biāo)準(zhǔn))。

在每個(gè)文件夾中,數(shù)據(jù)集進(jìn)一步分為兩個(gè)文件夾:圖像(images)和標(biāo)簽(labels)文件夾。這兩個(gè)文件夾的內(nèi)容緊密相連。

顧名思義,images文件夾包含數(shù)據(jù)集的所有對(duì)象圖像。這些圖像通常具有方形縱橫比、低分辨率和小的文件尺寸。

labels文件夾包含邊界框在每個(gè)圖像中的位置和大小的數(shù)據(jù),以及每個(gè)圖像表示的對(duì)象的類(lèi)型(或類(lèi)別)。例如:

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

這里的第一行數(shù)據(jù)代表圖像中存在的單個(gè)對(duì)象。在每一行中,第一個(gè)數(shù)字表示對(duì)象的類(lèi)別,第二個(gè)和第三個(gè)數(shù)字表示邊界框中心的x和y坐標(biāo),第四個(gè)和第五個(gè)數(shù)字表示邊緣框的寬度和高度。

images和labels文件夾中的數(shù)據(jù)通過(guò)文件名鏈接在一起。images文件夾中的每個(gè)圖像在labels文件夾中都有一個(gè)具有相同文件名的相應(yīng)文件;反之亦然。在數(shù)據(jù)集中,images和labels文件夾中總是有匹配的文件對(duì),它們具有相同的文件名,但文件擴(kuò)展名不同;.jpg用于圖像,.txt用于標(biāo)簽。.jpg圖片中每個(gè)對(duì)象的邊界框數(shù)據(jù)包含在相應(yīng)的.txt文件中。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

YOLOv8兼容數(shù)據(jù)集的典型文件結(jié)構(gòu)。來(lái)源:Ultralytics公司??YOLO文檔??

有幾種方法可以獲得與YOLOv8兼容的數(shù)據(jù)集來(lái)開(kāi)始訓(xùn)練模型。你可以創(chuàng)建自己的數(shù)據(jù)集,也可以使用互聯(lián)網(wǎng)上預(yù)先配置的數(shù)據(jù)集。在本教程中,我們將使用??CVAT??創(chuàng)建自己的數(shù)據(jù)集,并使用??Kaggle??查找預(yù)配置的數(shù)據(jù)集。

CVAT

CVAT(CVAT.ai)是一個(gè)注釋工具,它允許你通過(guò)手動(dòng)方式為圖像和視頻添加標(biāo)簽來(lái)創(chuàng)建自己的數(shù)據(jù)集。

創(chuàng)建帳戶并登錄后,開(kāi)始注釋的過(guò)程很簡(jiǎn)單。只需創(chuàng)建一個(gè)項(xiàng)目,給它一個(gè)合適的名稱(chēng),并根據(jù)需要為盡可能多的對(duì)象類(lèi)型/類(lèi)別添加標(biāo)簽。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

作者在cvat.ai.Video上創(chuàng)建新項(xiàng)目和標(biāo)簽

創(chuàng)建一個(gè)新任務(wù),并上傳你希望成為數(shù)據(jù)集一部分的所有圖像。點(diǎn)擊“Submit & Open”按鈕,項(xiàng)目下應(yīng)創(chuàng)建一個(gè)新任務(wù),其中包含一個(gè)作業(yè)。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

在cvat.ai上創(chuàng)建新任務(wù)和作業(yè)

打開(kāi)此作業(yè)將允許你啟動(dòng)注釋過(guò)程。你可以使用矩形工具為數(shù)據(jù)集中的每個(gè)圖像創(chuàng)建邊界框和標(biāo)簽。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

使用cvat.ai上的矩形工具創(chuàng)建邊界框

在為所有圖像添加注釋后,返回任務(wù)并選擇“Actions(動(dòng)作)”→“Export task dataset(導(dǎo)出任務(wù)數(shù)據(jù)集)”,然后選擇YOLOv8 Detection 1.0作為導(dǎo)出格式。下載任務(wù)數(shù)據(jù)集后,你會(huì)發(fā)現(xiàn)它只包含labels文件夾,而不包含images文件夾(除非你在導(dǎo)出時(shí)選擇了“Save images(保存圖像)”選項(xiàng))。你必須手動(dòng)創(chuàng)建images文件夾并將圖像移動(dòng)到那里(你可能希望首先將圖像壓縮到較低的分辨率,例如640x640)。記住不要更改文件名,因?yàn)樗鼈儽仨毰clabels文件夾中.txt文件的文件名匹配。你還需要決定如何在驗(yàn)證、訓(xùn)練和測(cè)試之間分配圖像(訓(xùn)練是其中最重要的)。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

作者從cvat.ai.Image導(dǎo)出的示例數(shù)據(jù)集

至此,你的數(shù)據(jù)集已完成并準(zhǔn)備好使用了!

Kaggle

Kaggle(Kaggle.com)是最大的在線數(shù)據(jù)科學(xué)社區(qū)之一,也是探索數(shù)據(jù)集的最佳網(wǎng)站之一。你可以通過(guò)簡(jiǎn)單地搜索他們的網(wǎng)站來(lái)嘗試找到你需要的數(shù)據(jù)集,除非你正在尋找非常具體的東西;否則,你很可能會(huì)找到意向的數(shù)據(jù)集。然而,Kaggle上的許多數(shù)據(jù)集不是YOLOv8兼容的格式和/或與計(jì)算機(jī)視覺(jué)無(wú)關(guān);因此,你可能想在查詢中包含“YOLOv9”來(lái)優(yōu)化你的搜索。

你可以通過(guò)數(shù)據(jù)集的Data Explorer(頁(yè)面右側(cè))中的文件結(jié)構(gòu)來(lái)判斷數(shù)據(jù)集是否與YOLOv8兼容。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

Kaggle上兼容YOLOv8的數(shù)據(jù)集示例

如果數(shù)據(jù)集相對(duì)較小(幾MB)和/或你想在本地訓(xùn)練,那么可以直接從Kaggle下載數(shù)據(jù)集。但是,如果你計(jì)劃在Google Colab上使用大型數(shù)據(jù)集進(jìn)行訓(xùn)練,最好從筆記本文件本身進(jìn)行數(shù)據(jù)集檢索(更多信息見(jiàn)下文)。

訓(xùn)練模型

訓(xùn)練過(guò)程將根據(jù)你是在本地還是在云端進(jìn)行訓(xùn)練而有所不同。

本地

為所有訓(xùn)練文件創(chuàng)建一個(gè)項(xiàng)目文件夾。在本教程中,我們將稱(chēng)之為yolov8-project。然后,將數(shù)據(jù)集移動(dòng)/復(fù)制到此文件夾下。

接下來(lái),使用所需的YOLOv8依賴(lài)項(xiàng)設(shè)置Python虛擬環(huán)境:

python3 -m venv venv
source venv/bin/activate
pip3 install ultralytics

然后,創(chuàng)建一個(gè)名為config.yaml的配置文件。這個(gè)文件將會(huì)指定用于訓(xùn)練的重要數(shù)據(jù)集信息:

path: /Users/oliverma/yolov8-project/dataset/ # absolute path to dataset
test: test/images # relative path to test images
train: train/images # relative path to training images
val: val/images # relative path to validation images

# classes
names:
0: bottle

在上面配置信息的path部分,提供的是指向數(shù)據(jù)集根目錄的絕對(duì)文件路徑。你也可以使用相對(duì)文件路徑,但這取決于config.yaml的相對(duì)位置。

然后,在test、train和val部分,提供用于測(cè)試、訓(xùn)練和驗(yàn)證的圖像的位置(如果你只有訓(xùn)練圖像,則只需對(duì)所有這三種操作均使用train/images)。

在names部分,指定每個(gè)類(lèi)別的名稱(chēng)。這些信息通常可以在任何YOLOv8數(shù)據(jù)集的data.yaml文件中找到。

如前所述,Python API或CLI(命令行方式)都可以用來(lái)進(jìn)行本地訓(xùn)練。

Python API方式

創(chuàng)建另一個(gè)名為main.py的文件。這是實(shí)際訓(xùn)練開(kāi)始的地方:

from ultralytics import YOLO
model = YOLO("yolov8n.yaml")
model.train(data="config.yaml", epochs=100)

通過(guò)將我們的模型初始化為YOLO("yolov8n.yaml"),我們基本上是從頭開(kāi)始創(chuàng)建一個(gè)新模型。我們使用yolov8n是因?yàn)樗亲羁斓哪P停鶕?jù)你自己的使用情況,你也可以選擇使用其他模型。

性能指標(biāo)

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

YOLOv8變體的性能指標(biāo)。來(lái)源:??Ultralytics YOLO文檔??

最后,我們開(kāi)始訓(xùn)練模型,并傳遞配置文件和迭代次數(shù),或訓(xùn)練輪數(shù)。一個(gè)比較好的訓(xùn)練指標(biāo)是使用300個(gè)訓(xùn)練輪數(shù),但你可能想根據(jù)數(shù)據(jù)集的大小和硬件的速度來(lái)調(diào)整這個(gè)數(shù)字。

你可能還希望包括一些更有用的設(shè)置:

  • imgsz:將所有圖像調(diào)整到指定的大小。例如,imgsz=640會(huì)將所有圖像的大小調(diào)整為640x640。如果你創(chuàng)建了自己的數(shù)據(jù)集并且沒(méi)有調(diào)整圖像大小,這將非常有用。
  • device:指定要在哪個(gè)設(shè)備上訓(xùn)練。默認(rèn)情況下,YOLOv8會(huì)嘗試在GPU上訓(xùn)練,并使用CPU訓(xùn)練作為后備,但如果你在M系列Mac上訓(xùn)練,你必須使用device="mps"以便使用蘋(píng)果電腦上的Metal Performance Shaders(mps)后端進(jìn)行GPU加速訓(xùn)練。
  • 有關(guān)所有訓(xùn)練參數(shù)的更多信息,請(qǐng)?jiān)L問(wèn)https://docs.ultralytics.com/modes/train/#train-settings。

你的項(xiàng)目目錄現(xiàn)在應(yīng)該看起來(lái)類(lèi)似于下面的樣子:

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

項(xiàng)目目錄的示例文件結(jié)構(gòu)

現(xiàn)在,我們終于準(zhǔn)備好開(kāi)始訓(xùn)練我們的模型了。為此,只需要在項(xiàng)目目錄中打開(kāi)一個(gè)終端并運(yùn)行:

python3 main.py

隨著訓(xùn)練的進(jìn)行,終端將顯示每個(gè)訓(xùn)練世代的訓(xùn)練進(jìn)度信息。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

終端中顯示的每個(gè)訓(xùn)練世代的訓(xùn)練進(jìn)度

訓(xùn)練結(jié)果將保存在路徑runs/detect/train(或者train2,train3,等)。注意,這里包括了權(quán)重?cái)?shù)據(jù)(文件擴(kuò)展名為.pt),這對(duì)以后運(yùn)行模型很重要;還有文件results.png,它顯示了許多包含相關(guān)訓(xùn)練統(tǒng)計(jì)數(shù)據(jù)的圖表。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

results.png文件中的示例圖

CLI方式

在項(xiàng)目目錄中打開(kāi)一個(gè)新終端并運(yùn)行以下命令:

yolo detect train data=config.yaml model=yolov8n.yaml epochs=100

此命令可以使用上面為Python API列出的相同參數(shù)進(jìn)行修改。例如:

yolo detect train data=config.yaml model=yolov8n.yaml epochs=300 imgsz=640 device=mps

訓(xùn)練將開(kāi)始,進(jìn)度將顯示在終端上。其余的訓(xùn)練過(guò)程與Python CLI相同。

谷歌Colab方式

導(dǎo)航到https://colab.research.google.com/,并為訓(xùn)練創(chuàng)建一個(gè)新的筆記本文件。

在訓(xùn)練之前,請(qǐng)確保通過(guò)選擇右上角的“Change runtime type(更改運(yùn)行時(shí)類(lèi)型)”連接到GPU運(yùn)行時(shí)。CPU運(yùn)行時(shí)的訓(xùn)練將非常緩慢。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

將筆記本電腦運(yùn)行時(shí)從CPU更改為T(mén)4 GPU

在開(kāi)始使用Google Colab進(jìn)行任何訓(xùn)練之前,我們首先需要將數(shù)據(jù)集導(dǎo)入筆記本文件。直觀地說(shuō),最簡(jiǎn)單的方法是將數(shù)據(jù)集上傳到谷歌云端硬盤(pán),并從那里導(dǎo)入到我們的筆記本文件中。然而,上傳任何大于幾MB的數(shù)據(jù)集都需要非常長(zhǎng)的時(shí)間。解決方法是將數(shù)據(jù)集上傳到遠(yuǎn)程文件托管服務(wù)(如Amazon S3甚至是Kaggle),并將數(shù)據(jù)集直接從那里拉入我們的Colab筆記本文件。

從Kaggle導(dǎo)入

以下是如何將Kaggle數(shù)據(jù)集直接導(dǎo)入Colab筆記本文件的說(shuō)明:

在Kaggle賬戶設(shè)置中,向下滾動(dòng)到API并選擇“Create New Token”命令。這將下載一個(gè)名為kaggle.json的文件。

在筆記本單元格中運(yùn)行以下命令:

!pip install kaggle
from google.colab import files
files.upload()

上傳剛剛下載的kaggle.json文件,然后運(yùn)行以下命令:

!mkdir ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d [DATASET] # replace [DATASET] with the desired dataset ref

數(shù)據(jù)集將作為zip存檔下載。只需要使用unzip命令提取有關(guān)內(nèi)容:

!unzip dataset.zip -d dataset

開(kāi)始訓(xùn)練

在筆記本文件的文件資源管理器中創(chuàng)建一個(gè)新的config.yaml文件,并按照前面的描述進(jìn)行配置。Colab筆記本文件中的默認(rèn)工作目錄是/content/,因此數(shù)據(jù)集的絕對(duì)路徑將是/content/[dataset folder]。例如:

path: /content/dataset/ # absolute path to dataset
test: test/images # relative path to test images
train: train/images # relative path to training images
val: val/images # relative path to validation images

# classes
names:
0: bottle

確保檢查一下數(shù)據(jù)集的文件結(jié)構(gòu),以確保config.yaml中指定的路徑準(zhǔn)確。有時(shí)數(shù)據(jù)集會(huì)被放置在多個(gè)級(jí)別的文件夾中。

然后,將以下內(nèi)容作為單元格運(yùn)行:

!pip install ultralytics

import os
from ultralytics import YOLOmodel = YOLO("yolov8n.yaml")
results = model.train(data="config.yaml", epochs=100)

前面提到的用于修改本地訓(xùn)練設(shè)置的參數(shù)也適用于這里。

與本地訓(xùn)練類(lèi)似,結(jié)果、權(quán)重和圖表將保存在runs/detect/train中。

在本地進(jìn)行預(yù)測(cè)

無(wú)論你是在本地還是在云端進(jìn)行訓(xùn)練,預(yù)測(cè)都必須在本地運(yùn)行。

在模型完成訓(xùn)練后,runs/detect/train/weights中會(huì)有兩個(gè)權(quán)重,分別命名為best.pt和last.pt,分別是最佳訓(xùn)練輪次和最新訓(xùn)練輪次的權(quán)重。在本教程中,我們將使用best.pt運(yùn)行模型。

如果你在本地進(jìn)行訓(xùn)練,請(qǐng)將best.pt移動(dòng)到方便的位置(例如我們的項(xiàng)目文件夾yolov8-project)以運(yùn)行預(yù)測(cè)。如果你在云端訓(xùn)練,請(qǐng)將best.pt下載到你的本地設(shè)備上。在Google Colab上,右鍵單擊筆記本資源管理器中的文件,然后選擇“Download”(下載)命令。

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

在谷歌Colab上下載權(quán)重

與本地訓(xùn)練類(lèi)似,預(yù)測(cè)可以通過(guò)Python API或CLI運(yùn)行。

使用Python API預(yù)測(cè)

在與best.pt相同的位置,創(chuàng)建一個(gè)名為predict.py的新文件:

from ultralytics import YOLO
model = YOLO("best.pt")
results = model(source=0, show=True, conf=0.25, save=True)

與訓(xùn)練類(lèi)似,存在許多有用的參數(shù)可以修改預(yù)測(cè)設(shè)置:

  • source:控制預(yù)測(cè)的輸入源。source=0將網(wǎng)絡(luò)攝像頭設(shè)置為輸入源。更多信息請(qǐng)見(jiàn)下文。
  • show:如果為T(mén)rue,則在屏幕上顯示預(yù)測(cè)、邊界框和置信度。
  • conf:要考慮預(yù)測(cè)的最小置信度閾值。
  • save:如果為T(mén)rue,則將預(yù)測(cè)結(jié)果保存到run/retect/repredict(或predict2、predict3等)。
  • device:如前所述,在M系列Mac上使用device=“mps”。

有關(guān)預(yù)測(cè)參數(shù)的完整列表,請(qǐng)?jiān)L問(wèn):

??https://docs.ultralytics.com/modes/predict/#inference-arguments??

使用CLI預(yù)測(cè)

運(yùn)行以下CLI命令即可啟動(dòng)模型:

python3 predict.py

基于自定義數(shù)據(jù)集的YOLOv8模型實(shí)戰(zhàn)-AI.x社區(qū)

通過(guò)實(shí)時(shí)網(wǎng)絡(luò)攝像頭饋送運(yùn)行YOLOv8模型預(yù)測(cè)

CLI命令

使用CLI方式進(jìn)行預(yù)測(cè)應(yīng)用的命令是:

yolo detect predict model=best.pt source=0 show=True conf=0.25 save=True

注意到,這里所使用的參數(shù)與Python API中的參數(shù)相同。

將YOLOv8模型集成到實(shí)際場(chǎng)景

現(xiàn)在,我們已經(jīng)能夠在實(shí)時(shí)網(wǎng)絡(luò)攝像頭上成功地運(yùn)行起我們的模型,但這又會(huì)怎樣呢?我們?nèi)绾螌?shí)際使用這個(gè)模型并將其集成到實(shí)戰(zhàn)項(xiàng)目中?

讓我們從輸入和輸出的角度來(lái)考慮這個(gè)問(wèn)題。為了使這個(gè)模型成功地應(yīng)用于我們構(gòu)建的外部應(yīng)用程序中,此模型必須能夠接受有用的輸入并產(chǎn)生有用的輸出。值得慶幸的是,YOLOv8模型的靈活性使得將模型集成到各種使用場(chǎng)景中成為可能。

例如,我們可以使用source=0將網(wǎng)絡(luò)攝像頭設(shè)置為預(yù)測(cè)的輸入源。然而,YOLOv8模型可以利用比這更多的輸入源。以下是幾個(gè)例子:

results = model(source="path/to/image.jpg", show=True, conf=0.25, save=True) # static image
results = model(source="screen", show=True, conf=0.25, save=True) # screenshot of current screen
results = model(source="https://ultralytics.com/images/bus.jpg", show=True, conf=0.25, save=True) # image or video URL
results = model(source="path/to/file.csv", show=True, conf=0.25, save=True) # CSV file
results = model(source="path/to/video.mp4", show=True, conf=0.25, save=True) # video file
results = model(source="path/to/dir", show=True, conf=0.25, save=True) # all images and videos within directory
results = model(source="path/to/dir/**/*.jpg", show=True, conf=0.25, save=True) # glob expression
results = model(source="https://www.youtube.com/watch?v=dQw4w9WgXcQ", show=True, conf=0.25, save=True) # YouTube video URL

有關(guān)預(yù)測(cè)源和輸入選項(xiàng)的完整列表,請(qǐng)?jiān)L問(wèn):

??https://docs.ultralytics.com/modes/predict/#inference-sources。?

每當(dāng)我們運(yùn)行預(yù)測(cè)時(shí),YOLOv8都會(huì)以Results對(duì)象列表的形式返回大量有價(jià)值的數(shù)據(jù),其中包括有關(guān)預(yù)測(cè)的邊界框、分割掩碼、關(guān)鍵點(diǎn)、類(lèi)別概率和定向包圍盒(OBB)的信息。

由于我們?cè)诖a中將預(yù)測(cè)結(jié)果分配給results變量,因此我們可以使用它來(lái)檢索有關(guān)預(yù)測(cè)的信息:

from ultralytics import YOLO

model = YOLO("best.pt")

results = model(source="bottles.jpg", show=True, conf=0.25, save=True)

print("Bounding boxes of all detected objects in xyxy format:")
for r in results:
print(r.boxes.xyxy)

print("Confidence values of all detected objects:")
for r in results:
print(r.boxes.conf)

print("Class values of all detected objects:")
for r in results:
print(r.boxes.cls)

本教程中包含的輸出結(jié)果類(lèi)型太多,但你可以通過(guò)訪問(wèn)鏈接以了解更多信息:

??https://docs.ultralytics.com/modes/predict/#working-results。?

這里提供的只是一個(gè)非常基本的例子,說(shuō)明你可以用YOLOv8模型的輸出做點(diǎn)什么了。其實(shí),你可以通過(guò)上述列舉的很多種方式將模型應(yīng)用于自己的項(xiàng)目中。

結(jié)論

在本文中,我們終于實(shí)現(xiàn)了從頭開(kāi)始制作我們自己的YOLOv8兼容數(shù)據(jù)集,從Kaggle導(dǎo)入數(shù)據(jù)集,使用包括Python API、CLI和Google Colab在內(nèi)的多種環(huán)境來(lái)訓(xùn)練模型,然后在本地運(yùn)行我們的模型,并找到許多輸入/輸出方法,使我們能夠在自己的項(xiàng)目中利用訓(xùn)練出的YOLOv8模型。

請(qǐng)記住,本教程的目的是作為YOLOv8或計(jì)算機(jī)視覺(jué)的學(xué)習(xí)起點(diǎn)。我們當(dāng)前幾乎沒(méi)有觸及YOLOv8模型錯(cuò)綜復(fù)雜的表面,隨著你對(duì)YOLOv9和計(jì)算機(jī)視覺(jué)越來(lái)越有經(jīng)驗(yàn),深入了解這個(gè)模型絕對(duì)是明智的。

話雖如此,如果你遵循了本教程并堅(jiān)持到最后,那仍然是一個(gè)很大的成功。我希望這篇文章能幫助你對(duì)機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)和YOLOv8模型有一個(gè)基本的了解。也許你甚至對(duì)這個(gè)主題產(chǎn)生了熱情,并將在未來(lái)繼續(xù)學(xué)習(xí)更高級(jí)的內(nèi)容。

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專(zhuān)家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。

原文標(biāo)題:??The Comprehensive Guide to Training and Running YOLOv8 Models on Custom Datasets??,作者:Oliver Ma

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
欧美一区二区在线播放| 91蜜桃免费观看视频| 久久在精品线影院精品国产| 日本女人性视频| 久久久123| 久久尤物电影视频在线观看| 成人观看高清在线观看免费| 免费视频网站www| 免费欧美视频| 91精品国产免费| 日本熟妇人妻xxxxx| 日本中文字幕电影在线免费观看| 成人精品电影在线观看| 国产精品国产三级国产aⅴ9色| 午夜免费激情视频| 精品在线91| 欧美成人一级视频| 国产精品涩涩涩视频网站| 中文国产字幕在线观看| 久久精品夜夜夜夜久久| av成人午夜| 亚洲一区中文字幕在线| 亚洲精品偷拍| 久久影院模特热| 欧美亚洲色综久久精品国产| 欧美色图五月天| 日韩一区二区免费视频| 国产一级特黄a大片免费| 日本动漫理论片在线观看网站 | 久久精品国产亚洲夜色av网站| 日韩一区二区精品葵司在线| 亚洲美女爱爱视频| 欧美大片免费观看网址| 婷婷久久综合九色综合绿巨人| 亚洲一区二区精品在线| 日本福利片在线| 成人免费观看av| 亚洲一区二区三区在线视频| 亚洲一区二区激情| 免费看黄色91| 日韩av高清不卡| 国产一级片毛片| 国产一区激情| 久久99国产精品自在自在app| 日日操免费视频| 欧美日韩老妇| 亚洲网在线观看| 国产男男chinese网站| 麻豆一区二区| 亚洲激情中文字幕| 国产清纯白嫩初高中在线观看性色| 欧美a一级片| 欧美午夜精品一区二区蜜桃| 国产裸体免费无遮挡| 色戒汤唯在线观看| 精品美女永久免费视频| 99在线精品免费视频| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲视频免费观看| 国产一二三四区在线观看| 日本在线观看www| 中文字幕日韩欧美一区二区三区| 亚洲午夜高清视频| 日本在线视频网| 亚洲视频免费在线观看| 欧美黄色免费网址| 岛国片av在线| 黑人巨大精品欧美一区二区一视频| 国产妇女馒头高清泬20p多| 毛片大全在线观看| 午夜亚洲国产au精品一区二区| 亚洲中文字幕无码av永久| 97蜜桃久久| 日韩欧美高清在线视频| 午夜免费一区二区| **日韩最新| 亚洲成人久久网| www.色天使| 久久亚洲影视| 欧美激情视频网| 日本高清www免费视频| 久久综合网络一区二区| 国产精品日韩一区| www.四虎在线观看| 91在线视频观看| 少妇精品久久久久久久久久| 国产精品久久久久久福利| 一区二区三区免费在线观看| 无罩大乳的熟妇正在播放| 欧美色999| 欧美一区二区成人| 色呦呦一区二区| 成人在线一区| 欧美大片在线免费观看| 中文字幕视频网站| 国产一区二三区| 国精产品一区二区| 思思99re6国产在线播放| 亚洲一卡二卡三卡四卡五卡| 久久久免费视频网站| 亚洲天堂网站| 亚洲欧美精品一区二区| 69xx绿帽三人行| 久久综合狠狠| 国产精品免费一区二区三区| 自拍视频在线播放| 精品久久久久久久大神国产| 欧美特级aaa| 欧美丝袜美腿| 欧美乱妇高清无乱码| 国产美女www| www.在线成人| 国产成年人在线观看| 超级碰碰久久| 欧美mv日韩mv亚洲| 国产又粗又长又黄的视频| 亚洲人成高清| 91久久久久久久久久久久久| 欧美日韩伦理片| 一级日本不卡的影视| 少妇激情一区二区三区| 精品成人自拍视频| 久久不射电影网| 中文在线字幕av| 久久婷婷国产综合国色天香| www.亚洲成人网| 国产成人免费| 亚洲片国产一区一级在线观看| 久久精品国产亚洲av香蕉| 精品一区二区国语对白| 日本免费高清不卡| 一本大道色婷婷在线| 日韩欧美国产1| 成人高潮免费视频| 久久成人av少妇免费| 亚洲春色在线| 成人高清一区| 一本色道久久综合狠狠躁篇的优点 | 中文字幕二三区不卡| 日韩 欧美 高清| 日韩极品在线| 8090成年在线看片午夜| 高潮一区二区三区乱码| 亚洲激情图片qvod| 欧美污在线观看| 亚洲第一偷拍| 亚洲一区二区三区视频播放| 免费不卡视频| 5月丁香婷婷综合| 91久久久久久久久久久久久久| 免费久久精品视频| 中文字幕黄色大片| 国产95亚洲| 欧美成人精品xxx| 99在线无码精品入口| 亚洲精品久久嫩草网站秘色| 国产在线观看中文字幕| 欧美日韩爆操| 国产精品播放| 女人高潮被爽到呻吟在线观看| 日韩电影中文字幕在线观看| 51国产偷自视频区视频| 国产亚洲欧洲997久久综合| 自拍偷拍 国产| 91视频综合| 亚洲一区二区三区sesese| 欧洲成人综合网| 日韩精品中文字幕有码专区| 天天射天天干天天| 国产精品久久久久一区二区三区 | 亚洲av无码精品一区二区| 久久久国产精华| 中文字幕在线综合| 91精品国产麻豆国产在线观看 | 蜜臀av免费一区二区三区| 国产成人福利视频| 老司机午夜在线| 精品精品国产高清a毛片牛牛| 天堂资源在线播放| 国产午夜精品久久久久久久| 国产成人美女视频| 在线不卡亚洲| 日韩欧美亚洲日产国| av在线国产精品| 97免费中文视频在线观看| 久久久资源网| 欧美一卡二卡三卡四卡| aaa人片在线| 中文字幕在线一区免费| 欧产日产国产精品98| 日韩成人av影视| 300部国产真实乱| 亚洲性视频大全| 91青草视频久久| 国偷自产一区二区免费视频| 日韩最新中文字幕电影免费看| 亚洲欧美黄色片| 欧美日韩精品综合在线| 久草免费在线观看视频| 欧美激情综合五月色丁香| 手机看片国产精品| 久久午夜精品一区二区| 水蜜桃在线免费观看| 国产99亚洲| 99中文字幕| 亚洲国产91视频| 欧美自拍视频在线| 欧美xxxx少妇| www.日本久久久久com.| 亚州精品国产精品乱码不99按摩| 欧美日本一区二区三区四区| 欧美日韩精品区| 一区二区三区不卡在线观看| 亚洲av毛片基地| 91视频在线看| avtt中文字幕| 国产真实乱对白精彩久久| 国产日韩成人内射视频 | 欧美精品久久久久久久免费观看| avtt亚洲| 国产一区二区三区在线免费观看| 污污网站免费在线观看| 日韩欧美在线综合网| 这里只有精品9| 日本道精品一区二区三区| 日本系列第一页| 亚洲图片欧美视频| 久久国产波多野结衣| 国产精品美日韩| 无码人妻精品一区二区中文| 不卡的看片网站| 色哟哟视频在线| 国产成人精品影视| 激情黄色小视频| 久久精品久久综合| 在线免费视频一区| 日韩精品电影在线| 日韩欧美xxxx| 日日夜夜一区二区| 欧洲av无码放荡人妇网站| 国产一区二区三区的电影 | 在线免费看av网站| 国产精品国产成人国产三级| 久久精品色妇熟妇丰满人妻| 中文在线资源观看网站视频免费不卡| 女~淫辱の触手3d动漫| 久久久久久免费| a级大片在线观看| 久久久一区二区| 精品无码国产污污污免费网站| 久久综合色播五月| 国产精品密蕾丝袜| 欧美高清在线精品一区| 91视频免费看片| 亚洲色大成网站www久久九九| 神马午夜精品91| 亚洲精品国产一区二区精华液 | 久久99精品久久久水蜜桃| 日日天天久久| 日韩偷拍一区二区| 99re6这里只有精品| 亚洲AV无码成人精品一区| 欧美/亚洲一区| www.国产在线视频| 亚洲在线黄色| 五月婷婷激情久久| 国产一区 二区 三区一级| 国产精品91av| 91在线视频官网| 中文字幕有码在线播放| 国产精品超碰97尤物18| 久久久精品视频在线| 欧美日韩亚洲天堂| 一级二级三级视频| 日韩欧美在线影院| 可以免费看污视频的网站在线| 在线看日韩欧美| 欧美理论电影| 国产91精品网站| 国产精品一区二区三区av| 国产日韩精品推荐| 日韩在线二区| 欧美乱大交xxxxx潮喷l头像| 香蕉成人久久| 亚洲黄色片免费| 91丨九色丨黑人外教| 自拍偷拍你懂的| 亚洲va国产天堂va久久en| 久久久久久久久久成人| 欧美一区国产二区| 青青青草网站免费视频在线观看| 日韩中文字幕网| 九色porny丨国产首页在线| 国产精品偷伦一区二区| 国产精品chinese在线观看| 亚洲va久久久噜噜噜久久狠狠| 欧美日韩18| 污污网站免费观看| av一区二区三区在线| 国产精品白丝喷水在线观看| 欧美日韩精品在线观看| 91久久国语露脸精品国产高跟| 亚洲国产精品电影| 欧美成年黄网站色视频| 琪琪亚洲精品午夜在线| 国产日韩一区二区三免费高清 | 欧美一区国产在线| 黑人粗进入欧美aaaaa| 成人福利视频在线看| 中文字幕求饶的少妇| 日韩欧美黄色动漫| 高h放荡受浪受bl| 日韩中文字幕国产| 欧美18av| 精品日韩欧美| 国产精品va| 在线a免费观看| 亚洲国产精品精华液2区45| 五月天婷婷激情| 精品国产一区二区国模嫣然| 国产黄网站在线观看| 国产精品免费久久久| 一区二区美女| 欧美丰满熟妇bbbbbb百度| 高清不卡在线观看av| 免费国产羞羞网站美图| 欧美视频完全免费看| 麻豆导航在线观看| 2019中文在线观看| 久久影院资源站| 日韩黄色片在线| 国产盗摄女厕一区二区三区| 永久av免费网站| 欧美日韩一本到| 91社区在线| 国产精品十八以下禁看| 国产尤物久久久| 又色又爽又高潮免费视频国产| 91看片淫黄大片一级在线观看| 香蕉视频一区二区| 亚洲精品电影在线| 蜜桃传媒在线观看免费进入 | 一区二区理论电影在线观看| 999av视频| 欧美老妇交乱视频| 99ri日韩精品视频| 日韩成人三级视频| 成人aa视频在线观看| 国产真实乱人偷精品视频| 欧美岛国在线观看| gogo高清午夜人体在线| 国产一区二区三区色淫影院 | 亚洲一二三区视频在线观看| 午夜久久久久久久久久| 欧美精品激情在线观看| 蜜臀av一区| 国产午夜伦鲁鲁| 国产欧美日韩精品一区| 国产精品成人无码| 中文字幕在线日韩| 久久精品九色| 成人免费在线视频播放| 波多野结衣视频一区| 在线能看的av| 在线视频精品一| 24小时成人在线视频| 日韩欧美猛交xxxxx无码| 成人久久18免费网站麻豆 | 日韩成人伦理电影在线观看| 阿v天堂2014| 欧美一级久久久| av3级在线| 青青影院一区二区三区四区| 毛片av中文字幕一区二区| 51精品免费网站| 亚洲精品一区二区三区蜜桃下载 | av在线网址观看| 国产精品免费在线| 日韩精品一卡二卡三卡四卡无卡| av在线播放中文字幕| 日韩精品一区二区三区在线观看| 91九色美女在线视频| 日韩啊v在线| 国产毛片精品视频| 青青草成人av| 日韩在线视频观看正片免费网站| 视频一区中文字幕精品| 国产aaa一级片| |精品福利一区二区三区| 后进极品白嫩翘臀在线视频| 国产精品久久999| 欧美日韩国产精品一区二区亚洲| 国产高清自拍视频| 在线电影一区二区三区| 涩涩视频在线免费看| 一本一道久久a久久综合精品| 成人av在线资源| 国产又粗又猛又爽又黄视频 | 国产欧美123| 国产亚洲污的网站|