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

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

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

用自己的數(shù)據(jù)集訓(xùn)練YOLOv8實(shí)例分割模型

新機(jī)器視覺(jué) ? 來(lái)源:新缸中之腦 ? 2023-11-10 16:44 ? 次閱讀

YOLOv8 于 2023 年 1 月 10 日推出。截至目前,這是計(jì)算機(jī)視覺(jué)領(lǐng)域分類(lèi)、檢測(cè)和分割任務(wù)的最先進(jìn)模型。該模型在準(zhǔn)確性和執(zhí)行時(shí)間方面都優(yōu)于所有已知模型。

77d62b5a-7f03-11ee-939d-92fbcf53809c.png

與之前的所有 YOLO 模型相比,ultralytics 團(tuán)隊(duì)在使該模型更易于使用方面做得非常好 — 你甚至不必再克隆 git 存儲(chǔ)庫(kù)!

01創(chuàng)建圖像數(shù)據(jù)集

在這篇文章中,我創(chuàng)建了一個(gè)非常簡(jiǎn)單的示例,展示了在數(shù)據(jù)上訓(xùn)練 YOLOv8 所需執(zhí)行的所有操作,特別是針對(duì)分割任務(wù)。數(shù)據(jù)集很小,并且模型“易于學(xué)習(xí)”,這樣我們就可以在簡(jiǎn)單的 CPU 上訓(xùn)練幾秒鐘后得到令人滿(mǎn)意的結(jié)果。

我們將創(chuàng)建一個(gè)黑色背景白色圓圈的數(shù)據(jù)集。圓圈的大小各不相同。我們將訓(xùn)練一個(gè)模型來(lái)分割圖像內(nèi)的圓圈。

數(shù)據(jù)集如下所示:

數(shù)據(jù)集是使用以下代碼生成的:

import numpy as np
from PIL import Image
from skimage import draw
import random
from pathlib import Path

def create_image(path, img_size, min_radius):
    path.parent.mkdir( parents=True, exist_ok=True )
    
    arr = np.zeros((img_size, img_size)).astype(np.uint8)
    center_x = random.randint(min_radius, (img_size-min_radius))
    center_y = random.randint(min_radius, (img_size-min_radius))
    max_radius = min(center_x, center_y, img_size - center_x, img_size - center_y)
    radius = random.randint(min_radius, max_radius)

    row_indxs, column_idxs = draw.ellipse(center_x, center_y, radius, radius, shape=arr.shape)
    
    arr[row_indxs, column_idxs] = 255

    im = Image.fromarray(arr)
    im.save(path)

def create_images(data_root_path, train_num, val_num, test_num, img_size=640, min_radius=10):
    data_root_path = Path(data_root_path)
    
    for i in range(train_num):
        create_image(data_root_path / 'train' / 'images' / f'img_{i}.png', img_size, min_radius)
        
    for i in range(val_num):
        create_image(data_root_path / 'val' / 'images' / f'img_{i}.png', img_size, min_radius)
        
    for i in range(test_num):
        create_image(data_root_path / 'test' / 'images' / f'img_{i}.png', img_size, min_radius)

create_images('datasets', train_num=120, val_num=40, test_num=40, img_size=120, min_radius=10)

02創(chuàng)建標(biāo)簽

現(xiàn)在有了圖像數(shù)據(jù)集,我們需要為圖像創(chuàng)建標(biāo)簽。通常,需要為此做一些手動(dòng)工作,但由于我們創(chuàng)建的數(shù)據(jù)集非常簡(jiǎn)單,因此創(chuàng)建生成標(biāo)簽的代碼非常容易:

from rasterio import features

def create_label(image_path, label_path):
    arr = np.asarray(Image.open(image_path))

    # There may be a better way to do it, but this is what I have found so far
    cords = list(features.shapes(arr, mask=(arr >0)))[0][0]['coordinates'][0]
    label_line = '0 ' + ' '.join([f'{int(cord[0])/arr.shape[0]} {int(cord[1])/arr.shape[1]}' for cord in cords])

    label_path.parent.mkdir( parents=True, exist_ok=True )
    with label_path.open('w') as f:
        f.write(label_line)

