[CV] RCNN, Fast R-CNN, Faster R-CNN

โ€ขPaperReview

2021๋…„ ๋จธ์‹ ๋Ÿฌ๋‹ ์Šคํ„ฐ๋””์—์„œ ์ง„ํ–‰ํ•˜์˜€๋˜ 'R-CNN, Fast R-CNN, Faster R-CNN' ๋…ผ๋ฌธ ๋ฆฌ๋ทฐ๋ฅผ ์žฌ๊ตฌ์„ฑํ•œ ํฌ์ŠคํŒ…์ž„์„ ๋ฏธ๋ฆฌ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.

introduction

์œ„ ๋…ผ๋ฌธ์€ CV(Computer Vision), ์ฆ‰ ์ด๋ฏธ์น˜ ์ฒ˜๋ฆฌ์— ์žˆ์–ด ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋…ผ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ R-CNN, Fast R-CNN, Faster R-CNN์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.
์šฐ์„  ์ด ๊ธฐ๋ฒ•๋“ค์ด ๋ฌด์—‡์ธ๊ฐ€์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„ 3๊ฐ€์ง€ ๊ธฐ์ˆ ๋“ค์€ Object Detection, ์ฆ‰ ์‚ฌ๋ฌผ์„ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋“ค์–ด๊ฐ€๋Š” ํ•˜๋‚˜์˜ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด Object Detection์€ ๋ฌด์—‡์ผ๊นŒ์š”?

Object Detection (์‚ฌ๋ฌผ์„ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•)

์ด๋ฏธ์ง€ ๋‚ด์—์„œ ์‚ฌ๋ฌผ์„ ์ธ์‹ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฌผ์ฒด์— ๋Œ€ํ•ด ์–ด๋–ค ๋ฌผ์ฒด์ธ์ง€ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์„ Classification์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค.
๋˜ํ•œ ๊ทธ ๋ฌผ์ฒด๊ฐ€ ์–ด๋”” ์žˆ๋Š”์ง€ ๋ฐ•์Šค๋ฅผ ํ†ตํ•ด ์œ„์น˜ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์„ Localization์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค.

Object Detection์ด๋ž€, ๋‹ค์ˆ˜์˜ ์‚ฌ๋ฌผ์ด ์กด์žฌํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๊ฐ ์‚ฌ๋ฌผ์˜ ์œ„์น˜์™€ ํด๋ž˜์Šค๋ฅผ ์ฐพ๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
2

1-Stage Detector vs 2-Stage Detector

Deep Learning์„ ์ด์šฉํ•œ object detection์€ ํฌ๊ฒŒ 1-stage detector์™€ 2-stage detector๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์„ ํ†ตํ•ด ์„ค๋ช…์„ ์ด์–ด ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ€์šด๋ฐ ์ˆ˜ํ‰ ํ™”์‚ดํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์œ„ ์ชฝ์— ์œ„์น˜ํ•œ ๋…ผ๋ฌธ๋“ค์ด 2-stage detector ๋…ผ๋ฌธ๋“ค์ด๊ณ , ์•„๋ž˜ ์ชฝ์— ์œ„์น˜ํ•œ ๋…ผ๋ฌธ๋“ค์ด 1-stage detector ๋…ผ๋ฌธ๋“ค ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์œ„ ์ชฝ์— ์œ„์น˜ํ•œ 2-stage detector ๋…ผ๋ฌธ๋“ค์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
๊ทธ๋ ‡๋‹ค๋ฉด ์—ฌ๊ธฐ์„œ ๊ณ„์† ๋‚˜์˜ค๋Š” ๋ง, stage detector๋ž€ ๋ฌด์—‡์ด๊ณ , 1, 2 stage detector์˜ ์ฐจ์ด๋Š” ๋ฌด์—‡์ผ๊นŒ์š”??
3

