[CVPR 2021] Self Supervised Learning for Semi-Supervised Temporal Action Proposal

Before Review

이번 논문 리뷰는 Semi-Supervised 형식의 Temporal Action Proposal 논문을 가져왔습니다. 현재 비디오 팀에서 연구하고 있는 방향이

  • Untrimmed Video를 가지고 ForeGround와 BackGround를 효과적으로 구분해내는 방법론
  • labeling된 Data가 아니더라도 , 위의 작업을 수행할 수 있는 Semi-supervised 혹은 self-supervised 방법론

이렇게 두 가지 입니다. ForeGround를 구분해주는 작업은 보다 더 효과적인 정보들만 사용을 해주기 위함이고 , Supervised가 아닌 방식을 찾아보는 이유는 결국 비디오 데이터는 어노테이션의 과정에서 소요되는 자원이 너무 많기 때문에 , 필연적으로 Semi-Supervised나 , self-supervised 방향으로 가야하는 것 같습니다.

그래서 이번에 준비한 논문은 Semi-Supervised와 Self-Supervised 기반의 Temporal Action Proposal 논문으로 , Labeled Data와 Unlabeled Data를 동시에 사용하면서 , 어느 구간이 Action인지 분류하는 방법론입니다.

기존의 fully-supervised 방법론이랑 , semi-supervised 방법론을 능가하는 성능을 보여주는 대단한 framework가 등장한 것 같습니다. Code도 공개가 되어있고 , 지금 찾아보려고 하는 방향이랑 일치하는 논문인 것 같아 , 실제 Code를 가지고 다양한 실험을 진행해보려고 합니다.

Introduction

Temporal Action proposal 방법론은 이전에 제가 다루었던 Temporal Action Localization 랑 비슷한 면이 있습니다. 조금 더 단순한 task를 진행하는 데 , Action(ForeGround)인 것 같은 구간을 Localization 하는 작업으로 Action의 Label이 무엇인지는 예측하지 않습니다.

위의 Task를 수행할 때 , Supervised 기반의 방식은 엄청난 양의 Annotation을 필요로 합니다. Frame Level로 이 Frame이 무슨 action인지 라벨링이 필요하며 , BackGround인 Frame도 따로 구분을 해주어야 합니다. 점점 미디어 콘텐츠 시장의 발달로 인해 Video Retrieval이나 , Temporal Action Localization 분야에 대한 필요성이 증가할텐데 어노테이션된 비디오 데이터셋은 그리 많지 않습니다. 그렇다고 필요할 때 마다 어노테이션을 직접하는 작업은 상당한 시간과 비용을 요구하는 일입니다.

따라서 Labeling된 데이터 셋에 대한 의존도를 낮추는 것은 필연적인 흐름인 것 같습니다. 처음으로 Semi-Supervised 방식의 Temporal Action Proposal 방법론이 제안된 건 Learning Temporal Action Proposals With Fewer Labels 논문으로 2019년에 나왔다고 합니다. 저 논문을 읽어보진 않았지만 Mean Teacher Framework를 사용했다고합니다.

또 다른 패러다임은 Self-Supervised 방식입니다. 비디오 관련 task에서 나름의 성과가 있었지만 , Self-Supervised 방식이 Temporal Action Proposal에는 한번도 적용이 되지 않았다고 합니다.

이에 본 논문의 저자는 본인들이 처음으로 Self-Supervised 방식과 Semi-Supervised 방식을 결합한 하나의 framework(SSTAP)를 제안했다고 합니다.

본 논문을 이해하기 전에 알아야 하는 몇 가지 개념들을 살펴보고 SSTAP에 대해 얘기해보도록 하겠습니다.

Preliminaries

여기서는 Semi-Supervised 기반의 방법인 Teacher-Student Frame work 가 무엇인지 알아보도록 하겠습니다.

Mean Teacher Framework

Mean Teacher Framework에서는 student model 과 teacher model이 존재하는 데 , 이 두개의 model은 동일한 neural network로 구성이 되어 있습니다. student model은 labeled data를 통해서 구한 supervised loss가지고 weight를 update 해주게 되고 , teacher model은 student model의 weight를 exponential moving average (EMA)를 취해서 weight를 update 해주는 데 수식은 아래와 같습니다.

\theta^{(teacher)}_{{}t} =\alpha \theta^{(teacher)}_{t-1} +(1-\alpha )\theta^{(student)} 

student model의 weight를 재귀적으로 계산해서 , teacher model에 적용한다고 보시면 됩니다.

Mean teachers are better role models

