0️⃣ 딥러닝 Segmentation(1) - 개념, 용어, 종류(Semantic, Instance segmentation)
1️⃣ 딥러닝 Segmentation(2) - Semantic/Instance Segmentation
2️⃣ 딥러닝 Segmentation(3) - FCN(Fully Convolution Network)
3️⃣ 딥러닝 Segmentation(4) - U-Net
4️⃣ 딥러닝 Segmentation(5) - DeepLab 계열
5️⃣ 딥러닝 Segmentation(6) - segmentation 평가(Pixel Accuracy, Mask IOU)
6️⃣ 딥러닝 Segmentation(7) - Upsampling의 다양한 방법
이번에는 Segmentation의 개념을 공부해보겠습니다. cs231n의 Lecture 11의 Slide도 참고하여 정리해보도록 하겠습니다.
Segmentation의 사전적 의미는 '분할'입니다. 그동안 image classification, object detection 모델 등에 대해 배웠습니다. 어떤 object의 종류를 분류하거나 존재와 위치를 detect했었습니다.
Segmentation은 이미지의 pixel 수준에서 각 영역이 어떤 의미를 갖는지 분리하는 방법입니다.
https://ai.googleblog.com/2017/10/portrait-mode-on-pixel-2-and-pixel-2-xl.html
해당 이미지를 참고하여 보겠습니다. 구글의 스마트폰 Pixel2에서 쓰이는 인물사진 모드(portrait mode)입니다.
왼쪽은 일반 사진임을 알 수 있고 오른쪽은 portrait mode입니다. 왜냐하면 인물 외의 배경이 흐릿하게 나왔기 때문입니다.
여기서 딥러닝 기반의 Segmentation의 기술이 쓰였습니다. '사람'의 영역과 '배경' 영역을 분리하여 배경을 흐리게 처리하는 기술이 쓰였습니다.
애플에서도 아이폰의 '인물 사진' 모드에 대해 엄청난 자부심을 갖고 있죠! 저도 이걸로 주로 사람도 찍고 음식도 많이 찍습니다.
Segmentation 모델은 다양한 분야에서 활용됩니다. 이미지 내의 영역 분리가 필요한 분야에서 많이 사용되고 있습니다.(ex. 병원, 자율주행 카메라 등)
이때 이미지 내에서 영역을 분리하는 접근 방식은 크게 두 가지 방식이 있습니다.
- Semantic Segmentation
- Instance Segmentation
이미지로 예시를 보면 한방에 쉽게 이해할 수 있습니다. 😉
두 이미지를 비교해보면 어떤 차이가 있나요?
Semantic Segmentation은 한 이미지 내에 어떤 object도 존재하지 않습니다. 여기서는 단지 'GRASS', 'CAT', 'TREE', 'SKY'라는 4개의 class의 위치를 인식(localization)했고 판별(classification)하는 접근법을 보여줍니다.
Instance Segmentation은 비슷하게 생겼긴 하지만, 'DOG', 'DOG', 'CAT'이라는 Multi objects가 존재합니다. 심지어 'DOG'는 같은 object인데도 따로 구분을 해주고 있습니다. 이것은 각 object의 위치를 정확히 식별하는 객체 인식(object detection)의 접근법을 보여줍니다.
[http://machinelearningkorea.com/2019/07/13/%EC%9D%B4%EB%AF%B8%EC%A7%80%EB%B3%84-%EB%B6%84%EB%A5%98%EB%AC%B8%EC%A0%9C/]
이 이미지를 통해 개념을 한 번 더 다시 정리해봅시다.
혹시 이 개념이 처음이라면 용어 정리를 간단히 읽고 오시는 걸 추천 드립니다. 👉 Object Detection 개념과 용어 정리