www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 智能硬件 > 智能硬件
[導(dǎo)讀]YOLO(You Only Look Once)是一種基于深度神經(jīng)網(wǎng)絡(luò)的物體檢測(cè)算法,旨在實(shí)時(shí)識(shí)別和定位圖像或視頻中的多個(gè)物體。YOLO 以其快速的處理速度和高精度而聞名,非常適合需要快速檢測(cè)物體的應(yīng)用,例如實(shí)時(shí)視頻分析、自動(dòng)駕駛和智能醫(yī)療。

5 月 23 日,清華大學(xué)發(fā)布了YOLOv10(You Only Look Once v10),與 YOLOv9 相比,YOLOv10 有了顯著改進(jìn),在性能保持不變的情況下,延遲減少了 46%,參數(shù)減少了 25%。

2. YOLOv10 視覺(jué)物體檢測(cè):概述

2.1 什么是 YOLO?

YOLO(You Only Look Once)是一種基于深度神經(jīng)網(wǎng)絡(luò)的物體檢測(cè)算法,旨在實(shí)時(shí)識(shí)別和定位圖像或視頻中的多個(gè)物體。YOLO 以其快速的處理速度和高精度而聞名,非常適合需要快速檢測(cè)物體的應(yīng)用,例如實(shí)時(shí)視頻分析、自動(dòng)駕駛和智能醫(yī)療。

在 YOLO 之前,主流算法是 R-CNN,這是一種“兩階段”方法:首先,生成錨框,然后預(yù)測(cè)這些框中的物體。YOLO 通過(guò)允許“一階段”直接、端到端輸出物體及其位置,徹底改變了這一現(xiàn)狀。

· 單階段算法:這些模型執(zhí)行直接回歸任務(wù)以輸出對(duì)象概率及其坐標(biāo)。示例包括 SSD、YOLO 和 MTCNN。

· 兩階段算法: 首先生成多個(gè)錨框,然后使用卷積神經(jīng)網(wǎng)絡(luò)輸出這些框內(nèi)物體的概率和坐標(biāo)。例如 R-CNN 系列。

2.2 YOLO的網(wǎng)絡(luò)結(jié)構(gòu)

YOLOv10是YOLOv8的增強(qiáng),我們先簡(jiǎn)單看一下YOLOv8的網(wǎng)絡(luò)結(jié)構(gòu):

3.YOLOv10 視覺(jué)物體檢測(cè):訓(xùn)練和推理

3.1 安裝YOLOv10

3.1.1 克隆存儲(chǔ)庫(kù)

首先從 GitHub 克隆 YOLOv10 存儲(chǔ)庫(kù):

git clone https://github.com/THU-MIG/yolov10.git

3.1.2 創(chuàng)建 Conda 環(huán)境

接下來(lái),專(zhuān)門(mén)為 YOLOv10 創(chuàng)建一個(gè)新的 Conda 環(huán)境并激活它:

conda create -n yolov10 python=3.10

conda activate yolov10

3.1.3 下載并編譯依賴包

為了安裝所需的依賴項(xiàng),建議使用騰訊pip鏡像以更快地下載:

pip install -r requirements.txt -i https://mirrors.cloud.tencent.com/pypi/simple

pip install -e . -i https://mirrors.cloud.tencent.com/pypi/simple

3.2 使用 YOLOv10 進(jìn)行模型推理

3.2.1 模型下載

要開(kāi)始使用 YOLOv10,我們可以使用以下鏈接下載預(yù)先訓(xùn)練的模型:

· YOLOv10-N

· YOLOv10-S

· YOLOv10-M

· YOLOv10-B

· YOLOv10-L

· YOLOv10-X

3.2.2 WebUI 推斷

要使用 WebUI 執(zhí)行推理,請(qǐng)按照以下步驟操作:

導(dǎo)航到 YOLOv10 項(xiàng)目的根目錄。運(yùn)行以下命令啟動(dòng)該應(yīng)用程序:

python app.py

一旦服務(wù)器成功啟動(dòng),我們將看到一條消息,表明應(yīng)用程序正在運(yùn)行并可供使用。

3.2.3 命令行推斷

對(duì)于命令行推理,我們可以在 Conda 環(huán)境中使用 Yolo 命令。設(shè)置和執(zhí)行方法如下:

激活 YOLOv10 Conda 環(huán)境:確保我們已激活之前為 YOLOv10 創(chuàng)建的環(huán)境。

1

conda activate yolov10

使用命令行運(yùn)行推理:使用yolo predict命令進(jìn)行預(yù)測(cè)。我們需要指定模型、設(shè)備和源圖像路徑,如下所示:

1

yolo predict model=yolov10n.pt device=2 source=/aigc_dev/yolov10/ultralytics/assets

