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

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

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

This guide has been tested with NVIDIA Jetson Orin Nano Super Developer Kit running the latest stable JetPack release of JP6.1, Seeed Studio reComputer J4012 which is based on NVIDIA Jetson Orin NX 16GB running JetPack release of JP5.1.3 and Seeed Studio reComputer J1020 v2 which is based on NVIDIA Jetson Nano 4GB running JetPack release of JP4.6.4. It is expected to work across all the NVIDIA Jetson hardware lineup including latest and legacy.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ 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. Install Ultralytics with necessary dependencies

    cd ~
    pip install -U pip
    git clone https://github.com/ultralytics/ultralytics
    cd ultralytics
    pip install -e ".[export]" onnxslim
    
  2. Clone the DeepStream-Yolo repository

    cd ~
    git clone https://github.com/marcoslucianops/DeepStream-Yolo
    
  3. Copy the export_yoloV8.py file from DeepStream-Yolo/utils directory to the ultralytics ΠΏΠ°ΠΏΠΊΠ°

    cp ~/DeepStream-Yolo/utils/export_yoloV8.py ~/ultralytics
    cd ultralytics
    

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

    export_yoloV8.py works for both YOLOv8 and YOLO11 models.

  4. Download Ultralytics YOLO11 detection model (.pt) of your choice from YOLO11 releases. Here we use yolo11s.pt.

    wget https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11s.pt
    

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

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

  5. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ модСль Π² ONNX

    python3 export_yoloV8.py -w yolo11s.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
    
  6. Copy the generated .onnx model file and labels.txt file to the DeepStream-Yolo ΠΏΠ°ΠΏΠΊΠ°

    cp yolo11s.pt.onnx labels.txt ~/DeepStream-Yolo
    cd ~/DeepStream-Yolo
    
  7. УстановитС Π²Π΅Ρ€ΡΠΈΡŽ CUDA Π² соотвСтствии с установлСнной вСрсиСй JetPack.

    Для JetPack 4.6.4:

    export CUDA_VER=10.2
    

    Для JetPack 5.1.3:

    export CUDA_VER=11.4
    

    For Jetpack 6.1:

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

    make -C nvdsinfer_custom_impl_Yolo clean && make -C nvdsinfer_custom_impl_Yolo
    
  9. ΠžΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ config_infer_primary_yoloV8.txt file according to your model (for YOLO11s with 80 classes)

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

    ...
    [primary-gie]
    ...
    config-file=config_infer_primary_yoloV8.txt
    
  11. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ источник видСосигнала Π² 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 с Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ

НаконСчник

If you want to convert the model to FP16 precision, simply set model-engine-file=model_b1_gpu0_fp16.engine ΠΈ network-mode=2 Π²Π½ΡƒΡ‚Ρ€ΠΈ config_infer_primary_yoloV8.txt

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

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ INT8 для Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

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

Currently INT8 does not work with TensorRT 10.x. This section of the guide has been tested with TensorRT 8.x which is expected to work.

  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
ΠœΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Π°Ρ настройка

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹

The following benchmarks summarizes how YOLO11 models perform at different TensorRT precision levels with an input size of 640x640 on NVIDIA Jetson Orin NX 16GB.

Π‘Ρ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°

Jetson DeepStream Benchmarks Chart

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π°

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Бтатус ВрСмя Π²Ρ‹Π²ΠΎΠ΄Π° (мс/ΠΈΠΌ)
TensorRT (FP32) βœ… 8.64
TensorRT (FP16) βœ… 5.27
TensorRT (INT8) βœ… 4.54
Π€ΠΎΡ€ΠΌΠ°Ρ‚ Бтатус ВрСмя Π²Ρ‹Π²ΠΎΠ΄Π° (мс/ΠΈΠΌ)
TensorRT (FP32) βœ… 14.53
TensorRT (FP16) βœ… 7.91
TensorRT (INT8) βœ… 6.05
Π€ΠΎΡ€ΠΌΠ°Ρ‚ Бтатус ВрСмя Π²Ρ‹Π²ΠΎΠ΄Π° (мс/ΠΈΠΌ)
TensorRT (FP32) βœ… 32.05
TensorRT (FP16) βœ… 15.55
TensorRT (INT8) βœ… 10.43
Π€ΠΎΡ€ΠΌΠ°Ρ‚ Бтатус ВрСмя Π²Ρ‹Π²ΠΎΠ΄Π° (мс/ΠΈΠΌ)
TensorRT (FP32) βœ… 39.68
TensorRT (FP16) βœ… 19.88
TensorRT (INT8) βœ… 13.64
Π€ΠΎΡ€ΠΌΠ°Ρ‚ Бтатус ВрСмя Π²Ρ‹Π²ΠΎΠ΄Π° (мс/ΠΈΠΌ)
TensorRT (FP32) βœ… 80.65
TensorRT (FP16) βœ… 39.06
TensorRT (INT8) βœ… 22.83

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

Π­Ρ‚ΠΎ руководство ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π±Ρ‹Π»ΠΎ создано нашими Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈΠ· 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 yolo11s.pt --opset 12 --simplify

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

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

The performance of YOLO11 models on NVIDIA Jetson Orin NX 16GB varies based on TensorRT precision levels. For example, YOLO11s models achieve:

  • FP32 Precision: 14.6 ms/im, 68.5 FPS
  • FP16 Precision: 7,94 мс/ΠΈΠΌ, 126 FPS
  • INT8 Precision: 5.95 ms/im, 168 FPS

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

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

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