0. R-CNN


- ์ ๋ ฅ ์ด๋ฏธ์ง์ Selective Search ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ์ฌ bounding box(region proposal) 2000๊ฐ๋ฅผ ์ถ์ถ.
- ์ถ์ถ๋ bounding box๋ฅผ warp(resize)ํ์ฌ CNN์ ์ ๋ ฅ.
- fine tunning ๋์ด ์๋ pre-trained CNN์ ์ฌ์ฉํ์ฌ bounding box์ 4096์ฐจ์์ ํน์ง ๋ฒกํฐ๋ฅผ ์ถ์ถ.
- ์ถ์ถ๋ ํน์ง ๋ฒกํฐ๋ฅผ SVM์ ์ด์ฉํ์ฌ class๋ฅผ ๋ถ๋ฅ.
- bounding box regression์ ์ ์ฉํ์ฌ bounding box์ ์์น๋ฅผ ์กฐ์ .
- non maximum supression์ ์งํ
⇒ ์ด ์น๊ตฌ์ ๋ฌธ์ ์ :
1) ๊ฐ๋๋ฆผ
2) ๋ค์ด๊ฐ ๋ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ๊ณ ์ ์ํค๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง ์๊ณก๋จ
0. SPPNet

- R-CNN์ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ ์น๊ตฌ⇒ ์ต๋ 2000๋ฒ ์ฐ์ฐ์ ๋จ ํ๋ฒ์ผ๋ก ์ค์⇒ ์๊ฐ๋จ์ถ
- ⇒ input ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ์ํจ ⇒ ์๊ณกํ์ ์์ฐ
- Selective Search
- input image๋ฅผ ๊ฐ์ง๊ณ selective search ์งํ
- image ์์ ๊ฐ์ฒด๊ฐ ์์๋ฒํ ํ๋ณด๊ตฐ๋ค์ 2000๊ฐ ์ ์ ํจ
- CNN
- input image ํ ์ฅ์ ๊ทธ๋ฅ CNN ๊ตฌ์กฐ์ ๋ฃ์ด๋ฒ๋ฆผ (conv+pooling์ ๋ฐ๋ณต ๊ตฌ๊ฐ)
- CNN ๊ณ์ธต ๋ฐ๋ณตํ๋ค๊ฐ ๋ง์ง๋ง ๋ถ๋ถ์์์ ํ๋ง์ SPP pooling์ผ๋ก ๋ฐ๊ฟ๋ฒ๋ฆผ
- SPP Pooling
- ์์์ ์ถ์ถํ 2000๊ฐ์ ์์ญ์ ๊ฐ์ ธ์ด.
- ์ดํ, 4*4 , 2*2, 1*1 ํฌ๊ธฐ์ max pooling์ ์งํํจ.
- ์งํํด์ 1์ฐจ์ ๋ฒกํฐ ํฌ๊ธฐ๋ก ์ด์ด ๋ถ์ฌ์ค
- ๊ทธ๋ ๊ฒ ๋๋ฉด ์ด 21๊ฐ์ bin์ด ๋์ด. (๊ณ ์ ํฌ๊ธฐ์ ๋ฒกํฐ๊ฐ ๋ ๊ฒ์
- ์ดํ ์๋ค๋ฅผ FC layer์ ์ง์ด๋ฃ์. (๊ฐ์ค์น o)
- FC layer์ ํ ๋ฒ์ฉ ๋ ๋ฃ๊ณ SVM์ ํตํด ํด๋น ๋ฒกํฐ์ ๊ฐ์ฒด์ ์ ๋ฌด(classification) ์งํ
- ์ถ๊ฐ์ ์ผ๋ก, Boundary Boxes Regressor ์งํํด์ bounding box์ ํฌ๊ธฐ๋ฅผ ์๋ง๊ฒ ์กฐ์ (๊ฐ์ฒด ์์น์ ์๋ ๊ณณ์ผ๋ก)ํ ํ, non maximum suppression์ ํตํด ์ต์ข bounding box๋ฅผ ์ ๋ณ!
→ ์ด ์น๊ตฌ์ ๋ฌธ์ ์ :
1) 3๋จ๊ณ์ ๊ตฌ์กฐ๋ฅผ ์ง๋ (selective search, CNN, SVM)
2) 4x4 2x2 1x1 spatial bin์ผ๋ก ์ธํด ์ค๋ฒํผํ ๋ฐ์ ๊ฐ๋ฅ์ฑ ์ฌ๋ผ๊ฐ
3) ์ฉ๋ ๋ง์ด ํ์
0. Fast R-CNN


