Skip to content

Latest commit

ย 

History

History

going_deeper_17

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
ย 
ย 
ย 
ย 

17. ๋ฉ€๋ฆฌ ์žˆ์ง€๋งŒ ๊ดœ์ฐฎ์•„

Dlib ์–ผ๊ตด ์ธ์‹์˜ ๋ฌธ์ œ์ 

Face detection, ์–ผ๋งˆ๋‚˜ ์ž‘๊ณ  ๋นจ๋ผ์งˆ ์ˆ˜ ์žˆ์„๊นŒ?


์šฐ๋ฆฌ๋Š” ์ง€๋‚œ ์‹œ๊ฐ„๊นŒ์ง€ ์นด๋ฉ”๋ผ ์Šคํ‹ฐ์ปค์•ฑ์„ ๋งŒ๋“ค๋ฉด์„œ ์ด๋ฏธ์ง€ ์†์˜ ์–ผ๊ตด์„ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด ์™”๋‹ค. ์ฒซ๋ฒˆ์งธ๋กœ ๊ณ ๋ คํ•ด๋ณธ ๋ฐฉ๋ฒ•์€ Dlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ Face Landmark๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ์ ๋“ค์ด ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค.

  • ์–ผ๊ตด์„ ์ž˜ ๋ชป์ฐพ๋Š”๋‹ค.
  • ๋™์˜์ƒ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—” ๋„ˆ๋ฌด ๋Š๋ฆฌ๋‹ค.
  • ์–ผ๊ตด ๊ฐ๋„, ๋ฐฉํ–ฅ, ํฌ๊ธฐ ๋“ฑ์˜ ๋ณ€ํ™”์— ์ทจ์•ฝํ•˜๋‹ค.

์™œ ์ž‘์•„์ง€๊ณ  ๋นจ๋ผ์ง€๋Š”๊ฒŒ ์ค‘์š”ํ•œ๊ฐ€?


images00.png

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

์„œ๋ฒ„๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋‚ธ ํ›„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์€ ๋„คํŠธ์›Œํฌ ๋น„์šฉ + ์„œ๋ฒ„๋น„์šฉ + ์ธํ„ฐ๋„ท ์†๋„์˜ ์˜ํ–ฅ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์„ ์ˆ˜ ์—†๋‹ค. ๋„คํŠธ์›Œํฌ ์ƒํ™ฉ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ•ญ์ƒ ๋™์ž‘ํ•ด์•ผ ํ•˜๋Š” ํ•ธ๋“œํฐ ์ธ์ฆ ์ˆ˜๋‹จ์œผ๋กœ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ edge device(= ํ•ธ๋“œํฐ)๋ฅผ ๋ฐ”๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํ•ธ๋“œํฐ์— ๋ชจ๋ธ์„ ์˜ฌ๋ฆฌ๋ ค๋ฉด weight ๊ฐ€ ์ž‘์€ ๋ชจ๋ธ์ด ๊ด€๋ฆฌ์— ์œ ๋ฆฌํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์€ ๋ชจ๋ธ์€ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ์„์ง€ ๊ณ ๋ฏผ์ด ์‹œ์ž‘๋œ๋‹ค.

๊ตญ๋‚ด IT ๋Œ€๊ธฐ์—…๋“ค๋„ ์ด๋ฏธ ๊ด€๋ จ ์—ฐ๊ตฌ๋ฅผ ํ™œ๋ฐœํžˆ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ์•„๋ž˜ ๊ธ€๋“ค์„ ํ†ตํ•ด ์ƒ์„ธํ•œ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์ž.

