๐ ๊ฐ์ ์ ๋ฆฌ
2 Stage Detector
๊ฐ์ฒด๊ฐ ์์ ๋ฒํ ์์น๋ฅผ ํน์ ์ง๊ณ , ํด๋น ๊ฐ์ฒด๊ฐ ๋ฌด์์ธ์ง ๋ถ๋ฅํ๋ 2๊ฐ์ง ๋จ๊ณ๋ฅผ ๊ฑฐ์น๋ ๋ชจ๋ธ์ 2 stage detector๋ผ๊ณ ํ๋ค.

1. R-CNN

โ Pipeline

- Input Image
- Extract Region proposals : Selective Search ๋ฐฉ๋ฒ์ ํตํด ์ฝ 2000๊ฐ์ RoI ์ถ์ถ
- Warping : RoI์ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ํด ๋ชจ๋ ๋์ผํ ์ฌ์ด์ฆ๋ก ๋ณ๊ฒฝ
- warping์ ํ๋ ์ด์ ? FC layer์ ์ ๋ ฅ ์ฌ์ด์ฆ๊ฐ ๊ณ ์ ๋์ด์, ๋์ผํ ์ฌ์ด์ฆ๋ก ๋ง์ถฐ์ค์ผํ๋ค.
- Compute CNN features : ๊ฐ region ๋ง๋ค 4096(64ร64)-dim feature vector ์ถ์ถ(2000ร4096) - semantic ์ ๋ณด ํฌํจ๋์ด ์๋ค, pretrained AlexNet ๊ตฌ์กฐ ์ฌ์ฉ(๋ง์ง๋ง์ FC layer ์ถ๊ฐ, ํ์์ ๋ฐ๋ผ fine-tuning)
- Classify regions
- Feature vector๋ฅผ SVM์ ๋ฃ์ด ๋ถ๋ฅ ์งํ : Input : 2000ร4096, Output : Class(c+1) + Confidence score
- Feature vector๋ฅผ regression์ ํตํด BBOX ์์ธก : ์ค์ฌ์ ์ ์ขํ์ ๊ฐ๋ก ์ธ๋ก ๊ธธ์ด๋ฅผ ํ์ตํ๋ค.
โ Selective Search
ํ๋ณด ์์ญ ์ถ์ถ์ ์ํด ์ฌ์ฉ๋๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฝ 2000๊ฐ์ RoI๋ฅผ ์ถ์ถ

โ Training
- AlexNet
- Domain specific finetuning
- Dataset ๊ตฌ์ฑ(when finetuning)
โข IoU > 0.5: gt์ RoI์ IoU๊ฐ 0.5 ์ด์์ด๋ฉด positive samples. (GT ํ๋์ ๋ํ RoI๊ฐ ํ๋ ์ด์์)
โข IoU < 0.5: gt์ RoI์ IoU๊ฐ 0.5 ์ดํ์ด๋ฉด negative samples
โข Positive samples 32, negative samples 96
- Linear SVM
- Dataset ๊ตฌ์ฑ
- Ground truth: positive samples
- IoU < 0.3: negative samples
- Positive samples 32, negative samples 96
- Dataset ๊ตฌ์ฑ
- Hard negative mining
- Hard negative: False positive
- ๋ฐฐ๊ฒฝ์ผ๋ก ์๋ณํ๊ธฐ ์ด๋ ค์ด ์ํ๋ค์ ๊ฐ์ ๋ก ๋ค์ ๋ฐฐ์น์ negative sample ๋ก mining ํ๋ ๋ฐฉ๋ฒ
- BBox Regressor
- Dataset ๊ตฌ์ฑ
- IoU > 0.6 : positive samples
- Negative sample์ bbox๊ฐ ์๋ค
- Loss function
- MSE Loss : ์ค์ฌ์ ๊ณผ, width, height๋ฅผ ์ด๋์ ๋๋ก ๋ฐ๊ฟ ๊ฒ์ธ์ง ๋ณํ์ ๋ํด ํ์ต
- Dataset ๊ตฌ์ฑ
โ Shortcomings
- 2000๊ฐ์ Region ์ ๊ฐ๊ฐ CNN ํต๊ณผ โ CNN ์ฐ์ฐ 2000๋ฒ ์งํํด์ผํด์ ๋งค์ฐ ๋๋ฆผ
- ๊ฐ์ Warping, ์ฑ๋ฅ ํ๋ฝ ๊ฐ๋ฅ์ฑ
- CNN, SVM classifier, bounding box regressor, ๋ฐ๋ก ํ์ต
- End to End X
2. SPPNet
โ Overall Architecture & R-CNN๊ณผ ๋น๊ต