· model:指定下載的模型文件的路徑(例如,yolov10n.pt)。

· device:指定使用哪個(gè) GPU(例如,device=2 表示 GPU #2)。

· source:指定要檢測(cè)對(duì)象的圖像的路徑。

默認(rèn)路徑和結(jié)果:

· 默認(rèn)情況下,需要檢測(cè)的圖像應(yīng)該放在yolov10/ultralytics/assets目錄中。

· 檢測(cè)后,結(jié)果將保存在名為yolov10/runs/detect/predictxx的目錄中,其中xx代表每次運(yùn)行的唯一標(biāo)識(shí)符。

CoCo 數(shù)據(jù)集上的基準(zhǔn)測(cè)試。

3.3 訓(xùn)練YOLOv10模型

除了推理之外,YOLOv10 還支持在自定義數(shù)據(jù)集上進(jìn)行訓(xùn)練。以下是使用命令行訓(xùn)練模型的方法:

要使用 YOLOv10 開(kāi)始訓(xùn)練,請(qǐng)使用以下命令:

yolo detect train data=coco.yaml model=yolov10s.yaml epochs=100 batch=128 imgsz=640 device=2

以下是命令選項(xiàng)的細(xì)分:

· detect train:這指定我們想要執(zhí)行對(duì)象檢測(cè)的訓(xùn)練。

· data=coco.yaml:指定數(shù)據(jù)集配置文件,默認(rèn)數(shù)據(jù)集(COCO)下載并存放在此../datasets/coco目錄下。

· model=yolov10s.yaml:指定要訓(xùn)練的模型的配置文件。

· epochs=100:設(shè)置訓(xùn)練迭代次數(shù)(epoch)。

· batch=128:指定訓(xùn)練的批次大小,即每個(gè)訓(xùn)練步驟處理的圖像數(shù)量。

· imgsz=640:表示訓(xùn)練期間所有輸入圖像將調(diào)整到的圖像大小。

· device=2:指定使用哪個(gè) GPU 進(jìn)行訓(xùn)練(例如,device=2GPU #2)。

示例解釋

假設(shè)你已經(jīng)正確設(shè)置了 YOLOv10 環(huán)境和數(shù)據(jù)集,運(yùn)行上述命令將在指定的GPU上啟動(dòng)訓(xùn)練過(guò)程。該模型將以 128 的批大小進(jìn)行 100 個(gè) epoch 的訓(xùn)練,輸入圖像的大小將調(diào)整為 640x640 像素。

訓(xùn)練 YOLOv10 的步驟

準(zhǔn)備數(shù)據(jù)集

· 確保我們的數(shù)據(jù)集在 coco.yaml 文件(或我們自己的自定義數(shù)據(jù)集配置文件)中格式正確且描述正確。

· 數(shù)據(jù)集配置文件包括訓(xùn)練和驗(yàn)證數(shù)據(jù)的路徑以及類(lèi)別的數(shù)量。

配置模型

· 模型配置文件(例如,yolov10s.yaml)包含我們正在訓(xùn)練的 YOLOv10 變體特定設(shè)置,包括架構(gòu)和初始權(quán)重。

運(yùn)行訓(xùn)練命令

· 使用上面提供的命令開(kāi)始訓(xùn)練過(guò)程。根據(jù)我們的硬件能力和訓(xùn)練要求調(diào)整 epochs、batch、imgsz 和 device 等參數(shù)。

監(jiān)測(cè)和評(píng)估

· 在訓(xùn)練期間,如果可用,請(qǐng)通過(guò)日志或可視化工具監(jiān)控進(jìn)度。

· 訓(xùn)練后,在驗(yàn)證集上評(píng)估模型性能以確保其符合我們的期望。

使用Yolo10進(jìn)行實(shí)時(shí)在線物體檢測(cè)的Demo案例:

Python

1

import cv2

from ultralytics import YOLOv10

model = YOLOv10("yolov10s.pt")

cap = cv2.VideoCapture(0)

while True:

ret, frame = cap.read()

if not ret:

break

results = model.predict(frame)

for result in results:

boxes = result.boxes

for box in boxes:

x1,y1,x2,y2 = map(int, box.xyxy[0])

cls = int(box.cls[0])

conf = float(box.conf[0])

cv2.rectangle(frame, (x1, y1), (x2, y2), (255, 0, 0), 2)

cv2.putText(frame, f'{model.names[cls]} {conf:.2f}', (x1, y1 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 0, 0), 2)

cv2.imshow('YOLOv10', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()

我們可以構(gòu)建工作站來(lái)運(yùn)行/訓(xùn)練 AI 系統(tǒng)。為了省錢(qián),我們還可以在網(wǎng)上找到 GPU 等廉價(jià)組件。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀
關(guān)閉