ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому

Ultralytics YOLOv8 Π½Π° NVIDIA Jetson с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DeepStream SDK ΠΈ TensorRT

Π’ этом руководствС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ultralytics YOLOv8 Π½Π° устройствах NVIDIA Jetson с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DeepStream SDK ΠΈ TensorRT. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ TensorRT , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вычислСний Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Jetson.

DeepStream Π½Π° NVIDIA Jetson

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π­Ρ‚ΠΎ руководство Π±Ρ‹Π»ΠΎ протСстировано ΠΊΠ°ΠΊ Π½Π° Seeed Studio reComputer J4012, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ основан Π½Π° NVIDIA Jetson Orin NX 16GB ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ JetPack вСрсии JP5.1.3, Ρ‚Π°ΠΊ ΠΈ Π½Π° Seeed Studio reComputer J1020 v2, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ основан Π½Π° NVIDIA Jetson Nano 4GB ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ JetPack вСрсии JP4.6.4. ΠžΠΆΠΈΠ΄Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° всСх Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π»ΠΈΠ½Π΅ΠΉΠΊΠ°Ρ… NVIDIA Jetson, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ новСйшиС ΠΈ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠ΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ NVIDIA DeepStream?

NVIDIA DeepStream SDK - это ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° Π±Π°Π·Π΅ GStreamer для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Π½ΡΠΎΡ€Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΈΠ΄Π΅ΠΎ, Π°ΡƒΠ΄ΠΈΠΎ ΠΈ понимания ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π° основС ИИ. Он идСально ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ИИ, ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌΡƒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΡŽ, стартапов ΠΈ OEM-ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΡΠΎΠ·Π΄Π°ΡŽΡ‰ΠΈΡ… прилоТСния ΠΈ сСрвисы IVA (Intelligent Video Analytics). Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ‚Ρ‹ моТСшь ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ отслСТиваниС, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅/Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³ Π²ΠΈΠ΄Π΅ΠΎ. Π’Π°ΠΊΠΈΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ, изобраТСния ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠœΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° DeepStream позволяСт Ρ‚Π΅Π±Π΅ быстрСС ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния ΠΈ сСрвисы искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° зрСния Π² локальной сСти, Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΈ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

ΠŸΡ€Π΅Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚Ρ‹

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π²Ρ‹ Π½Π°Ρ‡Π½Π΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этому руководству:

НаконСчник

Π’ этом руководствС ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ установки ΠΏΠ°ΠΊΠ΅Ρ‚Π° Debian для установки DeepStream SDK Π½Π° устройство Jetson. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ моТСшь ΠΏΠΎΡΠ΅Ρ‚ΠΈΡ‚ΡŒ страницу DeepStream SDK on Jetson (Archived), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ вСрсиям DeepStream.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ DeepStream для YOLOv8

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ marcoslucianops/DeepStream-Yolo GitHub, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ NVIDIA DeepStream SDK для ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ YOLO . ΠœΡ‹ Ρ†Π΅Π½ΠΈΠΌ усилия marcoslucianops Π·Π° Π΅Π³ΠΎ Π²ΠΊΠ»Π°Π΄!

  1. Установка зависимостСй

    pip install cmake
    pip install onnxsim
    
  2. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

    git clone https://github.com/marcoslucianops/DeepStream-Yolo
    cd DeepStream-Yolo
    
  3. Π—Π°Π³Ρ€ΡƒΠ·ΠΈ Ultralytics YOLOv8 модСль обнаруТСния (.pt) ΠΏΠΎ своСму Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΈΠ· YOLOv8 Ρ€Π΅Π»ΠΈΠ·ΠΎΠ². Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ yolov8s.pt.

    wget https://github.com/ultralytics/assets/releases/download/v8.2.0/yolov8s.pt
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ моТСшь ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΡƒΡŽ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ модСль YOLOv8 .

  4. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ модСль Π² ONNX

    python3 utils/export_yoloV8.py -w yolov8s.pt
    

    ΠŸΠ΅Ρ€Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π΅

    Для DeepStream 6.0.1 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ опсСт 12 ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ΅. ΠžΠΏΡΠ΅Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ 16.

    --opset 12
    

    ИзмСнСниС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π²Ρ‹Π²ΠΎΠ΄Π° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: 640)

    -s SIZE
    --size SIZE
    -s HEIGHT WIDTH
    --size HEIGHT WIDTH
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для 1280:

    -s 1280
    or
    -s 1280 1280
    

    Для упрощСния ONNX модСль (DeepStream >= 6.0)

    --simplify
    

    ИспользованиС динамичСского Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° (DeepStream >= 6.1)

    --dynamic
    

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для batch-size = 4)

    --batch 4
    
  5. УстановитС Π²Π΅Ρ€ΡΠΈΡŽ CUDA Π² соотвСтствии с установлСнной вСрсиСй JetPack

    Для JetPack 4.6.4:

    export CUDA_VER=10.2
    

    Для JetPack 5.1.3:

    export CUDA_VER=11.4
    
  6. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

    make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
    
  7. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» config_infer_primary_yoloV8.txt Π² соотвСтствии с вашСй модСлью (для YOLOv8s с 80 классами)

    [property]
    ...
    onnx-file=yolov8s.onnx
    ...
    num-detected-classes=80
    ...
    
  8. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» deepstream_app_config Ρ„Π°ΠΉΠ»

    ...
    [primary-gie]
    ...
    config-file=config_infer_primary_yoloV8.txt
    
  9. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ источник Π²ΠΈΠ΄Π΅ΠΎ Π² deepstream_app_config Ρ„Π°ΠΉΠ». Π—Π΄Π΅ΡΡŒ загруТаСтся Π²ΠΈΠ΄Π΅ΠΎΡ„Π°ΠΉΠ» ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

    ...
    [source0]
    ...
    uri=file:///opt/nvidia/deepstream/deepstream/samples/streams/sample_1080p_h264.mp4
    

