[2023 AAAI] Towards Global Video Scene Segmentation with Context-Aware Transformer

Before Review

이번 논문 리뷰는 Video Scene Segmentation이라는 주제로 준비했습니다. (GNN Part.2에 대한 리뷰는 다음주로 미루도록 하겠습니다.)

본 논문과 동일한 task를 진행하는 다른 리뷰들은 아래에 있으니 참고하시길 바랍니다.

개인적으로 이번 논문도 좀 아쉬운 부분이 있습니다. Task 자체가 아직 연구가 활발하게 이루어지지 않았다 보니 논문 자체도 큰 contribution 없이 accept이 되는 것 같네요.

리뷰 시작하겠습니다.

Introduction

비디오 데이터에서 장면(Scene)이라는 것은 영화나 티비 프로그램에서 발생하는 스토리 라인의 의미론적 단위라 할 수 있습니다. 사람들은 장면을 이해하고 장면과 장면 사이의 관계를 바탕으로 영상 매체의 스토리 라인들을 이해하게 되는 것이죠. 결국 장면(Scene)이라는 것은 비디오 데이터를 이해함에 있어 중요한 역할을 합니다.

Video Scene Segmentation이라는 Task는 이러한 비디오를 구성하는 Scene을 구별하는 작업을 의미합니다.

위의 그림을 보면 Shot이 모여서 Scene을 형성하고 있습니다. Shot은 하나의 카메라로 멈춤 없이 원 테이크로 찍은 구간을 의미합니다. 그렇기 때문에 Shot은 시각적 유사도만을 가지고 구분을 할 수가 있습니다. 하지만 Scene은 shot들이 모여서 만들어지는 의미론적 unit 입니다. .

위의 그림 (a)를 보면 남녀가 통화를 하는 장면이 나오고 있습니다. 같은 장면 내에서 visual 적으로 다른 shot들이 존재하고 있습니다. 그림 (b)를 보면 노란색 boundary를 기준으로 장면이 바뀌고 있습니다. 앞의 장면에서는 의료진과 환자가 대화를 하고 있는 것 같은데 뒤의 장면에서는 아예 공간이 바뀐 것 같습니다. 하지만 장면이 바뀌었지만 visual clue는 비슷합니다. 하지만 contextual 적으로는 다르기 때문에 둘은 서로 다른 장면 입니다. (이 부분은 지난 리뷰의 글을 발췌했습니다.)

미디어 플랫폼 시장이 성장 (유튜브, 넷플릭스 등등) 하면서 이러한 비디오 데이터를 분석하는 작업에 대한 수요는 늘어가고 있으며 Video Scene Segmentation에 대한 관심은 점점 늘어가고 있습니다.

제가 이전에 자주 리뷰했던 Temporal Action Localization이란 연구도 길이가 긴 비디오를 Human Action 관점에서 이해하는 작업이었습니다. 여전히 자주 연구되고 있지만 제가 여기서 소개하는 Video Scene Segmentation 과는 조금 다른 점이 있습니다.

Temporal Action Localization에서 비디오를 분할 하는 unit은 Human Action 입니다. 보통은 사전에 정의된 Action Category에 대해서만 검출을 하게 됩니다. 특정한 상황에서는 유용할 수 있지만 일반적인 상황은 아니긴 합니다. 사전에 정의된 클래스에 대해서만 작동하고 Human Action에만 집중하기 때문에 유연하다고는 볼 수 없습니다.

Video Scene Segmentation은 단순히 비디오가 들어오면 특정한 카테고리로 분류하는 것이 아니라 서로 다른 장면과 장면을 구분하는 작업만을 수행합니다. 이렇게 분할된 장면을 통해서 다양한 Down-Stream Task를 위한 기반을 제공할 수 있는 연구라 볼 수 있습니다.

무튼 이렇게 Video Scene Segmentation에 대한 소개를 드렸습니다. 논문에서는 이렇게 자세히 나와있지는 않습니다.

