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

YOLOv10: Real-Time End-to-End Object Detection

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

NMS ์—†๋Š” ๊ต์œก์„ ์œ„ํ•œ YOLOv10 ์ผ๊ด€๋œ ์ด์ค‘ ํ• ๋‹น



Watch: Ultralytics | ๋ฆฌํ…Œ์ผ ๋ฐ์ดํ„ฐ์…‹์„ ์‚ฌ์šฉํ•˜์—ฌ SKU-110k ๋ฐ์ดํ„ฐ์…‹์—์„œ YOLOv10์„ ํ›ˆ๋ จํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ฐœ์š”

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

์•„ํ‚คํ…์ฒ˜

YOLOv10์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ์ด์ „ YOLO ๋ชจ๋ธ์˜ ๊ฐ•์ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ํ˜์‹ ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. Backbone: Responsible for feature extraction, the backbone in YOLOv10 uses an enhanced version of CSPNet (Cross Stage Partial Network) to improve gradient flow and reduce computational redundancy.
  2. ๋ชฉ: ๋„ฅ์€ ๋‹ค์–‘ํ•œ ์Šค์ผ€์ผ์˜ ํŠน์ง•์„ ์ทจํ•ฉํ•˜์—ฌ ํ—ค๋“œ์— ์ „๋‹ฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํšจ๊ณผ์ ์ธ ๋ฉ€ํ‹ฐ์Šค์ผ€์ผ ํ”ผ์ฒ˜ ์œตํ•ฉ์„ ์œ„ํ•œ PAN(๊ฒฝ๋กœ ์ง‘๊ณ„ ๋„คํŠธ์›Œํฌ) ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ผ๋Œ€๋‹ค ํ—ค๋“œ: ํ›ˆ๋ จ ์ค‘์— ๊ฐ์ฒด๋‹น ์—ฌ๋Ÿฌ ์˜ˆ์ธก์„ ์ƒ์„ฑํ•˜์—ฌ ํ’๋ถ€ํ•œ ๊ฐ๋… ์‹ ํ˜ธ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ํ•™์Šต ์ •ํ™•๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  4. ์ผ๋Œ€์ผ ํ—ค๋“œ: ์ถ”๋ก  ์ค‘์— ๊ฐœ์ฒด๋‹น ํ•˜๋‚˜์˜ ์ตœ์  ์˜ˆ์ธก์„ ์ƒ์„ฑํ•˜์—ฌ NMS๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ง€์—ฐ ์‹œ๊ฐ„์„ ์ค„์ด๊ณ  ํšจ์œจ์„ฑ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

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

๋ชจ๋ธ ๋ณ€ํ˜•

YOLOv10์€ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๋ชจ๋ธ ์Šค์ผ€์ผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค:

  • YOLOv10-N: ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ทน๋„๋กœ ์ œํ•œ๋œ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ๋‚˜๋…ธ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
  • YOLOv10-S: ์†๋„์™€ ์ •ํ™•์„ฑ์˜ ๊ท ํ˜•์„ ๋งž์ถ˜ ์†Œํ˜• ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
  • YOLOv10-M: ์ผ๋ฐ˜ ์šฉ๋„์˜ ์ค‘๊ฐ„ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
  • YOLOv10-B: ์ •ํ™•๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ํญ์„ ๋Š˜๋ฆฐ ๊ท ํ˜• ์žกํžŒ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
  • YOLOv10-L: ๊ณ„์‚ฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ์ฆ๊ฐ€ํ•˜์ง€๋งŒ ์ •ํ™•๋„๊ฐ€ ๋” ๋†’์€ ๋Œ€ํ˜• ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
  • YOLOv10-X: ์ •ํ™•๋„์™€ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์ดˆ๋Œ€ํ˜• ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

์„ฑ๋Šฅ

YOLOv10์€ ์ •ํ™•๋„์™€ ํšจ์œจ์„ฑ ์ธก๋ฉด์—์„œ ์ด์ „ YOLO ๋ฒ„์ „ ๋ฐ ๊ธฐํƒ€ ์ตœ์‹  ๋ชจ๋ธ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, YOLOv10-S๋Š” COCO ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋น„์Šทํ•œ AP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” RT-DETR-R18๋ณด๋‹ค 1.8๋ฐฐ ๋น ๋ฅด๋ฉฐ, YOLOv10-B๋Š” ๋™์ผํ•œ ์„ฑ๋Šฅ์˜ YOLOv9-C๋ณด๋‹ค ์ง€์—ฐ ์‹œ๊ฐ„์ด 46% ์งง๊ณ  ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๊ฐ€ 25% ๋” ์ ์Šต๋‹ˆ๋‹ค.

