YOLOv8

juheeยท2025๋…„ 5์›” 23์ผ

๋…ผ๋ฌธ

๋ชฉ๋ก ๋ณด๊ธฐ
6/6

๐Ÿ’ก ์ฐธ๊ณ  ๋ฌธ์„œ

๐Ÿ’ก YOLOv8 ๊ฐœ์š” ๋ฐ ์—ญ์‚ฌ

1๏ธโƒฃ YOLO ์‹œ๋ฆฌ์ฆˆ ๊ฐœ์š”

๋ฒ„์ „๋ฐœํ‘œ ์‹œ๊ธฐ์ฃผ์š” ๋ณ€ํ™”
YOLOv12016์ตœ์ดˆ์˜ YOLO, ๋‹จ์ผ CNN์œผ๋กœ ์ง์ ‘ bbox + class ์˜ˆ์ธก
YOLOv32018multi-scale detection ๋„์ž… (3๋‹จ๊ณ„ ์˜ˆ์ธก), ์„ฑ๋Šฅ ํ–ฅ์ƒ
YOLOv42020๋‹ค์–‘ํ•œ ๊ธฐ๋ฒ• ํ†ตํ•ฉ (CSPNet, Mish, Mosaic ๋“ฑ)
YOLOv52020PyTorch ๊ธฐ๋ฐ˜ ๋น„๊ณต์‹ ๋ชจ๋ธ, ๊ฒฝ๋Ÿ‰ํ™” + ์‹ค์šฉ์„ฑ ๊ฐ•ํ™”
YOLOv72022task-specific optimization, E-ELAN ๊ตฌ์กฐ
YOLOv82023 (Ultralytics)anchor-free, NMS ๊ฐœ์„ , segmentation + classification ํ†ตํ•ฉ

YOLOv5๋ถ€ํ„ฐ๋Š” ๊ณต์‹ ๋…ผ๋ฌธ์ด ์—†๊ณ  Ultralytics์—์„œ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜์ค‘

2๏ธโƒฃ YOLOv8 ์ฃผ์š” ํŠน์ง• ์š”์•ฝ

Anchor-free ๋ฐฉ์‹ ์ฑ„ํƒ
๊ธฐ์กด YOLOv5๋Š” anchor ๊ธฐ๋ฐ˜์ด์—ˆ์ง€๋งŒ YOLOv8์€ anchor ์—†์ด ์ค‘์‹ฌ์  ์˜ˆ์ธก์„ ์‚ฌ์šฉํ•ด ๋” ๋‹จ์ˆœํ•˜๊ณ  ์ผ๋ฐ˜ํ™”๋œ ๊ตฌ์กฐ ์‚ฌ์šฉ

๋ชจ๋“ˆ ๊ฐœ์„ :C2f ๊ตฌ์กฐ ๋„์ž…
๊ธฐ์กด C3 ๋ชจ๋“ˆ๋ณด๋‹ค ๋” ๊ฒฝ๋Ÿ‰ํ™”๋˜๊ณ  ์—ฐ์‚ฐ ํšจ์œจ์ด ์ข‹์€ C2f(Concat-to-fuse) ๋ชจ๋“ˆ์„ ๋„์ž…ํ•ด ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜ ๊ฐ์†Œ + ์„ฑ๋Šฅ ํ–ฅ์ƒ

๋ชจ๋ธ ํ†ตํ•ฉ ์ง€์›
๋‹จ์ผ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ Object Detection, Instance Segmentation, Classification๊นŒ์ง€ ๋ชจ๋‘ ์ง€์›

๊ธฐ์กด YOLOv5 ๋Œ€๋น„ ์„ฑ๋Šฅ ํ–ฅ์ƒ
์†๋„์™€ ์ •ํ™•๋„ ๋ชจ๋‘ ํ–ฅ์ƒ๋์œผ๋ฉฐ ํŠนํžˆ ์ž‘์€ ๋ชจ๋ธ(YOLOv8n)์—์„œ๋„ ๋†’์€ mAP ์œ ์ง€

3๏ธโƒฃ ๋ชจ๋ธ ๋ผ์ธ์—… (ํฌ๊ธฐ๋ณ„)