무튼 이러한 Video Scene Segmentation을 할 때 어려운 것이 바로 context modeling 입니다. 위에서도 설명을 드렸지만 shot은 하나의 카메라로 멈춤 없이 원 테이크로 찍은 구간이기 때문에 시각적 유사도만을 가지고 구분을 할 수가 있습니다. 하지만 scene은 shot들이 만들어내는 temporal context를 이해해야 정교한 구분이 가능하기 때문에 context modeling 능력이 중요하게 작용합니다.

저자는 이러한 context modeling을 위해 Transformer 구조를 활용한 Global-Local Attention 방법을 제안합니다. 거창하긴 하지만 그냥 Transformer 그대로 가져다 썼다고 보시면 됩니다.

Local Attention은 고정된 윈도우 사이즈 만큼의 shot을 참조해서 attention을 주는 것이고 Global은 모든 shot을 활용하여 attention을 주는 방법을 의미합니다.

사실 이게 전부이긴 하지만 그래도 method 부분에 가서 좀 더 자세히 얘기해보도록 하겠습니다. 방법론적인 contribution을 적은 것 같지만 그래도 성능 부분에서는 공정한 비교 내에서 SOTA를 달성해주고 있다고 합니다.

Proposed Method

제안하는 방법은 크게 두가지로 나뉩니다. Context-Aware Transformer 그리고 Self-Supervised Training 부분 입니다. 개인적으로는 두 부분에서 저자의 Contribution으로 볼 수 있는 부분은 거의 없다라고 정리할 수 있습니다.

Context-Aware Transformer

Shot Encoder

Shot Encoder는 ImageNet으로 사전 학습된 ResNet50을 사용합니다. 왜 이렇게 사용하는지 궁금해서 찾아보다가 [CVPR 2021] Shot Contrastive Self-Supervised Learning for Scene Boundary Detection 에서 Computational Cost 때문에 3D Encoder가 아닌 2D Encoder로 박아버려서 후속 연구들이 그대로 따라 하는 듯 합니다.

  • f_{e}(v_{t})\in \mathbb R^{d}

Shot은 결국 key frame들로 구성이 되어 있습니다. 이 key frame들을 2D Encoder 태워서 feature로 기술하고 shot에 대한 feature를 만드는 것이죠.

Local Encoder

Shot Encoder를 통해서 우리는 비디오를 shot 들의 feature로 정의할 수 있습니다.

  • \bar{v}=[f_{e}(v_{1}),f_{e}(v_{2}),\ldots ,f_{e}(v_{T-1}),f_{e}(v_{T})]\in \mathbb R^{T\times d}

이때 Local Encoder는 고정된 사이즈 L 만큼의 shot들만을 참고하여 self-attention을 진행합니다. 즉, Query와 Key간의 dot-product를 할 때 마스킹을 이용하여 attention weight를 생성한다고 보시면 됩니다.

위의 수식은 Self-Attention의 구조를 그대로 활용하고 있습니다. 학습 가능한 matrix를 이용하여 Query, Key, Value를 생성해주고 Query와 Key 간의 Dot Product를 통해 attention weight를 만들어주지만 이 때 사이즈가 L에 해당되면 1, 아니면 0인 마스크(M)를 만들어 local attention weight를 생성합니다. 생성된 attention weight를 softmax 함수에 넣어서 0~1로 mapping 시킨 다음에 value 값에 곱해주고 있네요.

위의 디테일한 내용은 그렇게 중요하지는 않지만 혹시나 궁금해 하실 분이 있을 것 같아 논문에 나와있는 내용을 발췌했습니다.

Global Encoder

Local Encoder는 고정된 윈도우를 활용하여 인접한 shot 끼리의 context를 modeling 하였습니다. Global Encoder는 그럼 어떻게 진행될까요? 네 당연히 고정된 윈도우를 치우면 Global Encoder가 짜잔~ 하고 완성 됩니다.

여기서 A_{g}=\frac{Q_{g}K^{T}_{q}}{\sqrt{d_{N_{g}}} }  : attention weight를 만들 때 마스크가 사라진 것을 볼 수 있습니다. 비디오를 구성하는 shot 전체를 참고하여 attention 연산을 해주고 있습니다.

