๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ› Research/Detection & Segmentation

[Object Detection] ๊ฐ์ฒด ๊ฒ€์ถœ ๋ชจ๋ธ (2) : Fast RCNN, Faster RCNN

by ๋ญ…์ฆค 2024. 8. 11.
๋ฐ˜์‘ํ˜•

์ง€๋‚œ๋ฒˆ์— ์‚ดํŽด๋ณธ ์ดˆ๊ธฐ ๊ฐ์ฒด ๊ฒ€์ถœ ๋ชจ๋ธ๋“ค์ด ์ด๋ฏธ์ง€์—์„œ ๊ฐ์ฒด๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์‹œํ–ˆ๋‹ค๋ฉด, ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์ด ๊ณผ์ •์„ ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์˜€์ฃ . ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•œ ๋‘ ๊ฐ€์ง€ ํ˜์‹ ์ ์ธ ๋ชจ๋ธ์ธ Fast RCNN๊ณผ Faster RCNN์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค ํ•ด์š”.

 

Fast RCNN์€ RCNN์˜ ๋Š๋ฆฐ ์†๋„๋ฅผ ๊ฐœ์„ ํ•ด ๊ฐ์ฒด ๊ฒ€์ถœ์„ ํ•œ์ธต ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๊ณ , Faster RCNN์€ ์ด ๊ณผ์ •์„ GPU๋กœ ๊ฐ€์†ํ™”ํ•ด ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์— ํ•œ ๋ฐœ ๋” ๋‹ค๊ฐ€์„ฐ์–ด์š”. ๋‘ ๋ชจ๋ธ์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๊ณ , ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๋Š”์ง€ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๋ฉด์„œ ๊ฐ์ฒด ๊ฒ€์ถœ ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์„ ํ•จ๊ป˜ ๋”ฐ๋ผ๊ฐ€๋ณด์„ธ์š”! ๐Ÿ˜Š

 

๐Ÿ“Œ ๊ฐ์ฒด ๊ฒ€์ถœ ๋ชจ๋ธ ์ „์ฒด ํฌ์ŠคํŒ…


1. Fast RCNN

 

Fast RCNN์€ RCNN๊ณผ SPPNet์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด 2015๋…„ Ross Girshick์— ์˜ํ•ด ์ œ์•ˆ๋œ ๋ชจ๋ธ์ด์—์š”. ์ด ๋ชจ๋ธ์€ ๊ฐ์ฒด ๊ฒ€์ถœ(Object Detection)์„ ๋” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๋งŒ๋“ค์—ˆ์–ด์š”. ๊ธฐ์กด์˜ RCNN์—์„œ ๋ฐœ์ƒํ•˜๋˜ ์ค‘๋ณต ๊ณ„์‚ฐ๊ณผ ์†๋„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด, ์‹ค์งˆ์ ์ธ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์ด๋ค„๋ƒˆ์–ด์š”.

 

Fast RCNN ์ž‘๋™ ๋ฐฉ์‹

  • ์ด๋ฏธ์ง€ Feature Extraction
    • RCNN์ด๋‚˜ SPPNet๊ณผ ๋‹ฌ๋ฆฌ, Fast RCNN์—์„œ๋Š” ์ด๋ฏธ์ง€๋ฅผ CNN์— ํ†ต๊ณผ์‹œ์ผœ ํ•œ ๋ฒˆ์— feature map์„ ์ถ”์ถœํ•ด์š”.
    • ์ด ๊ณผ์ •์€ ๊ธฐ์กด ๋ชจ๋ธ๋“ค์ด ๊ฐ Region Proposal๋งˆ๋‹ค CNN์„ ๋ฐ˜๋ณต ์‹คํ–‰ํ•˜๋˜ ๋ฐฉ์‹๋ณด๋‹ค ํ›จ์”ฌ ํšจ์œจ์ ์ด์—์š”.
  • RoI Pooling
    • Fast RCNN์€ Region of Interest (RoI)์— ๋Œ€ํ•ด ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ feature๋ฅผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•ด RoI Pooling ๋ ˆ์ด์–ด๋ฅผ ๋„์ž…ํ–ˆ์–ด์š”.
    • RoI Pooling์€ SPPNet์˜ Spatial Pyramid Pooling (SPP)๊ณผ ์œ ์‚ฌํ•œ ๊ฐœ๋…์ด์ง€๋งŒ, ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ feature๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
    • ์ด ๋ ˆ์ด์–ด๋Š” ์ถ”์ถœ๋œ feature map์—์„œ ๊ฐ RoI์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์„ ์ž˜๋ผ๋‚ด๊ณ , ์ด๋ฅผ ๊ณ ์ •๋œ ํฌ๊ธฐ๋กœ ์กฐ์ •ํ•ด์ค˜์š”.
  • End-to-End ํ•™์Šต
    • Fast RCNN์˜ ํ•ต์‹ฌ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ๋ชจ๋“  ํ•™์Šต ๊ณผ์ •์ด end-to-end๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค๋Š” ๊ฑฐ์˜ˆ์š”.
    • RoI Pooling์„ ๊ฑฐ์นœ feature๋Š” Fully Connected (FC) ๋ ˆ์ด์–ด๋ฅผ ํ†ต๊ณผํ•˜๋ฉฐ, ์ดํ›„ ๋‘ ๊ฐœ์˜ branch๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.
    • ํ•˜๋‚˜๋Š” Softmax๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ์ฒด์˜ ํด๋ž˜์Šค๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ , ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” Bounding Box Regressor๋กœ ๋ฐ•์Šค์˜ ์œ„์น˜๋ฅผ ์กฐ์ •ํ•ด์š”.
    • Fast RCNN์€ ๊ธฐ์กด ๋ชจ๋ธ๋“ค์ด ๊ฐ๊ฐ์˜ ๋‹จ๊ณ„์—์„œ ๋ณ„๋„์˜ ํ•™์Šต์ด ํ•„์š”ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ, ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ๋กœ ํ†ตํ•ฉ๋œ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

