triple-mu/YOLOv8-TensorRT

YOLOv8 using TensorRT accelerate !

해결하는 문제

이 프로젝트는 YOLOv8 모델에 대한 고성능 추론 구현을 제공하며, NVIDIA의 TensorRT를 사용하여 가속화합니다. 사용자는 학습된 Ultralytics YOLOv8 모델을 Python 또는 C++ 환경에서 효율적으로 실행할 수 있으며, 다섯 가지 다른 컴퓨터 비전 작업을 지원합니다.

작동 방식

워크플로우는 세 단계의 프로세스를 따릅니다: PyTorch 모델(.pt)을 ONNX 형식으로 내보내기, 해당 ONNX 파일에서 TensorRT 엔진을 빌드하기, 그리고 추론 수행하기입니다. 검출 및 세그멘테이션을 위한 특수한 내보내기 스크립트가 있으며, Non-Maximum Suppression (NMS)가 내장된 "End2End" 엔진을 생성합니다. 다른 작업은 원시 내보내기를 사용합니다.

공유 C++ 코어(libyolov8_core)가 CUDA 리소스를 관리하고 전처리 및 후처리를 처리합니다. 시스템은 버전에 의존하지 않으며, 설치된 TensorRT 및 OpenCV 버전을 자동으로 감지하여 다양한 하드웨어 및 소프트웨어 환경에서 호환성을 보장합니다.

대상 사용자

NVIDIA GPU에서 YOLOv8 모델을 최대 스루풋과 최소 지연 시간으로 배포해야 하는 개발자 및 AI 엔지니어를 위한 것입니다. 특히 C++ 프로덕션 환경이나 고성능 Python 애플리케이션에서 작업하는 분들에게 적합합니다.

주요 특징

  • 다중 작업 지원: 검출, 세그멘테이션, 포즈 추정, 방향성 경계 상자(OBB), 분류를 모두 지원합니다.
  • C++ 및 Python 지원: 가벼운 C++ 바이너리와 유연한 Python 진입점 모두 제공합니다.
  • 버전에 의존하지 않는 빌드: TensorRT 버전 8에서 11까지 및 다양한 OpenCV 버전과 호환됩니다.
  • 성능 도구: 벤치마킹 스크립트와 레이어별 프로파일링을 포함하여 지연 시간과 스루풋을 분석할 수 있습니다.
  • 배포 유연성: DeepStream bbox 파서 플러그인과 NVIDIA Jetson 장치 지원을 포함합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트