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

Ultralytics ์†”๋ฃจ์…˜ ์‹ค์ œ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ YOLO11 ํ™œ์šฉํ•˜๊ธฐ

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

Ultralytics ์†”๋ฃจ์…˜ ์ธ๋„ค์ผ



Watch: ๋ช…๋ น์ค„์—์„œ Ultralytics ์†”๋ฃจ์…˜ ์‹คํ–‰ ๋ฐฉ๋ฒ• (CLI) | Ultralytics YOLO11 ๐Ÿš€

์†”๋ฃจ์…˜

๋‹ค์Œ์€ ๋ฉ‹์ง„ ์ปดํ“จํ„ฐ ๋น„์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—„์„ ๋œ Ultralytics ์†”๋ฃจ์…˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

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

์†”๋ฃจ์…˜ ์ธ์ˆ˜

์ธ์ˆ˜ ์œ ํ˜• ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
model str None Ultralytics YOLO ๋ชจ๋ธ ํŒŒ์ผ ๊ฒฝ๋กœ.
region list [(20, 400), (1260, 400)] ๊ณ„์‚ฐ ์˜์—ญ์„ ์ •์˜ํ•˜๋Š” ํฌ์ธํŠธ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
show_in bool True ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์— ์ธ ์นด์šดํŠธ๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.
show_out bool True ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์— ์•„์›ƒ ์นด์šดํŠธ๋ฅผ ํ‘œ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค.
analytics_type str line ๊ทธ๋ž˜ํ”„ ์œ ํ˜•, ์ฆ‰., line, bar, area๋˜๋Š” pie.
colormap int cv2.COLORMAP_JET ํžˆํŠธ๋งต์— ์‚ฌ์šฉํ•  ์ปฌ๋Ÿฌ๋งต์ž…๋‹ˆ๋‹ค.
json_file str None ๋ชจ๋“  ์ฃผ์ฐจ ์ขŒํ‘œ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ JSON ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.
up_angle float 145.0 '์œ„๋กœ' ํฌ์ฆˆ์— ๋Œ€ํ•œ ๊ฐ๋„ ์ž„๊ณ„๊ฐ’์ž…๋‹ˆ๋‹ค.
kpts list[int, int, int] [6, 8, 10] ์šด๋™ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉ๋˜๋Š” ํ‚คํฌ์ธํŠธ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ‚คํฌ์ธํŠธ๋Š” ํŒ”๊ตฝํ˜€ํŽด๊ธฐ, ํ’€์—…, ์Šค์ฟผํŠธ, ๋ณต๊ทผ ์šด๋™๊ณผ ๊ฐ™์€ ์šด๋™์˜ ์–ด๊นจ, ํŒ”๊ฟˆ์น˜, ์†๋ชฉ ๋“ฑ์˜ ์‹ ์ฒด ๊ด€์ ˆ ๋˜๋Š” ๋ถ€์œ„์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.
down_angle float 90.0 '์•„๋ž˜' ํฌ์ฆˆ์— ๋Œ€ํ•œ ๊ฐ๋„ ์ž„๊ณ„๊ฐ’์ž…๋‹ˆ๋‹ค.
blur_ratio float 0.5 ํ๋ฆผ ๊ฐ•๋„์˜ ๋ฐฑ๋ถ„์œจ์„ ๋ฒ”์œ„ ๋‚ด ๊ฐ’์œผ๋กœ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. 0.1 - 1.0.
crop_dir str "cropped-detections" ์ž˜๋ฆฐ ๊ฐ์ง€๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
records int 5 ๋ณด์•ˆ ๊ฒฝ๋ณด ์‹œ์Šคํ…œ์œผ๋กœ ์ด๋ฉ”์ผ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์ด ๊ฐ์ง€ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.
vision_point tuple[int, int] (50, 50) ๋น„์ „์•„์ด ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ถ”์ ํ•˜๊ณ  ๊ฒฝ๋กœ๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค.
tracker str 'botsort.yaml' ์‚ฌ์šฉํ•  ์ถ”์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ, bytetrack.yaml ๋˜๋Š” botsort.yaml.
conf float 0.3 ํƒ์ง€ ์‹ ๋ขฐ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋‚ฎ์„์ˆ˜๋ก ๋” ๋งŽ์€ ๊ฐœ์ฒด๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜คํƒ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
iou float 0.5 ์ค‘๋ณต ๊ฐ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ IoU(Intersection over Union) ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
classes list None ํด๋ž˜์Šค ์ธ๋ฑ์Šค๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด classes=[0, 2, 3] ์ง€์ •๋œ ํด๋ž˜์Šค๋งŒ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
verbose bool True ์ถ”์  ๊ฒฐ๊ณผ์˜ ํ‘œ์‹œ๋ฅผ ์ œ์–ดํ•˜์—ฌ ์ถ”์ ๋œ ๊ฐœ์ฒด์˜ ์‹œ๊ฐ์  ์ถœ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
device str None ์ถ”๋ก ํ•  ์žฅ์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ, cpu, cuda:0 ๋˜๋Š” 0). ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ธ ์‹คํ–‰์„ ์œ„ํ•ด CPU, ํŠน์ • GPU, ๋˜๋Š” ๊ธฐํƒ€ ์ปดํ“จํŒ… ์žฅ์น˜ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
show bool False ๋งŒ์•ฝ True๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ฃผ์„์ด ๋‹ฌ๋ฆฐ ์ด๋ฏธ์ง€ ๋˜๋Š” ๋™์˜์ƒ์ด ์ฐฝ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๋˜๋Š” ํ…Œ์ŠคํŠธ ์ค‘์— ์ฆ‰๊ฐ์ ์ธ ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
line_width None or int None ๊ฒฝ๊ณ„ ์ƒ์ž์˜ ์„  ๋„ˆ๋น„๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ None๋ฅผ ํด๋ฆญํ•˜๋ฉด ์ด๋ฏธ์ง€ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์„  ๋„ˆ๋น„๊ฐ€ ์ž๋™์œผ๋กœ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค. ์„ ๋ช…๋„๋ฅผ ์œ„ํ•œ ์‹œ๊ฐ์  ์‚ฌ์šฉ์ž ์ง€์ • ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ธ์ˆ˜ ์ถ”์ 

