偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

YOLO 自定義目標檢測 | 理論+實踐

開發(fā)
實時目標檢測由于依賴非極大值抑制(NMS)和架構效率低下而面臨挑戰(zhàn)。YOLOv10 通過消除 NMS 并采用專注于效率和準確性的設計策略解決了這些問題。

概述

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

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

架構

來自 Ultralytics 的圖示

  • 骨干網(wǎng)絡:負責特征提取,YOLOv10 的骨干網(wǎng)絡使用增強版的 CSPNet(交叉階段部分網(wǎng)絡)來改善梯度流動并減少計算冗余。
  • 頸部網(wǎng)絡:設計用于聚合不同尺度的特征并將其傳遞到頭部網(wǎng)絡。它包含用于有效多尺度特征融合的 PAN(路徑聚合網(wǎng)絡)層。
  • 一對多頭:在訓練過程中為每個對象生成多個預測,以提供豐富的監(jiān)督信號并提高學習準確性。
  • 一對一頭:在推理過程中為每個對象生成一個最佳預測,消除 NMS 的需要,從而減少延遲并提高效率。

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

  • YOLOv10-N:用于極其資源受限環(huán)境的納米版。
  • YOLOv10-S:平衡速度和準確性的小型版。
  • YOLOv10-M:用于通用的中型版。
  • YOLOv10-B:增加寬度以提高準確性的平衡版。
  • YOLOv10-L:在增加計算資源成本的情況下提高準確性的高級版。
  • YOLOv10-X:用于最大化準確性的超大型版。

來自 Ultralytics 的圖示

比較

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

很明顯,YOLOv10 是實時目標檢測應用的前沿技術,以更少的參數(shù)提供更高的準確性和速度性能。

訓練 YOLOv10 進行自定義目標檢測

首先,克隆官方 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 上嘗試任何自定義項目,創(chuàng)建自己的數(shù)據(jù)集,甚至使用由 Intel 贊助的 RF100 數(shù)據(jù)集。對于本文,我將使用一個預先準備好的數(shù)據(jù)集,用于檢測 X 射線圖像中的危險物品。數(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ù),開始訓練:

!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

讓我們看看結果。

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

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

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()

參考資料

官方倉庫:https://github.com/THU-MIG/yolov10Ultralytics

責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2024-07-09 08:50:23

2024-10-07 11:12:55

2024-10-09 17:02:34

2017-05-19 10:03:31

AndroidBaseAdapter實踐

2023-12-21 09:00:21

函數(shù)React 組件useEffect

2017-05-18 12:36:16

android萬能適配器列表視圖

2010-08-12 09:45:33

jQuery自定義事件

2021-08-25 10:14:51

鴻蒙HarmonyOS應用

2024-11-29 16:10:31

2025-02-18 08:00:00

C++YOLO目標檢測

2023-07-28 09:26:43

GolangZap

2025-05-15 07:11:51

2024-06-21 10:40:00

計算機視覺

2025-01-14 08:30:00

YOLO目標檢測YOLOv8

2023-06-28 08:05:46

場景vue3自定義

2015-02-12 15:33:43

微信SDK

2023-06-27 15:02:47

2024-11-06 16:56:51

2015-02-12 15:38:26

微信SDK

2024-08-20 09:30:00

點贊
收藏

51CTO技術棧公眾號