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

ONNX YOLO11 ๋ชจ๋ธ์šฉ ๋‚ด๋ณด๋‚ด๊ธฐ

์ปดํ“จํ„ฐ ๋น„์ „ ๋ชจ๋ธ์„ ๋ฐฐํฌํ•  ๋•Œ๋Š” ์œ ์—ฐํ•˜๊ณ  ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ชจ๋ธ ํ˜•์‹์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

๋‚ด๋ณด๋‚ด๊ธฐ Ultralytics YOLO11 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ฉด ๋ฐฐํฌ๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” YOLO11 ๋ชจ๋ธ์„ ONNX ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ™•์žฅ์„ฑ๊ณผ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

ONNX ๋ฐ ONNX ๋Ÿฐํƒ€์ž„

ONNX์˜ ์•ฝ์ž์ธ ์˜คํ”ˆ ์‹ ๊ฒฝ๋ง ๊ตํ™˜์€ Facebook๊ณผ Microsoft ์ด ์ฒ˜์Œ ๊ฐœ๋ฐœํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ONNX ์˜ ๊ฐœ๋ฐœ์€ IBM, Amazon(AWS๋ฅผ ํ†ตํ•ด), Google ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์กฐ์ง์—์„œ ์ง€์›ํ•˜๋Š” ๊ณต๋™์˜ ๋…ธ๋ ฅ์ž…๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ๋‹ค์–‘ํ•œ AI ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ•˜๋“œ์›จ์–ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•˜๋„๋ก ์„ค๊ณ„๋œ ๊ฐœ๋ฐฉํ˜• ํŒŒ์ผ ํ˜•์‹์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

ONNX ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„์— ์›ํ™œํ•˜๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด PyTorch ์—์„œ ํ•™์Šต๋œ ๋”ฅ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๋‹ค์Œ TensorFlow ๋กœ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ONNX

๋˜๋Š” ONNX ๋ชจ๋ธ์„ ONNX ๋Ÿฐํƒ€์ž„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ONNX Runtime์€ PyTorch ๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜๋˜๋Š” ๋จธ์‹  ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์œ„ํ•œ ๋‹ค๋ชฉ์  ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ฐ€์†๊ธฐ์ž…๋‹ˆ๋‹ค, TensorFlow, TFLite, scikit-learn ๋“ฑ๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

ONNX ๋Ÿฐํƒ€์ž„์€ ํ•˜๋“œ์›จ์–ด๋ณ„ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ONNX ๋ชจ๋ธ์˜ ์‹คํ–‰์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด CPU, GPU, ํŠน์ˆ˜ ๊ฐ€์†๊ธฐ ๋“ฑ ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ์—์„œ ๋ชจ๋ธ์„ ํšจ์œจ์ ์œผ๋กœ ๊ณ ์„ฑ๋Šฅ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ONNX  ONNX ๋Ÿฐํƒ€์ž„

๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋“  ONNX ๋Ÿฐํƒ€์ž„๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋“ , ONNX ์€ ๋จธ์‹  ๋Ÿฌ๋‹ ๋ชจ๋ธ ๋ฐฐํฌ ๋ฐ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•œ ์œ ์—ฐํ•œ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ONNX ๋ชจ๋ธ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