๋ชจ๋ธํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜์„ฑ๋Šฅ (COCO val2017, mAP)๋ชฉ์ 
YOLOv8n~3.2M์ค‘๊ฐ„ ์„ฑ๋Šฅ, ๋น ๋ฅธ ์†๋„Mobile / ์‹ค์‹œ๊ฐ„
YOLOv8s~11.2M์†๋„-์„ฑ๋Šฅ ๊ท ํ˜•์ค‘๊ฐ„
YOLOv8m~25.9M๋†’์€ ์ •ํ™•๋„์ผ๋ฐ˜ ๋ชฉ์ 
YOLOv8l~43.7M๋” ๋†’์€ ์ •ํ™•๋„๊ณ ์ •๋ฐ€ ํƒ์ง€
YOLOv8x~68.2M์ตœ๊ณ  ์ •ํ™•๋„์˜คํ”„๋ผ์ธ ํƒ์ง€

๐Ÿ’ก YOLOv8 ๊ตฌ์กฐ ๋ฐ ๋™์ž‘ ์›๋ฆฌ

'Backbone -> Neck -> Head' ํ˜•ํƒœ๋ฅผ ๋”ฐ๋ฅด๋˜ ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ์— ๋‹ค์–‘ํ•œ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง

1๏ธโƒฃ ์ „์ฒด ๊ตฌ์กฐ

[์ž…๋ ฅ ์ด๋ฏธ์ง€]
โ†“
[Backbone: CSPDarknet with C2f]
โ†“
[Neck: FPN-like ๊ตฌ์กฐ (PANeck)]
โ†“
[Head: Anchor-Free Detection Head]
โ†“
[์ถœ๋ ฅ: class, bbox(x, y, w, h), objectness]

2๏ธโƒฃ Backbone: C2f ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜ ๊ฒฝ๋Ÿ‰ ๊ตฌ์กฐ

  • ๊ธฐ์กด YOLOv5์˜ C3 ๋ชจ๋“ˆ -> C2f(Concat-to-fuse)๋กœ ๋Œ€์ฒด
  • ๋ชฉ์  : feature reuse + ์—ฐ์‚ฐ ๊ฐ์†Œ
  • ๊ตฌ์กฐ :
    - ๋ณ‘๋ ฌ conv -> concat -> bottleneck (CSP ์Šคํƒ€์ผ)
    • ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜ ๊ฐ์†Œ + ์ •ํ™•๋„ ์œ ์ง€/ํ–ฅ์ƒ
Input โ†’ Conv โ†’ Bottleneck Blocks (split path) โ†’ Concat โ†’ Conv โ†’ Output

3๏ธโƒฃ Neck : FPN + PAN ๊ตฌ์กฐ (Multi-Scale Feature)

  • ๊ณ ํ•ด์ƒ๋„(low-level) + ์ €ํ•ด์ƒ๋„(high-level) feature๋ฅผ ํ†ตํ•ฉ
  • upsample + concat -> detection ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • ์ด๋ฆ„์€ ๋”ฐ๋กœ ๋ช…์‹œ๋˜์ง€ ์•Š์•˜์ง€๋งŒ PANet ์œ ์‚ฌ ๊ตฌ์กฐ

4๏ธโƒฃ Detection Head (์˜ˆ์ธก๋ถ€)

Anchor-Free ๋ฐฉ์‹

  • ์ค‘์‹ฌ์  ๊ธฐ๋ฐ˜ ์˜ˆ์ธก (center-based point regression)

  • Anchor ์„ค์ • ๋ฐ prior box๊ฐ€ ํ•„์š” ์—†์Œ

  • ๋”์šฑ ๋‹จ์ˆœํ™”๋œ ์ถœ๋ ฅ ๊ตฌ์กฐ

    		[batch, grid_h, grid_w, (num_classes + 4 + 1)]
       โ†’ 4: [x_center, y_center, width, height]
       โ†’ 1: objectness
       โ†’ num_classes: softmax ๋˜๋Š” sigmoid
       

