๐ ํด๋น ํฌ์คํ ์์ ์ฌ์ฉ๋ ์ปจํ ์ธ ๋ ์ธํ๋ฐ์ ๋ฅ๋ฌ๋ ์ปดํจํฐ ๋น์ ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ์์ ์๋ฆฝ๋๋ค. ์ค๋ช ์์ ์ฌ์ฉ๋ ์๋ฃ๋ ์ต๋ํ ์ ๊ฐ ์ง์ ์ฌ๊ตฌ์ฑํ ์๋ฃ์์ ์๋ฆฝ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ RCNN(Regions with CNN) ๋ชจ๋ธ์ ๋ํด ์์๋ณด๋ ค ํ๋ค. RCNN ๋ชจ๋ธ์ ์ ๋ฒ ํฌ์คํ ์์ ์๊ฐํ๋ Regions Proposal์ CNN ๋ชจ๋ธ์ ๊ฒฐํฉํ์ฌ Object Detection์ ์ํํ๋ ๋ชจ๋ธ์ด๋ค. ๋ฐ๋ก ํ๋จ์ ๊ทธ๋ฆผ์์ Object Detection Network์ ํด๋นํ๋ ๋ถ๋ถ์ด๋ค.
1. RCNN ๋ชจ๋ธ์ด๋?
RCNN ๋ชจ๋ธ์ Region Proposal์ Selective Search ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ ๋ชจ๋ธ์ด๋ค. ๋ํ Two-stage ๋ชจ๋ธ๋ก๋ ๋ถ๋ฅ๋๋๋ฐ, ์ฌ๊ธฐ์ 2๊ฐ์ Stage๋, Stage 1์ Region Proposal์ ํ๋ ๋จ๊ณ, Stage 2๋ ์ด๋ฏธ์ง๊ฐ Feature Extractor๋ฅผ ํต๊ณผํด Object ํด๋์ค๋ฅผ ์ต์ข ๋ถ๋ฅํ๊ณ Bounding Box ํ๊ท ๋ฌธ์ ๋ฅผ ์ํํ๋ ๋จ๊ณ๋ฅผ ์๋ฏธํ๋ค. ์ด๋ ๊ฒ 2๊ฐ์ง ๋จ๊ณ๋ก ๋ถ๋ฆฌ๋์ด ์๋ค๊ณ ํด์ Two-Stage๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
์ด์ RCNN ๋ชจ๋ธ์ ์ ๊ฐ ํ๋ก์ธ์ค๋ฅผ ๋จ๊ณ๋ณ๋ก ํ๋์ฉ ์์๋ณด๊ณ Object Detection Network๊ฐ ์ํํ๋ ์ต์ข ํด๋์ค๋ฅผ ์ด๋ป๊ฒ ๋ถ๋ฅํ๊ณ Bounding Box ์ขํ๋ฅผ ์ด๋ป๊ฒ ํ๊ทํ๋์ง์ ๋ํด ์์๋ณด์.
2. Stage 1 - Selective Search๋ก Region Proposal ํ๊ธฐ!
RCNN์์๋ Region Proposal ๊ธฐ๋ฅ์ ์ํํ๋ ๊ฒ์ผ๋ก Selective Search๋ฅผ ์ํํ๋ค. Selective Search์ ๋์๊ณผ์ ์ ์ด์ ํฌ์คํ ์์ ์ธ๊ธํ์ผ๋ฏ๋ก ๋ฐ๋ก ์ธ๊ธํ์ง ์๊ฒ ๋ค. Selective Search๋ฅผ ํตํด ์ฝ 2000๊ฐ์ ๊ฐ์ฒด๊ฐ ์์๋งํ ์์ญ์ ์ถ์ฒํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ ์ด 2000๊ฐ์ ๊ฐ Region Proposal ๋ง๋ค ํ๋์ฉ Stage 2์ Feature Extractor๋ก ์ ๋ ฅ๋๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ถ์ฒ๋ Region Proposal๋ค์ด Feature Extractor์ ๋ค์ด๊ฐ๋ ค๋ฉด ์ฝ 2000๊ฐ์ Region Proposal๋ค์ ์ฌ์ด์ฆ๋ฅผ ๋์ผํ๊ฒ ๋ง์ถฐ์ฃผ์ด์ผ ํ๋ค. ์๋ํ๋ฉด VGG, Resnet๊ณผ ๊ฐ์ Pretrained๋ Feature Extractor์๋ ์ ๋ ฅ๋ฐ๋ ์ฌ์ด์ฆ๊ฐ ๊ณ ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Region Proposal๋ค์ ์๋ฅด๊ฑฐ๋(Crop) ์ฐ๊ทธ๋ฌ๋จ๋ฆฌ๋(Warp) ํ์๋ฅผ ์ ์ฉํด์ฃผ์ด ๋ฃ์ด์ค๋ค. ์ฌ์ค ์ด๋ฌํ ํ๋์ ์ถํ์ Stage2์์ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์งํ๋ ๋ฐ ๋ฌธ์ ๋ฅผ ์ ๋ฐํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
3. Stage 2 - Softmax๋ก ํ์ตํ๊ณ SVM์ผ๋ก ์ต์ข ํด๋์ค๋ฅผ ๋ถ๋ฅํ์!
Stage 1์์ ์ป์ Region Proposal์ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ์ ๋ ฅ๋ ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๊ฐ ์ด๋ค ๋ฌผ์ฒด๋ฅผ ๋ํ๋ด๋์ง ํด๋์ค๋ฅผ ๋ถ๋ฅํด๋ณด์. ์ ๊ทธ๋ฆผ์ ๋นจ๊ฐ์ ๋ค๋ชจ์นธ์ ํด๋นํ๋ ๋จ๊ณ์ด๋ค. ์ผ๋ฐ์ ์ธ CNN ๋ชจ๋ธ์ฒ๋ผ Feature Map์ Flatten ํ๊ณ Dense layer(FC layer)๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋น์ทํ๋ค. ํ์ง๋ง ํน์ดํ ์ ์ Softmax layer์ SVM Classifier๊ฐ ๋์์ ์กด์ฌํ๋ค๋ ์ ์ด๋ค.
RCNN์ ๊ฐ์ฒด ํด๋์ค๋ฅผ ์ต์ข ๋ถ๋ฅํ๊ธฐ ์ ์ ๋จผ์ Softmax layer๋ก ๊ฐ์ฒด๊ฐ ์ด๋ค ํด๋์ค๋ก ๋ถ๋ฅ๋๋์ง์ ๋ํ ํ๋ฅ Score๋ฅผ ์ป๋๋ค. ์ด ํ๋ฅ Score๋ฅผ ์ป์ผ๋ฉด์ ํ๋ผ๋ฏธํฐ๊ฐ ํ์ต์ด ๋๋ค. ์ด๋ ๊ฒ Softmax layer๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ํ์ตํ ์ดํ RCNN์ Softmax๋ก ๊ฐ์ง ์๊ณ SVM Classifier๋ก ํ์ง๋ ๊ฐ์ฒด์ ํด๋์ค๊ฐ ๋ฌด์์ธ์ง ์ต์ข ๋ถ๋ฅํ๊ฒ ๋๋ค.
๊ตณ์ด Softmax layer๊ฐ ์๋ SVM Classifier๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด์ ๊ฐ์ ์์์๋ ๋ํ ์ผํ๊ฒ ์ค๋ช ํ์ง ์์์ง๋ง ๊ตฌ๊ธ๋ง์ ํด๋ณด๊ณ ๋ ํ ๊ฒฐ๊ณผ์ ์ผ๋ก SVM์ ์ฌ์ฉํ ๋ ๋ ์ฑ๋ฅ์ด ์ข์์ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ๊ตฌ์ฒด์ ์ธ ์ด์ ๋ ์ฌ๊ธฐ๋ฅผ ํตํด ํ์ธํด๋ณด์.
4. Stage3 - Bounding Box ์ขํ๋ฅผ ์ฐพ์!
์ง๊ธ๊น์ง ๊ณผ์ ์ ํตํด ํ์ง๋ ๊ฐ์ฒด์ ํด๋์ค๊ฐ ์ด๋ค ๋ฌผ์ฒด์ธ์ง ๋ถ๋ฅ๊น์ง ํ๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๊ฐ์ฒด๊ฐ ์ด๋์ ์๋์ง Detection ํ๊ธฐ ์ํด ๊ฐ์ฒด ์ฃผ๋ณ์ ์ฌ๊ฐํ์ ๊ทธ๋ ค์ฃผ๋ Bounding Box์ ์ขํ๋ฅผ ์ฐพ์์ผ ํ๋ค. ์ขํ๋ฅผ ์ฐพ๊ธฐ ์ํด Regression์ ์ฌ์ฉํ๋ค. ์ต์ ์ ์ขํ๋ฅผ ์ฐพ๋ ๊ณผ์ ๋ Loss ํจ์๋ฅผ ์ฌ์ฉํด ์ญ์ ํ๋ฅผ ์ฌ์ฉํ๋๋ฐ ํ๋จ์ ๊ทธ๋ฆผ์ ๋ณด๊ณ ์ฒ์ฒํ ์ดํดํด๋ณด์.
Regression ํ์ต์ผ๋ก ์ฐพ์์ผ ํ ๊ฒ๋ค์ ์ ๊ทธ๋ฆผ์์ '(์ฐพ์์ผ ํ ํ๋ผ๋ฏธํฐ)' ๋ผ๊ณ ํ์๋ ๋ถ๋ถ๋ค์ด๋ค. ์ ๊ทธ๋ฆผ์์ ํํํ๊ณ ์ ํ ๊ฒ์ ์์ธก๋ ํ๋์ ๋ฐ์ค์ ์ขํ์ธ $(p_x, p_y)$๋ฅผ ์ค์ ์ขํ๊ฐ์ธ $(g_x, g_y)$์ผ๋ก ์ผ๋ง๋ ์ด๋์ํค์ผ ํ๋์ง ์๊ณ ์๋ ํจ์ $d_x(p)$์ $d_y(p)$๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค. ๋ ํ๋์ ๋ฐ์ค์ ๋๋น์ธ $p_w$์ ๋์ด์ธ $p_h$๋ฅผ ์ผ๋ง๋ Scaling ํด์ผ ๋นจ๊ฐ์ ๋ฐ์ค์ ๋๋น, ๋์ด์ธ $g_h$, $g_w$๋ก ๋๋์ง ์๊ณ ์๋ ํจ์ $exp^{d_h(p)}$์ $exp^{d_w(p)}$๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ ์์๋ค์ ๊ธฐ๋ฐ์ผ๋ก $g$ ์ ๋ํ ์์ธก๊ฐ์ธ $\hat{g}$๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ํ๋ผ ์ ์๋ค.
- $\hat{g}_x = p_w*d_x(p) + p_x$
- $\hat{g}_y = p_h*d_y(p) + p_y$
- $\hat{g}_w = p_w*exp^{d_w(p)}$
- $\hat{g}_h = p_h*exp^{d_h(p)}$
์ด์ $t$๋ผ๋ ๋ณ์์ ๋ํด ์ ์ํ ํ ๋ฐ, ์ด $t$๋ $p$๊ฐ $g$๋ก ์ฎ๊ธฐ๋ ์ด๋๋์ ์๋ฏธํ๋ค. ๊ฒฐ๊ตญ $t$๋ ์์์ ์ฐ๋ฆฌ๊ฐ ์ฐพ์์ผ ํ๋ ๋ชจ๋ $d(p)$์ ๋ํ Label์ด๋ผ๊ณ ํ ์ ์๋ค. ๋ฐ๋ผ์ $t$๋ผ๋ ์ด๋๋์ ๋ํด ์ ์๋ฅผ ํ๊ฒ ๋๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- $t_x = (g_x - p_x)/p_w$
- $t_y = (g_y - p_y)/p_h$
- $t_w = \log(g_w/p_w)$
- $t_h = \log(g_h/p_h)$
์ด์ Label์ด๋ผ๊ณ ํ ์ ์๋ $t$ ๊ฐ๋ค์ ๋ํด ์ ์๋ฅผ ํ์ผ๋ ์ด $t$ ๊ฐ๋ค๊ณผ ์ฐ๋ฆฌ๊ฐ ํ์ต์ํค๋ ค๋ ํจ์๋ค $d(p)$ ๊ฐ์ ์ฐจ์ด๋ฅผ 0์ผ๋ก ๋ง๋ค์ด์ฃผ๋๋ก ํ๋ฉด ๋๋ค. ํ๋จ์ $t$ ์ $d(p)$ ์๋ํ Loss ํจ์ ์์์ด๋ค.
Loss ํจ์์ ์์ ๋์๋ ๋ชจ๋ธ์ ์ผ๋ฐํ๋ฅผ ์ํ ์ ๊ทํ ํญ์ธ L2 norm์ ์ ์ฉํ ๊ฒ์ ๋ณผ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ผ๋ฌธ์์ $\lambda$ ์ ์ ์ ํ ๊ฐ์ผ๋ก 1000์ ์ถ์ฒํ๊ณ ์๋ค.
์ด๋ ๊ฒ ๋จ๊ณ๋ณ ์ค๋ช ์ ๊ฑฐ์ณ RCNN ๋ชจ๋ธ์ ๋ํด์ ์์๋ณด์๋ค. ํ์ง๋ง RCNN์ ์์์ ์ธ๊ธํ๋ค์ํผ ํ๋์ Region Proposal ๋ง๋ค Feature Extractor์ ๋ฃ์ด์ฃผ์ด Object Detection์ ํ๋ค. ๊ทธ๋์ ๋ง์ฝ Region Proposal์ด 2000๊ฐ๋ฅผ ์ถ์ฒํด์ค๋ค๋ฉด ์์ ๊ณผ์ ์ 2000๋ฒ ๋ฐ๋ณตํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก RCNN์ ํ์ต ์๊ฐ์ ์์ด์ ๋งค์ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
๋ํ ์ค๊ฐ์ Region Proposal๋ค์ Feature Extractor์ ๋ฃ๋๋กํ๊ธฐ ์ํด ์ฌ์ด์ฆ๋ฅผ ๊ณ ์ ์์ผ ์ค์ผ ํ๋ฏ๋ก ์ด๋ฏธ์ง๋ฅผ ์๋ฅด๊ฑฐ๋ ์ฐ๊ทธ๋ฌ๋จ๋ฆด ์ ๋ฐ์ ์๋ค. ์ด๋ ๊ฐ์ฒด ํ์ง ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
๋ฐ๋ผ์ ์์ ๊ฐ์ 2๊ฐ์ง ๋ฌธ์ ์ ์ ๊ทน๋ณตํ๋ SPP(Spatial Pyramid Pooling) Net์ ๋ํด ๋ค์ ํฌ์คํ ์์ ์์๋ณด๋ คํ๋ค.
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Fast RCNN Object Detection ๋ชจ๋ธ (0) | 2021.04.13 |
---|---|
[ML] SPP(Spatial Pyramid Pooling) Object Detection ๋ชจ๋ธ (2) | 2021.04.11 |
[ML] Object Detection ๊ธฐ์ด ๊ฐ๋ ๊ณผ ์ฑ๋ฅ ์ธก์ ๋ฐฉ๋ฒ (3) | 2021.04.08 |
[ML] ResNet & Inception Network๋? (2) | 2020.11.13 |
[ML] Convolutional Neural Network(CNN) (0) | 2020.10.07 |