์–ด๋–ป๊ฒŒ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„๊นŒ?


  • sliding window ๋ฅผ ๋ฒ„๋ ค์•ผ ๋นจ๋ผ์ง„๋‹ค. 2-stage ๋ฐฉ์‹์˜ detection์€ ์ข‹์€ ๋Œ€์•ˆ์ด ๋˜์งˆ ๋ชปํ•œ๋‹ค.
  • ๋ณ‘๋ ฌํ™”๊ฐ€ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.
  • CNN ์€ GPU ์—์„œ ๋ณ‘๋ ฌํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ฒ ์ง€๋งŒ, ํ•ธ๋“œํฐ์—์„œ๋„ ๋ณ‘๋ ฌํ™”๊ฐ€ ๊ฐ€๋Šฅํ•œ๊ฐ€?
  • Apple ์€ CoreML ์ด๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•œ๋‹ค.
  • ์Šค๋งˆํŠธํฐ ์ œ์กฐ์‚ฌ๊ฐ€ ๋ณ‘๋ ฌํ™”๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด? ์–ด๋–ค ๋Œ€์•ˆ์ด ์žˆ์„๊นŒ?

ํ•˜์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค๋„ ์ ์€ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๋กœ๋„ ์ •ํ™•ํ•œ ์„ฑ๋Šฅ์„ ๊ฐ€์ง€๋Š” ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.

Single Stage Object Detection

์—ฌ๋Ÿฌ๋ถ„์€ ์•„๋งˆ๋„ 2-stage detector ์˜ ์‹คํ–‰์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค๋Š” ๊ฒƒ์„ ์ด๋ฏธ ๊ณต๋ถ€ํ•ด์„œ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ด์ „ ์Šคํ…์—์„œ ์‚ดํŽด๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ, ์–ผ๊ตด์ธ์‹ ๊ฐ™์ด ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์ด ๊ฐ€๋ฒผ์›Œ์•ผํ•˜๋Š” task ๋Š” 1-stage ๊ธฐ๋ฐ˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.

์ดํ›„ ์Šคํ…์—์„œ ์šฐ๋ฆฌ๋Š” 1-stage(Single stage) Object detection ๋ชจ๋ธ๋“ค ์œ„์ฃผ๋กœ Face detection์— ์ ํ•ฉํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ๋“ค์— ๋Œ€ํ•ด ํƒ์ƒ‰ํ•ด ๋ณผ ๊ฒƒ์ด๋‹ค. YOLO, SSD, RetinaNet ๋“ฑ ์ด ๋ถ„์•ผ์˜ ๋ชจ๋ธ๋“ค์˜ ๋ฐœ์ „์‚ฌ๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ถ„์•ผ์—์„œ๋„ ๋งค์šฐ ํฅ๋ฏธ์ง„์ง„ํ•œ ์ด๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋‹ˆ, ํ•จ๊ป˜ ์‚ดํŽด๋ณด์ž.

YOLO (1) YOLO v1์˜ ๋“ฑ์žฅ

YOLO : You Only Look Once


YOLO๋ผ๋Š” ๋ชจ๋ธ์˜ ๋„ค์ด๋ฐ ์„ผ์Šค๋Š” ๊ณผ์—ฐ ์–ด๋””์—์„œ ์™”์„๊นŒ? YOLO๋ผ๋Š” ์œ ๋ช…ํ•œ ๋ชจ๋ธ์„ ์–ธ๊ธ‰ํ•˜๋ ค๋ฉด ์ ˆ๋Œ€ ๋นผ๋†“์„ ์ˆ˜ ์—†๋Š” ํ•œ ์‚ฌ๋žŒ์ด ์žˆ๋‹ค. ๋ฐ”๋กœ Joseph Redmon, YOLO ๋…ผ๋ฌธ์˜ 1์ €์ž์ด์ž, C๋กœ ๊ตฌํ˜„๋œ ์˜คํ”ˆ์†Œ์Šค ๋‰ด๋Ÿด ๋„คํŠธ์›Œํฌ Darknet์˜ ์ œ์ž‘์ž์ด๋‹ค.

YOLO v1, bigwave์˜ ์‹œ์ž‘


  • YOLO์˜ ์ถœํ˜„ : ๋‹น์‹œ ์ „ ์„ธ๊ณ„ computer vision ํ•™๊ณ„์™€ ์—…๊ณ„์— ์ถฉ๊ฒฉ์ ์ผ ์ •๋„์˜ ๊ธฐ์ˆ  ์ง„๋ณด๋ฅผ ๋ณด์—ฌ์ค€ ์‚ฌ๋ก€

