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

์ธํ…” OpenVINO ๋‚ด๋ณด๋‚ด๊ธฐ

OpenVINO ์—์ฝ”์‹œ์Šคํ…œ

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” YOLOv8 ๋ชจ๋ธ์„ ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. OpenVINO ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ฉด ์ตœ๋Œ€ 3๋ฐฐ์˜ CPU ์†๋„ ํ–ฅ์ƒ์€ ๋ฌผ๋ก  ๋‹ค๋ฅธ ์ธํ…” ํ•˜๋“œ์›จ์–ด(iGPU, dGPU, VPU ๋“ฑ)์—์„œ๋„ ๊ฐ€์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenVINO์˜คํ”ˆ ๋น„์ฃผ์–ผ ์ถ”๋ก  ๋ฐ ์‹ ๊ฒฝ๋ง ์ตœ์ ํ™” ํˆดํ‚ท์˜ ์ค„์ž„๋ง์ธ ์ด ํˆดํ‚ท์€ AI ์ถ”๋ก  ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ข…ํ•ฉ์ ์ธ ํˆดํ‚ท์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์— Visual์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ OpenVINO ์€ ์–ธ์–ด, ์˜ค๋””์˜ค, ์‹œ๊ณ„์—ด ๋“ฑ ๋‹ค์–‘ํ•œ ์ถ”๊ฐ€ ์ž‘์—…๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.



Watch: OpenVINO ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๋ก ์„ ์œ„ํ•ด Ultralytics YOLOv8 ๋ชจ๋ธ์„ ๋‚ด๋ณด๋‚ด๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• .

์‚ฌ์šฉ ์˜ˆ

YOLOv8n ๋ชจ๋ธ์„ OpenVINO ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๊ณ  ๋‚ด๋ณด๋‚ธ ๋ชจ๋ธ๋กœ ์ถ”๋ก ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Export the model
model.export(format='openvino')  # creates 'yolov8n_openvino_model/'

# Load the exported OpenVINO model
ov_model = YOLO('yolov8n_openvino_model/')

# Run inference
results = ov_model('https://ultralytics.com/images/bus.jpg')
# Export a YOLOv8n PyTorch model to OpenVINO format
yolo export model=yolov8n.pt format=openvino  # creates 'yolov8n_openvino_model/'

# Run inference with the exported model
yolo predict model=yolov8n_openvino_model source='https://ultralytics.com/images/bus.jpg'

์ธ์ˆ˜

ํ‚ค ๊ฐ€์น˜ ์„ค๋ช…
format 'openvino' ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
imgsz 640 ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ์Šค์นผ๋ผ ๋˜๋Š” (h, w) ๋ชฉ๋ก(์˜ˆ: (640, 480))์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
half False FP16 ์–‘์žํ™”

์žฅ์  OpenVINO

  1. ์„ฑ๋Šฅ: OpenVINO ์€ ์ธํ…” CPU, ํ†ตํ•ฉ ๋ฐ ๊ฐœ๋ณ„ GPU, FPGA์˜ ์„ฑ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๊ณ ์„ฑ๋Šฅ ์ถ”๋ก ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  2. ์ด๊ธฐ์ข… ์‹คํ–‰ ์ง€์›: OpenVINO ์€ ํ•œ ๋ฒˆ ์ž‘์„ฑํ•˜์—ฌ ์ง€์›๋˜๋Š” ๋ชจ๋“  ์ธํ…” ํ•˜๋“œ์›จ์–ด(CPU, GPU, FPGA, VPU ๋“ฑ)์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ชจ๋ธ ์˜ตํ‹ฐ๋งˆ์ด์ €: OpenVINO ๋Š” PyTorch, TensorFlow, TensorFlow Lite, Keras, ONNX, PaddlePaddle, Caffe ๋“ฑ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋”ฅ ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ชจ๋ธ์„ ๊ฐ€์ ธ์™€์„œ ๋ณ€ํ™˜ํ•˜๊ณ  ์ตœ์ ํ™”ํ•˜๋Š” ๋ชจ๋ธ ์˜ตํ‹ฐ๋งˆ์ด์ €๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  4. ์‚ฌ์šฉ ํŽธ์˜์„ฑ: ์ด ํˆดํ‚ท์—๋Š” ํˆดํ‚ท์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ์•Œ๋ ค์ฃผ๋Š” 80๊ฐœ ์ด์ƒ์˜ ํŠœํ† ๋ฆฌ์–ผ ๋…ธํŠธ๋ถ ( YOLOv8 ์ตœ์ ํ™” ํฌํ•จ)์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