- ๊ทธ๋์ ๋์จ ์น๊ตฌ๊ฐ fast R-CNN
- Selective Search
- input image๋ฅผ ๊ฐ์ง๊ณ selective search ์งํ
- image ์์ ๊ฐ์ฒด๊ฐ ์์๋ฒํ ํ๋ณด๊ตฐ๋ค์ ์ต๋ ex) 2000๊ฐ ์ ์ ํจ
- ROI ์์ญ ์ถ์ถ⇒ ์ด ๋ 2000๊ฐ์ ์์ญ์ ๋ค ์ฌ์ฉํ์ง ์์(Hierarohical sampling)์ด๋ผ๊ณ ํจex) input image๊ฐ 2๊ฐ๊ณ , region์ด 128๋ก ์ก์๋ค๋ฉด 64๊ฐ์ ์์ญ๋ง ํ๋ณด ์์ญ์ผ๋ก ๊ฐ์ ธ๊ฐ
- ⇒ ํ ๋ฏธ๋ ๋ฐฐ์น ๋น์ ์ด๋ฏธ์ง๋งํผ ๋๋ ์ค ์ ๋ค๋ง ์ฌ์ฉํ๋ค
- CNN
- input image ํ ์ฅ์ ๊ทธ๋ฅ CNN ๊ตฌ์กฐ์ ๋ฃ์ด๋ฒ๋ฆผ (conv+pooling์ ๋ฐ๋ณต ๊ตฌ๊ฐ)
- CNN ๊ณ์ธต ๋ฐ๋ณตํ๋ค๊ฐ ๋ง์ง๋ง ๋ถ๋ถ์์์ ํ๋ง์ ROI pooling์ผ๋ก ์งํํจ
- ROI pooling⇒ SPP pooling์ ๋จ์ํ ์ํจ ๋ฐฉ๋ฒ⇒ max pooling์ ์ฌ์ฉํด 7x7 feature map ์ถ์ถํด์ ๊ณ ์ ํฌ๊ธฐ ๋ฒกํฐ๋ก ๋ง๋ฌ
๊ทธ๊ฑธ ๊ฐ์ํด์๋ผ๋ ์งํ (์๊ฐ ๋จ์ถ) - ** add) ROI์ ํ๋ณด ์์ญ ํฌ๊ธฐ๋ค์ด ๋ค ๋ค์ํ๊ธฐ ๋๋ฌธ์, ์๋ฅผ ๋ค์ด nxm ์ ๊ฐ์ด ์ ์ฌ๊ฐํ์ด ์๋์ ๋ค์ ๊ฒฝ์ฐ 7x7์ ์์ญ์ผ๋ก ์ชผ๊ฐ๋ ๊ณผ์ ์์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅผ ์๋ ์์
- ⇒ SPP์ ๊ฒฝ์ฐ, 4x4 2x2 1x1๊ณผ ๊ฐ์ด 3๊ฐ์ pooling ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด, ์ด ์น๊ตฌ๋ ํ ๋ฒ๋ง ์งํํ์
- FC Layers
- ์ดํ, FC layer์ ํ ๋ฒ ๊ฑฐ์น๊ณ , ๋ ๊ฐ์ ๊ฐ๋๋ก ๋๋
- ๊ฐ๊ฐ FC layer์ ๋ ๋ฒ ๋ ๊ฑฐ์น๊ณ 1) classification 2) Boundary boxes regression ์งํ
- Loss Function
- ์ด ์น๊ตฌ์ ๊ฒฝ์ฐ, classification loss์ bbox regressor loss๋ฅผ ์์ด์ ์ข ํฉ์ ์ธ loss๋ฅผ ๊ตฌํจ
- ์ด loss๊ฐ์ ์ด์ฉํด ์ญ์ ํ๋ฅผ ์งํํจ** classification: softmax๋ก ์ป์ด๋ธ ํ๋ฅ ๊ฐ๊ณผ ์ ๋ต๊ฐ์ ๋ํ loss
⇒ smooth L1์ ๋น ๋ฅธ ์๋๋ก loss๋ฅผ 0์ผ๋ก ์๋ ดํ๋ค๋ ํน์ง์ ์ง๋ (์๋ ๋น ๋ฅด๊ฒ)
- ** localization loss๋ x,y,w,h์ ๋ํ ์์ธก๊ฐ๊ณผ groundtruth(์ค์ ์ ๋ต๊ฐ)์ ์กฐ์ ์ ํตํด ๊ณ์ฐํด์ smooth L1 ํจ์๋ฅผ ํต๊ณผํ ๊ฐ์ด๋ผ๊ณ .
→ ์ด ์น๊ตฌ์ ๋ฌธ์ ์ :
R-CNN๊ณผ SPPNet๋ณด๋ค๋ ์ฑ๋ฅ์ด ์ข์ผ๋, test ๊ฒฐ๊ณผ๋ฅผ ๋ดค์ ๋, region proposal ๊ณผ selective search๋ฅผ ์งํํ ๋ ์๊ฐ ๋น์ค์ด ํผ (์๊ฐ ์ค๋ ๊ฑธ๋ฆผ)
1. Intro
- ๊ทธ๋์ ๋์จ๊ฒ Faster- RCNN
- Region Proposal์ GPU๋ฅผ ํตํด ํ์ตํ์! ํด์ RPN( Region Proposal Network)๊ฐ ์ถ๊ฐ๋ ์น๊ตฌ
2. Overall Architecture


