์ฝ˜ํ…์ธ ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

Ultralytics YOLO11 NVIDIA ์—์„œ DeepStream SDK๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Jetson ๋ฐ TensorRT



Watch: ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ Jetson Nano์—์„œ DeepStream SDK๋กœ ์—ฌ๋Ÿฌ ์ŠคํŠธ๋ฆผ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• Ultralytics YOLO11

์ด ์ข…ํ•ฉ ๊ฐ€์ด๋“œ๋Š” DeepStream SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ NVIDIA Jetson ์žฅ์น˜์— Ultralytics YOLO11 ์„ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์•ˆ๋‚ด์™€ TensorRT ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” TensorRT ์„ ์‚ฌ์šฉํ•˜์—ฌ Jetson ํ”Œ๋žซํผ์—์„œ ์ถ”๋ก  ์„ฑ๋Šฅ์„ ์ตœ๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.

NVIDIA Jetson์˜ DeepStream

์ฐธ๊ณ 

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์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

NVIDIA์˜ DeepStream SDK๋Š” AI ๊ธฐ๋ฐ˜ ๋ฉ€ํ‹ฐ ์„ผ์„œ ์ฒ˜๋ฆฌ, ๋น„๋””์˜ค, ์˜ค๋””์˜ค ๋ฐ ์ด๋ฏธ์ง€ ์ดํ•ด๋ฅผ ์œ„ํ•œ GStreamer ๊ธฐ๋ฐ˜์˜ ์™„๋ฒฝํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ถ„์„ ํˆดํ‚ท์ž…๋‹ˆ๋‹ค. IVA(์ง€๋Šฅํ˜• ๋น„๋””์˜ค ๋ถ„์„) ์•ฑ๊ณผ ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋น„์ „ AI ๊ฐœ๋ฐœ์ž, ์†Œํ”„ํŠธ์›จ์–ด ํŒŒํŠธ๋„ˆ, ์Šคํƒ€ํŠธ์—… ๋ฐ OEM์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ด์ œ ์‹ ๊ฒฝ๋ง๊ณผ ์ถ”์ , ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ, ๋น„๋””์˜ค ๋ Œ๋”๋ง๊ณผ ๊ฐ™์€ ๊ธฐํƒ€ ๋ณต์žกํ•œ ์ฒ˜๋ฆฌ ์ž‘์—…์„ ํ†ตํ•ฉํ•˜๋Š” ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ดํ”„๋ผ์ธ์„ ํ†ตํ•ด ๋น„๋””์˜ค, ์ด๋ฏธ์ง€, ์„ผ์„œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์‹ค์‹œ๊ฐ„ ๋ถ„์„์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋”ฅ์ŠคํŠธ๋ฆผ์˜ ๋ฉ€ํ‹ฐ ํ”Œ๋žซํผ ์ง€์›์€ ์˜จํ”„๋ ˆ๋ฏธ์Šค, ์—ฃ์ง€, ํด๋ผ์šฐ๋“œ์—์„œ ๋น„์ „ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์„œ๋น„์Šค๋ฅผ ๋” ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ „์ œ ์กฐ๊ฑด

์ด ๊ฐ€์ด๋“œ๋ฅผ ๋”ฐ๋ฅด๊ธฐ ์ „์— ๋จผ์ € ํ™•์ธํ•˜์„ธ์š”:

ํŒ

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Jetson ์žฅ์น˜์— DeepStream SDK๋ฅผ ์„ค์น˜ํ•˜๋Š” Debian ํŒจํ‚ค์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Jetson์˜ DeepStream SDK(์•„์นด์ด๋ธŒ) ๋ฅผ ๋ฐฉ๋ฌธํ•˜์—ฌ ๋ ˆ๊ฑฐ์‹œ ๋ฒ„์ „์˜ DeepStream์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฅ์ŠคํŠธ๋ฆผ ๊ตฌ์„ฑ YOLO11

์—ฌ๊ธฐ์—์„œ๋Š” YOLO ๋ชจ๋ธ์— ๋Œ€ํ•œ NVIDIA DeepStream SDK ์ง€์›์„ ํฌํ•จํ•˜๋Š” marcoslucianops/DeepStream-Yolo GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์—ฌํ•ด ์ฃผ์‹  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. ์„ค์น˜๋œ JetPack ๋ฒ„์ „์— ๋”ฐ๋ผ CUDA ๋ฒ„์ „์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    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. ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ COCO ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ 1000๊ฐœ์˜ ๋ฌด์ž‘์œ„ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ณด์ •์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

    ์ฐธ๊ณ 

    NVIDIA ๋Š” ์ข‹์€ ์ •ํ™•๋„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ตœ์†Œ 500๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์—์„œ๋Š” ๋” ๋‚˜์€ ์ •ํ™•๋„๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด 1000๊ฐœ์˜ ์ด๋ฏธ์ง€๊ฐ€ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ด๋ฏธ์ง€๊ฐ€ ๋งŽ์„์ˆ˜๋ก ์ •ํ™•๋„๊ฐ€ ๋†’์•„์ง). ๋จธ๋ฆฌ -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
    ...
    

    To

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

์ถ”๋ก  ์‹คํ–‰

deepstream-app -c deepstream_app_config.txt

๋ฉ€ํ‹ฐ์ŠคํŠธ๋ฆผ ์„ค์ •

๋‹จ์ผ ๋”ฅ์ŠคํŠธ๋ฆผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์—ฌ๋Ÿฌ ์ŠคํŠธ๋ฆผ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋”ฅ์ŠคํŠธ๋ฆผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. 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

