๐ ํด๋น ํฌ์คํ ์์ ์ฌ์ฉ๋ ์ปจํ ์ธ ๋ ์ธํ๋ฐ์ ๋ฅ๋ฌ๋ ์ปดํจํฐ ๋น์ ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ์์ ์๋ฆฝ๋๋ค. ์ค๋ช ์์ ์ฌ์ฉ๋ ์๋ฃ๋ ์ต๋ํ ์ ๊ฐ ์ง์ ์ฌ๊ตฌ์ฑํ ์๋ฃ์์ ์๋ฆฝ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ Pixel-level๋ก Object Detection์ ์ํํ๋ Instance Segmentation ๋ชจ๋ธ์ธ Mask RCNN์ ๋ํด ์์๋ณด๋ ค๊ณ ํ๋ค. Mask RCNN์ Two-Stage Object Detection ๋ชจ๋ธ์ธ Faster RCNN ๊ณผ Semantic Segmentation ๊ธฐ๋ฒ์ธ FCN์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
1. Segmentation์ด๋?
Segmentation์ ํฝ์ ๋จ์, ์ด๋ฅธ๋ฐ Pixel-level๋ก Classification์ ์ํํ๋ ๊ฒ์ด๋ค. ๋ค์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ง๊ด์ ์ผ๋ก ์ดํด๊ฐ ๊ฐ ๊ฒ์ด๋ค.
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ด๋ฏธ์ง์ Object ๋ณ๋ก ํด๋์ค๊ฐ [1,2,3,4,5] ์ค ํ๋๋ก ๋ถ๋ฅ๋์์์ ๋ณผ ์ ์๋ค. ์์ ๊ฐ์ ๊ณผ์ ์ Segmentation์ด๋ผ๊ณ ํ๋ค.
2. Segmentation์ ์ข ๋ฅ
Segmentation ์ข ๋ฅ์ ๋ํด ๊ฐ๋จํ ์ดํด๋ณด๊ณ ๋์ด๊ฐ์. Segmentation์๋ ๋ค์๊ณผ ๊ฐ์ด 2๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ผ๋ฉฐ ์ฐจ์ด์ ์ ์๊ฐ์๋ฃ๋ก ํ์ธํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- Semantic Segmentation : ๋์ผํ ๊ฐ์ฒด๋ค๋ผ๋ฆฌ๋ ํ ๋ฒ์ Masking์ ์ํ. FCN์ด ๊ฐ์ฅ ๋ํ์ ์ธ ๊ธฐ๋ฒ์ด๋ค.
- Instance Segmentation : ๋์ผํ ๊ฐ์ฒด๋ค์ด์ฌ๋ ๊ฐ๋ณ๋ก ์ฆ, ๊ฐ๋ณ Object ๋ณ๋ก Masking์ ์ํ. ์์ผ๋ก ์์๋ณผ Mask RCNN์ด ์ฌ๊ธฐ์ ์ํ๋ค.
3. Semantic Segmentation Encoder-Decoder Model
์ด ์ธ์ฝ๋-๋์ฝ๋ ๋ชจ๋ธ์ ์ด์ ์ ๋ฐฐ์ ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ ๋ ฅ๊ฐ๊ณผ ์ต๋ํ ์ ์ฌํ๊ฒ ๋ง๋ค์ด์ฃผ๋ Auto Encoder ๋ชจ๋ธ๊ณผ ๊ตฌ์กฐ๊ฐ ๋น์ทํ๋ค. ๋ค์ ๊ทธ๋ฆผ์ ์ดํด๋ณด์.
์ด ๋ชจ๋ธ์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ Convolution์ผ๋ก ์ฐจ์์ ์ถ์ํด ์๋ณธ ์ด๋ฏธ์ง์ ์์ง๋๊ณ ์ถ์ํ๋ ํน์ง์ ์ถ์ถํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ Up Sampling์ ์ฌ์ฉํด์ ๋ค์ ๋ณต์ํ๋ฉฐ ํ์ํ ์ ๋ณด๋ฅผ ํ์ตํ๋ค. ์ด๋ ๊ฒ ํ์ต๋ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Segmentation Prediction์ ์ํํ๊ณ ์ ๊ทธ๋ฆผ์ Output๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
4. FCN(Fully Convolutional Network)
FCN์ Semantic Segmentation Encoder-Decoder Model์ ์ข ๋ฅ ์ค ํ๋์ด๋ค. ์ถํ์ ์๊ฐํ๊ฒ ์ง๋ง ์ด FCN์ ๊ธฐ๋ฒ์ ์ฝ๊ฐ ๋ณํํด ํ์ฉํ ๊ฒ์ด Mask RCNN ๋ชจ๋ธ์ด๋ค. ์ฐ์ FCN์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ๊ตฌ์กฐ๋ฅผ ์ดํด๋ณด์.
์ผ๋ฐ์ ์ธ Encoder-Decoder ๋ชจ๋ธ์ฒ๋ผ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ์์ถํ๋ Encoder ๊ณผ์ ์ ๊ฑฐ์น๋ค. ๊ทธ๋ฐ๋ฐ FCN์ ๋ณต์ํ๋ Decoder ๊ณผ์ ์์ ์ฌ์ด์ฆ๊ฐ ์์ Convolutional Layer์์ ๊ฐ์์ค๋ฝ๊ฒ ํ ๋ฒ์ ์๋ณธ ์ด๋ฏธ์ง ์ฌ์ด์ฆ์ ๋น์ทํ ํฌ๊ธฐ์ ํํ๋ก Up Sampling์ ์ํํด์ผํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ง์ฝ ๋ง์ง๋ง Convolutional Layer(๋นจ๊ฐ์ ๋ค๋ชจ์นธ)์์ ๋จ์ํ Up Sampling์ ์งํํ๋ค๋ฉด Segmentation ๊ฒฐ๊ณผ๊ฐ ๋๋ ทํ์ง ๋ชปํ๊ณ ๊ตฌ๋ถ์ด ์ ๋งค๋ชจํธํด์ง๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
๋ฐ๋ผ์ FCN์ ResNet์์ ์ฒ์ ์ฌ์ฉ๋์๋ Skip Connection ๊ฐ๋ ์ ์ฐจ์ฉํ๋ค. ์ด๋ ์์ ์ YOLO V3 ๋ชจ๋ธ์ FPN(Feature Pyramid Network)์ด๋ SSD ๋ชจ๋ธ์ Multi-Scale Feature Layer์ ์ฌ์ฉ๋ ๊ฒ๋ค๊ณผ ๋งค์ฐ ๋น์ทํ๋ค. FCN์์๋ Feature Map์ Skip Connection์ ์ฌ์ฉํ๋ ๊ตฌ์กฐ์ธ๋ฐ, ๋ค์ ๊ทธ๋ฆผ์ ์ดํด๋ณด์.
Encoder ๊ณผ์ ์์ Convolutional Layer๋ฅผ ๊ฑฐ์น๋ฉด์ ๋์ค๋ Feature Map์ Skip Connectionํ ๋์์ผ๋ก ์ฌ์ฉํ๋ค. ๊ทธ๋์ ์ด๋ฅผ Decoder์ ์๋ณธ ์ด๋ฏธ์ง ์ฌ์ด์ฆ ํฌ๊ธฐ๋ก Up Sampling์ ์งํํ ๋ Skip Connection์ ํ์ฉํ๊ฒ ๋๋ค. ์ต์ข Segmentation์ ๋ณดํต ๋ง์ง๋ง Up Sampling์ ์งํํด ๋์ค๊ฒ ๋๋ FCN-8s(์ด๋ก์ ๋ฐ์ค)๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ์๋ ์๋ฃ์์๋ ์ ์ ์๋ฏ์ด FCN-8s๋ฅผ ํ์ฉํ์ ๋๊ฐ Ground Truth(์ ๋ต)๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒฐ๊ณผ๋ฅผ ๋์ ์ ์ ์๋ค.
5. Mask RCNN = Faster RCNN + ๋ณํ FCN
4๋ฒ ๋ชฉ์ฐจ๊น์ง ํด์ FCN์ด ๋ฌด์์ด๊ณ ์ด๋ป๊ฒ ๋์ํ๋ ์ง์ ๋ํด ์์๋ณด์๋ค. Mask RCNN์ RPN(Region Proposal Network)์ ํ์ฉํ Faster RCNN Object Detection ๋ชจ๋ธ๊ณผ ์ฝ๊ฐ์ ๋ณํ๋ FCN์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๋จผ์ Mask RCNN์ ํฐ ์ํคํ ์ฒ๋ฅผ ์ดํด๋ณด์.
ํน์ดํ ์ ์ 2๊ฐ์ง์ด๋ค. ์ฐ์ Faster RCNN์ ROI Pooling์ด ์๋ ROI Align ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค๋ ์ ๊ณผ FCN์ ํตํด ๋ถ๋ฅ๋ฅผ ์ํํ ๋ Multi-Class Classification์ด ์๋ Binary Classification์ ํ๋ค๋ ์ ์ด๋ค. ํ๋์ฉ ์ดํด๋ณด์.
5-1. ROI Pooling ์ ๋ฌธ์ ์
ROI Align์ด๋ผ๋ ๊ธฐ์ ์ด ๋ฑ์ฅํ ์ด์ ๋ ๋ถ๋ช ํ ROI Pooling ์ด๋ผ๋ ๊ธฐ์ ์ด ํ๊ณ๊ฐ ์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ROI Align์ ์ดํดํ๊ธฐ ์ ์ ROI Pooling์ด ๋ฌด์จ ๋ฌธ์ ์ ์ ๊ฐ์ง๋์ง ์์๋ณด์.
ROI Pooling์ ๊ธฐ๋ณธ์ ์ผ๋ก $7 X 7$ ๊ทธ๋ฆฌ๋๋ง์ผ๋ก ๋ถ๋ฉด์ ๋๋์ด Bag Of Visual Words ๊ธฐ๋ฒ์ ์ํํ๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ '๊ทธ๋ฆฌ๋ ๋ถํ ' ์ด๋ผ๋ ํน์ฑ์ ๊ฐ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ Feature Map์์ ROI Feature Map์ผ๋ก ๋ณํํ ๋ ๋ฌด์กฐ๊ฑด ๋์ด, ๋๋น ์ฌ์ด์ฆ๊ฐ ์ ์๊ฐ์ด์ด์ผ ํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ์์์ ์ผ๋ก ๊ณ์ฐ๋๋๋ผ๋ ์์์ ์ ๋ค ๋ฒ๋ฆฌ๊ณ ์ ์๊ฐ๋ง์ ๋จ๊ฒจ ์ฌ์ด์ฆ๋ฅผ ์ค์ ํด์ผ ํ๋ค.(์ด๋ฅผ Quantization ๋ฌธ์ ๋ผ๊ณ ๋ถ๋ฅธ๋ค) ์ ์ดํด๊ฐ ๊ฐ์ง ์๋๋ค๋ฉด ๋ค์ ๊ทธ๋ฆผ์ ๋ณด์.
์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๊ฒฐ๊ตญ ROI Pooling ๊ณผ์ ์ ์ด๋ฏธ์ง์ ์ค์ํ ๋ถ๋ถ์ธ ROI Feature๋ฅผ ์ผ๋ถ ์์คํ๊ฒ ๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ ๊ทน๋ณตํ๊ณ ์ ROI Align ๊ธฐ๋ฒ์ด ๋ฑ์ฅํ๋ค.
5-2. ROI Align
ROI Align์ Bilinear Interpolation์ธ ์ด์ค์ ํ ๋ณด๊ฐ๋ฒ์ ์ฌ์ฉํ๋ค. ROI Align ๊ณผ์ ์ 3๋จ๊ณ๋ก ๊ตฌ๋ถํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
- ROI์ ์ฌ์ด์ฆ ์์์ ์ ๊ทธ๋๋ก ์ ์งํ๊ณ ROI ๊ฐ๋ณ ๊ทธ๋ฆฌ๋์ Point๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ฐฐ์ดํ๋ค.
- ๊ฐ๋ณ Point์์ ๊ฐ์ฅ ๊ฐ๊น์ด Feature Map ๊ทธ๋ฆฌ๋๋ฅผ ๊ณ ๋ คํ๋ฉฐ Point์ ๋ค์ด๊ฐ ๊ฐ์ Weighted Sum ํด์ค๋ค.
- ๊ณ์ฐ๋ ๋ชจ๋ Point๋ค์ ๋ํด์ ์ง์ ๋ค ์ฌ์ด์ฆ์ Max Pooling์ ์ํํด์ค๋ค.
ROI Align์ ๋์ ๊ณผ์ ์ ํ์๊ฐ ์ง์ ์ค๋ช ํ๊ธฐ์ ํ๊ณ๊ฐ ์์ด์ ๋์ ์ฐธ๊ณ ํ๊ธฐ ๋งค์ฐ ์ข์ ๋ธ๋ก๊ทธ๋ฅผ ๊ณต์ ํ๋ ค๊ณ ํ๋ค. ์์ด๋ก ์์ฑ๋์ด ์์ง๋ง ์ด๋ ค์ด ๋จ์ด๋ฅผ ์ฌ์ฉํ์ง๋ ์์๊ณ ์ค๋ช ๋ ๊น๋ํ๊ณ ๊ฐ๊ฒฐํ๊ฒ ์์ฑ๋์์ผ๋ ๊ผญ ํ ๋ฒ์ฉ ์ฝ์ด๋ณด๋๋ก ํ์.
5-3. FCN์์๋ Masking ์ธ์ง ์๋์ง๋ง ์๊ฐํ์
Mask RCNN์ FCN์์๋ ํน์ ํฝ์ ๊ฐ์ด ์ด๋ค Object ํด๋์ค๋ก ๋ถ๋ฅ๋๋ ์ง ๊ฒฐ์ ๋๋ Multi-Class Classification์ ์ฌ์ฉํ์ง ์๊ณ ํน์ ํฝ์ ๊ฐ์ด ์ด๋ค ํด๋์ค์ธ์ง(ex.๊ฐ์์ง์ธ์ง ๊ณ ์์ด์ธ์ง, ์ฌ๋์ธ์ง) ์๊ด์์ด ๋จ์ํ Object๋ฅผ ๋ํ๋ด๋ Masking ์ธ์ง ์๋์ง๋ง ๋ถ๋ฅํ๋ Binary Masking Classification์ ์ํํ๋ค.
๊ทธ๋ฆฌ๊ณ Binary Masking Prediction์ ๊ฑฐ์น ํ Predicted Masking ์ ์๋ณธ ์ด๋ฏธ์ง์ Object ์ฌ์ด์ฆ ๋งํผ ๋ณต์ํ๊ณ ์ด๋ฅผ ์๋ณธ ์ด๋ฏธ์ง ์์ ๋ฎ์ด์์ฐ๊ฒ(Overlap) ๋๋ค.
6. Mask RCNN Loss Function
๋ง์ง๋ง์ผ๋ก Mask RCNN์ Loss Function์ ๋ํด ๊ฐ๋จํ ์์๋ณด๊ณ ๋ง๋ฌด๋ฆฌํ์. Mask RCNN์ Loss Function์ ๊ทธ๋์ ๋ฐฐ์์๋ Object Detection ๋ชจ๋ธ๋ค์ Loss Function์ Masking์ ๋ํ Loss Function์ ์ถ๊ฐํ ๊ฒ๊ณผ ๋ค๋ฆ์๋ค.
๋จ, Mask RCNN์ ๊ตฌ์ฑํ๋ 2๊ฐ์ง ์์ ์ฆ, Faster RCNN์์๋ Object์ ํด๋์ค๋ฅผ ๋ถ๋ฅํ๋ Multi-Class Cross-entropy Loss์ Bounding Box๋ฅผ ์ฐพ๋ $L1 \ Smooth$ Loss ํจ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ฉด, Masking ์ฌ๋ถ๋ฅผ ์์ธกํ๋ FCN์์๋ Binary Cross-entropy Loss๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค.
์ง๊ธ๊น์ง ๋ค์์ ํฌ์คํ ์ ํตํด Object Detection์ ์ฌ๋ฌ๊ฐ์ง ๋ชจ๋ธ๊ณผ Pixel-level Object Detection(Segmentation) ๋ชจ๋ธ์ธ Mask RCNN๊น์ง ์ด๋ก ์ ์ผ๋ก ์์๋ณด์๋ค. ๊ฐ์๋ฅผ ํ์ตํ๋ฉด์ ๋ฐฐ์ด ์ฌ๋ฌ๊ฐ์ง ๋ชจ๋ธ์ ์ฝ๋๋ก ๊ตฌํํ ๊ฒ๋ค์ ์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์.
(์ฝ๋๋ ๊ฐ์์์ ์ ๊ณตํ๋ ์๋ณธ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์นดํผํ๊ธฐ ๋ณด๋ค ์ง์ ๋ฐ๋ผ์น๋ฉด์ ํ์ค ํ์ค ๋ฏ์ด๋ณด๊ธฐ ์ํด ํ์๊ฐ ์ง์ ์ฃผ์๋ ๋ฃ๊ณ ํ ๋ถ๋ถ์ด ๋ง์ต๋๋ค. ํน์ฌ๋ ์ฝ๋์ ๋ํ ๊ถ๊ธํ ์ ์ด๋ ๋ถ์กฑํ ์ ์ด ์๋ค๋ฉด ๋ ์นด๋ก์ด ํผ๋๋ฐฑ์ ์ธ์ ๋ ํ์์ ๋๋ค!)
- github.com/young-hun-jo/TIL/tree/master/computer_vision
'Data Science > Computer Vision' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] GoogleNet(InceptionNet) CNN ๋ชจ๋ธ (0) | 2021.10.04 |
---|---|
[ML] Explainable AI - CAM & Grad CAM (1) | 2021.07.31 |
[ML] Retina Net Object Detection ๋ชจ๋ธ (0) | 2021.04.26 |
[ML] YOLO(You Only Look Once) Object Detection ๋ชจ๋ธ (5) | 2021.04.22 |
[ML] SSD(Single Shot Detector) Object Detection ๋ชจ๋ธ (0) | 2021.04.20 |