R-CNN | SPPNet |
2000๊ฐ์ RoI์ ๋ํด 2000๋ฒ์ ConvNet ์ฐ์ฐ ์ํ | 1๋ฒ์ ConvNet ์ฐ์ฐ์ ํตํด ์์ฑ๋ Feature map์์ 2000๊ฐ์ RoI ์ถ์ถ |
๊ณ ์ ๋ size๋ก warping | Spatial Pyramid Pooling Layer๋ฅผ ํตํ size ๋ณ๊ฒฝ |
โ Spatial Pyramid Pooling
๊ณ ์ ๋ feature vector size๋ฅผ ์ํด ๋ค์ํ RoI์ size๋ฅผ ๋์ผํ๊ฒ ๋ณ๊ฒฝํ๋ ๊ณผ์

- Target feature map์ size๋ฅผ ์ ํ๋ค
- Pooling์ ์งํํ์ฌ size๋ฅผ ๋ง์ถ๋ค
- ๋ค์ํ size๋ก pooling์ ์งํํ ๊ฒ์ flattenํ์ฌ concatํ๋ค
- FC layer์ input์ผ๋ก ๋ฃ๋๋ค

โ Shortcomings
2000๊ฐ์ Region ์ ๊ฐ๊ฐ CNN ํต๊ณผ โ CNN ์ฐ์ฐ 2000๋ฒ ์งํํด์ผํด์ ๋งค์ฐ ๋๋ฆผ๊ฐ์ Warping, ์ฑ๋ฅ ํ๋ฝ ๊ฐ๋ฅ์ฑ- CNN, SVM classifier, bounding box regressor, ๋ฐ๋ก ํ์ต
- End to End X
3. Fast R-CNN
R-CNN๊ณผ ๋ฌ๋ฆฌ Selective Search๋ฅผ ์ ์ธํ๊ณ ๋ End-to-end ๊ณผ์ ์ด๋ค. Conv layer, softmax classifier, bbox regressor ๋ชจ๋ ํ๋์ NN์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.

โ Pipeline
- ์ด๋ฏธ์ง๋ฅผ CNN์ ๋ฃ์ด feature ์ถ์ถ(ํ ๋ฒ๋ง ์ํํ๋ค) : VGG16 ์ฌ์ฉ
- RoI Projection ์ ํตํด feature map ์์์ RoI ๋ฅผ ๊ณ์ฐ
- RoI Pooling ์ ํตํด ์ผ์ ํ ํฌ๊ธฐ์ feature ๊ฐ ์ถ์ถ : ๊ณ ์ ๋ vector ์ป๊ธฐ ์ํ ๊ณผ์
- Fully connected layer ์ดํ Softmax Classifier ๊ณผ Bouding Box Regressor
โ RoI Projection
์๋ณธ์ด๋ฏธ์ง์์ Selective Search๋ฅผ ํ๋ ๊ณผ์ ์ ๊ฐ๊ณ Feature Map์ 2000๊ฐ์ RoI๋ฅผ ํฌ์ํ๋ค.

์๋ณธ์ด๋ฏธ์ง์ Conv Feature Map์ size๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ ์์ฒ๋ผ ์งํ์ ํ๊ณ , ๋ค๋ฅธ ๊ฒฝ์ฐ๋ RoI์ ๋น์จ์ ์๋ณธ์ด๋ฏธ์ง์ Feature Map์ ๋น์จ์ ๋ง์ถ์ด์ ์กฐ์ ํด์ค๋ค. ์๋ ์์์์๋ 400ร400์ด 40ร40์ด ๋์ผ๋ฏ๋ก RoI๋ 300์ 10์ผ๋ก ๋๋์ด์ 300ร300์ด 30ร30์ผ๋ก ๋ฐ๊พธ์ด Projection ํ๋ค.

