[ECCV 2024] BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sentence Grounding in Videos

안녕하세요. 이번주 X-Review는 오랜만에 다시 비디오의 Moment Retrieval task 논문으로 돌아왔습니다. 소개해드릴 BAM-DETR이라는 논문은, 보통 Moment Retrieval과 Highlight Detection이라는 2가지 task를 동시에 수행하는 DETR 기반의 모델로 Moment Retrieval(=Temporal Sentence Grounding in Videos)만을 수행하는 방법론입니다. 연세대 이필현이라는 박사님의 논문인데, 21년도부터 Weakly-supervised Temporal Action Detection 분야에 굵직한 연구들을 남기어 당시부터 follow-up하던 분이었습니다. 최근 소속을 보니 확실친 않지만 그 사이에 인하대의 교수님이 되신 것으로 보입니다… 23년도 KCCV에도 참여하시어 Doctoral colloquium 발표를 해주셨던 분입니다.

1. Introduction

Introduction의 시작은 최근 틱톡이나 유튜브 shorts, 인스타그램의 reels와 같은 숏폼 비디오들이 유행하며, 사용자들이 이와 같은 짧은 구간 검색에 더욱 많은 관심을 보이고 있다는 이야기였습니다. 이를 위해 Moment Retrieval, Video Summarization, Highlight Detection, Temporal Action Localization 등등의 task가 연구되고 있는데요, 본 연구에서 해결하고자하는 Moment Retrieval(MR)은 사용자로부터 자연어 형태의 free-form description, 즉 텍스트 쿼리를 입력받아 이에 상응하는 구간을 검색하는 task입니다.

기존의 MR 방법론들은 GloVe나 word2vec과 같은 방식으로 텍스트 feature를 추출하고, VGG, I3D, C3D 등과 같은 모델로 비디오 feature를 추출하였습니다. 이후 이 두 feature를 어떠한 방식으로 합칠 것인지, 어떻게 상호작용할 것인지에 대한 contribution을 만들어내었었습니다. Object Detection과 동일하게 proposal을 만들 anchor를 사전에 생성하거나, 후처리를 위한 NMS를 적용해주었습니다. 그러나 23년도부터는 21년도 제안된 Moment-DETR 방법론을 기반으로, Object Detection task를 수행하는 DETR 모델을 다양하게 변형하여 Moment Retrieval에 적합하도록 제안하는 방법론들이 많이 나왔습니다. 예로 제가 리뷰했던 TR-DETR, CG-DETR, QD-DETR, MESM 등등이 있고 이번에 리뷰하는 BAM-DETR도 마찬가지입니다. 이제 대부분의 MR 방법론은 DETR 기반의 모델로 연구되고 있다고 볼 수 있는 상황입니다.

DETR 기반 MR 방법론들은 기존 방법론들과 마찬가지로 DETR(Transformer encoder-decoder) 구조에 태우기 전 비디오와 텍스트 모달의 토큰을 어떻게 상호작용하는 것이 좋은지를 연구하는 것이 절반, DETR 구조를 MR task에 적용했을 때 발생하는 문제점을 해결하는, DETR 모델 적용 방식 개선하는 연구가 나머지 절반이었습니다. Object Detection의 DETR decoder에서 박스의 좌표를 최종적으로 내뱉듯, MR을 수행하는 DETR도 상응 구간의 (중간 지점 c, 너비l) 값을 출력하였습니다. 이와 같은 예측 방식은 결국 구간이 중간 지점으로부터 양쪽으로 0.5l씩 동일하게 분포한다는 가정이 있는데, 사실 MR에서 찾아야 하는 구간의 중간 특성이 애매하고 딱히 두드러지지 않아 명시적으로 모델링하기는 어렵다는 문제점이 존재합니다.

그림 1

위 그림 1을 통해 기존 (c, l)을 예측하는 방식과 저자가 제안하는 방식의 차이점을 볼 수 있습니다. 우선 텍스트 쿼리에 따라 찾아야하는 구간의 중간 지점이 관중들을 촬영한 장면으로 딱히 텍스트 쿼리가 정말 중점적으로 일어난다고 볼 수 없는 상황입니다. 실제 annotation 되어있는 highlight 라벨(막대 그래프)를 봐도 중간 지점이 붉은색으로 매우 낮은 score를 가짐을 볼 수 있습니다. 하나의 정성적 결과 샘플이지만 실제로 살펴봐도 이러한 경우가 굉장히 많음을 알 수 있었습니다. Temporal Action Detection에서 찾는 action의 경우 어느 정도 정형화된 순서가 있기에 시작-중간-끝을 나눠 subaction을 모델링하는 방법론도 많았는데, MR에서 찾고자 하는 구간은 그런 특성이 없다는 이야기인 것입니다.

