๋น ๋ฅธ ์์ ๊ฐ์ด๋: NVIDIA Jetson๊ณผ Ultralytics YOLOv8
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ NVIDIA Jetson ์ฅ์น์ Ultralytics YOLOv8 ๋ฐฐํฌ์ ๋ํ ์์ธํ ์๋ด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ์๊ณ ๊ฐ๋ ฅํ ์ฅ์น์์ YOLOv8 ์ ์ฑ๋ฅ์ ์ ์ฆํ๊ธฐ ์ํ ์ฑ๋ฅ ๋ฒค์น๋งํฌ๋ ์๊ฐํฉ๋๋ค.
์ฐธ๊ณ
์ด ๊ฐ์ด๋๋ ์์ ์ ์ธ ์ต์ JetPack ๋ฆด๋ฆฌ์ค์ธ JP5.1.3์ ์คํํ๋ NVIDIA Jetson Orin NX 16GB ๊ธฐ๋ฐ์ Seeed Studio ์ฌ์ปดํจํฐ J4012๋ก ํ ์คํธ๋์์ต๋๋ค. Jetson Nano(JP4.6.4๊น์ง๋ง ์ง์)์ ๊ฐ์ ๊ตฌํ Jetson ์ฅ์น์ ์ด ๊ฐ์ด๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋์ด ๋ณด์ฅ๋์ง ์์ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ JP5.1.3์ ์คํํ๋ ๋ชจ๋ Jetson Orin, Xavier NX, AGX Xavier ์ฅ์น์์ ์๋ํ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
NVIDIA Jetson์ด๋?
NVIDIA Jetson์ ์ฃ์ง ๋๋ฐ์ด์ค์ ๊ฐ์ํ๋ AI(์ธ๊ณต ์ง๋ฅ) ์ปดํจํ ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋ ์๋ฒ ๋๋ ์ปดํจํ ๋ณด๋ ์๋ฆฌ์ฆ์ ๋๋ค. ์ด ์๊ณ ๊ฐ๋ ฅํ ์ฅ์น๋ NVIDIA์ GPU ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ผ๋ฉฐ ํด๋ผ์ฐ๋ ์ปดํจํ ๋ฆฌ์์ค์ ์์กดํ ํ์ ์์ด ์ฅ์น์์ ์ง์ ๋ณต์กํ AI ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฅ ๋ฌ๋ ๋ชจ๋ธ์ ์คํํ ์ ์์ต๋๋ค. Jetson ๋ณด๋๋ ๋ก๋ด ๊ณตํ, ์์จ ์ฃผํ ์ฐจ๋, ์ฐ์ ์๋ํ ๋ฐ ์งง์ ์ง์ฐ ์๊ฐ๊ณผ ๋์ ํจ์จ์ฑ์ผ๋ก ๋ก์ปฌ์์ AI ์ถ๋ก ์ ์ํํด์ผ ํ๋ ๊ธฐํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ ์ด๋ฌํ ๋ณด๋๋ ARM64 ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ๊ธฐ์กด GPU ์ปดํจํ ์ฅ์น์ ๋นํด ์ ์ ๋ ฅ์ผ๋ก ์คํ๋ฉ๋๋ค.
์๋น๋์ ์ ฏ์จ ์๋ฆฌ์ฆ ๋น๊ต
์ ฏ์จ ์ค๋ฆฐ์ ์ด์ ์ธ๋์ ๋น๊ตํ์ ๋ ๋ํญ ํฅ์๋ AI ์ฑ๋ฅ์ ์ ๊ณตํ๋ ์๋น๋์ ์ํ์ด ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๋น๋์ ์ ฏ์จ ์ ํ๊ตฐ์ ์ต์ ๋ฒ์ ์ ๋๋ค. ์๋ ํ๋ ์์ฝ์์คํ ์ ์๋ ๋ช ๊ฐ์ง ์ ฏ์จ ๋๋ฐ์ด์ค๋ฅผ ๋น๊ตํ ๊ฒ์ ๋๋ค.
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 | 64๊ฐ์ Tensor ์ฝ์ด๋ฅผ ๊ฐ์ถ 2048์ฝ์ด NVIDIA ์ํ์ด ์ํคํ ์ฒ GPU | 32๊ฐ์ Tensor ์ฝ์ด๋ฅผ ๊ฐ์ถ 1024์ฝ์ด NVIDIA ์ํ์ด ์ํคํ ์ฒ GPU | 32๊ฐ์ Tensor ์ฝ์ด๋ฅผ ๊ฐ์ถ 1024์ฝ์ด NVIDIA ์ํ์ด ์ํคํ ์ฒ GPU | 64๊ฐ์ Tensor ์ฝ์ด๋ฅผ ๊ฐ์ถ 512์ฝ์ด NVIDIA ๋ณผํ ์ํคํ ์ฒ GPU | 48๊ฐ์ Tensor ์ฝ์ด๋ฅผ ๊ฐ์ถ 384์ฝ์ด NVIDIA Voltaโข ์ํคํ ์ฒ GPU | 128์ฝ์ด NVIDIA Maxwellโข ์ํคํ ์ฒ GPU |
GPU ์ต๋ ์ฃผํ์ | 1.3GHz | 918MHz | 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 JetPack์ด๋?
Jetson ๋ชจ๋์ ๊ตฌ๋ํ๋ NVIDIA JetPack SDK๋ ๊ฐ์ฅ ํฌ๊ด์ ์ธ ์๋ฃจ์ ์ผ๋ก, ์๋ํฌ์๋ ๊ฐ์ํ๋ AI ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์๋ฒฝํ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํ๊ณ ์ถ์ ์๊ฐ์ ๋จ์ถํฉ๋๋ค. JetPack์๋ ๋ถํธ๋ก๋, Linux ์ปค๋, ์ฐ๋ถํฌ ๋ฐ์คํฌํฑ ํ๊ฒฝ ๋ฐ GPU ์ปดํจํ , ๋ฉํฐ๋ฏธ๋์ด, ๊ทธ๋ํฝ ๋ฐ ์ปดํจํฐ ๋น์ ๊ฐ์ํ๋ฅผ ์ํ ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ๊ฐ ํฌํจ๋ Jetson Linux๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ํ ํธ์คํธ ์ปดํจํฐ์ ๊ฐ๋ฐ์ ํคํธ ๋ชจ๋๋ฅผ ์ํ ์ํ, ์ค๋ช ์, ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ ์คํธ๋ฆฌ๋ฐ ๋น๋์ค ๋ถ์์ ์ํ DeepStream, ๋ก๋ณดํฑ์ค๋ฅผ ์ํ Isaac, ๋ํํ AI๋ฅผ ์ํ Riva์ ๊ฐ์ ์์ ์์ค์ SDK๋ฅผ ์ง์ํฉ๋๋ค.
ํ๋์ ์ ฏํฉ์์ ์๋น๋์ ์ ฏ์จ์ผ๋ก์ ์ ํ
NVIDIA Jetson ์ฅ์น๋ฅผ ์์ ๋ฃ์ ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์ฅ์น์ NVIDIA JetPack์ ํ๋์ํ๋ ๊ฒ์ ๋๋ค. NVIDIA Jetson ๋๋ฐ์ด์ค๋ฅผ ํ๋์ํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
- ์ ฏ์จ ์ค๋ฆฐ ๋๋ ธ ๊ฐ๋ฐ์ ํคํธ์ ๊ฐ์ ๊ณต์ NVIDIA ๊ฐ๋ฐ ํคํธ๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ ์ด ๋งํฌ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ฅ์น ๋ถํ ์ ์ํ JetPack์ด ํฌํจ๋ SD ์นด๋๋ฅผ ์ค๋นํ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ NVIDIA ๊ฐ๋ฐ ํคํธ๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ, ์ด ๋งํฌ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ SDK ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ์ฌ JetPack์ ์ฅ์น์ ํ๋์ํ ์ ์์ต๋๋ค.
- ์จ๋ ์คํ๋์ค ์ฌ์ปดํจํฐ J4012 ์ฅ์น๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ, ์ด ๋งํฌ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ JetPack์ ํฌํจ๋ SSD์ ํ๋์ํ ์ ์์ต๋๋ค.
- NVIDIA Jetson ๋ชจ๋๋ก ๊ตฌ๋๋๋ ๋ค๋ฅธ ํ์ฌ ์ฅ์น๋ฅผ ์์ ํ๊ณ ์๋ ๊ฒฝ์ฐ ์ด ๋งํฌ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ๋ช ๋ น์ค ํ๋์ฑ์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ฐธ๊ณ
์์ ๋ฐฉ๋ฒ 3๊ณผ 4์ ๊ฒฝ์ฐ, ์์คํ ์ ํ๋์ํ๊ณ ์ฅ์น๋ฅผ ๋ถํ ํ ํ ์ฅ์น ํฐ๋ฏธ๋์์ "sudo apt update && sudo apt install nvidia-jetpack -y"๋ฅผ ์ ๋ ฅํ์ฌ ํ์ํ ๋๋จธ์ง JetPack ๊ตฌ์ฑ ์์๋ฅผ ๋ชจ๋ ์ค์นํ์ธ์.
์ค์ Ultralytics
๋ค์ ์ปดํจํฐ ๋น์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๊ธฐ ์ํด NVIDIA Jetson์์ Ultralytics ํจํค์ง๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์๋ ๋ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ๋ ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Docker๋ก ์์ํ๊ธฐ
๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์์ํ๋ ๋ฐฉ๋ฒ์ NVIDIA Jetson์์ Ultralytics YOLOv8 ์ฌ์ ๋น๋๋ Jetson์ฉ ๋์ปค ์ด๋ฏธ์ง๋ก ์คํํ๋ ๊ฒ์ ๋๋ค.
์๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ Docker ์ปจํ ์ด๋๋ฅผ ๊ฐ์ ธ์ Jetson์์ ์คํํฉ๋๋ค. ์ด๊ฒ์ Python3 ํ๊ฒฝ์ PyTorch ๋ฐ Torchvision์ด ํฌํจ๋ l4t-pytorch ๋์ปค ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
t=ultralytics/ultralytics:latest-jetson && sudo docker pull $t && sudo docker run -it --ipc=host --runtime=nvidia $t
์ด ์์ ์ด ์๋ฃ๋๋ฉด NVIDIA Jetson์์ TensorRT ์ฌ์ฉ ์น์ ์ผ๋ก ๊ฑด๋๋๋๋ค.
Docker ์์ด ์์
Ultralytics ํจํค์ง ์ค์น
์ฌ๊ธฐ์๋ PyTorch ๋ชจ๋ธ์ ๋ค๋ฅธ ๋ค๋ฅธ ํ์์ผ๋ก ๋ด๋ณด๋ผ ์ ์๋๋ก ์ ํ์ ์ข ์์ฑ๊ณผ ํจ๊ป Jetson์ ultralyics ํจํค์ง๋ฅผ ์ค์นํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ฃผ๋ก NVIDIA TensorRT ๋ด๋ณด๋ด๊ธฐ์ ์ด์ ์ ๋ง์ถ๊ฒ ์ต๋๋ค. TensoRT๋ฅผ ์ฌ์ฉํ๋ฉด 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
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')
์ฐธ๊ณ
๋ค๋ฅธ ๋ชจ๋ธ ํ์์ผ๋ก ๋ชจ๋ธ์ ๋ด๋ณด๋ผ ๋ ์ถ๊ฐ ์ธ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ๋ด๋ณด๋ด๊ธฐ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ์ธ์.
์๋น๋์ ์ ฏ์จ ์ค๋ฆฐ 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์ ์ฌ์ฉํ ๋ YOLOv8 ์ ์คํํ๋ NVIDIA Jetson์์ ์ฑ๋ฅ์ ๊ทน๋ํํ๊ธฐ ์ํด ๋ฐ๋ผ์ผ ํ ๋ช ๊ฐ์ง ๋ชจ๋ฒ ์ฌ๋ก๊ฐ ์์ต๋๋ค.
-
์ต๋ ์ ๋ ฅ ๋ชจ๋ ํ์ฑํ
Jetson์์ ์ต๋ ์ ๋ ฅ ๋ชจ๋๋ฅผ ํ์ฑํํ๋ฉด ๋ชจ๋ CPU, GPU ์ฝ์ด๊ฐ ์ผ์ ธ ์๋์ง ํ์ธํฉ๋๋ค.
-
Jetson ํด๋ก ์ฌ์ฉ
Jetson ํด๋ญ์ ํ์ฑํํ๋ฉด ๋ชจ๋ CPU, GPU ์ฝ์ด๊ฐ ์ต๋ ์ฃผํ์๋ก ํด๋ญ๋ฉ๋๋ค.
-
Jetson ํต๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ค์น
์ ฏ์จ ํต๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ ์์คํ ๊ตฌ์ฑ ์์์ ์จ๋๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ CPU, GPU, RAM ์ฌ์ฉ๋ฅ ๋ณด๊ธฐ, ์ ์ ๋ชจ๋ ๋ณ๊ฒฝ, ์ต๋ ํด๋ญ์ผ๋ก ์ค์ , ์ ฏํฉ ์ ๋ณด ํ์ธ๊ณผ ๊ฐ์ ๊ธฐํ ์์คํ ์ธ๋ถ ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
๋ค์ ๋จ๊ณ
NVIDIA Jetson์ YOLOv8 ์ ์ฑ๊ณต์ ์ผ๋ก ์ค์ ํ์ ๊ฒ์ ์ถํ๋๋ฆฝ๋๋ค! ์ถ๊ฐ ํ์ต ๋ฐ ์ง์์ Ultralytics YOLOv8 ๋ฌธ์์์ ๋ ๋ง์ ๊ฐ์ด๋๋ฅผ ํ์ธํ์ธ์!
์์ฑ 2024-04-02, ์ ๋ฐ์ดํธ 2024-05-08
์์ฑ์: Burhan-Q (2), ๋ฝ์จํ๋ (2), ๊ธ๋ -์กฐ์ฒ (2)