-
[n432] Segmentation & Object DetectionAI 부트캠프 2022. 1. 3. 10:45
Segmentation (분할)
한 이미지에서 같은 의미를 가지는 형채를 구분하는 것을 Segmentation이라 한다. 위의 사진처럼 사람은 빨간색, 차는 파란색, 도로 교통 표지판은 노란색 등으로 분리해내는 것을 의미한다.
Segmentation에서는 데이터셋을 픽셀 단위로 레이블을 예측한다. 그러므로, 한 이미지 내에서도 물체 (자동차, 도로, 표지판 등)으로 분류 및 예측한다.
Semantic Segmentation vs. (Semantic) Instance Segmentation
의미적 분할은 이미지 내에서 동일한 물체를 분류하는 것을 의미한다. 예를 들어, 한 사진에서 사람의 형체를 모두 분류하는 것을 뜻한다.
Instance Segmentation은 그 여러 명의 사람을 각각 다른 레이블로 분류하는 것을 의미한다.
Segmentation Model: FNC (Fully Convolutional Networks)
FNC (Fully Convolutional Networks)는 CNN의 완전 연결 신경망 (Fully Connected Layer) 부분을 합성곱 층 (Convolutional Layer)으로 대체한 모델이다. Fully Connected Layer는 픽셀의 위치 정보를 무시하기 때문에 이를 보존하기 위해, Conv Layer로 대체 하였다. 픽셀 단위로 분류가 이루어지기 때문에 이 픽셀의 위치 정보를 보존하기 위해 Conv Layer를 사용하였다.
이미지가 갑자기 커지는 이유는 Segmentation은 픽셀별로 분류를 진행하기 때문에 원래 이미지와 비슷하게 크기를 키워주는 Upsampling을 해야한다.
Upsampling이란 원래 이미지의 크기로 키우는 과정을 뜻한다. 반대로 Downsampling(다운샘플링)은 Convolution과 Pooling을 사용하여 이미지의 특징을 추출하는 과정이다.
Upsampling 에는 Transpose Convolution 을 통해 이미지 크기를 키운다. 각 픽셀에 커널을 곱한 값에 다시 Stride로 보폭을 주어 나타낸다.
아래는 2X2 이미지를 업샘플링하는 과정이다. 3X3 필터에 의해 Transpose Convolution 되는 과정으로 초록색 이미지를 파란색 이미지로 바꾸는 모습이다.
Segmentation Model: U-net
- U-net 또한 크게 Downsampling 과 Upsampling로 나뉜다.
- Downsampling 에서 이미지 특징 추출을 위해 Convolution 과 Maxpooling 사용한다.
- Upsampling 에서는 Convolution 과 Transpose Convolution 을 거치면서 축소된 이미지를 원본 이미지와 비슷하게 복원한다.
- Downsampling 출력으로 나온 피처 맵을 잘라서 서로 붙인 뒤 Upsampling 에서 추가 데이터로 사용한다.
객체 탐지/인식 (Object Detection / Recognition)
이미지에서 각 레이블에 해당되는 객체를 찾는 것을 객체 탐지/인식 (Object Detection / Recognition)이라 한다.
'AI 부트캠프' 카테고리의 다른 글
[n434] GAN (0) 2022.01.05 [n433] AutoEncoder (0) 2022.01.04 [n431] CNN과 전이학습 (0) 2021.12.31 [n425] 자연어 처리 요약 (0) 2021.12.30 [n424] Transformer (0) 2021.12.29