for images_dir_path in [Path(f'datasets/{x}/images') for x in ['train', 'val', 'test']]:
    for img_path in images_dir_path.iterdir():
        label_path = img_path.parent.parent / 'labels' / f'{img_path.stem}.txt'
        label_line = create_label(img_path, label_path)

以下是標(biāo)簽文件內(nèi)容的示例:

0 0.0767 0.08433 0.1417 0.08433 0.1417 0.0917 0.15843 0.0917 0.15843 0.1 0.1766 0.1 0.1766 0.10844 0.175 0.10844 0.175 0.1177 0.18432 0.1177 0.18432 0.14333 0.1918 0.14333 0.1918 0.20844 0.18432 0.20844 0.18432 0.225 0.175 0.225 0.175 0.24334 0.1766 0.24334 0.1766 0.2417 0.15843 0.2417 0.15843 0.25 0.1417 0.25 0.1417 0.25846 0.0767 0.25846 0.0767 0.25 0.05 0.25 0.05 0.2417 0.04174 0.2417 0.04174 0.24334 0.04333 0.24334 0.04333 0.225 0.025 0.225 0.025 0.20844 0.01766 0.20844 0.01766 0.14333 0.025 0.14333 0.025 0.1177 0.04333 0.1177 0.04333 0.10844 0.04174 0.10844 0.04174 0.1 0.05 0.1 0.05 0.0917 0.0767 0.0917 0.0767 0.08433

標(biāo)簽對(duì)應(yīng)于該圖像:

標(biāo)簽內(nèi)容只是一個(gè)文本行。每張圖像中只有一個(gè)對(duì)象(圓圈),每個(gè)對(duì)象在文件中由一行表示。如果每張圖像中有多個(gè)對(duì)象,則應(yīng)為每個(gè)標(biāo)記的對(duì)象創(chuàng)建一條線(xiàn)。

第一個(gè) 0 代表標(biāo)簽的類(lèi)別類(lèi)型。因?yàn)槲覀冎挥幸环N類(lèi)類(lèi)型(圓形),所以總是 0。如果數(shù)據(jù)中有多個(gè)類(lèi),則應(yīng)該將每個(gè)類(lèi)映射到一個(gè)數(shù)字(0、1、2…),并在標(biāo)簽文件中使用該數(shù)字。

所有其他數(shù)字表示標(biāo)記對(duì)象的邊界多邊形的坐標(biāo)。格式為 并且坐標(biāo)相對(duì)于圖像的大小 - 您應(yīng)該將坐標(biāo)標(biāo)準(zhǔn)化為 1x1 圖像大小。例如,如果有一個(gè)點(diǎn) (15, 75) 并且圖像大小為 120x120,則歸一化點(diǎn)為 (15/120, 75/120) = (0.125, 0.625)。

在處理圖像庫(kù)時(shí)獲取坐標(biāo)的正確方向性總是令人困惑。所以為了明確這一點(diǎn),對(duì)于YOLO來(lái)說(shuō),X坐標(biāo)是從左到右,Y坐標(biāo)是從上到下。

03YAML 配置

我們有了圖像和標(biāo)簽。現(xiàn)在需要使用數(shù)據(jù)集配置創(chuàng)建一個(gè) YAML 文件:

yaml_content = f'''
train: train/images
val: val/images
test: test/images

names: ['circle']
    '''
    
with Path('data.yaml').open('w') as f:
    f.write(yaml_content)

請(qǐng)注意,如果你有更多對(duì)象類(lèi)類(lèi)型,則需要按照在標(biāo)簽文件中的順序?qū)⑺鼈兲砑拥矫Q(chēng)數(shù)組中。第一個(gè)是 0,第二個(gè)是 1,等等...

