๐ ๊ฐ์ ์ ๋ฆฌ
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 |
๋๊ธ