Object Detection ๋ฌธ์ œ๋Š” ์•ž์—์„œ ์ด์•ผ๊ธฐํ•˜์˜€๋“ฏ์ด ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” localization ๋ฌธ์ œ์™€, ๋ฌผ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๋Š” classification ๋ฌธ์ œ๋ฅผ ํ•ฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
1-stage detector๋Š” ์ด ๋‘ ๋ฌธ์ œ๋ฅผ ๋™์‹œ์— ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ณ , 2-stage detector๋Š” ์ด ๋‘ ๋ฌธ์ œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ 1-stage detector๊ฐ€ ๋น„๊ต์  ๋น ๋ฅด์ง€๋งŒ ์ •ํ™•๋„๊ฐ€ ๋‚ฎ๊ณ , ๋ฐ˜๋Œ€๋กœ 2-stage detector๊ฐ€ ๋น„๊ต์  ๋А๋ฆฌ์ง€๋งŒ ์ •ํ™•๋„๊ฐ€ ๋†’์Šต๋‹ˆ๋‹ค.

์˜ค๋Š˜ ์šฐ๋ฆฌ๊ฐ€ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃฐ R-CNN, Fast R-CNN, Faster R-CNN์€ 2-stage detector์˜ ๋Œ€ํ‘œ์ ์ธ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. (์ฐธ๊ณ ๋กœ 1-stage์—๋Š” YOLO ๊ณ„์—ด๊ณผ SSD ๊ณ„์—ด์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.)
4

R-CNN: Regions with CNN features

Object Detection ๋ถ„์•ผ์—์„œ ์ตœ์ดˆ๋กœ ๋”ฅ๋Ÿฌ๋‹(CNN)์„ ์ ์šฉ์‹œํ‚จ ๊ฒƒ์ด R-CNN์ž…๋‹ˆ๋‹ค. ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœํ•˜๋Š” R-CNN์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Selective search๋ฅผ ์ด์šฉํ•ด 2,000๊ฐœ์˜ ROI(Region of Interest)๋ฅผ ์ถ”์ถœ.
  2. ๊ฐ ROI์— ๋Œ€ํ•˜์—ฌ wraping์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์ž…๋ ฅ ์ด๋ฏธ์ง€๋กœ ๋ณ€๊ฒฝ.
  3. Warped image๋ฅผ CNN์— ๋„ฃ์–ด์„œ(forward) ์ด๋ฏธ์ง€ feature๋ฅผ ์ถ”์ถœ.
  4. ํ•ด๋‹น feature๋ฅผ SVM์— ๋„ฃ์–ด ํด๋ž˜์Šค(class) ๋ถ„๋ฅ˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Œ.
    • ์ด๋•Œ ๊ฐ ํด๋ž˜์Šค์— ๋…๋ฆฝ์ ์œผ๋กœ ํ›ˆ๋ จ๋œ ์ด์ง„(binary) SVM์„ ์‚ฌ์šฉ.
  5. ํ•ด๋‹น feature๋ฅผ regressor์— ๋„ฃ์–ด ์œ„์น˜(bounding box)๋ฅผ ์˜ˆ์ธก.

R-CNN์€ 2-stage detector๋กœ์„œ ์ „์ฒด task๋ฅผ ๋‘ ๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ฒซ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” Region Proposal๋กœ ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ์ผ์ด๊ณ , ๋‘๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” Region Classification์œผ๋กœ ๋ฌผ์ฒด๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ผ์ž…๋‹ˆ๋‹ค.

5
6

์ด ๋…ผ๋ฌธ์—์„œ๋Š” ์œ„ ๋‘ task๋ฅผ ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์กฐ๋ฅผ ์•„๋ž˜์˜ 3๊ฐ€์ง€ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„์–ด ๋†“์•˜์Šต๋‹ˆ๋‹ค.

  • ์นดํ…Œ๊ณ ๋ฆฌ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋ฌผ์ฒด์˜ ์˜์—ญ์„ ์ฐพ๋Š” ๋ชจ๋“ˆ์ธ Region Proposal
  • ๊ฐ๊ฐ์˜ ์˜์—ญ์œผ๋กœ๋ถ€ํ„ฐ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ Feature Vector๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” Large Convolutional Neural Network์ธ CNN
  • Classification์„ ์œ„ํ•œ ์„ ํ˜• ์ง€๋„ํ•™์Šต ๋ชจ๋ธ์ธ Support Vector Machine์ธ SVM