04數(shù)據(jù)集文件結(jié)構(gòu)

讓我們看看使用 Linux 樹(shù)命令創(chuàng)建的文件結(jié)構(gòu):

tree .
data.yaml
datasets/
├── test
│   ├── images
│   │   ├── img_0.png
│   │   ├── img_1.png
│   │   ├── img_2.png
│   │   ├── ...
│   └── labels
│       ├── img_0.txt
│       ├── img_1.txt
│       ├── img_2.txt
│       ├── ...
├── train
│   ├── images
│   │   ├── img_0.png
│   │   ├── img_1.png
│   │   ├── img_2.png
│   │   ├── ...
│   └── labels
│       ├── img_0.txt
│       ├── img_1.txt
│       ├── img_2.txt
│       ├── ...
|── val
|   ├── images
│   │   ├── img_0.png
│   │   ├── img_1.png
│   │   ├── img_2.png
│   │   ├── ...
|   └── labels
│       ├── img_0.txt
│       ├── img_1.txt
│       ├── img_2.txt
│       ├── ...

05訓(xùn)練模型

現(xiàn)在我們有了圖像和標(biāo)簽,可以開(kāi)始訓(xùn)練模型了。首先讓我們安裝這個(gè)包:

pip install ultralytics==8.0.38

ultralytics 庫(kù)變化非??欤袝r(shí)會(huì)破壞 API,所以我更喜歡堅(jiān)持使用一個(gè)版本。下面的代碼取決于版本 8.0.38(我寫(xiě)這篇文章時(shí)的最新版本)。如果你升級(jí)到較新的版本,也許需要進(jìn)行一些代碼調(diào)整才能使其正常工作。

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

from ultralytics import YOLO

model = YOLO("yolov8n-seg.pt")

results = model.train(
        batch=8,
        device="cpu",
        data="data.yaml",
        epochs=7,
        imgsz=120,
    )

為了這篇文章的簡(jiǎn)單性,我使用 Nano 模型 (yolov8n-seg),我僅在 CPU 上訓(xùn)練它,只有 7 個(gè) epoch。在我的筆記本電腦上進(jìn)行訓(xùn)練只花了幾秒鐘。

有關(guān)可用于訓(xùn)練模型的參數(shù)的更多信息,你可以點(diǎn)擊這里查看。

06理解結(jié)果

訓(xùn)練完成后,你將在輸出末尾看到與此類(lèi)似的一行:

Results saved to runs/segment/train60

讓我們看一下此處找到的一些結(jié)果:

驗(yàn)證標(biāo)注:

from IPython.display import Image as show_image
show_image(filename="runs/segment/train60/val_batch0_labels.jpg")

在這里我們可以看到驗(yàn)證集部分的真實(shí)標(biāo)注。這應(yīng)該幾乎完全對(duì)齊。如果你發(fā)現(xiàn)這些標(biāo)注沒(méi)有很好地覆蓋物體,那么標(biāo)注很可能是不正確的。

預(yù)測(cè)的驗(yàn)證標(biāo)簽:

show_image(filename="runs/segment/train60/val_batch0_pred.jpg")

在這里,我們可以看到訓(xùn)練模型對(duì)部分驗(yàn)證集(與我們上面看到的相同部分)所做的預(yù)測(cè)。這可以讓你了解模型的表現(xiàn)如何。請(qǐng)注意,為了創(chuàng)建此圖像,應(yīng)選擇置信度閾值,此處使用的閾值是 0.5,這并不總是最佳閾值(我們將在稍后討論)。

精度曲線(xiàn):

要理解這張圖表和下一張圖表,你需要熟悉精確度和召回率概念。這里很好地解釋了它們的工作原理。

show_image(filename="runs/segment/train60/MaskP_curve.png")

7862c42a-7f03-11ee-939d-92fbcf53809c.png

