Ultralytics YOLO11 NVIDIA 에서 DeepStream SDK를 사용하는 Jetson 및 TensorRT
Watch: 다음을 사용하여 Jetson Nano에서 DeepStream SDK로 여러 스트림을 실행하는 방법 Ultralytics YOLO11
이 종합 가이드는 DeepStream SDK를 사용하여 NVIDIA Jetson 장치에 Ultralytics YOLO11 을 배포하는 방법에 대한 자세한 안내와 TensorRT 을 제공합니다. 여기서는 TensorRT 을 사용하여 Jetson 플랫폼에서 추론 성능을 최대화합니다.
참고
이 가이드는 안정적인 최신 JetPack JP6.1 릴리스를 실행하는 NVIDIA Jetson Orin Nano Super Developer Kit로 테스트되었습니다, NVIDIA 젯슨 오린 NX 16GB 기반Seeed Studio 재컴퓨터 J4012, 젯슨 나노 4GB 기반 Seeed Studio 재컴퓨터 J1020 v2, 젯슨 나노 4GB 기반 NVIDIA 젯슨 나노 4 .6.4 버전으로 테스트되었습니다. 최신 및 레거시를 포함한 모든 NVIDIA Jetson 하드웨어 라인업에서 작동할 것으로 예상됩니다.
NVIDIA DeepStream이란 무엇인가요?
NVIDIA의 DeepStream SDK는 AI 기반 멀티 센서 처리, 비디오, 오디오 및 이미지 이해를 위한 GStreamer 기반의 완벽한 스트리밍 분석 툴킷입니다. IVA(지능형 비디오 분석) 앱과 서비스를 구축하는 비전 AI 개발자, 소프트웨어 파트너, 스타트업 및 OEM에 이상적입니다. 이제 신경망과 추적, 비디오 인코딩/디코딩, 비디오 렌더링과 같은 기타 복잡한 처리 작업을 통합하는 스트림 처리 파이프라인을 만들 수 있습니다. 이러한 파이프라인을 통해 비디오, 이미지, 센서 데이터에 대한 실시간 분석이 가능합니다. 딥스트림의 멀티 플랫폼 지원은 온프레미스, 엣지, 클라우드에서 비전 AI 애플리케이션과 서비스를 더 빠르고 쉽게 개발할 수 있는 방법을 제공합니다.
전제 조건
이 가이드를 따르기 전에 먼저 확인하세요:
- 설명서 빠른 시작 가이드를 참조하십시오: NVIDIA Ultralytics YOLO11 을 사용하여 NVIDIA Jetson 장치를 설정하십시오. Ultralytics YOLO11
-
JetPack 버전에 따라 DeepStream SDK를 설치합니다.
- JetPack 4.6.4의 경우, DeepStream 6.0.1을 설치합니다 .
- JetPack 5.1.3의 경우, DeepStream 6.3을 설치합니다.
- JetPack 6.1의 경우, DeepStream 7.1을 설치합니다.
팁
이 가이드에서는 Jetson 장치에 DeepStream SDK를 설치하는 Debian 패키지 방법을 사용했습니다. 또한 Jetson의 DeepStream SDK(아카이브) 를 방문하여 레거시 버전의 DeepStream에 액세스할 수 있습니다.
딥스트림 구성 YOLO11
여기에서는 YOLO 모델에 대한 NVIDIA DeepStream SDK 지원을 포함하는 marcoslucianops/DeepStream-Yolo GitHub 리포지토리를 사용하고 있습니다. 기여해 주신 marcoslucianops의 노고에 감사드립니다!
-
필요한 종속성과 함께 Ultralytics 설치
-
딥스트림 복제-Yolo 리포지토리
-
복사
export_yoloV8.py
파일에서DeepStream-Yolo/utils
디렉토리에ultralytics
폴더참고
export_yoloV8.py
YOLOv8 및 YOLO11 모델 모두에서 작동합니다. -
YOLO11 릴리스에서 원하는 탐지 모델(.pt)을 Ultralytics YOLO11 다운로드하세요. 여기서는 yolo11s.pt를 사용합니다.
참고
사용자 지정 훈련된 YOLO11 모델을 사용할 수도 있습니다.
-
모델로 변환 ONNX
위 명령에 아래 인수를 전달합니다.
DeepStream 6.0.1의 경우, 옵셋 12 이하를 사용합니다. 기본 옵셋은 16입니다.
추론 크기를 변경하려면(기본값: 640) 다음과 같이 하세요.
1280의 예입니다:
ONNX 모델을 단순화하려면 (DeepStream >= 6.0)
동적 배치 크기 사용(DeepStream >= 6.1)
정적 배치 크기를 사용하려면(예: 배치 크기 = 4) 다음과 같이 하세요.
-
생성된
.onnx
모델 파일과labels.txt
파일을DeepStream-Yolo
폴더 -
설치된 JetPack 버전에 따라 CUDA 버전을 설정합니다.
JetPack 4.6.4의 경우:
JetPack 5.1.3의 경우:
Jetpack 6.1의 경우:
-
라이브러리 컴파일
-
편집
config_infer_primary_yoloV8.txt
파일(80개 클래스가 있는 YOLO11의 경우) -
편집
deepstream_app_config
파일 -
다음에서 동영상 소스를 변경할 수도 있습니다.
deepstream_app_config
파일을 선택합니다. 여기에 기본 비디오 파일이 로드됩니다.
추론 실행
참고
추론을 시작하기 전에 TensorRT 엔진 파일을 생성하는 데 시간이 오래 걸립니다. 그러니 조금만 기다려주세요.