여기서 , Student model은 Supervised Loss를 만들어내는 동시에 , Teacher model과 얼마나 일관성이 있는 지 , Consistency Loss를 또한 만들어내서 전체 Framework의 학습이 이루어집니다. 이러한 Framework가 SSTAP Semi-Supervised Branch에서도 적용이 됩니다.

SSTAP

위의 그림이 SSTAP의 overview를 보여주는 그림입니다. Labeled Video와 Unlabeled Video를 둘 다 사용하고 있으며 Feature Encoding 과정을 거친후에 2가지의 Branch로 나뉘고 있습니다.

위쪽 Branch는 Temporal-aware Semi-Supervised Branch로 Encoding된 Feature를 가져와서 Temporal feature flip , Temporal feature shift라는 어떠한 변화를 가해준 뒤 Base Module이라는 곳에 입력으로 넣어준 뒤 , Mean-Teacher Framework를 통해 Output을 만들어내고 , Loss를 계산해주고 있습니다.

아래 Branch는 Relation-aware Self-Supervised Branch로 똑같이 Encoding된 Feature를 가져오지만 여기서는 Labeling되지 않은 Data만 사용해서 Feature를 얻어줍니다. 그 후에 Feature에 Random Masking , Feature Clip Shuffle라는 변화를 가해준 뒤 Base Module이라는 곳에 입력으로 넣어주고 최종적으로 Maksed feature Reconstruction , Clip order prediction이라는 Task를 수행하면서 Loss를 만들어냅니다.

간략하게 전체적인 흐름에 대해서 설명을 드렸고 , 두개의 Branch내에서 Feature에다가 어떠한 perturbation을 가해주고 있습니다. perturbation이란 작은 변화를 가해 , 전체 시스템에 큰 영향을 초래하는 그러한 변화를 의미한다고 합니다. 자세한 이야기는 이어서 바로 하도록 하겠습니다.

그리고 Base Module은 아래와 같습니다. Boundary Matching Network(BMN) 에서 사용한 BaseModule을 조금 더 확장해서 설계했다고 합니다.

자 그럼 이제 두개의 Branch가 있다는 사실은 알았으니 , 각각의 Branch에서 무슨일이 일어나는 지 알아보도록 하겠습니다.

Problem Description & Feature Encoding

Input Data는 Untrimmed Video를 입력으로 받아옵니다. 본 논문의 목적은 Untrimmed Video 내부에 있는 Action Instance들의 위치를 비교적 적은 Annotation Label로 예측하는 것 입니다. 다시 한번 얘기하지만 , Action의 Class는 신경쓰지 않고 , Action의 구간만 예측하는 작업입니다.

Feature Encoding은 two-stream network 여기서 제안된 구조를 사용하여 , Feature를 추출했다고 합니다.

S=\{ s_{n}\}^{l_{S}}_{n=1}  Untrimmed Video sequence들이 이렇게 있을 때 각각의 Sequence들을 , 중첩되지 않게 \sigma 개의 frame을 포함하도록 나누어줍니다.

그럼 각각의 Sequence는 T=\frac{l_{s}}{\sigma }  T개의 sampling된 Segment들을 가지게 됩니다.

이 Segment를 two-stream network 에 넣어주면 , \phi =\{ \phi_{t_{n}} \}^{T}_{n=1} \in R^{T\times C}의 visual feature를 얻을 수 있게 됩니다. 여기서 C는 Encoding된 feature의 차원이라 보시면 됩니다.

Temporal-aware Semi-Supervised Branch

위에서 잠깐 설명 드린것 처럼 , 여기서는 Mean Teacher Framework를 가지고 진행이 됩니다. 이때 , Student Model에 들어가는 입력에는 Temporal feature shift , Temporal feature flip이라는 Perturbation이 적용되는 데 , 각각이 무엇인지는 그림으로 보면 더욱 이해가 쉬울 것 같습니다.

Temporal feature shift는 비디오 feature의 시간 축을 따라 랜덤하게 몇몇 채널을 양방향으로 이동시키는 작업입니다. 비어지는 곳은 zero-padding을 진행해주고 , 넘어가는 곳은 그냥 버려줍니다. Temporal feature flip은 우리가 이미지 flip을 했던 것 처럼 , feature를 flip하는 것입니다.

이러한 작업이 저자는 Data Augmentation 느낌으로 좀 더 다양한 Feature를 제공하면서 , Temporal 축으로 Robust한 학습을 도와준다고 합니다.

