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

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

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

YOLOv10自定義目標(biāo)檢測之理論+實(shí)踐

新機(jī)器視覺 ? 來源:新機(jī)器視覺 ? 2024-11-16 10:23 ? 次閱讀

概述

YOLOv10 是由清華大學(xué)研究人員利用 Ultralytics Python 軟件包開發(fā)的,它通過改進(jìn)模型架構(gòu)并消除非極大值抑制(NMS)提供了一種新穎的實(shí)時(shí)目標(biāo)檢測方法。這些優(yōu)化使得模型在保持先進(jìn)性能的同時(shí),降低了計(jì)算需求。大量實(shí)驗(yàn)表明,YOLOv10 在各種模型規(guī)模上提供了更優(yōu)的準(zhǔn)確率-延遲權(quán)衡。

正如讀過我之前文章的朋友所知道的,我分享了使用 YOLO 模型的各種項(xiàng)目,因?yàn)樵陬A(yù)訓(xùn)練模型中,YOLO 模型在性能和效率方面明顯優(yōu)于其他模型。然而,實(shí)時(shí)目標(biāo)檢測由于依賴非極大值抑制(NMS)和架構(gòu)效率低下而面臨挑戰(zhàn)。YOLOv10 通過消除 NMS 并采用專注于效率和準(zhǔn)確性的設(shè)計(jì)策略解決了這些問題。

架構(gòu)

7e74ea22-907e-11ef-a511-92fbcf53809c.png

來自 Ultralytics 的圖示

骨干網(wǎng)絡(luò):負(fù)責(zé)特征提取,YOLOv10 的骨干網(wǎng)絡(luò)使用增強(qiáng)版的 CSPNet(交叉階段部分網(wǎng)絡(luò))來改善梯度流動(dòng)并減少計(jì)算冗余。

頸部網(wǎng)絡(luò):設(shè)計(jì)用于聚合不同尺度的特征并將其傳遞到頭部網(wǎng)絡(luò)。它包含用于有效多尺度特征融合的 PAN(路徑聚合網(wǎng)絡(luò))層。

一對多頭:在訓(xùn)練過程中為每個(gè)對象生成多個(gè)預(yù)測,以提供豐富的監(jiān)督信號(hào)并提高學(xué)習(xí)準(zhǔn)確性。

一對一頭:在推理過程中為每個(gè)對象生成一個(gè)最佳預(yù)測,消除 NMS 的需要,從而減少延遲并提高效率。

模型變體及性能YOLOv10 提供六種模型:

YOLOv10-N:用于極其資源受限環(huán)境的納米版。

YOLOv10-S:平衡速度和準(zhǔn)確性的小型版。

YOLOv10-M:用于通用的中型版。

YOLOv10-B:增加寬度以提高準(zhǔn)確性的平衡版。

YOLOv10-L:在增加計(jì)算資源成本的情況下提高準(zhǔn)確性的高級(jí)版。

YOLOv10-X:用于最大化準(zhǔn)確性的超大型版。

7ea01b02-907e-11ef-a511-92fbcf53809c.png

來自 Ultralytics 的圖示

比較讓我們看看在標(biāo)準(zhǔn)基準(zhǔn)(如 COCO)上測試的不同模型在延遲和準(zhǔn)確性方面的比較。

7eb47d86-907e-11ef-a511-92fbcf53809c.png

7ed6e9e8-907e-11ef-a511-92fbcf53809c.png

很明顯,YOLOv10 是實(shí)時(shí)目標(biāo)檢測應(yīng)用的前沿技術(shù),以更少的參數(shù)提供更高的準(zhǔn)確性和速度性能。

訓(xùn)練 YOLOv10 進(jìn)行自定義目標(biāo)檢測首先,克隆官方 YOLOv10 GitHub 倉庫以下載必要的 yolov10n 模型。

!pip install -q git+https://github.com/THU-MIG/yolov10.git


!wget -P -q https://github.com/jameslahm/yolov10/releases/download/v1.0/yolov10n.pt

您可以在 Roboflow Universe 上嘗試任何自定義項(xiàng)目,創(chuàng)建自己的數(shù)據(jù)集,甚至使用由 Intel 贊助的 RF100 數(shù)據(jù)集。對于本文,我將使用一個(gè)預(yù)先準(zhǔn)備好的數(shù)據(jù)集,用于檢測 X 射線圖像中的危險(xiǎn)物品。數(shù)據(jù)集鏈接:https://universe.roboflow.com/vladutc/x-ray-baggage

使用 Roboflow API 以 YOLOv8 格式下載您的模型。

!pip install -q roboflow
from roboflow import Roboflow
rf = Roboflow(api_key="your-api-key")
project = rf.workspace("vladutc").project("x-ray-baggage")
version = project.version(3)
dataset = version.download("yolov8")

