NVIDIA Jetson에서 DeepStream SDK 및 TensorRT를 사용하는 Ultralytics YOLO26
Watch: How to use Ultralytics YOLO26 models with NVIDIA Deepstream on Jetson Orin NX 🚀
이 포괄적인 가이드는 DeepStream SDK와 TensorRT를 사용하여 NVIDIA Jetson 기기에 Ultralytics YOLO26을 배포하는 방법에 대한 자세한 단계별 안내를 제공합니다. 여기서는 Jetson 플랫폼에서 추론 성능을 극대화하기 위해 TensorRT를 사용합니다.

This guide has been tested with NVIDIA Jetson Orin Nano Super Developer Kit running the latest stable JetPack release of JP6.1, Seeed Studio reComputer J4012 which is based on NVIDIA Jetson Orin NX 16GB running JetPack release of JP5.1.3 and Seeed Studio reComputer J1020 v2 which is based on NVIDIA Jetson Nano 4GB running JetPack release of JP4.6.4. It is expected to work across all the NVIDIA Jetson hardware lineup including latest and legacy.
NVIDIA DeepStream이란 무엇입니까?
NVIDIA의 DeepStream SDK는 AI 기반 다중 센서 처리, 비디오, 오디오 및 이미지 이해를 위해 GStreamer를 기반으로 하는 완전한 스트리밍 분석 툴킷입니다. 비전 AI 개발자, 소프트웨어 파트너, 스타트업 및 IVA(지능형 비디오 분석) 앱과 서비스를 구축하는 OEM에게 이상적입니다. 이제 신경망과 추적, 비디오 인코딩/디코딩, 비디오 렌더링과 같은 기타 복잡한 처리 작업을 통합하는 스트림 처리 파이프라인을 생성할 수 있습니다. 이러한 파이프라인은 비디오, 이미지 및 센서 데이터에 대한 실시간 분석을 가능하게 합니다. DeepStream의 다중 플랫폼 지원을 통해 온프레미스, 엣지 및 클라우드에서 비전 AI 애플리케이션과 서비스를 더 빠르고 쉽게 개발할 수 있습니다.
사전 요구 사항
이 가이드를 시작하기 전에:
- NVIDIA Jetson 기기를 Ultralytics YOLO26으로 설정하려면 빠른 시작 가이드: Ultralytics YOLO26을 사용하는 NVIDIA Jetson 문서를 방문하십시오.
- JetPack 버전에 따라 DeepStream SDK를 설치하십시오.
- JetPack 4.6.4의 경우, DeepStream 6.0.1을 설치하십시오.
- JetPack 5.1.3의 경우, DeepStream 6.3을 설치하십시오.
- JetPack 6.1의 경우, DeepStream 7.1을 설치하십시오.
- JetPack 7.1의 경우, DeepStream 9.0을 설치하십시오.
이 가이드에서는 Jetson 기기에 DeepStream SDK를 설치하는 방법으로 Debian 패키지 방식을 사용했습니다. 또한 Jetson용 DeepStream SDK(보관됨)를 방문하여 이전 버전의 DeepStream에 액세스할 수도 있습니다.
YOLO26을 위한 DeepStream 구성
여기에서는 YOLO 모델에 대한 NVIDIA DeepStream SDK 지원을 포함하는 marcoslucianops/DeepStream-Yolo GitHub 저장소를 사용합니다. 기여해주신 marcoslucianops의 노고에 감사드립니다!
-
필요한 종속성과 함께 Ultralytics를 설치하십시오.
cd ~ pip install -U pip git clone https://github.com/ultralytics/ultralytics cd ultralytics pip install -e ".[export]" onnxslim -
DeepStream-Yolo 저장소를 복제(clone)하십시오.
cd ~ git clone https://github.com/marcoslucianops/DeepStream-Yolo -
Copy the
export_yolo26.pyfile fromDeepStream-Yolo/utilsdirectory to theultralyticsfoldercp ~/DeepStream-Yolo/utils/export_yolo26.py ~/ultralytics cd ultralytics -
YOLO26 릴리스에서 원하는 Ultralytics YOLO26 감지 모델(.pt)을 다운로드하십시오. 여기서는 yolo26s.pt를 사용합니다.
wget https://github.com/ultralytics/assets/releases/download/v8.4.0/yolo26s.pt
사용자 지정 학습 YOLO26 모델을 사용할 수도 있습니다.
-
모델을 ONNX로 변환하십시오.
python3 export_yolo26.py -w yolo26s.pt
DeepStream 5.1의 경우, --dynamic 인수를 제거하고 opset 12 이하를 사용하십시오. 기본 opset은 17입니다.
--opset 12추론 크기(기본값: 640)를 변경하려면:
-s SIZE
--size SIZE
-s HEIGHT WIDTH
--size HEIGHT WIDTH1280에 대한 예시:
-s 1280
or
-s 1280 1280ONNX 모델을 단순화하려면(DeepStream >= 6.0):
--simplify동적 배치 크기를 사용하려면(DeepStream >= 6.1):
--dynamic정적 배치 크기를 사용하려면(배치 크기 = 4에 대한 예시):
--batch 4-
생성된
.onnx모델 파일과labels.txt파일을DeepStream-Yolo폴더로 복사하십시오.cp yolo26s.pt.onnx labels.txt ~/DeepStream-Yolo cd ~/DeepStream-Yolo -
설치된 JetPack 버전에 따라 CUDA 버전을 설정하십시오.
JetPack 4.6.4의 경우:
export CUDA_VER=10.2JetPack 5.1.3의 경우:
export CUDA_VER=11.4JetPack 6.1의 경우:
export CUDA_VER=12.6 -
라이브러리를 컴파일하십시오.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
모델에 따라
config_infer_primary_yolo26.txt파일을 편집하십시오(80개 클래스를 사용하는 YOLO26s의 경우).[property] ... onnx-file=yolo26s.pt.onnx ... num-detected-classes=80 ... -
deepstream_app_config파일을 편집하십시오.... [primary-gie] ... config-file=config_infer_primary_yolo26.txt -
deepstream_app_config파일에서 비디오 소스를 변경할 수도 있습니다. 여기서는 기본 비디오 파일이 로드됩니다.... [source0] ... uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
추론 실행
deepstream-app -c deepstream_app_config.txt추론을 시작하기 전에 TensorRT 엔진 파일을 생성하는 데 시간이 오래 걸립니다. 잠시 기다려 주십시오.

