Deepstream-Yolo
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-yolo-pose
Yolo-seg: https://github.com/marcoslucianops/deepstream-yolo-seg
Yolo-face: https://github.com/marcoslucianops/deepstream-yolo-face
ВАЖНО: Пожалуйста, экспортируйте модель ONNX с новым файлом экспорта, снова генерируйте двигатель Tensorrt с обновленными файлами и используйте новый файл config_infer_primary в соответствии с вашей моделью
Улучшения в этом репозитории
- Поддержка калибровки Int8
- Поддержка не квадратных моделей
- Модели
- Поддержка моделей Darknet (YOLOV4, и т. Д.) Использование CFG и преобразования веса с помощью GPU после обработки
- Поддержка RT-DETR, Co-DETR (MMDetection), Yolo-NAS, Pppyoloe+, Ppyoloe, Damo-Yolo, Gold-Yolo, Rtmdet (Mmyolo), Yolox, Yolor, Yolov9, Yolov8, Yolov7, Yolov6 и Yolov5 с использованием Onnx Convenion с GP
- GPU Bbox Parser
- Пользовательский анализатор модели ONNX
- Динамический партийный размер
- Калибровка Int8 (PTQ) для моделей DarkNet и ONNX Exported
Начиная
- Требования
- Поддерживаемые модели
- Тесты
- Установка DGPU
- Основное использование
- Использование Docker
- Конфигурация NMS
- Примечания
- Int8 калибровка
- Использование Yolov5
- Использование Yolov6
- Использование Yolov7
- Использование Yolov8
- Использование Yolov9
- Использование Йолора
- Использование YOLOX
- RTMDET (MMYOLO) Использование
- Использование золота
- Использование Дамо-Йоло
- PP-YOLOE / PP-YOLOE+ Использование
- Использование Yolo-NAS
- Co-Detr (MMDetection) Использование
- RT-DETR PYTORCH Использование
- RT-DETR Использование весла
- Использование ультралитики RT-DETR
- Использование вашей пользовательской модели
- Многочисленные Йоло Гис
Требования
Deepstream 7.1 на платформе x86
- Ubuntu 22.04
- CUDA 12.6 Обновление 2
- Tensorrt 10.3 Ga (10.3.0.26)
- Driver Nvidia 535.183.06 (центр обработки данных / серия Tesla) / 560.35.03 (серия Titan, Geforce RTX / GTX и серия RTX / Quadro)
- NVIDIA Deepstream SDK 7.1
- GSTREAMER 1.20.3
- Deepstream-Yolo
Deepstream 7.0 на платформе x86
- Ubuntu 22.04
- CUDA 12.2 Обновление 2
- Tensorrt 8.6 Ga (8.6.1.6)
- Nvidia Driver 535 (> = 535.161.08)
- NVIDIA Deepstream SDK 7.0
- GSTREAMER 1.20.3
- Deepstream-Yolo
Deepstream 6.4 на платформе x86
- Ubuntu 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-Yolo
Deepstream 6.3 на платформе x86
- Ubuntu 20.04
- CUDA 12.1 Обновление 1
- Tensorrt 8.5 Ga Обновление 2 (8.5.3.1)
- Nvidia Driver 525 (> = 525,125,06)
- NVIDIA Deepstream SDK 6.3
- GSTREAMER 1.16.3
- Deepstream-Yolo
Deepstream 6.2 на платформе x86
- Ubuntu 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-Yolo
Deepstream 6.1.1 на платформе x86
- Ubuntu 20.04
- CUDA 11.7 Обновление 1
- Tensorrt 8.4 Ga (8.4.1.5)
- Nvidia Driver 515.65.01
- NVIDIA Deepstream SDK 6.1.1
- GSTREAMER 1.16.2
- Deepstream-Yolo
Deepstream 6.1 на платформе x86
- Ubuntu 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-Yolo
Deepstream 6.0.1 / 6.0 на платформе x86
- Ubuntu 18.04
- CUDA 11.4 Обновление 1
- Tensorrt 8.0 Ga (8.0.1)
- Nvidia Driver 470.63.01
- NVIDIA Deepstream SDK 6.0.1 / 6.0
- GSTREAMER 1.14.5
- Deepstream-Yolo
Deepstream 5.1 на платформе x86
- Ubuntu 18.04
- CUDA 11.1
- Tensorrt 7.2.2
- Nvidia Driver 460.32.03
- NVIDIA Deepstream SDK 5.1
- GSTREAMER 1.14.5
- Deepstream-Yolo
Deepstream 7.1 на платформе Jetson
- JetPack 6.1
- NVIDIA Deepstream SDK 7.1
- Deepstream-Yolo
Deepstream 7.0 на платформе Jetson
- JetPack 6.0
- NVIDIA Deepstream SDK 7.0
- Deepstream-Yolo
Deepstream 6.4 на платформе Jetson
- JetPack 6,0 DP
- NVIDIA Deepstream SDK 6.4
- Deepstream-Yolo
Deepstream 6.3 на платформе Jetson
- JetPack 5.1.3 / 5.1.2
- NVIDIA Deepstream SDK 6.3
- Deepstream-Yolo
Deepstream 6.2 на платформе Jetson
- JetPack 5.1.3 / 5.1.2 / 5.1.1 / 5.1
- NVIDIA Deepstream SDK 6.2
- Deepstream-Yolo
Deepstream 6.1.1 на платформе Jetson
- JetPack 5.0.2
- NVIDIA Deepstream SDK 6.1.1
- Deepstream-Yolo
Deepstream 6.1 на платформе Jetson
- JetPack 5.0.1 DP
- NVIDIA Deepstream SDK 6.1
- Deepstream-Yolo
Deepstream 6.0.1 / 6.0 на платформе Jetson
- JetPack 4.6.4
- NVIDIA Deepstream SDK 6.0.1 / 6.0
- Deepstream-Yolo
Deepstream 5.1 на платформе Jetson
- JetPack 4.5.1
- NVIDIA Deepstream SDK 5.1
- Deepstream-Yolo
Поддерживаемые модели
- Темная сеть
- Mobilenet-Yolo
- Yolo-Fast
- Yolov5
- Yolov6
- Yolov7
- Yolov8
- Yolov9
- Желтый
- Йолокса
- Rtmdet (mmyolo)
- Золото-Йоло
- Дамо-Йоло
- PP-YOLOE / PP-YOLOE+
- Йоло-нас
- Co-det (mmdetection)
- RT-DETR
Основное использование
1. Скачать репо
git clone https://github.com/marcoslucianops/DeepStream-Yolo.git
cd DeepStream-Yolo
2. Загрузите файлы cfg и weights от Darknet Repo в папку Deepstream Yolo
3. Скомпилируйте либера
3.1. Установите CUDA_VER в соответствии с вашей версией Deepstream
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
Платформа Jetson
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. Сделать либера
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
...
Использование Docker
x86 Платформа
nvcr.io/nvidia/deepstream:7.1-gc-triton-devel
nvcr.io/nvidia/deepstream:7.1-triton-multiarch
Платформа Jetson
nvcr.io/nvidia/deepstream:7.1-triton-multiarch
ПРИМЕЧАНИЕ . Чтобы скомпилировать nvdsinfer_custom_impl_Yolo , вам необходимо установить G ++ в контейнер
apt-get install build-essential
Примечание . С DeepStream 7.1 контейнеры Docker не являются пакетными библиотеками, необходимыми для определенных мультимедийных операций, таких как анализ аудиодатчиков, декод ЦП и кодирование ЦП. Это изменение может повлиять на обработку определенных видеопотоков/файлов, таких как MP4, которые включают в себя аудио -трек. Пожалуйста, запустите приведенный ниже скрипт внутри изображений Docker, чтобы установить дополнительные пакеты, которые могут потребоваться для использования всех функций 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
Примечание . Обязательно установите cluster-mode=2 в файле config_infer.
Примечания
Иногда во время запуска трубопровода Gstreamer или приложений примеров пользователь может встретиться с ошибкой: GLib (gthread-posix.c): Unexpected error from C library during 'pthread_setspecific': Invalid argument. Aborting. Полем Проблема вызвана из-за ошибки в версии glib 2.0-2.72 , которая по умолчанию поставляется с Ubuntu 22.04. Проблема решается в glib 2.76 , и его установка необходима для решения проблемы (https://github.com/gnome/glib/tree/2.76.6).
glib в более новую версию
pip3 install meson
pip3 install ninja
Примечание . Рекомендуется использовать Python Virtualenv.
git clone https://github.com/GNOME/glib.git
cd glib
git checkout 2.76.6
meson build --prefix=/usr
ninja -C build/
cd build/
ninja install
Проверьте и подтвердите недавно установленную версию Glib:
pkg-config --modversion glib-2.0
Иногда с потоками RTSP приложение застряло при достижении EOS. Это связано с проблемой в компоненте RTPJitterBuffer. Чтобы решить эту проблему, был предоставлен сценарий с необходимыми подробностями для обновления библиотеки GSTRTPManager.
/opt/nvidia/deepstream/deepstream/update_rtpmanager.sh
Извлечение метаданных
Вы можете получить метаданные от Deepstream, используя Python и C/C ++. Для C/C ++ вы можете редактировать коды deepstream-app или deepstream-test . Для Python вы можете установить и редактировать Deepstream_python_Apps.
По сути, вам нужно манипулировать NvDsObjectMeta (python / c / c ++) and NvDsFrameMeta (python / c / c ++), чтобы получить метку, позицию и т. Д. Блок.
Мои проекты: https://www.youtube.com/marcoslucianotv