CNN์˜ ๊ฒฝ์šฐ, ์ด์ „ ๋…ผ๋ฌธ์ธ ImageNet Classification with Deep Convolutional Neural Networks์—์„œ ์ด์•ผ๊ธฐ ํ–ˆ๊ธฐ์— ์ƒ๋žตํ•˜๊ณ ,
Region proposal๊ณผ SVM์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Region Proposal (์˜์—ญ ์ฐพ๊ธฐ)

R-CNN์˜ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. R-CNN์€ Region Proposal ๋‹จ๊ณ„์—์„œ Selective Search๋ผ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.
Selective Search ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Segmentation ๋ถ„์•ผ์— ๋งŽ์ด ์“ฐ์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ, ๊ฐ์ฒด์˜ค ์ฃผ๋ณ€ ๊ฐ„์˜ ์ƒ‰๊ฐ(Color), ์งˆ๊ฐ(Texture) ์ฐจ์ด, ๋‹ค๋ฅธ ๋ฌผ์ฒด์— ๋‘˜๋Ÿฌ ์‹ธ์—ฌ ์žˆ๋Š”์ง€(Enclosed) ์—ฌ๋ถ€ ๋“ฑ์„ ํŒŒ์•…ํ•ด์„œ ๋‹ค์–‘ํ•œ ์ „๋žต์œผ๋กœ ๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž…๋‹ˆ๋‹ค.

8
์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Bounding box๋“ค์„ Randomํ•˜๊ฒŒ ๋งŽ์ด ์ƒ์„ฑ์„ ํ•˜๊ณ , ์ด๋“ค์„ ์กฐ๊ธˆ์”ฉ Mergeํ•ด ๋‚˜๊ฐ€๋ฉด์„œ ๋ฌผ์ฒด๋ฅผ ์ธ์‹ํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ๋Š” "๋ฌผ์ฒด์˜ ์œ„์น˜๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๊ตฌ๋‚˜" ์ •๋„๋กœ ์ดํ•ดํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•œ ๋…ผ๋ฌธ๋„ Selective Search๋…ผ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

R-CNN์—์„œ๋Š” Selective Search ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ํ•œ ์ด๋ฏธ์ง€์—์„œ 2,000๊ฐœ์˜ Region์„ ๋ฝ‘์•„๋‚ด๊ณ , ์ด๋“ค์„ ๋ชจ๋‘ CNN์— ๋„ฃ๊ธฐ ์œ„ํ•ด ๊ฐ™์€ ์‚ฌ์ด์ฆˆ(224*224)๋กœ ์••์ถ•ํ•˜์—ฌ ํ†ต์ผ์‹œํ‚ค๋Š” ์ž‘์—…(Wraping)์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค.

SVM (Support Vector Machine)

CNN ๋ชจ๋ธ๋กœ๋ถ€ํ„ฐ Feature๊ฐ€ ์ถ”์ถœ์ด ๋˜๊ณ  Training Label์ด ์ ์šฉ๋˜๊ณ  ๋‚˜๋ฉด, Linear SVM์„ ์ด์šฉํ•˜์—ฌ classification์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.(Category-Specific Linear SVMs)
์—ฌ๊ธฐ์„œ ์˜๋ฌธ์ ์ด ๋“œ๋Š” ๋ถ€๋ถ„๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช… CNN์—์„œ Classifier๋กœ softmax๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ ๊ฐ™์€๋ฐ R-CNN์—์„œ๋Š” ์™œ SVM์„ ์‚ฌ์šฉํ•˜์˜€์„๊นŒ? ๋ผ๋Š” ์˜๋ฌธ์  ๋ง์ž…๋‹ˆ๋‹ค.
9