OpenVINO ๋‚ด๋ณด๋‚ด๊ธฐ ๊ตฌ์กฐ

๋ชจ๋ธ์„ OpenVINO ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ฉด ๋‹ค์Œ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค:

  1. XML ํŒŒ์ผ์ž…๋‹ˆ๋‹ค: ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  2. BIN ํŒŒ์ผ: weights and biases ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  3. ๋งคํ•‘ ํŒŒ์ผ: ์›๋ณธ ๋ชจ๋ธ ์ถœ๋ ฅ ํ…์„œ๋ฅผ OpenVINO tensor ์ด๋ฆ„์œผ๋กœ ๋งคํ•‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ OpenVINO ์ถ”๋ก  ์—”์ง„์œผ๋กœ ์ถ”๋ก ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ ์‹œ OpenVINO ๋‚ด๋ณด๋‚ด๊ธฐ ์‚ฌ์šฉ

OpenVINO ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด OpenVINO ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์€ ์ง€์›๋˜๋Š” ๋ชจ๋“  ์ธํ…” ํ•˜๋“œ์›จ์–ด์—์„œ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋Š” ํ†ตํ•ฉ API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ธํ…” ํ•˜๋“œ์›จ์–ด ์ „๋ฐ˜์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ๋น„๋™๊ธฐ ์‹คํ–‰๊ณผ ๊ฐ™์€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ถ”๋ก  ์‹คํ–‰์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ OpenVINO ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•œ ์ถ”๋ก  ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋Ÿฐํƒ€์ž„์—์„œ ๋ชจ๋ธ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ ค๋ฉด XML ๋ฐ BIN ํŒŒ์ผ๊ณผ ์ž…๋ ฅ ํฌ๊ธฐ, ์ •๊ทœํ™”๋ฅผ ์œ„ํ•œ ๋ฐฐ์œจ ๋“ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณ„ ์„ค์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  1. OpenVINO ์„ ์ƒ์„ฑํ•˜์—ฌ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. core = Core().
  2. ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. core.read_model() ๋ฉ”์„œ๋“œ.
  3. ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค. core.compile_model() ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  4. ์ž…๋ ฅ(์ด๋ฏธ์ง€, ํ…์ŠคํŠธ, ์˜ค๋””์˜ค ๋“ฑ)์„ ์ค€๋น„ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๋ก ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. compiled_model(input_data).

์ž์„ธํ•œ ๋‹จ๊ณ„์™€ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์€ OpenVINO ๋ฌธ์„œ ๋˜๋Š” API ํŠœํ† ๋ฆฌ์–ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

OpenVINO YOLOv8 ๋ฒค์น˜๋งˆํฌ

YOLOv8 ์•„๋ž˜ ๋ฒค์น˜๋งˆํฌ๋Š” Ultralytics ํŒ€์ด ์†๋„์™€ ์ •ํ™•๋„๋ฅผ ์ธก์ •ํ•˜๋Š” 4๊ฐ€์ง€ ๋ชจ๋ธ ํ˜•์‹์—์„œ ์‹คํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค: PyTorch, TorchScript, ONNX , OpenVINO. ๋ฒค์น˜๋งˆํฌ๋Š” ์ธํ…” ํ”Œ๋ ‰์Šค ๋ฐ ์•„ํฌ GPU์™€ ์ธํ…” ์ œ์˜จ CPU์—์„œ FP32 ์ •๋ฐ€๋„๋กœ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค ( half=False ์ธ์ˆ˜).

์ฐธ๊ณ 