- ์ด๋ฏธ์ง๋ฅผ pre-trained ๋ VGG์ ์ง์ด๋ฃ์
- ํผ์ฒ๋งต ์ถ์ถ
- ์ถ์ถํ ํผ์ฒ๋งต์ 3x3, padding=1๋ก ์ถ์ถ (์ฑ๋ ์๋ฅผ 256 or 512)
- ๋ ๊ฐ๋๋ก ๋๋ ์ 1x1 conv ์งํ (์์ถ์ ๊ฐ๋ )
- Classification ์งํ ( Anchor ๊ฐ๋
์ด ์ฌ๊ธฐ์ ์ฐ์)
- ex) Hxwx2k ๊ฐ์ anchor box๊ฐ ์์ฑ๋จ (2: ๊ฐ์ฒด์ ์ ๋ฌด์ ๋ํ ๋ฒกํฐ)
- Bounding box regression ์งํ ( Anchor ๊ฐ๋
์ฌ์ฉ)
- Hxwx4k ๊ฐ์ anchor box๊ฐ ์์ฑ๋จ (4: x,y,w,h ์ขํ์ ๋ํ ๋ฒกํฐ ์ ๋ณด๋ค)
⇒ Non maximum suppression์ ์ ์ฉ ( ๋ง์ ํ๋ณด๋ค ์ค ์ค๋ณต๋ ์์ญ๋ค ์ ๊ฑฐ → ์๊ฐ ๋จ์ถ)
⇒ ์ด 2000๊ฐ์ ROI๋ง ์ด์ฉ(ํ์ต์)
⇒ 2000๊ฐ์์ ๋ ์ค์ธ ์์ N๊ฐ๋ง ํ๋ณด๋ก ์ ์ถ(ํ๊ฐ์)
- 5๋ฒ๊ณผ 6๋ฒ์ ํตํด ํ๋ณด๋ค์ด ์ถ๋ ค์ง
- ์ด ์ถ๋ ค์ง ์์ญ๋ค์ ๊ฐ์ง๊ณ ROI Pooling์ ์งํํจ
- VGG์์ ๋์จ ํผ์ฒ๋งต์ ํ๋ณด ์์ญ๋ค์ ์ฌ์ฉ
- ํ๋ณด ROI์ ํด๋นํ๋ ๋ถ๋ถ๋ง 3x3 max-pooling์ ํตํด ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฒกํฐ ์ถ์ถ
- FC layer์ ๊ฐ์ ์ง์ด๋ฃ์
- ์ดํ, sofmax๋ฅผ ํ์ฉํด classification ์งํ ๋ฐ boundary box regression ์งํ ํ ์์ธก
3. Training

