이 논문은 NeurIPS'21에 publish된 논문으로 1023.10.25 기준 55회의 citation을 기록하고 있다.
PCAN (Prototypical Cross-Attention Networks) 이라고도 하며 코드는 http://vis.xyz/pub/pcan.에 있다.
GMM (Gaussian Mixture Model)이나 cross-attention 같은 기법들이 나오는 재미있는 논문이었다.
Introduction
이 task는 MOTS (MOT + Segmentation)을 다루는 논문이다. 이 논문은 기존의 MOT works들이 효과적으로 temporal information을 활용하지 못한다고 지적한다. Hungarian Method나 Kalman Filter를 쓰는 방법들은 두 frame 사이 관계밖에 고려할 수 없고, VisTr 같은 vision transformer 기반 methods들은 pixel-level attention을 사용하기 때문에 메모리/계산 복잡도가 너무 높은게 문제였다고 한다. 이 논문은 PCAN (Prototypical Cross-Attention Network)을 proopse했고, PCAN은 1) spatio-temporal information을 잘 고려하는 2) 가벼운 MOTS 모델이다. PCAN의 간단한 특징은 다음과 같다.
[1] frame-level cross-attention : past frames 각각을 GMM 을 통해 prototypes들로 encoding하고 cross-attention
[2] instance-level cross-attention : 위와 비슷하나 positive/negative instance를 prototypes로 만들어 cross attention
Methodology
Preliminary : cross-attention
일단 여기서 다루는 attention은 Query, Key, Value (Q,K,V) 기반의 attention이다. 임의의 feature들을 Query/Key/Value embedder를 통과시켜서 Q, K, V를 얻고 이들간의 scaled dot-product attention을 수행하여 결과를 output한다. 이때 K,V의 토큰의 개수는 항상 일치해야하며 같은 feature로부터 계산되어야하고 Q는 이와 달라도 괜찮다. K,Q,V이 모두 같은 source feature로부터 계산되었다면 self-attention이라 부르며, K,V이 Q와 다른 source로부터 계산되면 cross-attention이라 한다.
Frame-level prototypical cross-attention
이 논문의 핵심 아이디어 중 하나는 frame 안에 존재하는 모든 정보를 몇개의 Gaussian modalities로 표현했다는 것이다. 위 Figure를 보면 메모리 M 안에 여러 video frame이 들어있는데, 그중 하나 (reference frame)을 여러 vector 로 인코딩한다. 구체적으로 1) refeference frame feature에다가 별도의 Conv layer를 통과시켜 key/value embedding을 얻는다.
2) key/value embedding 각각에다가 EM 알고리즘을 적용시켜 N 개의 (고정된 상수) Gaussian mean vector를 얻는다.
위 Figure는 GMM 계산을 위한 정석적인 EM 알고리즘인데, PCAN은 여기서 pi를 uniform prior로 고정했고, variance도 constant variance 로 고정해서 사용한다. 너무 많이 간소화해서 이걸 GMM이라 하기도 애매한 수준인데,, variance를 고려하기 시작하면 likelihood가 발산하기 너무 쉬워져서 모델 안정성을 위해 이런 선택을 했나 싶다. 😏
논문에 수식이 자세히 나와있진 않지만 PCAN은 key prototype을 EM 알고리즘을 통해 Gausesian mean vector로서 구한다. 그리고 위 Figure처럼 H x W 차원의 value embedding에다가 픽셀 단위로 key prototype (GMM 으로 구한 mean vector) 으로 만든 Gaussian 에서의 pdf를 weight를 줘서 value prototype을 구한다. (왜 value도 GMM으로 안구하는지... 🤔)
그다음 대망의 cross-attention을 수행한다. Transformer를 좀 경험해보신 분들이라면 보통 scailed dot-product 형태의 attention에 익숙할텐데, PCAN에서는 euclidan distance를 통해 similarity를 측정한다. Gaussian pdf 에 L2 distance term이 들어가는걸 생각하면 합리적인 선택인 듯하다. 하여튼 이런 식으로 current frame의 feature embedding과 past frames의 feature embedding 사이의 cross-attention을 수행하고 이를 통해 과거의 temporal 정보를 현재 frame 에 align(projection)할 수 있다고 한다. 이런 방법론을 frame-level prototypical cross-attention이라고 하는데, 그 이유는 각 frame의 정보들이 GMM 을 통해 prototype으로 인코딩되기 때문이다. Attention weight를 가지고 reconstruct된 feature는 이후 instance-level prototypical cross-attention으로 얻은 feature vector에 concatenate되어 segmentator으로 전해지게 된다.
이렇게 각 $t=t \hat$ 의 past frame의 prototypes 과의 cross-attention을 통해 reconstruct한 features $y_{t\hat i}$를 구할 수 있는데 이렇게 past frames 여러개로부터 features들을 모은다음에,, 현재 frame과의 유사성을 기반으로 가중평균을 낸다. 이를 통해 long-term temporal information을 고려할 수 있을뿐더러, 현재 frame과 유사한 정보는 살리고 유사하지 않은 정보는 suppress할 수 있다고 한다.
Instance-level prototypical cross-attention
아마 앞서 frame-level protoypical cross-attention을 보면서 "instance" 정보를 전혀 고려하지 않는 사실에 의아하신 분들이 있을 것이다. 다행히 PCAN은 instance-level cross-attention을 통해 foreground, backgroud 에 대응되는 prototype을 생성해내고, 위와 동일한 cross-attention 과정을 거쳐 attention-weigted feature를 생성해낸다. 위 Figure만 보면 좀 난해해서 이해하기가 쉽지 않은데, 구체적인 알고리즘 동작 방식은 다음과 같다.
[1] 현재 frame (t=T) 기준 t=T-1 부터 t=1 까지 past frames들을 준비한다.
[2] 과거 frame에서의 segmentation prediction을 사용하여 foreground/background 에 대응되는 feature를 분리한다.
[3] 분리된 각각의 feature 들에 GMM을 적용하여 positive/negative prototypes들을 계산한다.
[4] 이렇게 얻은 prototype을 가지고 cross-attention을 수행하여 frame-level과 동일하게 reconstructed feature (by attention-weight average) 를 구한다.
[5] frame-level cross-attention으로 구한 결과와 instance-level cross-attention으로 구한 결과를 concate하여 segmentation head로 보낸다.
** 이때 positive/negative prorotypes들은 아래와 같이 moving average를 통해 여러 frame에 걸쳐 update된다고 한다.
Experiments
PCAN은 아래와 같이 Youtube-VIS와 BDD100K 데이터셋에서 SoTA 성능을 달성했다고 한다.
또한 qualitative analysis를 통해 각각의 같은 object의 prototype이라고 하더라도 prototype 마다 instance의 다른 부분들을 attend 한다는 것을 보였는데, 이 점이 꽤나 신기하였다.
'Object Tracking 공부' 카테고리의 다른 글
SiamMOT: Siamese Multi-Object Tracking 논문 공부 (0) | 2023.11.27 |
---|---|
MAT: Motion-aware multi-object tracking 논문 공부 (0) | 2023.10.26 |
QDTrack: Quasi-Dense Similarity Learning for Multiple Object Tracking 논문 공부 (0) | 2023.10.23 |
Learning a Neural Solver for Multiple Object Tracking 논문 공부 (0) | 2023.10.16 |
TrackFormer: Multi-Object Tracking with Transformers 논문 공부 (0) | 2023.10.13 |