images01.png

CVPR 2016. ๋ฌด๋ ค 2016๋…„๋„์— CVPR oral session ์—์„œ ์‹ค์‹œ๊ฐ„ ๋ฐ๋ชจ๋ฅผ ํ•ด๋ฒ„๋ฆฐ๋‹ค. ์ง€๊ธˆ์€ ์ž์—ฐ์Šค๋Ÿฌ์›Œ ๋ณด์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๋‹น์‹œ ๊ธฐ์ˆ  ์ˆ˜์ค€์„ ์ƒ๊ฐํ•ด๋ณด๋ฉด object detection์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•™ํšŒ์žฅ์—์„œ ๋ณด์—ฌ์คฌ๋‹ค๋Š” ๊ฒƒ์€ ์ถฉ๊ฒฉ๊ณผ ๊ณตํฌ ๊ทธ ์ž์ฒด์˜€๋‹ค.

images02.png

CVF ์ฑ„๋„์—์„œ ์œ ํŠœ๋ธŒ ์กฐํšŒ์ˆ˜ 1์œ„ ๋™์˜์ƒ์ด๋‹ค. ์ฐธ๊ณ ๋กœ 2์œ„๋Š” 2 stage detector ๊ธฐ๋ฐ˜์ธ Mask-R-NN์ด๋‹ค. Detection์ด ์–ผ๋งˆ๋‚˜ ๊ด€์‹ฌ์ด ๋งŽ์€์ง€ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋Œ€๋ชฉ์ด๋‹ค.

YOLO (2) YOLO v1์˜ ์›๋ฆฌ

R-CNN์™€ YOLO


images03.png

๋Œ€ํ‘œ์ ์ธ 2-stage detector์ธ R-CNN๊ณผ YOLO ๋ชจ๋ธ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๊ธฐ๋ณธ ๊ฐ€์ •์—์„œ๋ถ€ํ„ฐ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

  • RCNN ๊ณ„์—ด์˜ ๊ฐ€์ • : "๋ฌผ์ฒด๊ฐ€ ์กด์žฌํ•  ๊ฒƒ ๊ฐ™์€ ๊ณณ์„ backbone network ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค." โ†’ region proposal network
  • YOLO v1 ์˜ ๊ฐ€์ • : "์ด๋ฏธ์ง€ ๋‚ด์˜ ์ž‘์€ ์˜์—ญ์„ ๋‚˜๋ˆ„๋ฉด ๊ทธ ๊ณณ์— ๋ฌผ์ฒด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค." โ†’ grid ๋‚ด์— ๋ฌผ์ฒด๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  • backbone ์„ ํ†ต๊ณผํ•œ 7x7 feature map ์—์„œ 1px ๊ฐ€ 1๊ฐœ์˜ grid ๋ฅผ ์˜๋ฏธํ•จ Q. ์›๋ณธ ์ด๋ฏธ์ง€์—์„œ 1๊ฐœ์˜ grid box ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ตฌํ•˜์‹œ์˜ค A. 448 / 7 = 64 โ‡’ 64x64
  • 7x7 feature map ์—์„œ 1) Bounding box ์™€ ๊ด€๋ จ๋œ Bbox ๊ฐœ์ˆ˜ x (x, y, w, h, confidence) 5 ๊ฐœ ๊ฐ’ 2) Class ํ™•๋ฅ  C ๊ฐœ์˜ tensor ๋ฅผ ์ถœ๋ ฅ
  • ์ฆ‰ ์ตœ์ข… ์ถœ๋ ฅ ๊ฐœ์ˆ˜๋Š” 7x7x(5xB + C) ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

YOLO์˜ grid cell


images04.png

