ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ

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



Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ: Как Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DeepStream SDK Π½Π° Jetson Nano с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ultralytics YOLO11

Π’ этом ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΌ руководствС ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описано Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ultralytics YOLO11 Π½Π° устройствах 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?

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

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

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

НаконСчник

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

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

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ 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 YOLO11 модСль обнаруТСния (.pt) ΠΏΠΎ Π²Π°ΡˆΠ΅ΠΌΡƒ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΈΠ· Ρ€Π΅Π»ΠΈΠ·ΠΎΠ²YOLO11 . Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ yolov8s.pt.

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

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

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

  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
    

    Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ статичСский Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ = 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 Π·Π°ΠΉΠΌΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ начнСтся процСсс вычислСния. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, поТалуйста, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Ρ‹.

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

НаконСчник

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ модСль Π² 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 ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -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 ΠΏΡ€ΠΈΠ²Π΅Π΄ΡƒΡ‚ ΠΊ большСй точности ΠΈ скорости ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ. УстановитС это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² соотвСтствии с вашСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ GPU .

  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

Настройка ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 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, Π›Π°ΠΊΡˆΠ°Π½Ρ‚ΠΎΠΉ ΠΈ Π­Π»Π΅ΠΉΠ½.

ЧАБВО Π—ΠΠ”ΠΠ’ΠΠ•ΠœΠ«Π• Π’ΠžΠŸΠ ΠžΠ‘Π«

Как Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ultralytics YOLO11 Π½Π° устройствС NVIDIA Jetson?

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ultralytics YOLO11 Π½Π° устройство NVIDIA Jetson, сначала Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ DeepStream SDK, совмСстимый с вашСй вСрсиСй JetPack. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ NVIDIA Jetson для развСртывания YOLO11 , слСдуйтС ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΌ инструкциям Π² нашСм руководствС ΠΏΠΎ быстрому запуску.

Π’ Ρ‡Π΅ΠΌ прСимущСство использования TensorRT с YOLO11 Π½Π° NVIDIA Jetson?

ИспользованиС TensorRT с YOLO11 ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ модСль для Π²Ρ‹Π²ΠΎΠ΄Π°, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сниТая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Ρ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π½Π° устройствах NVIDIA Jetson. TensorRT обСспСчиваСт Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния с Π½ΠΈΠ·ΠΊΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ благодаря слиянию слоСв, Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ΅ ΠΈ автонастройкС ядра. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π±ΠΎΠ»Π΅Π΅ быстрому ΠΈ эффСктивному Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠ°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

МоТно Π»ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ultralytics YOLO11 с DeepStream SDK Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдствах NVIDIA Jetson?

Π”Π°, руководство ΠΏΠΎ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Ultralytics YOLO11 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DeepStream SDK ΠΈ TensorRT совмСстимо со всСй Π»ΠΈΠ½Π΅ΠΉΠΊΠΎΠΉ NVIDIA Jetson. Бюда входят Ρ‚Π°ΠΊΠΈΠ΅ устройства, ΠΊΠ°ΠΊ Jetson Orin NX 16GB с JetPack 5.1.3 ΠΈ Jetson Nano 4GB с JetPack 4.6.4. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ шаги см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ DeepStream для YOLO11.

Как ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ модСль YOLO11 Π² ONNX для DeepStream?

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ модСль YOLO11 Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ONNX для развСртывания с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ DeepStream, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ utils/export_yoloV8.py сцСнарий ΠΈΠ· DeepStream -Yolo Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

python3 utils/export_yoloV8.py -w yolov8s.pt --opset 12 --simplify

Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ "Экспорт ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ".

Какова ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ YOLO Π½Π° NVIDIA Jetson Orin NX?

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ YOLO11 Π½Π° NVIDIA Jetson Orin NX 16GB Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² зависимости ΠΎΡ‚ уровня точности TensorRT . НапримСр, ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8s Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚:

  • FP32 Precision: 15,63 мс/ΠΈΠΌ, 64 FPS
  • FP16 Precision: 7,94 мс/ΠΈΠΌ, 126 FPS
  • INT8 Precision: 5,53 мс/ΠΈΠΌ, 181 FPS

Π­Ρ‚ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°ΡŽΡ‚ ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ ΠΈ возмоТности использования TensorRT-ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… YOLO11 ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π½Π° NVIDIA ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Jetson. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ " Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ² ".

πŸ“… Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 4 мСсяца Π½Π°Π·Π°Π΄ ✏️ ОбновлСно 1 мСсяц Π½Π°Π·Π°Π΄

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