논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Fast Video Object Segmentation by Reference-Guided Mask Propagation

1. Introduction

이 논문에서는 세미 수퍼바이즈드 방법으로 비디오 내 객체의 세그멘테이션을 위한 하이브리드 방법을 제안합니다. Siamese 엔코더-디코더 네트워크를 이용하여 이전의 마스크가 현재 프레임으로 전파됨과 동시에 목표 객체가 명시되어있는 레퍼런스 프레임으로도 전파되도록 하였습니다. 큰 비디오 세그멘테이션 데이터셋은 없기에 2스테이지 방법으로 합성된 이미지 데이터로 먼저 네트워크를 학습 시킨 다음 비디오 데이터로 파인튜닝하는 과정을 거쳤습니다.

2. Related Work

3. Method

목표는 레퍼런스 프레임과 객체 마스크가 주어질 경우 자동으로 모든 비디오 시퀀스에 대해서 목표 객체를 세그멘테이션 하는 것입니다. 어노테이션된 레퍼런스 이미지와 현재 프레임이 신경망에 주어지면 신경망은 레퍼런스 프레임의 목표 객체의 모양과 비교하여 현재 프레임의 객체를 찾으면서 또한 이전의 마스크를 참고하여 현재 프레임의 객체 마스크를 추적합니다.

3.1. Network Structure

Siamse 인코더-디코더 구조를 참조하여 모델을 만들었습니다. 네트워크는 파라미터를 공유하는 2개의 인코더와 글로벌 컨볼루션 블록, 디코더로 구성됩니다.

Siamese encoder: 인코더는 두개의 RGB이미지 쌍과 마스크 맵을 입력으로 합니다. 인코더는 레퍼런스 스트림과 타겟 스트림으로 이루어지는데 둘 간의 가중치들은 동일한 것으로 공유합니다. 레퍼런스 스트림은 레퍼런스 이미지(보통은 첫번째 프레임)와 정답 마스크로 이루어집니다. 타겟 스트림은 타겟(현재) 이미지와 이전 프레임에 해당하는 가이드(guidance) 마스크가 입력됩니다. 이미지와 마스크는 채널 방향으로 쌓아서 인코더로 입력합니다.

Global convolution block: 두 인코더의 출력은 다시 쌓아져 글로벌 컨볼루션 블럭으로 입력됩니다. 레퍼런스 스트림과 타겟 스트림의 피쳐 매칭을 통해 객체의 위치를 찾도록 디자인되었습니다. 컨볼루션 연산의 지역성을 극복하기 위해 글로벌 컨볼루션1을 이용하였습니다. 이는 과 $1 \times k + k \times 1$과 $k \times 1 + 1 \times k$ 컨볼루션을 합쳐 리셉티브 필드(receptive field)를 늘리는 역할을 합니다. 그 출력을 다시 레지듀얼 블럭으로 처리합니다. Batch normalization은 제거하였으며, 모든 컨볼루션 레이어는 256채널을 생성하도록 하였습니다.

Decoder: 글로벌 컨볼루션 블럭의 출력은 디코더로 입력됩니다. 이 과정에서 타겟 프레임의 피쳐들이 skip-connection을 통해 디코더로 같이 입력됩니다. 다른 스케일의 피쳐들을 잘 합치기 위해 refinement 모듈2을 디코더의 블럭에 사용하였습니다. 단 원래 구조에서 컨볼루셔널 레이어 대신 레지듀얼 블럭을 이용하였습니다. 디코더는 3개의 리파인 모듈에 이어 마지막 컨볼루셔널 레이어가 오고 최종적으로 객체 마스크를 생성하기 위한 소프트맥스 레이어가 위치합니다. 마스크의 출력은 원래 이미지의 1/4 크기이며 모든 컨볼루션 레이어는 256개의 채널을, 마지막은 2채널 마스크 맵을 출력합니다.

3.2. Two-Stage Training

DAVIS-2017은 비디오 세그멘테이션을 위한 퍼블릭 벤치마크 데이터셋이지만, 60개의 비디오밖에 제공하지 않아 학습에는 부족합니다. 이를 극복하기 위해서 2단계 학습 방법을 사용합니다. 먼저 시뮬레이션된 샘플을 이용하여 선학습 시킨 뒤, 파인튜닝하도록 합니다.