정리하면 Local Encoder는 인접한 shot 끼리의 local dependencies를 모델링할 수 있도록 기대하고 (intra-scene shots) Global Encoder는 Local Encoder에서 놓친 dependencies를 모델링할 수 있도록 기대하는 (inter-scene shots) 것이라 볼 수 있습니다.

  • \hat{v} =f_{t}\left( \bar{v} \right)  =[\hat{v}_{1} ,\hat{v}_{2} ,\ldots \hat{v}_{T-1} ,\hat{v}_{T} ]\in \mathbb R^{T\times d}

여기서 \hat{v}_{i}는 Local-Global Attention이 적용된 shot representation이고 f_{t}Context-Aware Transformer(이하 CAT) 모듈 입니다.

PreTraining Objectives

아래에서는 4가지 사전 학습 전략에 대해서 소개드릴 예정입니다. 근데 [2022 ACCV] Boundary aware Self Supervised Learning for Video Scene Segmentation 여기서 제안된 전략이 거의 그대로 사용되었다 봐도 무방합니다. 본 논문의 Contribution은 어디에 있을까요..

Shot Masked Modeling (SMM)

[2022 ACCV] Boundary aware Self Supervised Learning for Video Scene Segmentation 여기서 제안된 MSM(Masked Shot Modeling) 모듈과 동일합니다. (이름만 바꾸면 누가 속을 줄 알았냐!!)

random 하게 15% 정도에 해당되는 shot을 masking 한다음에 reconstruction 하는 loss를 통해 pre-training을 진행합니다. 여기서 h_{smm}는 regression head로 3개의 MLP Layer로 구현하였다고 합니다.

Shot Order Modeling (SOM)

다음으로는 shot 들의 순서를 섞어서 원래의 순서를 예측하는(분류 문제) loss를 통해 pre-training을 진행합니다. 비디오 분야에서 이렇게 순서를 바꾸고 원래의 순서를 맞추는 전략은 너무나도 많이 활용이 돼서 이것 역시 저자가 제안하는 특별한 모듈은 아닙니다.

Order Modeling을 활용하는 논문의 레퍼런스를 가져오라고 시킨다면 저는 당장 5개 정도가 떠오르네요. 그만큼 흔하게 사용되는 모듈이라 이 부분에서도 저는 Contribution이 있다고는 생각이 들지 않네요.

Global Scene Matching (GSM), Local Scene Matching (LSM)

아래의 Global Scene Matching, Local Scene Matching의 학습 구조 역시 [2022 ACCV] Boundary aware Self Supervised Learning for Video Scene Segmentation 여기서 제안된 SSM(Shot Scene Matching) 모듈과 동일합니다.

BaSSL에서는 서로 같은 장면과 다른 장면을 구분하기 위해 Dynamic Time Warping을 이용한 Pseudo Boundary를 정의합니다.

본 논문에서는 그것보다 훨씬 더 간단하게 정의를 하고 있습니다. 임의의 shot \bar{v}_{t}를 center shot이라 두면 P 길이 만큼으로 인접한 shot들의 집합을 아래와 같이 c_{t}로 정의할 수 있습니다.

  • c_{t}=\left\{ \bar{v}_{t-\left( P-1\right)  /2} ,\ldots ,\bar{v}_{t} ,\ldots ,\bar{v}_{t+\left( P-1\right)  /2} \right\}  

그리고 shot 끼리의 코사인 유사도를 바탕으로 thresholding을 하여 scene을 구분하고 있습니다.

  • cos\left( \bar{v}_{j} ,\bar{v}_{t} \right)  <\mu 

자세한 알고리즘의 디테일은 supple에 있다고 해놓고선 supple을 어디서 찾아보라는 건지.. AAAI 시스템 문제 인지 저자가 공개를 안 한것인지는 모르겠지만 참 답답하네요.

아무튼 저자가 제안하는 특별한(?) 알고리즘에 의해서 임의의 시간 t에 대해서 thresholding을 거치면 left scene, right scene (Q^{left}_{t},Q_{t},Q^{right}_{t})으로 구분할 수 있습니다.

우리가 pseudo boundary를 찾았으니 이제 서로 다른 scene에 대해서 임시로 구분을 할 수 있게 됐습니다. 여기서 이제 할 수 있는 가장 간단한 Self-Supervised Learning은 Contrastive Learning 입니다. 같은 scene에 있는 shot representation은 similarity가 유사해지도록 만들고 다른 scene에 있는 shot representation은 similarity가 멀어지도록 만드는 것이죠.

