网站和微信,wordpress后台可视化编辑器,南宁做网站的公司有哪些,工业产品设计流程图点击下方卡片#xff0c;关注“小白玩转Python”公众号 最近#xff0c;出现了更新的YOLO模型#xff0c;还有RT-DETR模型#xff0c;这是一个声称能击败YOLO模型的变换器模型#xff0c;我想将这些模型导出并进行比较#xff0c;并将它们添加到我的库中。在这篇文章中关注“小白玩转Python”公众号 最近出现了更新的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 Modelsmodel models.get(Models.YOLO_NAS_S, pretrained_weightscoco)model.eval()
model.prep_model_for_conversion(input_size[1, 3, 640, 640])
model.export(yolo_nas_s.onnx, postprocessingNone, preprocessingNone) 现在你有了你的模型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 yolov10conda create -n yolov10-env python3.9
conda activate yolov10-env
pip install -r requirements.txt
pip install -e . 现在我们需要导出模型。模型的前缀是jameslahm/支持的模型有yolov10n、yolov10s、yolov10m、yolov10b、yolov10l、yolov10x。 yolo export modeljameslahm/yolov10m formatonnx opset13 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-size64g 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 modelyolov8n.pt formatonnx 现在你有了模型yolov8n.onnx文件可以进入运行模型部分。 运行模型 现在你有了你想要导出的ONNX模型你可以使用我编写的库来运行这些模型。你可以在这里找到这个库。库的README文件解释了如何链接到库。以下是如何使用库中的RT-DETR模型的示例。 #include objdetex/objdetex.hint main()
{using namespace ObjDetEx;Detector detector(Detector::RT_DETR, path/to/onnx/model);Size batchSize 1;double detectionThreshold .6;// Fill this with batchSizex3x640x640 image datafloat *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 640x640int64_t *dimensionPtr nullptr;auto detections detector(Tensor(imagePtr, {batchSize, 3, 640, 640}), //Tensor(dimensionPtr, {batchSize, 2}), detectionThreshold);// Use the detectionsreturn 0;
} · END ·想要变身计算机视觉小能手快来「小白玩转Python」公众号
回复“Python视觉实战项目”解锁31个超有趣的视觉项目大礼包本文仅供学习交流使用如有侵权请联系作者删除