์†”๋ฃจ์…˜์€ ๋˜ํ•œ ๋‹ค์Œ์˜ ์ฃผ์žฅ ์ค‘ ์ผ๋ถ€๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. track์™€ ๊ฐ™์€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜์—ฌ conf, line_width, tracker, model, show, verbose ๊ทธ๋ฆฌ๊ณ  classes.

์ธ์ˆ˜ ์œ ํ˜• ๊ธฐ๋ณธ๊ฐ’ ์„ค๋ช…
tracker str 'botsort.yaml' ์‚ฌ์šฉํ•  ์ถ”์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ, bytetrack.yaml ๋˜๋Š” botsort.yaml.
conf float 0.3 ํƒ์ง€ ์‹ ๋ขฐ ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋‚ฎ์„์ˆ˜๋ก ๋” ๋งŽ์€ ๊ฐœ์ฒด๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์˜คํƒ์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
iou float 0.5 ์ค‘๋ณต ๊ฐ์ง€๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•œ IoU( Intersection over Union ) ์ž„๊ณ„๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
classes list None ํด๋ž˜์Šค ์ธ๋ฑ์Šค๋ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด classes=[0, 2, 3] ์ง€์ •๋œ ํด๋ž˜์Šค๋งŒ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.
verbose bool True ์ถ”์  ๊ฒฐ๊ณผ์˜ ํ‘œ์‹œ๋ฅผ ์ œ์–ดํ•˜์—ฌ ์ถ”์ ๋œ ๊ฐœ์ฒด์˜ ์‹œ๊ฐ์  ์ถœ๋ ฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
device str None ์ถ”๋ก ํ•  ์žฅ์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ, cpu, cuda:0 ๋˜๋Š” 0). ์‚ฌ์šฉ์ž๊ฐ€ ๋ชจ๋ธ ์‹คํ–‰์„ ์œ„ํ•ด CPU, ํŠน์ • GPU, ๋˜๋Š” ๊ธฐํƒ€ ์ปดํ“จํŒ… ์žฅ์น˜ ์ค‘์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜์• ๋…ธํ…Œ์ดํ„ฐ ์‚ฌ์šฉ๋ฒ•

