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 ، المشارك (MMDETECENT) ، Yolo-NAS ، PPYOLOE+، PPYOLOE ، DAMO-YOLO ، GOLD-YOLO ، RTMDET (MMYOLO) ، YOLOX ، YOLOR ، YOLOV9 ، YOLOV8 ، YOLOV7 ، YOLOV5 و YOLOV5 باستخدام التحويل مع GPU PEST-PERCESSING
- GPU Bbox Parser
- محلل طراز ONNX مخصص
- حجم الدُفعات الديناميكية
- Int8 Calibration (PTQ) لنماذج Darknet و ONNX المصدرة
ابدء
- متطلبات
- النماذج المدعومة
- المعايير
- تثبيت DGPU
- الاستخدام الأساسي
- استخدام Docker
- تكوين NMS
- ملحوظات
- int8 معايرة
- استخدام yolov5
- استخدام yolov6
- استخدام yolov7
- استخدام yolov8
- yolov9 الاستخدام
- استخدام يولور
- استخدام يولوكس
- استخدام RTMDET (MMYOLO)
- استخدام الذهب يولو
- استخدام دامو يولو
- pp-yoloe / pp-yoloe+ الاستخدام
- yolo-nas الاستخدام
- الاستخدام المشارك (MMDetection)
- استخدام RT-Detr Pytorch
- استخدام مجداف RT-detr
- استخدام ultralytics RT-detr
- باستخدام نموذجك المخصص
- متعددة يولو gies
متطلبات
DeepStream 7.1 على منصة x86
- أوبونتو 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 Series و RTX / Quadro Series)
- Nvidia Deepstream SDK 7.1
- Gstreamer 1.20.3
- Deepstream-Yolo
DeepStream 7.0 على منصة x86
- أوبونتو 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
- أوبونتو 22.04
- CUDA 12.2 تحديث 2
- Tensorrt 8.6 GA (8.6.1.6)
- Nvidia Driver 535 (> = 535.104.12)
- Nvidia Deepstream SDK 6.4
- Gstreamer 1.20.3
- Deepstream-Yolo
DeepStream 6.3 على منصة x86
- أوبونتو 20.04
- CUDA 12.1 تحديث 1
- Tensorrt 8.5 GA Update 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
- أوبونتو 20.04
- كودا 11.8
- Tensorrt 8.5 GA تحديث 1 (8.5.2.2)
- Nvidia Driver 525 (> = 525.85.12)
- Nvidia Deepstream SDK 6.2
- Gstreamer 1.16.3
- Deepstream-Yolo
DeepStream 6.1.1 على منصة x86
- أوبونتو 20.04
- CUDA 11.7 تحديث 1
- Tensorrt 8.4 GA (8.4.1.5)
- نفيديا سائق 515.65.01
- Nvidia Deepstream SDK 6.1.1
- Gstreamer 1.16.2
- Deepstream-Yolo
DeepStream 6.1 على منصة x86
- أوبونتو 20.04
- CUDA 11.6 تحديث 1
- Tensorrt 8.2 GA Update 4 (8.2.5.1)
- Nvidia Driver 510.47.03
- Nvidia Deepstream SDK 6.1
- Gstreamer 1.16.2
- Deepstream-Yolo
DeepStream 6.0.1 / 6.0 على منصة x86
- أوبونتو 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
- أوبونتو 18.04
- كودا 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
النماذج المدعومة
- Darknet
- Mobilenet-yolo
- يولو أسرف
- Yolov5
- Yolov6
- Yolov7
- Yolov8
- Yolov9
- يولور
- يولوكس
- RTMDET (MMYOLO)
- الذهب يولو
- دامو يولو
- pp-yoloe / pp-yoloe+
- يولو ناس
- المشارك (MMDetection)
- RT-detr
الاستخدام الأساسي
1. قم بتنزيل الريبو
git clone https://github.com/marcoslucianops/DeepStream-Yolo.git
cd DeepStream-Yolo
2. قم بتنزيل ملفات cfg و weights
3. تجميع lib
3.1. اضبط 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
منصة 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. اصنع 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
...
استخدام 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-test deepstream-app أو DeepStream. بالنسبة لـ Python ، يمكنك تثبيت وتحرير DeepStream_Python_Apps.
في الأساس ، تحتاج إلى معالجة NvDsObjectMeta (Python / C / C ++) and NvDsFrameMeta (Python / C / C ++) للحصول على الملصق ، وما إلى ذلك من BBOXEs.
مشاريعي: https://www.youtube.com/marcoslucianotv