์•„๋ž˜์˜ ๋ฒค์น˜๋งˆํ‚น ๊ฒฐ๊ณผ๋Š” ์ฐธ๊ณ ์šฉ์ด๋ฉฐ, ์‹œ์Šคํ…œ์˜ ์ •ํ™•ํ•œ ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ๊ณผ ๋ฒค์น˜๋งˆํฌ ์‹คํ–‰ ์‹œ์ ์˜ ์‹œ์Šคํ…œ ์›Œํฌ๋กœ๋“œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ฒค์น˜๋งˆํฌ๋Š” ๋‹ค์Œ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. openvino Python ํŒจํ‚ค์ง€ ๋ฒ„์ „ 2023.0.1.

์ธํ…” ํ”Œ๋ ‰์Šค GPU

์ธํ…”ยฎ ๋ฐ์ดํ„ฐ์„ผํ„ฐ GPU ํ”Œ๋ ‰์Šค ์‹œ๋ฆฌ์ฆˆ๋Š” ์ธํ…”๋ฆฌ์ „ํŠธ ๋น„์ฃผ์–ผ ํด๋ผ์šฐ๋“œ๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ์ด GPU๋Š” ๋ฏธ๋””์–ด ์ŠคํŠธ๋ฆฌ๋ฐ, ํด๋ผ์šฐ๋“œ ๊ฒŒ์ž„, AI ์‹œ๊ฐ ์ถ”๋ก , ๊ฐ€์ƒ ๋ฐ์Šคํฌํ†ฑ ์ธํ”„๋ผ ์›Œํฌ๋กœ๋“œ ๋“ฑ ๋‹ค์–‘ํ•œ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐฉํ˜• ์•„ํ‚คํ…์ฒ˜์™€ AV1 ์ธ์ฝ”๋”ฉ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์›์œผ๋กœ ๊ณ ์„ฑ๋Šฅ, ํฌ๋กœ์Šค ์•„ํ‚คํ…์ฒ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ํ‘œ์ค€ ๊ธฐ๋ฐ˜ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค. Flex ์‹œ๋ฆฌ์ฆˆ GPU๋Š” ์ง‘์ ๋„์™€ ํ’ˆ์งˆ์— ์ตœ์ ํ™”๋˜์–ด ๋†’์€ ์‹ ๋ขฐ์„ฑ, ๊ฐ€์šฉ์„ฑ, ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ฒค์น˜๋งˆํฌ๋Š” ์ธํ…”ยฎ ๋ฐ์ดํ„ฐ์„ผํ„ฐ GPU ํ”Œ๋ ‰์Šค 170์—์„œ FP32 ์ •๋ฐ€๋„๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Flex GPU ๋ฒค์น˜๋งˆํฌ
๋ชจ๋ธ ํ˜•์‹ ์ƒํƒœ ํฌ๊ธฐ(MB) mAP50-95(B) ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
YOLOv8n PyTorch โœ… 6.2 0.3709 21.79
YOLOv8n TorchScript โœ… 12.4 0.3704 23.24
YOLOv8n ONNX โœ… 12.2 0.3704 37.22
YOLOv8n OpenVINO โœ… 12.3 0.3703 3.29
YOLOv8s PyTorch โœ… 21.5 0.4471 31.89
YOLOv8s TorchScript โœ… 42.9 0.4472 32.71
YOLOv8s ONNX โœ… 42.8 0.4472 43.42
YOLOv8s OpenVINO โœ… 42.9 0.4470 3.92
YOLOv8m PyTorch โœ… 49.7 0.5013 50.75
YOLOv8m TorchScript โœ… 99.2 0.4999 47.90
YOLOv8m ONNX โœ… 99.0 0.4999 63.16
YOLOv8m OpenVINO โœ… 49.8 0.4997 7.11
YOLOv8l PyTorch โœ… 83.7 0.5293 77.45
YOLOv8l TorchScript โœ… 167.2 0.5268 85.71
YOLOv8l ONNX โœ… 166.8 0.5268 88.94
YOLOv8l OpenVINO โœ… 167.0 0.5264 9.37
YOLOv8x PyTorch โœ… 130.5 0.5404 100.09
YOLOv8x TorchScript โœ… 260.7 0.5371 114.64
YOLOv8x ONNX โœ… 260.4 0.5371 110.32
YOLOv8x OpenVINO โœ… 260.6 0.5367 15.02

