Abstract
- Study semantic segmentation의 context aggregation problem.
- Pixel의 label은 결국 pixel이 속하는 object의 범주라는 것을 바탕으로 간단하고 효과적인 접근법 사용,
object의 class를 바탕으로 pixel을 추출한다.- ground-truth segmentation을 바탕으로 object의 regions를 학습한다.
- object regions에 있는 pixels의 representation을 종합해서 object의 representation을 계산한다.
- object-contextual representation(OCR)으로 각각의 pixel representation을 augment한다.
- Cityscapes leaderboard by the ECCV 2020에서 "HRNet + OCR + SegFix"로 1st 기록.
OCR (Object-Contextual Representation)의 접근법은 객체와의 관계를 통해서 각 픽셀의 정보를 유추한다는 부분에서 encoder-decoder의 Transformer와 유사하다.
Introduction
Semantic segmentation는 이미지의 각 픽셀을 classification 하는 Task이다. FCN가 나온 이후로 다양한 연구가 진행됐었고, 그중에는 high-resolution representation과 contextual aggregation에 관한 연구도 있으며, 이 논문에서는 이를 중점적으로 다룬다.
대표적인 연구인 ASPP와 PPM에서는 multi-scale contexts를 다뤘다면, 최근 연구인 DANet, CFNet과 OCNet에서는 position과 contextual position의 관계를 고려하고 contextual position의 representation을 유사한 representations에 높은 가중치를 주어 종합한다. 이 논문에서는 transformer와 같이 context와 position의 관계를 고려하는 contextual representation을 연구한다. Pixel의 label은 결국 pixel이 속하는 object의 범주라는 것을 바탕으로 object region의 관계를 통하여 pixel representation을 augment 하는 것을 목표한다.
논문에서의 접근법은 세 가지 주요 단계로 구성된다. 먼저, contextual pixels를 각각 class와 관련된 set of soft object region으로 나눈다. 나누는 방법은 ground-truth sementation을 통해서 학습한다. 다음으로는 각 object region의 representation을 해당 object region에 상응하는 pixels의 representation을 종합해서 추정한다. 마지막으로 object-contextual representation(OCR)을 바탕으로 각 pixels의 representation을 augment 한다. 여기서 OCR은 각 pixel과 object region의 관계를 통해 계산된 weights를 사용한 모든 obejct region representations의 weigthed aggregation이다.

해당 논문에서의 접근법은 ASPP나 PPM과 같은 이전 논문에서 사용한 multi-scale context에서의 OCR 접근법과는 다르다. 이전 논문에서는 spatial positions의 차이로 pixels를 구분한다면, 해당 논문에서는 object-class contextual을 기반으로 구분한다. (spatial position으로 구분하는가, object로 구분하는가의 차이)
이전의 논문에서도 픽셀들의 관계를 고려하는 시도가 있었지만, 공간적으로 고려한 것이다. 해당 논문에서는 객체를 고려하여 픽셀에 접근하는 방법을 보여준다.
Related Work
Multi-scale context
PSPNet에서는 multi-scale context를 위해서 pyramid pooling에 일반적인 convolution을 사용한다. DeepLab 시리즈에서는 parallel dilated convonlution을 다양한 dilation rates로 적용해 사용한다. DenseASPP와 같은 최근의 pro-pose various extensions 논문에서는 밀도화된 dilated rates를 사용해 더 광범위한 scale을 다룬다. 또 encoder-decoder 구조를 사용하는 다른 연구에서는 multi-resolution features를 사용한다.
"HRNet + OCR"도 결국은 encoder-decoder 구조로, feature map을 upsampling, downsampling 하여 다양한 resolution features를 사용한다. 각 stage에서 하나씩 추가하면서 서로 parallel 하게 연결한다.
Relational context
DANet, CFNet과 OCNet은 모든 pixels로 구성된 context의 contextual pixels의 representations를 종합하여, 각 pixel의 representation을 augment 한다. 이 작업은 self-attention을 기반으로 유사한 weights를 종합하여 각 pixels의 관계를 고려한다. Double Attetion과 그것과 관련된 논문들 그리고 ACFNet은 pixels를 set of regions로 나눈 다음 pixel representation을 바탕으로 context를 예측하고, 이를 고려한 각 region의 representation을 종합하여 augment 한다.
해당 논문에서 사용한 방법은 후자의 방법과 유사하다. 대신 ground-truth segmentation을 통해서 학습한다. 즉, 이 방법은 supervised 됐다고 볼 수 있고 반대로 앞선 방법은 unsupervised라고 볼 수 있다.
이전의 방법은 마지 pseudo labeling과 유사하다. 픽셀의 representation을 바탕으로 set of regions의 context를 예측한 다음 이를 활용하여 픽셀을 고려한다. 해당 논문에서는 ground-truth 정보를 활용하여 학습한다.
Coarse-to-fine segmentation
이전의 다양한 논문에서 coarse-to-fine 방법이 개발되어, 점차 segmentation map을 거친 것에서 미세한 것으로 개선하였다. 예를 들어, 거친 segmentation map을 추가적인 representation으로 활용해 원본 이미지나 fine segmentation map을 계산하기 위한 representations와 결합하여 사용한다.
해당 논문에서의 접근법은 coarse-to-fine 방법과 유사하게 생각할 수 있다. 차이점은 해당 논문에서는 거친 segmentation map을 contextual representation을 생성하기 위해서 사용한다는 것이다.
해당 논문에서는 coarse segmentation map을 추가적인 정보로 사용하여 fine segmentation map을 계산하기 보다는 전반적인 정보를 잘 담고있는 coarse segmentation map을 바탕으로 contextual representation을 생성하기 위해서 사용한다.
Region-wise segmentation
Pixels을 set of regions로 정렬하고, 각 region을 classify한 결과를 segmentation의 결과로 사용하는 많은 방법이 존재한다. 해당 논문에서의 접근법은 각 region을 classify하는 것이 아닌, region을 나누어 pixel을 labeling을 위한 representation을 학습하기 위해서 사용한다.
이전 논문들 처럼 region을 나눠 classify 하는 것이 아닌, region에 속하는 픽셀들을 labeling 하는 학습에 사용된다.
Approach

