๊ฐ์
structure of mask RCNN
- Facebok AI Research (FAIR), Kaiming He, 24 Jan 2018
- Marr Prize at ICCV 2017
object instance segmentation
์ ์ํ ํ๋ ์ ์ํฌ์ด๋ค. ๊ธฐ์กด์ semantic segmentation
์ ๋์ด์ ๊ฐ๊ฐ์ instance
๋ ๊ตฌ๋ถ์ด ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์๋ค. ํ์ต์ด ์ฝ๊ณ Faster RCNN์ ์กฐ๊ธ์ overhead๋ง ์ถ๊ฐํ์ฌ 5fps์ ๋น ๋ฅด๊ธฐ๋ก ์คํ๋๋ค. COCO ๋ฐ์ดํฐ์
์์ instance segmentation
, bbox object detection
, person keypoint detection
์์ ๊ฐ์ฅ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์๋ค.
ํต์ฌ ์์ด๋์ด
Faster R-CNN์์ detectํ ๊ฐ๊ฐ์ box์ mask๋ฅผ ์์์ฃผ์!
instance segmentation
์ ๋ ๊ฐ์ง ๊ณผ์ ๋ฅผ ํฉ์น ๊ฒ์ด๋ค.
- object detection
- bbox๋ฅผ ์ด์ฉํ์ฌ object๋ฅผ ๋ถ๋ฅํ๊ณ , ์์น๋ฅผ ์ฐพ๋ ๊ฒ.
- semantic segmentation
- object instance๋ ๊ตฌ๋ณํ์ง ์์ง๋ง, ์ ํด์ง ์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ๊ฐ๊ฐ์ pixel์ ๋ถ๋ฅํ๋ ๊ฒ
์ด์ ์ Segmentation์์ ์ค์ํ ๋ ผ๋ฌธ์ธ FCN์์๋ ์ด 3๊ฐ์ง๋ฅผ ๊ณ ๋ คํ์๋ค.
- pixel ๋จ์์ classification
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ pixel ๋จ์ softmax ๊ฐ ์ถ์ถ์ด ํ์
- multi instance๋ฅผ ๊ณ ๋ คํด์ผ ํจ
ํ์ง๋ง mask RCNN์ Faster RCNN์ ๊ทธ๋๋ก ๊ฐ์ ธ๋ค๊ฐ ์ฐ๊ธฐ ๋๋ฌธ์, ์ด ๋ฌธ์ ๊ฐ ๋ค์ ๋ณ๊ฒฝ๋๋ค.
pixel ๋จ์์ classificationโ ์ด๋ฏธ bounding box๋ก ๊ตฌ๋ถ์ ํด์ค๊ทธ๋ ๊ธฐ ๋๋ฌธ์ pixel ๋จ์ softmax ๊ฐ ์ถ์ถ์ด ํ์โ bounding box ์์์ ๋ฌผ์ฒด ์ธ์ง ์๋์ง๋ง ๊ตฌ๋ถํด์ฃผ๋ฉด ๋จ(Sigmoid)multi instance๋ฅผ ๊ณ ๋ คํด์ผ ํจโ ์ด๋ฏธ multi instance๋ก bounding box๋ฅผ ์ณ์ค
class, box ์ธ์ mask FCN๋ง ์ถ๊ฐํ๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก, ์ด ๋ฌธ์ ์์ ํด์ผํ ์ผ์ masking์ ์ํํ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ๋ ผ๋ฌธ์ด๋ฆ๋ Mask RCNN์ด๋ค.
Equivariance
input์์์ ๋ณํ๊ฐ output์ ๋ณํ์ ์ํฅ์ ์ค๋ค.
Invariance vs. Equivariance
classification ๋ฌธ์ ์์๋ label์ ๋์ถํ๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ Invariance ํ๋ค. ํ์ง๋ง segmentation ๋ฌธ์ ๊ฐ์ ๊ฒฝ์ฐ์๋ output์ด ์๋ ์ด๋ฏธ์ง ์ฌ์ด์ฆ์ ๊ฐ์์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฌธ์ ๋ Equivariance๋ก ํด๊ฒฐ ํด์ผํ๋ค. ์ด ๋, ์ ์๋ค์ convolution์ translation-equivariance ํ๊ธฐ ๋๋ฌธ์ ์ด ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ค.
Fully convolutional network ์ฌ์ฉ
mask RCNN์ ๊ตฌ์กฐ๋ฅผ ๋ด๋นํ๋ Faster RCNN์ Fully conv net์ ์ฌ์ฉํ๊ณ ์๋ค. ์ฌ๊ธฐ์ mask RCNN์ ๋ค์ mask head๋ถ๋ถ ์ญ์ FCN์ ์ฌ์ฉํ์ฌ ์ ์ํ์๋ค.
RoI Align
๊ธฐ์กด์ Faster RCNN์ ๊ตฌ์กฐ
๊ธฐ์กด์ Faster RCNN์์๋ feature map์ ๋ฝ์๋ธ ๋ค, Region proposal Network๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฅผ ์ ์ํ์๋ค. ๊ทธ ๋ฐฉ๋ฒ์ RoI pooling์ด์๋ค. ํ์ง๋ง segmentation์ detection ๋ฌธ์ ์ ๋ค๋ฅด๊ฒ ๋จ์ง box๋ฅผ ์น๋ ๋ฌธ์ ๊ฐ ์๋๋ค. ์ข๋ ์ ํํ ์์น์ ๋ณด๋ฅผ ๋ด์ ์ํ์ feature map์ด ํ์ํ๋ค.
RoI pooling์ proposal์ ์์น๋ฅผ ๋ฐ์ฌ๋ฆผํ๋ค.
๊ธฐ์กด์ RoI Pooling์ ์๊ฐํด๋ณด๋ฉด, 4๊ฐ์ ์ขํ ๋ณํ ๊ฐ์ regressionํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์ขํ๋ฅผ ์ป์ด๋ธ ๋ค(์ค์) ์ด๋ฅผ ๋ฐ์ฌ๋ฆผํ์ฌ ์ ์๋จ์์ธ pixel์ ์์น๋ฅผ ์ ์ํ๋ค. ํ์ง๋ง, ์์์ ์ ๋ฐ์ฌ๋ฆผํ ์ขํ๋ฅผ ๊ฐ์ง๊ณ Pooling์ ํด์ฃผ๋ฉด input image์ ์๋ณธ ์์น ์ ๋ณด๊ฐ ์๊ณก๋๋ค. classfication์๋ ์ด๋ฐ ๋ฌธ์ ๊ฐ ์ฌ๊ฐํ์ง ์์ง๋ง, pixel-by-pixel๋ก detection์ ์งํํด์ผ ํ๋ segmentation ์์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. RoI Align
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ์๋ค์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ ํตํด ์ด๋ฅผ ํด๊ฒฐํ๋ค.
- ์ ์๋ proposal์ ๋ค๊ณ ์จ๋ค.
- Roi pooling์์ 4๋ฑ๋ถ ํ๋ ๊ฒ์ฒ๋ผ ์ผ๋จ ์๋ฅธ๋ค.
- ๊ทธ ์์์ ์ถ๊ฐ์ ์ผ๋ก 4๋ฑ๋ถ์ ํ๋ค. (subcell)
- ์ด๋ ๊ฒ ๋ฐ์ํ ๊ฒฉ์๋ด์ ๋ค์ด์ค๋ ํฝ์ ์ ๋ฉด์ ์ ๊ธฐ์ค์ผ๋ก ๊ฐ์คํ๊ท ํ๋ค.
- ๋ฐ์ํ ๊ฐ์ ๊ธฐ์ค์ผ๋ก poolingํ๋ค.
์ด ๋ฐฉ๋ฒ์ Mask Accuracy์์ ํฐ ํฅ์์ ๋ณด์๋ค.
Mask RCNN architecture
Mask R-CNN์ ์ฌ๋ฌ ๊ฐ์ง ์ํคํ ์ณ๋ฅผ ํฉ์น ๋คํธ์ํฌ์ธ๋ฐ, ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋๋ค.
- Convolutional backbone architecture
- ์ด๋ฏธ์ง์์ feature extraction
- Network head
- bounding-box ์ธ์(classification & regression), mask ์์ธก
Head Architecture
ResNet Backbone
๋ ผ๋ฌธ์์๋ ResNet ๊ณผ ResNeXt networks ๋ฅผ depth 50 or 101 layers์ ๋ํด ํ๊ฐํ๋ค. ์๋ Faster R-CNN์ ResNet์ ์ฌ์ฉํ๋๋ฐ, 4๋ฒ์งธ ์คํ ์ด์ง์ ๋ง์ง๋ง Conv layer(์ดํ C4)์์ features๋ฅผ ๋ฝ์๋ธ๋ค. ์ด ๊ฒฝ์ฐ, ์ด backbone์ ์ฌ์ฉํ๋ค๋ฉด ์ฐ๋ฆฌ๋ ResNet-50-C4 ์ ๊ฐ์ด ๋ถ๋ฅผ ๊ฒ์ด๋ค. ResNet-50-C4๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.
ResNet-FPN Backbone
FPN์ Feature Pyramid Network๋ก, top-down architecture๋ฅผ ์ฌ์ฉํ๋ค. FPN backbone์ ์ฌ์ฉํ๋ Faster R-CNN์ ํผ์ณ ํผ๋ผ๋ฏธ๋์ ์๋ก ๋ค๋ฅธ ๋ ๋ฒจ๋ก๋ถํฐ RoI features๋ฅผ ๋ฝ์๋ด์ง๋ง, ๋๋จธ์ง๋ vanilla ResNet๊ณผ ๊ฐ๋ค. Mask R-CNN์์ ํผ์ณ ์ถ์ถ์ ์ํด ResNet-FPN backbone์ ์ด์ฉํ๋ ๊ฒ์ ์ ํ๋์ ์๋ ๋ฉด์์ ์์ฒญ๋ ํฅ์์ ๋ณด์๋ค. Feature Pyramid Network๋ ์ถํ ๊ธ์์ ์์ฑํ๋๋ก ํ๊ฒ ๋ค.
Loss function (decoupling)
- : Softmax Cross Entropy (loss of classification)
- : bbox regression
- : Binary Cross Entropy
์์ ์์ด๋์ด๋ฅผ ๊ทธ๋๋ก ๊ฐ์ ธ์์, ๊ฒฐ๊ณผ์ ์ผ๋ก masking๋ง ํ๋ loss ํจ์๋ฅผ ์ ์ํ์ฌ ์ฌ์ฉํ๋ค. ๊ทธ๋ฆผ์ผ๋ก ์ดํดํด ๋ณด์.
์ด์ ๋ฐฉ๋ฒ๋ค๊ณผ์ ๋น๊ต
๊ทธ๋ฆผ์ ๋ณด๊ฒ๋๋ฉด, ๋จ์ํ masking์ ํ๋ ๊ตฌ์กฐ๋ฅผ ์ถ๊ฐํ๊ณ , ์ด๋ฅผ ๋ฐ์ํ๋ ๋ฐฉ์์ผ๋ก ์งํ๋๋ค.
mask Head์ loss update ๋ฐฉ๋ฒ
update ๋ฐฉ๋ฒ์ ์๋นํ ๋จ์ํ๋ฐ, ์ผ๋จ ์ ์ฒด mask loss๋ ๋ชจ๋ ํด๋์ค(์ฌ๋, ๋ง ๋ฑ)์์ ์ฐจ์ด๊ฐ ๋๋ mask์ ์ ๋๋ก ์ ์๊ฐ ๋๋ค. ํ์ง๋ง ํด๋น ์ฌ์ง์์ bounding box๋ ํ๋๋ง box ์ฒ๋ฆฌ๊ฐ ๋์ด ์๋ค. ๊ธฐ์กด์ faster RCNN์์ bounding box๋ฅผ ์์ธกํ ๋๋ ํ๋์ box๋ง ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ฐ ์ํฉ์์ mask์ ๋ํ ์ ๋ฐ์ดํธ๋ ๋ชจ๋ ์ฌ๋ฌผ์ ๋ํด์ ์ ๋ฐ์ดํธ๋ฅผ ํ ์ ์๊ฒ ๋๋ค. ๊ทธ๋์ ์ด๋ ๊ฒ ํด๋น ์ฌ์ง์ class๊ฐ ์ ํด์ง ๊ฒฝ์ฐ, ํด๋น class์ ํด๋นํ๋ mask๋ง์ ์ ํํ๊ณ ์ด๋ฅผ ์ ๋ฐ์ดํธ ํด์ค๋ค. ์ฆ, ๋ง์ด ์ ๋ต class์ธ ๊ฒฝ์ฐ, ์ด class์ ํด๋นํ๋ mask๋ง ํ์ต๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ ๊ฒ ํ์ต๋๋ mask branch๋ ์ด๋ ํ class์ธ์ง ์๊ด ์์ด ๋ฌผ์ฒด์ masking๋ง ๋ฐ๋ ๊ฒ์ ๋ฐฐ์ฐ๊ฒ ๋๋ค.
test senario
์ด๋ ๊ฒ ํ์ต๋ mask branch๋ ์ค์ ๋ก ์ฌ๋ฌ๊ฐ์ ๋ฌผ์ฒด์ ๋ํ mask๋ผ๊ณ ์์ธกํ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด ๋ ์์ ์ด๋ ํ ๋ฌผ์ฒด์ธ์ง ๋ถ๊ฐํ์ง ๋ชปํ๋๋ฐ, ์ด๋ถ๋ถ์ ์์ด์ classification์ ๊ฒฐ๊ณผ๋ฅผ ๋ฃ์ด์ฃผ์ด, ํ๋์ masking์ ์ ์ํ๋ค. ์ฆ mask prediction์์๋ ๋จ์ง ์ด pixel์ด mask์ธ์ง, ์๋์ง ๋ง์ ๊ตฌ๋ถ(sigmoid ์ฌ์ฉ)ํ๋๋ก ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ ๋ณด์๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ Mask prediction ๊ณผ class prediction ์ decouple ํ๋ค๊ณ ํ๋ค.
decouple์ ์๋ํ์ ๋ ์ฌ๋ผ๊ฐ ์ ํ๋