์ด ๋…ผ๋ฌธ์—์„œ๋Š” CNN์„ fine-tunningํ•  ๋•Œ, ์ด๋ฏธ์ง€์˜ positive/negative examples์™€ SVM์„ ํ•™์Šตํ•  ๋•Œ์˜ ์ด๋ฏธ์ง€์˜ positive/negative examples๋ฅผ ๋”ฐ๋กœ ์ •์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
CNN fine-tunning์—์„œ๋Š” IoU๊ฐ€ 0.5๊ฐ€ ๋„˜์œผ๋ฉด positive๋กœ ๋‘์—ˆ๊ณ , ์ด์™ธ์—๋Š” "background"๋กœ labeledํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.
10

์—ฌ๊ธฐ์„œ IoU๋ž€, Intersection ove Union์˜ ์ค„์ž„๋ง๋กœ, ๋‘ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค๊ฐ€ ๊ฒน์น˜๋Š” ๋น„์œจ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์„ฑ๋Šฅ ํ‰๊ฐ€๋ฅผ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, mAP@0.5๋Š” ์ •๋‹ต๊ณผ ์˜ˆ์ธก์˜ IoU๊ฐ€ 50% ์ด์ƒ์ผ ๋•Œ ์ •๋‹ต์œผ๋กœ ํŒ์ •ํ•˜๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋งํ•˜๋ฉฐ, NMS ๊ณ„์‚ฐ์„ ์˜ˆ์‹œ๋กœ ๋“ค์ž๋ฉด, ๊ฐ™์€ ํด๋ž˜์Šค(class)๋ผ๋ฆฌ IoU๊ฐ€ 50% ์ด์ƒ์ผ ๋•Œ ๋‚ฎ์€ confidence์˜ box๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
์ด๋•Œ, mAP๋Š” mean Average Precision์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด๋Š” Computer Vision ๋ถ„์•ผ์—์„œ ์„ฑ๋Šฅํ‰๊ฐ€ ์ง€ํ‘œ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
11

๋ฐ˜๋ฉด์— SVM์„ ํ•™์Šตํ•  ๋•Œ์˜ ground-truth boxes๋งŒ positive example๋กœ ๋‘๊ณ , IoU๊ฐ€ 0.3 ๋ฏธ๋งŒ์€ ๋ชจ๋‘ negative, ๋‚˜๋จธ์ง€๋Š” ์ „๋ถ€ ๋ฌด์‹œํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
SVM์„ CNN fine-tunning๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๋‘๊ณ  ํ•™์Šตํ–ˆ์„ ๋•Œ ํ›จ์”ฌ ์„ฑ๋Šฅ์ด ์•ˆ ์ข‹๊ฒŒ ๋‚˜์™”๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๊ธฐ์ƒ์œผ๋กœ fine-tunning ํ•™์Šต ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— IoU๊ฐ€ 0.5~1 ์‚ฌ์ด์˜ positive ์˜์—ญ๋“ค์ด ๋‹ค์†Œ ์ •ํ™•ํ•˜์ง€ ์•Š์•˜๊ณ , ๋•Œ๋ฌธ์— ๋ฐ”๋กœ softmax classifier๋ฅผ ์ ์šฉ์‹œ์ผฐ์„ ๋•Œ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์•„์„œ ์œ„์™€ ๊ฐ™์ด SVM์„ ํ•™์Šตํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ–ˆ๋‹ค๊ณ  ๋ณด์—ฌ์ง‘๋‹ˆ๋‹ค.

