This project provides guidance on exporting the YOLOv10 model from PyTorch to ONNX, converting it to a TensorRT engine, and deploying it on the NVIDIA Triton Inference Server on a Jetson device with JetPack 5.1.3
-
Clone the Project and Set Up the Environment
First, clone the project repository:
git clone https://github.com/thanhlnbka/yolov10-triton-jetson.git
Next, download and extract the Triton server for JetPack:
wget https://github.com/triton-inference-server/server/releases/download/v2.34.0/tritonserver2.34.0-jetpack5.1.tgz tar -xvzf tritonserver2.34.0-jetpack5.1.tgz cp -r clients yolov10-triton-jetson/. cp -r tritonserver yolov10-triton-jetson/servers/.
-
Build env-yolov10:
git clone https://github.com/THU-MIG/yolov10.git cd yolov10/docker docker build -t yolov10 -f Dockerfile-jetson --name env-yolov10 .
-
Using env-yolov10 for export ONNX
docker run -it --network host --gpus all --runtime nvidia --name env-yolov10 yolov10 bash yolo export model=jameslahm/yolov10m.pt format=onnx opset=13 simplify
-
Copy the Model to the Woring Directory
docker cp env-yolov10:/usr/src/ultralytics/jameslahm yolov10-triton-jetson/servers/models
-
Run the TensorRT Docker Container:
docker run -it -v yolov10-triton-jetson/servers:/servers --network host --gpus all --runtime nvidia --name env-engine nvcr.io/nvidia/l4t-tensorrt:r8.5.2.2-devel bash
-
Convert ONNX to TensorRT:
cd /servers/models /usr/src/tensorrt/bin/trtexec --onnx=yolov10m.onnx --saveEngine=yolov10m.engine --fp16 --useCudaGraph
-
Setup Triton
docker exec -it env-engine bash cd /servers sh setup_triton.sh mkdir -p model_repository/yolov10m/1 cp /servers/models/yolov10m.engine /servers/model_repository/yolov10m/1/model.plan
-
Start Triton
tritonserver --model-repository=/servers/model_repository --backend-directory=/servers/tritonserver/backends --log-verbose=1
-
Required Environment for Building Source Code
- OpenCV
- RapidJSON
- CURL
-
Build the Client Source Code:
cd yolov10-triton-jetson mkdir build cd build cmake .. && make
-
Test the Client:
./triton-client <path_to_image>
-
Demo Result: