๋ฐ์ํ
Object Detection History
ํฌ๊ฒ 3๊ฐ์ ๋ถ๋ฅ๋ก ๋๋ ๋ณด๊ฒ ์ต๋๋ค.
1. ์ ํต์ ์ธ ํ์ง ๋ฐฉ๋ฒ (Traditional Detection Methods)
- VJ Detector (P. Viola et al., 2001):
- ๋น์ฌ๋ผ-์กด์ค ๊ฐ์ฒด ํ์ง๊ธฐ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ ์ด ๋ฐฉ๋ฒ์ ํน์ง ๊ธฐ๋ฐ ์ผ๊ตด ํ์ง๋ฅผ ์ํ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋๋ฆฌ ์๋ ค์ ธ ์์ต๋๋ค.
- HOG Detector (N. Dalal et al., 2005):
- Histogram of Oriented Gradients (HOG)๋ ์ด๋ฏธ์ง์ ๊ตญ์์ ์ธ ๋ฐฉํฅ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- DPM (P. Felzenszwalb et al., 2008):
- Deformable Part Model (DPM)์ ๋ฌผ์ฒด๋ฅผ ์์ ๋ถ๋ถ๋ค๋ก ๋ถํ ํ์ฌ ๊ฐ ๋ถ๋ถ์ ์์น์ ํํ๋ฅผ ๋ชจ๋ธ๋งํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- 2010๋ ์๋ Bounding Box Regression์ด ์ถ๊ฐ๋์ด ์ฑ๋ฅ์ด ํฅ์๋์์ต๋๋ค.
2. ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ํ์ง ๋ฐฉ๋ฒ (Deep Learning Based Detection Methods)
- 2012๋
์ดํ:
- ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ํ์ง ๋ฐฉ๋ฒ์ด ๋ฑ์ฅํ๋ฉด์ ๊ฐ์ฒด ํ์ง์ ํจ๋ฌ๋ค์์ด ์ ํ๋์์ต๋๋ค.
- ํนํ, AlexNet์ ๋์ ์ผ๋ก ์ธํด ๋ฅ๋ฌ๋์ด ๋ณธ๊ฒฉ์ ์ผ๋ก ํ์ฉ๋๊ธฐ ์์ํ์ต๋๋ค.
2-1. Two-Stage Detector
- R-CNN (R. Girshick et al., 2014):
- Region-based Convolutional Neural Networks (R-CNN)์ ์ด๋ฏธ์ง์์ ํ๋ณด ์์ญ์ ์์ฑํ๊ณ , ๊ฐ ์์ญ์ ๋ํด CNN์ ์ ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ถ๋ฅํฉ๋๋ค.
- SPPNet (K. He et al., 2014):
- Spatial Pyramid Pooling Network๋ ์ด๋ฏธ์ง ํฌ๊ธฐ์ ๊ด๊ณ์์ด ๊ณ ์ ๋ ํฌ๊ธฐ์ ํน์ง ๋งต์ ์์ฑํ์ฌ R-CNN์ ๋จ์ ์ ๋ณด์ํฉ๋๋ค.
- Fast R-CNN (R. Girshick, 2015):
- R-CNN์ ๋๋ฆฐ ์๋๋ฅผ ๊ฐ์ ํ ๋ฒ์ ์ผ๋ก, ๋จ์ผ ๋คํธ์ํฌ์์ ์์ญ ์ ์๊ณผ ๋ถ๋ฅ๋ฅผ ๋์์ ์ํํฉ๋๋ค.
- Faster R-CNN (S. Ren et al., 2015):
- Region Proposal Network (RPN)๋ฅผ ๋์ ํ์ฌ ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ์์ญ ์ ์์ ์์ฑํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
2-2. One-Stage Detector
- YOLO (J. Redmon et al., 2016):
- You Only Look Once (YOLO)๋ ์ด๋ฏธ์ง ์ ์ฒด๋ฅผ ๋จ์ผ ๋จ๊ณ๋ก ์ฒ๋ฆฌํ์ฌ ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- SSD (W. Liu et al., 2016):
- Single Shot MultiBox Detector (SSD)๋ ์ฌ๋ฌ ํฌ๊ธฐ์ ๋ํดํธ ๋ฐ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- RetinaNet (T. Y. Lin et al., 2017):
- Focal Loss๋ฅผ ๋์ ํ์ฌ ํด๋์ค ๋ถ๊ท ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์์ผฐ์ต๋๋ค.
3. ์ต์ ํ์ง ๋ฐฉ๋ฒ
- Pyramid Networks (T. Y. Lin et al., 2017):
- ๋ค์ํ ํด์๋์ ํน์ง ๋งต์ ์ฌ์ฉํ์ฌ ์์ ๊ฐ์ฒด๋ฅผ ๋ ์ ํ์งํฉ๋๋ค.
SSD Network ๊ตฌ์กฐ
ํ๋ฒ SSD Network ๊ตฌ์กฐ์ ๋ฐํ์ฌ ์ค๋ช ์ ํด๋ณด๊ฒ ์ต๋๋ค.
1. ์ ๋ ฅ ์ด๋ฏธ์ง
- ํฌ๊ธฐ: 300x300x3
- ์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ 300x300 ํฝ์ ์ด๋ฉฐ, RGB ์ฑ๋์ ์ฌ์ฉํฉ๋๋ค.
2. VGG-16 ๊ธฐ๋ฐ ํน์ง ์ถ์ถ๊ธฐ
- Conv4_3 ๋ ์ด์ด:
- 38x38x512 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- VGG-16 ๋คํธ์ํฌ์ Conv5_3 ๋ ์ด์ด๊น์ง ์ฌ์ฉํ์ฌ ํน์ง์ ์ถ์ถํฉ๋๋ค.
3. Extra Feature Layers (์ถ๊ฐ ํน์ง ๋ ์ด์ด)
- Conv6 (FC6):
- 19x19x1024 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- Convolution ๋ ์ด์ด๋ก ๋ณํ๋ ์์ ์ฐ๊ฒฐ (fully connected) ๋ ์ด์ด์ ๋๋ค.
- Conv7 (FC7):
- 19x19x1024 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- Convolution ๋ ์ด์ด๋ก ๋ณํ๋ ๋ ๋ค๋ฅธ ์์ ์ฐ๊ฒฐ ๋ ์ด์ด์ ๋๋ค.
4. ์ถ๊ฐ Convolution ๋ ์ด์ด
- Conv8_2:
- 10x10x512 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- ๋ ๊ฐ์ Convolution ๋ ์ด์ด (Conv 3x3x256-s2, Conv 3x3x512-s1)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Conv9_2:
- 5x5x256 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- ๋ ๊ฐ์ Convolution ๋ ์ด์ด (Conv 3x3x128-s2, Conv 3x3x256-s1)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Conv10_2:
- 3x3x256 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- ๋ ๊ฐ์ Convolution ๋ ์ด์ด (Conv 3x3x128-s2, Conv 3x3x256-s1)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Conv11_2:
- 1x1x256 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ถ๋ ฅํฉ๋๋ค.
- ๋ ๊ฐ์ Convolution ๋ ์ด์ด (Conv 3x3x128-s2, Conv 3x3x256-s1)๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
5. Classifier (๋ถ๋ฅ๊ธฐ)
- ๊ฐ ํน์ง ๋งต์ ๋ํด Convolution ์ฐ์ฐ์ ํตํด ๊ฐ์ฒด ํด๋์ค์ ์์น๋ฅผ ์์ธกํฉ๋๋ค.
- Conv4_3 ๋ ์ด์ด:
- 38x38x(4x(Classes+4)) ํฌ๊ธฐ์ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค.
- Conv7 ๋ ์ด์ด:
- 19x19x(6x(Classes+4)) ํฌ๊ธฐ์ ์ถ๋ ฅ์ ์์ฑํฉ๋๋ค.
- Conv8_2, Conv9_2, Conv10_2, Conv11_2 ๋ ์ด์ด:
- ๊ฐ๊ฐ 10x10, 5x5, 3x3, 1x1 ํฌ๊ธฐ์ ์ถ๋ ฅ์์ (4x(Classes+4))๋ฅผ ์์ฑํฉ๋๋ค.
6. Detections (๋ํ ์ )
- 8732 per Class:
- ๋ค์ํ ํฌ๊ธฐ์ ๋น์จ์ anchor box๋ฅผ ์ฌ์ฉํ์ฌ ์ต์ข ์ ์ผ๋ก 8732๊ฐ์ ์์ธก ๋ฐ์ค๋ฅผ ์์ฑํฉ๋๋ค.
- ๊ฐ ๋ฐ์ค๋ ํด๋์ค ํ๋ฅ ๊ณผ ์์น ์ขํ๋ฅผ ํฌํจํฉ๋๋ค.
SSD ์ฃผ์ ๊ตฌ์ฑ ์์
SSD Network์ ์ฃผ์ 2๊ฐ์ ๊ตฌ์ฑ ์์๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
Multi Scale Feature Layer, Default (Anchor) Box 2๊ฐ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
Multi Scale Feature Layer
- Multi Scale Feature Layer๋ SSD(Single Shot MultiBox Detector)์ ํต์ฌ ๊ตฌ์ฑ ์์๋ก, ๊ฐ์ฒด์ ํฌ๊ธฐ์ ์์น์ ๋ฐ๋ผ ๋ค์ํ ํด์๋์ ํน์ง ๋งต์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ํ์งํฉ๋๋ค.
- ์ด๋ฌํ ๋ค์ค ํด์๋ ํน์ง ๋งต์ ์์ ๊ฐ์ฒด๋ถํฐ ํฐ ๊ฐ์ฒด๊น์ง ๋ค์ํ ํฌ๊ธฐ์ ๊ฐ์ฒด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์งํ ์ ์๊ฒ ํฉ๋๋ค.
Default (Anchor) Box
- Default Box(Anchor Box)๋ SSD์์ ํน์ ์์น์์ ๋ค์ํ ํฌ๊ธฐ์ ๋น์จ์ ๊ฐ์ฒด๋ฅผ ์์ธกํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
- ๊ฐ ํน์ง ๋งต์ ํฝ์ ์์น์์ ์ฌ๋ฌ ๊ฐ์ anchor box๋ฅผ ์์ฑํ๊ณ , ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฐ์ฒด์ ์์น์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค.
์ด๋ฏธ์ง Scale ์กฐ์ ์ ๋ฐ๋ฅธ ์ฌ๋ฌ ํฌ๊ธฐ์ Object Detection
์ฌ์ง์ ๋ณด๋ฉด ์๋์ image์์ sliding window ๋ฐฉ์์ ์ด์ฉํด์ Object detection์ ํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Scale(ํฌ๊ธฐ)๋ฅผ ์ค์ฌ์ ๋ค์ Object detection์ ํ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ ๋ฐ๋ณตํ๋ค๊ฐ, Object๋ฅผ ํ์งํ๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ๋์์ด ๋ฉ์ถฅ๋๋ค.
- ์ด๋ ๊ฒ ์ด๋ฏธ์ง ํผ๋ผ๋ฏธ๋์ ๊ฐ๋ ์ ๋์ ํด์ Ground Truth์ ๊ธฐ๋ฐํ์ฌ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐฉ์์ผ๋ก Object Detection์ ํฉ๋๋ค.
๋ค๋ฅธ ํฌ๊ธฐ์ Feature Map์ ์ด์ฉํ Object Detection
์๋ก ๋ค๋ฅธ ํฌ๊ธฐ์ Feature Map(CNN Architecture)๋ค์ ๊ธฐ๋ฐ์ผ๋ก Object Detection ์ํํฉ๋๋ค.
- ์ฒซ๋ฒ์งธ Feature Map์ ์๋ณธ ์ด๋ฏธ์ง์ ์์น ์ ๋ณด๋ฅผ ๊ฐ์ง๋ฉฐ, Size๊ฐ ์์์ง๋ฉด์ ์ถ์ฝ, ํต์ฌ์ ์ธ ์ด๋ฏธ์ง ํน์ง์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
- ๊ฒฐ๋ก ์ Feature Map Size๊ฐ ์์์๋ก ํฐ Object๊ฐ ์ Detect ๋ฉ๋๋ค.
Feature Map๊ธฐ๋ฐ์ Multi-Scale Feautre Layer
์์์ ์ค๋ช ํ๋ฏ์ด, Feature Map์ ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ ํฐ ์ด๋ฏธ์ง๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
Anchor Box ๊ธฐ๋ฐ์ Object Detection ๋ชจ๋ธ– Faster RCNN
- Faster R-CNN์ Region Proposal Network (RPN)์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ ํฅ์์ํจ ๋ชจ๋ธ๋ก, ๋ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. Region Proposal Network์ Fast R-CNN.
1. Convolutional Network
- ๊ธฐ๋ณธ ํน์ง ๋งต ์์ฑ:
- ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ Convolutional Network๋ฅผ ํตํด ๊ธฐ๋ณธ ํน์ง ๋งต์ ์์ฑํฉ๋๋ค.
- ์ด ํน์ง ๋งต์ ์ดํ์ Region Proposal Network์ ๊ฐ์ฒด ๋ถ๋ฅ ๋ฐ ๊ฒฝ๊ณ ๋ฐ์ค ์กฐ์ ์ ์ฌ์ฉ๋ฉ๋๋ค.
2. Region Proposal Network (RPN)
- Region Proposal Network (RPN):
- RPN์ ๊ธฐ๋ณธ ํน์ง ๋งต์ ์ ๋ ฅ์ผ๋ก ๋ฐ์์ ๊ฐ์ฒด๊ฐ ์์ ๋ฒํ ์์ญ(Region Proposal)์ ์์ฑํฉ๋๋ค.
- ๊ฐ ์์น๋ง๋ค ์ฌ๋ฌ ํฌ๊ธฐ์ ๋น์จ์ anchor box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ์์ธกํฉ๋๋ค.
- RPN์ ์ถ๋ ฅ์ ์ ์ฌ์ ๊ฐ์ฒด ์์น์ ํ๋ณด ์์ญ(Region Proposal)๋ค๋ก, ์ด๋ ์ดํ์ Fast R-CNN ๋จ๊ณ์์ ์ฌ์ฉ๋ฉ๋๋ค.
RPN์ ์ฃผ์ ๊ตฌ์ฑ ์์
- Convolution Layer:
- ์ ๋ ฅ ํน์ง ๋งต์ ๋ฐ์์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ํํฐ๋ฅผ ์ ์ฉํ์ฌ ํน์ง์ ์ถ์ถํฉ๋๋ค.
- Anchor Box:
- ๊ฐ ์์น๋ง๋ค ๋ค์ํ ํฌ๊ธฐ์ ๋น์จ์ anchor box๋ฅผ ์์ฑํ์ฌ ๊ฐ์ฒด๋ฅผ ์์ธกํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก 3๊ฐ์ง ํฌ๊ธฐ์ 3๊ฐ์ง ๋น์จ์ anchor box๋ฅผ ์ฌ์ฉํ์ฌ ์ด 9๊ฐ์ anchor box๋ฅผ ์์ฑํฉ๋๋ค.
- Objectness Score:
- ๊ฐ anchor box์ ๋ํด ๊ฐ์ฒด๊ฐ ์์ ํ๋ฅ ์ ์์ธกํ๋ ์ ์์ ๋๋ค.
- ํด๋์ค์ ๊ฐ์๊ฐ 2๊ฐ(๊ฐ์ฒด, ๋ฐฐ๊ฒฝ)์ธ softmax ๋ถ๋ฅ๊ธฐ๋ฅผ ํตํด ๊ณ์ฐ๋ฉ๋๋ค.
- Bounding Box Regression:
- ๊ฐ anchor box์ ๋ํด ์์น ์กฐ์ ์ ์ํ ๊ฒฝ๊ณ ๋ฐ์ค ์คํ์ ์ ์์ธกํฉ๋๋ค.
3. ROI Pooling
- ROI Pooling:
- RPN์์ ์ ์๋ ํ๋ณด ์์ญ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ ํน์ง ๋งต์์ ํด๋น ์์ญ์ ํน์ง์ ์ถ์ถํฉ๋๋ค.
- ์ด ๊ณผ์ ์์ ๋ชจ๋ ํ๋ณด ์์ญ์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ํน์ง ๋งต์ผ๋ก ๋ณํํฉ๋๋ค.
4. Object Classification and Bounding Box Regression
- Fully Connected Layer:
- ROI Pooling์ ํตํด ์ป์ ๊ณ ์ ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ ๋ ฅ์ผ๋ก ๋ฐ์์ ๊ฐ์ฒด ๋ถ๋ฅ ๋ฐ ๊ฒฝ๊ณ ๋ฐ์ค ์กฐ์ ์ ์ํํฉ๋๋ค.
- Object Classification:
- ๊ฐ ํ๋ณด ์์ญ์ ๋ํด ๊ฐ์ฒด์ ํด๋์ค(์: ์ฌ๋, ์๋์ฐจ ๋ฑ)๋ฅผ ์์ธกํฉ๋๋ค.
- softmax๋ฅผ ์ฌ์ฉํ์ฌ ํด๋์ค ํ๋ฅ ์ ๊ณ์ฐํฉ๋๋ค.
- Bounding Box Regression:
- ๊ฐ ํ๋ณด ์์ญ์ ๋ํด ๊ฒฝ๊ณ ๋ฐ์ค๋ฅผ ์กฐ์ ํ์ฌ ๋ ์ ํํ ๊ฐ์ฒด ์์น๋ฅผ ์์ธกํฉ๋๋ค.
- ์ฐ์๋ ๊ฐ(์ขํ)์ ์์ธกํ๊ธฐ ์ํด ํ๊ท(regression)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Summary
- Convolutional Network:๊ธฐ๋ณธ ํน์ง ๋งต ์์ฑ.
- Region Proposal Network (RPN):Anchor box๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด์ ์ ์ฌ์ ์์น(Region Proposal) ์์ธก.
- ROI Pooling:Region Proposal์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ํน์ง ๋งต์ผ๋ก ๋ณํ.
- Object Classification and Bounding Box Regression:ํ๋ณด ์์ญ์ ๋ํด ๊ฐ์ฒด ๋ถ๋ฅ์ ๊ฒฝ๊ณ ๋ฐ์ค ์กฐ์ .
RPN์์์ Anchor Box์ ํ์ฉ
Classification (๋ถ๋ฅ)
- ๊ฐ Anchor Box๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ Positive(์์ฑ) ๋๋ Negative(์์ฑ)๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
- ์ด๋ฏธ์ง ์ค์์ ์๋ ๊ฐ์ ์ผ๊ตด์ ์๋ก ๋ค๋ฉด, ๊ฐ๋ฅผ ํฌํจํ๋ Anchor Box๋ Positive๋ก ๋ถ๋ฅ๋๊ณ , ๊ทธ๋ ์ง ์์ Anchor Box๋ Negative๋ก ๋ถ๋ฅ๋ฉ๋๋ค.
- Positive Anchor Box๋ ๊ฐ์ฒด(Ground Truth Box)์ ๋์ IoU(Intersection over Union)๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด ๊ฒฝ์ฐ ๊ฐ์ ์ผ๊ตด์ ํฌํจํ Anchor Box๋ค์ด Positive๋ก ๋ถ๋ฅ๋์์ต๋๋ค.
- ๋ฐ๋ฉด, ๊ฐ์ ์ผ๊ตด์ ํฌํจํ์ง ์์ Anchor Box๋ค์ Negative๋ก ๋ถ๋ฅ๋์์ต๋๋ค.
Bounding Box Regression (๊ฒฝ๊ณ ๋ฐ์ค ํ๊ท)
- Positive๋ก ๋ถ๋ฅ๋ Anchor Box๋ค์ ๊ฒฝ๊ณ ๋ฐ์ค ํ๊ท๋ฅผ ํตํด ์ ํํ ๊ฐ์ฒด ์์น๋ก ์กฐ์ ๋ฉ๋๋ค.
- Ground Truth Box (์ค์ ๊ฐ์ฒด ์์น๋ฅผ ๋ํ๋ด๋ ์์)์ ๋น๊ตํ์ฌ Positive Anchor Box์ ์์น์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํฉ๋๋ค.
- ํ๊ท ๋ชจ๋ธ์ Anchor Box์ ์ค์ฌ ์ขํ(x, y), ๋๋น(w), ๋์ด(h)๋ฅผ ์กฐ์ ํ๋ ์คํ์ (Δx, Δy, Δw, Δh)์ ์์ธกํ์ฌ Predicted Anchor Box (์์ธก๋ ๊ฐ์ฒด ์์น ์์)๋ฅผ ๋ง๋ญ๋๋ค.
- ์ด๋ฏธ์ง์์๋ Positive Anchor Box๊ฐ Ground Truth Box์ ๋ง์ถฐ ์กฐ์ ๋ ๋ชจ์ต์ ๋ณด์ฌ์ค๋๋ค.
Anchor box ๋ฅผ ํ์ฉํ Object Detection
Anchor Box๋ฅผ ํ์ฉํ Object Detection์์๋ ๊ฐ๋ณ Anchor Box๊ฐ ๋ค์ ์ ๋ณด๋ค์ ๊ฐ์ง ์ ์๋๋ก ํ์ตํฉ๋๋ค.
- Anchor Box์ ๊ฒน์น๋ Feature Map ์์ญ์ Object ํด๋์ค๋ฅผ ๋ถ๋ฅํฉ๋๋ค.
- ์ด๋ Ground Truth ์์น๋ฅผ ์์ธกํ ์ ์๋๋ก ์ขํ๋ฅผ ์์ ํฉ๋๋ค.
- ๋ํ ๊ฐ๋ณ Anchor Box๋ณ๋ก Detection ํ๋ ค๋ Object ์ ํ์ Softmax ํจ์๊ฐ, ์์ ์ขํ ๊ฐ์ ๊ฐ์ ธ์์ Anchor Box๋ฅผ ํ์ฉํ ํ์ต์ ํ ๋ ํ์ฉํฉ๋๋ค.
SSD Network ๊ตฌ์ฑ
SSD (Single Shot MultiBox Detector) ๋คํธ์ํฌ์ ๋ค์ํ ํฌ๊ธฐ์ ํน์ง ๋งต๊ณผ ๊ทธ๋ก๋ถํฐ ์์ฑ๋ Anchor Box๋ค์ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค.
1. 38x38 ํน์ง ๋งต
- ํฌ๊ธฐ: 38x38
- Anchor Box ๊ฐ์: ๊ฐ ์์น๋ง๋ค 4๊ฐ์ Anchor Box
- ์ด Anchor Box ์: 38 x 38 x 4 = 5776
2. 19x19 ํน์ง ๋งต
- ํฌ๊ธฐ: 19x19
- Anchor Box ๊ฐ์: ๊ฐ ์์น๋ง๋ค 6๊ฐ์ Anchor Box
- ์ด Anchor Box ์: 19 x 19 x 6 = 2166
3. 10x10 ํน์ง ๋งต
- ํฌ๊ธฐ: 10x10
- Anchor Box ๊ฐ์: ๊ฐ ์์น๋ง๋ค 6๊ฐ์ Anchor Box
- ์ด Anchor Box ์: 10 x 10 x 6 = 600
4. 5x5 ํน์ง ๋งต
- ํฌ๊ธฐ: 5x5
- Anchor Box ๊ฐ์: ๊ฐ ์์น๋ง๋ค 6๊ฐ์ Anchor Box
- ์ด Anchor Box ์: 5 x 5 x 6 = 150
5. 3x3 ํน์ง ๋งต
- ํฌ๊ธฐ: 3x3
- Anchor Box ๊ฐ์: ๊ฐ ์์น๋ง๋ค 4๊ฐ์ Anchor Box
- ์ด Anchor Box ์: 3 x 3 x 4 = 36
6. 1x1 ํน์ง ๋งต
- ํฌ๊ธฐ: 1x1
- Anchor Box ๊ฐ์: ๊ฐ ์์น๋ง๋ค 4๊ฐ์ Anchor Box
- ์ด Anchor Box ์: 1 x 1 x 4 = 4
์ดํฉ
- ์ด Anchor Box ์: 5776 + 2166 + 600 + 150 + 36 + 4 = 8732
๊ฐ์ฒด ํ์ง์ NMS (Non-Maximum Suppression)
- Object Detection:
- 8732๊ฐ์ Anchor Box๋ ๊ฐ๊ฐ ๊ฐ์ฒด์ ํด๋์ค์ ์์น๋ฅผ ์์ธกํฉ๋๋ค.
- ์ด ๊ณผ์ ์์ ๋ง์ Anchor Box๊ฐ ์ค๋ณต๋๊ฑฐ๋ ๊ฒน์น ์ ์์ต๋๋ค.
- NMS (Non-Maximum Suppression):
- ๊ฒน์น๋ ์์ธก์ ์ ๊ฑฐํ์ฌ ์ต์ข ์ ์ผ๋ก ๊ฐ์ฅ ์ ๋งํ ๊ฐ์ฒด ์์น๋ง ๋จ๊น๋๋ค.
- NMS๋ ๋์ ์ ๋ขฐ๋๋ฅผ ๊ฐ์ง ๋ฐ์ค๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ํํ๊ณ , ๊ฒน์น๋ ๋ฐ์ค๋ค์ ์ ๊ฑฐํ๋ ๊ณผ์ ์ ๋๋ค.
Anchor ๋ฐ์ค๋ฅผ ํ์ฉํ Convolution Predictors for detection
SSD (Single Shot MultiBox Detector) ๋คํธ์ํฌ์์ 38x38 ํฌ๊ธฐ์ ํน์ง ๋งต์ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด ํ์ง์ ๋ถ๋ฅ๋ฅผ ์ํํ๋ ๊ณผ์ ์ ์ค๋ช ํฉ๋๋ค.
- ๋ณด์๋ฉด, Feature Map์์ 3x3 Convolution Cell์ ์์ต๋๋ค. ๊ฐ๋ณ ์ ๋ก ํ๋์ฉ ๋ถํด๋ฅผ ํด๋ณด๋ฉด 4๊ฐ์ ์ขํ๋ก ๋๋ฉ๋๋ค.
- ๊ฐ 4๊ฐ์ ์์น๋ง๊ฐ 4๊ฐ์ Anchor Box๊ฐ ํ ๋น๋์ด ์์ผ๋ฉฐ, ๊ฐ Box์ ๋ฐํ์ฌ ๊ฐ์ฒด์ ํด๋์ค & ์์น๋ฅผ ์์ธกํฉ๋๋ค.
- ์ด๋ Class Probabiltiy (ํด๋์ค ํ๋ฅ )๋ฅผ ๋์ถํฉ๋๋ค.
- 20๊ฐ์ ๊ฐ์ฒด Class์ 1๊ฐ์ ๋ฐฐ๊ฒฝ ํด๋์ค - ์ด 21๊ฐ์ ํด๋์ค ํ๋ฅ ์ ์์ธกํฉ๋๋ค.
- ๊ทธํ, Bounding Box Offset (์์น ์คํ์ ) ๊ฐ์ ์์ธกํฉ๋๋ค. ์ด ๊ฐ์ ๊ฐ Anchor Box์ ์์น๋ฅผ ์กฐ์ ํ๊ธฐ ์ํ ๊ฐ์ ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ Bounding Box Offset (์์น ์คํ์ ) ๊ฐ์ 4๊ฐ์ Offset๊ฐ (W, Y, W, H)์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- X์ Y๋ Anchor Box์ ์ค์ฌ ์ขํ, W์ H๋ Anchor Box์ ๋๋น์ ๋์ด๋ฅผ ๋ํ๋ ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก, ๊ฐ ์์น์์ ์ด 4๊ฐ์ Anchor Box x (21๊ฐ์ ํด๋์ค ํ๋ฅ + 4๊ฐ์ ์์น ์คํ์ ) = 100๊ฐ์ ์์ธก ๊ฐ์ด ์์ฑ๋ฉ๋๋ค.
SSD์ Multi Scale Feature Map๊ณผ Anchor Box ์ ์ฉ
๊ณ ์์ด๋ก ์์๋ฅผ ํ๋ฒ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- ์ฌ๊ธฐ์ ๊ณ ์์ด๋ฅผ ํ์งํ ๋ฐ์ค๋ฅผ Matching Box๋ผ๊ณ ํฉ๋๋ค. Classification์ ์ญํ ์ ์ํํ๋ฉฐ Ground Turth์ ๊ฐ๊น์ ์ง๊ธฐ ์ํด ๋ ธ๋ ฅํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ 8x8 Feature Map์์ Ground Truth์ ๋งค์นญ๋ ๊ณ ์์ด์ Bounging Box๋ฅผ ๊ทธ๋ฆฝ๋๋ค.
- ๊ทธํ, 4x4 Feature Map์ ํ๋ฒ ๋ด๋ณด๋ฉด, ๋ ๋ฎ์ ํด์๋๋ก ์ถ์ถ๋๋ ๋์ , ๋ ๊ฐ์ฒด ํ์ง๋ฅผ ์ ๋ฆฌํ๊ฒ ํ๊ธฐ ์ํด size๋ฅผ ์ค์
๋๋ค.
- ๊ทธ๋ฆฌ๊ณ 4x4 Feature Map์ ๋ณด๋ฉด Location (loc) ์ Confidence (conf)๊ฐ ์์ต๋๋ค. ์ค๋ช ์ ํด๋ณด๋ฉด
- Location (loc):
- ๊ฐ Anchor Box์ ์์น๋ฅผ ์กฐ์ ํ๋ ์คํ์ ๊ฐ์ ๋๋ค.
- (cx,cy,w,h)(c_x, c_y, w, h)๋ก ํ์๋๋ฉฐ, Anchor Box์ ์ค์ฌ ์ขํ์ ๋๋น ๋ฐ ๋์ด๋ฅผ ๋ํ๋ ๋๋ค.
- Confidence (conf):
- ๊ฐ Anchor Box๊ฐ ํน์ ํด๋์ค์ ์ํ ํ๋ฅ ์ ๋ํ๋ด๋ ๊ฐ์ ๋๋ค.
- (c1,c2,โฏ ,cp)(c_1, c_2, cdots, c_p)๋ก ํ์๋๋ฉฐ, ๊ฐ ํด๋์ค์ ๋ํ ํ๋ฅ ์ ๋ํ๋ ๋๋ค.
- ์ฌ๊ธฐ์ pp๋ ํด๋์ค์ ์๋ฅผ ์๋ฏธํฉ๋๋ค.
SSD Training
- ์ฌ๊ธฐ์ ์ฐ๋ฆฌ๊ฐ ์์์ผ ํ ๊ฑด Matching ์ ๋ต, Loss ํจ์ ๋ผ๋ ๊ฒ์ด ์์ต๋๋ค.
Matching ์ ๋ต์ Bounding box์ ๊ฒน์น๋ IOU๊ฐ 0.5 ์ด์์ธ Default(Anchor) Box ๋ค์ Classification๊ณผ Boudning box Regression์ ์ต์ ํ ํ์ต์ ์ํํ๋ ์ ๋ต์ ๋๋ค.
- Loss ํจ์๋ ์ ์ฒด ์์ค ํจ์์ ๋ถ๋ฅ ์์ค (Classification Loss), ์์น ์์ค (Localization Loss)์ด ์์ต๋๋ค.
์ ์ฒด Loss Function - Parameter
- : ๋งค์น๋ Default Box(Anchor Box)์ ๊ฐ์
- Lconf(x,c): ๋ถ๋ฅ ์์ค (Classification Loss)
- Lloc(x,l,g): ์์น ์์ค (Localization Loss)
- : ์์น ์์ค์ ์ค์๋๋ฅผ ์กฐ์ ํ๋ ๊ฐ์ค์น
๋ถ๋ฅ ์์ค (Classification Loss)
- ๋ถ๋ฅ ์์ค์ ๊ฐ Anchor Box๊ฐ ํน์ ํด๋์ค์ ์ํ ํ๋ฅ ์ ์์ธกํ๋ ์์ค์ ๋๋ค.
- ํด๋์ค ํ๋ฅ ์์ธก์์ ๋ฐ์ํ๋ ์ค์ฐจ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ํํธ๋งฅ์ค(Softmax) ํจ์์ ํฌ๋ก์ค ์ํธ๋กํผ(Cross-Entropy) ์์ค์ ์ฌ์ฉํฉ๋๋ค.
์์น ์์ค (Localization Loss)
- ์์น ์์ค์ ์์ธก๋ ๊ฒฝ๊ณ ๋ฐ์ค์ ์ค์ ๊ฒฝ๊ณ ๋ฐ์ค(Ground Truth Box) ๊ฐ์ ์์น ์ฐจ์ด๋ฅผ ์ต์ํํ๋ ์์ค์ ๋๋ค.
- ์ฌ๊ธฐ์ Pos๋ Positive Anchor Box(๊ฐ์ฒด๋ฅผ ํฌํจํ๋ Anchor Box)๋ฅผ ๋ํ๋ ๋๋ค.
- xk^: ๋งค์น๋ Anchor Box์ Ground Truth Box ๊ฐ์ ์ธ๋ฑ์ค ๋งค์นญ์ ์๋ฏธํฉ๋๋ค.
- smoothL1: Smooth L1 ์์ค ํจ์, ํ๊ท ๋ฌธ์ ์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค.
- l^mi: ์์ธก๋ ์์น ๊ฐ (Anchor Box์ ์ค์ฌ ์ขํ์ ํฌ๊ธฐ)
- g^mj: ์ค์ ์์น ๊ฐ (Ground Truth Box์ ์ค์ฌ ์ขํ์ ํฌ๊ธฐ)
Bounding Box Regression
Bounding Box Regression์ ์์ธก๋ Anchor Box๋ฅผ ์ค์ ๊ฐ์ฒด์ ์์น์ ๋ง์ถ๊ธฐ ์ํด ์์น ์คํ์ ์ ์กฐ์ ํฉ๋๋ค.
- ๊ทธ๋ฆผ์ ๋ณด๋ฉด, ๊ทธ๋ฆผ์์ ํ๋์ ์์๋ Default Box(Anchor Box), ๋นจ๊ฐ์ ์์๋ Ground Truth Box๋ฅผ ๋ํ๋ ๋๋ค.
- Δ(cx,cy,w,h)๋ Default Box์์ Ground Truth Box๋ก์ ์์น ๋ฐ ํฌ๊ธฐ ์คํ์ ์ ๋ํ๋ ๋๋ค.
- ์์น ์์ค์ ์ด ์คํ์ ์ ์ต์ํํ์ฌ ์์ธก๋ Anchor Box๊ฐ ์ค์ ๊ฐ์ฒด ์์น์ ์ผ์นํ๋๋ก ํ์ตํฉ๋๋ค.
Design choice๋ณ Performance
SSD300์ SSD Network๊ฐ 300x300์ ์๋ฏธํฉ๋๋ค.
- Data Augmentation์ ์งํํ ๋ ์๋์ ์ ์ฐจ์ ๋ฐ๋ผ์ ์งํํฉ๋๋ค.
- GT Object์ IOU๊ฐ 0.1, 0.3, 0.5, 0.7, 0.9๊ฐ ๋ ์ ์๋๋ก ํน์ Object๋ค์ Image๋ฅผ ์๋ผ๋ ๋๋ค.
- ์๋ผ๋ธ ์ด๋ฏธ์ง๋ฅผ random ํ๊ฒ sampling ํฉ๋๋ค.
- ์๋ผ๋ธ sample ์ด๋ฏธ์ง๋ 0.1 ~ 1์ฌ์ด๋ก, aspect ratio๋ 1/2 ~ 2 ์ฌ์ด๋ก ํฌ๊ธฐ๋ฅผ ๋ง์ถฅ๋๋ค.
- ๊ฐ๋ณ sample ์ด๋ฏธ์ง๋ฅผ ๋ค์ 300x300 ์ผ๋ก ๊ณ ์ . ๊ทธ๋ฆฌ๊ณ ๊ทธ์ค 50%๋ horizontal flip ์
๋๋ค.
- horizontal flip์ Data์ ์ธ์์ ์ธ ๋ณํ๋ฅผ ์ค๋ค -> Data Augmentation์ ๋๋ค.
์ฌ๊ธฐ์ ์ง๊ณ ๋์ด๊ฐ์ผ ํ๋๊ฑด, ์์ Object Detect์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ์ด์ ํฉ๋๋ค.
์ด์ ๋, Feature Map์ Anchor Baseํ๋ Object Detection Model์ด ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ํ One-Stage Detector ๋ฌธ์ ๊ฐ ๋ฐ์ํด์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋๋ค. ๊ทธ๋์ ํด๊ฒฐ์ฑ ์ Feature Pyramid ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.
์์ Object์ Detection ์ฑ๋ฅ & Data Augmentation ํ ์์ Object์ Detection ์ฑ๋ฅ
- ์์ฝ์ ํด๋ณด์๋ฉด, Data Augmentation (๋ฐ์ดํฐ ์ฆ๊ฐ) ์
- ์์ ๊ฐ์ฒด(XSS, S)์ ๊ทน๋จ์ ์ธ ๋น์จ์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ด ๋ฎ์์ต๋๋ค.
- SSD512 ๋ชจ๋ธ์ด SSD300 ๋ชจ๋ธ๋ณด๋ค ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ฃผ์์ง๋ง, ์ฌ์ ํ ์์ ๊ฐ์ฒด ํ์ง์๋ ํ๊ณ๊ฐ ์์์ต๋๋ค.
- Data Augmentation (๋ฐ์ดํฐ ์ฆ๊ฐ) ํ
- ์์ ๊ฐ์ฒด์ ๊ทน๋จ์ ์ธ ๋น์จ์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
- SSD300๊ณผ SSD512 ๋ชจ๋ ๋ฐ์ดํฐ ์ฆ๊ฐ์ ํตํด ์์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ด ๊ฐ์ ๋์์ต๋๋ค.
SSD Detection ์ฑ๋ฅ ๋ฐ ์ํ ์๊ฐ ๋น๊ต
- ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ฉด, SSD ๋ชจ๋ธ์ ์์ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ด ์ฐ์ํ๋ฉฐ, ํนํ SSD512 ๋ชจ๋ธ์ด ๊ฐ์ฅ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค.
- ๋ํ ๋ฐ์ดํฐ์ ์ด ๋ค์ํด์ง์๋ก ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ , Faster R-CNN์ ๋์ ์ ํ๋๋ฅผ ๋ณด์ด์ง๋ง, ์๋๊ฐ ๋๋ฆฝ๋๋ค.
- YOLO๋ ๋งค์ฐ ๋น ๋ฅธ ์๋๋ฅผ ๋ณด์ด์ง๋ง, ์ ํ๋๊ฐ ์๋์ ์ผ๋ก ๋ฎ์ต๋๋ค.
- SSD ๋ชจ๋ธ์ ๋น ๋ฅธ ์๋์ ๋์ ์ ํ๋์ ๊ท ํ์ ์ ๋ง์ถ ๋ชจ๋ธ๋ก, ํนํ SSD300์ ์๋์ ์ ํ๋ ๋ชจ๋ ์ฐ์ํฉ๋๋ค.
๋ฐ์ํ
'๐ Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CV] YOLO (You Only Look Once) (0) | 2024.07.14 |
---|---|
[CV] OpenCV DNN ํจํค์ง & SSD ๊ธฐ๋ฐ Object Detection ์ํ (0) | 2024.07.10 |
[CV] OpenCV๋ก Object Detection ๊ตฌํํ๊ธฐ (Part.2) (0) | 2024.06.04 |
[CV] OpenCV๋ก Object Detection ๊ตฌํํ๊ธฐ (Part.1) (0) | 2024.06.02 |
[CV] Faster R-CNN (Faster Region-based Convolutional Neural Network) (0) | 2024.05.29 |