Q. 1๊ฐœ์˜ grid ๋‹น 2๊ฐœ์˜ Bbox ์™€ 20๊ฐœ ํด๋ž˜์Šค๋ฅผ ์˜ˆ์ธกํ•˜๋Š” YOLO ๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ output tensor ์˜ flatten ํ–ˆ์„ ๋•Œ ํฌ๊ธฐ๋Š”? A. 7 x 7 x (5 x 2 + 20) = (1470,)

  • ์ž์ „๊ฑฐ์— ํ•ด๋‹นํ•˜๋Š” grid ๊ฐ€ ๋งŽ์€๋ฐ ์ด๋Ÿฐ ๊ฒฝ์šฐ๋Š” ํ•ด๋‹น grid ๋“ค์ด ๋ชจ๋‘ ์ž์ „๊ฑฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๊ฐ€? โ‡’ ๊ทธ๋ ‡๋‹ค. ํ•™์Šต์ด ์ž˜ ๋œ ๊ฒฝ์šฐ ๋ชจ๋‘ ๋น„์Šทํ•œ ํฌ๊ธฐ๋กœ ์ž์ „๊ฑฐ์˜ bbox ๋ฅผ ์žก๋Š”๋‹ค.
  • ๊ทธ๋Ÿฌ๋ฉด ํ•œ ๋ฌผ์ฒด๋ฅผ ์žก๋Š” bbox ๊ฐ€ ๋งŽ์•„์ง€๋Š” ๊ฒฝ์šฐ๋Š” ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€? โ‡’ ์ด๋ฏธ ๋ฐฐ์› ๋“ฏ์ด NMS ์™€ ๊ฐ™์€ ๊ธฐ๋ฒ•์„ ์ด์šฉํ•œ๋‹ค.
  • YOLO ์˜ ๋ชฉํ‘œ๋Š” grid ์— ํ•ด๋‹นํ•˜๋Š” ๋ฌผ์ฒด๋ฅผ ์ž˜ ์žก์•„๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

images05.png

  • grid cell ์— ์†ํ•˜๋Š” ๋ฌผ์ฒด๋ฅผ ๊ฒ€์ถœํ•  ์ฑ…์ž„์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.
  • ๋”ฐ๋ผ์„œ 1๊ฐœ grid ์— ๊ท€์†๋œ bbox ์ •๋ณด (x,y,w,h) ์˜ ํ•™์Šต ๋ชฉํ‘œ๋Š” bbox gt ์™€ ์ตœ๋Œ€ํ•œ ๋™์ผํ•˜๊ฒŒ ํ•™์Šต๋˜์–ด์•ผ ํ•œ๋‹ค. (์ด๋•Œ IoU ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค)

YOLO์˜ ํŠน์ง•


images06.png

  • ๊ธฐ์กด R-CNN ๊ณ„์—ด ๋ฐฉ๋ฒ•์€ ๊ฒ€์ถœ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.
  • Faster R-CNN์€ RPN ํ›„๋ณด๊ตฐ์„ ๋ฝ‘๊ณ  localization, classification ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด ๋•Œ RPN ์—์„œ 300๊ฐœ ์˜์—ญ์„ ์ œ์•ˆํ•˜๋Š”๋ฐ, objectness ์˜ ์ˆซ์ž๊ฐ€ ๋งŽ์„ ์ˆ˜๋ก ๋Š๋ ค์ง€๋ฉฐ 7x7= 49 grid ์™€ ๋น„๊ตํ•ด์„œ ๋ด์•ผํ•  ๋ถ€๋ถ„์ด๋‹ค.

YOLO์˜ Inference ๊ณผ์ •


  • 7x7 grid ๋งˆ์ง€๋ง‰ layer๋ฅผ ํ•ด์„ํ•œ๋‹ค.
  • 7x7 x (30) ์—์„œ 30 = 5(x,y,w,h,c) + 5 + 20 (class) ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.
  • classification ์€ ์ด๋ฏธ ์šฐ๋ฆฌ๊ฐ€ ์ตํžˆ ์•Œ๊ณ  ์žˆ๋Š” P( real | pred ) ์ธ likelihood ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

images07.png

