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

Ultralytics YOLO ๋ชจ๋ธ์— ๋Œ€ํ•œ OpenVINO ์ถ”๋ก  ์ตœ์ ํ™”ํ•˜๊ธฐ: ์ข…ํ•ฉ ๊ฐ€์ด๋“œ

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

์†Œ๊ฐœ

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

์ง€์—ฐ ์‹œ๊ฐ„ ์ตœ์ ํ™”

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

์ง€์—ฐ ์‹œ๊ฐ„ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ฃผ์š” ์ „๋žต:

  • ๋””๋ฐ”์ด์Šค๋‹น ๋‹จ์ผ ์ถ”๋ก : ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๋Š” ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ๋””๋ฐ”์ด์Šค๋‹น ํ•œ ๋ฒˆ์— ํ•œ ๋ฒˆ๋งŒ ์ถ”๋ก ํ•˜๋„๋ก ์ œํ•œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋™์‹œ์„ฑ์ด ์ฆ๊ฐ€ํ•˜๋ฉด ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
  • ํ•˜์œ„ ์žฅ์น˜ ํ™œ์šฉ: ๋ฉ€ํ‹ฐ ์†Œ์ผ“ CPU ๋˜๋Š” ๋ฉ€ํ‹ฐ ํƒ€์ผ GPU์™€ ๊ฐ™์€ ์žฅ์น˜๋Š” ๋‚ด๋ถ€ ํ•˜์œ„ ์žฅ์น˜๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€์—ฐ ์‹œ๊ฐ„ ์ฆ๊ฐ€๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • OpenVINO ์„ฑ๋Šฅ ํžŒํŠธ: OpenVINO ์˜ ov::hint::PerformanceMode::LATENCY ์— ๋Œ€ํ•œ ov::hint::performance_mode ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋ธ ์ปดํŒŒ์ผ ์ค‘ ์„ฑ๋Šฅ ํŠœ๋‹์ด ๊ฐ„์†Œํ™”๋˜์–ด ๊ธฐ๊ธฐ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ๋ฏธ๋ž˜์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ถ”๋ก  ์ง€์—ฐ ์‹œ๊ฐ„ ๊ด€๋ฆฌ:

  • ๋ชจ๋ธ ์บ์‹ฑ: ์ง€์—ฐ ์‹œ๊ฐ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ชจ๋ธ ๋กœ๋“œ ๋ฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์ค„์ด๋ ค๋ฉด ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ๋ชจ๋ธ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์บ์‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๊ฒฝ์šฐ ์ผ๋ฐ˜์ ์œผ๋กœ CPU๊ฐ€ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ชจ๋ธ ๋กœ๋“œ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ๋งคํ•‘ ๋Œ€ ์ฝ๊ธฐ: ๋กœ๋“œ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด OpenVINO ์—์„œ ๋ชจ๋ธ ์ฝ๊ธฐ๋ฅผ ๋งคํ•‘์œผ๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ชจ๋ธ์ด ์ด๋™์‹ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ธŒ์— ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ov::enable_mmap(false) ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋‹ค์‹œ ์ฝ๊ธฐ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž๋™ ์žฅ์น˜ ์„ ํƒ: ์ด ๋ชจ๋“œ๋Š” CPU ์—์„œ ์ถ”๋ก ์„ ์‹œ์ž‘ํ•˜๊ณ  ์ค€๋น„๊ฐ€ ๋˜๋ฉด ๊ฐ€์†๊ธฐ๋กœ ์ „ํ™˜ํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์ถ”๋ก  ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์›ํ™œํ•˜๊ฒŒ ์ค„์ž…๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”

์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”๋Š” ์ˆ˜๋งŽ์€ ์ถ”๋ก  ์š”์ฒญ์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ, ๊ฐœ๋ณ„ ์š”์ฒญ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ์ €ํ•˜์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹:

  1. OpenVINO ์„ฑ๋Šฅ ํžŒํŠธ: ์„ฑ๋Šฅ ํžŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋””๋ฐ”์ด์Šค์—์„œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋†’์€ ์ˆ˜์ค€์˜ ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

    import openvino.properties.hint as hints
    
    config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
    compiled_model = core.compile_model(model, "GPU", config)
    
  2. ๋ช…์‹œ์  ๋ฐฐ์น˜ ๋ฐ ์ŠคํŠธ๋ฆผ: ๊ณ ๊ธ‰ ์„ฑ๋Šฅ ํŠœ๋‹์„ ์œ„ํ•œ ๋ช…์‹œ์  ์ผ๊ด„ ์ฒ˜๋ฆฌ ๋ฐ ์ŠคํŠธ๋ฆผ ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ๋ณด๋‹ค ์„ธ๋ถ„ํ™”๋œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ฒ˜๋ฆฌ๋Ÿ‰ ์ง€ํ–ฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„:

์ฒ˜๋ฆฌ๋Ÿ‰์„ ์ตœ๋Œ€ํ™”ํ•˜๋ ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

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

๋‹ค์ค‘ ์žฅ์น˜ ์‹คํ–‰:

OpenVINO์˜ ๋ฉ€ํ‹ฐ ๋””๋ฐ”์ด์Šค ๋ชจ๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€์˜ ๋””๋ฐ”์ด์Šค ๊ด€๋ฆฌ ์—†์ด๋„ ๋””๋ฐ”์ด์Šค ๊ฐ„ ์ถ”๋ก  ์š”์ฒญ์˜ ๊ท ํ˜•์„ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜์—ฌ ์ฒ˜๋ฆฌ๋Ÿ‰ ํ™•์žฅ์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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

์ž์„ธํ•œ ๊ธฐ์ˆ  ์ •๋ณด์™€ ์ตœ์‹  ์—…๋ฐ์ดํŠธ๋Š” OpenVINO ๋ฌธ์„œ์™€ Ultralytics YOLO ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค์—์„œ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹ฌ์ธต์ ์ธ ๊ฐ€์ด๋“œ, ํŠœํ† ๋ฆฌ์–ผ ๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


๋ชจ๋ธ์ด ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๋‹จ์ˆœํžˆ ๊ตฌ์„ฑ์„ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ดํ•ดํ•˜๊ณ  ์ •๋ณด์— ์ž…๊ฐํ•œ ๊ฒฐ์ •์„ ๋‚ด๋ฆฌ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ์‘๋‹ต์„ ์ตœ์ ํ™”ํ•˜๋“  ๋Œ€๊ทœ๋ชจ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ทน๋Œ€ํ™”ํ•˜๋“ , Ultralytics YOLO ๋ชจ๋ธ๊ณผ OpenVINO ์˜ ์กฐํ•ฉ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ ์„ฑ๋Šฅ AI ์†”๋ฃจ์…˜์„ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ํˆดํ‚ท์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

OpenVINO ์„ ์‚ฌ์šฉํ•˜์—ฌ ์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์œ„ํ•ด Ultralytics YOLO ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

์งง์€ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์œ„ํ•ด Ultralytics YOLO ๋ชจ๋ธ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ „๋žต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค:

  1. ์žฅ์น˜๋‹น ๋‹จ์ผ ์ถ”๋ก : ์ง€์—ฐ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋””๋ฐ”์ด์Šค๋‹น ์ถ”๋ก ์„ ํ•œ ๋ฒˆ์— ํ•œ ๋ฒˆ์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.
  2. ํ•˜์œ„ ์žฅ์น˜ ํ™œ์šฉ: ์ง€์—ฐ ์‹œ๊ฐ„ ์ฆ๊ฐ€๋ฅผ ์ตœ์†Œํ™”ํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ€ํ‹ฐ ์†Œ์ผ“ CPU ๋˜๋Š” ๋ฉ€ํ‹ฐ ํƒ€์ผ GPU์™€ ๊ฐ™์€ ์žฅ์น˜๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”.
  3. OpenVINO ์„ฑ๋Šฅ ํžŒํŠธ: OpenVINO ์‚ฌ์šฉ ov::hint::PerformanceMode::LATENCY ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ ์ปดํŒŒ์ผ ์ค‘์— ๋””๋ฐ”์ด์Šค์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ๊ฐ„ํŽธํ•˜๊ฒŒ ํŠœ๋‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์—ฐ ์‹œ๊ฐ„ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ๋ณด๋‹ค ์‹ค์šฉ์ ์ธ ํŒ์€ ๊ฐ€์ด๋“œ์˜ ์ง€์—ฐ ์‹œ๊ฐ„ ์ตœ์ ํ™” ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Ultralytics YOLO ์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด OpenVINO ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