3-1. pre-trained VGG-16
- pre-trained๋ VGG16 ๋ชจ๋ธ์ 800x800x3 ํฌ๊ธฐ์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅํ์ฌ 50x50x512 ํฌ๊ธฐ์ feature map์ ์ป์.
3-2-1. Anchor generation layer
- ํ์ต์ ์ฌ์ฉํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์น๊ตฌ(๋ฏธ๋๋ฐฐ์น Loss์์ target ๊ฐ์ผ๋ก ์ฌ์ฉ)
- ๊ฐ์ฒด ์ ๋ฌด ๋ผ๋ฒจ ๊ฐ
- ground truth bounding box⇒ ์ ๋ผ๋ฒจ๊ฐ์ผ๋ก ์ฐ์
Anchor?
- ‘๋ป’์ ์๋ฏธ
- ๋ฐฐ๊ฐ ์์ง์ด์ง ์๊ฒ ํ๊ณ , ๋ฐฐ๊ฐ ์ด๋ ์์น์ ์๋์ง๋ฅผ ํ์ธํ๋ ๊ธฐ์ค
- ์ฆ, anchor box๋ object๊ฐ ์์์งํ ๊ธฐ์ค์ ์ญํ ์ ํจ
- sliding window ์งํ



⇒ ๊ฐ ๊ทธ๋ฆฌ๋์์ ์ฌ๋ฌ๊ฐ์ง์ object๋ฅผ ๊ฒ์ถํ ์ ์๋๋ก ๋์์ค
- ์๋ณธ ์ด๋ฏธ์ง ํฌ๊ธฐ์ sub-sampling ratio๋ฅผ ๊ณฑํ ๋งํผ์ grid cell์ด ์์ฑ๋จ(๊ฐ ์ค์ฌ์ )
- ๊ฐ grid cell ๋ง๋ค 9๊ฐ์ anchor box๋ฅผ ์์ฑ
- ๊ทธ๋ฌ๋ฉด ๊ฒฐ๊ตญ ์์ฑ๋๋ anchor box๋ ์์ ์์๋ 50x50x9๊ฐ๊ฐ ์์ฑ๋จ
- ์๋ณธ ์ด๋ฏธ์ง์์ sub-sampling ratio๋ฅผ ์ ์ฉํ ํ, anchor box๋ฅผ ์ถ์ถํจ
- 800 → 50์ผ๋ก ๋์์ผ๋ฏ๋ก, ratio๋ 1/16
- ์ฆ, 800x(1/16) x 800x(1/16) x 9 ⇒ 50x50x9์ ํ๋ณด anchor box๋ค์ด ์์ฑ
- ์ํ๋ง๋ ์ ๋ค ์ค, ์์ฑ๊ณผ ์์ฑ ์ต์ปค ์ต๋ 1:1 ๋น์จ๋ก ๋ง์ถฐ์ ๋ฏธ๋๋ฐฐ์น loss๋ฅผ ๊ณ์ฐํจ
3-2-2. RPN
- VGG๋ฅผ ํตํด ๋์จ feature map์ ํ์ฉํจ
- 3x3 conv, zero padding(ํฌ๊ธฐ ์ ์ง)์ ํตํด ์ฑ๋ ์๋ฅผ 256 or 512๋ก ์ค์
- ์ดํ, classification๊ณผ regression์ ์งํํด์ ํ๋ณด ์์ญ๋ค์ ๊ณ ๋ฆ
- classification1) 1x1 conv๋ฅผ ํตํด ์ฑ๋์ ์กฐ์ (์ ๋ณด ์์ถ์ ๊ฐ๋ )2) ์๋์ ์์ ์ฐธ๊ณ ) 8x8x(2x9) ์ anchor box๊ฐ ์์ฑ ⇒ ์ฑ๋์๋ 2x9 =183) 8x8x18์ ํ๋ณด anchor box๊ฐ ์์ฑ
- boundary box regression1) 1x1 conv๋ฅผ ํตํด ์ฑ๋์ ์กฐ์ (์ ๋ณด ์์ถ์ ๊ฐ๋
)
- 2) 8x8x(4x9)์ anchor box๊ฐ ์์ฑ ⇒ ์ฑ๋์๋ 4x9 (4= x,y,w,h์ ๋ํ ์ ๋ณด)
⇒ non maximum suppression์ ํตํด ์ค๋ณต ์์ญ๋ค ์ ๊ฑฐ
⇒ ์ด๋, IOU์ ์๊ณ๊ฐ์ 0.7 ์ด์์ธ ์ ๋ค์ postive anchor๋ก ์ค์ , ์ดํ์ธ ์ ๋ค์ negative anchor๋ก ๊ณ ์ ํ ์ฑ, NMS ์ ์ฉ + ์ด๋ฏธ์ง์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ ์ ๋ค๋ ์ง์๋ฒ๋ฆผ → ์ฝ 2000๊ฐ์ ์์ญ๋ค๋ง ๋จ๊น
โป ์ด๋ ๊ฒ ํ๊ฒ ๋๋ฉด ํ์ต๋ RPN์ ์ ๋ ฅ ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๋ฅผ ํฌํจํ ๊ฐ๋ฅ์ฑ์ด ๋์ anchor์ ์์ฑํ๊ฒ ๋จ
⇒ ํ๋ณด ์์ญ๋ค์ ROI pooling์ ํ์ต์์ ์งํ
3-3. ROI pooling
- VGG์์ ๋์จ feature map์ ํ๋ณด anchor box๋ฅผ ์ ์ฉ์ํด
- ์ดํ ROI pooling ์งํ ( 3x3 ๊ตฌ์ญ์ผ๋ก ๋๋ ์ max pooling)
- ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฒกํฐ๊ฐ ์์ฑ๋ ๊ฒ์
3-4. Classification/Boundary Boxes Regression
- ๊ณ ์ ๋ ํฌ๊ธฐ ๋ฒกํฐ๋ฅผ ๋ ๊ฐ๋๋ก ๋๋ FC์ ๋ฃ์
- ์ดํ, softmax๋ฅผ ํตํด classification ์งํ
- bbox regression ์งํ
- ํ์ต ์งํ
3-5. Loss function(RPN)
- ์ฌ๊ธฐ์ ground truth label ๊ฐ ์์ ์๋ณธ ์ด๋ฏธ์ง์์ anchor box๋ฅผ ์์ฑํ ์ ๋ค