(์ฐธ๊ณ ) https://www.slideshare.net/TaegyunJeon1/pr12-you-only-look-once-yolo-unified-realtime-object-detection

  • confidence score ๋ฅผ loss ๋กœ ๋งŒ๋“ค ๋•Œ๋Š” P(class | object) * P(object) * IoU ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
  • ์ฆ‰ 7x7x2 ๊ฐœ์˜ class confidence score ๊ฐ€ ๊ณ„์‚ฐ๋œ๋‹ค.

YOLO (3) YOLO v1์˜ ์„ฑ๋Šฅ

YOLO v1์˜ loss ํ•จ์ˆ˜


images08.png

images09.png

YOLO์˜ ์„ฑ๋Šฅ


images10.png

images11.png

  • arXiv ๋…ผ๋ฌธ ๋ฐœํ‘œ์—์„œ๋Š” mAP ๊ฐ€ 63.4 ์˜€์ง€๋งŒ CVPR 2016 ๋ฐœํ‘œ๋•Œ๋Š” 69.0 ์œผ๋กœ ํ–ฅ์ƒ์‹œ์ผœ์„œ ๋ฐœํ‘œํ–ˆ๋‹ค.
  • Faster RCNN ๊ณผ ํฐ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š์œผ๋ฉด์„œ ์†๋„๋Š” 6๋ฐฐ ์ด์ƒ์ธ ํ˜์‹ ์ ์ธ ์—ฐ๊ตฌ์˜€๋‹ค.

YOLO v1์˜ ๋‹จ์ 


  • ๊ฐ๊ฐ grid cell ์ด ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋งŒ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ž‘์€ object ์— ๋Œ€ํ•ด ์˜ˆ์ธก์ด ์–ด๋ ต๋‹ค.
  • bbox ํ˜•ํƒœ๊ฐ€ training data ๋ฅผ ํ†ตํ•ด ํ•™์Šต โ†’ bbox ๋ถ„์‚ฐ์ด ๋„ˆ๋ฌด ๋„“์–ด ์ƒˆ๋กœ์šด ํ˜•ํƒœ์˜ bbox ์˜ˆ์ธก์ด ์ž˜ ๋˜์ง€ ์•Š์•˜๋‹ค.
  • ๋ชจ๋ธ ๊ตฌ์กฐ์ƒ backbone ๋งŒ ๊ฑฐ์นœ feature map ๋Œ€์ƒ์œผ๋กœ bbox ์ •๋ณด๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ๋•Œ๋ฌธ์— localization ์ด ๋‹ค์†Œ ๋ถ€์ •ํ™•ํ•˜๋‹ค.

YOLO (4) YOLO v2

images12.png

  • ํ˜์‹ ์„ ๊ฐ€์ ธ์˜จ Redmon ์€ 1๋…„ ๋’ค์ธ CVPR 2017 ์— YOLO๋ฅผ v2 ๋กœ ๋ฐœ์ „์‹œ์ผœ ๊ฐ€์ง€๊ณ  ๋‚˜์™”๋‹ค.

joseph redmon ์˜ ๋ฐœํ‘œ์ž๋ฃŒ์—์„œ intro ๋ฅผ ๋ฐœ์ทŒํ•ด์„œ yolo v2 ๋ฅผ ์„ค๋ช…ํ•˜์ž๋ฉด,

images13.png

YOLO ์ž์ฒด๋กœ๋„ ์ข‹์•˜์ง€๋งŒ ์ •ํ™•๋„๊ฐ€ ์•„์‰ฌ์› ๋‹ค.

images14.png

  • CVPR 2016 ์—์„œ ๋ฐ๋ชจ ์ค‘์— redmon ์ด ์ž ๊น ์‚ฌ๋ผ์กŒ์„ ๋•Œ, ๋’ท๋ฌธ์„ ํ™”์žฅ์‹ค๋กœ ์ธ์‹ํ•ด๋ฒ„๋ฆฌ๋Š” ์‚ฌ๊ณ ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. CVPR 2017 ์—์„œ ์ด ๋•Œ ์žฅ๋ฉด์„ ์บก์ณํ•ด์„œ ๊ฐ€์ง€๊ณ  ๋‚˜์™”๋‹ค.