์ƒ์„ธ ๋น„๊ต ํ‘œ

์„ฑ๋Šฅ

ํ˜•์‹ ์ƒํƒœ ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
TensorRT (FP32) โœ… 8.64
TensorRT (FP16) โœ… 5.27
TensorRT (INT8) โœ… 4.54
ํ˜•์‹ ์ƒํƒœ ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
TensorRT (FP32) โœ… 14.53
TensorRT (FP16) โœ… 7.91
TensorRT (INT8) โœ… 6.05
ํ˜•์‹ ์ƒํƒœ ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
TensorRT (FP32) โœ… 32.05
TensorRT (FP16) โœ… 15.55
TensorRT (INT8) โœ… 10.43
ํ˜•์‹ ์ƒํƒœ ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
TensorRT (FP32) โœ… 39.68
TensorRT (FP16) โœ… 19.88
TensorRT (INT8) โœ… 13.64
ํ˜•์‹ ์ƒํƒœ ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
TensorRT (FP32) โœ… 80.65
TensorRT (FP16) โœ… 39.06
TensorRT (INT8) โœ… 22.83

๊ฐ์‚ฌ

์ด ๊ฐ€์ด๋“œ๋Š” ์‹œ๋“œ ์ŠคํŠœ๋””์˜ค์˜ ์นœ๊ตฌ์ธ ๋ฝ์ƒจํƒ€์™€ ์ผ๋ ˆ์ธ์ด ์ฒ˜์Œ์— ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

NVIDIA Jetson ์žฅ์น˜์—์„œ Ultralytics YOLO11 ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ?

NVIDIA Jetson ์žฅ์น˜์—์„œ Ultralytics YOLO11 ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ๋จผ์ € ์‚ฌ์šฉ ์ค‘์ธ JetPack ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” DeepStream SDK๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋น ๋ฅธ ์‹œ์ž‘ ๊ฐ€์ด๋“œ ์˜ ๋‹จ๊ณ„๋ณ„ ๊ฐ€์ด๋“œ์— ๋”ฐ๋ผ YOLO11 ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด NVIDIA Jetson์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

NVIDIA Jetson์—์„œ YOLO11 ๊ณผ ํ•จ๊ป˜ TensorRT ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

YOLO11 ๊ณผ ํ•จ๊ป˜ TensorRT ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถ”๋ก ์„ ์œ„ํ•œ ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ์ค„์ด๊ณ  ์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. NVIDIA Jetson ์žฅ์น˜์—์„œ TensorRT ๋ ˆ์ด์–ด ์œตํ•ฉ, ์ •๋ฐ€ ๋ณด์ • ๋ฐ ์ปค๋„ ์ž๋™ ํŠœ๋‹์„ ํ†ตํ•ด ๊ณ ์„ฑ๋Šฅ, ์ €์ง€์—ฐ ๋”ฅ ๋Ÿฌ๋‹ ์ถ”๋ก ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠนํžˆ ๋น„๋””์˜ค ๋ถ„์„ ๋ฐ ์ž์œจ ๋จธ์‹ ๊ณผ ๊ฐ™์€ ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ NVIDIA Jetson ํ•˜๋“œ์›จ์–ด์—์„œ DeepStream SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Ultralytics YOLO11 ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ, ๋ฐฐํฌ ๊ฐ€์ด๋“œ Ultralytics YOLO11 ์™€ DeepStream SDK ๋ฐ TensorRT ๋Š” ์ „์ฒด NVIDIA Jetson ๋ผ์ธ์—…์—์„œ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ ฏํŒฉ 5.1.3์ด ์„ค์น˜๋œ ์ ฏ์Šจ ์˜ค๋ฆฐ NX 16GB ๋ฐ ์ ฏํŒฉ 4.6.4๊ฐ€ ์„ค์น˜๋œ ์ ฏ์Šจ ๋‚˜๋…ธ 4GB์™€ ๊ฐ™์€ ์žฅ์น˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‹จ๊ณ„๋Š” YOLO11 ์˜ DeepStream ๊ตฌ์„ฑ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

YOLO11 ๋ชจ๋ธ์„ DeepStream์šฉ ONNX ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

YOLO11 ๋ชจ๋ธ์„ DeepStream๊ณผ ํ•จ๊ป˜ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ONNX ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด utils/export_yoloV8.py ์Šคํฌ๋ฆฝํŠธ์—์„œ DeepStream-Yolo ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ช…๋ น์–ด ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

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

๋ชจ๋ธ ๋ณ€ํ™˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋ธ ๋‚ด๋ณด๋‚ด๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

NVIDIA ์—์„œ YOLO ์˜ ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํฌ๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

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 ์ •๋ฐ€๋„: 7.94ms/im, 126 FPS
  • INT8 Precision: 5.95 ms/im, 168 FPS

TensorRT์ด ๋ฒค์น˜๋งˆํฌ๋Š” NVIDIA Jetson ํ•˜๋“œ์›จ์–ด์—์„œ ์ตœ์ ํ™”๋œ YOLO11 ๋ชจ๋ธ ์‚ฌ์šฉ์˜ ํšจ์œจ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฒค์น˜๋งˆํฌ ๊ฒฐ๊ณผ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๐Ÿ“… 6 ๊ฐœ์›” ์ „์— ์ƒ์„ฑ๋จ โœ๏ธ 3 ์ผ ์ „ ์—…๋ฐ์ดํŠธ ๋จ

๋Œ“๊ธ€