Π’Ρ‹Π²ΠΎΠ΄ запуска

deepstream-app -c deepstream_app_config.txt

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ГСнСрация Ρ„Π°ΠΉΠ»Π° Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ TensorRT engine ΠΏΠ΅Ρ€Π΅Π΄ запуском логичСского Π²Ρ‹Π²ΠΎΠ΄Π°. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, поТалуйста, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ΡΡŒ тСрпСния.

YOLOv8 с Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ

НаконСчник

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ модСль Π² Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ FP16, просто установитС model-engine-file=model_b1_gpu0_fp16.engine ΠΈ network-mode=2 Π²Π½ΡƒΡ‚Ρ€ΠΈ config_infer_primary_yoloV8.txt

ΠšΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ° INT8

Если Ρ‚Ρ‹ Ρ…ΠΎΡ‡Π΅ΡˆΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ INT8 для Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ Ρ‚Π΅Π±Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги

  1. Набор OPENCV ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ окруТСния

    export OPENCV=1
    
  2. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ

    make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
    
  3. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… COCO, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ val2017ИзвлСки ΠΈ пСрСмСсти Π² DeepStream-Yolo ΠΏΠ°ΠΏΠΊΠ°

  4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° для ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

    mkdir calibration
    
  5. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ 1000 случайных ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… COCO для выполнСния ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ

    for jpg in $(ls -1 val2017/*.jpg | sort -R | head -1000); do \
        cp ${jpg} calibration/; \
    done
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    NVIDIA Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 500 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ точности. Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для большСй точности Π²Ρ‹Π±Ρ€Π°Π½ΠΎ 1000 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (большС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ = большС Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ). Π’Ρ‹ моТСшь ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ head -1000. НапримСр, для 2000 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, head -2000. Π­Ρ‚ΠΎΡ‚ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

  6. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» calibration.txt Ρ„Π°ΠΉΠ» со всСми Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌΠΈ изобраТСниями

    realpath calibration/*jpg > calibration.txt
    
  7. Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… срСды

    export INT8_CALIB_IMG_PATH=calibration.txt
    export INT8_CALIB_BATCH_SIZE=1
    

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π§Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ INT8_CALIB_BATCH_SIZE, Ρ‚Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ. УстановитС Π΅Π³ΠΎ Π² соотвСтствии с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ графичСского процСссора.

  8. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» config_infer_primary_yoloV8.txt Ρ„Π°ΠΉΠ»

    Π‘ сайта

    ...
    model-engine-file=model_b1_gpu0_fp32.engine
    #int8-calib-file=calib.table
    ...
    network-mode=0
    ...
    

    На

    ...
    model-engine-file=model_b1_gpu0_int8.engine
    int8-calib-file=calib.table
    ...
    network-mode=1
    ...
    

Π’Ρ‹Π²ΠΎΠ΄ запуска

deepstream-app -c deepstream_app_config.txt

Настройка MultiStream

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Deepstream, ΠΌΠΎΠΆΠ½ΠΎ внСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ измСнСния Π² Ρ„Π°ΠΉΠ» deepstream_app_config.txt Ρ„Π°ΠΉΠ»

  1. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ строки ΠΈ столбцы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ сСтки Π² соотвСтствии с количСством ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ. НапримСр, для 4 ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 2 строки ΠΈ 2 столбца.

    [tiled-display]
    rows=2
    columns=2
    
  2. Набор num-sources=4 ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ uri ΠΈΠ· всСх 4 ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²

    [source0]
    enable=1
    type=3
    uri=<path_to_video>
    uri=<path_to_video>
    uri=<path_to_video>
    uri=<path_to_video>
    num-sources=4
    

Π’Ρ‹Π²ΠΎΠ΄ запуска

deepstream-app -c deepstream_app_config.txt
ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Π°Ρ настройка

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ описано, ΠΊΠ°ΠΊ YOLOv8s МодСли Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… TensorRT ΡƒΡ€ΠΎΠ²Π½ΠΈ точности с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… 640x640 Π½Π° NVIDIA Jetson Orin NX 16GB.

НазваниС ΠΌΠΎΠ΄Π΅Π»ΠΈ Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ВрСмя Π²Ρ‹Π²ΠΎΠ΄Π° (мс/ΠΈΠΌ) FPS
YOLOv8s FP32 15.63 64
FP16 7.94 126
INT8 5.53 181

Благодарности

Π­Ρ‚ΠΎ руководство ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ создано нашими Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈΠ· Seeed Studio, Π›Π°ΠΊΡˆΠ°Π½Ρ‚ΠΎΠΉ ΠΈ Π­Π»Π΅ΠΉΠ½.



Боздано 2024-07-01, ОбновлСно 2024-07-01
Авторы: lakshanthad (1)

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