๋ชจ๋ธ ์ž…๋ ฅ ํฌ๊ธฐ APval ํ”Œ๋กญ(G) ์ง€์—ฐ ์‹œ๊ฐ„(ms)
YOLOv10-N 640 38.5 6.7 1.84
YOLOv10-S 640 46.3 21.6 2.49
YOLOv10-M 640 51.1 59.1 4.74
YOLOv10-B 640 52.5 92.0 5.74
YOLOv10-L 640 53.2 120.3 7.28
YOLOv10-X 640 54.4 160.4 10.70

T4์—์„œ TensorRT FP16์œผ๋กœ ์ธก์ •ํ•œ ์ง€์—ฐ ์‹œ๊ฐ„ GPU.

๋ฐฉ๋ฒ•๋ก 

NMS ์—†๋Š” ๊ต์œก์„ ์œ„ํ•œ ์ผ๊ด€๋œ ์ด์ค‘ ํ• ๋‹น

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

Holistic Efficiency-Accuracy Driven Model Design

ํšจ์œจ์„ฑ ํ–ฅ์ƒ

  1. ๊ฒฝ๋Ÿ‰ ๋ถ„๋ฅ˜ ํ—ค๋“œ: ๊นŠ์ด๋ณ„๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ปจ๋ณผ๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„๋ฅ˜ ํ—ค๋“œ์˜ ๊ณ„์‚ฐ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
  2. ๊ณต๊ฐ„-์ฑ„๋„ ๋””์ปคํ”Œ๋ง ๋‹ค์šด ์ƒ˜ํ”Œ๋ง: ๊ณต๊ฐ„ ๊ฐ์†Œ์™€ ์ฑ„๋„ ๋ณ€์กฐ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ •๋ณด ์†์‹ค๊ณผ ๊ณ„์‚ฐ ๋น„์šฉ์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.
  3. ๋žญํฌ ๊ฐ€์ด๋“œ ๋ธ”๋ก ๋””์ž์ธ: ๋‚ด์žฌ์  ์Šคํ…Œ์ด์ง€ ๋ฆฌ๋˜๋˜์‹œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ธ”๋ก ์„ค๊ณ„๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ตœ์ ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํ™œ์šฉ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ •ํ™•๋„ ํ–ฅ์ƒ

  1. ๋Œ€ํ˜• ์ปค๋„ ์ปจ๋ณผ๋ฃจ์…˜: ์ˆ˜์šฉ ํ•„๋“œ๋ฅผ ํ™•๋Œ€ํ•˜์—ฌ ํŠน์ง• ์ถ”์ถœ ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  2. ๋ถ€๋ถ„์  ์ž๊ธฐ ์ฃผ์˜(PSA): ์ตœ์†Œํ•œ์˜ ์˜ค๋ฒ„ํ—ค๋“œ๋กœ ๊ธ€๋กœ๋ฒŒ ํ‘œํ˜„ ํ•™์Šต์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ž๊ธฐ ์ฃผ์˜ ๋ชจ๋“ˆ์„ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์‹คํ—˜ ๋ฐ ๊ฒฐ๊ณผ

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

๋น„๊ต

YOLOv10๊ณผ SOTA ๋ฌผ์ฒด ๊ฐ์ง€๊ธฐ ๋น„๊ต

๋‹ค๋ฅธ ์ตœ์ฒจ๋‹จ ํƒ์ง€๊ธฐ์™€ ๋น„๊ต:

  • YOLOv10-S / X๋Š” ๋น„์Šทํ•œ ์ •ํ™•๋„๋กœ RT-DETR-R18 / R101๋ณด๋‹ค 1.8๋ฐฐ / 1.3๋ฐฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.
  • YOLOv10-B๋Š” ๋™์ผํ•œ ์ •ํ™•๋„์—์„œ YOLOv9-C๋ณด๋‹ค ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๊ฐ€ 25% ๋” ์ ๊ณ  ์ง€์—ฐ ์‹œ๊ฐ„์ด 46% ๋” ์งง์Šต๋‹ˆ๋‹ค.
  • 1.8๋ฐฐ / 2.3๋ฐฐ ์ ์€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ YOLOv8-L / X๋ณด๋‹ค 0.3 AP / 0.5 AP ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋‹ค๋ฅธ ์ตœ์‹  ๋ชจ๋ธ๊ณผ YOLOv10 ๋ณ€ํ˜•์„ ์ž์„ธํžˆ ๋น„๊ตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

