1day_1paper
1day_1paper copied to clipboard
[89] Sparse Instance Activation for Real-Time Instance Segmentation (SparseInst)
새롭게 real-time 류 instance segmentation 에서 SOTA 찍은 논문.
Intro
Region based 나 dynamic convolution 등 다양한 instance seg 방법론들은 real-time 영역으로 넘어오면 잘 동작시키기 힘들다. 512x512 input 기준으로만 봐도 5456 개의 anchor 가 생겨버린다던지, 여러가지 병목현상이 될 수 있는 부분이 있다. NMS 또한 2ms 정도 잡아먹는데 총 inf speed 의 10% 를 차지한다.
이 논문에서는 segment 자체를 예측해버리는 새로운 패러다임을 제시한다. CAM 에 영감을 받아, IAM(Instance Activation Maps) 를 제시한다.
그림을 보면,
(a) center 는 object 위에 instance 가 없을 수도 있고,
(b) region-based 는 배경정보를 포함할 수 있다.
(c) IAM 은 그런 걱정 없다.
IAM은 3가지 이점을 갖는다.
- instance 에 집중한다.
- 전체 이미지의 instance feature 들을 가져와서 context 가 풍부하다.
- ROI-Align 보다 훨씬 간단하다.
SparseInst
전체 구조는 다음과 같다.
PPM 은 PSPNet 의 다음과 같은 구조다
IAM-based Decoder 만 자세히 보면 된다.
input 은 encoder feature 에 coordconv 형태로 2channel 이 concat 되서 들어간다.
대략 이런 느낌.
N개의 instance activation map 을 네트워크가 예측하고, D 개의 feature 가 있다고 해보자. F_iam(·) 은 (grouped conv3x3 - sigmoid) 형태이고, 4 grouped 이다. (NxHxW) 를 뱉어주는데, 기존 F_iam 의 input 인 (DxHxW) 와 내적해서 최종적으로 (NxD) 의 latent vector 들을 생성한다.
Mask 는 (NxD) 와 (DxHxW) 를 내적해서, (NxHxW) 를 뽑게 된다.
GT 를 뽑은 N개의 prediction 에 one-to-one matching 을 하면 background 만 겁나 나오더라. 이를 해결하기 위해 IOU-aware objectness 를 적용한다. pred mask 와 GT 사이의 IOU 를 구하고, 그걸 예측하는 head를 따로 뒀다. 이게 score head 이다.
실제 inference 를 할 때는, pred class prob p_i 와 IOU prob s_i 를 다음과 같은 수식으로 보정한다.
GT 는 activation 들의 set 이 주어지는데, hungarian algorithm 으로 bipartite matching 을 한다.
mask (Lmask) 는 dice loss 에 pixel-wise BCE loss, cls (Lcls) 는 focal loss IOU (Ls) 는 BCE loss 를 사용했다.
성능은 SOTA!