Deepstream-Molo
NVIDIA DeepStream SDK 7.1 / 7.0 / 6.4 / 6.3 / 6.2 / 6.1.1 / 6.1 / 6.0.1 / 6.0 / 5.1 Yolo 모델 구성
지금은 일부 업데이트로 제한됩니다. 이해 해주셔서 감사합니다.
YOLO-POSE : https://github.com/marcoslucianops/deepstream--lo-pose
Yolo-seg : https://github.com/marcoslucianops/deepstream--doro-se
Yolo-Face : https://github.com/marcoslucianops/deepstream--face-face
중요 : 새로운 내보내기 파일로 Onx 모델을 내보내고, 업데이트 된 파일로 Tensorrt 엔진을 다시 생성 한 다음 모델에 따라 새로운 config_infer_primary 파일을 사용하십시오.
이 저장소의 개선
- INT8 교정 지원
- 비 광장 모델에 대한 지원
- 모델 벤치 마크
- CFG를 사용한 DarkNet 모델 (YOLOV4 등) 및 GPU 사후 처리와의 가중치 전환 지원
- RT-Detr, Co-Detr (MMDetection), Yolo-NAS, Ppyoloe+, Ppyoloe, Damo-Yolo, Gold-Molo, RTMDET (MMYOLO), YOLOX, YOLOR, YOLOV9, YOLOV8, YOLOV7, YOLOV6 및 YOLOV5에 대한 지원
- GPU Bbox 파서
- 사용자 정의 ONNX 모델 파서
- 동적 배치 크기
- DarkNet 및 Onnx 내보내기 모델의 int8 캘리브레이션 (PTQ)
시작하기
- 요구 사항
- 지원되는 모델
- 벤치 마크
- DGPU 설치
- 기본 사용
- 도커 사용
- NMS 구성
- 메모
- int8 교정
- Yolov5 사용
- YOLOV6 사용
- Yolov7 사용
- Yolov8 사용
- YOLOV9 사용
- 노른자 사용
- Yolox 사용
- RTMDET (MMYOLO) 사용
- 골드 --언로 사용
- 다모-닐로 사용
- PP-NOLOE / PP-YOLOE+ 사용량
- Yolo-Nas 사용
- Co-Detr (Mmdetection) 사용
- RT-DET PYTORCH 사용
- RT-Detr 패들 사용
- RT-Detr Ultralytics 사용
- 사용자 정의 모델 사용
- 다수의 노른자
요구 사항
X86 플랫폼의 DeepStream 7.1
- 우분투 22.04
- CUDA 12.6 업데이트 2
- Tensorrt 10.3 Ga (10.3.0.26)
- NVIDIA DRIVER 535.183.06 (데이터 센터 / TESLA 시리즈) / 560.35.03 (Titan, Geforce RTX / GTX 시리즈 및 RTX / Quadro Series)
- Nvidia Deepstream SDK 7.1
- Gstreamer 1.20.3
- Deepstream-Molo
X86 플랫폼의 DeepStream 7.0
- 우분투 22.04
- CUDA 12.2 업데이트 2
- Tensorrt 8.6 Ga (8.6.1.6)
- NVIDIA 드라이버 535 (> = 535.161.08)
- Nvidia Deepstream SDK 7.0
- Gstreamer 1.20.3
- Deepstream-Molo
X86 플랫폼의 DeepStream 6.4
- 우분투 22.04
- CUDA 12.2 업데이트 2
- Tensorrt 8.6 Ga (8.6.1.6)
- NVIDIA 드라이버 535 (> = 535.104.12)
- Nvidia Deepstream SDK 6.4
- Gstreamer 1.20.3
- Deepstream-Molo
X86 플랫폼의 DeepStream 6.3
- 우분투 20.04
- CUDA 12.1 업데이트 1
- Tensorrt 8.5 GA 업데이트 2 (8.5.3.1)
- NVIDIA 드라이버 525 (> = 525.125.06)
- Nvidia Deepstream SDK 6.3
- Gstreamer 1.16.3
- Deepstream-Molo
X86 플랫폼의 DeepStream 6.2
- 우분투 20.04
- CUDA 11.8
- Tensorrt 8.5 GA 업데이트 1 (8.5.2.2)
- NVIDIA 드라이버 525 (> = 525.85.12)
- Nvidia Deepstream SDK 6.2
- Gstreamer 1.16.3
- Deepstream-Molo
X86 플랫폼의 DeepStream 6.1.1
- 우분투 20.04
- CUDA 11.7 업데이트 1
- Tensorrt 8.4 GA (8.4.1.5)
- NVIDIA 드라이버 515.65.01
- Nvidia Deepstream SDK 6.1.1
- Gstreamer 1.16.2
- Deepstream-Molo
X86 플랫폼의 DeepStream 6.1
- 우분투 20.04
- CUDA 11.6 업데이트 1
- Tensorrt 8.2 GA 업데이트 4 (8.2.5.1)
- NVIDIA 드라이버 510.47.03
- Nvidia Deepstream SDK 6.1
- Gstreamer 1.16.2
- Deepstream-Molo
X86 플랫폼에서 DeepStream 6.0.1 / 6.0
- 우분투 18.04
- CUDA 11.4 업데이트 1
- Tensorrt 8.0 GA (8.0.1)
- NVIDIA 드라이버 470.63.01
- Nvidia Deepstream SDK 6.0.1 / 6.0
- Gstreamer 1.14.5
- Deepstream-Molo
X86 플랫폼의 DeepStream 5.1
- 우분투 18.04
- CUDA 11.1
- Tensorrt 7.2.2
- NVIDIA 드라이버 460.32.03
- Nvidia Deepstream SDK 5.1
- Gstreamer 1.14.5
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 7.1
- 제트 팩 6.1
- Nvidia Deepstream SDK 7.1
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 7.0
- 제트 팩 6.0
- Nvidia Deepstream SDK 7.0
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 6.4
- 제트 팩 6.0 DP
- Nvidia Deepstream SDK 6.4
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 6.3
- 제트 팩 5.1.3 / 5.1.2
- Nvidia Deepstream SDK 6.3
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 6.2
- 제트 팩 5.1.3 / 5.1.2 / 5.1.1 / 5.1
- Nvidia Deepstream SDK 6.2
- Deepstream-Molo
Jetson 플랫폼의 Deepstream 6.1.1
- 제트 팩 5.0.2
- Nvidia Deepstream SDK 6.1.1
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 6.1
- 제트 팩 5.0.1 dp
- Nvidia Deepstream SDK 6.1
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 6.0.1 / 6.0
- 제트 팩 4.6.4
- Nvidia Deepstream SDK 6.0.1 / 6.0
- Deepstream-Molo
Jetson 플랫폼에서 Deepstream 5.1
- 제트 팩 4.5.1
- Nvidia Deepstream SDK 5.1
- Deepstream-Molo
지원되는 모델
- 다크 넷
- Mobilenet-Molo
- yolo fastest
- yolov5
- yolov6
- yolov7
- yolov8
- yolov9
- 노른자
- yolox
- rtmdet (mmyolo)
- 금언
- 다모 듬기
- PP-NOLOE / PP-YOLOE+
- Yolo-Nas
- Co-Detr (mmdetection)
- rt-detr
기본 사용
1. 레포를 다운로드하십시오
git clone https://github.com/marcoslucianops/DeepStream-Yolo.git
cd DeepStream-Yolo
2. Darknet Repo에서 DeepStream-Nolo 폴더로 cfg 및 weights 파일을 다운로드하십시오.
3. lib를 컴파일하십시오
3.1. DeepStream 버전에 따라 CUDA_VER 설정하십시오
x86 플랫폼
DeepStream 7.1 = 12.6
DeepStream 7.0 / 6.4 = 12.2
DeepStream 6.3 = 12.1
DeepStream 6.2 = 11.8
DeepStream 6.1.1 = 11.7
DeepStream 6.1 = 11.6
DeepStream 6.0.1 / 6.0 = 11.4
DeepStream 5.1 = 11.1
제트슨 플랫폼
DeepStream 7.1 = 12.6
DeepStream 7.0 / 6.4 = 12.2
DeepStream 6.3 / 6.2 / 6.1.1 / 6.1 = 11.4
DeepStream 6.0.1 / 6.0 / 5.1 = 10.2
3.2. lib를 만드십시오
make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
4. 모델에 따라 config_infer_primary.txt 파일 편집 (YOLOV4의 예).
[property]
...
custom-network-config=yolov4.cfg
model-file=yolov4.weights
...
참고 : DarkNet 모델의 경우 기본적으로 동적 배치 크기가 설정됩니다. 정적 배치 크기를 사용하려면 라인을 타협하십시오
...
force-implicit-batch-dim=1
...
5. 실행
deepstream-app -c deepstream_app_config.txt
참고 : Tensorrt 엔진 파일을 생성하는 데 시간이 오래 걸릴 수 있습니다 (때로는 10 분 이상).
참고 : YOLOV2 또는 YOLOV2-TINY 모델을 사용하려면 deepstream_app_config.txt 를 실행하기 전에 변경하십시오.
...
[primary-gie]
...
config-file=config_infer_primary_yoloV2.txt
...
도커 사용
x86 플랫폼
nvcr.io/nvidia/deepstream:7.1-gc-triton-devel
nvcr.io/nvidia/deepstream:7.1-triton-multiarch
제트슨 플랫폼
nvcr.io/nvidia/deepstream:7.1-triton-multiarch
참고 : nvdsinfer_custom_impl_Yolo 를 컴파일하려면 컨테이너 내부에 g ++를 설치해야합니다.
apt-get install build-essential
참고 : DeepStream 7.1의 경우 Docker 컨테이너는 오디오 데이터 구문 분석, CPU 디코드 및 CPU 인코딩과 같은 특정 멀티미디어 작업에 필요한 라이브러리를 패키지하지 않습니다. 이 변경은 오디오 트랙이 포함 된 MP4와 같은 특정 비디오 스트림/파일 처리에 영향을 줄 수 있습니다. Docker Images 내부의 아래 스크립트를 실행하여 모든 DeepStreamsDK 기능을 사용하는 데 필요한 추가 패키지를 설치하십시오.
/opt/nvidia/deepstream/deepstream/user_additional_install.sh
NMS 구성
nms-iou-threshold , pre-cluster-threshold 및 topk 값을 변경하려면 config_infer 파일을 수정하십시오.
[class-attrs-all]
nms-iou-threshold=0.45
pre-cluster-threshold=0.25
topk=300
참고 : config_infer 파일에서 cluster-mode=2 설정해야합니다.
메모
때때로 GSTREAMER 파이프 라인 또는 샘플 앱을 실행하는 동안 사용자는 오류가 발생할 수 있습니다 : GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. . 이 문제는 기본적으로 Ubuntu 22.04와 함께 제공되는 glib 2.0-2.72 버전의 버그로 인해 발생합니다. 이 문제는 glib 2.76 에서 다루어지며 설치는 문제를 해결하기 위해 필요합니다 (https://github.com/ghithub.com/gnome/glib/tree/2.76.6).
때때로 RTSP 스트림으로 응용 프로그램은 EOS에 도달 할 때 붙어 있습니다. 이것은 rtpjitterbuffer 구성 요소의 문제 때문입니다. 이 문제를 해결하기 위해 GSTRTPManager 라이브러리를 업데이트하기 위해 필요한 세부 정보가 제공되었습니다.
/opt/nvidia/deepstream/deepstream/update_rtpmanager.sh
메타 데이터 추출
Python 및 C/C ++를 사용하여 DeepStream에서 메타 데이터를 얻을 수 있습니다. C/C ++의 경우 deepstream-app 또는 deepstream-test 코드를 편집 할 수 있습니다. Python의 경우 deepstream_python_apps를 설치하고 편집 할 수 있습니다.
기본적으로 Bbox의 레이블, 위치 등을 얻으려면 NvDsObjectMeta (Python / C / C ++) and NvDsFrameMeta (Python / C / C ++)를 조작해야합니다.
내 프로젝트 : https://www.youtube.com/marcoslucianotv