配置參數(shù),開始訓(xùn)練:

!yolo task=detect mode=train epochs=25 batch=32 plots=True 
model='/content/-q/yolov10n.pt' 
data='/content/X-Ray-Baggage-3/data.yaml'

示例 data.yaml 文件

names:
- Gun
- Knife
- Pliers
- Scissors
- Wrench


nc: 5


roboflow:
  license: CC BY 4.0
  project: x-ray-baggage
  url: https://universe.roboflow.com/vladutc/x-ray-baggage/dataset/3
  version: 3
  workspace: vladutc


test: /content/X-Ray-Baggage-3/test/images
train: /content/X-Ray-Baggage-3/train/images
val: /content/X-Ray-Baggage-3/valid/images

讓我們看看結(jié)果。

Image(filename='/content/runs/detect/train/results.png', width=1000)

7f01287a-907e-11ef-a511-92fbcf53809c.png

讓我們預(yù)測測試數(shù)據(jù)并在 5x2 網(wǎng)格中顯示結(jié)果。

from ultralytics import YOLOv10


model_path = '/content/runs/detect/train/weights/best.pt'
model = YOLOv10(model_path)
results = model(source='/content/X-Ray-Baggage-3/test/images', conf=0.25,save=True)
import glob
import matplotlib.pyplot as plt
import matplotlib.image as mpimg


images = glob.glob('/content/runs/detect/predict/*.jpg')


images_to_display = images[:10]


fig, axes = plt.subplots(2, 5, figsize=(20, 10))


for i, ax in enumerate(axes.flat):
    if i < len(images_to_display):
        img = mpimg.imread(images_to_display[i])
        ax.imshow(img)
        ax.axis('off')  
    else:
        ax.axis('off')  


plt.tight_layout()
plt.show()

7f26fb68-907e-11ef-a511-92fbcf53809c.png

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

    關(guān)注

    0

    文章

    209

    瀏覽量

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

    關(guān)注

    4

    文章

    1208

    瀏覽量

    24746

