๋น ๋ฅธ ์์ ๊ฐ์ด๋: NVIDIA Jetson Ultralytics YOLOv8
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ NVIDIA Jetson ์ฅ์น์ Ultralytics YOLOv8 ๋ฐฐํฌ์ ๋ํ ์์ธํ ์๋ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ์๊ณ ๊ฐ๋ ฅํ ์ฅ์น์์ YOLOv8 ์ ๊ธฐ๋ฅ์ ์ ์ฆํ๊ธฐ ์ํ ์ฑ๋ฅ ๋ฒค์น๋งํฌ๋ ์๊ฐํฉ๋๋ค.
Watch: NVIDIA Jetson์ ์ค์ ํ๋ ๋ฐฉ๋ฒ Ultralytics YOLOv8
์ฐธ๊ณ
์ด ๊ฐ์ด๋๋ ์์ ์ ์ธ ์ต์ JetPack ๋ฆด๋ฆฌ์ค์ธ JP5.1.3์ ์คํํ๋ NVIDIA Jetson Orin NX 16GB ๊ธฐ๋ฐ์ Seeed Studio ์ฌ์ปดํจํฐ J4012์ JetPack ๋ฆด๋ฆฌ์ค์ธ JP4.6.1์ ์คํํ๋ NVIDIA Jetson Nano 4GB ๊ธฐ๋ฐ์ Seeed Studio ์ฌ์ปดํจํฐ J1020 v2๋ก ํ ์คํธ๋์์ต๋๋ค. ์ต์ ๋ฐ ๋ ๊ฑฐ์๋ฅผ ํฌํจํ ๋ชจ๋ NVIDIA Jetson ํ๋์จ์ด ๋ผ์ธ์ ์์ ์๋ํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
NVIDIA Jetson์ด๋?
NVIDIA Jetson์ ์ฃ์ง ๋๋ฐ์ด์ค์ ๊ฐ์ํ๋ AI(์ธ๊ณต ์ง๋ฅ) ์ปดํจํ ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋ ์๋ฒ ๋๋ ์ปดํจํ ๋ณด๋ ์๋ฆฌ์ฆ์ ๋๋ค. ์ด ์๊ณ ๊ฐ๋ ฅํ ์ฅ์น๋ NVIDIA ์ GPU ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ ํด๋ผ์ฐ๋ ์ปดํจํ ๋ฆฌ์์ค์ ์์กดํ ํ์ ์์ด ์ฅ์น์์ ์ง์ ๋ณต์กํ AI ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฅ ๋ฌ๋ ๋ชจ๋ธ์ ์คํํ ์ ์์ต๋๋ค. Jetson ๋ณด๋๋ ๋ก๋ด ๊ณตํ, ์์จ ์ฃผํ ์ฐจ๋, ์ฐ์ ์๋ํ ๋ฐ ์งง์ ์ง์ฐ ์๊ฐ๊ณผ ๋์ ํจ์จ์ฑ์ผ๋ก ๋ก์ปฌ์์ AI ์ถ๋ก ์ ์ํํด์ผ ํ๋ ๊ธฐํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ ์ด๋ฌํ ๋ณด๋๋ ARM64 ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๊ธฐ์กด GPU ์ปดํจํ ์ฅ์น์ ๋นํด ์ ์ ๋ ฅ์ผ๋ก ์คํ๋ฉ๋๋ค.
NVIDIA Jetson ์๋ฆฌ์ฆ ๋น๊ต
Jetson Orin์ ์ด์ ์ธ๋์ ๋นํด ๋ํญ ํฅ์๋ AI ์ฑ๋ฅ์ ์ ๊ณตํ๋ NVIDIA ์ํ์ด ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ NVIDIA Jetson ์ ํ๊ตฐ์ ์ต์ ๋ฒ์ ์ ๋๋ค. ์๋ ํ๋ ์์ฝ์์คํ ์ ์๋ ๋ช ๊ฐ์ง Jetson ๋๋ฐ์ด์ค๋ฅผ ๋น๊ตํ ๊ฒ์ ๋๋ค.
Jetson AGX Orin 64GB | ์ ฏ์จ ์ค๋ฆฐ NX 16GB | ์ ฏ์จ ์ค๋ฆฐ ๋๋ ธ 8GB | Jetson AGX Xavier | ์ ฏ์จ ์๋น์ NX | ์ ฏ์จ ๋๋ ธ | |
---|---|---|---|---|---|---|
AI ์ฑ๋ฅ | 275 TOPS | 100 TOPS | TOP 40 | 32 TOPS | 21 TOPS | 472 GFLOPS |
GPU | 2048์ฝ์ด NVIDIA ์ํ์ด ์ํคํ ์ฒ GPU (64 Tensor ์ฝ์ด) | 1024์ฝ์ด NVIDIA ์ํ์ด ์ํคํ ์ฒ GPU (32 Tensor ์ฝ์ด) | 1024์ฝ์ด NVIDIA ์ํ์ด ์ํคํ ์ฒ GPU (32 Tensor ์ฝ์ด) | 512์ฝ์ด NVIDIA ๋ณผํ ์ํคํ ์ฒ GPU (64 Tensor ์ฝ์ด) | 384์ฝ์ด NVIDIA ๋ณผํโข ์ํคํ ์ฒ GPU , 48๊ฐ์ Tensor ์ฝ์ด ํ์ฌ | 128์ฝ์ด NVIDIA ๋งฅ์ค์ฐโข ์ํคํ ์ฒ GPU |
GPU ์ต๋ ์ฃผํ์ | 1.3GHz | 918 MHz | 625MHz | 1377 MHz | 1100 MHz | 921MHz |
CPU | 12์ฝ์ด NVIDIA Armยฎ Cortex A78AE v8.2 64๋นํธ CPU 3MB L2 + 6MB L3 | 8์ฝ์ด NVIDIA Armยฎ Cortex A78AE v8.2 64๋นํธ CPU 2MB L2 + 4MB L3 | 6์ฝ์ด Armยฎ Cortexยฎ-A78AE v8.2 64๋นํธ CPU 1.5MB L2 + 4MB L3 | 8์ฝ์ด NVIDIA Carmel Armยฎv8.2 64๋นํธ CPU 8MB L2 + 4MB L3 | 6์ฝ์ด NVIDIA Carmel Armยฎv8.2 64๋นํธ CPU 6MB L2 + 4MB L3 | ์ฟผ๋ ์ฝ์ด Armยฎ Cortexยฎ-A57 MPCore ํ๋ก์ธ์ |
CPU ์ต๋ ์ฃผํ์ | 2.2 GHz | 2.0 GHz | 1.5GHz | 2.2 GHz | 1.9 GHz | 1.43GHz |
๋ฉ๋ชจ๋ฆฌ | 64GB 256๋นํธ LPDDR5 204.8GB/s | 16GB 128๋นํธ LPDDR5 102.4GB/s | 8GB 128๋นํธ LPDDR5 68GB/s | 32GB 256๋นํธ LPDDR4x 136.5GB/s | 8GB 128๋นํธ LPDDR4x 59.7GB/s | 4GB 64๋นํธ LPDDR4 25.6GB/s" |
์์ธํ ๋น๊ต ํ๋ ๊ณต์ NVIDIA Jetson ํ์ด์ง์ ๊ธฐ์ ์ฌ์ ์น์ ์์ ํ์ธํ ์ ์์ต๋๋ค.
NVIDIA ์ ํธํฉ์ด๋ ๋ฌด์์ธ๊ฐ์?
NVIDIA Jetson ๋ชจ๋์ ๊ตฌ๋ํ๋ JetPack SDK๋ ๊ฐ์ฅ ํฌ๊ด์ ์ธ ์๋ฃจ์ ์ผ๋ก, ์๋ํฌ์๋ ๊ฐ์ํ๋ AI ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์๋ฒฝํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ ์์ฅ ์ถ์ ์๊ฐ์ ๋จ์ถํฉ๋๋ค. ์ ฏํฉ์๋ ๋ถํธ๋ก๋, Linux ์ปค๋, ์ฐ๋ถํฌ ๋ฐ์คํฌํฑ ํ๊ฒฝ ๋ฐ GPU ์ปดํจํ , ๋ฉํฐ๋ฏธ๋์ด, ๊ทธ๋ํฝ ๋ฐ ์ปดํจํฐ ๋น์ ๊ฐ์ํ๋ฅผ ์ํ ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ๊ฐ ํฌํจ๋ Jetson Linux๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ ํธ์คํธ ์ปดํจํฐ์ ๊ฐ๋ฐ์ ํคํธ ๋ชจ๋๋ฅผ ์ํ ์ํ, ์ค๋ช ์ ๋ฐ ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ์คํธ๋ฆฌ๋ฐ ๋น๋์ค ๋ถ์์ ์ํ DeepStream, ๋ก๋ณดํฑ์ค๋ฅผ ์ํ Isaac, ๋ํํ AI๋ฅผ ์ํ Riva์ ๊ฐ์ ์์ ์์ค์ SDK๋ฅผ ์ง์ํฉ๋๋ค.
ํ๋์ ์ ํธํฉ NVIDIA Jetson
NVIDIA Jetson ์ฅ์น๋ฅผ ๊ตฌ์ ํ ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ NVIDIA JetPack์ ์ฅ์น์ ํ๋์ํ๋ ๊ฒ์ ๋๋ค. NVIDIA Jetson ์ฅ์น๋ฅผ ํ๋์ํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ๊ณต์ ๊ฐ๋ฐ ํคํธ( NVIDIA )๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ, Jetson Orin Nano ๊ฐ๋ฐ์ ํคํธ์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ฅ์น ๋ถํ ์ ์ํด JetPack์ด ํฌํจ๋ SD ์นด๋๋ฅผ ์ค๋นํ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ NVIDIA ๊ฐ๋ฐ ํคํธ๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ SDK ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ JetPack์ ์ฅ์น์ ํ๋์ํ ์ ์์ต๋๋ค.
- ์จ๋ ์คํ๋์ค ์ฌ์ปดํจํฐ J4012 ์ฅ์น๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ JetPack์ ํฌํจ๋ SSD์ ํ๋์ํ ์ ์์ผ๋ฉฐ, ์จ๋ ์คํ๋์ค ์ฌ์ปดํจํฐ J1020 v2 ์ฅ์น๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ JetPack์ eMMC/ SSD์ ํ๋์ํ ์ ์์ต๋๋ค.
- NVIDIA Jetson ๋ชจ๋๋ก ๊ตฌ๋๋๋ ๋ค๋ฅธ ํ์ฌ ์ฅ์น๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ, ๋ช ๋ น์ค ํ๋์ฑ์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐธ๊ณ
์์ ๋ฐฉ๋ฒ 3๊ณผ 4์ ๊ฒฝ์ฐ, ์์คํ ์ ํ๋์ํ๊ณ ๋๋ฐ์ด์ค๋ฅผ ๋ถํ ํ ํ ๋๋ฐ์ด์ค ํฐ๋ฏธ๋์์ "sudo apt update && sudo apt install nvidia-jetpack -y"๋ฅผ ์ ๋ ฅํ์ฌ ํ์ํ ๋๋จธ์ง JetPack ๊ตฌ์ฑ ์์๋ฅผ ๋ชจ๋ ์ค์นํ์ธ์.
JetPack 5.x์์ ์คํ
์ ฏ์จ ์๋น์ NX, AGX ์๋น์, AGX ์ค๋ฆฐ, ์ค๋ฆฐ ๋๋ ธ ๋๋ ์ค๋ฆฐ NX๋ฅผ ์์ ํ๊ณ ์๊ณ ์ ฏํฉ 5.x๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ, ์ด ๊ฐ์ด๋๋ฅผ ๊ณ์ ๋ฐ๋ผ๊ฐ์ ๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ Jetson Nano์ ๊ฐ์ ๋ ๊ฑฐ์ ๋๋ฐ์ด์ค๋ฅผ ์ฌ์ฉ ์ค์ธ ๊ฒฝ์ฐ JetPack 4.x์์ ์คํ์ผ๋ก ๊ฑด๋๋ฐ์ญ์์ค.
์ค์ Ultralytics
๋ค์ ์ปดํจํฐ ๋น์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ธฐ ์ํด NVIDIA Jetson์์ Ultralytics ํจํค์ง๋ฅผ ์ค์ ํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Docker๋ก ์์ํ๊ธฐ
Ultralytics YOLOv8 NVIDIA Jetson์ ์์ํ๋ ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋ฏธ๋ฆฌ ๋น๋๋ Jetson์ฉ ๋์ปค ์ด๋ฏธ์ง๋ก ์คํํ๋ ๊ฒ์ ๋๋ค.
์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ Docker ์ปจํ ์ด๋๋ฅผ ๊ฐ์ ธ์ Jetson์์ ์คํํฉ๋๋ค. ์ด๊ฒ์ Python3 ํ๊ฒฝ์ PyTorch ๋ฐ Torchvision์ด ํฌํจ๋ l4t-pytorch ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
t=ultralytics/ultralytics:latest-jetson-jetpack5 && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
์ด ์์ ์ด ์๋ฃ๋๋ฉด NVIDIA Jetson ์น์ ์ TensorRT ์ฌ์ฉ์ผ๋ก ๊ฑด๋๋๋๋ค.
Docker ์์ด ์์
Ultralytics ํจํค์ง ์ค์น
์ฌ๊ธฐ์๋ PyTorch ๋ชจ๋ธ์ ๋ค๋ฅธ ๋ค๋ฅธ ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์๋๋ก ์ ํ์ ์ข ์์ฑ๊ณผ ํจ๊ป Jetson์ Ultralytics ํจํค์ง๋ฅผ ์ค์นํ๊ฒ ์ต๋๋ค. NVIDIA TensorRT ๋ด๋ณด๋ด๊ธฐ์ ์ฃผ๋ก ์ด์ ์ ๋ง์ถ ๊ฒ์ ๋๋ค. TensorRT ์ ์ฌ์ฉํ๋ฉด Jetson ์ฅ์น์์ ์ต๋ ์ฑ๋ฅ์ ์ป์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
-
ํจํค์ง ๋ชฉ๋ก ์ ๋ฐ์ดํธ, pip ์ค์น ๋ฐ ์ต์ ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋
-
์ค์น
ultralytics
์ ํ์ ์ข ์์ฑ์ด ์๋ pip ํจํค์ง -
๋๋ฐ์ด์ค ์ฌ๋ถํ
PyTorch ๋ฐ ํ ์น๋น์ ์ค์น
์์ ultralytics ์ค์น๋ Torch ๋ฐ Torchvision์ ์ค์นํฉ๋๋ค. ๊ทธ๋ฌ๋ pip๋ฅผ ํตํด ์ค์น๋ ์ด ๋ ํจํค์ง๋ ARM64 ์ํคํ ์ฒ ๊ธฐ๋ฐ์ธ Jetson ํ๋ซํผ์์ ์คํํ๊ธฐ์๋ ํธํ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฏธ๋ฆฌ ๋น๋๋ PyTorch pip ํ ์ ์๋์ผ๋ก ์ค์นํ๊ณ ์์ค์์ Torchvision์ ์ปดํ์ผ/์ค์นํด์ผ ํฉ๋๋ค.
-
ํ์ฌ ์ค์น๋ PyTorch ๋ฐ Torchvision ์ ๊ฑฐ
-
JP5.1.3์ ๋ฐ๋ผ PyTorch 2.1.0์ ์ค์นํฉ๋๋ค.
sudo apt-get install -y libopenblas-base libopenmpi-dev wget https://developer.download.nvidia.com/compute/redist/jp/v512/pytorch/torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl -O torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl pip install torch-2.1.0a0+41361538.nv23.06-cp38-cp38-linux_aarch64.whl
-
PyTorch v2.1.0์ ๋ฐ๋ผ Torchvision v0.16.2๋ฅผ ์ค์นํฉ๋๋ค.
๋ค๋ฅธ JetPack ๋ฒ์ ์ ๋ํ ๋ชจ๋ ๋ค๋ฅธ ๋ฒ์ ์ ์ก์ธ์คํ๋ ค๋ฉด PyTorch ์ Jetson์ฉ ํ์ด์ง ( PyTorch )๋ฅผ ๋ฐฉ๋ฌธํ์ธ์. ์์ธํ ๋ชฉ๋ก์ PyTorch, Torchvision ํธํ์ฑ ํ์ด์ง์์PyTorch ๋ฐ Torchvision ํธํ์ฑ ํ์ด์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค์น onnxruntime-gpu
๊ทธ๋ฆฌ๊ณ onnxruntime-gpu PyPI์์ ํธ์คํ
๋๋ ํจํค์ง์๋ aarch64
๋ฐ์ด๋๋ฆฌ๊ฐ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด ํจํค์ง๋ฅผ ์๋์ผ๋ก ์ค์นํด์ผ ํฉ๋๋ค. ์ด ํจํค์ง๋ ์ผ๋ถ ๋ด๋ณด๋ด๊ธฐ์ ํ์ํฉ๋๋ค.
๋ชจ๋ ๋ค๋ฅธ onnxruntime-gpu
๋ค๋ฅธ JetPack ๋ฐ Python ๋ฒ์ ์ ํด๋นํ๋ ํจํค์ง๊ฐ ๋์ด๋ฉ๋๋ค. ์ฌ๊ธฐ. ํ์ง๋ง ์ฌ๊ธฐ์๋ ๋ค์ด๋ก๋ํ์ฌ ์ค์นํฉ๋๋ค. onnxruntime-gpu 1.17.0
์ ํจ๊ป Python3.8
์ด ๊ฐ์ด๋์์ ์ฌ์ฉํ๋ JetPack์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค.
wget https://nvidia.box.com/shared/static/zostg6agm00fb6t5uisw51qi6kpcuwzd.whl -O onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
pip install onnxruntime_gpu-1.17.0-cp38-cp38-linux_aarch64.whl
์ฐธ๊ณ
onnxruntime-gpu
๋ฅผ ์คํํ๋ฉด numpy ๋ฒ์ ์ด ์๋์ผ๋ก ์ต์ ๋ฒ์ ์ผ๋ก ๋๋์๊ฐ๋๋ค. ๋ฐ๋ผ์ numpy๋ฅผ ๋ค์ ์ค์นํด์ผ ํฉ๋๋ค. 1.23.5
๋ฅผ ์คํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค:
pip install numpy==1.23.5
JetPack 4.x์์ ์คํ
์ฌ๊ธฐ์์๋ Jetson Nano์ ๊ฐ์ ๋ ๊ฑฐ์ ํ๋์จ์ด์์ Ultralytics ์ ์คํํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ํ์ฌ ์ด๋ฅผ ์ํด Docker๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์๋ ๋ช ๋ น์ ์คํํ์ฌ Docker ์ปจํ ์ด๋๋ฅผ ๊ฐ์ ธ์ Jetson์์ ์คํํฉ๋๋ค. ์ด๋ L4T ํ๊ฒฝ์์ CUDA ์ ํฌํจํ๋ l4t-cuda ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
t=ultralytics/ultralytics:latest-jetson-jetpack4 && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
NVIDIA Jetson์์ TensorRT ์ฌ์ฉ
Ultralytics ์์ ์ง์ํ๋ ๋ชจ๋ ๋ชจ๋ธ ๋ด๋ณด๋ด๊ธฐ ํ์ ์ค TensorRT ์ NVIDIA Jetson ์ฅ์น์ ํจ๊ป ์์ ํ ๋ ์ต๊ณ ์ ์ถ๋ก ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉฐ, Jetson๊ณผ ํจ๊ป TensorRT ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์ธํ ๋ด์ฉ์ TensorRT ์์ ํ์ธํ ์ ์์ต๋๋ค.
๋ชจ๋ธ์ TensorRT ๋ก ๋ณํํ๊ณ ์ถ๋ก ์คํ
PyTorch ํ์์ YOLOv8n ๋ชจ๋ธ์ ๋ด๋ณด๋ธ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ์คํํ๊ธฐ ์ํด TensorRT ๋ก ๋ณํ๋ฉ๋๋ค.
์
from ultralytics import YOLO
# Load a YOLOv8n PyTorch model
model = YOLO("yolov8n.pt")
# Export the model
model.export(format="engine") # creates 'yolov8n.engine'
# Load the exported TensorRT model
trt_model = YOLO("yolov8n.engine")
# Run inference
results = trt_model("https://ultralytics.com/images/bus.jpg")
์ฐธ๊ณ
๋ค๋ฅธ ๋ชจ๋ธ ํ์์ผ๋ก ๋ชจ๋ธ์ ๋ด๋ณด๋ผ ๋ ์ถ๊ฐ ์ธ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ด๋ณด๋ด๊ธฐ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ์ธ์.
NVIDIA ์ ฏ์จ ์ค๋ฆฐ YOLOv8 ๋ฒค์น๋งํฌ
YOLOv8 Ultralytics ๋ฒค์น๋งํฌ๋ PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel , TF GraphDef , TF Lite, PaddlePaddle, NCNN ๋ฑ 10๊ฐ์ง ๋ชจ๋ธ ํฌ๋งท์ผ๋ก ์๋์ ์ ํ๋๋ฅผ ์ธก์ ํ์ต๋๋ค. ๋ฒค์น๋งํฌ๋ ๊ธฐ๋ณธ ์ ๋ ฅ ์ด๋ฏธ์ง ํฌ๊ธฐ 640์ FP32 ์ ๋ฐ๋์์ Jetson Orin NX 16GB ์ฅ์น๋ก ๊ตฌ๋๋๋ Seeed Studio ์ฌ์ปดํจํฐ J4012์์ ์คํ๋์์ต๋๋ค.
๋น๊ต ์ฐจํธ
๋ชจ๋ ๋ชจ๋ธ ๋ด๋ณด๋ด๊ธฐ๊ฐ NVIDIA Jetson์์ ์๋ํ์ง๋ง ์๋ ๋น๊ต ์ฐจํธ์๋ PyTorch, TorchScript, TensorRT ๋ง ํฌํจํ๋๋ฐ, ์ด๋ Jetson์์ GPU ์ ์ฌ์ฉํ๋ฉฐ ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ๋ CPU ๋ง ์ฌ์ฉํ๋ฉฐ ์ฑ๋ฅ์ด ์์ ์ธ ๊ฐ์ง๋ณด๋ค ์ข์ง ์์ต๋๋ค. ์ด ์ฐจํธ ๋ค์ ์น์ ์์ ๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ์ ๋ํ ๋ฒค์น๋งํฌ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์์ธ ๋น๊ต ํ
์๋ ํ๋ 5๊ฐ์ง ๋ชจ๋ธ(YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x)์ ๋ํ 10๊ฐ์ง ํ์(PyTorch, TorchScript, ONNX, OpenVINO, TensorRT, TF SavedModel , TF GraphDef , TF Lite, PaddlePaddle, NCNN)์ ๋ฒค์น๋งํฌ ๊ฒฐ๊ณผ๋ก, ๊ฐ ์กฐํฉ์ ์ํ, ํฌ๊ธฐ, mAP50-95(B) ๋ฉํธ๋ฆญ ๋ฐ ์ถ๋ก ์๊ฐ์ ๋ณด์ฌ์ค๋๋ค.
์ฑ๋ฅ
ํ์ | ์ํ | ๋์คํฌ ํฌ๊ธฐ(MB) | mAP50-95(B) | ์ถ๋ก ์๊ฐ(ms/im) |
---|---|---|---|---|
PyTorch | โ | 6.2 | 0.6381 | 14.3 |
TorchScript | โ | 12.4 | 0.6117 | 13.3 |
ONNX | โ | 12.2 | 0.6092 | 70.6 |
OpenVINO | โ | 12.3 | 0.6092 | 104.2 |
TensorRT | โ | 13.6 | 0.6117 | 8.9 |
TF SavedModel | โ | 30.6 | 0.6092 | 141.74 |
TF GraphDef | โ | 12.3 | 0.6092 | 199.93 |
TF Lite | โ | 12.3 | 0.6092 | 349.18 |
PaddlePaddle | โ | 24.4 | 0.6030 | 555 |
NCNN | โ | 12.2 | 0.6092 | 32 |
ํ์ | ์ํ | ๋์คํฌ ํฌ๊ธฐ(MB) | mAP50-95(B) | ์ถ๋ก ์๊ฐ(ms/im) |
---|---|---|---|---|
PyTorch | โ | 21.5 | 0.6967 | 18 |
TorchScript | โ | 43.0 | 0.7136 | 23.81 |
ONNX | โ | 42.8 | 0.7136 | 185.55 |
OpenVINO | โ | 42.9 | 0.7136 | 243.97 |
TensorRT | โ | 44.0 | 0.7136 | 14.82 |
TF SavedModel | โ | 107 | 0.7136 | 260.03 |
TF GraphDef | โ | 42.8 | 0.7136 | 423.4 |
TF Lite | โ | 42.8 | 0.7136 | 1046.64 |
PaddlePaddle | โ | 85.5 | 0.7140 | 1464 |
NCNN | โ | 42.7 | 0.7200 | 63 |
ํ์ | ์ํ | ๋์คํฌ ํฌ๊ธฐ(MB) | mAP50-95(B) | ์ถ๋ก ์๊ฐ(ms/im) |
---|---|---|---|---|
PyTorch | โ | 49.7 | 0.7370 | 36.4 |
TorchScript | โ | 99.2 | 0.7285 | 53.58 |
ONNX | โ | 99 | 0.7280 | 452.09 |
OpenVINO | โ | 99.1 | 0.7280 | 544.36 |
TensorRT | โ | 100.3 | 0.7285 | 33.21 |
TF SavedModel | โ | 247.5 | 0.7280 | 543.65 |
TF GraphDef | โ | 99 | 0.7280 | 906.63 |
TF Lite | โ | 99 | 0.7280 | 2758.08 |
PaddlePaddle | โ | 197.9 | 0.7280 | 3678 |
NCNN | โ | 98.9 | 0.7260 | 135 |
ํ์ | ์ํ | ๋์คํฌ ํฌ๊ธฐ(MB) | mAP50-95(B) | ์ถ๋ก ์๊ฐ(ms/im) |
---|---|---|---|---|
PyTorch | โ | 83.7 | 0.7768 | 61.3 |
TorchScript | โ | 167.2 | 0.7554 | 87.9 |
ONNX | โ | 166.8 | 0.7551 | 852.29 |
OpenVINO | โ | 167 | 0.7551 | 1012.6 |
TensorRT | โ | 168.4 | 0.7554 | 51.23 |
TF SavedModel | โ | 417.2 | 0.7551 | 990.45 |
TF GraphDef | โ | 166.9 | 0.7551 | 1649.86 |
TF Lite | โ | 166.9 | 0.7551 | 5652.37 |
PaddlePaddle | โ | 333.6 | 0.7551 | 7114.67 |
NCNN | โ | 166.8 | 0.7685 | 231.9 |
ํ์ | ์ํ | ๋์คํฌ ํฌ๊ธฐ(MB) | mAP50-95(B) | ์ถ๋ก ์๊ฐ(ms/im) |
---|---|---|---|---|
PyTorch | โ | 130.5 | 0.7759 | 93 |
TorchScript | โ | 260.7 | 0.7472 | 135.1 |
ONNX | โ | 260.4 | 0.7479 | 1296.13 |
OpenVINO | โ | 260.6 | 0.7479 | 1502.15 |
TensorRT | โ | 261.8 | 0.7469 | 84.53 |
TF SavedModel | โ | 651.1 | 0.7479 | 1451.76 |
TF GraphDef | โ | 260.5 | 0.7479 | 4029.36 |
TF Lite | โ | 260.4 | 0.7479 | 8772.86 |
PaddlePaddle | โ | 520.8 | 0.7479 | 10619.53 |
NCNN | โ | 260.4 | 0.7646 | 376.38 |
๋ค์ํ ๋ฒ์ ์ NVIDIA Jetson ํ๋์จ์ด์์ ์คํ๋๋ Seeed Studio๋ฅผ ํตํด ๋ ๋ง์ ๋ฒค์น๋งํน ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด์ธ์.
๊ฒฐ๊ณผ ์ฌํ
๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ ํ์์์ ์์ Ultralytics ๋ฒค์น๋งํฌ๋ฅผ ์ฌํํ๋ ค๋ฉด ๋ค์ ์ฝ๋๋ฅผ ์คํํ์ธ์:
์
๋ฒค์น๋งํน ๊ฒฐ๊ณผ๋ ์์คํ
์ ์ ํํ ํ๋์จ์ด ๋ฐ ์ํํธ์จ์ด ๊ตฌ์ฑ๊ณผ ๋ฒค์น๋งํฌ๋ฅผ ์คํํ ๋น์ ์์คํ
์ ํ์ฌ ์์
๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค๋ ์ ์ ์ ์ํ์ธ์. ๊ฐ์ฅ ์ ๋ขฐํ ์ ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ๋ง์ ์์ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฌ์ฉํ์ธ์. data='coco8.yaml' (4 val images), or
data='coco.yaml'` (5000๊ฐ val ์ด๋ฏธ์ง).
NVIDIA Jetson ์ฌ์ฉ ์ ๋ชจ๋ฒ ์ฌ๋ก
NVIDIA Jetson์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, NVIDIA Jetson์ ์คํํ๋ YOLOv8 ์์ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ธฐ ์ํด ๋ฐ๋ผ์ผ ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์์ต๋๋ค.
-
์ต๋ ์ ๋ ฅ ๋ชจ๋ ํ์ฑํ
Jetson์์ ์ต๋ ์ ๋ ฅ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด CPU, GPU ์ฝ์ด๊ฐ ๋ชจ๋ ์ผ์ ธ ์๋์ง ํ์ธํฉ๋๋ค.
-
Jetson ํด๋ก ์ฌ์ฉ
Jetson ํด๋ญ์ ํ์ฑํํ๋ฉด ๋ชจ๋ CPU, GPU ์ฝ์ด๊ฐ ์ต๋ ์ฃผํ์๋ก ํด๋ญ๋ฉ๋๋ค.
-
Jetson ํต๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ค์น
์ ฏ์จ ํต๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ ์์คํ ๊ตฌ์ฑ ์์์ ์จ๋๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ CPU, GPU, RAM ์ฌ์ฉ๋ฅ , ์ ์ ๋ชจ๋ ๋ณ๊ฒฝ, ์ต๋ ํด๋ญ์ผ๋ก ์ค์ , ์ ฏํฉ ์ ๋ณด ํ์ธ๊ณผ ๊ฐ์ ๊ธฐํ ์์คํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
NVIDIA Jetson์ YOLOv8 ์ ์ฑ๊ณต์ ์ผ๋ก ์ค์ ํ์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค! ์ถ๊ฐ ํ์ต ๋ฐ ์ง์์ Ultralytics YOLOv8 ๋ฌธ์์์ ๋ ๋ง์ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์!
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
NVIDIA Jetson ์ฅ์น์ Ultralytics YOLOv8 ๋ฐฐํฌํ๋ ค๋ฉด ์ด๋ป๊ฒ ํฉ๋๊น?
NVIDIA Jetson ์ฅ์น์ Ultralytics YOLOv8 ๋ฐฐํฌํ๋ ๊ณผ์ ์ ๊ฐ๋จํฉ๋๋ค. ๋จผ์ NVIDIA JetPack SDK๋ก Jetson ์ฅ์น๋ฅผ ํ๋์ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋น ๋ฅธ ์ค์ ์ ์ํด ์ฌ์ ๋น๋๋ Docker ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํ์ํ ํจํค์ง๋ฅผ ์๋์ผ๋ก ์ค์นํฉ๋๋ค. ๊ฐ ์ ๊ทผ ๋ฐฉ์์ ๋ํ ์์ธํ ๋จ๊ณ๋ Docker๋ก ์์ํ๊ธฐ ๋ฐ Docker ์์ด ์์ํ๊ธฐ ์น์ ์์ ํ์ธํ ์ ์์ต๋๋ค.
NVIDIA Jetson ์ฅ์น์์ YOLOv8 ๋ชจ๋ธ์์ ์ด๋ค ์ฑ๋ฅ ๋ฒค์น๋งํฌ๋ฅผ ๊ธฐ๋ํ ์ ์์ต๋๊น?
YOLOv8 ๋ชจ๋ธ์ ๋ค์ํ NVIDIA Jetson ์ฅ์น์์ ๋ฒค์น๋งํนํ ๊ฒฐ๊ณผ ์๋นํ ์ฑ๋ฅ ํฅ์์ ๋ณด์์ต๋๋ค. ์๋ฅผ ๋ค์ด, TensorRT ํ์์ด ๊ฐ์ฅ ์ฐ์ํ ์ถ๋ก ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ธ๋ถ ๋น๊ต ํ ์น์ ์ ํ๋ ๋ค์ํ ๋ชจ๋ธ ํ์์ ๊ฑธ์ณ mAP50-95 ๋ฐ ์ถ๋ก ์๊ฐ๊ณผ ๊ฐ์ ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ ๋ํ ์ข ํฉ์ ์ธ ๋ณด๊ธฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
NVIDIA Jetson์ YOLOv8 ๋ฐฐํฌ ์ TensorRT ์ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์?
TensorRT ์ ์ต์ ์ ์ฑ๋ฅ์ผ๋ก ์ธํด NVIDIA Jetson์ YOLOv8 ๋ชจ๋ธ์ ๋ฐฐํฌํ๋ ๋ฐ ์ ๊ทน ๊ถ์ฅ๋ฉ๋๋ค. Jetson์ GPU ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ถ๋ก ์ ๊ฐ์ํํ์ฌ ์ต๋์ ํจ์จ์ฑ๊ณผ ์๋๋ฅผ ๋ณด์ฅํฉ๋๋ค. TensorRT ๋ก ๋ณํํ๊ณ ์ถ๋ก ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ NVIDIA Jetson์ TensorRT ์ฌ์ฉ ์น์ ์์ ํ์ธํ ์ ์์ต๋๋ค.
NVIDIA Jetson์ PyTorch ๋ฐ Torchvision์ ์ค์นํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
NVIDIA Jetson์ PyTorch ๋ฐ Torchvision์ ์ค์นํ๋ ค๋ฉด ๋จผ์ pip๋ฅผ ํตํด ์ค์น๋์์ ์ ์๋ ๊ธฐ์กด ๋ฒ์ ์ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Jetson์ ARM64 ์ํคํ ์ฒ์ ํธํ๋๋ PyTorch ๋ฐ Torchvision ๋ฒ์ ์ ์๋์ผ๋ก ์ค์นํฉ๋๋ค. ์ด ํ๋ก์ธ์ค์ ๋ํ ์์ธํ ์ง์นจ์ PyTorch ๋ฐ Torchvision ์ค์น ์น์ ์ ๋์ ์์ต๋๋ค.
YOLOv8 ์ ์ฌ์ฉํ ๋ NVIDIA Jetson์์ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ธฐ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ ๋ฌด์์ ๋๊น?
YOLOv8 ์ ์ฌ์ฉํ์ฌ NVIDIA Jetson์ ์ฑ๋ฅ์ ๊ทน๋ํํ๋ ค๋ฉด ๋ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐ๋ฅด์ญ์์ค:
- ์ต๋ ์ ๋ ฅ ๋ชจ๋๋ฅผ ํ์ฑํํ์ฌ CPU ๋ฐ GPU ์ฝ์ด๋ฅผ ๋ชจ๋ ํ์ฉํฉ๋๋ค.
- ๋ชจ๋ ์ฝ์ด๋ฅผ ์ต๋ ์ฃผํ์๋ก ์คํํ๋๋ก Jetson ํด๋ญ์ ํ์ฑํํฉ๋๋ค.
- ์์คํ ๋ฉํธ๋ฆญ์ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด Jetson Stats ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํฉ๋๋ค.
๋ช ๋ น์ด ๋ฐ ์์ธํ ๋ด์ฉ์ NVIDIA Jetson ์ฌ์ฉ ์ ๋ชจ๋ฒ ์ฌ๋ก ์น์ ์ ์ฐธ์กฐํ์ธ์.
2024-04-02 ์์ฑ, 2024-07-05 ์ ๋ฐ์ดํธ๋จ
์์ฑ์: glenn-jocher (9), RizwanMunawar (1), lakshanthad (3), Ahelsamahy (1), Burhan-Q (2)