논문 읽기/Self-Supervised

[논문 읽기] Learning Correspondence from the Cycle-consistency of Time(2019)

AI 꿈나무 2021. 8. 19. 20:23
반응형

Learning Correspondence from the Cycle-consistency of Time

 PDFVideo SSL, Xiaolong Wang, Allan Jabri, Alexei A. Efros, CVPR 2019

 

 익숙하지 않은 분야여서 논문 요약이 아니라 논문 해석이 되어버렸네요. video correspondence에 대한 배경지식이 많이 부족합니다 흑흑

Summary

 

 비디오에 존재하는 객체는 인접한 프레임 사이에 correspondence가 존재합니다. 예를 들어, 농구 영상에서 농구공이 인접 프레임에서 계속 나타납니다. 프레임 사이의 농구공 correspondence를 supervisory signal로 사용하여 학습한다면 다양한 task에 활용할 수 있습니다. 즉, 해당 논문은 raw video로부터 visual correspondence에 대한 representation을 학습하는 general model을 제공하여 여러 task를 수행할 수 있도록 합니다.

 

 그러면 어떻게 correspondence를 포착하고 supervisory signal로 활용하여 학습할 수 있을까요?

 

 정적인 영상에서는 객체가 거의 움직이지 않으므로 correspondence는 직관적입니다. 누군가가 잠을 자고 있는 영상을 보고 있으면 잠을 자고 있는 사람은 거의 움직이지 않을 것이고 프레임 마다 visual invariant한 요소를 supervised metric learning으로 포착할 수 있습니다.

 

 하지만 동적인 영상에서 객체는 급격하게 변화할 것이고 correspondence를 찾는 것은 매우 어려울 것입니다. visual invarince를 포착하는 것은 track을 학습하는 것이 필요하기 때문입니다. 이 tracking은 모델의 visual invariance에 의존해야 하므로 강인한 모델이 필요합니다.

 

 

 이 논문은 프레임의 시작과 끝 점 사이의 inconsistenct를 손실 함수로 사용하고, 객체를 backward, forward로 tracking 함으로써 correspondence를 획득해 supervision 신호로 사용합니다. 이게 어떤 말인지는 Method를 자세히 살펴봐야지 이해할 수 있습니다.

 

 해당 논문은 conv layer가 생성한 학습된 feature space에서 template-matching으로 tracking을 수생합니다. cycle-consistent loss를 최소화하기 위해 모델은 frame을 걸쳐서 correspondence를 식별하는데 도움을 주는 feature representation을 학습해야 합니다. 이 feature이 향상된다면 tracking 성능도 향상됩니다. feature space에서 correspondence를 학습하는 것은 local transformation의 visual similarity metric tolerant를 생성해야 합니다.

 

 논문은 cycle-consistency를 기반으로 손실함수를 구현하는데 제약 조건 없이 이를 학습하는 것은 단점이 존재합니다. 전혀 움직이지 않는 물체의 correspondence는 내제적으로 cycle-consistent 합니다. 이를 피하기 위하여 tracker가 연속적인 프레임에서 다음 patch를 re-localize 하도록 합니다.

 

 추가적으로 cycle-consistenct는 객체의 가려짐 혹은 pose의 갑작스러운 변화에 의하여 포착되지 않을 수 있습니다. 이 문제를 해결하기 위해 frame을 skip하는 skip-cycle을 제안합니다. 한 프레임에서 객체가 벽뒤로 숨어서 가려질 수 있는데 이 경우에 cycle-consistency loss는 엉망이 됩니다. 이 프레임을 skip하여 제대로된 cycle-consistency를 학습하도록 하는 것입니다.

 

 마지막으로 shorter cycle은 학습하기가 쉽습니다. 따라서 여러 종류의 cycle을 동시에 학습합니다.

 

Method

 

 It 로부터 파랑색 패치를 역으로 tracking 한 후, 다시 원래 위치로 forward tracking하여 생성한 patch와 초기의 파랑색 패치 사이의 consistency loss(euclidean distance)를 최소화 합니다.

 

 위 그림에서 $\phi$는 현재 frame에서의 80x80 크기으 iamge patch와 이전 frame의 240x240 크기의 전체 이미지를 입력 받아 cx10x10 크기의 feature map, cx30x30 크기의 feature map을 출력합니다. $\phi$는 conv layer로 이루어져 있습니다.

 

 T는 tracking 모듈 입니다. $\phi$가 출력한 feature map을 기반으로 tracking을 수행합니다.

 

T tacking 모듈은 (1) Affinity function, (2) Localizer, (3) bilinear sampler로 이루어져 있습니다.

 

(1) Affinity function

 affinity function은 현재 프레임의 패치의 feature map과 이전 프래임 전체 이미지의 feature map 사이의 유사도를 계산합니다. 계산한 유사도 행렬은 localizer에서 사용됩니다. 유사도 행렬의 차원은 900x100 입니다.

 

 

(2) Localizer

 900x100 크기의 유사도 행렬 A를 입력 받아 1x1x3 차원의 localization parameter $\theta$를 출력합니다. 유사도 행렬 A를 900x10x10으로 reshape를 한 뒤 2개 conv layer와 1개 fc layer를 거쳐서 3개의 파라미터를 출력합니다.

 

(3) Bilinear Sampler

 localizer에서 출력한 localization parameter와 이전 프레임의 전체 이미지 feature map을 입력 받아 localization을 수행합니다. 현재 프레임의 이미지 패치가 이전 프레임 이미지에서 어느 위치에 존재하는지 localization합니다. cx30x30 크기의 이전 프레임 전체 이미지 feature map과 3차원 localization parameter를 입력 받아 cx10x10 feature map을 생성합니다.

 

Loss function은 3가지 loss로 이루어져 있습니다.

 $\lambda$는 0.1을 사용합니다.

 

(1) Tracking loss

 

 backward, forward cylce를 수행한 뒤 localize한 image patch와 기존 image patch 사이의 euclidean distance를 계산합니다. 

 

(2) Skip Cyle

 

 frame 중간에 객체가 가려질 수 있습니다. 이 문제를 해결하기 위해 skip cycle을 제안하는데 longer-range matching에 도움을 줍니다.

 

(3) Feature Similarity

 

 현재 프레임에서 image patch와 이전 프레임에서 localize한 image patch 사이의 유사도를 계산합니다.

 

 

 

 

Experiment

 

 여러 task에서 좋은 성능을 보여줍니다.

 

 


my github

 

Seonghoon-Yu/Paper_Review_and_Implementation_in_PyTorch

공부 목적으로 논문을 리뷰하고 해당 논문 파이토치 재구현을 합니다. Contribute to Seonghoon-Yu/Paper_Review_and_Implementation_in_PyTorch development by creating an account on GitHub.

github.com

 

반응형