이때 저자가 제안하는 Global, Local 구조는 pair를 구성할 때 sampling을 Local하게 할 것이냐, Global하게 할 것이냐의 차이 입니다.

개인적으로는 Supplementary가 공개되어서 Pseudo Boundary 찾는 알고리즘이나 한번 보고 싶네요. (저자에게 연락은 해놓았습니다.)

이렇게 Context-Aware Transformer(CAT)를 통해 attention을 주고 4가지의 사전학습 전략을 통해 unlabeled video를 활용한 self-supervised learning을 알아보았습니다. 정말로 제가 오바해서 글을 부정적으로 쓰는게 아니라 저자가 새롭게 제안하는 부분이 하나도 없다는 것이 많이 실망스럽습니다.

Experiments

실험 섹션은 크게 Benchmark, Ablation, Visualization으로 구성이 되어 있습니다. 성능을 SOTA 찍은거 말고는 인상 깊은 부분이 없었습니다.

우선 M.S와 M.S-318의 차이를 알아보도록 하겠습니다.

  • M.S는 MovieNet이라는 데이터에서 150개의 annotation 비디오만을 활용한 것 입니다.
  • M.S-318은 MovieNet이라는 데이터에서 318개의 annotation 비디오만을 활용한 것 입니다.

SSL 방법론들이 Pretrain을 할 때 Train+Text+Val의 경우는 1100개의 MovieNet 비디오를 annotation 없이 활용한 것을 의미합니다.

지도 학습의 경우 Train Data가 M.S로 굉장히 적은 양을 가지고 진행하기 때문에 성능이 대체로 낮은 상황입니다. 웃긴게 SSL 가장 기본 베이스라인 성능이 지도학습 가장 좋은 성능보다 높게 나오는 상황입니다. 벤치마킹에 굳이 포함해야 되는지에 조금 의문이 드네요.

중요한 건 SSL(ShotCoL, SCRL, BaSSL, CAT)끼리의 비교 입니다. 참고로 CAT with transformer는 global attention만을 활용한 성능인데 local attention까지 같이 활용한 context aware transformer(CAT) 구조에 비해서 성능이 조금 낮네요.

local attention의 중요성을 보여주는 지표인 것 같습니다.

그래도 제안하는 방법론(CAT)이 가장 높은 성능을 달성해주고 있습니다. 아마 이것마저 없었다면 이 논문은 절대 accept 될 수 없었다고 생각합니다.

논문에서 어떻게 서술이 되고 있나면 SMM은 가장 안좋은 성능을 보여주고 있다. Context-Aware Pretraining이 아니기 때문이다. Scene Matching(GSM, LSM)성능이 비교적 높은 성능을 보여주고 있다. Intra-Inter Scene 구별력을 가지기 때문이다. 이렇게 딱 끝이 납니다.

일단 그래도 놀랐던 부분이 shot 순서를 섞고 원래 order를 예측하는 task만 진행해도 어느정도 성능이 나왔다는 것이 놀랍습니다.

이 ablation에서 아쉬운점은 4가지의 task가 있으면 더욱 다양하게 조합해서 어떤 것이 서로 상호 보완적인지 그러한 분석을 내놓았을 수 있을텐데 그냥 4가지 task에 대해서 각각 하나만 사용했을 때를 보여주고 있으니 상당히 아쉽습니다.

Parameter에 대한 ablation 인데, 이런 parameter 실험은 사실 데이터셋 바뀌면 바로 깨질 경향성인데 왜 main paper 실험에 넣었는지 참 의문이네요. Local Window 사이즈가 L=5일 때 가장 성능이 좋다고 합니다.

위의 실험과 시사하는 바가 동일합니다.

정성적 결과인데, 뭐 굳이 저렇게 잘 되는거 하나만 띡 보여주니 별로 인상깊지는 않습니다. 차라리 보여줄거면 어려운 장면 가져다와서 장면에 대해서 좀 설명도 해주고 서술 했으면 나름 애썼네라고 생각이 들텐데 성의가 없네요 성의가..