5๏ธโƒฃ NMS ๋ฐฉ์‹

  • ๊ธฐ์กด : class-agnostic NMS
  • YOLOv8 : class-aware NMS๋กœ ๊ฐœ์„ 
    - ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค ๊ฐ„์—๋Š” ๊ฒน์ณ๋„ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Œ
  • ์˜ต์…˜์œผ๋กœ Dious-NMS, Soft-NMS ๋„์ž… ๊ฐ€๋Šฅ

(ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜)

๐Ÿ’ก YOLOv8 ํ•™์Šต ๋ฐ ์ถ”๋ก  ๊ณผ์ •

๋‹ค์–‘ํ•œ ํƒœ์Šคํฌ(Object Detection, Classification, Segmentation)๋ฅผ ํ•˜๋‚˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ ์ง€์›ํ•˜๋ฉฐ ํ•™์Šต ๋ฐ ์ถ”๋ก  ๊ณผ์ •์—์„œ๋„ ์ง๊ด€์ ์ด๊ณ  ์œ ์—ฐํ•˜๊ฒŒ ์„ค๊ณ„๋จ

1๏ธโƒฃ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ์ž…๋ ฅ

	๊ธฐ๋ณธ ์ž…๋ ฅ ํ•ด์ƒ๋„ : 640 x 640
    ์ž…๋ ฅ ํ˜•์‹ : [batch_size, 3, H, W]
    ์ „์ฒ˜๋ฆฌ ๋‚ด์šฉ :
    	์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• (๋น„์œจ ์œ ์ง€)
        Padding (Letterbox ๋ฐฉ์‹)
        ์ •๊ทœํ™” (0~1 ์Šค์ผ€์ผ)
        ์ฑ„๋„ ์ˆœ์„œ ๋ณ€ํ™˜ (HWC -> CHW)

2๏ธโƒฃ ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•(Augmentation)

๊ธฐ๋ณธ ์ œ๊ณต๋˜๋Š” ์ฆ๊ฐ• ๊ธฐ๋ฒ•

๊ธฐ๋ฒ•๋ช…์„ค๋ช…
Mosaic4์žฅ์˜ ์ด๋ฏธ์ง€๋ฅผ ํ•˜๋‚˜๋กœ ๊ฒฐํ•ฉํ•ด ๋‹ค์–‘ํ•œ ๊ฐ์ฒด ์ˆ˜๋ฅผ ํ‘œํ˜„
HSV ๋ณ€ํ™”์ƒ‰์กฐ, ์ฑ„๋„, ๋ช…๋„ ๋ณ€ํ™”
Flip์ขŒ์šฐ ๋ฐ˜์ „
Scale์ด๋ฏธ์ง€ ํ™•๋Œ€/์ถ•์†Œ
Random crop์ผ๋ถ€ ์˜์—ญ๋งŒ ์ž๋ฅด๊ธฐ (์„ ํƒ)

-> Albumentations ๋˜๋Š” cv2 ๊ธฐ๋ฐ˜์œผ๋กœ ์ถ”๊ฐ€ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ

3๏ธโƒฃ ์†์‹ค ํ•จ์ˆ˜(Loss)

๋‹ค์–‘ํ•œ ์†์‹ค ํ•ญ ์กฐํ•ฉ

ํ•ญ๋ชฉ์†์‹ค ์ข…๋ฅ˜์„ค๋ช…
bbox ์œ„์น˜CIoU Loss์ค‘์‹ฌ์ ๊ณผ ํฌ๊ธฐ ์ฐจ์ด ๋ชจ๋‘ ๋ฐ˜์˜
class ์˜ˆ์ธกBCEWithLogitsLoss๋ฉ€ํ‹ฐ ํด๋ž˜์Šค ๋ถ„๋ฅ˜์šฉ binary cross entropy
objectnessBCEWithLogitsLoss๊ฐ์ฒด ์—ฌ๋ถ€ ํŒ๋‹จ์šฉ ํ™•๋ฅ  ์ถœ๋ ฅ

-> Loss๋Š” ๊ฐ ํ•ญ์˜ ๊ฐ€์ค‘์น˜๋ฅผ ์กฐ์ ˆํ•ด ์ „์ฒด Loss๋กœ ํ†ตํ•ฉ

