成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

將目標檢測模型導出到C++|RT-DETR、YOLO-NAS、YOLOv10、YOLOv9、YOLOv8

開發
在這篇文章中,我將帶大家了解如何將這些模型導出到ONNX并運行它們,然后最終比較這些模型的速度。

最近,出現了更新的YOLO模型,還有RT-DETR模型,這是一個聲稱能擊敗YOLO模型的變換器模型,我想將這些模型導出并進行比較,并將它們添加到我的庫中。在這篇文章中,我將帶你了解如何將這些模型導出到ONNX并運行它們,然后最終比較這些模型的速度。

將RT-DETR模型導出到ONNX

這是從模型的GitHub頁面獲取的模型示例輸出

為了導出模型,我們需要從模型的GitHub倉庫克隆代碼(https://github.com/lyuwenyu/RT-DETR)。我將向你展示如何導出模型的第二個版本。如果你想使用第一個版本,導出步驟應該是類似的。

git clone https://github.com/lyuwenyu/RT-DETR.git
cd RT-DETR/rtdetrv2_pytorch

然后我們需要創建一個Python虛擬環境來運行代碼。如果你已經有一個工作的環境,那么你可以跳過這一步。

python -m venv rtdetrv2-env
source rtdetrv2-env/bin/activate
pip install -r requirements.txt
pip install scipy

代碼需要scipy庫,但它不在需求文件中,你需要手動安裝。然后我們需要下載coco數據集的YAML配置文件和模型。我們將在這里下載的模型是中等大小的模型。你可以在這里找到其他模型的鏈接。

mkdir models
cd models
wget -c https://github.com/lyuwenyu/storage/releases/download/v0.1/rtdetrv2_r34vd_120e_coco_ema.pth
wget -O dataset/coco_detection.yml https://raw.githubusercontent.com/ultralytics/ultralytics/main/ultralytics/cfg/datasets/coco.yaml

現在我們可以導出模型了。請注意,如果你改變了模型大小,那么你需要更改下面的配置文件路徑以匹配模型。

python tools/export_onnx.py -c configs/rtdetrv2/rtdetrv2_r34vd_120e_coco.yml -r models/rtdetrv2_r34vd_120e_coco_ema.pth --check

現在你有了你的模型(在rtdetrv2_pytorch目錄中的model.onnx文件)。你可以進入運行模型部分。

將YOLO-NAS導出到ONNX

與模型的GitHub頁面上的其他模型相比,YOLO-NAS模型

為了導出YOLO-NAS模型,你需要安裝super_gradients庫,然后運行以下Python代碼。模型變體是YOLO_NAS_S、YOLO_NAS_M、YOLO_NAS_L。

from super_gradients.training import models
from super_gradients.common.object_names import Models

model = models.get(Models.YOLO_NAS_S, pretrained_weights="coco")

model.eval()
model.prep_model_for_conversion(input_size=[1, 3, 640, 640])
model.export("yolo_nas_s.onnx", postprocessing=None, preprocessing=None)

現在你有了你的模型(yolo_nas_s.onnx文件)。你可以進入運行模型部分。

將YOLOv10導出到ONNX

與模型的GitHub頁面上的其他模型相比,YOLOv10模型的延遲

我們需要克隆GitHub倉庫(https://github.com/THU-MIG/yolov10)并創建一個Conda環境來運行導出代碼。

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

conda create -n yolov10-env python=3.9
conda activate yolov10-env
pip install -r requirements.txt
pip install -e .

現在我們需要導出模型。模型的前綴是jameslahm/,支持的模型有yolov10n、yolov10s、yolov10m、yolov10b、yolov10l、yolov10x。

yolo export model=jameslahm/yolov10m format=onnx opset=13 simplify

現在你有了你的模型(yolov10目錄中的yolov10m.onnx文件)。你可以進入運行模型部分。

將YOLOv9導出到ONNX

與模型的GitHub頁面上的其他模型相比,YOLOv9模型的參數數量

為了導出YOLOv9,你需要有一個工作的正常安裝的docker。你可以啟動一個容器并導出模型。你可以在這里找到模型文件。

# Create an empty directory and cd into it
git clone https://github.com/WongKinYiu/yolov9.git
# Now we have yolov9 folder in out current directory. Then we run the following line:
docker run --name yolov9 -it -v `pwd`:`pwd` -w `pwd` --shm-size=64g nvcr.io/nvidia/pytorch:21.11-py3
# Install dependencies
apt update
apt install -y zip htop screen libgl1-mesa-glx
pip install seaborn thop
cd yolov9
# Download the model
wget https://github.com/WongKinYiu/yolov9/releases/download/v0.1/yolov9-s.pt
# Export the model
python export.py --weights yolov9-s.pt --include onnx

現在你有了你的模型(yolov9目錄中的yolov9-s.onnx文件)。你可以進入運行模型部分。

將YOLOv8導出到ONNX

與模型的GitHub頁面上的其他模型相比,YOLOv8模型

將YOLOv8導出比其他模型更容易。你只需要安裝ultralytics并導出模型。支持的模型有yolov8n、yolov8s、yolov8m、yolov8l和yolov8x。如果你想的話,你可以創建一個虛擬環境來隔離安裝。

pip install ultralytics
wget https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8n.pt
yolo export model=yolov8n.pt format=onnx

現在你有了模型(yolov8n.onnx文件),可以進入運行模型部分。

運行模型

現在你有了你想要導出的ONNX模型,你可以使用我編寫的庫來運行這些模型。你可以在這里找到這個庫。庫的README文件解釋了如何鏈接到庫。以下是如何使用庫中的RT-DETR模型的示例。

#include <objdetex/objdetex.h>

int main()
{
    using namespace ObjDetEx;
    Detector detector(Detector::RT_DETR, "<path/to/onnx/model>");

    Size batchSize = 1;
    double detectionThreshold = .6;
    // Fill this with batchSizex3x640x640 image data
    float *imagePtr = nullptr;
    // Fill this with batchSizex2 dimension data, not needed for YOLO models
    // NOTE: 2 is width and height of the original images before resizing to 640x640
    int64_t *dimensionPtr = nullptr;

    auto detections = detector(Tensor(imagePtr, {batchSize, 3, 640, 640}),  //
                               Tensor(dimensionPtr, {batchSize, 2}), detectionThreshold);

    // Use the detections
    return 0;
}
責任編輯:趙寧寧 來源: 小白玩轉Python
相關推薦

2024-07-09 08:50:23

2024-07-22 13:49:38

YOLOv8目標檢測開發

2024-11-18 17:31:27

2024-02-26 10:21:49

神經網絡YOLO

2024-01-29 09:29:02

計算機視覺模型

2024-05-27 09:27:02

2023-02-02 09:00:00

2024-12-03 15:25:27

2024-07-03 09:39:52

2024-10-07 10:12:50

2024-02-23 11:10:00

AI訓練

2024-08-22 12:49:02

2025-02-24 09:50:21

2024-05-15 09:16:05

2024-11-06 16:56:51

2024-07-11 08:25:34

2023-11-13 22:17:54

YOLO-NAS目標檢測

2025-02-07 14:52:11

2025-01-06 08:20:00

YOLOv11目標檢測Python

2025-02-11 08:30:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99在线资源 | 国产欧美精品一区 | 中文字幕日韩欧美 | 精品国产一区二区在线 | 中文字幕亚洲视频 | 青青草久久| 欧美精品成人影院 | 亚洲在线 | 成人日b视频 | www.av7788.com| 久久久久国产 | 欧美亚洲一级 | 国产精品18hdxxxⅹ在线 | 天天干天天干 | 午夜免费网站 | 东京av男人的天堂 | 美女久久| 成人婷婷 | 日韩免费毛片 | 伊人伊人 | 国产精品毛片av一区 | 国产三级国产精品 | 中文字幕三区 | 精品视频一区二区 | 国产激情视频在线 | 在线只有精品 | 国产精品久久久久久久久久久免费看 | 精品人伦一区二区三区蜜桃网站 | 国产精品久久亚洲 | 天堂网色 | 日韩中出 | 91在线精品视频 | 日本a网站 | 日本精品视频一区二区 | 精品日韩一区 | av电影手机版 | 天堂一区二区三区 | 一区二区三区在线观看视频 | 国产一区影院 | 精品久久久久久一区二区 | 国产极品91 |