여기서도 Audio feature를 같이 사용하면 성능이 조금 더 오르더라 정도로 서술을 마무리하고 있습니다. 음성 feature에도 동일한 Attention 과정을 거치는지 궁금한데 그 부분은 나와있지 않네요.

Conclusion

CVPR이나 AAAI와 같은 탑티어 학회의 리뷰 퀄리티 문제가 올해 들어서는 너무 체감이 되는 것 같습니다. 실험 섹션에서라도 다양한 분석을 내놓기를 원했지만 의미 없는 파라미터 ablation study(저는 parameter grid search는 backbone 연구가 아닌 이상 main paper에 들어갈 실험은 아니라고 생각합니다.)나 단순히 우리가 성능이 제일 좋다는 식의 벤치마킹은 의미를 찾아볼 수 없는 내용인 것 같습니다.

올해 연구 정말 열심히 해서 의미있는 논문 한편 만들 수 있도록 노력 많이 해야겠다는 생각이 드네요.

Author: 임 근택

4 thoughts on “[2023 AAAI] Towards Global Video Scene Segmentation with Context-Aware Transformer

  1. 안녕하세요. 임근택 연구원님.
    좋은 리뷰 감사합니다!

    리뷰를 읽으며 궁굼한 점이 두 가지 생겨 질문드립니다.

    1. shot encoder가 feature를 만드는 방법이 단순히 딥러닝이 아닌 이전 방식으로 keyframe을 선정하여, 2D CNN을 통해 MAC feature같은 것을 뽑아내 병합하는 것인가요?
    2. 리뷰에서 지적하신 것처럼, 뭔가 논문에 어디서 본 듯한 방법이 많이 보이는데.. 그래도 어텐션을 Local한 Scene들끼리 수행하고 다시 이들에 global한 어텐션을 수행한 것은 새롭다는 생각이 드는데, 혹시 이러한 어텐션 기법을 사용한 연구가 또 있을까요?

    감사합니다!

    1. 1. key frame을 선정하는 방식은 MovieNet이라는 논문을 봐야 하는데, 논문을 찾아봐도 자세한 내용은 나오지 않습니다. feature 자체는 Resnet50으로 사용해서 추출합니다.

      2. attention 논문을 많이 찾아보면 알겠지만 저 정도 수준의 attention은 그냥 contribution이 거의 없다고 보시면 됩니다. self attention의 영역을 local, global으로 가져가는게 탑티어 학회 수준에 accept 될 만큼 수준의 contribution이라 보기는 어렵습니다.

  2. 안녕하세요 좋은 리뷰 감사합니다.

    비디오에서 pseudo scene을 나눠 representation learning을 수행하는 task가 본 논문과 BaSSL에도 포함되어 있고, 다른 Scene Segmentation 논문에도 포함되어있을 것으로 생각됩니다. 본 논문에서의 GSM도 베이스라인 대비 성능을 많이 올려주고 있는 것을 알 수 있었습니다.

    Scene segmentation이라는 task 자체가 비디오의 scene boundary를 찾는 것인데, 그렇다면 학습 중인 모델이 직접 내뱉은 출력값인 scene boundary를 기준으로 contrastive learning을 하는 방법론은 없나요? 위와 같이 고정된 크기의 window와 고정된 threshold값을 통해 pseudo boundary를 만들 수 밖에 없는 이유가 있는지가 궁금합니다.

    1. Scene segmentation이라는 task 자체가 비디오의 scene boundary를 찾는 것인데, 그렇다면 학습 중인 모델이 직접 내뱉은 출력값인 scene boundary를 기준으로 contrastive learning을 하는 방법론은 없나요?

      => 네 아직까지는 그러한 방법은 따로 없네요.

      고정된 크기의 window와 고정된 threshold값을 통해 pseudo boundary를 만들 수 밖에 없는 이유가 있는지가 궁금합니다.

      => 아무래도 2시간짜리 영화 비디오를 하나의 배치로 처리하기는 어렵기 때문에 window라는 고정된 크기로 처리하는 것 같습니다. 고정된 사이즈만큼의 inductive bias를 주기 위함이기도 하지요.

답글 남기기

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