- i= ํ๋์ anchor์ ์๋ฏธ
- pi= classification์ ํตํด ์ป์ ํด๋น anchor๊ฐ ์ค๋ธ์ ํธ์ผ ํ๋ฅ
- ti= bounding box regression์ ํตํด ์ป์ ๋ฐ์ค ์กฐ์ ๊ฐ ๋ฒกํฐ
- pi*, ti* = ground truth label๊ฐ (์ ๋ต๊ฐ)
- classification์ ๊ฒฝ์ฐ, log loss ์ฌ์ฉ
- regression loss์ ๊ฒฝ์ฐ, smooth L1 ํจ์๋ฅผ ์ฌ์ฉ

โป smooth L1( huber loss)
3-6. Sharing Features for RPN and Fast R-CNN
3-6-1. Alternating train
- ์ด ๋ ผ๋ฌธ์์ ํ์ต์ํจ ๋ฐฉ๋ฒ
- pre-trained๋ VGG๋ฅผ ์ด์ฉํด RPN์ ํ์ต์ํด
- ์์์ ํ์ต์ํจ ์ ๋ค์ Fast R-CNN ๋ชจ๋ธ์ ์ง์ด๋ฃ์ด์ ์ฒ์ image- VGG - Fast RCNN ์์๋ก ๋ค์ ํ์ต์ํด⇒ ์ด ๊ฒฝ์ฐ, ๊ทธ๋ผ VGG ๋ชจ๋ธ(feature map)์ด ์ด ๋ ๋ฒ์ด ํ์ต๋๋ ๊ฒ์ ( ์ด๋๊น์ง๋ VGG conv๊ฐ์ ๊ณต์ ํ์ง ์์)
- 1๋ฒ๊ณผ 2๋ฒ์ ํ ๋๋ก ํด์ ๋์จ VGG feature map์ ๊ณต์ .⇒ VGG(feature map)์ ๊ฐ์ง๊ณ RPN์ ํ ๋ฒ ๋ ์งํํ ํ, ROI pooling์ ํ๋ณด ์์ญ๋ค์ ์ง์ด๋ฃ์
- ROI pooling์ ๋ฃ์ ํ๋ณด ์์ญ๋ค์ ํ์ต์์ผ Fast R-CNN์ ํ ๋ฒ ๋ ์งํ
3-6-2. Approximate joint training
- ํ์ตํ ๋, RPN๊ณผ Fast R-CNN์ ํฉ์ณ์ ๋ฐ๋ก ํ์ต์ํด
- back propagation์ ์งํํ ๋, RPN๊ณผ Fast R-CNN์ loss๋ฅผ ํฉ์ณ์ ์ญ์ ํ ์งํ⇒ ํ์ง๋ง proposal box์ ์ขํ๊ฐ์ ๋ํ ๋ฏธ๋ถ๊ฐ์ ๋ฌด์๋จ ⇒ ๊ทธ๋์ approximate๋ผ๊ณ ํํํ๋ฏ (๊ทผ๋ฐ rpn์์ box regression์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ๋๋ฐ ์ ๋ฏธ๋ถ๊ฐ์ด ๋ฌด์๋๋๊ฑด์ง ์ ๋ชจ๋ฅด๊ฒ ์)
- ⇒ ํ์ต์๊ฐ ์ค์ด๋ค์
3-6-3. Non-approximate joint training
- Fast R-CNN์ ๊ณผ์ ์ธ ROI pooling layer๊ฐ conv feature๊ณผ bounding boxes๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์⇒ box์ ์ขํ๋ gradient์ ํฌํจ๋๋๋ก ํจ⇒ ์ด ๋๋ ๋ฏธ๋ถ์ด ๊ฐ๋ฅํ ROI pooling Layer๊ฐ ํ์.
- ⇒ ์ฆ, ์์ approximate joint training์์ ๋ฌด์๋์๋ ๊ฒ์ด ์ถ๊ฐ๋ ๊ฒ
3-7. Step Alternating Training
- ์์์ ํ์ต์ํจ ์ ๋ค์ Fast R-CNN ๋ชจ๋ธ์ ์ง์ด๋ฃ์ด์ ์ฒ์ image- VGG - Fast RCNN ์์๋ก ๋ค์ ํ์ต์ํด⇒ ์ด ๊ฒฝ์ฐ, ๊ทธ๋ผ VGG ๋ชจ๋ธ(feature map)์ด ์ด ๋ ๋ฒ์ด ํ์ต๋๋ ๊ฒ์ ( ์ด๋๊น์ง๋ VGG conv๊ฐ์ ๊ณต์ ํ์ง ์์) → ๋ง์ง๋ง ๋ ๊ฐ๋ฅผ ๋ค์ํ์ต์ํด
4. Test