If you want to convert the model to FP16 precision, simply set model-engine-file=model_b1_gpu0_fp16.engine and network-mode=2 inside config_infer_primary_yolo26.txt
INT8 보정(Calibration)
추론에 INT8 정밀도를 사용하려면 아래 단계를 따라야 합니다.
현재 INT8은 TensorRT 10.x에서 작동하지 않습니다. 이 가이드 섹션은 작동이 확인된 TensorRT 8.x로 테스트되었습니다.
-
OPENCV환경 변수를 설정하십시오.export OPENCV=1 -
라이브러리를 컴파일하십시오.
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo -
COCO 데이터 세트의 경우 val2017을 다운로드하고 추출한 뒤
DeepStream-Yolo폴더로 이동하십시오. -
보정 이미지를 위한 새 디렉터리를 생성하십시오.
mkdir calibration -
다음 명령을 실행하여 보정을 수행할 COCO 데이터 세트에서 무작위로 1000개의 이미지를 선택하십시오.
for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do cp ${jpg} calibration/ done
NVIDIA는 좋은 정확도를 얻기 위해 최소 500개의 이미지를 권장합니다. 이 예제에서는 더 나은 정확도를 얻기 위해 1000개의 이미지를 선택했습니다(이미지가 많을수록 정확도가 높아짐). head -1000에서 설정할 수 있습니다. 예를 들어 2000개의 이미지를 원할 경우 head -2000을 사용하십시오. 이 과정은 시간이 오래 걸릴 수 있습니다.
-
선택된 모든 이미지가 포함된
calibration.txt파일을 생성하십시오.realpath calibration/*jpg > calibration.txt -
환경 변수를 설정하십시오.
export INT8_CALIB_IMG_PATH=calibration.txt export INT8_CALIB_BATCH_SIZE=1
INT8_CALIB_BATCH_SIZE 값이 높을수록 정확도가 향상되고 보정 속도가 빨라집니다. GPU 메모리에 맞춰 설정하십시오.
-
config_infer_primary_yolo26.txt파일을 업데이트하십시오.다음에서
... model-engine-file=model_b1_gpu0_fp32.engine #int8-calib-file=calib.table ... network-mode=0 ...다음으로
... model-engine-file=model_b1_gpu0_int8.engine int8-calib-file=calib.table ... network-mode=1 ...
추론 실행
deepstream-app -c deepstream_app_config.txt멀티 스트림 설정
Watch: How to Run Multi-Stream Inference with Ultralytics YOLO26 using NVIDIA DeepStream on Jetson Orin 🚀
단일 DeepStream 애플리케이션에서 여러 스트림을 설정하려면 deepstream_app_config.txt 파일을 다음과 같이 변경하십시오.
-
원하는 스트림 수에 따라 그리드 디스플레이를 구성하려면 행과 열을 변경하십시오. 예를 들어 4개의 스트림의 경우 2행 2열을 추가할 수 있습니다.
[tiled-display] rows=2 columns=2 -
num-sources=4를 설정하고 4개 스트림 모두에 대한uri항목을 추가하십시오.[source0] enable=1 type=3 uri=path/to/video1.jpg uri=path/to/video2.jpg uri=path/to/video3.jpg uri=path/to/video4.jpg num-sources=4
추론 실행
deepstream-app -c deepstream_app_config.txt
벤치마크 결과
다음 벤치마크는 NVIDIA Jetson Orin NX 16GB에서 640x640 입력 크기로 서로 다른 TensorRT 정밀도 수준에서 YOLO26 모델이 어떻게 작동하는지 요약합니다.
비교 차트

상세 비교 테이블
| 형식 | 상태 | 추론 시간 (ms/im) |
|---|---|---|
| TensorRT (FP32) | ✅ | 8.64 |
| TensorRT (FP16) | ✅ | 5.27 |
| TensorRT (INT8) | ✅ | 4.54 |
감사의 말
이 가이드는 처음에 Seeed Studio의 Lakshantha와 Elaine에 의해 작성되었습니다.
FAQ
NVIDIA Jetson 기기에서 Ultralytics YOLO26을 설정하려면 어떻게 해야 합니까?
NVIDIA Jetson 기기에서 Ultralytics YOLO26을 설정하려면 먼저 JetPack 버전과 호환되는 DeepStream SDK를 설치해야 합니다. 당사의 빠른 시작 가이드에 있는 단계별 지침에 따라 YOLO26 배포를 위해 NVIDIA Jetson을 구성하십시오.
NVIDIA Jetson에서 YOLO26과 함께 TensorRT를 사용하면 어떤 이점이 있습니까?
YOLO26에 TensorRT를 사용하면 추론을 위해 모델이 최적화되어 NVIDIA Jetson 기기에서의 대기 시간이 크게 단축되고 처리량이 향상됩니다. TensorRT는 레이어 융합, 정밀도 보정 및 커널 자동 튜닝을 통해 고성능의 저지연 딥러닝 추론을 제공합니다. 이는 비디오 분석 및 자율 머신과 같은 실시간 애플리케이션에 특히 유용한 더 빠르고 효율적인 실행으로 이어집니다.
서로 다른 NVIDIA Jetson 하드웨어에서 DeepStream SDK와 함께 Ultralytics YOLO26을 실행할 수 있습니까?
예, DeepStream SDK 및 TensorRT를 사용하여 Ultralytics YOLO26을 배포하는 가이드는 전체 NVIDIA Jetson 라인업과 호환됩니다. 여기에는 JetPack 5.1.3이 탑재된 Jetson Orin NX 16GB 및 JetPack 4.6.4가 탑재된 Jetson Nano 4GB와 같은 기기가 포함됩니다. 자세한 단계는 YOLO26을 위한 DeepStream 구성 섹션을 참조하십시오.
DeepStream을 위해 YOLO26 모델을 ONNX로 어떻게 변환할 수 있습니까?
To convert a YOLO26 model to ONNX format for deployment with DeepStream, use the utils/export_yolo26.py script from the DeepStream-Yolo repository.
다음은 예시 명령입니다:
python3 utils/export_yolo26.py -w yolo26s.pt --opset 12 --simplify모델 변환에 대한 자세한 내용은 모델 내보내기 섹션을 확인하십시오.
NVIDIA Jetson Orin NX에서의 YOLO 성능 벤치마크는 어떻게 됩니까?
NVIDIA Jetson Orin NX 16GB에서 YOLO26 모델의 성능은 TensorRT 정밀도 수준에 따라 달라집니다. 예를 들어 YOLO26s 모델은 다음을 달성합니다:
- FP32 정밀도: 14.6 ms/im, 68.5 FPS
- FP16 정밀도: 7.94 ms/im, 126 FPS
- INT8 정밀도: 5.95 ms/im, 168 FPS
이러한 벤치마크는 NVIDIA Jetson 하드웨어에서 TensorRT 최적화 YOLO26 모델을 사용하는 효율성과 성능을 입증합니다. 자세한 내용은 벤치마크 결과 섹션을 참조하십시오.