๋ชจ๋“  Ultralytics ์†”๋ฃจ์…˜์€ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. SolutionAnnotator๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฉ”์ธ Annotator ํด๋ž˜์Šค์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

๋ฐฉ๋ฒ• ๋ฐ˜ํ™˜ ์œ ํ˜• ์„ค๋ช…
draw_region() None ์ง€์ •๋œ ์ , ์ƒ‰์ƒ ๋ฐ ๋‘๊ป˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์—ญ์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
queue_counts_display() None ์ง€์ •ํ•œ ์ง€์—ญ์˜ ๋Œ€๊ธฐ์—ด ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
display_analytics() None ์ฃผ์ฐจ์žฅ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ํ†ต๊ณ„๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
estimate_pose_angle() float ๊ฐœ์ฒด ํฌ์ฆˆ์—์„œ ์„ธ ์  ์‚ฌ์ด์˜ ๊ฐ๋„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
draw_specific_points() None ์ด๋ฏธ์ง€์— ํŠน์ • ํ‚คํฌ์ธํŠธ๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
plot_workout_information() None ์ด๋ฏธ์ง€์— ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ํ…์ŠคํŠธ ์ƒ์ž๋ฅผ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
plot_angle_and_count_and_stage() None ์šด๋™ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•ด ๊ฐ๋„, ๊ฑธ์Œ ์ˆ˜, ๋‹จ๊ณ„๋ฅผ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
plot_distance_and_line() None ๊ตฌ์‹ฌ์  ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ํ‘œ์‹œํ•˜๊ณ  ์„ ์œผ๋กœ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
display_objects_labels() None ๊ฐ์ฒด ํด๋ž˜์Šค ๋ ˆ์ด๋ธ”๋กœ ๊ฒฝ๊ณ„ ์ƒ์ž์— ์ฃผ์„์„ ๋‹ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
seg_bbox() None ๋ถ„ํ• ๋œ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์œค๊ณฝ์„ ๊ทธ๋ฆฌ๊ณ  ์„ ํƒ์ ์œผ๋กœ ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
sweep_annotator() None ์ˆ˜์ง ์Šค์œ• ๋ผ์ธ๊ณผ ์„ ํƒ์  ๋ ˆ์ด๋ธ”์„ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
visioneye() None ๊ฐ์ฒด ์ค‘์‹ฌ์„ ์‹œ๊ฐ์  '๋ˆˆ' ์ง€์ ์— ๋งคํ•‘ํ•˜๊ณ  ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
circle_label() None ๊ฒฝ๊ณ„ ์ƒ์ž ๋Œ€์‹  ์›ํ˜• ๋ ˆ์ด๋ธ”์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
text_label() None ๊ฒฝ๊ณ„ ์ƒ์ž ๋Œ€์‹  ์ง์‚ฌ๊ฐํ˜• ๋ ˆ์ด๋ธ”์„ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜ ๊ฒฐ๊ณผ ์ž‘์—…

๋ชจ๋“  ์†”๋ฃจ์…˜ ํ˜ธ์ถœ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SolutionResults ๊ฐœ์ฒด์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐœ์ฒด ๊ณ„์‚ฐ์˜ ๊ฒฝ์šฐ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. incounts, outcounts๋ฐ classwise_counts.

์†”๋ฃจ์…˜ ๊ฒฐ๊ณผ

