하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.
Laplacian Pyramid Reconstruction and Refinement for Semantic Segmentation
2월 16th, 2021 Posted by 룬룬
Problem
- CNN을 segmentation에 적용할 때의 문제점은 spatial deformation에 invariance하도록 하는 pooling layer가 segmentation에서는 spatial resolution을 저하시킨다는 점이다.
Essence
- 한 receptive field에 해당하는 block에 max pooling을 적용할 경우 channel 수준의 feature는 spatial 정보를 잃어버리지만, pooling 이전에 적용된 filter들은 높은 차원의 벡터들의 sparse한 activation 사이에서 sub-pixel 수준의 spatial 정보를 encode할 수 있는 channel간 상관관계를 학습하는 것을 알아냈다.
- 또 계층적인 구조를 활용해 spatial 정보를 더 추출하고자 할 때 기존의 방법들은 concatenation하거나 linearly combine prediction하는 방법이 있다. 전자는 결과 feature가 차원 수가 높아지는 단점이 있고, 후자는 여러 레이어로부터 온 semantic content를 제대로 활용하지 못한다.
- 논문에서는 낮은 해상도의 prediction에서 residual error만 수정하는 높은 해상도로 구성된 모델 구조를 제안하였다.
- 이 때, 높은 해상도의 noisy한 결과가 그대로 합쳐지는 것을 막기 위해 multiplicative gating을 사용하고자 하였고, 이는 Laplacian Pyramid Reconstruction and Refinement (LRR) 이라고 이름붙였다.
Detail
Reconstruction with learned basis function
- 보통 낮은 해상도로 생성된 class score를 원래 해상도로 돌리는 방법은 linear convolution을 사용한다. Bilinear kernel을 고정해서 쓰거나 upsampling filter의 초기 값을 사용해서 학습시키기도 하지만, 원래 해상도의 detail을 나타내기에는 한계가 나타난다.
- 이를 해결하기 위해 score map 이전에 feature map을 upsampling하기에는 게산량이 너무 많아지며, 이를 단순히 bilinear upsampling을 적용한다면 추가적인 필터링을 하지않는 이상 score map을 upsampling한 것과 결과가 동일해진다.
- Spatial 정보를 더 추출하기 위해 논문에서는 높은 해상도의 feature map을 낮은 해상도의 class score로 낮추지 않고, 높은 해상도에서의 basis와 이전 레이어에서 계산된 feature map을 coefficient로 하는 함수로 표현하여 높은 해상도의 score을 표현하고자 하였다. 이를 기존 upsampling과 구분하기 위해 우리는 reconstruction으로 이야기하고자 한다.
- Convolutional layer를 이용하여 각 C개 클래스에 해당하는 K개의 basis coefficient를 prediction하도록 하용하였다. 그 뒤 deconvolution layer를 이용하여 prediction된 coefficient들을 각 클래스에 해당하는 basis function set과 곱하고 이들의 합을 계산한다.
- 이전의 Bilinear나 spline과는 달리 학습된 basis를 사용하기 때문에 연속성을 보장하지 않으며, 이를 완화하기 위해 convolution layer에서 coefficient를 prediction할 때 5x5를 큰 필터를 사용하였다.
- 또한 더 효과적인 학습을 위해 deconvolution layer를 초기화할 때 PCA를 이용하여 의미있는 필터로 초기화하여 학습시켰다.
- PCA는 학습 데이터에서 각 클래스로부터 10000개씩 32 x 32 크기의 패치를 추출한 뒤 PCA를 적용하여 각 클래스마다 별도의 basis function set을 계산하였다.
Laplacian Pyramid Refinement
- Burt와 Adelson가 제안한 Laplacian Pyramid는 서로 분리된 frequency band로 반복적으로 down sampling하며 분해된 이미지는 이를 다시 더함으로 이를 복원할 수 있다고 하였다.
- CNN은 이에 부합하는 frequency band는 아니지만 일종의 low-frequency component를 남기는 것처럼 동작하는 것을 발견하였고, 이를 이용하여 CNN 구조가 pyramid를 제공하도록 학습하도록 하였다. 이 pyramid는를 다시 synthesis하여 segmentation에 이용한다.
- 그림에서 처럼 coarse scale에서 low-frequency segmentation을 하고 higher-frequency 의 정보를 추가해가면서 spatial fielity를 향상시키는 방향으로 refinement를 수행한다.
- 실제로는 Laplacian pyramid에서처럼 단순히 더하는 것만으로는 잘 작동하지 않는다. 높은 해상도의 feature map이 실제로 low-frequency content가 빠진 데이터를 가진 것이 아니기 때문이다.
- 이를 해결하기 위해 masking step를 추가하여 low-frequency content를 명시적으로 제거하도록 하였다. 이를 통해 하위 해상도에서 신뢰도가 높게 추정된 영역을 높은 해상도의 결과가 영향을 주는 일을 막도록 하였다.
- Boundary masking은 max-pooling을 이용하 confident한 foreground와 background를 분리하고 이들의 차이를 boundary로 사용하였다.
Add a Comment Trackback