Neural Magic๋ฅ์คํ์ด์ค ์์ง์ผ๋ก YOLOv8 ์ถ๋ก ์ต์ ํํ๊ธฐ
์ ๊ฐ์ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ๋ค์ํ ํ๋์จ์ด์ ๋ฐฐํฌํ ๋ Ultralytics YOLOv8 ๊ณผ ๊ฐ์ ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ๋ค์ํ ํ๋์จ์ด์ ๋ฐฐํฌํ ๋ ์ต์ ํ์ ๊ฐ์ ๊ณ ์ ํ ๋ฌธ์ ์ ๋ถ๋ชํ ์ ์์ต๋๋ค. ๋ฐ๋ก ์ด๋ YOLOv8๊ณผ Neural Magic์ DeepSparse ์์ง์ด ํตํฉ๋ฉ๋๋ค. YOLOv8 ๋ชจ๋ธ์ด ์คํ๋๋ ๋ฐฉ์์ ํ์ ํ๊ณ CPU์์ ์ง์ GPU ์์ค์ ์ฑ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค.
์ด ๊ฐ์ด๋์์๋ Neural Magic ์ DeepSparse๋ฅผ ์ฌ์ฉํ์ฌ YOLOv8 ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ, ์ถ๋ก ์ ์คํํ๋ ๋ฐฉ๋ฒ, ์ฑ๋ฅ์ ๋ฒค์น๋งํนํ์ฌ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Neural Magic์ ๋ฅ์คํ์ด์ค
Neural Magic์ DeepSparse๋ CPU์์ ์ ๊ฒฝ๋ง์ ์คํ์ ์ต์ ํํ๋๋ก ์ค๊ณ๋ ์ถ๋ก ๋ฐํ์์ ๋๋ค. ํฌ์์ฑ, ๊ฐ์ง์น๊ธฐ, ์์ํ์ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ์ ์ ์ ์ฉํ์ฌ ์ ํ๋๋ฅผ ์ ์งํ๋ฉด์ ๊ณ์ฐ ์์๋ฅผ ํ๊ธฐ์ ์ผ๋ก ์ค์ ๋๋ค. DeepSparse๋ ๋ค์ํ ๊ธฐ๊ธฐ์์ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ๊ฒฝ๋ง ์คํ์ ์ํ ๋ฏผ์ฒฉํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
Neural Magic์ DeepSparse๋ฅผ ๋ค์๊ณผ ํตํฉํ ๋์ ์ด์ YOLOv8
DeepSparse๋ฅผ ์ฌ์ฉํ์ฌ YOLOV8 ๋ฅผ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ธฐ ์ ์, DeepSparse ์ฌ์ฉ์ ์ด์ ์ ์ดํดํด ๋ณด๊ฒ ์ต๋๋ค. ๋ช ๊ฐ์ง ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ถ๋ก ์๋ ํฅ์: ์ต๋ 525 FPS( YOLOv8n)๋ฅผ ๋ฌ์ฑํ์ฌ YOLOv8 ์ ์ถ๋ก ๊ธฐ๋ฅ์ด ๊ธฐ์กด ๋ฐฉ์์ ๋นํด ํฌ๊ฒ ๋นจ๋ผ์ก์ต๋๋ค.
- ์ต์ ํ๋ ๋ชจ๋ธ ํจ์จ์ฑ: ๊ฐ์ง ์น๊ธฐ ๋ฐ ์ ๋ํ๋ฅผ ์ฌ์ฉํ์ฌ YOLOv8 ์ ํจ์จ์ฑ์ ํฅ์์์ผ ๋ชจ๋ธ ํฌ๊ธฐ์ ๊ณ์ฐ ์๊ตฌ ์ฌํญ์ ์ค์ด๋ฉด์ ์ ํ๋๋ฅผ ์ ์งํฉ๋๋ค.
-
ํ์ค CPU์์ ๊ณ ์ฑ๋ฅ: CPU์์ GPU์ ๊ฐ์ ์ฑ๋ฅ์ ์ ๊ณตํ์ฌ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ค ์ ๊ทผํ๊ธฐ ์ฝ๊ณ ๋น์ฉ ํจ์จ์ ์ธ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
-
๊ฐ์ํ๋ ํตํฉ ๋ฐ ๋ฐฐํฌ: ์ด๋ฏธ์ง ๋ฐ ๋์์ ์ฃผ์ ๊ธฐ๋ฅ์ ํฌํจํ์ฌ YOLOv8 ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ํตํฉํ ์ ์๋ ์ฌ์ฉ์ ์นํ์ ์ธ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
-
๋ค์ํ ๋ชจ๋ธ ์ ํ ์ง์: ํ์ค ๋ฐ ํฌ์์ฑ์ ์ต์ ํ๋ YOLOv8 ๋ชจ๋ธ๊ณผ ๋ชจ๋ ํธํ๋๋ฏ๋ก ๋ฐฐํฌ ์ ์ฐ์ฑ์ด ํฅ์๋ฉ๋๋ค.
-
๋น์ฉ ํจ์จ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ : ์ด์ ๋น์ฉ์ ์ ๊ฐํ๊ณ ๊ณ ๊ธ ๊ฐ์ฒด ํ์ง ๋ชจ๋ธ์ ํ์ฅ ๊ฐ๋ฅํ ๋ฐฐํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Neural Magic ์ ๋ฅ์คํ์ด์ค ๊ธฐ์ ์ ์ด๋ป๊ฒ ์๋ํ๋์?
Neural Magic์ ๋ฅ ์คํ์ค ๊ธฐ์ ์ ์ธ๊ฐ ๋๋์ ์ ๊ฒฝ๋ง ๊ณ์ฐ ํจ์จ์ฑ์์ ์๊ฐ์ ๋ฐ์์ต๋๋ค. ์ด ๊ธฐ์ ์ ๋ค์๊ณผ ๊ฐ์ ๋ ๊ฐ์ง ๋์ ํต์ฌ ์๋ฆฌ๋ฅผ ์ฑํํ๊ณ ์์ต๋๋ค:
-
ํฌ์์ฑ: ์คํ์คํ ๊ณผ์ ์ ๋ฅ๋ฌ๋ ๋คํธ์ํฌ์์ ์ค๋ณต ์ ๋ณด๋ฅผ ์๋ผ๋ด์ด ์ ํ๋ ์ ํ ์์ด ๋ ์๊ณ ๋น ๋ฅธ ๋ชจ๋ธ์ ๋ง๋๋ ๊ฒ์ ๋๋ค. ์ด ๊ธฐ์ ์ ๋คํธ์ํฌ์ ํฌ๊ธฐ์ ๊ณ์ฐ ์๊ตฌ ์ฌํญ์ ํฌ๊ฒ ์ค์ฌ์ค๋๋ค.
-
์ฐธ์กฐ ์์น: DeepSparse๋ ๋คํธ์ํฌ๋ฅผ Tensor ์ด๋ก ๋ถํ ํ๋ ๊ณ ์ ํ ์คํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ด๋ฌํ ์ด์ CPU์ ์บ์ ๋ด์์ ์ ์ ์ผ๋ก ๊น์ด ๋จ์๋ก ์คํ๋ฉ๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ๋๋์ ํจ์จ์ฑ์ ๋ชจ๋ฐฉํ์ฌ ๋ฐ์ดํฐ ์ด๋์ ์ต์ํํ๊ณ CPU์ ์บ์ ์ฌ์ฉ์ ์ต๋ํํฉ๋๋ค.
Neural Magic ์ ๋ฅ์คํ์ด์ค ๊ธฐ์ ์๋ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ํด๋น ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ์ ์ง์ ๋ฐ์ดํฐ ์งํฉ์์ ํ์ต๋ YOLOv8 ์ ์คํ์ค ๋ฒ์ ๋ง๋ค๊ธฐ
Neural Magic ์ ์คํ ์์ค ๋ชจ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ธ SparseZoo๋ ๋ฏธ๋ฆฌ ์คํ์คํ๋ YOLOv8 ๋ชจ๋ธ ์ฒดํฌํฌ์ธํธ ๋ชจ์์ ์ ๊ณตํฉ๋๋ค. Ultralytics ์ ์ํํ๊ฒ ํตํฉ๋ SparseML์ ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ํน์ ๋ฐ์ดํฐ ์ธํธ์์ ์ด๋ฌํ ์คํ์ค ์ฒดํฌํฌ์ธํธ๋ฅผ ์์ฝ๊ฒ ๋ฏธ์ธ ์กฐ์ ํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ Neural Magic ์ SparseML YOLOv8 ๋ฌธ์๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฌ์ฉ๋ฒ: DeepSparse๋ฅผ ์ฌ์ฉํ์ฌ YOLOV8 ๋ฐฐํฌ
Neural Magic ์ DeepSparse๋ก YOLOv8 ๋ฅผ ๋ฐฐํฌํ๋ ค๋ฉด ๋ช ๊ฐ์ง ๊ฐ๋จํ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค. ์ฌ์ฉ ์ง์นจ์ ์ดํด๋ณด๊ธฐ ์ ์ Ultralytics ์์ ์ ๊ณตํ๋ ๋ค์ํ YOLOv8 ๋ชจ๋ธ์ ํ์ธํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ํ๋ก์ ํธ ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ์ ํฉํ ๋ชจ๋ธ์ ์ ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1๋จ๊ณ: ์ค์น
ํ์ํ ํจํค์ง๋ฅผ ์ค์นํ๋ ค๋ฉด ์คํํฉ๋๋ค:
2๋จ๊ณ: ONNX ํ์์ผ๋ก YOLOv8 ๋ด๋ณด๋ด๊ธฐ
DeepSparse ์์ง์๋ ONNX ํ์์ YOLOv8 ๋ชจ๋ธ์ด ํ์ํฉ๋๋ค. ๋ชจ๋ธ์ ์ด ํ์์ผ๋ก ๋ด๋ณด๋ด๋ ๊ฒ์ DeepSparse์์ ํธํ์ฑ์ ์ํด ํ์์ ์ ๋๋ค. ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ YOLOv8 ๋ชจ๋ธ์ ๋ด๋ณด๋ ๋๋ค:
๋ชจ๋ธ ๋ด๋ณด๋ด๊ธฐ
์ด ๋ช
๋ น์ yolov8n.onnx
๋ชจ๋ธ์ ๋์คํฌ์ ์ ์ฅํฉ๋๋ค.
3๋จ๊ณ: ์ถ๋ก ๋ฐฐํฌ ๋ฐ ์คํ
ONNX ํ์์ YOLOv8 ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด DeepSparse๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ก ์ ๋ฐฐํฌํ๊ณ ์คํํ ์ ์์ต๋๋ค. ์ด ์์ ์ ์ง๊ด์ ์ธ Python API๋ก ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค:
์ถ๋ก ๋ฐฐํฌ ๋ฐ ์คํ
from deepsparse import Pipeline
# Specify the path to your YOLOv8 ONNX model
model_path = "path/to/yolov8n.onnx"
# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)
4๋จ๊ณ: ์ฑ๋ฅ ๋ฒค์น๋งํน
YOLOv8 ๋ชจ๋ธ์ด DeepSparse์์ ์ต์ ์ ์ฑ๋ฅ์ ๋ฐํํ๊ณ ์๋์ง ํ์ธํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ชจ๋ธ์ ์ฑ๋ฅ์ ๋ฒค์น๋งํนํ์ฌ ์ฒ๋ฆฌ๋๊ณผ ์ง์ฐ ์๊ฐ์ ๋ถ์ํ ์ ์์ต๋๋ค:
๋ฒค์น๋งํน
5๋จ๊ณ: ์ถ๊ฐ ๊ธฐ๋ฅ
DeepSparse๋ ์ด๋ฏธ์ง ์ฃผ์ ๋ฐ ๋ฐ์ดํฐ ์ธํธ ํ๊ฐ์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ YOLOv8 ์ ์ค์ง์ ์ธ ํตํฉ์ ์ํ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์ถ๊ฐ ๊ธฐ๋ฅ
์ฃผ์ ๋ฌ๊ธฐ ๋ช ๋ น์ ์คํํ๋ฉด ์ง์ ๋ ์ด๋ฏธ์ง๊ฐ ์ฒ๋ฆฌ๋๊ณ , ๊ฐ์ฒด๋ฅผ ๊ฐ์งํ๊ณ , ์ฃผ์์ด ๋ฌ๋ฆฐ ์ด๋ฏธ์ง๊ฐ ๊ฒฝ๊ณ ์์ ๋ฐ ๋ถ๋ฅ์ ํจ๊ป ์ ์ฅ๋ฉ๋๋ค. ์ฃผ์์ด ๋ฌ๋ฆฐ ์ด๋ฏธ์ง๋ ์ฃผ์ ๊ฒฐ๊ณผ ํด๋์ ์ ์ฅ๋ฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ชจ๋ธ์ ๊ฐ์ง ๊ธฐ๋ฅ์ ์๊ฐ์ ์ผ๋ก ํํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํ๊ฐ ๋ช ๋ น์ ์คํํ๋ฉด ์ ํ๋, ํ์์จ, ํ๊ท ์ ๋ฐ๋(mAP)์ ๊ฐ์ ์์ธํ ์ถ๋ ฅ ๋ฉํธ๋ฆญ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์ธํธ์ ๋ํ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ์ข ํฉ์ ์ผ๋ก ํ์ ํ ์ ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๋ง๊ฒ YOLOv8 ๋ชจ๋ธ์ ๋ฏธ์ธ ์กฐ์ ํ๊ณ ์ต์ ํํ์ฌ ๋์ ์ ํ๋์ ํจ์จ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ํนํ ์ ์ฉํฉ๋๋ค.
์์ฝ
์ด ๊ฐ์ด๋์์๋ Ultralytics' YOLOv8 ๊ณผ Neural Magic ์ ๋ฅ์คํ์ด์ค ์์ง ํตํฉ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด ํตํฉ์ ํตํด CPU ํ๋ซํผ์์ YOLOv8 ์ ์ฑ๋ฅ์ ํฅ์์์ผ GPU ์์ค์ ํจ์จ์ฑ๊ณผ ๊ณ ๊ธ ์ ๊ฒฝ๋ง ํฌ์์ฑ ๊ธฐ์ ์ ์ ๊ณตํ๋ ๋ฐฉ๋ฒ์ ๊ฐ์กฐํ์ต๋๋ค.
๋ ์์ธํ ์ ๋ณด์ ๊ณ ๊ธ ์ฌ์ฉ๋ฒ์ Neural Magic์ DeepSparse ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์. ๋ํ Neural Magic์์ YOLOv8 ๊ณผ์ ํตํฉ์ ๋ํ ์ค๋ช ์๋ฅผ ํ์ธํ๊ณ ์ฌ๊ธฐ์์ ์ด์ ๋ํ ํ๋ฅญํ ์ธ์ ์ ์์ฒญํ์ธ์.
๋ํ ๋ค์ํ YOLOv8 ํตํฉ์ ๋ํ ๋ณด๋ค ํญ๋์ ์ดํด๋ฅผ ์ํด Ultralytics ํตํฉ ๊ฐ์ด๋ ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด ๋ค์ํ๊ณ ํฅ๋ฏธ๋ก์ด ํตํฉ ๊ฐ๋ฅ์ฑ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.