U-Net: Convolutional Networks for Biomedical Image Segmentation
-
728x90
반응형
0. 시작하기에 앞서
본 게시물은 아래 참고링크의 게시글을 매우 적극적으로 활용하였으므로, 원 저작자에게 감사의 뜻을 남깁니다.
1. 개념
U-Net은 오토인코더(autoencoder)와 같이 데이터의 차원을 축소했다가 다시 확장하는 방식의 모델로, Semantic Segmentation을 수행할 수 있다.
그러나 오토인코더는 인코딩 단계에서 차원 축소를 거치면서 이미지 객체에 대한 자세한 위치 정보를 잃게 되고, 디코딩 단계에서도 저차원의 정보만을 이용하기 때문에 위치 정보 손실을 회복하지 못하는 단점이 존재한다.
이러한 단점을 극복하기 위해 U-Net은 고차원 정보도 함께 이용하여 이미지의 특징을 추출함과 동시에 정확한 위치 파악을 하기위해 인코딩 단계의 각 레이어에서 얻은 특징을 디코딩 단계의 각 레이어에 합치는(concatenation) 방법을 사용하며, 인코더 레이어와 디코더 레이어의 직접 연결을 스킵 연결(skip connection)이라고 한다.
2. U-Net의 구조
2.1. 전체 구조
이름과 같이 'U'처럼 좌우가 대칭이 되도록 차원을 축소하는 부분과 차원을 확장하는 부분의 레이어를 배치
2.2. Contracting Path
넓은 범위의 이미지를 보며, context information을 추출하는 부분
2.2.1. ConvBlock
전체 구조 이미지에서 나타나는 파란색 박스
contracting path 구조 이미지에서 보라색 테두리 안에 있는 파란색 박스와 동일
2.2.2. EncoderBlock
contracting path 구조 이미지에서 보라색 테두리 전체
ConvBlock의 output은 디코더 부분으로 복사하기 위한 것
Max Pooling의 output은 인코더의 다음 단계로 보내지는 다운샘플링된 값
2.3. Bridge
1개의 ConvBlock 레이어로 표현 가능
2.4. Expanding Path
context information을 위치정보와 결합하여 각 위치가 어떤 객체에 속하는지를 구분
2.4.1. DecoderBlock
expanding path 구조 이미지에서 회색 테두리 전체
노란색 박스는 ConvTranspose 를 통해 이전 layer의 output(feature map)에 대해 해상도를 2배로 늘리고 채널수를 절반으로 줄인 것을 복사한 것
녹색 박스는 skip connection을 통해 대칭되는 위치의 인코더 맵의 output을 복사한 것
녹색 박스와 노란색 박스를 concatenation한 것을 ConvBlock을 통해 채널 수를 절반으로 줄임
다만 Contracting Path의 Feature map이 Expanding Path의 Feature map보다 큰 이유는 Contracting Path에서 여러 번의 패딩이 없는 3×3 Convolution Layer를 지나면서 Feature map의 크기가 줄어들기 때문
Contracting Path의 Feature map의 테두리 부분을 자른 후 크기를 동일하게 맞추어 두 feature map을 합쳐 줌