그림 1-(a)는 앞서 설명드린대로 (c, l) 형태를 예측하는 기존 모델의 결과인데, 나름 텍스트 쿼리의 내용이 명시적으로 드러나는 지점을 잘 맞추고 있습니다. 다만 중간 지점으로부터 앞뒤로 동일한 너비만큼이 최종 구간으로 예측되기에 결국 잘못된 구간을 예측하고 있는 모습입니다. 이 때 저자가 제안하는 방식인 그림 1-(b)를 보시면 마찬가지로 텍스트 쿼리의 상황이 명시적으로 드러나는 장면을 중간으로 예측했지만 앞뒤로 유동적인 너비를 최종 구간으로 예측하며 적절한 결과를 만들어내는 것을 볼 수 있습니다.

저자는 기존 방식의 문제점을 해결하기 위해 구간의 경계지점을 찾아내는 boundary-oriented formulation 방식을 제안합니다. 위 그림 1-(b)에서 볼 수 있듯 (p, d_{s}, d_{e})라는 triplet 값을 뽑아내게 되고, 각각은 anchor point, anchor point로부터 시작, 끝 경계까지의 거리를 의미합니다. 이러한 출력을 통해 구간을 예측하면 모델이 더 이상 별 특성 없는 구간의 가운데 지점을 찾는데 고생할 필요가 없겠죠.

위와 같은 기법을 바탕으로, 저자가 제안하는 모델의 이름은 Boundary-Aligned Moment Detection Transformer(BAM-DETR)입니다. 앞서 설명한 triplet을 뽑아내려면 decoder의 구조가 기존과 달라져야 하는데, 어떤 식으로 변형되는지 살펴보면 좋을 것 같습니다. Decoder의 구조와 더불어 저자가 평가 과정에 관여하는 score도 일부 수정하였다고 하니 주목할만한 연구인 것 같습니다.

2. Method

MR의 입력은 untrimmed video와 문장 쌍입니다. Task의 목적은 상응 구간 \{\varphi{}_{n} = (t_{s_{n}}, t_{e_{n}})\}_{n=1}^{N}을 찾는 것으로, N은 비디오 내 GT 개수를 의미합니다. 테스트 시에는 총 M개의 예측을 내뱉게 됩니다. 이 때는 구간과 ranking을 위한 score q_{m}을 함께 추출합니다.

앞서 말씀드렸듯 기존 연구가 구간의 정확한 중간 지점을 예측한다는 단점을 보완하고자, BAM-DETR에서는 구간 \hat{\varphi{}} = (p-d_{s}, p+d_{e})와 같이 표현합니다. 각 구간의 anchor point pp로부터 앞 뒤 너비 d_{s}, d_{e}를 예측하도록 decoder 구조를 변형합니다. 또한, 기존 연구에서 ranking을 위한 score q_{m}은 기존 DETR이 object detection을 수행할 때 클래스에 대한 예측 score를 뽑아내는 과정과 동일한 절차로 얻은 score였습니다. 이러한 방식은 매칭 과정에서 얻게 되는데, 이는 구간의 일부만 잘 예측되어도 높은 score를 갖게 되므로 실제 localization quality를 기반으로 점수를 매기는 방식도 제안하게 됩니다.

2.1 Overview

그림 2

저자가 제안하는 BAM-DETR은 위 그림 2-(a)와 같습니다. 기본적으로 Transformer encoder-decoder 구조를 가지며 encoder의 출력인 memory를 바탕으로 dual-pathway decoder를 활용해 구간과 quality score를 추출하게 됩니다.

2.2 Feature Extraction

Feature는 기존 방식과 동일하게 추출합니다. 비디오 feature는 E_{v} \in{} \mathbb{R}^{N_{v} \times{} D_{v}}, 텍스트 feature는 E_{t} \in{} \mathbb{R}^{N_{t} \times{} D_{t}}와 같이 표기합니다.

2.3 Multimodal Encoder