YOLO v2์˜ ๋ชฉ์ 


images15.png

  • Make it better
  • Do it faster
  • Makes us stronger

๊ฐ๊ฐ์— ๋Œ€์‘ ๋˜๋Š” ํŠน์ง•์„ ์งง๊ฒŒ ์ •๋ฆฌ ํ–ˆ๋‹ค.

Make it better

images16.png

images17.png

images18.png

Do it faster

images19.png

Makes us stronger

YOLO v2 ๋Š” ์‹ค์ œ๋กœ YOLO9000 ์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. 9000๊ฐœ์˜ class ๋ฅผ classification ํ•˜๋ฉด์„œ detection ๊นŒ์ง€ ํ•ด๋‚ด๋Š” ๋†€๋ผ์›€์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋ณด์—ฌ์ฃผ๋Š”๋ฐ์š”. 9000๊ฐœ class๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€๋Š” ๋‹ค๋ฃจ์ง€ ์•Š๊ฒ ๋‹ค. ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์ž.

YOLO v2์˜ ์„ฑ๋Šฅ๋น„๊ต


images20.png

  • YOLO v2 ๋‹น์‹œ SSD, R-FCN ๋“ฑ์ด ์ด๋ฏธ ๋ฐœํ‘œ๋œ ์ƒํ™ฉ์ด์—ˆ๋‹ค. ํŠนํžˆ SSD ์™€ YOLO ๋Š” ๊ฐ™์€ single stage ๋ฐฉ๋ฒ•์„ ์ง€ํ–ฅํ•˜๊ณ  ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ์Ÿ๋ชจ๋ธ์ด ๋˜์—ˆ๊ณ , YOLO v2 ์ž…์žฅ์—์„œ๋Š” SSD ์™€์˜ ์„ฑ๋Šฅ ์ฐจ์ด๋ฅผ ๋ถ€๊ฐ์‹œํ‚ค๋Š”๊ฒŒ ์ค‘์š”ํ•œ ๊ณผ์ œ์˜€๋‹ค.

์•„๋ž˜๋Š” TED์˜ YOLO v2 ๋ฐ๋ชจ์˜์ƒ์ด๋‹ค.

https://www.ted.com/talks/joseph_redmon_how_computers_learn_to_recognize_objects_instantly?language=ko

YOLO (5) YOLO v3

RetinaNet์˜ ๋„๋ฐœ


RetinaNet figure ๋ฅผ ๋ณด์‹œ๋ฉด YOLO v2๋ฅผ ์–ธ๊ธ‰ํ•˜๋ฉด์„œ figure ์—๋Š” ๊ทธ๋ ค์ฃผ์ง€๋„ ์•Š๋Š” ์‹ ์„ ํ•จ์„ ๋ณด์—ฌ์ค€๋‹ค. ์‹ค์ œ๋กœ RetinaNet ์„ฑ๋Šฅ์ด ์ข‹๊ธฐ๋„ ํ–ˆ๋‹ค.

images21.png

๊ทธ๋Ÿฌ๋‚˜ Redmon์€ ์ƒˆ๋กœ์šด YOLO๋ฅผ ๋“ค๊ณ  RetinaNet๊ณผ ์ •๋ฉด ๋น„๊ต๋ฅผ ํ•œ๋‹ค.

images22.png

RetinaNet figure ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์™€์„œ YOLO v3 ์„ฑ๋Šฅ์„ ๋ฐ•์•„ ๋„ฃ์—ˆ๋‹ค. ํ•ด๋‹น figure ๋Š” YOLO ํ”„๋กœ์ ํŠธ ํŽ˜์ด์ง€์—๋„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.

images23.png

YOLO v3 ์›๋ฆฌ


https://taeu.github.io/paper/deeplearning-paper-yolov3/

YOLO v3 ๊ทธ ์ดํ›„


