[Paper Review] Deconvolution Network
Learning Deconvolution Network for Semantic Segmentation(Hyeonwoo Noh, Seunghoon Hong, Bohyung Han, 2015) 요약입니다.
1. Abstract
- Deconvolution Network 학습을 통한 새로운 semantic segmentation 알고리즘 제안함.
- VGG-16 layer에서 채택된 Conv layer위에 네트워크를 학습함.
- Deconv Net는 Deconv와 unpooling layer로 구성 → 픽셀별 레이블을 식별하고 segmentation mask를 예측.
- Proposals는 이미지 내에서 관심 있는 객체나 영역을 식별하기 위해 제안된 후보영역을 의미함.
- Trained network를 input image의 각 proposal에 적용함. 그리고 모든 proposal의 결과를 간단하게 결합하여 최종 semantic segmentation map을 구성.
- deep deconv net와 proposal-wise prediction을 결합함으로서 FC net 기반의 기존 방법의 한계를 완화.
2. Introduction
- FCN(fully convolutional network) : 구조화된 픽셀별 라벨링 문제를 해결하기 위해 고안됨. → 단순한 deconv는 이중 선형 보간으로 구현. CRF(Conditional Random Field)는 선택적으로 세밀한 분할을 위해 출력 맵에 적용됨.
- FCN기반의 semantic segmantation은 몇가지 한계를 가짐. (1) 고정된 크기의 수용필드 → 수용 필드보다 훨씬 크거나 작은 객체는 조각나거나 잘못 라벨이 뭍을 수도. (2) 객체의 세부구조를 잃거나 부드러워짐. Deconv layer의 input인 label map이 너무 coarse하고 Deconv 절차가 지나치게 단순하기 때문. But, 최근 방법들은 CRF를 통해 이 문제를 개선
- 이러한 한계를 극복하기 위해, 전혀 다른 전략을 사용 (1) Deconv, Unpooling, ReLU 계층으로 구성된 다층 Deconv Layer 학습. (2) 훈련된 네트워크는 개별 객체 Proposal에 적용되어 인스턴스별 분할을 얻으며, 이는 최종 semantic segmentation을 위해 결합됨. (3) PASCAL VOC 2012 데이터셋에서만 훈련된 Deconv 네트워크를 사용하여 뛰어난 성능을 달성함.
3. System Architecture
3.1. Architecture
- Figure 2는 전체 네트워크의 자세한 구성을 보여줌. 우리가 훈련시킨 네트워크는 (1) 컨볼루션 (2) 디컨볼루션 네트워크로 구성됨.
- 컨볼루션 네트워크는 입력 이미지를 다차원 특성 표현으로 변환하는 특성 추출기에 해당됨.
- 디컨볼루션 네트워크는 컨볼루션 네트워크에서 추출한 특성으로부터 객체 분할을 생성하는 형태 생성기임.
- 네트워크의 최종 출력은 입력 이미지와 같은 크기의 확률 맵으로, 각 픽셀이 사전 정의된 클래스중 하나에 속할 확률을 나타냄.
3.2. Deconvolution Network for Segmentation
3.2.1. Unpooling
- Figure 2는 전체 네트워크의 자세한 구성을 보여줌. 우리가 훈련시킨 네트워크는 (1) 컨볼루션 (2) 디컨볼루션 네트워크로 구성됨.
- 컨볼루션 네트워크는 입력 이미지를 다차원 특성 표현으로 변환하는 특성 추출기에 해당됨.
- 디컨볼루션 네트워크는 컨볼루션 네트워크에서 추출한 특성으로부터 객체 분할을 생성하는 형태 생성기임.
- 네트워크의 최종 출력은 입력 이미지와 같은 크기의 확률 맵으로, 각 픽셀이 사전 정의된 클래스중 하나에 속할 확률을 나타냄.
3.2.2. Deconvolution
- Unpooling layer의 outout은 확대되었지만, 여전히 희소한 활성화 맵임.
- 희소한 활성화 맵(sparse activation map)은 대부분의 요소가 비활성화 상태(즉, 중요하지 않거나 관련이 없는 정보를 나타내는 상태)인 것을 의미함.
- Deconvolution layer는 Unpooling을 통해 얻은 희소한 활성화를 여러 학습된 필터를 사용한 Convolution과 유사한 작업을 통해 밀집시킴.(단일 입력 활성화를 여러 출력과 연결)
- Deconvolution layer에서 학습된 필터는 입력 객체의 형태를 재구성하기 위한 기반에 해당됨.
- 하위 레이어의 필터는 대체로 객체의 전체 형태를 포착하는 경향이 있음. 클래스별 세부사항은 상위 레이어의 필터에 인코딩 됨.
3.2.3. Analysis of Deconvolution Network
- 제안된 알고리즘에서, Deconvolution network는 정밀한 객체 분할을 위한 핵심 구성요소임. 여기서 밀집된 픽셀별 클래스 확률 맵은 연속적인 Unpooling, Deconvlution, 그리고 rectification을 통해 얻어짐.
- Figure 4는 네트워크의 레이어별 출력을 시각화하며, Deconv Net의 내부 작업을 이해할 수 있게 도움을 줌.(객체 구조가 세밀하게 재구성)
- Unpooling과 Deconvolution network는 segmentation mask 구성을 위해 다른역할.
- Unpooling → 강한 활성화를 가진 원래 위치를 이미지 공간으로 트레이싱하여 툭정 구조를 포착: 객체의 세밀한 구조를 더 세밀한 해상도로 효과적으로 재구성
- Deconvolution layer → 학습된 필터는 클래스별 형태를 포착, 대상 클래스와 밀접하게 관련된 활성화는 증폭되며 다른 영역의 잡음 활성화는 효과적으로 억제
3.3. Systen Overview
- 알고리즘은 semantic segmentation을 instance-wise segmentation problem문제로 제시함. 즉, 네트워크는 객체를 포함할 가능성이 있는 부분 이미지(인스턴스)를 입력으로 받아, 전체 이미지에 대한 semantic segmentation은 이미지에서 추출된 각 후보 proposal에 네트워크를 적용하고 모든 proposal을 원본 이미지 공간에 집계함으로써 얻어짐.
- 인스턴스 분할은 이미지 수준예측에 비해 다음과 같은 장점 (1) 다양한 스케일의 객체를 효과적으로 처리하고 고정된 크기의 수용 필드를 가진 접근 방식의 문제를 해결. (2) 또한, 예측 과정에서 고려해야 할 가능한 입력 데이터의 범위를 좁 학습 복잡성을 완화하고 메모리 요구사항을 줄임
4. Training
4.1. Batch Normalization
- 깊은 신경망을 최적화하는 것은 내부 공변량 이동 문제 때문에 매우 어려움.
- 내부 공변량 이동(internal covariate shift) 문제는 딥러닝에서 학습 과정 동안 네크워크의 각 층을 통과하는 데이터의 분포가 지속적으로 변화하는 현상.
- 따라서 모든 레이어의 입력 분포를 표준 가우시안 분포로 정규화하여 내부 공변량 이동을 줄이기 위해 배치 정규화를 수행함.
- 배치 정규화 레이어는 모든 Conv layer 및 Deconv layer의 출력에 추가됨.
- 배치정규화는 해당 네트워크를 최적화하는 데 결정적이며, 배치 정규화 없이는 국소 최적에 도달함.
4.2. Two-stage Training
- 배치 정규화가 국소 최적해를 탈출하는 데 도움을 주지만, 학습 예제의 수에 비해 의미 있는 분할의 공간은 여전히 매우 크며, 인스턴스별 분할을 위해 Deconv 네트워크를 사용하는 이점이 상쇄될 수 있음.
- 해당 문제를 해결하기 위해 두 단계 학습 방법 채택(쉬운 예제로 네트워크 학습시킨 후 도전적인 예제로 훈련된 네트워크 미세 조정)
- 첫번째 학습 : object가 가운데에 있는 쉬운 이미지 이용, 두번째 학습 : object가 잘리거나 가장자리에 걸쳐있는 어려운 이미지에 대한 학습
5. Inference
- 제안된 네트워크는 semantic segmentation을 수행하도록 훈련됨. 입력 이미지가 주어지면, 먼저 충분한 수의 후보 proposal을 생성하고, 훈련된 네트워크를 적용하여 개별 proposal의 semantc segmentation을 얻음. 그런 다음 모든 proposal의 ooutputs를 집계하여 전체 이미지에 대한 semantic segmentation을 생성.
- 선택적으로, 성능 추가 향상을 위해 FCN과의 앙상블을 사용
5.1. Aggregating Instance-wise Segmentation Maps
- 모든 클래스에 해당하는 점수 맵의 픽셀별 최대값 또는 평균을 취하는 것이 노이즈에 강인한 결과
- g_i를 이미지 공간에 넣고 g_i외부에는 제로 패딩, 원본 이미지 크기에 해당하는 g_i의 분할 맵을 G_i로 표기. 그다음 모든 proposal의 outputs를 집계해 이미지의 픽셀별 클래스 점수맵을 구성.
- 원본 이지지 공간에서의 클래스 조건부 확률맵 식은 (1)또는 (2)에서 얻어진 맵에 소프트스 함수를 적용. 마지막으로 CRF를 적용
5.2. Ensemble with FCN
- Deconvolution Network는 객체의 세부사항을 포착하는 데 적합한 반면, FCN은 일반적으로 객체의 전체 형태를 추출하는 데 뛰어남.
- 앙상블을 통한 두 알고리즘의 이점 활용 → FCN와 제안된 방법에서 독립적으로 계산된 입력 이미지의 클래스 조건부 확률 맵 두 세트가 주어지면, 두 출력 맵의 평균을 계산하고 최종 의미 분할을 얻기 위해 CRF 적용
6. Experiments
- Optimization은 SGD사용, learning rate, momentum, weight decay는 각각 0.01, 0.9, 0.0005로 설정. ILSVRC 데이터셋으로 pre-trained된 모델을 사용.
- FCN-8와의 앙상블 및 CRF를 정용한 모델이 가장 높은 성능
- CRF는 약 1%의 성능향상
- 또한, proposals의 수를 늘릴 수록 결과가 좋아지는 것을 볼 수 있음
- 아래는 제안된 네트워크의 구체적인 확인.