- toc {:toc}
Overview of R-CNN structure
Fast RCNN
Fast RCNN ์ RCNN ๊ณผ SPPnet ์ด ๊ฐ์ง๊ณ ์๋ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ณ ์ ๊ณ ์๋๋ค. ๊ฐ ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด๊ณ ๋ฐ์ํ ๋ฌธ์ ๋ฅผ ์ฒดํฌํ ํ Fast RCNN ์ ๋ํด ์ดํดํด๋ณด์.
RCNN
Structure of RCNN
- ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ Selective Search ํตํด RoIs ์์ฑ
- RoI(Region of Interest) ๊ฐ๊ฐ์ ๋ํด Crop, Resize(Wrapping)
- CNN ํต๊ณผํ์ฌ ํน์ง๋งต ์์ฑ
- ์์ฑํ ํน์ง๋งต์ cache ๋ก ์ ์ฅํ๋ค.
- Classifiers(SVM) ์ ํตํด ๋ถ๋ฅ ์์ ์ ํ๋ค.
- Bounding-box Regressor(Bbox reg) ๋ฅผ ํตํด์ ๊ฐ์ฒด ํ์ง๋ฅผ ํ๋ค.
Problems of RCNN
-
CNN ์ ๋ ฅ์ ์ํ Warpping ๊ณผ์ ์์ crop, resize ๋ก ์ธํด ์ ๋ณด ์์ค์ด ๋ฐ์ํ๋ค.
-
Training is a multi-stage pipeline RCNN ์ pipeline ์ a) Selective Search ๋ฅผ ํตํด์ RoI ๋ฅผ ์ถ์ถ, b) CNN ์ ์ด์ฉํด ํน์ง ์ถ์ถ, c) ๊ฐ ์์ ์ ๋ฐ๋ผ ๋ถ๋ฅ, ๊ฐ์ฒด ํ์ง ๊ณผ์ ๋ฑ ์ฌ๋ฌ ๊ณผ์ ์ด ๋ฐ๋ก ๋จ์ด์ ธ์ ์งํ๋๋ค. ์ด๋ฐ multi-stage pipeline ์ End-to-End ํ์ต์ ํ ์ ์์ด ํ ์ชฝ์ ํ๋ จ์ด ๋๋๋ผ๋ ๋ค๋ฅธ stage ๊ฐ ํ์ต๋์ง ์๋๋ค๋ ๋ฌธ์ ์ ์ ๊ฐ๋๋ค.
-
Training is expensive in space and time. ๊ฐ๊ฐ์ RoI ๋ฅผ CNN ์ ๋ฃ์ด ๋์จ ํน์ง๋งต์ ์ ๋ถ ๋ชจ์ SVM, Bbox reg ์ ์ฌ์ฉํด์ผ ํ๊ธฐ ๋๋ฌธ์ ํน์ง๋งต์ ์ ์ฅํด๋ฌ์ผ ํ๋ค. ์ด๋ ๋ง์ ์ ์ฅ ๊ณต๊ฐ์ ํ์๋ก ํ๋ค.
-
Object detection is slow. ๊ฐ ํ ์คํธ ์ด๋ฏธ์ง๋ง๋ค RoI ๋ฅผ ๋ฝ๊ณ , RoI ๋ง๋ค CNN ์ ํต๊ณผ์์ผ ๋ฐ์ํ๋ ๋ณต์ก๋๋ก ์ธํด ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์์ง๋ฉด์ ๊ณต๊ฐ์ ์ธ ๋น์ฉ, ์๊ฐ์ ์ธ ๋น์ฉ์ด ์์นํ๊ณ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ๋ฌธ์ ์ ์ ๊ฐ๋๋ค.
SPPnet
Strucutre of SPPnet
- ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ CNN ์ ๋ฃ๋๋ค.
- CNN ์ผ๋ก๋ถํฐ ์ถ์ถ๋ ํน์ง๋งต์ Selective Search ์ ๊ฐ์ Proposal Method ๋ฅผ ์ฌ์ฉํด RoI ๋ฅผ ์ ์ ํ๋ค.
- ๊ฐ RoI ์ ๋ํด Spatial Pyramid Pooling layer ๋ฅผ ์ ์ฉํ๋ค.
- Fully-connected layers ๋ฅผ ํต๊ณผํ๊ณ ๋ ๊ฒฐ๊ณผ๋ฅผ cache ๋ก ์ ์ฅํ๋ค.(SVMs ์ Bbox reg ๊ฐ ์ฐ์ฐ์ ๊ณต์ ํ์ง ์๊ธฐ ๋๋ฌธ)
- SVM ์ ํตํด ๋ถ๋ฅ ์์ ์ ํ๋ค.
- Bbox reg ์ Non Maximum Suppression ์ ํตํด์ bounding box ๋ฅผ ๊ตฌํ๋ค.
Improvements of SPPnet over RCNN
- Spatial Pyramid Pooling(SPP) ๋ฐฉ์์ ๊ณ ์ํ SPPnet ์ RCNN ์ ๋ค์์ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ๋ค.
- ๊ฐ๊ฐ์ RoI ์ CNN ์ ์ ์ฉํ์ฌ ๋ง์ ๋น์ฉ์ด ๋ฐ์ํ๋ ๋ฌธ์
- RCNN โ Selective Search ๋ก ์ถ์ถํ RoI ๊ฐ๊ฐ์ CNN ์ ์ ์ฉํ๋ค. โ ๋งค์ฐ ํฐ ๋ณต์ก๋
- SPPnet โ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ CNN ์ ๋ฃ์ด ์ถ์ถํ ํน์ง๋งต์ Selective Search ์ ์ฉํ๋ค. โ ๋ณต์ก๋ ๊ฐ์
- Warping(Crop, Resize) ์ผ๋ก ์ธํด ์ ๋ณด์ ์์ค์ด ๋ฐ์ํ๋ ๋ฌธ์
- RCNN โ Warping ์ ์ฌ์ฉํด FC layer ์ ์ ๋ ฅ๋ ๊ณ ์ ๊ธธ์ด ๋ฒกํฐ๋ฅผ ๋ง๋ ๋ค. โ ์ ๋ณด์ ์์ค, ์ ํ๋์ ์์ค ๋ฐ์
- SPPnet โ Spatial Pyramid Pooling(SPP) ์ ์ฌ์ฉํ์ฌ warping ์์ด ๊ณ ์ ๊ธธ์ด์ ๋ฒกํฐ๋ฅผ ๋ง๋ ๋ค. โ ์ ๋ณด ์์ค ์์ด, ๋ค์ํ ์์น ์ ๋ณด ๋ด์ ์ฌ์ฉํ๋ค.
Problems of SPPnet
- RCNN ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก a) CNN ์ด์ฉํด ํน์ง ์ถ์ถ, b) Selective Search ๋ก RoI ์ถ์ถ, c) ๊ฐ ์์ ์ ๋ฐ๋ผ ๋ถ๋ฅ, ๊ฐ์ฒด ํ์ง ๊ณผ์ ๊ณผ ๊ฐ์ด ์ฌ๋ฌ pipeline ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- SPPnet ๋ํ ๊ฐ RoI ์ ๋ํด SPP ์ FC layer ๋ฅผ ๊ฑฐ์น ์ดํ์ ํน์ง์ ์ ์ฅํด์ผ ํ๋ค๋ ๋ฌธ์ ์ ์ ๊ฐ๋๋ค.
Overall Structure of Fast RCNN
- Fast RCNN ์ RCNN ์ ๋ฌธ์ ์ SPPnet ์ ๋ฌธ์ ์ ์ ๋์์ ํด๊ฒฐํ๊ณ ์ ๊ณ ์๋๋ค.
- ์ ์ฒด ์ ๋ ฅ ์ด๋ฏธ์ง์ Selective Search ๋ฅผ ํตํด RoI(์ด๋ฏธ์ง) ๋ฅผ ์ถ์ถํ๋ค.
- ์ ์ฒด ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ CNN ์ ์ ๋ ฅํด ํน์ง๋งต์ ์ถ์ถํ๋ค.
- CNN ์ ํต๊ณผํ ํน์ง๋งต์ ํฌ๊ธฐ๊ฐ ์ค์ด๋ ํํ (e.g. 14x14) ์ด๊ธฐ ๋๋ฌธ์ RoI ๋ฅผ ์ค์ด๋ ํฌ๊ธฐ์ ํน์ง๋งต์ ์์น์ ๋ง๊ฒ projection ํ๋ค.
- ์ดํ projection ํ RoI(ํน์ง๋งต) ์ RoI Pooling ์ ์ ์ฉํ์ฌ FC layer ์ ์ ๋ ฅ์ผ๋ก ๋ฃ๊ธฐ ์ํ ๊ณ ์ ๊ธธ์ด ๋ฒกํฐ๋ฅผ ์์ฑํด FC layers ๋ฅผ ํต๊ณผํ๋ค.
- SVM ๋์ ๋ถ๋ฅ ์์ ์ softmax ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ค ๋ฌผ์ฒด์ธ์ง ๋ถ๋ฅํ๋ค.
- Bbox reg ๋ฅผ ํตํด์ ๊ฐ์ฒด ํ์ง๋ฅผ ์กฐ์ ํ๋ค.
- Fast RCNN ์ CNN ์ผ๋ก VGGNet ์ ์ฌ์ฉํ๋ค.
- FC layers ์ ๋ง์ง๋ง FC layer ํ๋๋ฅผ FC layer 2 ๊ฐ๋ก ๋ถํ ํ์ฌ์ฌ ์ฒซ ๋ฒ์งธ FC layer ๋ Softmax ๋ฅผ ํตํ ๋ถ๋ฅ, ๋ ๋ฒ์งธ FC layer ๋ Bbox reg ๋ฅผ ํตํ ๊ฐ์ฒด ํ์ง๋ก ์ฌ์ฉํ๋ค.
- ์ ๊ทธ๋ฆผ์์ ์ฐ๊ฒฐ๋ ๊ฒ๊ณผ ๊ฐ์ด Fast RCNN ์ softmax, bbox regressor ์ ๊ฐ์ feature vector ๊ฐ ์ ๋ฌ๋๊ณ , ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๊ฐ ํ๋์ stage ๋ก ์ด์ด์ ธ ์๋ค.
Main Ideas of Fast RCNN
Fast RCNN ์ด ์ ์ํ ์์ด๋์ด์ ๋ํด ์์๋ณด์.
RoI Pooling
RoI Pooling ์ด ์ฌ์ฉ๋๋ ๋ถ๋ถ์ CNN ์ ํต๊ณผํ ํน์ง๋งต์ RoI ์ ๋ํ projection ์ด ์ ์ฉ๋ ์ํ์ด๋ค. ์ฆ, ์ ๋ ฅ๋๋ ์ด๋ฏธ์ง (e.g. 224x224) ํฌ๊ธฐ์ RoI ์ ์์น๋ฅผ ํน์ง๋งต (e.g. 14x14) ์ ์ผ์นํ๋๋ก ์ฐ๊ฒฐ์์ผ์ฃผ๋ ๊ฒ์ ๋งํ๋ค. ์ดํ ํน์ง๋งต์ RoI ์ RoI Pooling ์ ์ ์ฉํ๋ค.
- ์ ๊ทธ๋ฆผ์ ์ด๋ฏธ์ง๊ฐ VGG ๋ฅผ ํต๊ณผํด RoI Pooling ๊น์ง ์ ์ฉํ ๊ณผ์ ์ ์๋ฅผ ๋ค์ด ๋ณด์ฌ์ค๋ค.
- ์ด๋ฏธ์ง๊ฐ VGG ๋ฅผ ํต๊ณผํด 8x8 ์ ํน์ง๋งต์ ์ฐ์ถํ๋ค.
- ์๋ณธ ์ด๋ฏธ์ง์ Selective Search ๋ฅผ ํตํด ์ถ์ถํ RoI ๋ฅผ projection ํ์ฌ ํน์ง๋งต์ 5x7 ์ ํฌ๊ธฐ๋ก ์์น๋ฅผ ์ค์ ํ๋ค.
- RoI Pooling ์ ์ถ๋ ฅ ํฌ๊ธฐ์ ๋ง๋๋ก Grid ๋ก spliting ํ๋ค. ์ ๊ทธ๋ฆผ์ ๊ฒฝ์ฐ 2x2 RoI Pooling ์ธ ์ํ์ด๊ณ , h ์ w ๊ฐ ๋ชจ๋ ํ์์ด๊ธฐ ๋๋ฌธ์ ๋น๋์นญ์ ์ผ๋ก ๋๋์ด์ง ๊ฒ์ฒ๋ผ ๋ณด์ธ๋ค.
- ํด๋น Grid ์์์ ์ต๋๊ฐ์ ์ถ์ถํ๋ MaxPooling ์ ํตํด์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ์ถ๋ ฅ์ ๋ง๋ ๋ค.
- RoI Pooling ์ SPP(Spatial Pyramid Pooling) ์ ํน๋ณํ ๊ฒฝ์ฐ์ด๋ค.
- Grid ๋ Projection_height / Pooling_height, Projection_width / Pooling_width ๋ค์๊ณผ ๊ฐ์ด ์ค์ ํด์ ๊ตฌํ ์ ์๋ค.
Multi-task loss
: K+1 ๊ฐ์ Class Score (K ๊ฐ์ ๊ฐ์ฒด + ๋ฐฐ๊ฒฝ), Softmax ์ ์ํด ๊ณ์ฐ๋๋ค. : ์ ๋ต ๊ฐ์ฒด ํด๋์ค (0 or 1) : ์์ธกํ K ๊ฐ์ฒด ํด๋์ค์ ๋ํ bounding box ์ขํ ์กฐ์ ๊ฐ : K ๊ฐ์ฒด ํด๋์ค์ ๋ํ bounding box ์ขํ๊ฐ : ๋ถ๋ฅ, bbox ์์ค ํจ์ ์ฌ์ด์ ๊ฐ์ค์น๋ฅผ ์กฐ์ ํ๋ hyperparameter : ์ธ ๊ฒฝ์ฐ u = 1 ์๋๋ฉด u = 0 : ๋ถ๋ฅ ์ ์์ ๋ํ log loss : Bounding box ์ขํ์ ๋ํ Smooth L1 loss - smooth L1 ์ ์ฌ์ฉํ ์ด์ ๋ L1 loss ๋ ์ด์์น์ ๋ ๋ฏผ๊ฐํ๊ณ , L2 loss ๋ ๋๋ฌด ๋ฏผ๊ฐํด ํ์ต๋ฅ ์กฐ์ ์ด ํ๋ค๊ธฐ ๋๋ฌธ์ L1 loss ์ ๊ฐ๊ฑดํจ์ ์ํํ๋ ๋ฐฉ์์ผ๋ก ์ ์ฉํ๋ค.
Mini-batch sampling
- Fine-tuning ์ ๊ฐ SGD ๋ฐฐ์น๋ N=2 ์ด๋ฏธ์ง์ R=128 ๋ก ์ด๋ฏธ์ง ๋น R/N ๊ฐ์ RoI ๋ฅผ ์ํ๋งํ๋ค.
- RoI ์ GT ์ IoU ๊ฐ 0.5 ์ด์์ธ ๊ฒฝ์ฐ ์ค 25% ์ RoI ๋ฅผ positive, foreground object class
๋ก ์ค์ ํ๊ณ , ์ธ ๊ฒฝ์ฐ ์ค 75% ๋ฅผ negative, background object class ๋ก ์ค์ ํ๋ค. - RCNN, SPPnet ์์๋ ์ํ๋ง์ ์ด๋ป๊ฒ ํ๋์ง๋ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
Backpropagation through RoI Pooling Layers
[]
: RoI Pooling Layer ์ ์ ๋ ฅ๋๋ i ๋ฒ์งธ activation input : r ๋ฒ์งธ RoI ์ ๋ํ j ๋ฒ์งธ ์ถ๋ ฅ
(Backpropagation, Truncated SVD โ ์ถํ ์ ๋ฆฌ ์์ )
Contributions of Fast RCNN
- RCNN, SPPnet ๋ณด๋ค ๋ ๋์ ํ์ง ์ฑ๋ฅ์ ๊ฐ๋๋ค.
- Multi-task loss ๋ฅผ ์ฌ์ฉํด ํ๋ จ์ single stage, End-to-End ๋ก ์งํํ๋ค.
- ํ๋ จ์ ํตํ backpropagation ์ด ๋ชจ๋ ๋คํธ์ํฌ ์ธต์ ๋๋ฌํ์ฌ ๋ชจ๋ ์ธต์ด ํ๋ จ๋๋ค.
- ํน์ง์ ์ ์ฅํ๊ธฐ ์ํ ์ ์ฅ๊ณต๊ฐ์ด ํ์ํ์ง ์๋ค.
Result
[]
- Fast RCNN ์ ์ฑ๋ฅ์ด ์ด์ ๋ค๋ฅธ ๋ฐฉ์๋ค๋ณด๋ค ๋์ ์ฑ๋ฅ์ ๋ณด์์ ํ์ธํ ์ ์๋ค.