4-1. pre-trained VGG-16
- pre-trained๋ VGG16 ๋ชจ๋ธ์ 800x800x3 ํฌ๊ธฐ์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅํ์ฌ 50x50x512 ํฌ๊ธฐ์ feature map์ ์ป์.
4-2. RPN
- VGG๋ฅผ ํตํด ๋์จ feature map์ ํ์ฉํจ
- 3x3 conv, zero padding(ํฌ๊ธฐ ์ ์ง)์ ํตํด ์ฑ๋ ์๋ฅผ 256 or 512๋ก ์ค์
- ์ดํ, classification๊ณผ regression์ ์งํํด์ ํ๋ณด ์์ญ๋ค์ ๊ณ ๋ฆ
- classification1) 1x1 conv๋ฅผ ํตํด ์ฑ๋์ ์กฐ์ (์ ๋ณด ์์ถ์ ๊ฐ๋ )2) ์๋์ ์์ ์ฐธ๊ณ ) 8x8x(2x9) ์ anchor box๊ฐ ์์ฑ ⇒ ์ฑ๋์๋ 2x9 =183) 8x8x18์ ํ๋ณด anchor box ์์ฑ
- boundary box regression1) 1x1 conv๋ฅผ ํตํด ์ฑ๋์ ์กฐ์ (์ ๋ณด ์์ถ์ ๊ฐ๋
)
- 2) 8x8x(4x9)์ anchor box๊ฐ ์์ฑ ⇒ ์ฑ๋์๋ 4x9 (4= x,y,w,h์ ๋ํ ์ ๋ณด)
⇒ non maximum suppression์ ํตํด ์ค๋ณต ์์ญ๋ค ์ ๊ฑฐ
⇒ ์ด๋, IOU์ ์๊ณ๊ฐ์ 0.7 ์ด์์ธ ์ ๋ค์ positive anchor๋ก ์ค์ , ์ดํ์ธ ์ ๋ค์ negative anchor๋ก ๊ณ ์ ํ ์ฑ, NMS ์ ์ฉ ์ด๋ฏธ์ง์ ๊ฒฝ๊ณ๋ฅผ ๋์ด๊ฐ๋ ์ ๋ค์ ํด๋ฆฌํ(clipping)์ ํตํด box๊ฐ ์ด๋ฏธ์ง ๊ฒฝ๊ณ ๋ด๋ถ์ ์์นํ๋๋ก ๋ง๋ค์ด์ค๋ค๊ณ ์๊ฐํ๋ฉด ๋จ(ํฝ์ ๊ฐ ์กฐ์ ๊ณผ ๊ฐ์)
⇒
์ดํ, ์์ N๊ฐ์ ์์ญ์ผ๋ก ๊ฐ์ถ๋ ค์ ROI input์ผ๋ก ์ฌ์ฉ (ํ์ต ์์๋ ์ด ๊ณผ์ ์ด ์์์)โป ์ด๋ ๊ฒ ํ๊ฒ ๋๋ฉด ํ์ต๋ RPN์ ์ ๋ ฅ ์ด๋ฏธ์ง์์ ๊ฐ์ฒด๋ฅผ ํฌํจํ ๊ฐ๋ฅ์ฑ์ด ๋์ anchor์ ์์ฑํ๊ฒ ๋จ
⇒ ํ๋ณด ์์ญ๋ค์ ROI pooling์ ํ์ต์์ ์งํ
4-3. ROI Pooling
- VGG์์ ๋์จ feature map์ ํ๋ณด anchor box๋ฅผ ์ ์ฉ์ํด
- ์ดํ ROI pooling ์งํ ( 3x3 ๊ตฌ์ญ์ผ๋ก ๋๋ ์ max pooling)
- ๊ณ ์ ๋ ํฌ๊ธฐ์ ๋ฒกํฐ๊ฐ ์์ฑ๋ ๊ฒ์
4-4. Classification/Boundary Boxes Regression
- ๊ณ ์ ๋ ํฌ๊ธฐ ๋ฒกํฐ๋ฅผ ๋ ๊ฐ๋๋ก ๋๋ FC์ ๋ฃ์
- ์ดํ, softmax๋ฅผ ํตํด classification ์งํ
- bbox regression ์งํ
- ํ์ต ์งํ
5. Experiments
- R-CNN vs Fast R-CNN vs Faster R-CNN