โ RoI Pooling
Spatial Pyramid Pooling๊ณผ ๊ฑฐ์ ์ ์ฌํ์ง๋ง, Spatial Pyramid Pooling์ Pyramid size๊ฐ 1ร1, 2ร2, 4ร4, 8ร8 ๋ฑ์ ์ฌ๋ฌ๊ฐ์ง์ธ๋ฐ, RoI pooling์ target size๊ฐ 7ร7 ํ๊ฐ๋ผ๋ ์ ์ด ๋ค๋ฅด๋ค.
โ Training
- Multi Task Loss ์ฌ์ฉ
- โข(classification loss bounding box regression)
- Loss funciton
- Classification : Cross entropy
- BB regressor : Smooth L1(outlier์ ๋ ๋ฏผ๊ฐ)
- Dataset ๊ตฌ์ฑ
- IoU > 0.5: positive samples
- 0.1 < IoU < 0.5: negative samples
- Positive samples 25%, negative samples 75%
- Hierarchical sampling
- R-CNN ์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง์ ์กด์ฌํ๋ RoI ๋ฅผ ์ ๋ถ ์ ์ฅํด ์ฌ์ฉ
- ํ ๋ฐฐ์น์ ์๋ก ๋ค๋ฅธ ์ด๋ฏธ์ง์ RoI ๊ฐ ํฌํจ๋จ
- Fast R-CNN ์ ๊ฒฝ์ฐ ํ ๋ฐฐ์น์ ํ ์ด๋ฏธ์ง์ RoI ๋ง์ ํฌํจ
- ํ ๋ฐฐ์น ์์์ ์ฐ์ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ ์ ์์
โ Shortcomings
2000๊ฐ์ Region ์ ๊ฐ๊ฐ CNN ํต๊ณผ โ CNN ์ฐ์ฐ 2000๋ฒ ์งํํด์ผํด์ ๋งค์ฐ ๋๋ฆผ๊ฐ์ Warping, ์ฑ๋ฅ ํ๋ฝ ๊ฐ๋ฅ์ฑCNN, SVM classifier, bounding box regressor, ๋ฐ๋ก ํ์ต- End to End X
โ ๊ผญ ์ฝ์ด๋ณผ ๊ฒ
Fast R-CNN ๋ ผ๋ฌธ ๋ฆฌ๋ทฐ ๋ธ๋ก๊ทธ
4. Faster R-CNN
โ Fast R-CNN vs. Faster R-CNN

Faster R-CNN์ Selective Search๋ก Region์ ์ถ์ถํ๋ ๋ถ๋ถ์ด ์์ด์ง๊ณ , RPN์ด๋ผ๋ ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ์ ๋คํธ์ํฌ๋ฅผ ๋์ ํ์ฌ End-to-End ๋ชจ๋ธ ๊ตฌ์กฐ์ด๋ค. (Selective Search๋ cpu ์์์ ๋์ํ๊ณ ํ์ต ๊ฐ๋ฅํ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ค)
โ Pipeline
- ์ด๋ฏธ์ง๋ฅผ CNN ์ ๋ฃ์ด feature maps ์ถ์ถ (CNN ์ ํ ๋ฒ๋ง ์ฌ์ฉ)
- RPN ์ ํตํด RoI ๊ณ์ฐ
- NMS(Non Maximum Suppresion)
โ RPN - Region Proposal Network
selective search ๋์ฒด ๋ฐฉ๋ฒ์ผ๋ก Anchor box๋ฅผ ์ฌ์ฉํ๋ค. ๊ฐ ์ ๋ง๋ค ๋ค์ํ scale์ ์ต์ปค๋ฐ์ค๊ฐ ์ฃผ์ด์ง๋ค.
์๋์ ๊ฐ์ด 9๊ฐ์ anchor box๊ฐ ์๊ณ 64ร64 feature map์ด ์๋ค๋ฉด ์ด 64ร64ร9๊ฐ(์ฝ 36K๊ฐ)์ RoI๊ฐ ์กด์ฌํ๊ฒ ๋๋ค.
36K๋ 2K๊ฐ์ ๋นํด ๋งค์ฐ ํฐ ์ซ์์ด๋ฏ๋ก ์ต์ปค๋ฐ์ค๊ฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ๊ณ ์๋์ง ์์ธกํด์ผํ๊ณ bbox์ ์์น์ ํฌ๊ธฐ๋ฅผ ๋ฏธ์ธ์กฐ์ ํด์ผํ๋ค.
๋ฐ๋ผ์ RPN์ ๊ฐ ์ ๋ง๋ค N๊ฐ์ ์ต์ปค๋ฐ์ค๊ฐ ๊ฐ์ฒด๋ฅผ ํฌํจํ๊ณ ์๋์ง ํ๋จํ๊ณ ๋ง์ฝ์ ํฌํจํ๊ณ ์๋ค๋ฉด ์ค์ฌ์ ์ด๋ํ๊ณ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ์ผ์ ํ๋ค.