4๏ธโƒฃ Optimizer ๋ฐ Learning Rate Scheduler

	๊ธฐ๋ณธ ์„ค์ •
    Optimizer : SGD or AdamW
    ์ดˆ๊ธฐ Learning : 0.01(SGD), 0.001(AdamW)
    Scheduler : Cosine Annealing, Linear Decay ๋˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜

5๏ธโƒฃ ์ถ”๋ก (Inference) ํŒŒ์ดํ”„๋ผ์ธ

์ž…๋ ฅ ์ด๋ฏธ์ง€
  โ†“
์ „์ฒ˜๋ฆฌ ๋ฐ ํฌ๊ธฐ ์กฐ์ • (letterbox)
  โ†“
๋ชจ๋ธ ์ถ”๋ก  (feature ์ถ”์ถœ + head ์˜ˆ์ธก)
  โ†“
NMS ํ›„ ์ตœ์ข… bbox/class ๋ฐ˜ํ™˜
  โ†“
์›๋ณธ ์ด๋ฏธ์ง€ ์ขŒํ‘œ๋กœ bbox ์žฌ์กฐ์ •

์ถ”๋ก  ์†๋„ : YOLOv8n ๊ธฐ์ค€ 30~100 FPS ์ด์ƒ ๊ฐ€๋Šฅ (GPU ๊ธฐ์ค€)
์ถœ๋ ฅ ํ˜•์‹ : bbox ์ขŒํ‘œ [x1, y1, x2, y2], class index + confidence

๐Ÿ’ก YOLOv8 ์„ฑ๋Šฅ ๋ฐ ๋ฒค์น˜๋งˆํฌ

๋‹ค์–‘ํ•œ ํฌ๊ธฐ(n, s, m, l, x)์˜ ๋ชจ๋ธ ์ œ๊ณต, ์ •ํ™•๋„์™€ ์ถ”๋ก  ์†๋„์—์„œ ๊ท ํ˜• ์žกํžŒ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์คŒ
anchor-free ๋ฐฉ์‹ ๋„์ž… ์ดํ›„ YOLOv5 ๋Œ€๋น„ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ์‹ค์‹œ๊ฐ„ ๋ฐ ๊ณ ์ •๋ฐ€ ์ž‘์—… ๋ชจ๋‘์—์„œ ์šฐ์ˆ˜ํ•œ ํšจ์œจ์„ ๋ณด์ž„

1๏ธโƒฃ ์„ฑ๋Šฅ ์ง€ํ‘œ (COCO val2017 ๊ธฐ์ค€)

๋ชจ๋ธํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜FPS (Tesla T4)mAP50mAP50-95
YOLOv8n~3.2M~150 FPS70.337.3
YOLOv8s~11.2M~100 FPS78.444.9
YOLOv8m~25.9M~70 FPS82.350.2
YOLOv8l~43.7M~45 FPS84.552.9
YOLOv8x~68.2M~30 FPS85.953.9

2๏ธโƒฃ ๋‹ค๋ฅธ ๋ชจ๋ธ๊ณผ ๋น„๊ต (YOLOv5, YOLOv7, Faster R-CNN ๋“ฑ)

๋ชจ๋ธParamsmAP50-95FPS๋น„๊ณ 
YOLOv5s7.2M36.7~110anchor-based
YOLOv737.2M51.2~50task-optimized
YOLOv8m25.9M50.2~70๊ฒฝ๋Ÿ‰ํ™” + anchor-free
Faster R-CNN (R50)41.5M42.1~102-stage, ๊ณ ์ •๋ฐ€ but ๋А๋ฆผ

โ†’ YOLOv8์€ ์†๋„์™€ ์ •ํ™•๋„ ์–‘๋ฉด์—์„œ ๋งค์šฐ ๊ฐ•๋ ฅํ•œ ์‹ค์‹œ๊ฐ„ ํƒ์ง€ ์ตœ์ ํ™” ๋ชจ๋ธ

3๏ธโƒฃ ํŠน์ง•๋ณ„ ์žฅ๋‹จ์  ์š”์•ฝ