OpenVINO ์„ฑ๋Šฅ ์ €ํ•˜ ์—†์ด ๋””๋ฐ”์ด์Šค ๋ฆฌ์†Œ์Šค ํ™œ์šฉ๋„๋ฅผ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ Ultralytics YOLO ๋ชจ๋ธ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ฃผ์š” ์ด์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • ์„ฑ๋Šฅ ํžŒํŠธ: ์—ฌ๋Ÿฌ ๊ธฐ๊ธฐ์—์„œ ๊ฐ„๋‹จํ•˜๊ณ  ๋†’์€ ์ˆ˜์ค€์˜ ์„ฑ๋Šฅ ํŠœ๋‹์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ช…์‹œ์  ์ผ๊ด„ ์ฒ˜๋ฆฌ ๋ฐ ์ŠคํŠธ๋ฆผ: ๊ณ ๊ธ‰ ์„ฑ๋Šฅ์„ ์œ„ํ•œ ๋ฏธ์„ธ ์กฐ์ •.
  • ๋ฉ€ํ‹ฐ ๋””๋ฐ”์ด์Šค ์‹คํ–‰: ์ž๋™ํ™”๋œ ์ถ”๋ก  ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜์ค€ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„ํŽธํ•ด์ง‘๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์˜ˆ์‹œ:

import openvino.properties.hint as hints

config = {hints.performance_mode: hints.PerformanceMode.THROUGHPUT}
compiled_model = core.compile_model(model, "GPU", config)

์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ƒ์„ธ ๊ฐ€์ด๋“œ์˜ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™” ์„น์…˜์—์„œ ํ™•์ธํ•˜์„ธ์š”.

OpenVINO ์—์„œ ์ฒซ ๋ฒˆ์งธ ์ถ”๋ก  ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

์ฒซ ๋ฒˆ์งธ ์ถ”๋ก  ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๋ ค๋ฉด ๋‹ค์Œ ์‚ฌ๋ก€๋ฅผ ๊ณ ๋ คํ•˜์„ธ์š”:

  1. ๋ชจ๋ธ ์บ์‹ฑ: ๋ชจ๋ธ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œ ๋ฐ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ์ค„์ž…๋‹ˆ๋‹ค.
  2. ๋ชจ๋ธ ๋งคํ•‘ ๋Œ€ ์ฝ๊ธฐ: ๋งคํ•‘ ์‚ฌ์šฉ(ov::enable_mmap(true))๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ฝ๊ธฐ(ov::enable_mmap(false)) ๋ชจ๋ธ์ด ์ด๋™์‹ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๋“œ๋ผ์ด๋ธŒ์— ์žˆ๋Š” ๊ฒฝ์šฐ.
  3. ์ž๋™ ์žฅ์น˜ ์„ ํƒ: ์ž๋™ ๋ชจ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ CPU ์ถ”๋ก ์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ๊ฐ€์†๊ธฐ๋กœ ์›ํ™œํ•˜๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ถ”๋ก  ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ „๋žต์€ ์ฒซ ๋ฒˆ์งธ ์ถ”๋ก  ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๊ด€๋ฆฌ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š” Ultralytics YOLO ์™€ OpenVINO?

์ง€์—ฐ ์‹œ๊ฐ„๊ณผ ์ฒ˜๋ฆฌ๋Ÿ‰ ์ตœ์ ํ™”์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋ ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

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

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

OpenVINO ์™ธ์— ๋‹ค๋ฅธ AI ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ•จ๊ป˜ Ultralytics YOLO ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์˜ˆ, Ultralytics YOLO ๋ชจ๋ธ์€ ๋งค์šฐ ๋‹ค์žฌ๋‹ค๋Šฅํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ AI ํ”„๋ ˆ์ž„์›Œํฌ์™€ ํ†ตํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ต์…˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

Ultralytics ํ†ตํ•ฉ ํŽ˜์ด์ง€์—์„œ ๋” ๋งŽ์€ ํ†ตํ•ฉ ๊ธฐ๋Šฅ์„ ์‚ดํŽด๋ณด์„ธ์š”.

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

๋Œ“๊ธ€