์ด ํ‘œ๋Š” ๋„ค ๊ฐ€์ง€ ํ˜•์‹(PyTorch, TorchScript, ONNX, OpenVINO)์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ๋ชจ๋ธ(YOLOv8n, YOLOv8s, YOLOv8m, YOLOv8l, YOLOv8x)์— ๋Œ€ํ•œ ๋ฒค์น˜๋งˆํฌ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ ์กฐํ•ฉ์— ๋Œ€ํ•œ ์ƒํƒœ, ํฌ๊ธฐ, mAP50-95(B) ์ง€ํ‘œ ๋ฐ ์ถ”๋ก  ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ธํ…” ์•„ํฌ GPU

์ธํ…”ยฎ ์•„ํฌโ„ข๋Š” ์ธํ…”์˜ ์ „์šฉ GPU ์‹œ์žฅ ์ง„์ถœ์„ ์ƒ์ง•ํ•ฉ๋‹ˆ๋‹ค. AMD, ์—”๋น„๋””์•„ ๋“ฑ ์ฃผ์š” GPU ์ œ์กฐ์—…์ฒด์™€ ๊ฒฝ์Ÿํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ Arcโ„ข ์‹œ๋ฆฌ์ฆˆ๋Š” ๋…ธํŠธ๋ถ๊ณผ ๋ฐ์Šคํฌํ†ฑ ์‹œ์žฅ์„ ๋ชจ๋‘ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์‹œ๋ฆฌ์ฆˆ์—๋Š” ๋…ธํŠธ๋ถ๊ณผ ๊ฐ™์€ ์†Œํ˜• ๋””๋ฐ”์ด์Šค๋ฅผ ์œ„ํ•œ ๋ชจ๋ฐ”์ผ ๋ฒ„์ „๊ณผ ๋ฐ์Šคํฌํ†ฑ ์ปดํ“จํ„ฐ๋ฅผ ์œ„ํ•œ ๋” ํฌ๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Arcโ„ข ์‹œ๋ฆฌ์ฆˆ๋Š” ์„ธ ๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค: Arcโ„ข 3, Arcโ„ข 5, Arcโ„ข 7๋กœ ๊ตฌ๋ถ„๋˜๋ฉฐ, ๊ฐ ์ˆซ์ž๋Š” ์„ฑ๋Šฅ ์ˆ˜์ค€์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฐ ์นดํ…Œ๊ณ ๋ฆฌ์—๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋ธ์ด ํฌํ•จ๋˜๋ฉฐ, GPU ๋ชจ๋ธ๋ช…์˜ 'M'์€ ๋ชจ๋ฐ”์ผ ํ†ตํ•ฉํ˜• ๋ชจ๋ธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ๋ฆฌ๋ทฐ์—์„œ๋Š” Arcโ„ข ์‹œ๋ฆฌ์ฆˆ, ํŠนํžˆ ํ†ตํ•ฉ๋œ A770M GPU์˜ ์ธ์ƒ์ ์ธ ๊ทธ๋ž˜ํ”ฝ ์„ฑ๋Šฅ์— ๋Œ€ํ•ด ์ฐฌ์‚ฌ๋ฅผ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. Arcโ„ข ์‹œ๋ฆฌ์ฆˆ์˜ ์ถœ์‹œ ์—ฌ๋ถ€๋Š” ์ง€์—ญ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ, ๊ณง ์ถ”๊ฐ€ ๋ชจ๋ธ์ด ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ธํ…”ยฎ ์•„ํฌโ„ข GPU๋Š” ๊ฒŒ์ž„์—์„œ ์ฝ˜ํ…์ธ  ์ œ์ž‘์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ปดํ“จํŒ… ์š”๊ตฌ์‚ฌํ•ญ์— ๋งž๋Š” ๊ณ ์„ฑ๋Šฅ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ฒค์น˜๋งˆํฌ๋Š” ์ธํ…”ยฎ ์•„ํฌ 770 GPU์—์„œ FP32 ์ •๋ฐ€๋„๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Arc GPU ๋ฒค์น˜๋งˆํฌ
๋ชจ๋ธ ํ˜•์‹ ์ƒํƒœ ํฌ๊ธฐ(MB) metrics/mAP50-95(B) ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
YOLOv8n PyTorch โœ… 6.2 0.3709 88.79
YOLOv8n TorchScript โœ… 12.4 0.3704 102.66
YOLOv8n ONNX โœ… 12.2 0.3704 57.98
YOLOv8n OpenVINO โœ… 12.3 0.3703 8.52
YOLOv8s PyTorch โœ… 21.5 0.4471 189.83
YOLOv8s TorchScript โœ… 42.9 0.4472 227.58
YOLOv8s ONNX โœ… 42.7 0.4472 142.03
YOLOv8s OpenVINO โœ… 42.9 0.4469 9.19
YOLOv8m PyTorch โœ… 49.7 0.5013 411.64
YOLOv8m TorchScript โœ… 99.2 0.4999 517.12
YOLOv8m ONNX โœ… 98.9 0.4999 298.68
YOLOv8m OpenVINO โœ… 99.1 0.4996 12.55
YOLOv8l PyTorch โœ… 83.7 0.5293 725.73
YOLOv8l TorchScript โœ… 167.1 0.5268 892.83
YOLOv8l ONNX โœ… 166.8 0.5268 576.11
YOLOv8l OpenVINO โœ… 167.0 0.5262 17.62
YOLOv8x PyTorch โœ… 130.5 0.5404 988.92
YOLOv8x TorchScript โœ… 260.7 0.5371 1186.42
YOLOv8x ONNX โœ… 260.4 0.5371 768.90
YOLOv8x OpenVINO โœ… 260.6 0.5367 19