์–ด์ฐŒ๋๋Š” SVM์€ CNN์œผ๋กœ๋ถ€ํ„ฐ ์ถ”์ถœ๋œ ๊ฐ๊ฐ์˜ feature vector๋“ค์˜ ์ ์ˆ˜๋ฅผ class ๋ณ„๋กœ ๋งค๊ธฐ๊ณ , ๊ฐ์ฒด์ธ์ง€ ์•„๋‹Œ์ง€, ๊ฐ์ฒด๋ผ๋ฉด ์–ด๋–ค ๊ฐ์ฒด์ธ์ง€ ๋“ฑ์„ ํŒ๋ณ„ํ•˜๋Š” classifier์ž…๋‹ˆ๋‹ค.
R-CNN ๋…ผ๋ฌธ์—์„œ๋„ ์ด์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๊ธฐ์žฌํ•ด ๋†“์•˜์Šต๋‹ˆ๋‹ค.
VOC2007 ๋ฐ์ดํ„ฐ์…‹ ๊ธฐ์ค€์œผ๋กœ Softmax๋ฅผ ์‚ฌ์šฉํ•˜์˜€์„ ๋•Œ mAP๊ฐ’์ด 54.2%์—์„œ 50.9%๋กœ ๋–จ์–ด์กŒ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

R-CNN: Bounding Box Regression

Selective Search๋กœ ๋งŒ๋“ค์–ด๋‚ธ Bounding Box๋Š” ์•„๋ฌด๋ž˜๋„ ์™„์ „ํžˆ ์ •ํ™•ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฌผ์ฒด๋ฅผ ์ •ํ™•ํžˆ ๊ฐ์‹ธ๋„๋ก ์กฐ์ •ํ•ด์ฃผ๋Š” ์„ ํ˜•ํšŒ๊ท€ ๋ชจ๋ธ(Bounding Box Regression) ์„ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์˜ ๊ฐ„ํŽธํ™”๋ฅผ ์œ„ํ•ด bounding box๋ฅผ bBox๋กœ ๋ช…์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
bBox์˜ input ๊ฐ’์€ N๊ฐœ์˜ Training Pairs๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
12

x, y, w, h๋Š” ๊ฐ๊ฐ bBox์˜ x, y์ขŒํ‘œ(์œ„์น˜), width(๋„ˆ๋น„), height(๋†’์ด) ๋ฅผ ๋œป ํ•ฉ๋‹ˆ๋‹ค.
P๋Š” ์„ ํƒ๋œ bBox์ด๊ณ  G๋Š” Ground Truth(์‹ค์ œ ๊ฐ’) bBox์ž…๋‹ˆ๋‹ค.
์„ ํƒ๋œ P๋ฅผ G์— ๋งž์ถ”๋„๋ก transform ํ•˜๋Š” ๊ฒƒ์„ ํ•™์Šตํ•˜๋Š” ๊ฒƒ์ด Bounding Box Regression์˜ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.
13

R-CNN์˜ ํ•œ๊ณ„์ 

R-CNN์€ ์ด์ „ Object Detection ๋ฐฉ๋ฒ•๋“ค์— ๋น„ํ•ด ๊ต‰์žฅํžˆ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ณด์˜€๋‹ค๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํ•˜์ง€๋งŒ ๋ช…ํ™•ํ•œ ๋ช‡๋ช‡ ๋‹จ์ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ž…๋ ฅ ์ด๋ฏธ์ง€์— ๋Œ€ํ•˜์—ฌ CPU ๊ธฐ๋ฐ˜์˜ Selective Search๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“  RoI๋ฅผ CNN์— ๋„ฃ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— 2,000๋ฒˆ์˜ CNN ์—ฐ์‚ฐ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
    • ํ•™์Šต(training)๊ณผ ํ‰๊ฐ€(testing) ๊ณผ์ •์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ „์ฒด ์•„ํ‚คํ…์ฒ˜์—์„œ SVM, Regressor ๋ชจ๋“ˆ์ด CNN๊ณผ ๋ถ„๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • CNN์€ ๊ณ ์ •๋˜๋ฏ€๋กœ, SVM๊ณผ Bounding Box Regression ๊ฒฐ๊ณผ๋กœ CNN์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ๋‹ค์‹œ ๋งํ•ด end-to-end ๋ฐฉ์‹์œผ๋กœ ํ•™์Šตํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ์ค„์„ ์ •๋ฆฌํ•˜์ž๋ฉด Back Propagation์ด ์•ˆ๋œ๋‹ค ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. R-CNN์€ Multi-stage Trainig์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, SVM, Bounding Box Regression์—์„œ ํ•™์Šตํ•œ ๊ฒฐ๊ณผ๊ฐ€ CNN์„ ์—…๋ฐ์ดํŠธ ์‹œํ‚ค์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ, R-CNN์€ ์ตœ์ดˆ๋กœ Object Detection์— ๋”ฅ๋Ÿฌ๋‹ ๋ฐฉ๋ฒ•์ธ CNN์„ ์ ์šฉ์‹œ์ผฐ๋‹ค๋Š” ์ ๊ณผ ์ดํ›„ 2-Stage detector๋“ค์˜ ๊ตฌ์กฐ์— ๋ง‰๋Œ€ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์ณค๋‹ค๋Š” ์ ์—์„œ ์˜๋ฏธ๊ฐ€ ํฐ ๋…ผ๋ฌธ์ž…๋‹ˆ๋‹ค.