이제 , Loss는 어떻게 구하는 지 살펴보면 , Labeled sample을 가지고는 Supervised Loss를 잘 정의할 수 있습니다. 하지만 Unlabeld sample에 대해서는 Supervised Loss를 구할 수 없으니 , consistency loss(L2-loss)를 가지고 처리를 해주게 됩니다. Consistency Loss는 Labeled data와 Unlabeld data 둘다에 적용이 되게 됩니다. Loss에 대해서는 자세한 설명을 하고 있지는 않아서 이정도로만 얘기를 할 수 있을 것 같습니다.

L_{semi}=L_{supervised}+\lambda_{1} L_{shift}+\lambda_{2} L_{flip} 이고 이때 , L_{shift}L_{flip}은 consistency loss로 계산해준 것입니다.

Relation-aware Self-Supervised Branch

여기서는 Self-Supervised 기반의 Task들이 수행되는 Branch입니다. Masked feature reconstructionClip-order prediction을 진행해주는 데 , 각각이 무슨 Task인지 그림으로 살펴보도록 하겠습니다.

Feature Clip Shuffle은 Feature들의 순서를 임의로 섞었다가 , 올바른 Feature Clip의 순서를 예측하는 작업으로 , classification task로 진행이 됩니다.

가장 높은 확률의 순서를 가지고 예측을 해서 , Order Loss를 구해주고 , 이러한 작업을 통해서 단순히 시간 순서대로 였던 Feature에 변화를 줘서 , 좀 더 discriminative한 temporal representation을 학습하게 된다고 합니다.

Random Masking은 feature의 시간 축에서 , 어떤 시간 point의 feature를 지웠다가 다시 올바르게 복원하는 작업으로 써 Rregression task로 진행이 됩니다.

자세하게 서술을 하고 있지는 않아서 어떻게 Reconstruction이 일어나는지는 나와있지 않지만 , 이를 통해서 temporal semantic relation을 학습할 수 있게 된다고 합니다.

전체 Loss는 Semi-Supervised Loss와 Self-Supervised Loss로 구성됩니다.

L_{total}=L_{semi}+\lambda_{3} L_{reconstruction}+\lambda_{4} L_{order}

이때 L_{reconstruction}는 L-2 Loss를 사용했고 , L_{order}는 CrossEntropy를 사용했습니다.

이렇게 Jointly하게 Semi-Supervised 방식과 Self-Supervised의 방식을 End to End 방식으로 학습할 수 있는 Framework가 제안 되었습니다.

Experiments

우선 , 데이터셋은 THUMOS’14ActivityNet v1.3 을 사용했다고 합니다. 참고로 본 논문의 저자는 본인들이 제안한 방법이 feature – agnostic (feature에 상관 없는)을 보이기 위해 activitynet 으로 fine tuning 되지 않고 Kinetics로 Pretrained 된 I3D feature 또한 사용했다고 합니다. Boundary Matching Network(BMN)과 똑같은 전처리를 진행하였고 , 동일하게 Soft-NMS를 적용했다고 합니다.

Temporal Action Proposal Generation

Temporal Action Proposal Task의 목적은 action instance를 포함하는 Proposal을 만드는 것이며 , Ground Truth와 가능하면 overlap이 높게 끔 , 즉 Recall이 높게 끔 Inference하는 것이 목적이라 보시면 됩니다.

Average Recall(AR)을 metric으로 사용하며 , 다양한 IoU threshold를 가지고 측정하게 됩니다. 또한 Average Number of proposals (AN) 을 같이 사용하여 AR@AN을 metric으로 사용해줄 것인데 AN이 클 수록 후보 Proposal들을 많이 만들어서 Inference했다고 보시면 될 것 같습니다.(따라서 Recall이 더 높겠죠?)

  • Comparsions with fully-supervised methods

먼저 , Supervised 방법론들과 비교 입니다.

ActivityNet v1.3의 validation 데이터셋을 가지고 기존의 Supervised 기반의 Temporal action proposal 방법론들과 비교입니다. 뒤에 @60%는 라벨링된 데이터를 60%만 사용했다는 의미입니다.

인상 깊은 점은 본 논문에서 제안된 SSTAP로 60%의 라벨링 데이터만 사용했을 때의 성능이 BMN@100%보다 조금 더 높게 측정되었다는 점입니다.

THUMOS’14 데이터셋을 가지고 비교한 Table입니다. 마찬가지로 좋은 성능을 보여주고 있고 SSTAP 방법론이 labeling된 데이터를 더 사용할 수록 성능이 좋아지는 것 또한 확인할 수 있습니다. 테이블에는 나와있지 않지만 , I3D feature를 사용했을 때도 성능이 잘 나온다고 합니다. 이를 통해 본 논문에서 제안된 SSTAP 방법론이 feature-agnostic 하다고 얘기하고 있습니다.근데 이렇게 얘기하려면 성능 테이블을 줘야 하는거 아닌가..?