ํŠน์ง•์žฅ์ ๋‹จ์ 
Anchor-Free๋‹จ์ˆœ ๊ตฌ์กฐ, ์ ์€ prior ์„ค์ •์ž‘์€ ๊ฐ์ฒด ํƒ์ง€ ์„ฑ๋Šฅ ๋ฏผ๊ฐ๋„ โ†‘
C2f ๋ชจ๋“ˆ๊ฒฝ๋Ÿ‰ํ™” + ์ •ํ™•๋„ ์œ ์ง€๊ตฌ์กฐ๊ฐ€ ๋œ ์ง๊ด€์ ์ผ ์ˆ˜ ์žˆ์Œ
NMS ๊ฐœ์„ ํด๋ž˜์Šค ๊ฐ„ ์–ต์ œ ๋ฐฉ์ง€์—ฌ์ „ํžˆ ๋†’์€ ์ค‘๋ณต ์ œ๊ฑฐ ์–ด๋ ค์›€ ์กด์žฌ
๋‹ค์–‘ํ•œ ์‚ฌ์ด์ฆˆ ์ œ๊ณต๋””๋ฐ”์ด์Šค ์„ฑ๋Šฅ์— ๋งž๋Š” ์„ ํƒ ๊ฐ€๋Šฅ์ดˆ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ์€ ์„ฑ๋Šฅ ์ œํ•œ ์กด์žฌ

4๏ธโƒฃ ์‹ค์ œ ํ™œ์šฉ ํ™˜๊ฒฝ์—์„œ ์„ฑ๋Šฅ

ํ™˜๊ฒฝ๊ฒฐ๊ณผ
Raspberry PiYOLOv8n ๊ธฐ์ค€ 10~15 FPS (TensorRT ์ตœ์ ํ™” ์‹œ)
Jetson NanoYOLOv8n ๊ธฐ์ค€ 8~12 FPS (fp16 ์ตœ์ ํ™” ์‹œ)
Google Colab T4YOLOv8s ๊ธฐ์ค€ 100+ FPS (์‹ค์‹œ๊ฐ„ ๊ฐ€๋Šฅ)
RTX 3090YOLOv8x๋„ 40+ FPS ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

๐Ÿ’ก ์‹ค์ œ ํ™œ์šฉ ์‚ฌ๋ก€ ๋ฐ ํ™•์žฅ์„ฑ

๋‹จ์ˆœํ•œ ๊ฐ์ฒด ํƒ์ง€๋ฅผ ๋„˜์–ด ๋‹ค์–‘ํ•œ ์ปดํ“จํ„ฐ ๋น„์ „ ์ž‘์—…์— ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋จ
ํŠนํžˆ Ultralytics ํŒ€์€ Detection ์™ธ์—๋„ Classification, Instance Segmentation, Object Tracking๊นŒ์ง€ ํ†ตํ•ฉ ์ง€์›ํ•จ

1๏ธโƒฃ ์ง€์› ํƒœ์Šคํฌ

ํƒœ์Šคํฌ ์œ ํ˜•์„ค๋ช…
Object Detection์ผ๋ฐ˜์ ์ธ bounding box ๊ธฐ๋ฐ˜ ํƒ์ง€
Instance Segmentationํ”ฝ์…€ ๋‹จ์œ„ ๊ฐ์ฒด ๋ถ„ํ•  (mask ์˜ˆ์ธก ํฌํ•จ)
Classification์ด๋ฏธ์ง€ ์ „์ฒด์˜ ํด๋ž˜์Šค ๋ถ„๋ฅ˜
Object Tracking (beta)๋™์˜์ƒ์—์„œ ๊ฐ์ฒด ์ถ”์  (SORT ๋“ฑ๊ณผ ํ†ตํ•ฉ)

2๏ธโƒฃ ์ฃผ์š” ์‹ค๋ฌด ํ™œ์šฉ ์‚ฌ๋ก€

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

๋‹ค์–‘ํ•œ edge-device์—์„œ๋„ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด ์‹ค์‹œ๊ฐ„ ์‘์šฉ ๋ถ„์•ผ์— ์ตœ์ ํ™”๋จ

3๏ธโƒฃ ํ™•์žฅ ๋ฐ ๋ฐฐํฌ ๋ฐฉ์‹