์ธํ…” ์ œ์˜จ CPU

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

ํŠนํžˆ, ์ œ์˜จยฎ CPU๋Š” ๋†’์€ ์ปดํ“จํŒ… ๋ฐ€๋„์™€ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ค‘์†Œ๊ธฐ์—…๊ณผ ๋Œ€๊ธฐ์—… ๋ชจ๋‘์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ธํ…”ยฎ ์ œ์˜จยฎ CPU๋ฅผ ์„ ํƒํ•จ์œผ๋กœ์จ ์กฐ์ง์€ ๊ฐ€์žฅ ๊นŒ๋‹ค๋กœ์šด ์ปดํ“จํŒ… ์ž‘์—…์„ ์ž์‹  ์žˆ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ˜์‹ ์„ ์ด‰์ง„ํ•˜๋Š” ๋™์‹œ์— ๋น„์šฉ ํšจ์œจ์„ฑ๊ณผ ์šด์˜ ํšจ์œจ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ฒค์น˜๋งˆํฌ๋Š” 4์„ธ๋Œ€ ์ธํ…”ยฎ ์ œ์˜จยฎ ์Šค์ผ€์ผ๋Ÿฌ๋ธ” CPU์—์„œ FP32 ์ •๋ฐ€๋„๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ œ์˜จ CPU ๋ฒค์น˜๋งˆํฌ
๋ชจ๋ธ ํ˜•์‹ ์ƒํƒœ ํฌ๊ธฐ(MB) metrics/mAP50-95(B) ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
YOLOv8n PyTorch โœ… 6.2 0.3709 24.36
YOLOv8n TorchScript โœ… 12.4 0.3704 23.93
YOLOv8n ONNX โœ… 12.2 0.3704 39.86
YOLOv8n OpenVINO โœ… 12.3 0.3704 11.34
YOLOv8s PyTorch โœ… 21.5 0.4471 33.77
YOLOv8s TorchScript โœ… 42.9 0.4472 34.84
YOLOv8s ONNX โœ… 42.8 0.4472 43.23
YOLOv8s OpenVINO โœ… 42.9 0.4471 13.86
YOLOv8m PyTorch โœ… 49.7 0.5013 53.91
YOLOv8m TorchScript โœ… 99.2 0.4999 53.51
YOLOv8m ONNX โœ… 99.0 0.4999 64.16
YOLOv8m OpenVINO โœ… 99.1 0.4996 28.79
YOLOv8l PyTorch โœ… 83.7 0.5293 75.78
YOLOv8l TorchScript โœ… 167.2 0.5268 79.13
YOLOv8l ONNX โœ… 166.8 0.5268 88.45
YOLOv8l OpenVINO โœ… 167.0 0.5263 56.23
YOLOv8x PyTorch โœ… 130.5 0.5404 96.60
YOLOv8x TorchScript โœ… 260.7 0.5371 114.28
YOLOv8x ONNX โœ… 260.4 0.5371 111.02
YOLOv8x OpenVINO โœ… 260.6 0.5371 83.28