팁
모델을 FP16 정밀도로 변환하려면 다음과 같이 설정하면 됩니다. model-engine-file=model_b1_gpu0_fp16.engine
그리고 network-mode=2
내부 config_infer_primary_yoloV8.txt
INT8 보정
추론에 INT8 정밀도를 사용하려면 다음 단계를 따라야 합니다.
참고
현재 INT8은 TensorRT 10.x에서 작동하지 않습니다. 이 가이드의 이 섹션은 TensorRT 8.x에서 테스트되었으며 작동할 것으로 예상됩니다.
-
설정
OPENCV
환경 변수 -
라이브러리 컴파일
-
COCO 데이터 세트의 경우 val2017를 클릭하고 추출한 다음
DeepStream-Yolo
폴더 -
보정 이미지를 위한 새 디렉터리 만들기
-
다음을 실행하여 COCO 데이터 세트에서 1000개의 무작위 이미지를 선택하여 보정을 실행합니다.
참고
NVIDIA 는 좋은 정확도를 얻기 위해 최소 500개의 이미지를 권장합니다. 이 예에서는 더 나은 정확도를 얻기 위해 1000개의 이미지가 선택되었습니다(이미지가 많을수록 정확도가 높아짐). 머리 -1000에서 설정할 수 있습니다. 예를 들어 이미지가 2000개인 경우 -2000으로 설정합니다. 이 과정은 시간이 오래 걸릴 수 있습니다.
-
생성하기
calibration.txt
파일에 선택한 모든 이미지가 포함된 -
환경 변수 설정
참고
INT8_CALIB_BATCH_SIZE 값이 높을수록 정확도가 높아지고 보정 속도가 빨라집니다. GPU 메모리에 맞게 설정하세요.
-
업데이트
config_infer_primary_yoloV8.txt
파일에서
To
추론 실행
멀티스트림 설정
단일 딥스트림 애플리케이션에서 여러 스트림을 설정하려면 다음과 같이 딥스트림 애플리케이션을 변경하면 됩니다. deepstream_app_config.txt
파일
-
원하는 스트림 수에 따라 행과 열을 변경하여 그리드 표시를 만들 수 있습니다. 예를 들어 스트림이 4개인 경우 행 2개와 열 2개를 추가할 수 있습니다.
-
설정
num-sources=4
를 클릭하고uri
4개의 스트림 중
추론 실행

벤치마크 결과
YOLO11 다음 벤치마크는 TensorRT 모델에서 640x640의 입력 크기로 다양한 정밀도 수준에서 NVIDIA Jetson Orin NX 16GB의 성능을 요약한 것입니다.
비교 차트