Ultralytics API

  • from ultralytics import YOLO ๋งŒ์œผ๋กœ ๋ชจ๋“  ํƒœ์Šคํฌ ์‹คํ–‰
  • ์ถ”๋ก  ๊ฒฐ๊ณผ : .boxes, .masks, .probs ๋“ฑ ๋‹ค์–‘ํ•œ ์ถœ๋ ฅ ์ œ๊ณต

ONNX / TensorRT / OpenVINO ๋‚ด๋ณด๋‚ด๊ธฐ

yolo export model=yolov8n.pt format=onnx

Edge ํ™˜๊ฒฝ ์ตœ์ ํ™”

  • fp16, int8๋กœ ์–‘์žํ™”
  • ncnn, tflite, coreml ๋“ฑ ๋ชจ๋ฐ”์ผ ๋ณ€ํ™˜ ๊ฐ€๋Šฅ

4๏ธโƒฃ ์ปค์Šคํ…€ ๋ฐ์ดํ„ฐ์…‹ ์ ์šฉ

Ultralytics์—์„œ๋Š” ๋‹ค์–‘ํ•œ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ์…‹์„ ์ง€์›

ํ˜•์‹์„ค๋ช…
YOLO๊ธฐ๋ณธ .txt ํฌ๋งท
COCO.json ์–ด๋…ธํ…Œ์ด์…˜
VOC.xml
Custom.yaml ํŒŒ์ผ๋กœ ๊ฒฝ๋กœ๋งŒ ์„ค์ •ํ•˜๋ฉด OK
# data.yaml ์˜ˆ์‹œ
train: ../images/train
val: ../images/val

nc: 3
names: ['pill', 'capsule', 'tablet']

์ฐธ๊ณ  ๋งํฌ
Ultralytics ๊ณต์‹ ํŠœํ† ๋ฆฌ์–ผ
YOLOv8 Python API

๐Ÿ’ก ๋ถ„์„ ๋…ผ๋ฌธ ์š”์•ฝ ๋ฐ ๋น„ํŒ์  ๊ณ ์ฐฐ

1๏ธโƒฃ ๋ถ„์„ ๋…ผ๋ฌธ ์š”์•ฝ

๋…ผ๋ฌธ 1 : "What is YOLOv8?"

  • YOLOv8์˜ ๊ตฌ์กฐ (C2f, anchor-free head ๋“ฑ) ๋ถ„์„
    -YOLOv5 ๋Œ€๋น„ ์ •ํ™•๋„/์†๋„ ํ–ฅ์ƒ ์ •๋Ÿ‰ ๋น„๊ต
  • Instance Segmentation ํ™•์žฅ ๊ตฌ์กฐ ๋ถ„์„
  • ๋‹ค์–‘ํ•œ ํƒœ์Šคํฌ์—์„œ์˜ ์„ฑ๋Šฅ ๋ฒค์น˜๋งˆํฌ

YOLOv8์€ ๊ตฌ์กฐ์ ์œผ๋กœ YOLO ์‹œ๋ฆฌ์ฆˆ์˜ ๋‹จ์ˆœ์„ฑ๊ณผ ์‹ค์šฉ์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋‹ฌ์„ฑํ•œ "engineering-optimized model"
๋…ผ๋ฌธ ๋งํฌ

๋…ผ๋ฌธ 2 : "A Comprehensive Review of YOLO Architectures in Computer Vision"

  • YOLOv1๋ถ€ํ„ฐ YOLOv8๊นŒ์ง€์˜ ์ง„ํ™” ๊ณผ์ • ์„œ์ˆ 
  • ๊ฐ ๋ฒ„์ „๋ณ„ ํ•ต์‹ฌ ๊ธฐ์ˆ  ๋ณ€ํ™” ์ •๋ฆฌ
  • YOLOv8์ด anchor-free๋กœ ์ „ํ™˜๋œ ์ด์œ ์— ๋Œ€ํ•œ ์„ค๋ช…
  • ๊ธฐํƒ€ YOLO ๊ธฐ๋ฐ˜ ํŒŒ์ƒ ๋ชจ๋ธ(NAS, RT-DETR ๋“ฑ)๊ณผ ๋น„๊ต

์‚ฌ์šฉ์ž ์ค‘์‹ฌ์œผ๋กœ ์ง„ํ™”ํ•œ ์ตœ์‹  YOLO
๋…ผ๋ฌธ ๋งํฌ