์ธํ…” ์ฝ”์–ด CPU

์ธํ…”ยฎ ์ฝ”์–ดยฎ ์‹œ๋ฆฌ์ฆˆ๋Š” ์ธํ…”์˜ ๊ณ ์„ฑ๋Šฅ ํ”„๋กœ์„ธ์„œ ์ œํ’ˆ๊ตฐ์ž…๋‹ˆ๋‹ค. ์ฝ”์–ด i3(๋ณด๊ธ‰ํ˜•), ์ฝ”์–ด i5(์ค‘๊ธ‰ํ˜•), ์ฝ”์–ด i7(๊ณ ๊ธ‰ํ˜•), ์ฝ”์–ด i9(๊ทนํ•œ์˜ ์„ฑ๋Šฅ)์ด ๋ผ์ธ์—…์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์‹œ๋ฆฌ์ฆˆ๋Š” ์ผ์ƒ์ ์ธ ์ž‘์—…๋ถ€ํ„ฐ ๊นŒ๋‹ค๋กœ์šด ์ „๋ฌธ ์›Œํฌ๋กœ๋“œ๊นŒ์ง€ ๋‹ค์–‘ํ•œ ์ปดํ“จํŒ… ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ์˜ˆ์‚ฐ์„ ์ถฉ์กฑํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์„ธ๋Œ€๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๋งˆ๋‹ค ์„ฑ๋Šฅ, ์—๋„ˆ์ง€ ํšจ์œจ์„ฑ, ๊ธฐ๋Šฅ์ด ๊ฐœ์„ ๋ฉ๋‹ˆ๋‹ค.

์•„๋ž˜ ๋ฒค์น˜๋งˆํฌ๋Š” 13์„ธ๋Œ€ ์ธํ…”ยฎ ์ฝ”์–ดยฎ i7-13700H CPU์—์„œ FP32 ์ •๋ฐ€๋„๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ฝ”์–ด CPU ๋ฒค์น˜๋งˆํฌ
๋ชจ๋ธ ํ˜•์‹ ์ƒํƒœ ํฌ๊ธฐ(MB) metrics/mAP50-95(B) ์ถ”๋ก  ์‹œ๊ฐ„(ms/im)
YOLOv8n PyTorch โœ… 6.2 0.4478 104.61
YOLOv8n TorchScript โœ… 12.4 0.4525 112.39
YOLOv8n ONNX โœ… 12.2 0.4525 28.02
YOLOv8n OpenVINO โœ… 12.3 0.4504 23.53
YOLOv8s PyTorch โœ… 21.5 0.5885 194.83
YOLOv8s TorchScript โœ… 43.0 0.5962 202.01
YOLOv8s ONNX โœ… 42.8 0.5962 65.74
YOLOv8s OpenVINO โœ… 42.9 0.5966 38.66
YOLOv8m PyTorch โœ… 49.7 0.6101 355.23
YOLOv8m TorchScript โœ… 99.2 0.6120 424.78
YOLOv8m ONNX โœ… 99.0 0.6120 173.39
YOLOv8m OpenVINO โœ… 99.1 0.6091 69.80
YOLOv8l PyTorch โœ… 83.7 0.6591 593.00
YOLOv8l TorchScript โœ… 167.2 0.6580 697.54
YOLOv8l ONNX โœ… 166.8 0.6580 342.15
YOLOv8l OpenVINO โœ… 167.0 0.0708 117.69
YOLOv8x PyTorch โœ… 130.5 0.6651 804.65
YOLOv8x TorchScript โœ… 260.8 0.6650 921.46
YOLOv8x ONNX โœ… 260.4 0.6650 526.66
YOLOv8x OpenVINO โœ… 260.6 0.6619 158.73

