在Seeed Studio reComputer Jetson Orin上运行一键运行Ultralytics YOLO所有任务模型,支持TensoRt一件转换,带Web UI和HTTP API接口 🚀
所有教程都免费开源,请动动小手点个小星星https://github.com/Seeed-Projects/jetson-examples
Jetson Examples的一键部署Ultralytics Yolo迎来重大更新!
简介 📘
在本项目中,您可以通过一键快速在Nvidia Jetson Orin设备上部署所有YOLOv8任务模型。此设置支持对象检测、分割、人体姿态估计和分类。它支持上传本地视频、图像,使用摄像头,还允许一键转换TensorRT模型。通过访问http://127.0.0.1:5001(在本地机器或同一局域网内),您可以快速开始使用Ultralytics YOLO。此外,还添加了一个HTTP API方法,在http://127.0.0.1:5001/results显示任何任务的检测数据结果,并提供了一个Python脚本,用于在Docker中读取YOLOv8检测数据。
主要功能:
- 一键部署即插即用:快速在Nvidia Jetson Orin设备上部署所有YOLOv8任务模型。
- 全面的任务支持:支持对象检测、分割、人体姿态估计和分类。
- 多功能输入选项:支持上传本地视频、图像,使用摄像头。
- TensorRT模型转换:允许一键将模型转换为TensorRT。
- Web UI访问:可通过
http://127.0.0.1:5001
在本地机器或同一局域网内轻松访问。 - HTTP API接口:在
http://127.0.0.1:5001/results
添加了HTTP API以显示检测数据结果。 - Python脚本支持:提供了一个额外的Python脚本,用于在Docker中读取YOLOv8检测数据。
本项目中实现的所有模型均来自官方Ultralytics Yolo。
获取Jetson Orin设备 🛒
设备型号 | 描述 | 链接 |
---|---|---|
Jetson Orin Nano Dev Kit, Orin Nano 8GB, 40TOPS | NVIDIA Jetson Orin Nano的开发套件 | 立即购买 |
reComputer J4012, powered by Orin NX 16GB, 100 TOPS | Orin NX驱动的嵌入式计算机 | 立即购买 |
快速入门 ⚡
修改Docker Daemon配置(可选)
为了增强在Docker中快速加载模型的体验,您需要在/etc/docker/daemon.json
文件中添加以下内容:
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
},
"storage-driver": "overlay2",
"data-root": "/var/lib/docker",
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3"
},
"no-new-privileges": true,
"experimental": false
}
修改daemon.json
文件后,您需要重启Docker服务以应用配置:
sudo systemctl restart docker
通过PyPI安装(推荐) 🐍
-
安装包:
pip install jetson-examples
-
重启您的reComputer:
sudo reboot
-
通过一条命令在Jetson上运行Ultralytics YOLO:
reComputer run ultralytics-yolo
-
“在浏览器中输入
http://127.0.0.1:5001
或http://device_IP:5001以访问Web UI。”
- 选择模型:选择YOLOv8 n, s, l, m, x模型及各种任务,如对象检测、分类、分割、人体姿态估计、OBB等。
- 上传自定义模型:用户可以上传自己训练的YOLOv8模型。
- 选择输入类型:用户可以选择上传本地图像、视频或使用实时摄像设备作为输入。
- 启用TensorRT:选择是否转换并使用TensorRT模型。初次转换可能需要不同的时间。
-
如果您想查看检测结果数据,可以在浏览器中输入
http://127.0.0.1:5001/results
查看JSON
格式的数据结果。这些结果包括对象检测的boxes
、分割的masks
、人体姿态估计的keypoints
及与所有数值类别对应的names
。
我们还提供了一个Python脚本,帮助用户将数据集成到自己的程序中。
import requests def fetch_results(): response = requests.get('http://localhost:5001/results') if response.status_code == 200: results = response.json() return results else: print('Failed to fetch results') return None results = fetch_results() print(results)
注意事项 📝
- 随时停止检测,请按停止按钮。
- 在同一局域网内的其他设备访问WebUI时,使用URL:
http://{Jetson_IP}:5001
。 - 访问http://{Jetson_IP}:5001/results即可查看JSON格式的检测结果。
- 首次模型转换可能需要不同时间,具体取决于硬件和网络环境,请耐心等待。
参考链接🔧
- 一键部署项目: Jetson examples
- ultralytics-yolo官方文档
- 训练YOLOv8模型
- TensorRT加速
- 使用Deepstream进行多流处理 教程。
- 原文Seeed Studio Github
内容贡献者
Seeed Studio–Zhu Yaohui