counter = solutions.ObjectCounter(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # model="yolo11n-obb.pt" for object counting with OBB model.
    # classes=[0, 2],           # count specific classes i.e. person and car with COCO pretrained model.
    # tracker="botsort.yaml"    # Choose trackers i.e "bytetrack.yaml"
)
results = counter.count(im0)
print(results.in_counts)  # display in_counts
print(results.out_counts)  # display out_counts

์ž์„ธํ•œ ๋‚ด์šฉ์€ SolutionResults ํด๋ž˜์Šค ๋ฌธ์„œ.

CLI ํ†ตํ•œ ์†”๋ฃจ์…˜ ์‚ฌ์šฉ

๋ช…๋ น ์ •๋ณด

๋Œ€๋ถ€๋ถ„์˜ ์†”๋ฃจ์…˜์€ ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

Count, Crop, Blur, Workout, Heatmap, Isegment, Visioneye, Speed, Queue, Analytics, Inference

๊ตฌ๋ฌธ

yolo SOLUTIONS SOLUTION_NAME ARGS
  • ์†”๋ฃจ์…˜์€ ํ•„์ˆ˜ ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.
  • ์†”๋ฃจ์…˜_์ด๋ฆ„ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค: ['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye'].
  • ARGS (์„ ํƒ ์‚ฌํ•ญ)์€ ์‚ฌ์šฉ์ž ์ง€์ • arg=value ์Œ๊ณผ ๊ฐ™์€ show_in=True๋ฅผ ํด๋ฆญํ•˜์—ฌ ๊ธฐ๋ณธ ์„ค์ •์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
yolo solutions count show=True  # for object counting

yolo solutions source="path/to/video/file.mp4"  # specify video file path

์†”๋ฃจ์…˜์— ๊ธฐ์—ฌํ•˜๊ธฐ

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

์‹œ์ž‘ํ•˜๋ ค๋ฉด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ(PR)๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์ด ๋‹ด๊ธด ๊ธฐ์—ฌ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”(๐Ÿ› ๏ธ). ์—ฌ๋Ÿฌ๋ถ„์˜ ๊ธฐ์—ฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค!

Ultralytics YOLO ์ƒํƒœ๊ณ„๋ฅผ ๋”์šฑ ๊ฒฌ๊ณ ํ•˜๊ณ  ๋‹ค์–‘ํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ•จ๊ป˜ ๋…ธ๋ ฅํ•ฉ์‹œ๋‹ค ๐Ÿ™!

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

์‹ค์‹œ๊ฐ„ ์˜ค๋ธŒ์ ํŠธ ์นด์šดํŒ…์„ ์œ„ํ•ด Ultralytics YOLO ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

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

๋ณด์•ˆ ์‹œ์Šคํ…œ์— Ultralytics YOLO ์„ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ด์ ์ด ์žˆ๋‚˜์š”?

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

๋Œ€๊ธฐ์—ด ๊ด€๋ฆฌ ์‹œ์Šคํ…œ( Ultralytics YOLO )์„ ๊ฐœ์„ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

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

Ultralytics YOLO ์„ ์šด๋™ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

์˜ˆ, Ultralytics YOLO11 ํ”ผํŠธ๋‹ˆ์Šค ๋ฃจํ‹ด์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ๋ถ„์„ํ•˜์—ฌ ์šด๋™์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์šด๋™ ํ˜•ํƒœ์™€ ์„ฑ๊ณผ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šด๋™ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ€์ด๋“œ๋ฅผ ์‚ดํŽด๋ณด๊ณ  YOLO11 ์„ ์‚ฌ์šฉํ•˜์—ฌ AI ๊ธฐ๋ฐ˜ ์šด๋™ ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

Ultralytics YOLO ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”๋ฅผ ์œ„ํ•œ ํžˆํŠธ ๋งต์„ ๋งŒ๋“œ๋Š” ๋ฐ ์–ด๋–ป๊ฒŒ ๋„์›€์ด ๋˜๋‚˜์š”?

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

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

๋Œ“๊ธ€