14

๋‹ค์Œ์œผ๋กœ ๋“ฑ์žฅํ•œ Fast R-CNN์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Fast R-CNN

**Fast R-CNN*๋„ R-CNN๊ณผ ๋˜‘๊ฐ™์ด ์ฒ˜์Œ์— Selective Search๋ฅผ ํ†ตํ•ด Region Proposal์„ ๋ฝ‘์•„๋‚ด๊ธด ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ R-CNN๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ฝ‘์•„๋‚ธ ์˜์—ญ์„ Cropํ•˜์ง€ ์•Š๊ณ  ๊ทธ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์ „์ฒด ์ด๋ฏธ์ง€๋ฅผ CNN Model์— ์ง‘์–ด ๋„ฃ์€ ํ›„ CNN์œผ๋กœ๋ถ€ํ„ฐ ๋‚˜์˜จ Feature Map์— RoI Projection์„ ํ•˜๋Š” ๋ฐฉ์‹์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, input image 1์žฅ์œผ๋กœ๋ถ€ํ„ฐ CNN Model์— ๋“ค์–ด๊ฐ€๋Š” ์ด๋ฏธ์ง€๋Š” 2,000์žฅ โ†’ 1์žฅ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
15

์ด Projection ํ•œ bBox๋“ค์„ RoI Pooling ํ•˜๋Š” ๊ฒƒ์ด Fast R-CNN์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.
Projection์‹œํ‚จ RoI๋ฅผ **FCs(Fully Connected Layer)**์— ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ™์€ Resolution์˜ Feature map์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ Selective Search๋ฅผ ํ†ตํ•ด ๊ตฌํ•ด์กŒ๋˜ RoI ์˜์—ญ์€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ด Resolution์˜ ํฌํ‚ค๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•ด RoI Pooling์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

RoI Pooling์€ ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ Feature Map์˜ Region๋งˆ๋‹ค Stride๋ฅผ ๋‹ค๋ฅด๊ฒŒ Max Pooling์„ ์ง„ํ–‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’์„ ๋งž์ถ”๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
16

๋งˆ์ง€๋ง‰์œผ๋กœ Fixed Length Feature Vector๋ฅผ FCs์— ์ง‘์–ด๋„ฃ์€ ํ›„ ๋‘ ์ž์‹ layer์ธ output layer๋กœ ๋ป—์–ด ๋‚˜๊ฐ€ Classification๊ณผ bBOx Regression์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” R-CNN๊ณผ ๋น„์Šทํ•˜๊ฒŒ ์ง„ํ–‰๋˜์ง€๋งŒ Fast R-CNN์€ Softmax๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Classification์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค๋Š” ์ ์—์„œ ์ฐจ์ด๋ฅผ ๋ณด์ž…๋‹ˆ๋‹ค.

์ดํ›„ ๋“ฑ์žฅํ•œ Faster R-CNN์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Faster R-CNN