- CNN ์์ ๋์จ feature map ์ input ์ผ๋ก ๋ฐ์ . ๐ป: ์ธ๋ก , ๐: ๊ฐ๋ก , ๐ถ: ์ฑ๋
- 3x3 conv ์ํํ์ฌ intermediate layer ์์ฑ
- 1x1 conv ์ํํ์ฌ binary classification ์ํ : ๊ฐ ํฝ์
๋ณ๋ก 9๊ฐ์ ์ต์ปค๋ฐ์ค๊ฐ ๊ฐ์ฒด์ธ์ง ์๋์ง ์ฑ๋์ ์ ๋ณด ์ ์ฅ
- 2 ( object or not ) x 9 (num of anchors) ์ฑ๋ ์์ฑ โ 18๊ฐ์ ์ฑ๋
- 9๊ฐ์ ์ฑ๋์ ๋ํด sigmoid ์ฐ์ฐ์ ํ์ง ์๊ณ object ์์ ๋์ 9 ์ฑ๋ , ์์ ๋ 9 ์ฑ๋ ํด์ 18๊ฐ์ ์ฑ๋์ ์ฌ์ฉํ๋ ์ด์ (=object๊ฐ ์๋์ง ์๋์ง binary classification ๋ฌธ์ ๋ฅผ logit๊ฐ 2๊ฐ๋ฅผ ์ด์ฉํด ํํํ๋ ์ด์ ) : 9๊ฐ์ channel์ ๋ง๋ค์ด์ sigmoid๋ฅผ ์์์ฃผ๋ ๊ฒฝ์ฐ์ threshold๋ฅผ ํตํด์ ๋ฌผ์ฒด๊ฐ ์กด์ฌํ๋์ง ์๋์ง ํ๋ณ์ ํด์ผํ๋ฉฐ, ๊ทธ๋ ๋ค๋ฉด ํน์ threshold ์ฐพ๊ณ ์ด์ ๋ง๊ฒ ํ์ต์ ํด์ผํ๋ค๋ ์ ์ ๋ฐ๋ผ์ 18๊ฐ์ channel์ ๋ง๋ค์ด sigmoid๋ฅผ ์์ ๋ ๋์ ๊ฐ์ ๋ฐ๋ผ ๋ฌผ์ฒด๊ฐ ์กด์ฌํ๋์ง ์๋์ง ํ๋ณํ๊ฒ ๋๋ค.
- 1x1 conv ์ํํ์ฌ bounding box regression ์ํ : 3์ ๊ณผ์ ์์ ๊ฐ์ฒด๊ฐ ํฌํจ๋๊ณ ์๋ค๋ฉด 4 ์งํ(์ด๋ป๊ฒ ๋ฏธ์ธ์กฐ์ )
- 4 ( bounding box ) x9 (num of anchors) ์ฑ๋ ์์ฑ โ 36๊ฐ์ ์ฑ๋


Faster RCNN RPN์ NMS์์๋ Object๊ฐ ์กด์ฌํ๋์ง ์กด์ฌํ์ง ์๋์ง ๊ณ์ฐํ Score ๊ฐ์ ๊ธฐ์ค์ผ๋ก NMS๋ฅผ ์งํ
'TIL > Boostcamp AI tech' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[3rd P stage] Segmentation Wrap UP (0) | 2021.10.18 |
---|---|
[Boostcamp]Week9-Day39. Object Detection Library :: seoftware (0) | 2021.09.30 |
[Boostcamp Lv2][P stage] Week9-Day37. Object Detection :: seoftware (0) | 2021.09.27 |
[Boostcamp Lv2] Week8-Day36. ํน๊ฐ โ ก :: soeftware (0) | 2021.09.24 |
[Boostcamp Lv2] Week8-Day35. ํน๊ฐ โ :: seoftware (0) | 2021.09.23 |
๋๊ธ