무튼 , SSTAP가 비교적 더 적은 annotation된 데이터를 가지고 기존의 Supervised 방식의 성능을 뛰어넘는 결과를 확인할 수 있었습니다.

  • Comparsions with semi-supervised baselines

이거는 Semi-Supervised 방법론들과의 비교입니다. fair comparison을 위해 동일한 video feature와 post-processing을 거쳤다고 합니다.

SSTAP가 다른 Semi-Supervised 방법론들과 비교했을 때 가장 좋은 성능을 보여주고 있습니다.

Ablation Study

본 논문에서 제안된 components 들이 성능향상에 도움이 되는지를 분석한 Table입니다.

  • F : Temporal feature flip
  • R : masked feature reconstruction
  • C : clip-order prediction
  • S : temporal feature shift

우선 , 모든 Components를 사용했을 때 가장 좋은 성능이 나왔지만 , 다른 조합의 경우는 뭔가 성능이 왔다갔다 하는 거 같습니다.

위의 Table은 self-supervised branch의 효과를 확인하기 위함입니다. BMN에서 clip-order prediction , masked feature reconstruction 을 각각 추가했을 때 성능 향상을 확인할 수 있습니다.

Action Detection with SSTAP

SSTAP가 만들어낸 Proposal을 가지고 , Temporal Action Localization의 성능을 측정했다고 합니다. SSTAP가 만들어낸 Proposal + BMN의 classification 부분을 결합하여 성능을 냈다고 합니다. 테이블을 확인하면 알겠지만 , 100%의 labeling된 데이터를 사용하면 SOTA의 성능을 내고 있고 , 60% 정도만 사용해도 좋은 성능을 보여주고 있습니다.

Generalization Experiments

SSTAP framework가 BMN 말고도 다른 architecture에서 잘 작동하는 지 증명하기 위해 SSTAP에 G-TAD framework 를 결합했다고합니다.

기존 G-TAD의 성능보다 SSTAP framework를 결합하니 더 성능이 향상된 것을 확인할 수 있습니다.

Conclusion

우선 , Semi-Supervised와 Self-Supervised의 개념을 동시에 적용해서 비교적 labeling 된 data가 적은 상황에서도 SOTA의 성능을 보여주는 Framework를 제안한 것은 정말 대단한 것 같습니다. 또한 많은 실험 결과를 보여줌으로써 SSTAP framework의 효과를 다양하게 보여준 것이 본 논문의 중요한 Contribution인 것 같습니다.

이제 직접 코드 가지고 , 가지고 있는 데이터셋들로 어느정도의 성능이 나오는 지 확인을 해보려고 합니다. SSTAP는 action dataset만 가지고 진행했는 데 , object나 , 사건 중심 데이터셋에서는 어떤 경향성을 보여주는 지 확인하려고 합니다.

이전에 Temporal Localization 논문들을 찾아봤을 때는 Supervised가 대다수 였는 데(16~18년도 논문) 최근 논문의 동향을 살펴보니 거의 다 Weakly Supervised , Semi-Supervised의 방법론들이 많이 나와있었습니다. 아무래도 Frame level로 어노테이션이 된 Video Dataset은 한정적이고 , 새롭게 만들려면 비용이 많이 드니 , 이러한 흐름은 자연스러운 흐름인 것 같습니다.

Video Retrieval이나 , Temporal Action Localization에서 Supervised가 아닌 접근은 어떻게 진행이 되고 있는 지도 한번 살펴봐야 겠습니다. 리뷰 읽어주셔서 감사합니다.

Author: 임 근택

1 thought on “[CVPR 2021] Self Supervised Learning for Semi-Supervised Temporal Action Proposal

  1. Framework 그림에는 class를 예측하는 부분만 나와있는 듯 한데 Inference 시 Proposal을 predict 할 때 untrimmed video 내에서 어느 위치인지는 어떻게 예측하나요?
    그리고 G-TAD를 같이 사용한 실험 부분에서 Label이 적을 때는 SSTAP+G-TAD가 확실히 더 좋은 성능을 보이나 Label을 모두 사용한 Supervised learning task의 IoU threshold가 좀 더 tight한 구간에서는 SSTAP를 사용했을 때 오히려 성능 하락이 있는 것으로 보입니다. 이 결과에 대한 논문의 분석이 따로 있다면 알려주시면 감사드리겠으며 본인이 생각했을 때 어떤 부분이 이러한 성능 하락을 이끌었다고 생각하시나요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다