ONNX ์—์„œ ๋‹ค์–‘ํ•œ ํ˜•์‹์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” ๊ธฐ๋Šฅ ๋•๋ถ„์ž…๋‹ˆ๋‹ค:

  • ๊ณตํ†ต ๋ชจ๋ธ ํ‘œํ˜„: ONNX ์€ ๊ณตํ†ต ์—ฐ์‚ฐ์ž ์ง‘ํ•ฉ(์ปจ๋ณผ๋ฃจ์…˜, ๋ ˆ์ด์–ด ๋“ฑ)๊ณผ ํ‘œ์ค€ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ํ•ด๋‹น ๋ชจ๋ธ์˜ ์•„ํ‚คํ…์ฒ˜์™€ ๊ฐ€์ค‘์น˜๊ฐ€ ์ด ๊ณตํ†ต ํ‘œํ˜„์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ†ต์ผ์„ฑ์„ ํ†ตํ•ด ONNX ์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ๋ชจ๋ธ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ: ONNX ์—์„œ๋Š” ์šด์˜์ž๋ฅผ ์œ„ํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ‘œ์ค€์ด ๋ฐœ์ „ํ•˜๋”๋ผ๋„ ์ด์ „ ๋ฒ„์ „์—์„œ ๋งŒ๋“  ๋ชจ๋ธ์„ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์€ ๋ชจ๋ธ์ด ๋น ๋ฅด๊ฒŒ ๊ตฌ์‹์ด ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

  • ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ํ‘œํ˜„: ONNX ์€ ๋ชจ๋ธ์„ ๊ณ„์‚ฐ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋Š” ๋จธ์‹  ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ณดํŽธ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ, ๋…ธ๋“œ๋Š” ์—ฐ์‚ฐ ๋˜๋Š” ๊ณ„์‚ฐ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์—์ง€๋Š” ๊ทธ ์‚ฌ์ด๋ฅผ ํ๋ฅด๋Š” ํ…์„œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ํ˜•์‹์€ ๋ชจ๋ธ์„ ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์— ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋„๊ตฌ ๋ฐ ์—์ฝ”์‹œ์Šคํ…œ: ONNX ์—๋Š” ๋ชจ๋ธ ๋ณ€ํ™˜, ์‹œ๊ฐํ™” ๋ฐ ์ตœ์ ํ™”๋ฅผ ์ง€์›ํ•˜๋Š” ํ’๋ถ€ํ•œ ๋„๊ตฌ ์ƒํƒœ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ONNX ๋ชจ๋ธ๋กœ ๋” ์‰ฝ๊ฒŒ ์ž‘์—…ํ•˜๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„์— ๋ชจ๋ธ์„ ์›ํ™œํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ๋ฒ• ONNX

YOLO11 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ONNX ๋ชจ๋ธ์ด ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋””์— ์‚ฌ์šฉ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

CPU ๋ฐฐํฌ

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

์ง€์›๋˜๋Š” ๋ฐฐํฌ ์˜ต์…˜

ONNX ๋ชจ๋ธ์€ ์ผ๋ฐ˜์ ์œผ๋กœ CPU์—์„œ ์‚ฌ์šฉ๋˜์ง€๋งŒ ๋‹ค์Œ ํ”Œ๋žซํผ์—๋„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • GPU ๊ฐ€์†: ONNX ์€ GPU ๊ฐ€์†, ํŠนํžˆ NVIDIA CUDA ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋†’์€ ์—ฐ์‚ฐ ๋Šฅ๋ ฅ์ด ์š”๊ตฌ๋˜๋Š” ์ž‘์—…์„ NVIDIA GPU์—์„œ ํšจ์œจ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—ฃ์ง€ ๋ฐ ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค: ONNX ๋Š” ์—ฃ์ง€ ๋ฐ ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค๋กœ ํ™•์žฅ๋˜์–ด ์˜จ๋””๋ฐ”์ด์Šค ๋ฐ ์‹ค์‹œ๊ฐ„ ์ถ”๋ก  ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋ณ๊ณ  ์—ฃ์ง€ ํ•˜๋“œ์›จ์–ด์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค.

  • ์›น ๋ธŒ๋ผ์šฐ์ €: ONNX ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ์‹คํ–‰ํ•˜์—ฌ ๋Œ€ํ™”ํ˜• ๋ฐ ๋™์  ์›น ๊ธฐ๋ฐ˜ AI ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YOLO11 ๋ชจ๋ธ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ ONNX

YOLO11 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ชจ๋ธ ํ˜ธํ™˜์„ฑ ๋ฐ ๋ฐฐํฌ ์œ ์—ฐ์„ฑ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์น˜

ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

์„ค์น˜

# Install the required package for YOLO11
pip install ultralytics

์„ค์น˜ ๊ณผ์ •๊ณผ ๊ด€๋ จ๋œ ์ž์„ธํ•œ ์ง€์นจ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” YOLO11 ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. YOLO11 ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•๊ณผ ํŒ์„ ํ™•์ธํ•˜์„ธ์š”.