๋ชจ๋ธ ๋งค๊ฐœ๋ณ€์ˆ˜
(M)
ํ”Œ๋กญ
(G)
mAPval
50-95
์ง€์—ฐ ์‹œ๊ฐ„
(ms)
์ง€์—ฐ ์‹œ๊ฐ„ ์ „๋‹ฌ
(ms)
YOLOv6-3.0-N 4.7 11.4 37.0 2.69 1.76
๊ณจ๋“œ-YOLO-N 5.6 12.1 39.6 2.92 1.82
YOLOv8-N 3.2 8.7 37.3 6.16 1.77
YOLOv10-N 2.3 6.7 39.5 1.84 1.79
YOLOv6-3.0-S 18.5 45.3 44.3 3.42 2.35
Gold-YOLO-S 21.5 46.0 45.4 3.82 2.73
YOLOv8-S 11.2 28.6 44.9 7.07 2.33
YOLOv10-S 7.2 21.6 46.8 2.49 2.39
RT-DETR-R18 20.0 60.0 46.5 4.58 4.49
YOLOv6-3.0-M 34.9 85.8 49.1 5.63 4.56
Gold-YOLO-M 41.3 87.5 49.8 6.38 5.45
YOLOv8-M 25.9 78.9 50.6 9.50 5.09
YOLOv10-M 15.4 59.1 51.3 4.74 4.63
YOLOv6-3.0-L 59.6 150.7 51.8 9.02 7.90
๊ณจ๋“œ-YOLO-L 75.1 151.7 51.8 10.65 9.78
YOLOv8-L 43.7 165.2 52.9 12.39 8.06
RT-DETR-R50 42.0 136.0 53.1 9.20 9.07
YOLOv10-L 24.4 120.3 53.4 7.28 7.21
YOLOv8-X 68.2 257.8 53.9 16.86 12.83
RT-DETR-R101 76.0 259.0 54.3 13.71 13.58
YOLOv10-X 29.5 160.4 54.4 10.70 10.60

์‚ฌ์šฉ ์˜ˆ

YOLOv10์œผ๋กœ ์ƒˆ๋กœ์šด ์ด๋ฏธ์ง€๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค:

์˜ˆ

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

์‚ฌ์šฉ์ž ์ง€์ • ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ๋Œ€ํ•œ YOLOv10 ํ•™์Šต์šฉ:

์˜ˆ

from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

์ง€์›๋˜๋Š” ์ž‘์—… ๋ฐ ๋ชจ๋“œ

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

๋ชจ๋ธ ํŒŒ์ผ ์ด๋ฆ„ ์ž‘์—… ์ถ”๋ก  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ต์œก ๋‚ด๋ณด๋‚ด๊ธฐ
YOLOv10 yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt ๋ฌผ์ฒด ๊ฐ์ง€ โœ… โœ… โœ… โœ…

YOLOv10 ๋‚ด๋ณด๋‚ด๊ธฐ

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

๋‚ด๋ณด๋‚ด๊ธฐ ํ˜•์‹ Export Support Exported Model Inference ์ฐธ๊ณ 
TorchScript โœ… โœ… Standard PyTorch model format.
ONNX โœ… โœ… Widely supported for deployment.
OpenVINO โœ… โœ… Optimized for Intel hardware.
TensorRT โœ… โœ… Optimized for NVIDIA GPUs.
CoreML โœ… โœ… Limited to Apple devices.
TF SavedModel โœ… โœ… TensorFlow's standard model format.
TF GraphDef โœ… โœ… Legacy TensorFlow format.
TF Lite โœ… โœ… Optimized for mobile and embedded.
TF Edge TPU โœ… โœ… Specific to Google's Edge TPU devices.
TF.js โœ… โœ… JavaScript environment for browser use.
PaddlePaddle โŒ โŒ Popular in China; less global support.
NCNN โœ… โŒ Layer torch.topk not exists or registered

๊ฒฐ๋ก 

YOLOv10์€ ์ด์ „ YOLO ๋ฒ„์ „์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ณ  ํ˜์‹ ์ ์ธ ์„ค๊ณ„ ์ „๋žต์„ ํ†ตํ•ฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ๋ฌผ์ฒด ๊ฐ์ง€์˜ ์ƒˆ๋กœ์šด ํ‘œ์ค€์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‚ฎ์€ ๊ณ„์‚ฐ ๋น„์šฉ์œผ๋กœ ๋†’์€ ์ •ํ™•๋„๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ด ์ œํ’ˆ์€ ๋‹ค์–‘ํ•œ ์‹ค์ œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ด์ƒ์ ์ธ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

์ธ์šฉ ๋ฐ ๊ฐ์‚ฌ

๊ด‘๋ฒ”์œ„ํ•œ ์—ฐ๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์— ํฌ๊ฒŒ ๊ธฐ์—ฌํ•œ ์นญํ™”๋Œ€ํ•™๊ต์˜ YOLOv10 ์ €์ž๋“ค์—๊ฒŒ ๊ฐ์‚ฌ์˜ ๋ง์”€์„ ์ „ํ•ฉ๋‹ˆ๋‹ค. Ultralytics ํ”„๋ ˆ์ž„์›Œํฌ