상세 비교 표
성능
형식 | 상태 | 추론 시간(ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 8.64 |
TensorRT (FP16) | ✅ | 5.27 |
TensorRT (INT8) | ✅ | 4.54 |
형식 | 상태 | 추론 시간(ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 14.53 |
TensorRT (FP16) | ✅ | 7.91 |
TensorRT (INT8) | ✅ | 6.05 |
형식 | 상태 | 추론 시간(ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 32.05 |
TensorRT (FP16) | ✅ | 15.55 |
TensorRT (INT8) | ✅ | 10.43 |
형식 | 상태 | 추론 시간(ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 39.68 |
TensorRT (FP16) | ✅ | 19.88 |
TensorRT (INT8) | ✅ | 13.64 |
형식 | 상태 | 추론 시간(ms/im) |
---|---|---|
TensorRT (FP32) | ✅ | 80.65 |
TensorRT (FP16) | ✅ | 39.06 |
TensorRT (INT8) | ✅ | 22.83 |
감사
이 가이드는 시드 스튜디오의 친구인 락샨타와 일레인이 처음에 만들었습니다.
자주 묻는 질문
NVIDIA Jetson 장치에서 Ultralytics YOLO11 을 설정하려면 어떻게 합니까?
NVIDIA Jetson 장치에서 Ultralytics YOLO11 을 설정하려면 먼저 사용 중인 JetPack 버전과 호환되는 DeepStream SDK를 설치해야 합니다. 빠른 시작 가이드 의 단계별 가이드에 따라 YOLO11 배포를 위해 NVIDIA Jetson을 구성합니다.
NVIDIA Jetson에서 YOLO11 과 함께 TensorRT 을 사용하면 어떤 이점이 있나요?
YOLO11 과 함께 TensorRT 을 사용하면 추론을 위한 모델을 최적화하여 지연 시간을 크게 줄이고 처리량을 향상시킵니다. NVIDIA Jetson 장치에서 TensorRT 레이어 융합, 정밀 보정 및 커널 자동 튜닝을 통해 고성능, 저지연 딥 러닝 추론을 제공합니다. 이를 통해 더 빠르고 효율적으로 실행할 수 있으며, 특히 비디오 분석 및 자율 머신과 같은 실시간 애플리케이션에 유용합니다.
다른 NVIDIA Jetson 하드웨어에서 DeepStream SDK를 사용하여 Ultralytics YOLO11 실행할 수 있습니까?
예, 배포 가이드 Ultralytics YOLO11 와 DeepStream SDK 및 TensorRT 는 전체 NVIDIA Jetson 라인업에서 호환됩니다. 여기에는 젯팩 5.1.3이 설치된 젯슨 오린 NX 16GB 및 젯팩 4.6.4가 설치된 젯슨 나노 4GB와 같은 장치가 포함됩니다. 자세한 단계는 YOLO11 의 DeepStream 구성 섹션을 참조하십시오.
YOLO11 모델을 DeepStream용 ONNX 모델로 변환하려면 어떻게 해야 하나요?
YOLO11 모델을 DeepStream과 함께 배포할 수 있도록 ONNX 형식으로 변환하려면 utils/export_yoloV8.py
스크립트에서 DeepStream-Yolo 리포지토리에 저장합니다.
다음은 명령어 예시입니다:
모델 변환에 대한 자세한 내용은 모델 내보내기 섹션을 참조하세요.
NVIDIA 에서 YOLO 의 성능 벤치마크는 어떻게 되나요?
NVIDIA 젯슨 오린 NX 16GB의 YOLO11 모델의 성능은 TensorRT 정밀도 수준에 따라 다릅니다. 예를 들어, YOLO11s 모델이 달성합니다:
- FP32 정밀도: 14.6ms/im, 68.5 FPS
- FP16 정밀도: 7.94ms/im, 126 FPS
- INT8 정밀도: 5.95ms/im, 168 FPS
TensorRT이 벤치마크는 NVIDIA Jetson 하드웨어에서 최적화된 YOLO11 모델 사용의 효율성과 성능을 강조합니다. 자세한 내용은 벤치마크 결과 섹션을 참조하세요.