Pre-training on simulated samples. 먼저 오브젝트 마스크가 잇는 이미지 데이터셋을 이용하여 학습 샘플을 시뮬레이션 합니다. 두개의 인코더를 위한 같은 객체가 있는 레퍼런스 프레임과 타겟 프레임이 필요합니다. 자동으로 이미지를 만들어내기 위해 2가지 전략이 있습니다.

    • 전략 1: 한개의 이미지 내의 마스크로 잘라낸 객체로부터, 2개의 다른 랜덤 트랜스폼(회전, 스케일, 컬러)을 적용한 이미지를 만들어내는 방법
    • 전략 2: 2개의 포어그라운드 쌍과 하나의 배경 이미지로부터, 포어그라운드 객체에 각기 다른 랜덤 트랜스폼을 적용한 다음, 배경 이미지에 블렌딩하는 방법
1 C. Peng, X. Zhang, G. Yu, G. Luo, and J. Sun. Large kernel matters–improve semantic segmentation by global convolutional network. arXiv preprint arXiv:1703.02719, 2017
2 ] P. O. Pinheiro, T.-Y. Lin, R. Collobert, and P. Dollar. Learn- ´ ing to refine object segments. In European Conference on Computer Vision, pages 75–91. Springer, 2016.

전략 1은 카메라 각도, 줌, 조명 변화와 같은 환경 변화를 시뮬레이션하고, 전략 2는 객체가 변하거나 하는 등의 더 복잡한 변화를 시뮬레이션 합니다. 전략 2의 결과는 조금 부자연스러울지 모르지만, 양쪽 전략 모두 유용하였으며 동일한 확률로 둘을 모두 적용하였습니다.

Fine-tuning on video data. 전학습이 완료되면 실제 비디오 시퀀스로부터 신경망을 학습시킵니다. 이때에는 더 긴 시간동안의 모양 변화와 짧은 시간 동안의 움직임에 대해서 대응할 수 있어야 합니다. 데이터셋은 DAVIS-2017을 이용하였습니다. 레퍼런스 프레임과 타겟 프레임은 랜덤 인덱스로 선택하였습니다.

단순히 파인튜닝을 하면 실제 사용할 대의 에러 누적을 대응할 수 없습니다. 이를 위해서 3과 비슷하게 학습 시간 동안 리커런트 연결을 사용하고, 이전 프레임의 소프트맥스의 결과를 현재 프레임의 가이드 마스크로 입력해주어 uncertainty를 유지할 수 있도록 하였습니다. 이를 위해서 N개의 연속된 타겟 프레임을 이용하고 Back-Propagation-Through-Time (BPTT)을 적용하였습니다.

3.3. Inference

첫번째 프레임의 가이드 마스크는 주어진다고 가정하였습니다. 첫번째 프레임을 레퍼런스 프레임으로 사용하고 나머지 프레임들의 마스크를 연속적으로 추정하도록 하였습니다. 이전 프레임에서 추정된 마스크 확률 맵을 다음 프레임에서 이진화 작업 없이 가이드 마스크로 사용하였습니다.

Multiple Objects. 여러 객체가 있는 경우에는 따로 네트워크를 변경하지 않고 시나리오 수준에서 해결하였습니다. 간단한 방법으로는 각 객체에 대해서 따로 세그멘테이션한 다음 큰 확률을 가지는 오브젝트로 레이블링하는 방법이 있습니다. 다른 방법은 winner-take-all 방법으로 각 픽셀이 여러 인스턴스에 속하지 못하도록 하는 방법입니다.

소프트맥스를 합산하는 방법을 이용하여 여러 인스턴스의 확률을 통합하였습니다.

$$p_{i, m} = \sigma(\text{logit}(\hat{p}_{i, m})) = \frac{\hat{p}_{i, m} / (1-\hat{p}_{i, m})}{\sum_{j=0}^M \hat{p}_{i, j} / (1 - \hat{p}_{i,j})}$$

여기서 $\sigma$는 소프트맥스를, $\text{logit}$은 logit 함수를 나타냅니다. $\hat{p}_{i, m}$은 위치 $i$에서의 객체 $m$의 확률을 나타냅니다. 배경의 확률은 모든 포어그라운드 확률을 더해 1에서 빼서 결정하였습니다.

3.4. Implementation Details

4. Experiments

5. Conclusion

 

1 C. Peng, X. Zhang, G. Yu, G. Luo, and J. Sun. Large kernel matters–improve semantic segmentation by global convolutional network. arXiv preprint arXiv:1703.02719, 2017
2 ] P. O. Pinheiro, T.-Y. Lin, R. Collobert, and P. Dollar. Learn- ´ ing to refine object segments. In European Conference on Computer Vision, pages 75–91. Springer, 2016.
3 Y.-T. Hu, J.-B. Huang, and A. Schwing. Maskrnn: Instance level video object segmentation. In Advances in Neural Information Processing Systems, 2017.


Add a Comment Trackback