@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

์ž์„ธํ•œ ๊ตฌํ˜„, ์•„ํ‚คํ…์ฒ˜ ํ˜์‹  ๋ฐ ์‹คํ—˜ ๊ฒฐ๊ณผ๋Š” ์นญํ™”๋Œ€ํ•™๊ต ํŒ€์˜ YOLOv10 ์—ฐ๊ตฌ ๋…ผ๋ฌธ๊ณผ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

YOLOv10์€ ๋ฌด์—‡์ด๋ฉฐ ์ด์ „ ๋ฒ„์ „( YOLO )๊ณผ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”?

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

YOLOv10์„ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๋ก  ์‹คํ–‰์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

์‰ฝ๊ฒŒ ์ถ”๋ก ํ•˜๋ ค๋ฉด Ultralytics YOLO Python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI)๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ YOLOv10์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค:

์˜ˆ

from ultralytics import YOLO

# Load the pre-trained YOLOv10-N model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

๋” ๋งŽ์€ ์‚ฌ์šฉ ์˜ˆ์‹œ๋ฅผ ๋ณด๋ ค๋ฉด ์‚ฌ์šฉ ์˜ˆ์‹œ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

YOLOv10์€ ์–ด๋–ค ๋ชจ๋ธ ๋ณ€ํ˜•์„ ์ œ๊ณตํ•˜๋ฉฐ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

YOLOv10์€ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ชจ๋ธ ๋ณ€ํ˜•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • YOLOv10-N: ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ทน๋„๋กœ ์ œํ•œ๋œ ํ™˜๊ฒฝ์— ์ ํ•ฉ
  • YOLOv10-S: ์†๋„์™€ ์ •ํ™•์„ฑ์˜ ๊ท ํ˜• ์žก๊ธฐ
  • YOLOv10-M: ๋ฒ”์šฉ ์‚ฌ์šฉ
  • YOLOv10-B: ํญ ์ฆ๊ฐ€๋กœ ์ •ํ™•๋„ ํ–ฅ์ƒ
  • YOLOv10-L: ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค ๋น„์šฉ์œผ๋กœ ๋†’์€ ์ •ํ™•๋„ ์ œ๊ณต
  • YOLOv10-X: ์ตœ๋Œ€ ์ •ํ™•๋„ ๋ฐ ์„ฑ๋Šฅ

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

YOLOv10์˜ NMS ์—†๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์€ ์–ด๋–ป๊ฒŒ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋‚˜์š”?

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

YOLOv10 ๋ชจ๋ธ์˜ ๋‚ด๋ณด๋‚ด๊ธฐ ์˜ต์…˜์€ ์–ด๋””์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋‚˜์š”?

TorchScript, ONNX, OpenVINO, TensorRT ๋“ฑ ์—ฌ๋Ÿฌ ๋‚ด๋ณด๋‚ด๊ธฐ ํ˜•์‹์„ ์ง€์›ํ•˜์ง€๋งŒ, ํ˜„์žฌ Ultralytics ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ๋‚ด๋ณด๋‚ด๊ธฐ ํ˜•์‹์€ ์ƒˆ๋กœ์šด ์ž‘์—…์œผ๋กœ ์ธํ•ด YOLOv10์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ํ˜•์‹๊ณผ ๋‚ด๋ณด๋‚ด๊ธฐ ์ง€์นจ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ YOLOv10 ๋‚ด ๋ณด๋‚ด๊ธฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

YOLOv10 ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํฌ๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?

YOLOv10์€ ์ •ํ™•๋„์™€ ํšจ์œจ์„ฑ ๋ชจ๋‘์—์„œ ์ด์ „ YOLO ๋ฒ„์ „ ๋ฐ ๊ธฐํƒ€ ์ตœ์‹  ๋ชจ๋ธ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, YOLOv10-S๋Š” COCO ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋น„์Šทํ•œ AP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” RT-DETR-R18๋ณด๋‹ค 1.8๋ฐฐ ๋น ๋ฆ…๋‹ˆ๋‹ค. YOLOv10-B๋Š” ๋™์ผํ•œ ์„ฑ๋Šฅ์˜ YOLOv9-C๋ณด๋‹ค ์ง€์—ฐ ์‹œ๊ฐ„์ด 46% ๋” ์งง๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ 25% ๋” ์ ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋ฒค์น˜๋งˆํฌ๋Š” ๋น„๊ต ์„น์…˜์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


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

๋Œ“๊ธ€