OCR 파이프라인은 크게 soft object region 추출과 object region representation 계산 그리고 각 위치에 대한 object-contextual representation 계산의 세 단계로 구성되며, decoder 및 encoder cross-attention 모듈에서 다룬다.

Attention
Attention은 scaled dot-product를 사용하여 계산된다. Attention weight \( a_{ij} \)는 query \( q_i \)와 key \( k_j \)사이의 dox-product의 softmax 정규화로 계산된다. 식은 다음과 같다.

각 query \( q_i \)에 대한 attention의 출력은 attention weights으로 weighted된 값들의 집합이다.

Decoder cross-attention
Decoder cross-attention의 역학은 두 가지 이다. Soft obejct region 추출과 object region representation 계산. 앞서 언급한 keys와 values는 이미지의 특징이다. Queries는 각 범주에 해당하는 K category queries(\( q_1 \), \( q_2 \), ... , \( q_K \))이다. K category queries는 soft object regions(\( M_1 \), \( M_2 \), ... , \( M_K \))을 생성하기 위해서 필수적으로 사용된다. 이는 나중에 \( \tilde{m} \)으로 spatialy softmax 정규화 된다.
Encoder cross-attention
Encoder cross-attention은 object region representation을 종합하는 역할을 한다. Queries는 각 위치의 이미지 특징이며, keys와 value는 decoder의 출력에 해당한다.
Connection to class embedding and class attention
Category queries는 Vision Transformer(ViT)와 Class-Attention in Image Transformers(CaiT)의 class embedding과 유사하다. 해당 논문에서는 모든 classes에 통합 embedding이 아닌 각 class에 embedding을 갖고 있다. 또한, Decoder cross attention은 CaiT의 class attention과 유사하며, encoder와 decoder의 구조는 class embedding과 이미지 특징 부분에서 ViT의 self-attention과 매우 유사하다.
Connection to OCNet and interlaced self-attention
OCNet은 self-attention을 사용한다. Self-attention unit은 local self-attention과 global self-attention으로 구성된 interlaced self-attetion에 의해서 가속된다. Interlaced self-attention은 local windows에서 pooled된 특징으로 self-attention 한 것으로 단순화 할 수 있다.
상세한 계산과정은 많이 생략했지만, 결국 기존의 Transformer와 상당히 유사한 구조를 갖는다. Transformer가 문장의 각 단어를 고려했다면, 해당 논문에서는 각 soft obejct region을 바탕으로 object region을 고려한다.
Architecture
Dilated ResNet-101 또는 HRNet-W48을 backbone으로 사용한다. Dilated ResNet-101의 경우 OCR에 두 가지가 입력된다. 첫 번째는 Stage 3의 representation으로 coarse segmentation 예측(soft object region)을 위해 사용된다. 두 번째는 Stage 4에서의 representation이 3x3 Conv를 통과하여 입력된다. HRNet-W48의 경우 마지막 representation을 OCR의 입력으로 사용한다.
Coarse segmentation 예측(soft object region)에는 pixel-wise cross-entropy loss와 함께 1x1 Conv가 사용된다. 모든 transform은 1x1 Conv → BN → ReLU의 과정을 거치며, 첫 3개의 출력은 256 channels 그리고 마지막 2개의 출력은 512 channels로 나온다. 최종 sementation 결과는 마지막 representation을 pixel-wise cross-entropy loss와 함께 linear function을 사용하여 예측한다.
Conclusions
해당 논문에서는 object-contextual representation 접근법을 활용한 semantic segmentation을 보인다. 가장 큰 특징은 pixel의 label은 object의 label로 pixel마다 해당하는 object region representation으로 특징을 부여해, 각 pixel representation을 강하게 만들어 사용하는 것이다.
결과적으로 object region만 잘 추출할 수 있다면, 이를 바탕으로 해당 object region에 속하는 pixel의 값을 보다 확실한 예측 결과를 얻을 수 있을 것이다.
결국, OCR의 경우 픽셀의 representation과 object region을 활용해서 결과를 강화하고, Backbone에서는 HRNet을 사용하여 중요한 부분을 high resolution 정보에 계속 추가해주는 방식이다. 다른 SOTA 모델과의 차이는 attention 구조에 있다고 볼 수 있다. 예를 들어, UperNet Swin-b의 경우 Backbone의 window를 바탕으로 attention을 사용한다. 이러한 차이 때문에 각 dataset마다 SOTA 모델이 상이한 것일까? 라는 생각이 든다. 추가로 object region이 잘 못 나뉜다면, 하나의 object에서 두 가지 class로 표현될 수도 있을 것 같다.
Reference
1. [Object-Contextual Representations for Semantic Segmentation], Yuhui et al, arXiv 2019 / Github