模型檢測(cè)到的每個(gè)對(duì)象都有一定的置信度,通常,如果在聲明“這是一個(gè)圓”時(shí)盡可能確定對(duì)你來(lái)說(shuō)很重要,你將僅使用高置信度值(高置信度閾值)。當(dāng)然,這需要權(quán)衡——你可能會(huì)錯(cuò)過(guò)一些“圈子”。另一方面,如果你想“捕獲”盡可能多的“圓圈”,但要權(quán)衡其中一些不是真正的“圓圈”,可以同時(shí)使用低置信度值和高置信度值(低置信度閾值)。

上圖(以及下圖)可幫助你決定使用哪個(gè)置信閾值。在我們的例子中,我們可以看到,對(duì)于高于 0.128 的閾值,我們獲得 100% 的精度,這意味著所有對(duì)象都被正確預(yù)測(cè)。

請(qǐng)注意,因?yàn)槲覀儗?shí)際上是在做分割任務(wù),所以我們需要擔(dān)心另一個(gè)重要的閾值——IoU(交并集),如果你不熟悉,你可以在這里閱讀介紹文章。對(duì)于此圖表,使用的 IoU 為 0.5。

召回曲線(xiàn):

show_image(filename="runs/segment/train60/MaskR_curve.png")
788a35aa-7f03-11ee-939d-92fbcf53809c.png ? ?

在這里你可以看到召回率圖表,隨著置信度閾值的上升,召回率下降。這意味著你“抓住”的“圓圈”更少。

在這里你可以明白為什么在這種情況下使用 0.5 置信度閾值是一個(gè)壞主意。對(duì)于 0.5 的閾值,可以獲得大約 90% 的召回率。然而,在精度曲線(xiàn)中,我們看到對(duì)于高于 0.128 的閾值,我們獲得 100% 的精度,因此我們不需要達(dá)到 0.5,我們可以安全地使用 0.128 閾值并獲得 100% 的精度和幾乎 100% 記起 :)

精確率-召回率曲線(xiàn):

這是精確率-召回率曲線(xiàn)的一個(gè)很好的解釋

show_image(filename="runs/segment/train60/MaskPR_curve.png")
78a1468c-7f03-11ee-939d-92fbcf53809c.png ?

這里我們可以清楚地看到之前得出的結(jié)論,對(duì)于這個(gè)模型,我們可以達(dá)到幾乎 100% 的精確率和 100% 的召回率。

這個(gè)圖表的缺點(diǎn)是我們看不到應(yīng)該使用什么閾值,這就是為什么我們?nèi)匀恍枰厦娴膱D表。

隨時(shí)間的推移損失

show_image(filename="runs/segment/train60/results.png")
78bae54c-7f03-11ee-939d-92fbcf53809c.png ?

在這里,你可以看到不同損失在訓(xùn)練過(guò)程中如何變化,以及它們?cè)诿總€(gè)時(shí)期后在驗(yàn)證集上的表現(xiàn)如何。

關(guān)于損失,以及可以從這些圖表中得出的結(jié)論,有很多話(huà)要說(shuō),但是,這超出了本文的范圍。我只是想說(shuō)你可以在這里找到它:)

07使用訓(xùn)練好的模型

可以在結(jié)果目錄中找到的另一件事是模型本身。以下是如何在新圖像上使用該模型:

my_model = YOLO('runs/segment/train60/weights/best.pt')
results = list(my_model('datasets/test/images/img_5.png', conf=0.128))
result = results[0]

結(jié)果列表可能有多個(gè)值,每個(gè)值對(duì)應(yīng)一個(gè)檢測(cè)到的對(duì)象。因?yàn)樵诖耸纠?,每個(gè)圖像中只有一個(gè)對(duì)象,所以我們采用第一個(gè)列表項(xiàng)。

你可以看到我在這里傳遞了我們之前找到的最佳置信度閾值 (0.128)。

有兩種方法可以獲取檢測(cè)到的對(duì)象在圖像中的實(shí)際位置。選擇正確的方法取決于你打算如何處理結(jié)果。我將展示這兩種方式。

