๐ก R-CNN๋ถํฐ SPPNet, Fast R-CNN, ๊ทธ๋ฆฌ๊ณ ์ต์ 2 Stage Detector๋ค์ ๊ธฐ์ด๊ฐ ๋๋ Faster R-CNN
Background
์
๋ ฅ ์ด๋ฏธ์ง -- ๊ณ์ฐ --> Localization -- ๊ณ์ฐ --> Classification
1. ๊ฐ์ฒด ์์น
2. ๊ฐ๊ฐ์ ๊ฐ์ฒด classification
R-CNN
- ์ด๋ฏธ์ง ์
๋ ฅ
- Region proposal (๊ฐ์ฒด๊ฐ ์์๋ฒํ ํ๋ณด ์์ญ) ์ถ์ถ
- Sliding window
- Selective Search
- CNN feature ๊ณ์ฐ
- Classify Regions
Pipeline
- ์
๋ ฅ ์ด๋ฏธ์ง ๋ฐ๊ธฐ
- Selective search -> 2000๊ฐ์ RoI ์ถ์ถ
- RoI -- Warping --> ๋์ผํ size
- CNN์ ๋ง์ง๋ง FC layer ์
๋ ฅ ์ฌ์ด์ฆ๊ฐ ๊ณ ์
- RoI -- CNN --> Feature ์ถ์ถ
- ๊ฐ region๋ง๋ค 4096 dim feature vector ์ถ์ถ (2000x4096)
- Pretrained AlexNet ๊ตฌ์กฐ
- ๋ง์ง๋ง์ FC layer ์ถ๊ฐ
- ํ์์ ๋ฐ๋ผ Finetuning ์งํ
- CNN์์ ์ถ์ถํ Feature -- SVM --> ๋ถ๋ฅ
- Input: 2000x4096 features
- Output: Class (C+1(๋ฐฐ๊ฒฝ)) + Confidence scores
- CNN ํตํด ๋์จ feature -- Regression --> bounding box ์์ธก
- Selective search ํตํด ๋์จ ํ๋ณด ์์น๋ฅผ ๋ฏธ์ธ ์กฐ์
- ์ค์ฌ์ ์ขํ (x,y), w, h
Training
AlexNet
- Domain specific finetuning
- Dataset
- IoU > 0.5: (+)
- IoU < 0.5: (-)
- (+) samples 32 / (-) samples 96
Linear SVM
- Dataset
- Ground truth: (+)
- IoU < 0.3: (-)
- (+) samples 32 / (-) samples 96
- Hard negative mining
- Hard negative: False Positive
- ๋ฐฐ๊ฒฝ์ผ๋ก ์๋ณํ๊ธฐ ์ด๋ ค์ด ์ํ -> ๊ฐ์ ๋ก ๋ค์ ๋ฐฐ์น์ negative sample๋ก minig
Bbox regressor
- Dataset
- IoU > 0.6: (+)
- ์ค์ฌ์ ์ ์ผ๋ง๋ ์ด๋, width & height ์ผ๋ง๋ ํ๋/์ถ์
- Loss function: MSE Loss
Shortcomings
- 2000๊ฐ์ region ๊ฐ๊ฐ CNN ํต๊ณผ -> ์ฐ์ฐ๋ ๋ง์. ์๋ ๋๋ฆผ
- ๊ฐ์ Warping -> ์ ๋ณด ์์ค -> ์ฑ๋ฅ ํ๋ฝ ๊ฐ๋ฅ์ฑ
- CNN, SVM classifier, bounding box regressor ๋ฐ๋ก ํ์ต
- End-to-End X (Selective search)
SPPNet
R-CNN ํ๊ณ์
- ConvNet ์
๋ ฅ ์ด๋ฏธ์ง ๊ณ ์ -> crop/warp
- RoI(Region of Interest)๋ง๋ค CNN ํต๊ณผ
Pipeline
- Image --Conv layers--> Spatial pyramid pooling --FC layers--> Output
- ํ๋ฒ์ conv ์ฐ์ฐ์ผ๋ก ๋์จ feature map์ 2000๊ฐ์ region ๋ฝ์๋
- warpingํ์ง ์๊ณ spatial pyramid pooling์ผ๋ก ๊ณ ์ ๋ ํฌ๊ธฐ๋ก ๋ณํ
Spatial Pyramid Pooling
- ๊ฐ์ ์ฌ์ด์ฆ๋ก ๋๋ ์ ๊ฐ ์์ญ๋ง๋ค ํ๋์ feature ๋ฝ์๋
=> ๊ฐ์ ๊ฐ์(์์ญ ๊ฐ์)์ feature
Shortcomings
1. 2000๊ฐ์ RoI ๊ฐ๊ฐ CNN ํต๊ณผ - ๋จผ์ CNN ํต๊ณผํด์ RoI ๋ฝ์
2. ๊ฐ์ Warping - Spatial pyramid pooling์ผ๋ก ๊ณ ์ ๋ ํฌ๊ธฐ feature ๋ฝ์
3. CNN, SVM classifier, bounding box regression ๋ฐ๋ก ํ์ต
4. End-to-End X
Fast R-CNN
Pipeline
- ์ด๋ฏธ์ง๋ฅผ CNN์ ๋ฃ์ด feature ์ถ์ถ (CNN ํ ๋ฒ ์ฌ์ฉ)
- RoI projection --> feature map ์ RoI ๊ณ์ฐ
- RoI pooling --> ์ผ์ ํ ํฌ๊ธฐ์ feature
- Spatial pyramid pooling
- Pyramid level: 1
- Target grid size: 7x7
- Fully connected layer
- Softmax Classifier & Bounding Box Regressor
- ํด๋์ค ๊ฐ์: C+1(๋ฐฐ๊ฒฝ)๊ฐ
Training
- Multi task loss ์ฌ์ฉ
- Classification loss + bounding box regression
- Loss function
- Classification: Cross entropy
- BB regressor: Smooth L1 (๋ค๋ฅธ L1, L2๋ณด๋ค outlier ๋ ๋ฏผ๊ฐ)
- Dataset ๊ตฌ์ฑ
- IoU > 0.5: (+)
- 0.1 < IoU < 0.5: (-)
- (+) 25% / (-) 75%
- Hierarchical sampling
- R-CNN์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง์ ์กด์ฌํ๋ RoI ์ ๋ถ ์ ์ฅํด ์ฌ์ฉ
- ํ ๋ฐฐ์น์ ์๋ก ๋ค๋ฅธ ์ด๋ฏธ์ง์ RoI ํฌํจ๋จ
- Fast R-CNN: ํ ๋ฐฐ์น์ ํ ์ด๋ฏธ์ง์ RoI๋ง ํฌํจ
- ํ ๋ฐฐ์น ์์์ ์ฐ์ฐ, ๋ฉ๋ชจ๋ฆฌ ๊ณต์ ๊ฐ๋ฅ
Shortcomings
1. 2000๊ฐ์ RoI ๊ฐ๊ฐ CNN ํต๊ณผ
2. ๊ฐ์ Warping
3. CNN, SVM classifier, bounding box regression ๋ฐ๋ก ํ์ต
4. End-to-End X
- Selective search -- CPU --> ํ์ต ๊ฐ๋ฅ X
Faster R-CNN
Pipeline
- ์ด๋ฏธ์ง -- CNN --> feature maps (CNN ํ ๋ฒ ์ฌ์ฉ)
- RPN --> RoI ๊ณ์ฐ
- ๊ธฐ์กด selective search ๋์ฒด
- Anchor box
- ๊ฐ ์
๋ง๋ค N๊ฐ์ Anchor box ์ ์ -> ์ฌ๋ฌ ๊ฐ์ฒด ํฌ๊ธฐ ๋์ ๊ฐ๋ฅ
Region Proposal Network (RPN)
- Input: CNN์์ ๋์จ feature map (H,W,C)
- 3x3 conv --> intermediate layer ์์ฑ
- 1x1 conv --> binary classification ์ํ
- 2 (object or not) x 9 (# of anchors) channel
- 1x1 conv --> bbox regression ์ํ
- 4 (bbox) x 9 (# of anchors) channel
- 4: ์ค์ฌ์ ์ขํ x, y, ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด
NMS
- ์ ์ฌํ RPN Proposals ์ ๊ฑฐ
- Class score ๊ธฐ์ค์ผ๋ก proposals ๋ถ๋ฅ
- ๊ฐ bbox์ ๋ํด ๋ค๋ฅธ bbox์์ IoU ๊ณ์ฐ
- IoU >= 0.7 proposals ์์ญ๋ค์ ์ค๋ณต๋ ์์ญ์ผ๋ก ํ๋จ
Training
- Region Proposal Network (RPN)
- RPN ๋จ๊ณ์์ classification & regressor ํ์ต ์ํด anchor box (+)/(-) samples ๊ตฌ๋ถ
- Dataset
- IoU > 0.7 or GT ๊ฐ์ฅ ๋์ IoU: (+)
- IoU < 0.3: (-)
- ๋๋จธ์ง: ํ์ต๋ฐ์ดํฐ ์ฌ์ฉ X
- Loss ํจ์
- Region proposal ์ดํ Fast RCNN ํ์ต ์ํด (+)/(-) samples ๊ตฌ๋ถ
- Dataset
- IoU > 0.5: (+) -> 32๊ฐ
- IoU < 0.5: (-) -> 96๊ฐ
- 128 samples๋ก mini-batch ๊ตฌ์ฑ
- Loss ํจ์ : Fast RCNN๊ณผ ๋์ผ
- RPN & Fast RCNN ํ์ต
- Imagenet pretrained backbone load + RPN ํ์ต
- Imagenet pretrained backbone load + RPN (1) + Fast RCNN ํ์ต
- (2) finetuned backbone load & freeze + RPN ํ์ต
- (2) finetuned backbone load & freeze + RPN (3) + Fast RCNN ํ์ต
- ํ์ต ๊ณผ์ ๋ณต์ก => Approximate Joint Training ํ์ฉ
- Loss๋ค ๋ค ๋ํด์ ํ ๋ฒ์ backward ์ํค๋ ๋ฐฉ๋ฒ ์ฌ์ฉ
Summary
| R-CNN | Faster R-CNN | Faster R-CNN |
---|
Classification | SVMs | Linear | Linear |
Resize | Warp | RoI Pooling | RoI Pooling |
End-to-End | X | X | O |
์ถ์ฒ