2๏ธโƒฃ YOLOv8์˜ ํ•œ๊ณ„์ 

ํ•ญ๋ชฉ์„ค๋ช…
๊ณต์‹ ๋…ผ๋ฌธ ๋ถ€์žฌ๊ธฐ์ˆ ์  ์ •ํ•ฉ์„ฑ ๋ฐ peer-review ํ†ต๊ณผ๋œ ๊ทผ๊ฑฐ ๋ถ€์กฑ
small object ๋Œ€์‘ ๋ฏธํกanchor-free ๊ตฌ์กฐ์—์„œ ์ž‘์€ ๊ฐ์ฒด ํƒ์ง€ ๋ฏผ๊ฐ๋„ ๋‚ฎ์„ ์ˆ˜ ์žˆ์Œ
custom training ์ œ์–ด ํ•œ๊ณ„ํ•˜์ด๋ ˆ๋ฒจ API ์œ„์ฃผ โ†’ ์„ธ๋ถ€ ํŠœ๋‹์— ์ œ์•ฝ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ
๋ณต์žกํ•œ ๊ตฌ์กฐ ํ•ด์„ ์–ด๋ ค์›€C2f ๊ตฌ์กฐ๋‚˜ custom NMS ๋“ฑ์€ ์ง๊ด€์ ์ด์ง€ ์•Š์Œ

3๏ธโƒฃ ๋น„ํŒ์  ๊ณ ์ฐฐ

  • ํŽธ๋ฆฌํ•จ vs. ์ œ์–ด๋ ฅ
    • Ultralytics YOLO๋Š” CLI, Python API๋กœ ๋งค์šฐ ์‰ฝ๊ณ  ๋น ๋ฅด์ง€๋งŒ
    • ์„ธ๋ฐ€ํ•œ ์—ฐ๊ตฌ ๋ชฉ์ ์ด๋‚˜ ๊ตฌ์กฐ ์‹คํ—˜์—๋Š” ํ•œ๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ
  • anchor-free์˜ ๊ณผ์žฅ๋œ ์žฅ์ ?

    • anchor-free ๋ฐฉ์‹์ด ํ•ญ์ƒ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์ข‹๋‹ค๊ณ  ๋‹จ์ •ํ•  ์ˆ˜ ์—†์Œ
    • ์ž‘์€ ๊ฐ์ฒด๋‚˜ ๋ฐ€์ง‘๋œ ํ™˜๊ฒฝ์—์„œ ์„ฑ๋Šฅ์ด ๋ถˆ์•ˆ์ •ํ•  ์ˆ˜ ์žˆ์Œ
  • ๊ฒฐ๋ก :
    YOLOv8์€ ์‹ค์šฉ์„ฑ๊ณผ ์†๋„๋ฅผ ์ตœ์ ํ™”ํ•œ ์ตœ์‹  ๋ชจ๋ธ์ด๋ฉฐ ์‹ค๋ฌด์— ์ ํ•ฉํ•œ ๋ฐ˜๋ฉด ์—ฐ๊ตฌ ์‹คํ—˜์—๋Š” ๊ตฌ์กฐ ๋ถ„์„๊ณผ ํŠœ๋‹ ์ธก๋ฉด์—์„œ ๋‹ค์†Œ ์ œํ•œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ

4๏ธโƒฃ ์‹ค๋ฌด ์ ์šฉ ์‹œ ์š”์•ฝ ํŒ

  • ๋น ๋ฅธ ์ถ”๋ก : YOLOv8n/s
  • ์ •ํ™•๋„ ์ค‘์‹œ: YOLOv8m/l/x
  • segmentation: yolov8s-seg.pt ๋“ฑ ๋ณ„๋„ ๋ชจ๋ธ ์‚ฌ์šฉ
  • ์ž‘์€ ๊ฐ์ฒด ์œ„์ฃผ ์ž‘์—…: ์ž…๋ ฅ ํ•ด์ƒ๋„ ์ฆ๊ฐ€ or hybrid ๋ชจ๋ธ ๊ฒ€ํ† 

0๊ฐœ์˜ ๋Œ“๊ธ€