Fast RCNN์˜ ๋‹จ์ 

Fast RCNN์€ RCNN๊ณผ SPPNet์— ๋น„ํ•ด ํฐ ๋ฐœ์ „์„ ์ด๋ค˜์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด์š”:

  • Selective Search์˜ ๋ณ‘๋ชฉ: Fast RCNN์€ ์—ฌ์ „ํžˆ Selective Search๋ฅผ ์‚ฌ์šฉํ•ด RoI๋ฅผ ์ƒ์„ฑํ•ด์š”. ์ด ๊ณผ์ •์€ CPU์—์„œ ์ˆ˜ํ–‰๋˜๋ฉฐ, ์—ฐ์‚ฐ ์†๋„๊ฐ€ ๋Š๋ฆฌ๊ณ  ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์–ด์š”.
  • ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ํ•œ๊ณ„: Selective Search๋กœ ์ธํ•œ ์†๋„ ๋ฌธ์ œ ๋•Œ๋ฌธ์—, Fast RCNN์€ ์™„์ „ํ•œ ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ๊ฒ€์ถœ์—๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š์•„์š”.

 

2. Faster RCNN

 

Faster RCNN์€ Fast RCNN์˜ ๋ณ‘๋ชฉ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 2015๋…„ Shaoqing Ren๊ณผ ๊ทธ์˜ ๋™๋ฃŒ๋“ค์— ์˜ํ•ด ์ œ์•ˆ๋œ ๋ชจ๋ธ์ด์—์š”. Faster RCNN์€ ๊ฐ์ฒด ๊ฒ€์ถœ ๊ธฐ์ˆ ์—์„œ ํฐ ๋„์•ฝ์„ ์ด๋ค˜์œผ๋ฉฐ, Region Proposal Network (RPN)์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ๊ฐœ๋…์„ ๋„์ž…ํ•ด ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œ์ผฐ์–ด์š”.

 

 

