๊ฐ์ฒด ๊ฒ์ถ(Object Detection)์ ์ปดํจํฐ ๋น์ ๋ถ์ผ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ค์ํ ๊ธฐ์ ์ค ํ๋์์. ์ด๋ฏธ์ง๋ฅผ ๋ถ์ํด ๊ทธ ์์ ์ด๋ค ๊ฐ์ฒด๊ฐ ์๋์ง ์์๋ด๊ณ , ๊ทธ ์์น๊น์ง ์ ํํ ์ฐพ์๋ด๋ ๊ณผ์ ์ด์ฃ . ์ด ๊ธฐ์ ์ ์์จ์ฃผํ์ฐจ, ์ค๋งํธ ์ํฐ, ๋ณด์ ์์คํ , ์ฌ์ง์ด๋ ์ฐ๋ฆฌ์ ์ค๋งํธํฐ ์นด๋ฉ๋ผ๊น์ง ๋ค์ํ ๊ณณ์์ ํ์ฉ๋๊ณ ์์ด์.
์ค๋์ ๊ฐ์ฒด ๊ฒ์ถ์ ์ด๊ธฐ ๋จ๊ณ์์ ํฐ ์ญํ ์ ํ๋ ๋ ๊ฐ์ง ๋ชจ๋ธ์ธ RCNN๊ณผ SPPNet์ ๋ํด ์์๋ณด๋ ค๊ณ ํด์. ์ด ๋ชจ๋ธ๋ค์ ์ด๋ป๊ฒ ๋์ํ๋์ง, ์ด๋ค ์ฅ๋จ์ ์ ๊ฐ์ง๊ณ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๊ณผ์ ์์ ์ฌ์ฉ๋๋ ์ค์ํ ์ฉ์ด๋ค์ ๋ฌด์์ธ์ง ํ๋์ฉ ์ดํด๋ณผ ๊ฑฐ์์. ๊ฐ์ฒด ๊ฒ์ถ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ ์ดํดํ๊ณ , ๊ธฐ์ ์ด ์ด๋ป๊ฒ ๋ฐ์ ํด์๋์ง ์๊ณ ์ถ๋ค๋ฉด ์ด๋ฒ ํฌ์คํ ์ด ํฐ ๋์์ด ๋ ๊ฑฐ์์! ๐
๐ ๊ฐ์ฒด ๊ฒ์ถ ๋ชจ๋ธ ์ ์ฒด ํฌ์คํ
1. RCNN (Region-based Convolutional Neural Networks)
RCNN์ ๊ฐ์ฒด ๊ฒ์ถ(Object Detection) ๋ถ์ผ์์ ์ต์ด๋ก ์ ์๋ ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ๋ชจ๋ธ ์ค ํ๋๋ก, 2014๋ Ross Girshick์ ์ํด ์๊ฐ๋์์ด์. RCNN์ ํต์ฌ ์์ด๋์ด๋ ์ด๋ฏธ์ง๋ฅผ ์์ ์์ญ(Region)์ผ๋ก ๋๋๊ณ , ๊ทธ ์์ญ๋ง๋ค ๊ฐ์ฒด๊ฐ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ ํ๊ฐํ๋ ๊ฑฐ์์.
RCNN ์๋ ๋ฐฉ์
- Selective Search
- ๋จผ์ , ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๊ฐ ์์ ๋ฒํ ์์น๋ฅผ ์ฐพ๊ธฐ ์ํด Selective Search๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์.
- ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ด๋ฏธ์ง์ ์์, ์ง๊ฐ, ํฌ๊ธฐ ๋ฑ์ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ ์ฌํ ์์ญ์ ๋ฌถ์ด ํ๋ณด ๋ฐ์ค(Region Proposal)๋ฅผ ์์ฑํด์.
- ์ด ๊ณผ์ ์์ ์ฝ 2,000๊ฐ์ ํ๋ณด ๋ฐ์ค๊ฐ ๋ง๋ค์ด์ง๋๋ค.
- Feature Extraction
- ๊ฐ ํ๋ณด ๋ฐ์ค๋ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ๊ณ ์ ๋ ํฌ๊ธฐ(227x227)๋ก resizeํ ํ, Pre-trained CNN์ ํตํด feature๋ฅผ ์ถ์ถํด์.
- ์ฌ๊ธฐ์ Pre-trained๋ผ๋ ๊ฒ์, ์ด๋ฏธ ํ์ต๋ CNN ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํด์.
- ์ด CNN์ ๋ณดํต ImageNet ๊ฐ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์์ ๋ฏธ๋ฆฌ ํ์ต๋ ๋คํธ์ํฌ๋ฅผ ๋งํฉ๋๋ค.
- Classification
- ์ถ์ถ๋ feature๋ Support Vector Machine (SVM)์ ์ฌ์ฉํด ๊ฐ์ฒด์ ํด๋์ค๋ฅผ ๋ถ๋ฅํด์.
- SVM์ ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ์ฌ๊ธฐ์๋ ํ๋ณด ๋ฐ์ค๊ฐ ํน์ ํด๋์ค(์: ์๋์ฐจ, ์ฌ๋, ๊ณ ์์ด ๋ฑ)์ ์ํ๋์ง๋ฅผ ๊ฒฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- Bounding Box Regression
- ๋ง์ง๋ง์ผ๋ก, ํ๋ณด ๋ฐ์ค์ ์์น๋ฅผ ๋ ์ ํํ๊ฒ ์กฐ์ ํ๊ธฐ ์ํด Bounding Box Regression์ ์ํํด์.
- ์ด ๋จ๊ณ์์๋ ๋ฐ์ค๊ฐ ๊ฐ์ฒด๋ฅผ ์ ํํ ํฌํจํ๋๋ก ์์น์ ํฌ๊ธฐ๋ฅผ ๋ฏธ์ธ ์กฐ์ ํฉ๋๋ค.
RCNN์ ๋จ์
RCNN์ ๊ฐ์ฒด ๊ฒ์ถ์ ์์ด ํ์ ์ ์ธ ์ ๊ทผ์ด์์ง๋ง, ๋ช ๊ฐ์ง ๋จ์ ๋ ์์์ด์:
- ๋๋ฆฐ ์๋: RCNN์ ๊ฐ ํ๋ณด ๋ฐ์ค๋ฅผ CNN์ ํต๊ณผ์ํค๊ธฐ ๋๋ฌธ์ ์ฐ์ฐ ์๋๊ฐ ๋งค์ฐ ๋๋ฆฝ๋๋ค. ์ด๋ฏธ์ง ํ ์ฅ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ ๋ถ์ด ๊ฑธ๋ฆด ์ ์์ด์.
- ๊ฐ์ฒด ๋น์จ ์๊ณก: ๋ชจ๋ ํ๋ณด ๋ฐ์ค๋ฅผ ๋์ผํ ํฌ๊ธฐ๋ก resizeํ๊ธฐ ๋๋ฌธ์, ์๋ณธ ๊ฐ์ฒด์ ๋น์จ์ด ์๊ณก๋ ์ ์์ด์. ์ด๋ก ์ธํด ์ ํ๋๊ฐ ๋จ์ด์ง ์ ์์ต๋๋ค.
2. SPPNet (Spatial Pyramid Pooling Network)
SPPNet์ RCNN์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ ์๋ ๋ชจ๋ธ์ด์์. 2014๋ Kaiming He์ ๊ทธ์ ๋๋ฃ๋ค์ ์ํด ๊ฐ๋ฐ๋ SPPNet์ RCNN๋ณด๋ค ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๊ฐ์ฒด ๊ฒ์ถ์ ๊ฐ๋ฅํ๊ฒ ํ์ด์.
SPPNet ์๋ ๋ฐฉ์
- ์ด๋ฏธ์ง Feature Extraction
- SPPNet์์๋ ๋จผ์ ์ด๋ฏธ์ง๋ฅผ CNN์ ์ ๋ ฅํด ์ ์ฒด ์ด๋ฏธ์ง์์ feature map์ ์ถ์ถํด์. ์ฌ
- ์ฌ๊ธฐ์ CNN์ ๋จ ํ ๋ฒ๋ง ์คํํ๊ธฐ ๋๋ฌธ์ RCNN์ ๋นํด ์ค๋ณต ๊ณ์ฐ์ด ์์ด์. ์ด๋ก ์ธํด ์ฐ์ฐ ์๋๊ฐ ํฌ๊ฒ ํฅ์๋ฉ๋๋ค.
- Selective Search & RoI Extraction
- RCNN๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Selective Search๋ฅผ ํตํด Region of Interest (RoI), ์ฆ ๊ด์ฌ ์์ญ์ ์ถ์ถํด์.
- ํ์ง๋ง, RCNN๊ณผ ๋ฌ๋ฆฌ SPPNet์์๋ RoI์ ํฌ๊ธฐ์ ๋น์จ์ด ์ ์ง๋ฉ๋๋ค.
- Spatial Pyramid Pooling (SPP)
- ๊ฐ RoI๋ ํฌ๊ธฐ์ ๋น์จ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ feature๋ก ๋ณํํ๊ธฐ ์ํด Spatial Pyramid Pooling (SPP)์ด๋ผ๋ ๊ธฐ์ ์ ์ฌ์ฉํด์.
- SPP๋ ์ฌ๋ฌ ๊ฐ์ง ํฌ๊ธฐ์ ์๋์ฐ๋ฅผ ์ฌ์ฉํด feature map์์ ๋ค์ํ ์ค์ผ์ผ์ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ณ , ์ด๋ฅผ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฒกํฐ๋ก ๋ณํํฉ๋๋ค.
- ์ด ๊ณผ์ ์ ํตํด RoI์ ํฌ๊ธฐ์ ๋น์จ์ด ๋ฌ๋ผ๋ ๋์ผํ ํฌ๊ธฐ์ feature๋ฅผ ์ป์ ์ ์์ด์.
- Classification & Bounding Box Regression
- ๋ง์ง๋ง์ผ๋ก, ์ด ๊ณ ์ ๋ ํฌ๊ธฐ์ feature๋ค์ FC layer๋ฅผ ๊ฑฐ์ณ SVM์ผ๋ก ๋ถ๋ฅ๋๊ณ , Bounding Box Regression์ ํตํด ๋ฐ์ค์ ์์น๋ ์กฐ์ ๋ฉ๋๋ค.
SPPNet์ ๋จ์
SPPNet์ RCNN๋ณด๋ค ๋น ๋ฅด๊ณ ํจ์จ์ ์ด์ง๋ง, ์ฌ์ ํ ๋ช ๊ฐ์ง ํ๊ณ๊ฐ ์์ด์:
- ์ฌ์ ํ End-to-End ๋ฐฉ์์ด ์๋: SPPNet๋ ์ฌ๋ฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ํ์ต์ด ์งํ๋๊ธฐ ๋๋ฌธ์, ๋ชจ๋ธ ํ์ต์ด ๋ณต์กํ๊ณ ์๊ฐ์ด ๊ฑธ๋ฆฝ๋๋ค.
- ์ค์๊ฐ ์ฒ๋ฆฌ ์ด๋ ค์: ์ ์ฒด ์ด๋ฏธ์ง์์ feature๋ฅผ ์ถ์ถํ ํ์๋ ์ฌ์ ํ ์ฌ๋ฌ ๋จ๊ณ์ ์ฒ๋ฆฌ ๊ณผ์ ์ด ํ์ํ๋ฏ๋ก, ์ค์๊ฐ ๊ฐ์ฒด ๊ฒ์ถ์๋ ์ ํฉํ์ง ์์์.
์ฃผ์ ์ฉ์ด ์ค๋ช
- Selective Search: ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๊ฐ ์์ ๊ฐ๋ฅ์ฑ์ด ๋์ ํ๋ณด ์์ญ(Region Proposal)์ ์ฐพ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ด๋ฏธ์ง์ ๋ค์ํ ํน์ง์ ๋ถ์ํด ์ ์ฌํ ์์ญ์ ๋ฌถ์ด๋ ๋๋ค.
- Pre-trained CNN: ์ด๋ฏธ ๋ค๋ฅธ ๋๊ท๋ชจ ๋ฐ์ดํฐ์ ์์ ํ์ต๋ CNN ๋ชจ๋ธ์ ์๋ฏธํด์. ๊ฐ์ฒด ๊ฒ์ถ์์ feature๋ฅผ ์ถ์ถํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- Feature Map: CNN์ ํตํด ์ถ์ถ๋ ์ด๋ฏธ์ง์ ํน์ฑ ๋งต์ด์์. ์ ๋ ฅ ์ด๋ฏธ์ง์ ์๊ฐ์ ํน์ง๋ค์ด ์์ถ๋ ํํ๋ก ํํ๋ฉ๋๋ค.
- SVM (Support Vector Machine): ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฅํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋จธ์ ๋ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. RCNN๊ณผ SPPNet์์ ์ถ์ถ๋ feature๋ฅผ ๋ฐํ์ผ๋ก ๊ฐ์ฒด์ ํด๋์ค๋ฅผ ๋ถ๋ฅํ๋ ๋ฐ ์ฌ์ฉ๋ผ์.
- Bounding Box Regression: ๊ฐ์ฒด๋ฅผ ์ ํํ ๋๋ฌ์ธ๋ ๋ฐ์ค๋ฅผ ๋ ์ ํํ๊ฒ ์กฐ์ ํ๋ ๊ธฐ์ ์ ๋๋ค. ์ด ๊ณผ์ ์ ํตํด ๊ฒ์ถ๋ ๊ฐ์ฒด์ ์์น์ ํฌ๊ธฐ๊ฐ ๋ ์ ํํด์ ธ์.
- Region of Interest (RoI): ์ด๋ฏธ์ง์์ ๊ด์ฌ ์๋ ์์ญ์ ๋งํด์. ๊ฐ์ฒด๊ฐ ํฌํจ๋ ๋ถ๋ถ์ ์๋ฏธํ๋ฉฐ, RoI๋ Selective Search ๋ฑ์ผ๋ก ์ถ์ถ๋ฉ๋๋ค.
์ด๋ ๊ฒ RCNN๊ณผ SPPNet์ ๋ํด ์์ธํ ์์๋ดค์ด์. ์ด ๋ ๋ชจ๋ธ์ ๊ฐ์ฒด ๊ฒ์ถ ๊ธฐ์ ์ ์ด์์ ๋ค์ก์ง๋ง, ํ๊ณ๋ ๋ถ๋ช ํ์ด์. ๋ค์ ํฌ์คํ ์์๋ ์ด๋ฌํ ํ๊ณ๋ฅผ ์ด๋ป๊ฒ ๊ทน๋ณตํ๋์ง ์ดํด๋ณผ ๊ฑฐ์์! ๐