- Faster R-CNN์์๋ ์์ ํ one stage๋ฅผ ๋ง๋ฌ
- ์ฆ, end to end ๋ฐฉ์์ด๋ผ๊ณ ๋งํ ์ ์์ (r-cnn์ ๊ฒฝ์ฐ, selective search์์๋ CPU๋ฅผ ์ฌ์ฉ์ ํ๊ณ , ๋ท๋ถ๋ถ ๋ถํฐ๋ GPU๋ฅผ ์ฌ์ฉ)⇒ ์ฆ, ์ฒ์๋ถํฐ GPU๋ฅผ ์ฌ์ฉํ๋ ์ํ๋์ ์ฐจ์ด๋ผ๊ณ ๋งํ ์ ์์.

- ์ฑ๋ฅ ํจ์ฌ ์ข์์ง
- Selective Search → RPN

- selective search๋ฅผ RPN์ผ๋ก ๋์ฒด ํ์ ๋์ ์๋ ์ฐจ
- SS์ ๊ฒฝ์ฐ, total 1.8s ์ค, proposal์์ 1.5s๊ฐ ์์๋จ → ๋๋ฆฌ๋ค!
Other experiments
- ์ด๊ธฐ ์ค์ ํ Anchor Box๊ฐ Scale๊ณผ Aspect ratio์ ๋ฐ๋ผ ํ์ต๋ ํ, ์ด๋ป๊ฒ ๋ณ๊ฒฝ ๋๋๊ฐ์ ๋ํ ํ๊ท