Faster RCNN ์ž‘๋™ ๋ฐฉ์‹

  • Feature Map Extraction
    • Faster RCNN์˜ ์ฒซ ๋‹จ๊ณ„๋Š” Fast RCNN๊ณผ ๋™์ผํ•˜๊ฒŒ ์ด๋ฏธ์ง€๋ฅผ CNN์— ํ†ต๊ณผ์‹œ์ผœ feature map์„ ์ถ”์ถœํ•˜๋Š” ๊ฑฐ์˜ˆ์š”.
  • Region Proposal Network (RPN)
    • Faster RCNN์˜ ๊ฐ€์žฅ ํฐ ํ˜์‹ ์€ ๋ฐ”๋กœ RPN์ด์—์š”. RPN์€ Selective Search๋ฅผ ๋Œ€์ฒดํ•ด, GPU์—์„œ ๋น ๋ฅด๊ฒŒ RoI๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค˜์š”.
    • RPN์€ ์ž‘์€ ํฌ๊ธฐ์˜ CNN์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, feature map์—์„œ Anchor Box๋ผ๋Š” ์ผ์ข…์˜ ํ›„๋ณด ์˜์—ญ์„ ์ƒ์„ฑํ•˜๊ณ , ๊ฐ Anchor Box์— ๋Œ€ํ•ด ๊ฐ์ฒด๊ฐ€ ํฌํ•จ๋  ํ™•๋ฅ ๊ณผ Bounding Box ์œ„์น˜ ์กฐ์ •์„ ์˜ˆ์ธกํ•ด์š”.
    • ์ด ๊ณผ์ •์€ ๊ธฐ์กด์˜ CPU ๊ธฐ๋ฐ˜ Selective Search๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋ผ์š”.
  • RoI Pooling & Classification
    • RPN์ด ์ƒ์„ฑํ•œ RoI๋Š” RoI Pooling ๋ ˆ์ด์–ด๋ฅผ ๊ฑฐ์ณ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ feature๋กœ ๋ณ€ํ™˜๋ผ์š”.
    • ์ดํ›„, Fast RCNN๊ณผ ๋™์ผํ•˜๊ฒŒ ๋‘ ๊ฐœ์˜ branch๋กœ ๋‚˜๋‰˜์–ด Softmax๋ฅผ ํ†ตํ•œ ๊ฐ์ฒด ๋ถ„๋ฅ˜์™€ Bounding Box Regression์„ ํ†ตํ•œ ์œ„์น˜ ์กฐ์ •์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
  • End-to-End Training
    • RPN๊ณผ Fast RCNN ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ฉํ•ด ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ์—์„œ ํ•™์Šต์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ํ•™์Šต ํšจ์œจ์„ ๊ทน๋Œ€ํ™”ํ•˜๋ฉฐ, ๋” ์ •ํ™•ํ•œ ๊ฐ์ฒด ๊ฒ€์ถœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์š”.
    • Faster R-CNN์€ RPN๊ณผ Fast R-CNN์„ ํ†ตํ•ฉํ•ด ํ•˜๋‚˜์˜ ๋„คํŠธ์›Œํฌ์—์„œ ํ•™์Šต์ด ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.
    • ์ด๋Š” ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ฉํ•จ์œผ๋กœ์จ End-to-End๋กœ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด ์ „์ฒด์ ์ธ ํ•™์Šต ๊ณผ์ •์„ ๋‹จ์ˆœํ™”ํ•˜๊ณ , ํšจ์œจ์„ฑ์„ ๋†’์—ฌ ๋” ์ •ํ™•ํ•œ ๊ฐ์ฒด ๊ฒ€์ถœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

Faster RCNN์˜ ๋‹จ์ 

Faster RCNN์€ ๊ธฐ์กด ๋ชจ๋ธ๋“ค์— ๋น„ํ•ด ๋งŽ์€ ์žฅ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์—ฌ์ „ํžˆ ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด ์žˆ์–ด์š”:

  • ๋ณต์žกํ•œ ํ•™์Šต ๊ณผ์ •: End-to-end ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ดˆ๊ธฐ ํ•™์Šต ๊ณผ์ •์—์„œ๋Š” RPN๊ณผ Fast RCNN ๋ถ€๋ถ„์„ ๊ต๋Œ€๋กœ ํ•™์Šต์‹œํ‚ค๋Š” Alternating Training์ด ํ•„์š”ํ•ด์š”. ์ด ๊ณผ์ •์€ ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋  ์ˆ˜ ์žˆ์–ด์š”.
  • ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ ์–ด๋ ค์›€: Faster RCNN์€ ๊ธฐ์กด ๋ชจ๋ธ๋“ค๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด์ง€๋งŒ, ์—ฌ์ „ํžˆ ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ๊ฒ€์ถœ์—๋Š” ์•ฝ๊ฐ„์˜ ํ•œ๊ณ„๊ฐ€ ์žˆ์–ด์š”. ํŠนํžˆ, ๋†’์€ ํ•ด์ƒ๋„์˜ ์ด๋ฏธ์ง€์—์„œ ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ค๋Š˜์€ Fast RCNN๊ณผ Faster RCNN์ด ์–ด๋–ป๊ฒŒ ๊ฐ์ฒด ๊ฒ€์ถœ์˜ ์†๋„์™€ ํšจ์œจ์„ฑ์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ–ˆ๋Š”์ง€ ์•Œ์•„๋ดค์–ด์š”. Fast RCNN์€ CNN์„ ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•ด ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋Œ€ํญ ๋†’์˜€๊ณ , Faster RCNN์€ ํ˜์‹ ์ ์ธ RPN(Region Proposal Network)์„ ๋„์ž…ํ•ด ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒด ๊ฒ€์ถœ์— ๊ฐ€๊นŒ์›Œ์ง€๊ฒŒ ํ–ˆ์–ด์š”.

 

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

๋ฐ˜์‘ํ˜•