์‚ฌ์šฉ๋ฒ•

์‚ฌ์šฉ ์ง€์นจ์„ ์‚ดํŽด๋ณด๊ธฐ ์ „์— Ultralytics ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ YOLO11 ๋ชจ๋ธ์„ ํ™•์ธํ•˜์„ธ์š”. ํ”„๋กœ์ ํŠธ ์š”๊ตฌ ์‚ฌํ•ญ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo11n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

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

๋‚ด๋ณด๋‚ด๊ธฐ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚ด๋ณด๋‚ด๊ธฐ ๊ด€๋ จ ๋ฌธ์„œ ํŽ˜์ด์ง€(Ultralytics )๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‚ด๋ณด๋‚ธ YOLO11 ONNX ๋ชจ๋ธ ๋ฐฐํฌ

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

  • ONNX ๋Ÿฐํƒ€์ž„ Python API ๋ฌธ์„œ: ์ด ๊ฐ€์ด๋“œ๋Š” ONNX ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ONNX ๋ชจ๋ธ์„ ๋กœ๋“œํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•„์ˆ˜ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค์— ๋ฐฐํฌ: ์ด ๋ฌธ์„œ ํŽ˜์ด์ง€์—์„œ ONNX ๋ชจ๋ธ์„ ์—ฃ์ง€์— ๋ฐฐํฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ์˜ˆ์‹œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

  • ONNX GitHub์˜ ํŠœํ† ๋ฆฌ์–ผ: ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ONNX ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ๋‹ค๋ฃจ๋Š” ํฌ๊ด„์ ์ธ ์ž์Šต์„œ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.

์š”์•ฝ

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” Ultralytics YOLO11 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์ƒํ˜ธ ์šด์šฉ์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ONNX ๋Ÿฐํƒ€์ž„ ๋ฐ ONNX ๋ฐฐํฌ ์˜ต์…˜์— ๋Œ€ํ•ด์„œ๋„ ์†Œ๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ONNX ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋˜ํ•œ Ultralytics YOLO11 ํ†ตํ•ฉ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ํ†ตํ•ฉ ๊ฐ€์ด๋“œ ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”. ์œ ์šฉํ•œ ๋ฆฌ์†Œ์Šค์™€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋งŽ์ด ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Ultralytics ์„ ์‚ฌ์šฉํ•˜์—ฌ YOLO11 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

Ultralytics ์„ ์‚ฌ์šฉํ•˜์—ฌ YOLO11 ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”:

์‚ฌ์šฉ๋ฒ•

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to ONNX format
model.export(format="onnx")  # creates 'yolo11n.onnx'

# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")

# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to ONNX format
yolo export model=yolo11n.pt format=onnx  # creates 'yolo11n.onnx'

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

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

YOLO11 ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ONNX ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

YOLO11 ๋ชจ๋ธ ๋ฐฐํฌ์— ONNX ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํ”Œ๋žซํผ ๊ฐ„ ํ˜ธํ™˜์„ฑ: ONNX ๋Ÿฐํƒ€์ž„์€ Windows, macOS, Linux ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค์–‘ํ•œ ํ™˜๊ฒฝ์—์„œ ๋ชจ๋ธ์„ ์›ํ™œํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋“œ์›จ์–ด ๊ฐ€์†: ONNX ๋Ÿฐํƒ€์ž„์€ CPU, GPU ๋ฐ ์ „์šฉ ๊ฐ€์†๊ธฐ์— ๋Œ€ํ•œ ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™”๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ณ ์„ฑ๋Šฅ ์ถ”๋ก ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋ ˆ์ž„์›Œํฌ ์ƒํ˜ธ ์šด์šฉ์„ฑ: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ•™์Šต๋œ ๋ชจ๋ธ์€ PyTorch ๋˜๋Š” TensorFlow ๊ฐ™์€ ์ธ๊ธฐ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ํ•™์Šต๋œ ๋ชจ๋ธ์„ ONNX ํ˜•์‹์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜๊ณ  ONNX ๋Ÿฐํƒ€์ž„์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ONNX ๋Ÿฐํƒ€์ž„ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ONNX ์œผ๋กœ ๋‚ด๋ณด๋‚ธ YOLO11 ๋ชจ๋ธ์—๋Š” ์–ด๋–ค ๋ฐฐํฌ ์˜ต์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