原文標(biāo)題:YOLOv10 自定義目標(biāo)檢測 | 理論+實(shí)踐

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    think-cell:自定義think-cell(四)

    C.5 設(shè)置默認(rèn)議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片上的其他形狀,例如標(biāo)題或圖片。通過將此自定義布局添加到模板,您可以為整個(gè)組織
    的頭像 發(fā)表于 01-13 10:37 ?45次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    智能語音識(shí)別照明解決方案,平臺(tái)自定義,中英切換

    智能語音識(shí)別照明方案引入NRK3502芯片,支持平臺(tái)自定義,離線控制,中英雙語切換。NRK3502具備高性能和靈活自定義能力,可推動(dòng)智能照明革新,控制其他智能設(shè)備,為國際用戶提供全方位智能生活體驗(yàn)。
    的頭像 發(fā)表于 01-10 13:23 ?44次閱讀
    智能語音識(shí)別照明解決方案,平臺(tái)<b class='flag-5'>自定義</b>,中英切換

    think-cell;自定義think-cell(一)

    本章介紹如何自定義 think-cell,即如何更改默認(rèn)顏色和其他默認(rèn)屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個(gè)部分中進(jìn)行討論。 第五部分 C.5 設(shè)置默認(rèn)議程幻燈片
    的頭像 發(fā)表于 01-08 11:31 ?96次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    Flexus X 實(shí)例 ultralytics 模型 yolov10 深度學(xué)習(xí) AI 部署與應(yīng)用

    前言: ???深度學(xué)習(xí)新紀(jì)元,828 B2B 企業(yè)節(jié) Flexus X 實(shí)例特惠!想要高效訓(xùn)練 YOLOv10 模型,實(shí)現(xiàn)精準(zhǔn)圖像識(shí)別?Flexus X 以卓越算力,助您輕松駕馭大規(guī)模數(shù)據(jù)集,加速
    的頭像 發(fā)表于 12-24 12:24 ?324次閱讀
    Flexus X 實(shí)例 ultralytics 模型 <b class='flag-5'>yolov10</b> 深度學(xué)習(xí) AI 部署與應(yīng)用

    YOLOv10:引領(lǐng)無NMS實(shí)時(shí)目標(biāo)檢測的新紀(jì)元

    。 YOLO(You Only Look Once)系列一直是實(shí)時(shí)目標(biāo)檢測的基準(zhǔn),成功平衡了計(jì)算成本和檢測性能。盡管在架構(gòu)設(shè)計(jì)和優(yōu)化策略方面取得了進(jìn)展,但對非最大值抑制(NMS)的依賴阻礙了端到端部署,影響了推理延遲。
    的頭像 發(fā)表于 11-13 17:12 ?866次閱讀
    <b class='flag-5'>YOLOv10</b>:引領(lǐng)無NMS實(shí)時(shí)<b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測</b>的新紀(jì)元

    創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)

    電子發(fā)燒友網(wǎng)站提供《創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL).pdf》資料免費(fèi)下載
    發(fā)表于 09-19 10:50 ?0次下載
    創(chuàng)建<b class='flag-5'>自定義</b>的基于閃存的引導(dǎo)加載程序(BSL)

    EtherCAT運(yùn)動(dòng)控制器PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃

    EtherCAT運(yùn)動(dòng)控制器PT/PVT實(shí)現(xiàn)用戶自定義軌跡規(guī)劃。
    的頭像 發(fā)表于 08-15 11:49 ?672次閱讀
    EtherCAT運(yùn)動(dòng)控制器PT/PVT實(shí)現(xiàn)用戶<b class='flag-5'>自定義</b>軌跡規(guī)劃

    NVIDIA NeMo加速并簡化自定義模型開發(fā)

    如果企業(yè)希望充分發(fā)揮出 AI 的力量,就需要根據(jù)其行業(yè)需求量身定制的自定義模型。
    的頭像 發(fā)表于 07-26 11:17 ?778次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b>模型開發(fā)

    用OpenVINO C# API在intel平臺(tái)部署YOLOv10目標(biāo)檢測模型

    的模型設(shè)計(jì)策略,從效率和精度兩個(gè)角度對YOLOs的各個(gè)組成部分進(jìn)行了全面優(yōu)化,大大降低了計(jì)算開銷,增強(qiáng)了性能。在本文中,我們將結(jié)合OpenVINO C# API使用最新發(fā)布的OpenVINO 2024.1部署YOLOv10目標(biāo)檢測
    的頭像 發(fā)表于 06-21 09:23 ?1078次閱讀
    用OpenVINO C# API在intel平臺(tái)部署<b class='flag-5'>YOLOv10</b><b class='flag-5'>目標(biāo)</b><b class='flag-5'>檢測</b>模型

    HarmonyOS開發(fā)案例:【 自定義彈窗】

    基于ArkTS的聲明式開發(fā)范式實(shí)現(xiàn)了三種不同的彈窗,第一種直接使用公共組件,后兩種使用CustomDialogController實(shí)現(xiàn)自定義彈窗
    的頭像 發(fā)表于 05-16 18:18 ?1405次閱讀
    HarmonyOS開發(fā)案例:【 <b class='flag-5'>自定義</b>彈窗】

    TSMaster 自定義 LIN 調(diào)度表編程指導(dǎo)

    LIN(LocalInterconnectNetwork)協(xié)議調(diào)度表是用于LIN總線通信中的消息調(diào)度的一種機(jī)制,我們收到越來越多來自不同用戶希望能夠通過接口實(shí)現(xiàn)自定義LIN調(diào)度表的需求。所以在
    的頭像 發(fā)表于 05-11 08:21 ?710次閱讀
    TSMaster <b class='flag-5'>自定義</b> LIN 調(diào)度表編程指導(dǎo)

    HarmonyOS開發(fā)案例:【UIAbility和自定義組件生命周期】

    本文檔主要描述了應(yīng)用運(yùn)行過程中UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發(fā)表于 05-10 15:31 ?1297次閱讀
    HarmonyOS開發(fā)案例:【UIAbility和<b class='flag-5'>自定義</b>組件生命周期】

    maixcam部署yolov5s 自定義模型

    maixcam部署yolov5s 自定義模型 本博客將向你展示零基礎(chǔ)一步步的部署好自己的yolov5s模型(博主展示的是安全帽模型),訓(xùn)練就引用我自己之前寫過的,已經(jīng)訓(xùn)練好的可以跳過該部分,其中有
    發(fā)表于 04-23 15:43

    HarmonyOS開發(fā)實(shí)例:【自定義Emitter】

    使用[Emitter]實(shí)現(xiàn)事件的訂閱和發(fā)布,使用[自定義彈窗]設(shè)置廣告信息。
    的頭像 發(fā)表于 04-14 11:37 ?1025次閱讀
    HarmonyOS開發(fā)實(shí)例:【<b class='flag-5'>自定義</b>Emitter】

    鴻蒙ArkUI實(shí)例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個(gè)頁面可由多個(gè)組件組合而成,也可只由一個(gè)組件組合而成,這些組件可以是ArkUI開發(fā)框架自帶系統(tǒng)組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節(jié)筆者簡單介紹一下自定義組件的語法規(guī)范。
    的頭像 發(fā)表于 04-08 10:17 ?667次閱讀