๊ฒฐ๊ณผ ์žฌํ˜„

๋ชจ๋“  ๋‚ด๋ณด๋‚ด๊ธฐ ํ˜•์‹์—์„œ ์œ„์˜ Ultralytics ๋ฒค์น˜๋งˆํฌ๋ฅผ ์žฌํ˜„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”:

์˜ˆ์ œ

from ultralytics import YOLO

# Load a YOLOv8n PyTorch model
model = YOLO('yolov8n.pt')

# Benchmark YOLOv8n speed and accuracy on the COCO128 dataset for all all export formats
results= model.benchmarks(data='coco128.yaml')
# Benchmark YOLOv8n speed and accuracy on the COCO128 dataset for all all export formats
yolo benchmark model=yolov8n.pt data=coco128.yaml

๋ฒค์น˜๋งˆํ‚น ๊ฒฐ๊ณผ๋Š” ์‹œ์Šคํ…œ์˜ ์ •ํ™•ํ•œ ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ๊ณผ ๋ฒค์น˜๋งˆํฌ๋ฅผ ์‹คํ–‰ํ•  ๋‹น์‹œ ์‹œ์Šคํ…œ์˜ ํ˜„์žฌ ์›Œํฌ๋กœ๋“œ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์„ธ์š”. ๊ฐ€์žฅ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์œผ๋ ค๋ฉด ๋งŽ์€ ์ˆ˜์˜ ์ด๋ฏธ์ง€๊ฐ€ ํฌํ•จ๋œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. data='coco128.yaml' (128 val images), ordata='coco.yaml'` (5000๊ฐœ val ์ด๋ฏธ์ง€).

๊ฒฐ๋ก 

๋ฒค์น˜๋งˆํ‚น ๊ฒฐ๊ณผ๋Š” YOLOv8 ๋ชจ๋ธ์„ OpenVINO ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ผ ๋•Œ์˜ ์ด์ ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ชจ๋ธ๊ณผ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์—์„œ OpenVINO ํ˜•์‹์€ ๋น„์Šทํ•œ ์ •ํ™•๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์ถ”๋ก  ์†๋„ ๋ฉด์—์„œ ๋‹ค๋ฅธ ํ˜•์‹๋ณด๋‹ค ์ผ๊ด€๋˜๊ฒŒ ์šฐ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

์ธํ…”ยฎ ๋ฐ์ดํ„ฐ์„ผํ„ฐ GPU ํ”Œ๋ ‰์Šค ์‹œ๋ฆฌ์ฆˆ์˜ ๊ฒฝ์šฐ, OpenVINO ํ˜•์‹์€ ์›๋ž˜์˜ PyTorch ํ˜•์‹๋ณด๋‹ค ๊ฑฐ์˜ 10๋ฐฐ ๋น ๋ฅธ ์ถ”๋ก  ์†๋„๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ œ์˜จ CPU์—์„œ๋Š” OpenVINO ํ˜•์‹์ด PyTorch ํ˜•์‹๋ณด๋‹ค 2๋ฐฐ ๋” ๋นจ๋ž์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ์˜ ์ •ํ™•๋„๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ˜•์‹์—์„œ ๊ฑฐ์˜ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด์™€ ์ง€์นจ์€ OpenVINO, ๊ณต์‹ OpenVINO ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.



์ƒ์„ฑ 2023-11-12, ์—…๋ฐ์ดํŠธ 2024-02-13
์ž‘์„ฑ์ž: chr043416@gmail.com (1), glenn-jocher (7), Burhan-Q (1)

๋Œ“๊ธ€