Faster R-CNN์˜ ๋…ผ๋ฌธ์—์„œ๋Š”, Region Proposal ๋ฐฉ๋ฒ•์„ GPU๋ฅผ ํ†ตํ•œ ํ•™์Šต์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ํ™•์‹คํžˆ ์„ฑ๋Šฅ์ด ์ฆ๊ฐ€ํ•  ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ Faster R-CNN์€ Deep Network๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Region Proposal๋ฅผ ์ง„ํ–‰ํ•˜๋Š” **RPN (Region Proposal Networks)**๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.
17

Faster R-CNN: Region Proposal Network(RPN)

RPN์˜ input์€ image์˜ Feature Map์ด๊ณ , output์€ Object proposal๋“ค์˜ Sample์ž…๋‹ˆ๋‹ค.
์ด Sample๋“ค์„ Fast R-CNN๊ณผ ๋™์ผํ•˜๊ฒŒ RoI Pooling์„ ํ•œ ํ›„, Classification, bBox Regression์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
Pretrained๋œ CNN์„ ๊ฑฐ์ณ์„œ ๋‚˜์˜จ Feature Map์€ ZFNet ๊ธฐ์ค€์œผ๋กœ 256-d, VGG-16 ๊ธฐ์ค€์œผ๋กœ 512-d๋ฅผ ๊ฐ–๊ฒŒ๋ฉ๋‹ˆ๋‹ค.(์—ฌ๊ธฐ์„œ d๋Š” ์ฐจ์›์œผ๋กœ ์ดํ•ดํ•˜์˜€์Šต๋‹ˆ๋‹ค.)

์ด๋•Œ ZFNet์€ ILSVRC 2013์—์„œ ์šฐ์Šนํ•œ CNN๊ตฌ์กฐ์ด๊ณ , VGG-16์€ ์˜ฅ์Šคํผ๋“œ ๋Œ€ํ•™์˜ ์—ฐ๊ตฌํŒ€ VGG์— ์˜ํ•ด ๊ฐœ๋ฐœ๋œ VGGNet์˜ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜๋กœ 16๊ฐœ ์ธต์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ชจ๋ธ์ด๋ฉฐ, 2014๋…„ ์ด๋ฏธ์ง€๋„ท ์ธ์‹๋Œ€ํšŒ์—์„œ ์ค€์šฐ์Šนํ•œ ๋ชจ๋ธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ด Feature Map์„ k๊ฐœ์˜ Anchor box๋ฅผ ํ†ตํ•ด ์˜์—ญ์„ ์ •ํ•˜๊ณ  Classification Layer์™€ bBox Regression์„ ๊ฑฐ์ณ์„œ ๋ฌผ์ฒด๊ฐ€ ์œ„์น˜ํ•œ ๊ณณ์„ ํ•™์Šตํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ Classification Layer๊ฐ€ ๋ฌผ์ฒด๊ฐ€ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€๋งŒ ํ™•์ธํ•˜๋ฏ€๋กœ, Class์˜ ์ˆ˜๋Š” 2์ž…๋‹ˆ๋‹ค.
18

์š”์•ฝํ•˜์ž๋ฉด...

3๊ฐ€์ง€ ๋ชจ๋ธ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๋ฐœ์ „ ๋ฐฉํ–ฅ์˜ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ ๋ชจ๋ธ์˜ ์žฅ๋‹จ์ ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ faster R-CNN์œผ๋กœ ๊ฐˆ์ˆ˜๋ก ์‚ฌ์ง„๋‹น ์†๋„๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•˜์˜€์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋™์‹œ์— ์ •ํ™•๋„๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” mAP์˜ ๊ฐ’ ๋˜ํ•œ ๋ฏธ๋น„ํ•˜์ง€๋งŒ ์ฆ๊ฐ€ํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
19
20


PS. ์ถ”๊ฐ€ ๋ฌธ์˜์‚ฌํ•ญ ๋ฐ ์งˆ๋ฌธ์€ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฅผ ํ†ตํ•ด ์ €๋„ ๋” ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์„ํ…Œ๋‹ˆ๊นŒ์š”. ๊ธด ๊ธ€ ์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

Reference

Share