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

๋ฉ”์ดํˆฌ์•ˆ YOLOv6

๊ฐœ์š”

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

๋ฉ”์ดํˆฌ์•ˆ YOLOv6 ๋ชจ๋ธ ์˜ˆ์‹œ ์ด๋ฏธ์ง€ YOLOv6 ๊ฐœ์š”. ์ƒ๋‹นํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€์ ธ์˜จ ์žฌ์„ค๊ณ„๋œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ ์š”์†Œ์™€ ํŠธ๋ ˆ์ด๋‹ ์ „๋žต์„ ๋ณด์—ฌ์ฃผ๋Š” ๋ชจ๋ธ ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ. (a) YOLOv6์˜ ๋ชฉ(N๊ณผ S๊ฐ€ ํ‘œ์‹œ๋จ). M/L์˜ ๊ฒฝ์šฐ, RepBlocks๋Š” CSPStackRep์œผ๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (b) BiC ๋ชจ๋“ˆ์˜ ๊ตฌ์กฐ. (c) SimCSPSPPF ๋ธ”๋ก. (์ถœ์ฒ˜).

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

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

์„ฑ๋Šฅ ์ง€ํ‘œ

YOLOv6๋Š” ๋‹ค์–‘ํ•œ ์Šค์ผ€์ผ๋กœ ์‚ฌ์ „ ํ•™์Šต๋œ ๋‹ค์–‘ํ•œ ๋ชจ๋ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • YOLOv6-N: 37.5% AP, COCO val2017์—์„œ 1187 FPS, NVIDIA Tesla T4 GPU ์‚ฌ์šฉ.
  • YOLOv6-S: 484 FPS์—์„œ 45.0% AP.
  • YOLOv6-M: 226 FPS์—์„œ 50.0% AP.
  • YOLOv6-L: 116 FPS์—์„œ 52.8% AP.
  • YOLOv6-L6: ์ตœ์ฒจ๋‹จ ์‹ค์‹œ๊ฐ„ ์ •ํ™•๋„.

๋˜ํ•œ YOLOv6๋Š” ๋‹ค์–‘ํ•œ ์ •๋ฐ€๋„๋ฅผ ์œ„ํ•œ ์ •๋Ÿ‰ํ™”๋œ ๋ชจ๋ธ๊ณผ ๋ชจ๋ฐ”์ผ ํ”Œ๋žซํผ์— ์ตœ์ ํ™”๋œ ๋ชจ๋ธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์˜ˆ

์ด ์˜ˆ๋Š” ๊ฐ„๋‹จํ•œ YOLOv6 ํ›ˆ๋ จ ๋ฐ ์ถ”๋ก  ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“œ ๋ฐ ๊ธฐํƒ€ ๋ชจ๋“œ์— ๋Œ€ํ•œ ์ „์ฒด ๋ฌธ์„œ๋Š” ์˜ˆ์ธก, ํ•™์Šต, Val ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ

PyTorch ์‚ฌ์ „ ๊ต์œก *.pt ๋ชจ๋ธ ๋ฐ ๊ตฌ์„ฑ *.yaml ํŒŒ์ผ์„ YOLO() ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ python ์—์„œ ๋ชจ๋ธ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

from ultralytics import YOLO

# Build a YOLOv6n model from scratch
model = YOLO('yolov6n.yaml')

# Display model information (optional)
model.info()

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)

# Run inference with the YOLOv6n model on the 'bus.jpg' image
results = model('path/to/bus.jpg')

CLI ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ์ง์ ‘ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# Build a YOLOv6n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov6n.yaml data=coco8.yaml epochs=100 imgsz=640

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

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

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

๋ชจ๋ธ ์œ ํ˜• ์‚ฌ์ „ ํ•™์Šต๋œ ๊ฐ€์ค‘์น˜ ์ง€์›๋˜๋Š” ์ž‘์—… ์ถ”๋ก  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ต์œก ๋‚ด๋ณด๋‚ด๊ธฐ
YOLOv6-N yolov6-n.pt ๋ฌผ์ฒด ๊ฐ์ง€ โœ… โœ… โœ… โœ…
YOLOv6-S yolov6-s.pt ๋ฌผ์ฒด ๊ฐ์ง€ โœ… โœ… โœ… โœ…
YOLOv6-M yolov6-m.pt ๋ฌผ์ฒด ๊ฐ์ง€ โœ… โœ… โœ… โœ…
YOLOv6-L yolov6-l.pt ๋ฌผ์ฒด ๊ฐ์ง€ โœ… โœ… โœ… โœ…
YOLOv6-L6 yolov6-l6.pt ๋ฌผ์ฒด ๊ฐ์ง€ โœ… โœ… โœ… โœ…

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

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

์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ๊ฐ์ง€ ๋ถ„์•ผ์—์„œ ์ค‘์š”ํ•œ ๊ณตํ—Œ์„ ํ•œ ์ €์ž๋“ค์—๊ฒŒ ๊ฐ์‚ฌ์˜ ๋ง์”€์„ ์ „ํ•ฉ๋‹ˆ๋‹ค:

@misc{li2023yolov6,
      title={YOLOv6 v3.0: A Full-Scale Reloading},
      author={Chuyi Li and Lulu Li and Yifei Geng and Hongliang Jiang and Meng Cheng and Bo Zhang and Zaidan Ke and Xiaoming Xu and Xiangxiang Chu},
      year={2023},
      eprint={2301.05586},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

YOLOv6 ๋…ผ๋ฌธ ์›๋ณธ์€ arXiv์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์ž๋“ค์€ ์ž์‹ ์˜ ์ž‘์—…์„ ๊ณต๊ฐœํ–ˆ์œผ๋ฉฐ, ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” GitHub์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ„์•ผ๋ฅผ ๋ฐœ์ „์‹œํ‚ค๊ณ  ๋” ๋งŽ์€ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ž์‹ ์˜ ์—ฐ๊ตฌ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ์ €์ž๋“ค์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.



์ƒ์„ฑ 2023-11-12, ์—…๋ฐ์ดํŠธ 2024-01-07
์ž‘์„ฑ์ž: glenn-jocher (5)

๋Œ“๊ธ€