๐ก ๋ณธ ๋ฌธ์๋ '[Vision] Semantic Segmentation VS. Instance Segmentation'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
์ปดํจํฐ ๋น์ ์๋ ํฌ๊ฒ 4๊ฐ์ง์ ๊ณผ์ (1. Classification 2. Object Detection 3. Image Segmentation 4. Visual relationship)๊ฐ ์๋ค. ์ด ๊ธ์์๋ ์ด ์ค 3. Image Segmentation์ ๊ดํด ์ ๋ฆฌํ์์ผ๋ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
1. Classification / Object Detection / Image segmentation
Classification / Object Detection
๋จผ์ Image Segmentation ์ด์ ์ ๊ณผ์ ๋ค์ธ Classification๊ณผ Object Detection์ ๋ํด ๊ฐ๋จํ ์ค๋ช ํ์๋ฉด Classification์ Image๊ฐ ์ฃผ์ด์ก์๋ ์ด ์ด๋ฏธ์ง๊ฐ ์ด๋ค ์ฌ์ง์ธ์ง, ์ด๋ค Object๋ฅผ ๋ํํ๋์ง ๋ถ๋ฅํ๋ ๋ฌธ์ ์ด๋ค. ๋ฐ๋ผ์ ์ ๊ทธ๋ฆผ์์ ๊ณ ์์ด์ ์์น๊ฐ ์๋ ์์์ ๊ฐ์ด ๋ณํ์ฌ๋ Classification์์๋ ๋๊ฐ์ด ๊ณ ์์ด๋ผ๊ณ ๋ถ๋ฅํด์ผํ๋ค.
1) Classification: translation invariance
์ด๋ฅผ "translation invariance" ๋ผ๊ณ ํ๋ฉฐ Classification์ translation invariance๋ฅผ ๋ง์กฑํด์ผํ๋ค.
CNN์์ translation invariance๋ input์ ์์น๊ฐ ๋ฌ๋ผ์ ธ๋ output์ด ๋์ผํ ๊ฐ์ ๊ฐ๋๊ฒ์ ๋งํ๋ค. ๋ฌผ๋ก CNN ๋คํธ์ํฌ ์์ฒด๋ translation equivariance(variance)ํ๋ค. convolution filter๋ก ์ฐ์ฐ์ ํ ๋ ํน์ feature์ ์์น๊ฐ ๋ฐ๋๋ฉด ๋น์ฐํ output์์ ํด๋น feature์ ๋ํ ์ฐ์ฐ๊ฒฐ๊ณผ์ ์์น๋ ๋ฐ๋๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ ๋ฏ CNN์ translation equivarianceํ๋ฐ ์ด๋ป๊ฒ CNN์ผ๋ก ์ด๋ฃจ์ด์ง Classification์ด translation invariance ํ ๊น? ์ด๋ ๋ค์์ 3๊ฐ์ง ๊ณผ์ ์ ํตํด translation invarianceํ๊ฒ ๋๋ค๊ณ ๋ณผ ์ ์๋ค.
- 1. Max pooling
- 2. CNN์ ํน์ง์ธ Weight sharing & Learn local features
- 3. Softmax๋ฅผ ํตํ ํ๋ฅ ๊ฐ ๊ณ์ฐ
๊ด๋ จ๋ ์์ธํ ๋ด์ฉ์ ๋ค์์ ๋ธ๋ก๊ทธ 'translation invariance ์ค๋ช ๋ฐ ์ ๋ฆฌ'๋ฅผ ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค.
2) Localization: translation variance
Object detection์ object์ ๋ถ๋ฅ๋ฟ๋ง ์๋๋ผ ํด๋น object๊ฐ ์ด๋ ์์น์ ์๋์ง bounding box๋ฅผ ํตํด ์ฐพ์์ผํ๋ค.
์ฆ, localization์ ์ํํด์ผํ๋ฉฐ classification๊ณผ ๋ค๋ฅด๊ฒ ์์น๋ฅผ ์ฐพ์์ผ ํ๋ฏ๋ก ๋์ด์ "translation invariance"์ด๋ฉด ์๋๋ค. ๋ฐ๋ผ์ Object detection์ "translation variance"๋ฅผ ๋ง์กฑํด์ผํ๋ค.
๊ทธ๋ ๋ค๋ฉด Image segmentation์ ๋ฌด์์ผ๊น? Image segmentation์ ์ด๋ฏธ์ง์ ์์ญ์ ๋ถํ ํด์ ๊ฐ object์ ๋ง๊ฒ ํฉ์ณ์ฃผ๋๊ฒ์ ๋งํ๋ค.
Semantic Segmentation / Instance Segmentation
Image segmentation์ ๋ํ์ ์ธ ์๋ก๋ Semantic segmentation๊ณผ Instance segmentation์ด ์๋ค. ์ ๊ทธ๋ฆผ์์ ๋ณด๋ค์ํผ Semantic segmentation์ด๋ Object segmentation์ ํ๋ ๊ฐ์ class์ธ object๋ค์ ๊ฐ์ ์์ญ ํน์ ์์ผ๋ก ๋ถํ ํ๋ ๊ฒ์ด๋ค.
๋ฐ๋๋ก Instance segmentation์ ๊ฐ์ class์ด์ฌ๋ ์๋ก ๋ค๋ฅธ instance๋ก ๊ตฌ๋ถํด์ฃผ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ object๊ฐ ๊ฒน์ณค์๋ ๊ฐ๊ฐ์ object๋ฅผ ๊ตฌ๋ถํด์ฃผ์ง ๋ชปํ๋ Semantic segmentation์์์ ๋ฌธ์ ๋ฅผ Instance segmentation์ ํตํด ํด๊ฒฐํ ์ ์๋ค.
2. Semantic segmentation vs Instance segmentation
Object detection์์์ ๋ง์ฐฌ๊ฐ์ง๋ก Image segmentation์์ ์ญ์ object์ localization์ ์ํํด์ผํ๊ธฐ์ Image segmentation์ translation variance์ ๋ง์กฑํด์ผํ๋ค.
1) Semantic segmentation
Semantic segmentation์ ๊ฐ ํฝ์ ๋ณ๋ก ์ด๋ค class์ ์ํ๋์ง label์ ๊ตฌํด์ค์ผ ํ๋ค.
๋ฐ๋ผ์ One-Hot encoding์ผ๋ก ๊ฐ class์ ๋ํด class๊ฐ์๋งํผ ์ถ๋ ฅ์ฑ๋์ ๋ง๋ ๋ค. ๊ทธ ํ argmax๋ฅผ ํตํด ์ ์ด๋ฏธ์ง์ฒ๋ผ ํ๋์ output์ ๊ณ์ฐํ๋ค.
๊ฐ Class๋ณ๋ก ์ถ๋ ฅ์ฑ๋์ ๋ง๋ ํ argmax
์ด๋ ๊ฒ semantic segmentation์ pixel๋ค์ด ๊ฐ class์ ๋ํด binaryํ๊ฒ ํฌํจ๋๋์ง ์๋๋์ง ์ฌ๋ถ๋ง ๋ฐ์ง๋ค.
์ฆ, ๊ฐ์์ง ouput channel์์๋ ๊ฐ pixel๋ค์ ๋ํด ๊ฐ์์ง์ ํฌํจ๋๋ pixel์ธ์ง ์๋์ง, ์ฌ๋ output channel์์๋ ๊ฐ pixel๋ค์ด ์ฌ๋์ ํฌํจ๋๋ pixel์ธ์ง ์๋์ง, .. 0๊ณผ 1๋ก binaryํ๊ฒ ๊ฐ์ ๊ฐ๋๋ค.
๋ฐ๋ผ์ ์์ ๊ฐ์ด segmentation๋๋๋ฐ ์ด๋ ๊ฐ์ class์ object๋ค์ ๋ํด ์๋ก ๊ตฌ๋ถ์ง์ ์ ์๋ค๋ ๋จ์ ์ด ์๋ค. ์ฐ์ธกํ๋จ์ ์ฐจ๋ค์ ๋ณด๋ฉด ๋ช๋์ ์ฐจ๊ฐ ์ด๋ป๊ฒ ๊ฒน์ณ์ ธ์๋์ง ์ ์ ์๊ณ , ๋จ์ง ์ pixel๋ค์ด ์ฐจ์ ํฌํจ๋๋ค๋ ๊ฒ๋ง ์ ์ ์๋ค.
2) Instance Segmentation
๋ฐ๋๋ก Instance segmentation์ ๊ฐ ํฝ์ ๋ณ๋ก ์ด๋ค ์นดํ ๊ณ ๋ฆฌ์ ์ํ๋์ง ๊ณ์ฐํ๋ ๊ฒ์ด ์๋ ๊ฐ ํฝ์ ๋ณ๋ก object๊ฐ ์๋์ง ์๋์ง ์ฌ๋ถ๋ง ๊ณ์ฐํ๋ค. ๋ฐ๋ผ์ ํ๋์ด๋ ๋๋ก ๋ฑ ์ ํด์ง ํํ๊ฐ ์๋ ๋ฌผ์ฒด์ ๊ฒฝ์ฐ๋ ํด๋์ค ๋ผ๋ฒจ์ ๋ถ์ฌํ์ง ์๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Mask R-CNN๊ณผ ๊ฐ์ 2-stage detector์์๋ ๋จผ์ object๋ค์ bounding box๋ฅผ ํตํด localization์ํจ๋ค. ๊ทธ ํ ์์์ class๋ณ๋ก output ์ฑ๋์ ๋ง๋ ๊ฒ๊ณผ ๊ฐ์ด localize๋ RoI๋ง๋ค class์ ๊ฐ์๋งํผ binary mask(instance์ธ์ง ์๋์ง)๋ฅผ ์์์ค๋ค.
semantic segmantation๊ณผ ๋ค๋ฅด๊ฒ ์ด๋ฏธ์ง ์ฌ์ด์ฆ ํฌ๊ธฐ๋ก class ๊ฐ์๋งํผ output ์ฑ๋์ด ์กด์ฌํ์ง ์๊ณ RoI ๋ณ๋ก class ๊ฐ์๋งํผ output ์ฑ๋์ด ์กด์ฌํ๊ณ ๋์ผ class๋๋ผ๋ ์๋ก ๋ค๋ฅธ instance, ์ฆ RoI๊ฐ focusํ๋ instance๋ถ๋ถ๋ง value๋ฅผ ๊ฐ๋๋ก ํ๋ค.
3) Panoptic Segmentation
panoptic segmentation์ ์ ๋ ๊ฐ์ง์ segmentation์ ๊ฒฐํฉํ ํํ๋ก ์ด๋ฏธ์ง ์์ ๋ชจ๋ ํ์์ ๋ํด ํด๋์ค ๋ผ๋ฒจ์ ์์ธกํ๊ณ ์์์ ID๋ฅผ ๋ถ์ฌํ๋ค.
์ด ํ์คํฌ์์๋ ๊ฐ์ฒด๊ฐ ๊ตฌ๋ณ์ด ๋๋ ํด๋์ค(์๋ฅผ ๋ค์ด ์ฐจ๋ ์ฌ๋)์ Thing ํด๋์ค๋ผ๊ณ ํ๋ฉฐ, ๊ฐ์ฒด๊ฐ ๊ตฌ๋ณ์ด ๋์ง ์๋ ํด๋์ค(์๋ฅผ ๋ค์ด ํ๋์ด๋ ๊ธธ)์ Stuff ํด๋์ค๋ผ๊ณ ํ๋๋ฐ, Thing ํด๋์ค์ ๋ํด์๋ Instance Segmentation, Stuff ํด๋์ค์ ๋ํด์๋ semantic segmentation์ ์ํํ๋ค.
3. Semantic segmentation ๋ชจ๋ธ ํ์ต ๋ฐฉ์
๊ธฐ๊ณํ์ต ๋ชจ๋ธ ํ์ต ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ Ground Truth(GT) ์ฌ์ฉ ๋ฐฉ์์ ๋ฐ๋ผ ๊ตฌ๋ถํ๋ฉฐ, ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํ GT ์์ฑ ์ด๋ ค์์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๊ตฌ๋๊ณ ์๋ ๋ถ์ผ.
- Supervised SS: ๋ง์ (์ ๋ ฅ ์ด๋ฏธ์ง-GT) ์์ ์ฌ์ฉํด ๋ชจ๋ธ ํ์ต
- Semi-supervised SS: ์ ์ ์๊ณผ ๋ง์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์ฌ์ฉํด ๋ชจ๋ธ ํ์ต
- Weakly-supervised SS: ๋ง์ ์ ์ฌ์ฉํด ๋ชจ๋ธ ํ์ต
- Unsupervised SS: ์ ๋ ฅ ์ด๋ฏธ์ง๋ง ์ฌ์ฉํด ๋ชจ๋ธ ํ์ต
Weakly-supervised SS
์๋์ ์ผ๋ก ์์ ์ ๋ณด๋ก Semantic Segmentation์ ์ํํ๋ ๊ฒ์ด ๋ชฉํ
- ์๋์ ์ผ๋ก ์์ ์ ๋ณด๋ฅผ Weakly supervision ์ด๋ผ๊ณ ๋ถ๋ฆ
- ์์น ์ ๋ณด(Bounding Box, Point), ๋ฒ์ฃผ ์ ๋ณด๋ฅผ Weakly supervision์ผ๋ก ์ฌ์ฉ
์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํ GT ์์ฑ ์ด๋ ค์์ ํด๊ฒฐํ๊ธฐ ์ํด ์ฐ๊ตฌ๋๊ณ ์์ผ๋ฉฐ, ๋ํ์ ์ผ๋ก Segment-Anything(SAM) ๋ชจ๋ธ์์์ ์ ๋ ฅ ์ ๋ณด๋ก ์ฌ์ฉํฉ๋๋ค.
Conclusion
์์ฝํ์๋ฉด, class label์ด 10๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ Semantic segmentation์์๋ ๊ฐ pixel๋ค์ด ์ด๋ค class์ ํฌํจ๋๋์ง ์๋๋์ง๋ฅผ 10๊ฐ์ class์ ๋ํด์ ๊ฐ๊ฐ binaryํ๊ฒ ๊ณ์ฐํ๋ค.
๋ฐ๋ฉด, Instance segmentation์ ์ด๋ฏธ localization์ ์ํํ ํ ๊ทธ box๊ฐ focusํ๊ณ ์๋ instance์ pixel์ด ๊ถ๊ธํ ๊ฒ์ด๋ฏ๋ก ๊ฐ box์ ๋ํด image segmentation์ ํ๋๋ฐ ์ด๋ ๋์ผ class์ฌ๋ ์๋ก ๋ค๋ฅธ instance์ด๋ฉด value๋ฅผ ๊ฐ์ง ์๋๋ค.
๋ฐ๋ผ์ Instance segmentation์ ์ฌ์ฉํ ๋์ ์ฅ์ ์ Object ๋ณ๋ก ๊ตฌ๋ถ์ด ๊ฐ๋ฅํ๋ฉฐ, localization ์ํ ํ ๊ฐ Object ๋ณ๋ก segmenation ํ๊ธฐ์ ์ฐ์ฐ ๋ฐ ํจ์จ์ฑ ์ธก๋ฉด์์ ์ด์ ์ด ์๋ค.
์ฐธ๊ณ
- [Blog] Semantic segmentation๊ณผ Instance segmentation์ ์ฐจ์ด: https://ganghee-lee.tistory.com/44
- [Blog] segmentation์ ์ข ๋ฅ (semantic segmentation, instance: https://engineer-mole.tistory.com/273
- [Youtube] Segment Anything: https://www.youtube.com/watch?v=7wITg-SkM3M