논문 읽기/Self-Supervised

[논문 읽기] Contrastive Transformation for Self-supervised Correspondence Learning(2020)

AI 꿈나무 2021. 8. 25. 17:58
반응형

Contrastive Transformation for Self-supervised Correspondence Learning

 PDFVideo SSL, Ning Wang, Wengang Zhou, Houqiang Li, AAAI 2020

 

Summary

 

 video내에 존재하는 temporal consistency를 correspondence matching 으로 학습하기 위해 image domain에서 사용하는 Contrastive Learning을 video domain에 적용합니다.

 

 image domain 에서 단일 image에 augmentation을 적용한 image를 positive, 다른 image의 augmentation view는 negative로 정의하여 NCELoss를 사용합니다. 어떻게 video domain에 적용할 수 있을 까요?

 

 해당 논문에서 video에는 strong augmentation을 적용하지 않습니다. video내에 존재하는 temporal content consistency reside를 활용하기 때문입니다. strong augmentation을 적용한다면 temporal content consistency가 사라질 수 있습니다. 

 

 

 positive와 negative는 어떻게 정의할까요?

 

 다른 video의 reference frame을 negative로 사용합니다.

 

 reference frame의 random patch와 target frame 사이의 patch-to-frame affinity를 계산하고 평균 좌표로 tracked target center를 측정하여 target patch를 tracking합니다.

 

 tracking한 patch와 reference patch으로 image pair를 얻고 fined-graied affinity를 계산합니다.

 

 

 affinity matrix는 image를 encoder로 전달한 embedding로 계싼합니다. 계산한 affinity와 target frame을 decoder로 전달하여 patch를 tracking하는데 encoder와 decoder은 사전학습된 resnet18을 사용합니다.

 

 배치 사이즈가 16이라면 1개의 positive와 15개의 negative가 생성됩니다. 16개의 affinity matrix를 concat하여 inter-video affinity를 계산하는데, 이는 concaternation of reference feature 입니다.

 

 

 

 

 positive affinity는 intra-video affinity와 동일해야하고 negative affinity는 zero-matrix가 되도록 학습해야 합니다.

 

 학습을 위해 다음의 Loss를 계산합니다. loss의 목적은 negative affinity는 0으로, positive affinity는 intra affinity와 동일해지도록 하는 것입니다.

 

 

 

 $L_{others}$는 Joint-task self-supervised Learning for Temporal Correspondence에서 사용하는 여러 정규화 방법을 의미합니다. (cycle consistency, orthogonal regularization, concentration regularization)

 

 

 infernece시에 affinity matrix에 정규화를 추가합니다.

 

Experiment

 


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

 

반응형