Redmon ์€ computer vision ์—ฐ๊ตฌ๊ฐ€ ์ž์‹ ์˜ ๋ชฉ์ ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ๊ตฐ์‚ฌ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ๊ฒƒ์— ํฐ ํšŒ์˜๊ฐ์„ ๋Š๋ผ๊ณ  ์ปดํ“จํ„ฐ๋น„์ „ ์—ฐ๊ตฌ๋ฅผ ๊ทธ๋งŒ๋‘๊ฒ ๋‹ค๊ณ  ์„ ์–ธํ•œ๋‹ค. YOLO ๋“ฑ darknet ํ”„๋กœ์ ํŠธ๋Š” Alexey Bochkovskiy ๊ฐ€ ๋ฉ”์ธํ…Œ์ด๋„ˆ๋กœ ์ด์–ด๋ฐ›๊ฒŒ ๋˜์—ˆ๋‹ค.

20๋…„ ํ˜„์žฌ yolo v4 ๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ๊ณ  1์ €์ž๋Š” Alexey Bochkovskiy๊ฐ€ ๋˜์—ˆ์ง€๋งŒ redmon์ด ๋น ์ง„ ๊ฒƒ์€ ์•ˆํƒ€๊นŒ์šด ์ผ์ด๋‹ค.

SSD (1) SSD์˜ ํŠน์ง•

SSD : Single Shot MultiBox Detector


YOLO ๊ฐ€ 1 stage ๋กœ object detection ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค๋Š” ์ฆ๋ช…์„ ํ•œ ๋’ค 1 stage detector ๊ฐ€ ์ˆ˜ ๋งŽ์€ ๋ฐœ์ „์„ ์ด๋ฃจ๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , SSD ๋Š” YOLO v1 ์—์„œ grid ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ƒ๊ธฐ๋Š” ๋‹จ์ ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ํ…Œํฌ๋‹‰์„ ์ œ์•ˆํ–ˆ๋‹ค.

  • image pyramid
  • pre-defined anchor box

Image Pyramid


images24.png

  • ImageNet ์œผ๋กœ pretrained ๋œ VGG16 ์„ ์‚ฌ์šฉ
  • VGG ์—์„œ pooling ์„ ๊ฑฐ์นœ block ์€ ํ•˜๋‚˜์˜ image feature ๋กœ ์‚ฌ์šฉ๊ฐ€๋Šฅ
    • YOLO ์—์„œ 7x7 feature map ํ•˜๋‚˜๋งŒ์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, SSD ๋Š” 38x38, 19x19, 10x10, 5x5, 3x3 โ€ฆ ์„ ์‚ฌ์šฉํ•จ
  • ๊ฐ feature map ์€ YOLO ์— ๊ด€์ ์—์„œ ๋ณด๋ฉด ์›๋ณธ ์ด๋ฏธ์ง€์—์„œ grid ํฌ๊ธฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ํ•˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์Œ
    • ์ฆ‰, 5x5 feature map ์—์„œ grid ๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ small object ๋ฅผ ๋ชป์ฐพ๋Š” ๋ฌธ์ œ๋ฅผ 38x38 feature map ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋‹จ์„œ๋ฅผ ๋งˆ๋ จ

Q. Image feature pyramid ์˜ ๋‹จ์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

A. YOLO ๋Œ€๋น„ ์ตœ์†Œ feature map ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๊ณ„์‚ฐ๋Ÿ‰์ด ๋งŽ๋‹ค. 38x38 feature map์€ box ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ์—๋Š” ์ถฉ๋ถ„ํžˆ ๊นŠ์ง€ ์•Š์€ network ์ผ ์ˆ˜ ์žˆ๋‹ค.