우선 차후 과정을 위해 두 모달의 feature를 동일 차원으로 projection 시켜주고, 간단한 상호작용을 해줄 필요가 있습니다. 이를 위해 선택할 수 있는 방식은 굉장히 많지만, QD-DETR과 동일하게 text-to-video encoder design을 선택합니다. 먼저 둘을 동일한 D차원으로 내려줍니다. 이는 각 모달의 MLP를 통해 진행되며 \mathcal{V} = f_{v}(E_{v}) \in{} \mathbb{R}^{N_{v} \times{} D}, \mathcal{T} = f_{t}(E_{t}) \in{} \mathbb{R}^{N_{t} \times{} D}와 같습니다. QD-DETR과 동일한 text-to-video encoder는 결국 비디오를 Q, 텍스트를 K, V로 두어 둘 간의 cross-attention을 수행하는 것이며 수식으로는 아래와 같습니다.

위 수식 (1)을 통해 텍스트 쿼리의 정보를 주입받은 비디오 feature는 \tilde{\mathcal{V}} \in{} \mathbb{R}^{N_{v} \times{} D}와 같이 표기합니다. 이후 \tilde{\mathcal{V}}에 존재하는 N_{v}개 클립 간 정보를 교환하기 위한 self-attention까지 수행해줍니다. 이렇게 얻은 encoder의 출력은 \hat{\mathcal{V}}라 칭합니다. 이는 곧 그림 2-(a)에서 “memory”를 의미합니다.

2.4 Dual-pathway Decoder

여기선 앞서 설명한 구간의 예측 \hat{\varphi{}} = (p-d_{s}, p+d_{e})을 추출하기 위해 2갈래로 구성된 decoder를 제안합니다.

그림 2-(b)

수식적으로, l-th layer의 입력되는 총 4개의 값은 [C_{p}^{l}, C_{s}^{l}, C_{e}^{l}, A^{l}]입니다. 첫 3개 텐서는 모두 M \times{} D 형태를 갖고 있으며, M은 예측의 개수입니다. 가장 마지막 값 A^{l} = [p^{l};d_{s}^{l};d_{e}^{l}]로 이전 iteration에서의 moment prediction에 해당합니다. 가장 첫 입력은 랜덤으로 초기화한 [C_{p}^{0}, C_{s}^{0}, C_{e}^{0}, A^{0}]이 들어가게 됩니다.

Anchor updating pathway.

이전 layer로부터 예측값과 anchor query를 입력받아, anchor를 갱신하는 pathway의 최종 목적은 다른 pathway에서 boundary, 즉 (d_{s}, d_{e})를 잘 만들어낼 수 있도록 좋은 anchor point p를 찾아주는 것입니다. 이를 위해서는 직관적으로 입력되는 memory와 다른 쿼리들과 잘 소통하여 중복 없이 명확한 p들을 만들어주어야 합니다.

Anchor updating pathway는 self-attention layer, cross-attention layer, feed-forward network로 구성됩니다.

먼저 self-attention layer 연산은 아래 수식 (3)과 같습니다.

기본적으로 연산의 Q, K, V는 anchor queries C_{p}^{l}로부터 만들어지며, Position information P_{A^{l}} = \text{MLP}(\text{PE}(A^{l}))입니다.

위 수식 (1)과 같이 anchor query들 간의 interaction을 수행하였으면, 다음은 anchor query와 encoder의 output인 memory 간 cross-attention을 수행합니다. Attention 시 Q는 앞서 수식 (3)의 출력인 anchor query로부터, K, V는 \hat{\mathcal{V}}로부터 만들어줍니다. Cross-attention 과정은 아래 수식 (4)와 같습니다.

마찬가지로 positional encoding을 적용해준 뒤 concat해줍니다. 이 때 기존 연구를 따라, feature와 position encoding 간 차별점을 주기 위해 summation이 아닌 concat을 했다고 합니다. 위 cross-attention까지 마친 뒤 FFN에 태워줍니다.

Boundary updating pathway.

위 과정을 통해 anchor를 갱신한 뒤, 예측에 대한 경계 (d_{s}, d_{e})를 갱신하는 path입니다. 이전 연구들에서도, 특정 구간의 경계가 되는 지점은 주변 feature들과는 좀 구별되는, 두드러지는 특성을 가질수록 유리하다는 결과가 있었습니다. 이에 따라 저자는 아래 그림 3과 같이 boundary-focused attenetion layer를 제안합니다. 우선 그림과 설명은 간략하게 시작 지점 쿼리(C_{s}^{l})에 대한 갱신 방식만 보여줍니다.

그림 3