result.masks.segments
[array([[    0.10156,     0.34375],
        [    0.09375,     0.35156],
        [    0.09375,     0.35937],
        [   0.078125,       0.375],
        [   0.070312,       0.375],
        [     0.0625,     0.38281],
        [    0.38281,     0.71094],
        [    0.39062,     0.71094],
        [    0.39844,     0.70312],
        [    0.39844,     0.69531],
        [    0.41406,     0.67969],
        [    0.42187,     0.67969],
        [    0.44531,     0.46875],
        [    0.42969,     0.45312],
        [    0.42969,     0.41406],
        [    0.42187,     0.40625],
        [    0.41406,     0.40625],
        [    0.39844,     0.39062],
        [    0.39844,     0.38281],
        [    0.39062,       0.375],
        [    0.38281,       0.375],
        [    0.35156,     0.34375]], dtype=float32)]

這將返回對(duì)象的邊界多邊形,類(lèi)似于我們傳遞標(biāo)記數(shù)據(jù)的格式。

第二種方式:

result.masks.masks
tensor([[[0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         ...,
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.],
         [0., 0., 0.,  ..., 0., 0., 0.]]])

這將返回一個(gè)形狀為 (1, 128, 128) 的張量,表示圖像中的所有像素。作為對(duì)象一部分的像素接收 1,背景像素接收 0。

我們來(lái)看看面具是什么樣子的:

import torchvision.transforms as T
T.ToPILImage()(result.masks.masks).show()

圖像的預(yù)測(cè)分割

這是原始圖像:

雖然并不完美,但對(duì)于很多應(yīng)用來(lái)說(shuō)已經(jīng)足夠好了,而且 IoU 肯定高于 0.5。

08結(jié)束語(yǔ)

總之,與之前的 Yolo 版本相比,新的 ultralytics 庫(kù)更容易使用,尤其是對(duì)于分割任務(wù),它現(xiàn)在是一等公民。你可以發(fā)現(xiàn) Yolov5 也是 ultralytics 新軟件包的一部分,所以如果你不想使用新的 Yolo 版本(它仍然是新的和實(shí)驗(yàn)性的),你可以使用眾所周知的 yolov5:

790dd072-7f03-11ee-939d-92fbcf53809c.png

轉(zhuǎn)自新缸中之腦

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207895
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    658

    瀏覽量

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

    關(guān)注

    1

    文章

    3032

    瀏覽量

    48348
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1197

    瀏覽量

    24535

