Ultralytics YOLOv8 NVIDIA Jetson์์ DeepStream SDK ์ฌ์ฉ ๋ฐ TensorRT
์ด ์ข ํฉ ๊ฐ์ด๋์์๋ DeepStream SDK ๋ฐ TensorRT ์ ์ฌ์ฉํ์ฌ NVIDIA Jetson ์ฅ์น์ Ultralytics YOLOv8 ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ธํ ์ค๋ช ํฉ๋๋ค. ์ฌ๊ธฐ์๋ TensorRT ์ ์ฌ์ฉํ์ฌ Jetson ํ๋ซํผ์์ ์ถ๋ก ์ฑ๋ฅ์ ์ต๋ํํฉ๋๋ค.
์ฐธ๊ณ
์ด ๊ฐ์ด๋๋ JP5.1.3 JetPack ๋ฆด๋ฆฌ์ฆ๋ฅผ ์คํํ๋ NVIDIA Jetson Orin NX 16GB ๊ธฐ๋ฐ Seeed Studio reComputer J4012์ JP4.6.4 JetPack ๋ฆด๋ฆฌ์ฆ๋ฅผ ์คํํ๋ NVIDIA Jetson Nano 4GB ๊ธฐ๋ฐ Seeed Studio reComputer J1020 v2๋ก ํ ์คํธ๋์์ต๋๋ค. ์ต์ ๋ฐ ๋ ๊ฑฐ์๋ฅผ ํฌํจํ ๋ชจ๋ NVIDIA ์ ฏ์จ ํ๋์จ์ด ๋ผ์ธ์ ์์ ์๋ํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
NVIDIA DeepStream์ด๋ ๋ฌด์์ ๋๊น?
NVIDIA์ DeepStream SDK๋ AI ๊ธฐ๋ฐ ๋ฉํฐ ์ผ์ ์ฒ๋ฆฌ, ๋น๋์ค, ์ค๋์ค ๋ฐ ์ด๋ฏธ์ง ์ดํด๋ฅผ ์ํ GStreamer ๊ธฐ๋ฐ์ ์๋ฒฝํ ์คํธ๋ฆฌ๋ฐ ๋ถ์ ํดํท์ ๋๋ค. IVA(์ง๋ฅํ ๋น๋์ค ๋ถ์) ์ฑ๊ณผ ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ ๋น์ AI ๊ฐ๋ฐ์, ์ํํธ์จ์ด ํํธ๋, ์คํํธ์ ๋ฐ OEM์ ์ด์์ ์ ๋๋ค. ์ด์ ์ ๊ฒฝ๋ง๊ณผ ์ถ์ , ๋น๋์ค ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ, ๋น๋์ค ๋ ๋๋ง๊ณผ ๊ฐ์ ๊ธฐํ ๋ณต์กํ ์ฒ๋ฆฌ ์์ ์ ํตํฉํ๋ ์คํธ๋ฆผ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ฌํ ํ์ดํ๋ผ์ธ์ ํตํด ๋น๋์ค, ์ด๋ฏธ์ง, ์ผ์ ๋ฐ์ดํฐ์ ๋ํ ์ค์๊ฐ ๋ถ์์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ฅ์คํธ๋ฆผ์ ๋ฉํฐ ํ๋ซํผ ์ง์์ ์จํ๋ ๋ฏธ์ค, ์ฃ์ง, ํด๋ผ์ฐ๋์์ ๋น์ AI ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋น์ค๋ฅผ ๋ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
์ ์ ์กฐ๊ฑด
์ด ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅด๊ธฐ ์ ์:
- ์ค๋ช ์์ธ ๋น ๋ฅธ ์์ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์: Ultralytics YOLOv8 ์ ์ฌ์ฉํ์ฌ NVIDIA Jetson ์ฅ์น๋ฅผ ์ค์ ํ์ญ์์ค. Ultralytics YOLOv8
-
JetPack ๋ฒ์ ์ ๋ฐ๋ผ DeepStream SDK๋ฅผ ์ค์นํฉ๋๋ค.
- JetPack 4.6.4์ ๊ฒฝ์ฐ, DeepStream 6.0.1์ ์ค์นํฉ๋๋ค.
- JetPack 5.1.3์ ๊ฒฝ์ฐ, DeepStream 6.3์ ์ค์นํฉ๋๋ค.
ํ
์ด ๊ฐ์ด๋์์๋ Jetson ์ฅ์น์ DeepStream SDK๋ฅผ ์ค์นํ๋ Debian ํจํค์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค. ๋ํ Jetson์ DeepStream SDK(์์นด์ด๋ธ) ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ๋ ๊ฑฐ์ ๋ฒ์ ์ DeepStream์ ์ก์ธ์คํ ์๋ ์์ต๋๋ค.
์ ๋ํ DeepStream ๊ตฌ์ฑ YOLOv8
์ฌ๊ธฐ์์๋ YOLO ๋ชจ๋ธ์ ๋ํ NVIDIA DeepStream SDK ์ง์์ ํฌํจํ๋ marcoslucianops/DeepStream-Yolo GitHub ์ ์ฅ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ๊ธฐ์ฌํด ์ฃผ์ marcoslucianops์ ๋ ธ๊ณ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
-
์ข ์์ฑ ์ค์น
-
๋ค์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํฉ๋๋ค.
-
YOLOv8 ๋ฆด๋ฆฌ์ค์์ ์ํ๋ ํ์ง ๋ชจ๋ธ(.pt)์ Ultralytics YOLOv8 ๋ค์ด๋ก๋ํ์ธ์. ์ฌ๊ธฐ์๋ yolov8s.pt๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฐธ๊ณ
์ฌ์ฉ์ ์ง์ ํ๋ จ๋ YOLOv8 ๋ชจ๋ธ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
-
๋ชจ๋ธ์ ๋ค์์ผ๋ก ๋ณํ ONNX
์์ ๋ช ๋ น์ ์๋ ์ธ์๋ฅผ ์ ๋ฌํ์ญ์์ค.
DeepStream 6.0.1์ ๊ฒฝ์ฐ opset 12 ์ดํ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ธฐ๋ณธ opset์ 16์ ๋๋ค.
์ถ์ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด(๊ธฐ๋ณธ๊ฐ: 640)
1280์ ์:
๋จ์ํํ๋ ค๋ฉด ONNX ๋ชจ๋ธ(DeepStream >= 6.0)
๋์ ๋ฐฐ์น ํฌ๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด(DeepStream >= 6.1)
์ ์ batch-size๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด(batch-size = 4์ ์)
-
์ค์น๋ JetPack ๋ฒ์ ์ ๋ฐ๋ผ CUDA ๋ฒ์ ์ ์ค์ ํฉ๋๋ค.
JetPack 4.6.4์ ๊ฒฝ์ฐ:
JetPack 5.1.3์ ๊ฒฝ์ฐ:
-
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ปดํ์ผ
-
๋ฅผ ํธ์งํฉ๋๋ค.
config_infer_primary_yoloV8.txt
file ๋ชจ๋ธ์ ๋ฐ๋ผ( YOLOv8s 80๊ฐ ์์ ) -
๋ฅผ ํธ์งํฉ๋๋ค.
deepstream_app_config
ํ์ผ -
๋ค์์์ ๋น๋์ค ์์ค๋ฅผ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค.
deepstream_app_config
ํ์ผ. ์ฌ๊ธฐ์ ๊ธฐ๋ณธ ๋น๋์ค ํ์ผ์ด ๋ก๋๋ฉ๋๋ค
์ถ๋ก ์คํ
์ฐธ๊ณ
์์ฑํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. TensorRT ์ถ๋ก ์ ์์ํ๊ธฐ ์ ์ ์์ง ํ์ผ. ๊ทธ๋ฌ๋ ์กฐ๊ธ๋ง ๊ธฐ๋ค๋ ค ์ฃผ์ญ์์ค.
ํ
๋ชจ๋ธ์ FP16 ์ ๋ฐ๋๋ก ๋ณํํ๋ ค๋ฉด model-engine-file=model_b1_gpu0_fp16.engine
๊ทธ๋ฆฌ๊ณ network-mode=2
๋ด๋ถ config_infer_primary_yoloV8.txt
INT8 ๋ณด์
์ถ๋ก ์ INT8 ์ ๋ฐ๋๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ค์ ๋จ๊ณ๋ฅผ ๋ฐ๋ผ์ผ ํฉ๋๋ค.
-
์งํฉ
OPENCV
ํ๊ฒฝ ๋ณ์(environment variable) -
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ปดํ์ผ
-
COCO ๋ฐ์ดํฐ ์ธํธ์ ๊ฒฝ์ฐ val2017๋ฅผ ํด๋ฆญํ๊ณ ์ถ์ถํ ๋ค์
DeepStream-Yolo
ํด๋ -
๋ณด์ ์ด๋ฏธ์ง๋ฅผ ์ํ ์ ๋๋ ํฐ๋ฆฌ ๋ง๋ค๊ธฐ
-
๋ค์์ ์คํํ์ฌ COCO ๋ฐ์ดํฐ ์ธํธ์์ ๋ณด์ ์ ์คํํ 1000๊ฐ์ ๋ฌด์์ ์ด๋ฏธ์ง๋ฅผ ์ ํํฉ๋๋ค.
์ฐธ๊ณ
NVIDIA๋ ์ข์ ์ ํ๋๋ฅผ ์ป์ผ๋ ค๋ฉด ์ต์ 500๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๊ถ์ฅํฉ๋๋ค. ์ด ์์ ์์๋ ๋ ๋์ ์ ํ๋๋ฅผ ์ป๊ธฐ ์ํด 1000๊ฐ์ ์ด๋ฏธ์ง๊ฐ ์ ํ๋์์ต๋๋ค(์ด๋ฏธ์ง๊ฐ ๋ง์์๋ก ์ ํ๋๊ฐ ๋์์ง). ํค๋ -1000์์ ์ค์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด๋ฏธ์ง๊ฐ 2000๊ฐ์ธ ๊ฒฝ์ฐ -2000์ผ๋ก ์ค์ ํฉ๋๋ค. ์ด ๊ณผ์ ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
-
๋ฅผ ๋ง๋ญ๋๋ค.
calibration.txt
์ ํํ ๋ชจ๋ ์ด๋ฏธ์ง๊ฐ ์๋ ํ์ผ -
ํ๊ฒฝ ๋ณ์ ์ค์
์ฐธ๊ณ
INT8_CALIB_BATCH_SIZE ๊ฐ์ด ๋์์๋ก ์ ํ๋๊ฐ ๋์์ง๊ณ ๊ต์ ์๋๊ฐ ๋นจ๋ผ์ง๋๋ค. GPU ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ๋ผ ์ค์ ํ์ญ์์ค.
-
์ ๋ฐ์ดํธ
config_infer_primary_yoloV8.txt
ํ์ผ์์
To
์ถ๋ก ์คํ
๋ฉํฐ์คํธ๋ฆผ ์ค์
๋จ์ผ ๋ฅ์คํธ๋ฆผ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ๋ฌ ์คํธ๋ฆผ์ ์ค์ ํ๋ ค๋ฉด ๋ค์์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. deepstream_app_config.txt
ํ์ผ
-
ํ๊ณผ ์ด์ ๋ณ๊ฒฝํ์ฌ ์ํ๋ ์คํธ๋ฆผ ์์ ๋ฐ๋ผ ๊ทธ๋ฆฌ๋ ํ์๋ฅผ ์์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด 4๊ฐ์ ์คํธ๋ฆผ์ ๋ํด 2๊ฐ์ ํ๊ณผ 2๊ฐ์ ์ด์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
-
์งํฉ
num-sources=4
๊ทธ๋ฆฌ๊ณ ์ถ๊ฐuri
4 ๊ฐ์ ๋ชจ๋ ์คํธ๋ฆผ ์ค
์ถ๋ก ์คํ
๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ
๋ค์ ํ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ด ์์ฝ๋์ด ์์ต๋๋ค. YOLOv8s ๋ชจ๋ธ์ ๋ค๋ฅธ TensorRT NVIDIA Jetson Orin NX 16GB์์ ์ ๋ ฅ ํฌ๊ธฐ๊ฐ 640x640์ธ ์ ๋ฐ๋ ์์ค.
๋ชจ๋ธ ์ด๋ฆ | ์ ๋ฐ๋ | ์ถ๋ก ์๊ฐ(ms/im) | FPS |
---|---|---|---|
YOLOv8s | FP32 | 15.63 | 64 |
FP16 | 7.94 | 126 | |
INT8 | 5.53 | 181 |
์น์ธ
์ด ๊ฐ์ด๋๋ ์ฒ์์ Seeed Studio, Lakshantha, Elaine์ ์น๊ตฌ๋ค์ด ๋ง๋ค์์ต๋๋ค.