YOLO11 ONNX ์œผ๋กœ ๋‚ด๋ณด๋‚ธ ๋ชจ๋ธ์€ ๋‹ค์Œ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • CPU: ์ตœ์ ํ™”๋œ CPU ์ถ”๋ก ์„ ์œ„ํ•ด ONNX ๋Ÿฐํƒ€์ž„์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • GPU: ๊ณ ์„ฑ๋Šฅ GPU ๊ฐ€์†์„ ์œ„ํ•ด NVIDIA CUDA ํ™œ์šฉ.
  • ์—ฃ์ง€ ๋””๋ฐ”์ด์Šค: ์—ฃ์ง€ ๋ฐ ๋ชจ๋ฐ”์ผ ๋””๋ฐ”์ด์Šค์—์„œ ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์˜จ๋””๋ฐ”์ด์Šค ์ถ”๋ก ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์›น ๋ธŒ๋ผ์šฐ์ €: ๋Œ€ํ™”ํ˜• ์›น ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ์›น ๋ธŒ๋ผ์šฐ์ € ๋‚ด์—์„œ ์ง์ ‘ ๋ชจ๋ธ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ชจ๋ธ ๋ฐฐํฌ ์˜ต์…˜์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics YOLO11 ๋ชจ๋ธ์— ONNX ํ˜•์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Ultralytics YOLO11 ๋ชจ๋ธ์— ONNX ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์ƒํ˜ธ ์šด์šฉ์„ฑ: ONNX ์„ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ๋จธ์‹  ๋Ÿฌ๋‹ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„์— ๋ชจ๋ธ์„ ์›ํ™œํ•˜๊ฒŒ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ตœ์ ํ™”: ONNX ๋Ÿฐํƒ€์ž„์€ ํ•˜๋“œ์›จ์–ด๋ณ„ ์ตœ์ ํ™”๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์œ ์—ฐ์„ฑ: ONNX ์€ ๋‹ค์–‘ํ•œ ๋ฐฐํฌ ํ™˜๊ฒฝ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์ˆ˜์ • ์—†์ด ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๋™์ผํ•œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

YOLO11 ๋ชจ๋ธ ๋‚ด๋ณด๋‚ด๊ธฐ์— ๋Œ€ํ•œ ์ข…ํ•ฉ ๊ฐ€์ด๋“œ( ONNX )๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

YOLO11 ๋ชจ๋ธ์„ ONNX ์œผ๋กœ ๋‚ด๋ณด๋‚ผ ๋•Œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

YOLO11 ๋ชจ๋ธ์„ ONNX ์œผ๋กœ ๋‚ด๋ณด๋‚ผ ๋•Œ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์ข…์†์„ฑ ๋˜๋Š” ์ง€์›๋˜์ง€ ์•Š๋Š” ์ž‘์—…๊ณผ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์„ธ์š”:

  1. ํ•„์š”ํ•œ ์ข…์†์„ฑ์˜ ์˜ฌ๋ฐ”๋ฅธ ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ์ง€์›๋˜๋Š” ์‚ฌ์—…์ž ๋ฐ ๊ธฐ๋Šฅ์€ ๊ณต์‹ ๋ฌธ์„œ(ONNX )๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  3. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฒ€ํ† ํ•˜์—ฌ ๋‹จ์„œ๋ฅผ ์ฐพ๊ณ  Ultralytics ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฌธ์ œ๊ฐ€ ์ง€์†๋˜๋ฉด Ultralytics ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์—ฌ ์ถ”๊ฐ€ ์ง€์›์„ ๋ฐ›์œผ์„ธ์š”.

10๊ฐœ์›” ์ „ ์ƒ์„ฑ๋จ โœ๏ธ 2๊ฐœ์›” ์ „ ์—…๋ฐ์ดํŠธ๋จ

๋Œ“๊ธ€