앞서 설명한대로 현재 feature \hat{\mathcal{V}}에 대한 locality 특성을 보완해주기 위해 1D Conv를 거쳐 boundary-sensitive feature를 만들어줍니다. 이후 시작 지점에서 많이 활성화되도록 만들어주기 위해 clip별로 regularization loss를 적용해줍니다.

우선 clip별로 적용해주기 위해 \hat{g^{s}} = \text{mean}(\sigma{}(\hat{\mathcal{V}_{s}}))를 평균내어 만들어주고, 아래 수식 (5)와 같은 loss를 적용합니다.

수식 (5)에서 g_{i}^{s}는 실제 GT의 시작 구간 근방으로, 실질적으로는 시작 지점으로부터 moment 길이의 1/10씩만큼 앞뒤를 덧붙인 구간에 해당합니다. 결국 시작 지점 근방의 score를 크게 만들어주는 역할을 수행하는 것입니다. 이후 기존 feature와 방금 과정을 통해 locality-enhanced 된 feature를 concat하여 \hat{\mathcal{V'}_{s}}])를 만들어줍니다. 이후 경계 부분의 fine-grained한 detail을 학습하기 위해 deformable attention을 활용합니다.

시작 지점 p^{l+1}-d_{s}^{l}을 첫 기준으로 두고, K개의 neighbor를 선택하기 위한 FC layer를 각각 태워 offset o^{s} \in{} \mathbb{R}^{M \times{} K}, weight w^{s} \in{} \mathbb{R}^{M \times{} K}를 뽑아주게 됩니다. 이후 방금 뽑은 offset과 weight는 아래 수식 (6)에 따라 aggregate됩니다.

위 수식 (6)은 총 K개의 neighbor 지점의 feature에 weight를 각각 곱해주고, 기존 시작 지점의 텍스트 쿼리와 합쳐주는 과정을 의미합니다. 이후 다음 layer로 넘겨줄 쿼리 또는 출력은 수식 (6)의 출력을 FFN에 태워 얻게됩니다.

Moment prediction.

위 decoding 과정은 총 L_{D}개의 decoding layer 개수만큼 반복되게 되고, 마지막 층을 거쳐 얻은 (p;d_{s};d_{e})로부터 [p-d_{s}, p+d_{e}]를 최종 예측 구간으로 사용하게 되는 것입니다.

2.5 Quality-based Scoring

위와 같은 과정을 통해 얻어낸 예측 구간들을 평가하기 위해 각 구간에 대한 score q_{m}을 만들어줘야 합니다. 기존 DETR 기반 방법론들은 Object Detection을 수행할 때 내뱉는 경계 박스의 confidence score와 동일한 개념의 score를 최종 구간 산출을 위한 score로 삼았습니다. 하지만 이 score는 문장과 구간이 의미론적으로 얼마나 상응하는지 나타낼 뿐, 정말 “구간” 탐색 관점에서 구간이 좋은 예측이었는지 나타내는 값이라고 보긴 어렵다는 것이 저자의 주장입니다. 사실 둘이 비슷한 말인 것 같긴한데, 구간의 일부만 문장과 잘 상응하더라도 높은 score를 내뱉으면서 정말 좋은, 시작과 끝을 잘 예측한 구간이라고 보긴 어려워진다는 의미입니다.

저자가 제안하는 score q=\sigma{} (MLP([C_{p}||C_{s}||C_{e}])) \in{} \mathbb{R}^{M}는 수식과 같이 쿼리들을 concat하고 MLP에 태워 얻게 됩니다. 이 logit을 단순히 score로 보기엔 어려우니 q를 안내해줄 loss가 필요하겠죠. 이는 아래 수식 (7)과 같습니다.

위 수식 (7)의 loss는 예측 구간과 GT와의 IoU를 최대화하는 loss로 볼 수 있습니다. 의미론적인 일치성에 기대기보단 실제 GT 구간과의 일치를 예측 구간의 quality라 여기고, 이를 score에 반영하도록 조정해주는 것입니다.

3. Experiments

3.1 Comparison with State-of-the-arts

표 2

위 표 2는 QVHighlights 데이터셋에 대한 SOTA 모델들과의 성능 비교 표입니다. 우선 성능이 가장 높습니다. BAM-DETR의 성능에 대해 볼만한 것은 상대적으로 어려운, 높은 IoU 기준에서의 성능 향상이 두드러진다는 점입니다. R1@0.7, mAP@0.75 지표에서의 성능 향상 폭이 굉장히 크네요. 또한 오디오를 사용하는 경우와 사전학습 데이터를 활용하는 경우에도 좋은 성능을 보여주고 있습니다. 사실 제가 실험하며 한 가지 걸렸던 점이, MR과 Highlight Detection을 동시에 수행하는 기존 연구에 비해 MR만 수행하려는 경우 HD 라벨을 사용해도 되는가 였습니다. 그러나 BAM-DETR이나 24년도 AAAI에 accept된 MESM이라는 방법론도 기존 방법론과의 fair comparison을 위해 HD 라벨을 사용했다고 하니, 선례를 따라 안심하고 활용해도 될 것 같습니다.

표 3

표 3은 Charades-STA와 TACoS 데이터셋에 대한 벤치마크 성능입니다. 마찬가지로 기존 방법론들보다 더욱 높은 성능을 보여주고 있습니다. 여기서도 마찬가지로 높은 IoU 기준 지표에서 큰 성능 향상 폭을 보여주는 것이 인상깊습니다.

3.2 Analysis

표 5, 6

표 5는 BAM-DETR의 모듈별 ablation 성능, 표 6은 여러 구성 요소별 ablation 성능입니다.

우선 표 5의 모듈별 ablation 성능을 통해, 확실히 기존의 중간지점과 너비를 통해 최종 예측을 만들어내는 방식이 sub-optimal했음을 밝히게 됩니다. boundary-oriented modeling만 해주어도 성능이 꽤나 많이 오르네요. Scoring 방식을 IoU 기준으로 학습하는 점이 생각보다 큰 성능 향상을 불러오고 있습니다. 확실히 저자의 주장에 따라 기존 score가 localization quality를 나타내고있지는 않았나봅니다.

표 6-(b)는 memory feature enhance 과정에서 기존 토큰과, 이에 1D Conv를 적용한 sensitive 토큰, 그리고 그 둘을 합친 merged 토큰에 대한 ablation 성능입니다. Sensitive 토큰을 사용하는 경우 성능이 일부 오르긴 하지만, 둘을 concat하여 사용했을 때 성능이 굉장히 많이 올라가는 것이 앞으로 실험 때 무언가를 대체하기보단 기존의 토큰도 함께 사용하는 방식을 고려해볼 수 있을 것 같습니다.

이상으로 리뷰 마치겠습니다.

Author: 김 현우

2 thoughts on “[ECCV 2024] BAM-DETR: Boundary-Aligned Moment Detection Transformer for Temporal Sentence Grounding in Videos

  1. 좋은 리뷰 감사합니다.

    1) 요즘 Image-Text 사이의 임베딩에 대한 공부를 뒤늦게 하고 있다 보니 해당 리뷰를 읽어보게 되었네요.
    본 논문에서는 각 모달이 Text/Video Encoder를 통과한 후 각 projection layer 를 거친 다음, “text-to-video” 방향으로의 cross-attention 이 수행되는 것으로 보여집니다. 양방향 cross-attention 을 모두 수행 (text-to-video & video-to-text) 하지 않고, 단방향 text-to-video 만 수행하는 것이 일반적인건가요? 아니면 본문에서 언급하신 대로 QD-DETR 의 방식을 그대로 따라한 것일까요?

    2) ablation 실험에서 scoring 기법 적용에 대한 성능 향상이 인상깊었습니다. 그래서 2.5 Quality-based Scoring 수식쪽에서 간단 질문이 있습니다. 우선 해당 loss의 도입 이유에 대해 제가 이해한 내용을 적어보자면,, DETR 의 output conf score 가 구간 regression 관점에서의 conf score가 아닌, 구간 유무(?)에 대한 classification 관점에서의 conf score이기 때문에 좀 더 정확한 구간 탐색을 위한 loss를 설계하는 것으로 이해했습니다.
    여기서 score q를 0~1 범위로 만들고 이를 안내해 주기 위해 추가된 loss term의 뒷부분에서 \varphi_m은 모델의 예측 구간, \varphi_n은 max 수식을 통해 선정되는 \varphi_m과 가장 유사한 gt 구간이 맞을까요?? 그리고 이렇게 loss function을 통해 학습된 score q_m이 이후 prediction 단계에서 실제 구간 예측의 score 를 측정할 때 실제로 적용되는 것인거죠?
    (+ MLP 를 통해 Mx3D 의 shape이 Mx1 로 변경되는것인가요?)_

    감사합니다.

    1. 답변이 복잡하여 구두로 직접 전달하였습니다.

답글 남기기

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