Workflow


  • YOLO v1 ์˜ ๋‘๋ฒˆ์งธ ๋‹จ์ ์€ box ์ •๋ณด (x,y,w,h) ๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•œ seed ์ •๋ณด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋„“์€ bbox ๋ถ„ํฌ๋ฅผ ๋ชจ๋‘ ํ•™์Šตํ•  ์ˆ˜ ์—†๋‹ค๋Š” ์  โ†’ ์ด๋กœ ์ธํ•œ ์„ฑ๋Šฅ ์†์‹ค์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • faster R-CNN ๋“ฑ ์—์„œ ์‚ฌ์šฉํ•˜๋Š” anchor ๋ฅผ ์ ์šฉํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ex) ๊ฐœ๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” bounding box ๋งŒ์˜ x, y, w, h ํŠน์„ฑ์ด ์กด์žฌํ•  ๊ฒƒ โ†’ pre-defined ๋œ box ๋ถ€ํ„ฐ x,y,w,h ๋ฅผ refinement ํ•˜๋Š” layer ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ด๋“์ด๋‹ค. ์ด anchor box ๋ฅผ SSD ์—์„œ๋Š” default box ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

images25.png

  • SSD ์˜ framework
    • (a) : ์ด๋ฏธ์ง€, GT ๋ฐ์ดํ„ฐ์…‹
    • (b) : (vgg backbone ์— ๊ฐ€๊นŒ์šด) fine-grained feature map. 8x8 grid ์—์„œ ๊ฐ๊ฐ์˜ grid ์— 3๊ฐœ anchor box ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ณ ์–‘์ด๋Š” ํฌ๊ธฐ๊ฐ€ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— (a) ์˜ ๊ณ ์–‘์ด๋Š” 8x8 feature map ๋‚ด grid ์ค‘ 1๊ฐœ์˜ anchor box ๋กœ ๋ถ€ํ„ฐ ํ•™์Šต๋  ์ˆ˜ ์žˆ๋‹ค.
    • (c) : ๊ฐœ์˜ ๊ฒฝ์šฐ ํฌ๊ณ  ์„ธ๋กœ๋กœ ๊ธด ๊ฒฝํ–ฅ์„ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— receptive field ๊ฐ€ ๋„“์€ 4x4 feature map ์ด ์‚ฌ์šฉ๋œ๋‹ค.

Default box๋ฅผ ์œ„ํ•œ Scale. ์—ฌ๋Ÿฌ ํฌ๊ธฐ์˜ default box ์ƒ์„ฑ์„ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.

images26.png

images27.png

images28.png

images29.png

SSD (2) SSD์˜ Loss์™€ ์„ฑ๋Šฅ

SSD Loss Function


images30.png

images31.png

images32.png

images33.png

images34.png

images35.png

images36.png

Hard negative mining


images37.png

SSD์˜ ์„ฑ๋Šฅ


images38.png

images39.png

FCOS


anchor free

https://hoya012.github.io/blog/ICCV-2019-paper-preview/

https://blog.naver.com/jinyuri303/221876480557

Face Detection์„ ์œ„ํ•œ ๋ชจ๋ธ๋“ค

์ง€๊ธˆ๊นŒ์ง€ One-Stage Detection์˜ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๋‘ ๊ฐ€์ง€ ๋ชจ๋ธ์ธ YOLO์™€ SSD์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์•˜๋‹ค. ๋‹ค์Œ ์‹ค์Šต์—์„œ๋Š” SSD๋ฅผ ํ™œ์šฉํ•œ Face Detection์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•ด ๋ณด๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ๋”์šฑ ๊นŠ์ด ์žˆ๊ฒŒ ์•Œ์•„๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ดํ›„๋กœ ํŠนํžˆ Face Detection ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์€ ๋…ผ๋ฌธ๋“ค์ด ์ง€์†์ ์œผ๋กœ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. ์•„๋ž˜ ์–ธ๊ธ‰๋œ ๋‚ด์šฉ๋“ค์„ ์ถ”๊ฐ€์ ์œผ๋กœ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.

S3FD https://seongkyun.github.io/papers/2019/03/21/S3FD/https://arxiv.org/abs/1708.05237

DSFD https://arxiv.org/pdf/1810.10220.pdf

RetinaFace https://arxiv.org/pdf/1905.00641.pdf