原文標(biāo)題:用自己的數(shù)據(jù)集訓(xùn)練YOLOv8實(shí)例分割模型

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于YOLOv8實(shí)現(xiàn)自定義姿態(tài)評(píng)估模型訓(xùn)練

    Hello大家好,今天給大家分享一下如何基于YOLOv8姿態(tài)評(píng)估模型,實(shí)現(xiàn)在自定義數(shù)據(jù)集上,完成自定義姿態(tài)評(píng)估模型訓(xùn)練與推理。
    的頭像 發(fā)表于 12-25 11:29 ?2417次閱讀
    基于<b class='flag-5'>YOLOv8</b>實(shí)現(xiàn)自定義姿態(tài)評(píng)估<b class='flag-5'>模型</b><b class='flag-5'>訓(xùn)練</b>

    【愛(ài)芯派 Pro 開(kāi)發(fā)板試用體驗(yàn)】yolov8模型轉(zhuǎn)換

    嘗試將最新的yolov8模型轉(zhuǎn)換為愛(ài)芯派的模型。 環(huán)境準(zhǔn)備 準(zhǔn)備Docker環(huán)境 首先自己在任意機(jī)器上準(zhǔn)備好docker環(huán)境,詳細(xì)步驟見(jiàn)官網(wǎng)。 Docker 鏡像文件 準(zhǔn)備 yolo
    發(fā)表于 11-20 12:19

    使用YOLOv8做目標(biāo)檢測(cè)和實(shí)例分割的演示

    YOLOv8是來(lái)自Ultralytics的最新的基于YOLO的對(duì)象檢測(cè)模型系列,提供最先進(jìn)的性能。
    的頭像 發(fā)表于 02-06 10:11 ?6913次閱讀

    YOLOv8自定義數(shù)據(jù)集訓(xùn)練模型部署推理簡(jiǎn)析

    如果你只是想使用而不是開(kāi)發(fā),強(qiáng)烈推薦通過(guò)pip安裝方式獲取YOLOv8包!YOLOv8安裝命令行
    的頭像 發(fā)表于 03-24 09:27 ?4350次閱讀

    TensorRT 8.6 C++開(kāi)發(fā)環(huán)境配置與YOLOv8實(shí)例分割推理演示

    對(duì)YOLOv8實(shí)例分割TensorRT 推理代碼已經(jīng)完成C++類(lèi)封裝,三行代碼即可實(shí)現(xiàn)YOLOv8對(duì)象檢測(cè)與實(shí)例
    的頭像 發(fā)表于 04-25 10:49 ?5284次閱讀
    TensorRT 8.6 C++開(kāi)發(fā)環(huán)境配置與<b class='flag-5'>YOLOv8</b><b class='flag-5'>實(shí)例</b><b class='flag-5'>分割</b>推理演示

    在AI愛(ài)克斯開(kāi)發(fā)板上OpenVINO?加速YOLOv8分類(lèi)模型

    本系列文章將在 AI 愛(ài)克斯開(kāi)發(fā)板上使用 OpenVINO 開(kāi)發(fā)套件依次部署并測(cè)評(píng) YOLOv8 的分類(lèi)模型、目標(biāo)檢測(cè)模型、實(shí)例分割
    的頭像 發(fā)表于 05-05 11:47 ?904次閱讀
    在AI愛(ài)克斯開(kāi)發(fā)板上<b class='flag-5'>用</b>OpenVINO?加速<b class='flag-5'>YOLOv8</b>分類(lèi)<b class='flag-5'>模型</b>

    在AI愛(ài)克斯開(kāi)發(fā)板上OpenVINO?加速YOLOv8目標(biāo)檢測(cè)模型

    《在 AI 愛(ài)克斯開(kāi)發(fā)板上 OpenVINO 加速 YOLOv8 分類(lèi)模型》介紹了在 AI 愛(ài)克斯開(kāi)發(fā)板上使用 OpenVINO 開(kāi)發(fā)套件部署并測(cè)評(píng) YOLOv8 的分類(lèi)
    的頭像 發(fā)表于 05-12 09:08 ?1151次閱讀
    在AI愛(ài)克斯開(kāi)發(fā)板上<b class='flag-5'>用</b>OpenVINO?加速<b class='flag-5'>YOLOv8</b>目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    AI愛(ài)克斯開(kāi)發(fā)板上使用OpenVINO加速YOLOv8目標(biāo)檢測(cè)模型

    《在AI愛(ài)克斯開(kāi)發(fā)板上OpenVINO加速YOLOv8分類(lèi)模型》介紹了在AI愛(ài)克斯開(kāi)發(fā)板上使用OpenVINO 開(kāi)發(fā)套件部署并測(cè)評(píng)YOLOv8的分類(lèi)
    的頭像 發(fā)表于 05-26 11:03 ?1077次閱讀
    AI愛(ài)克斯開(kāi)發(fā)板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目標(biāo)檢測(cè)<b class='flag-5'>模型</b>

    在AI愛(ài)克斯開(kāi)發(fā)板上OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛(ài)克斯開(kāi)發(fā)板上 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛(ài)克斯開(kāi)發(fā)板上使用 OpenVINO 開(kāi)發(fā)套件部署并測(cè)評(píng) YOLOv8 的目標(biāo)檢測(cè)
    的頭像 發(fā)表于 06-05 11:52 ?856次閱讀
    在AI愛(ài)克斯開(kāi)發(fā)板上<b class='flag-5'>用</b>OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg<b class='flag-5'>實(shí)例</b><b class='flag-5'>分割</b><b class='flag-5'>模型</b>

    教你如何用兩行代碼搞定YOLOv8各種模型推理

    大家好,YOLOv8 框架本身提供的API函數(shù)是可以?xún)尚写a實(shí)現(xiàn) YOLOv8 模型推理,這次我把這段代碼封裝成了一個(gè)類(lèi),只有40行代碼左右,可以同時(shí)支持YOLOv8對(duì)象檢測(cè)、
    的頭像 發(fā)表于 06-18 11:50 ?2752次閱讀
    教你如何用兩行代碼搞定<b class='flag-5'>YOLOv8</b>各種<b class='flag-5'>模型</b>推理

    在AI愛(ài)克斯開(kāi)發(fā)板上OpenVINO?加速YOLOv8-seg實(shí)例分割模型

    《在 AI 愛(ài)克斯開(kāi)發(fā)板上 OpenVINO 加速 YOLOv8 目標(biāo)檢測(cè)模型》介紹了在 AI 愛(ài)克斯開(kāi)發(fā)板上使用 OpenVINO 開(kāi)發(fā)套件部署并測(cè)評(píng) YOLOv8 的目標(biāo)檢測(cè)
    的頭像 發(fā)表于 06-30 10:43 ?769次閱讀
    在AI愛(ài)克斯開(kāi)發(fā)板上<b class='flag-5'>用</b>OpenVINO?加速<b class='flag-5'>YOLOv8</b>-seg<b class='flag-5'>實(shí)例</b><b class='flag-5'>分割</b><b class='flag-5'>模型</b>

    三種主流模型部署框架YOLOv8推理演示

    深度學(xué)習(xí)模型部署有OpenVINO、ONNXRUNTIME、TensorRT三個(gè)主流框架,均支持Python與C++的SDK使用。對(duì)YOLOv5~YOLOv8的系列模型,均可以通過(guò)C+
    的頭像 發(fā)表于 08-06 11:39 ?2379次閱讀

    YOLOv8實(shí)現(xiàn)任意目錄下命令行訓(xùn)練

    當(dāng)你使用YOLOv8命令行訓(xùn)練模型的時(shí)候,如果當(dāng)前執(zhí)行的目錄下沒(méi)有相關(guān)的預(yù)訓(xùn)練模型文件,YOLOv8
    的頭像 發(fā)表于 09-04 10:50 ?938次閱讀
    <b class='flag-5'>YOLOv8</b>實(shí)現(xiàn)任意目錄下命令行<b class='flag-5'>訓(xùn)練</b>

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

    YOLOv8是一種令人驚嘆的分割模型;它易于訓(xùn)練、測(cè)試和部署。在本教程中,我們將學(xué)習(xí)如何在自定義數(shù)據(jù)集上使用
    的頭像 發(fā)表于 12-20 10:51 ?615次閱讀
    基于<b class='flag-5'>YOLOv8</b>的自定義醫(yī)學(xué)圖像<b class='flag-5'>分割</b>

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

    YOLOv8框架在在支持分類(lèi)、對(duì)象檢測(cè)、實(shí)例分割、姿態(tài)評(píng)估的基礎(chǔ)上更近一步,現(xiàn)已經(jīng)支持旋轉(zhuǎn)對(duì)象檢測(cè)(OBB),基于DOTA數(shù)據(jù)集,支持航拍圖像的15個(gè)類(lèi)別對(duì)象檢測(cè),包括車(chē)輛、船只、典型
    的頭像 發(fā)表于 01-11 10:43 ?1370次閱讀
    <b class='flag-5'>YOLOv8</b>實(shí)現(xiàn)旋轉(zhuǎn)對(duì)象檢測(cè)