- anchor box์ 3๊ฐ์ง scale๊ณผ 3๊ฐ์ง aspect ratio๋ฅผ ๋ค๋ฅธ ๊ฒฝ์ฐ์ ์๋ก ์ฌ์ฉํ์ ๋์ ์ฑ๋ฅ ๋น๊ต
- ์ด ๊ฒฐ๊ณผ๋ก์จ๋ ์ฌ์ค ๋ณ๋ก ํฐ ์ฐจ์ด๊ฐ ์์์ (3๊ฐ์ง scale ๊ณผ 1๊ฐ์ง aspect ratio, 3๊ฐ์ง aspect ratio๋ฅผ ์ฌ์ฉํด๋ณธ ๊ฒฐ๊ณผ)
- ํ์ฅ์ฑ์ ๊ณ ๋ คํด์ 3๊ฐ์ง scale๊ณผ 3๊ฐ์ง aspect ratio๋ฅผ ์ฌ์ฉ
- loss function์ ๋๋ค์ ๋ฐ๋ฅธ ์ฑ๋ฅ ๋น๊ต

- ์ฌ์ค ๋ณ ์ฐจ์ด ์์์ ⇒ ๋๋ค์ ์ํฅ๋ ฅ์ ํฌ์ง ์๋ค!
+์ถ๊ฐ) ๋๋ค๊ฐ ๋ญ ์๋ฏธํ๋๊ฐ?
โป ๋๋ค์ ์ญํ : ๋ loss์ ์๋์ ์ธ ๊ฐ์ค์น๋ฅผ ์กฐ์ ํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ
ex) ๋๋ค= 10 ⇒ Lcls์ Lreg์ ๊ฐ์ค์น๋ 1:10์ผ๋ก ์กฐ์
โป Faster R-CNN์์๋ ์ต์ปค๋ฐ์ค๊ฐ ๋๋ถ๋ถ ๋ฐฐ๊ฒฝ์ ํด๋นํ๊ธฐ ๋๋ฌธ์, ๊ฐ์ฒด ์ ๋ฌด ํ๋จ์ด bounding box regression๋ณด๋ค ๋ ์ค์ํ๋ค๋ ๊ฒ์ ๊ธฐ๋ฐ์ ๋ . ๋ฐ๋ผ์, ๋๋ค๋ฅผ 10์ผ๋ก ์ค์ ํ์ ๋๊ฐ ๋ ์์ค์ ๊ธฐ์ฌ๋๊ฐ ๊ท ๋ฑํ๊ฒ ๋๋ ๊ฒ์!
- Faster R-CNN vs Others

- Faster R-CNN์ด MAP์ด ๋ ๋๊ณ , GPU Time์ด ๋ ์งง์์
6. Outro
- CPU๋ฅผ ์ฌ์ฉํ๋ selective search๊ฐ ์๋ GPU์์ RPN์ ์ฌ์ฉํ Region proposal ์งํ. ⇒ ์๋์ ์ ํ๋ ํฅ์
7. Reference
https://velog.io/@suminwooo/RPNRegion-Proposal-Network-์ ๋ฆฌ
https://wikidocs.net/148635
https://yhu0409.tistory.com/2
https://herbwood.tistory.com/10
https://velog.io/@suminwooo/RPNRegion-Proposal-Network-์ ๋ฆฌ
https://www.telesens.co/2018/03/11/object-detection-and-classification-using-r-cnns/
https://deep-math.tistory.com/26https://wsshin.tistory.com/9https://velog.io/@skhim520/Faster-R-CNN-๋ ผ๋ฌธ-๋ฆฌ๋ทฐ-๋ฐ-์ฝ๋-๊ตฌํhttps://blahblahlab.tistory.com/105?category=1161047https://welcome-to-dewy-world.tistory.com/110https://yeomko.tistory.com/17https://wikidocs.net/148635https://leechamin.tistory.com/221https://deepseow.tistory.com/15
'Deep Learning > [๋ ผ๋ฌธ] Paper Review' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AE (0) | 2023.07.06 |
---|---|
SPPNet (0) | 2023.07.06 |
YOLO: You Only Look Once: Unified, Real-Time Object Detection (1) | 2023.07.06 |
Fast R-CNN (0) | 2023.07.06 |
Transformer (0) | 2023.07.06 |