Memory-Augmented Transformer (MATR)를 이용한 온라인 시간적 행동 탐지
MATR은 스트리밍 비디오에서 실시간으로 행동 구간을 탐지하는 Online Temporal Action Localization (On-TAL)을 위한 새로운 모델입니다. 기존 방법들은 고정된 크기의 비디오 세그먼트만 입력으로 받아 장기적인 맥락을 파악하는 데 한계가 있었습니다. MATR은 과거의 주요 비디오 특징을 선택적으로 저장하는 memory queue를 도입하여 이 문제를 해결하며, 이를 통해 장기적인 맥락을 활용합니다. 현재 시점에서 행동의 끝(end)을 먼저 감지한 뒤, 메모리에 저장된 과거 정보를 탐색해 행동의 시작(start)을 정확히 찾아내는 새로운 방식을 제안합니다. 이 과정은 Transformer 기반의 end decoder와 start decoder를 분리하여 수행됩니다. 논문 제목: Online Temporal Action Localization with Memory-Augmented Transformer
Song, Youngkil, et al. "Online temporal action localization with memory-augmented transformer." European Conference on Computer Vision. Cham: Springer Nature Switzerland, 2024.
Online Temporal Action Localization with Memory-Augmented Transformer
Abstract
Online temporal action localization (On-TAL)은 스트리밍 비디오가 주어졌을 때 여러 action instance를 식별하는 task이다. 기존 방법들은 각 iteration마다 고정된 크기의 비디오 segment만을 입력으로 받기 때문에, 장기적인 context를 고려하는 데 한계가 있으며, segment 크기를 신중하게 튜닝해야 하는 단점이 있다. 이러한 한계점을 극복하기 위해 우리는 **memory-augmented transformer (MATR)**를 제안한다. MATR은 과거 segment feature를 선택적으로 보존하는 memory queue를 활용하여, 추론 시 장기적인 context를 활용할 수 있도록 한다. 또한 우리는 현재 입력 segment를 관찰하여 진행 중인 action의 종료 시간을 예측하고, memory queue에 접근하여 action의 시작 시간을 추정하는 새로운 action localization 방법을 제안한다. 우리의 방법은 THUMOS14와 MUSES 두 데이터셋에서 기존 방법들을 능가했으며, online setting의 TAL 방법들뿐만 아니라 일부 offline TAL 방법들보다도 우수한 성능을 보였다.
Keywords: Temporal action localization, Online video understanding
1 Introduction
오늘날 비디오는 가장 인기 있는 미디어 유형 중 하나이며, 매초 수많은 비디오가 YouTube 및 TikTok과 같은 온라인 플랫폼에 생성되고 업로드되고 있다. 그 결과, 비디오 이해(video understanding)에 대한 수요가 빠르게 증가하고 있다. 특히, untrimmed video를 다루는 것은 실제 세계의 대부분의 비디오가 개별 이벤트를 위해 미리 trim되지 않기 때문에 실용적인 비디오 이해의 핵심이다. 이러한 맥락에서 **Temporal Action Localization (TAL)**은 광범위하게 연구되어 왔으며 [10, 17, 21, 30, 38, 39, 43-45, 47, 49], 입력 untrimmed video에서 각 action instance의 시작 시간, 종료 시간 및 action class를 예측하여 이를 감지하는 것을 목표로 한다.
최근에는 온라인 TAL (On-TAL), 즉 스트리밍 비디오를 위한 TAL [14]이 비디오 감시, 스포츠 비디오 분석 및 비디오 요약과 같은 잠재적 응용 분야 덕분에 점점 더 많은 관심을 받고 있다. 전체 비디오를 입력으로 요구하는 TAL과 달리, On-TAL은 현재까지 관찰된 입력 프레임만을 사용하여 온라인 방식으로 action instance를 감지하는 것을 목표로 한다. 또한, 일단 action instance가 예측되면 나중에 결과를 수정하는 것은 허용되지 않는다.
Fig. 1: 우리 모델의 개념적 설명. 우리 모델은 스트리밍 비디오에서 이전에 발생한 action에 대한 정보를 **메모리 큐(memory queue)**에 선택적으로 저장한다. 현재 입력 세그먼트에서 action의 끝이 감지되면, 모델은 메모리 큐에서 정보를 검색하여 action의 시작을 찾는다.
이 도전적인 task에 대한 간단한 해결책은 먼저 온라인 액션 감지(Online Action Detection, OAD) [7, 35], 즉 스트리밍 비디오에 대한 프레임별 액션 분류를 수행한 다음, 프레임별 액션 예측을 집계하여 action instance를 구축하는 것이다. 이러한 의미에서 초기 On-TAL 방법들 [14, 31]은 OAD를 적용하고 과거 관찰을 사용하여 프레임별 예측을 개선함으로써 이 접근 방식을 따른다. 그러나 이 OAD 기반 접근 방식은 훈련을 위해 프레임 수준의 supervision만 활용하는데, 이는 On-TAL이 시간 간격 형태의 action instance를 예측하는 것을 목표로 하기 때문에 최적이지 않다. 이 문제를 완화하기 위해 최근 online anchor Transformer (OAT) [15]가 제안되었으며, 이는 sliding window 접근 방식과 anchor 기반 방법을 채택하여 instance 수준의 supervision을 활용한다. OAT는 성능을 현저하게 향상시켰지만, 여전히 몇 가지 단점이 있다: 각 iteration에서 고정된 크기의 입력 세그먼트를 취하고 장기적인 context를 고려하지 않기 때문에, 긴 action instance를 감지하는 데 한계가 있으며, 입력 세그먼트의 크기와 같은 하이퍼파라미터에 성능이 민감하다.
위의 문제들을 해결하기 위해 우리는 **On-TAL을 위한 새로운 end-to-end 아키텍처인 memory-augmented Transformer (MATR)**를 제안한다. MATR의 핵심은 **메모리 큐(memory queue)**에 있으며, 이는 과거 세그먼트 feature를 선택적으로 저장하여 모델이 추론을 위해 장기적인 context를 활용하도록 한다. 장기적인 context를 포함하고 세그먼트 크기에 대한 의존성을 줄이는 메모리 큐 덕분에, 우리 모델은 각 데이터셋에 대한 신중한 하이퍼파라미터 튜닝 없이도 긴 action instance까지 정확하게 localize한다.
또한, Fig. 1에 설명된 바와 같이 메모리 큐를 활용한 새로운 action instance localization 접근 방식을 제안한다. 첫째, 현재 세그먼트 feature를 사용하여 action의 끝을 감지한 다음, 메모리 큐에서 과거 세그먼트 feature를 스캔하여 감지된 action 끝에 해당하는 action 시작을 찾는다. 이를 달성하기 위해 우리는 두 개의 Transformer decoder를 채택한다: 하나는 **끝 감지(end detection)**를 위한 것이고 다른 하나는 **시작 감지(start detection)**를 위한 것이다. 특히, 우리는 **학습 가능한 쿼리(learnable queries)**를 decoder의 입력으로 채택하여 각 decoder가 Transformer의 attention mechanism [8, 32]을 통해 action 경계를 localize하도록 학습한다. 또한, 객체 감지(object detection)의 최근 발전 [6, 37]에 영감을 받아, MATR은 성능을 더욱 향상시키기 위해 **action 분류와 localization을 분리(decouple)**한다. 이는 MATR에서 두 하위 task에 대해 **별개의 쿼리(distinct queries)**를 사용하여 구현된다.
제안된 방법은 THUMOS14 [13] 및 MUSES [22] 두 데이터셋에서 평가되었다. 우리 모델은 온라인 TAL 설정에서 두 데이터셋 모두에서 state of the art를 달성한다. 또한, 놀랍게도 오프라인 non-maximum suppression (NMS)을 사용하지 않음에도 불구하고 기존 오프라인 TAL 방법들과도 견줄 만한 성능을 보인다. 요약하자면, 본 논문의 기여는 세 가지이다:
- 우리는 On-TAL을 위한 새로운 end-to-end 아키텍처인 MATR을 제안한다. MATR은 메모리 큐를 활용하여 장기적인 context를 사용하고, 데이터셋별 하이퍼파라미터에 대한 의존성을 줄여 action instance의 정밀한 localization을 가능하게 한다.
- 우리는 새로운 action instance localization 방법을 소개한다. 이 방법은 먼저 입력 세그먼트를 사용하여 action 끝을 식별하고, 메모리 큐의 과거 정보를 스캔하여 action 시작을 찾는다. 또한, 우리 방법은 action 분류와 localization을 위한 정보를 분리하기 위해 별개의 쿼리를 채택한다.
- 우리 방법은 두 벤치마크에서 기존 On-TAL 방법들을 능가했다. 또한, 광범위한 ablation study는 제안된 방법의 각 구성 요소의 기여를 입증한다.
2 Related Work
Temporal Action Localization (TAL)
Temporal Action Localization (TAL) [5,10,17, 21,23,30,38,39,43-45,47,49]은 시간상에서 액션 인스턴스(action instances)를 식별하고 해당 액션을 분류하는 task로, 비디오 연구 커뮤니티에서 많은 주목을 받아왔다. 초기 시도들은 먼저 액션 제안(action proposals)을 생성한 다음, 액션 클래스를 분류하고 액션 경계(action boundaries)를 정제하는 two-stage 접근 방식을 사용했다 [1,9,12,18,19,24,47]. 최근 연구들은 주로 convolutional neural network [28], graph neural network [39,43], Gaussian kernel [25]을 통해 비디오 컨텍스트의 범위를 확장하고, global context [49]를 활용하는 데 중점을 두었다. 시간적 컨텍스트를 확장하고 end-to-end TAL을 가능하게 하기 위해, 최근에는 Transformer [8,32]가 도입되었다 [6,23,44]. 이러한 접근 방식들은 temporal deformable attention module [23]과 multi-scale feature [44]를 통합하여 계산 효율성과 성능을 향상시킨다.
Online Video Understanding
**Online action detection (OAD)**은 프레임 단위로 액션 클래스를 분류하는 task로, Geest et al. [7]에 의해 처음 제안되었다. 장기적인 컨텍스트를 통합하기 위해 recurrent neural network [40]와 Transformer [35]가 활용된다. 이 방법들은 미래 프레임의 액션을 예측하고 이 정보를 사용하여 현재 프레임 예측을 정제한다. Yang et al. [42]은 카테고리 예시(category exemplars)를 사용하고 비디오 세그먼트 내에서 장기적인 종속성(long-term dependencies)을 포착하여 성능을 더욱 향상시켰다. 한편, Shou et al. [29]은 **액션 시작을 가능한 한 빨리 감지하는 것을 목표로 하는 online detection of action start (ODAS)**를 제안했다. Gao et al. [11]은 강화 학습(reinforcement learning)을 채택하여 ODAS를 더욱 개선했다.
Online Temporal Action Localization
실용적인 이벤트 이해를 위해 최근 **online temporal action localization (On-TAL)**이 제안되었다. Kang et al. [14]은 미래 프레임에 접근하거나 오프라인 후처리 없이 액션 경계를 지역화하고 액션 클래스를 분류하는 On-TAL을 처음으로 제안했다. 초기 방법들 [14,31]은 OAD 프레임워크를 채택하여 프레임별 액션 클래스를 분류하고 이를 액션 인스턴스로 그룹화하여 On-TAL을 해결한다. 특히 Kang et al. [14]은 Markov decision process를 활용하여 이전 컨텍스트를 인식하고 프레임별 예측을 그룹화한다. SimOn [31]은 현재 프레임에서 정확한 액션 예측을 위해 과거 시각 컨텍스트와 액션 확률을 활용하는 end-to-end On-TAL 방법으로 제안되었다. Kim et al. [15]은 On-TAL을 위해 Transformer [32]를 채택한 sliding window scheme과 anchor-based 방법을 제안했다. 그러나 이 방법은 각 데이터셋의 액션 길이 분포에 크게 의존하는 고정된 입력 세그먼트만 사용한다. 이전 방법들과 달리, 우리는 장기적인 컨텍스트를 위해 memory queue를 활용하며, 이는 입력 세그먼트 크기에 대한 의존성도 줄여준다.
OAD와 On-TAL의 차이점
OAD [2,33,35,40-42,46]는 프레임 수준에서 액션 클래스를 예측하는 데 중점을 두어, 겹치는 액션의 경계를 구별하는 능력에 한계가 있다. 반면, On-TAL [14, 15, 31]은 개별 프레임이 아닌 전체 액션 인스턴스를 예측하여, 액션의 시작 및 종료 시간을 정확하게 식별할 수 있다. 이는 스포츠 비디오 분석과 같이 인스턴스 수준의 액션 이해를 요구하는 애플리케이션에 효과적이다.
비디오 이해를 위한 메모리 활용
비디오 이해 분야의 이전 연구들은 컨텍스트 정보를 저장하기 위해 장기 및 단기 메모리 형태의 메모리를 활용한다 [2,33,36,41]. 단기 메모리는 미세한 세부 정보를 포착하고, 장기 메모리는 과거 컨텍스트의 압축된 정보를 저장한다. 특히 Wang et al. [33]은 장기 메모리를 여러 그룹으로 나누고 각 그룹을 단일 벡터로 압축한다. Stream Buffer [2]는 압축 모듈을 사용하여 메모리의 시간적 차원(temporal dimensions)을 점진적으로 줄인다. 그러나 액션 인식 [36] 및 OAD [2,33,41,46]와 같은 비디오 분류 task는 현재 프레임의 액션을 분류하기 위해 과거 프레임의 대표 정보를 메모리에 저장해야 하는 반면, TAL은 정확한 시간을 예측하기 위해 과거 프레임의 시간적 위치 정보(temporal positional information)를 메모리에 보존해야 한다. 이러한 관점에서 MATR은 메모리에 시간 정보를 보존하여 액션을 정확하게 지역화하고, flag token을 사용하여 정보를 효과적으로 저장한다. OAD 메모리 모듈과의 비교는 Table 4에 제시되어 있다.
3 Proposed Method
개의 프레임과 개의 액션 인스턴스 를 포함하는 untrimmed video 를 고려해보자. 각 인스턴스는 시작 시간 , 종료 시간 , 그리고 액션 클래스 으로 표현된다. 모델이 전체 비디오 시퀀스를 입력으로 사용할 수 있는 temporal action localization (TAL)과 달리, online temporal action localization (On-TAL)은 모델이 현재 타임스탬프까지 본 입력 프레임만을 사용하여 액션 인스턴스를 예측하도록 강제한다. 이전 반복에서 예측된 액션 인스턴스는 나중에 수정하거나 삭제할 수 없다는 점에 유의해야 한다.
Fig. 2: MATR의 전체 아키텍처. MATR은 feature extractor, memory-augmented video encoder, instance decoding module, prediction heads의 네 부분으로 구성된다.
Fig. 2에서 볼 수 있듯이, MATR은 feature extractor, memory-augmented video encoder, instance decoding module, prediction heads의 네 부분으로 구성된다. 이전 연구들과 마찬가지로, 입력 스트리밍 비디오의 현재 세그먼트가 단위 입력으로 주어지며, 이를 세그먼트 feature라고 하는 프레임 수준 feature는 비디오 backbone 네트워크와 선형 projection layer에 의해 추출된다 (Sec. 3.1). 이 세그먼트 feature는 memory-augmented video encoder에 입력되어 현재 세그먼트 내 프레임 간의 시간적 맥락을 인코딩하고 세그먼트 feature를 메모리에 저장한다 (Sec. 3.2). instance decoding module은 **두 개의 Transformer decoder(end decoder와 start decoder)**를 통해 액션 인스턴스를 지역화한다. 구체적으로, end decoder는 인코딩된 세그먼트 feature를 참조하여 현재 시간 주변의 액션 종료 시점을 찾고, 이어서 start decoder는 메모리 큐에 저장된 과거 정보를 기반으로 액션 시작 시점을 찾기 위해 메모리 큐를 참조한다. 각 인스턴스에 대한 쿼리는 액션 분류를 위한 class query와 액션 지역화를 위한 boundary query로 구성된다 (Sec. 3.3). instance decoding module의 출력은 end prediction head, start prediction head, action classification head로 구성된 prediction heads의 입력으로 사용된다 (Sec. 3.4). 전체 모델은 end-to-end 방식으로 학습된다 (Sec. 3.5).
3.1 Feature Extractor
입력으로 개의 연속적인 비디오 프레임으로 구성된 세그먼트가 주어지면, 사전학습된 backbone [4, 34]과 선형 projection layer가 이전 연구 [14, 15]를 따라 세그먼트 내 각 프레임에 대한 세그먼트 feature 를 추출한다. Kim et al. [15]의 연구에서 영감을 받아, MATR은 슬라이딩 윈도우(sliding window) 방식을 사용하여 시간 축을 따라 프레임별로 이동하며 여러 action instance를 예측한다. 여기서 윈도우 크기는 입력 세그먼트 크기와 동일하다.
3.2 Memory-Augmented Video Encoder
각 시간 단계에서, 입력 segment feature는 **메모리 증강 비디오 인코더(memory-augmented video encoder)**의 두 모듈, 즉 segment encoder와 memory update module에 입력된다. Segment encoder는 입력 segment feature 전반의 **시간적 맥락(temporal context)**을 인코딩하는 반면, memory update module은 segment feature를 선택적으로 저장하고 **메모리 큐(memory queue)**를 업데이트한다.
Segment Encoder
Segment encoder는 self-attention layer와 **feed forward network (FFN)**로 구성된 표준 Transformer encoder이다. segment feature와 학습 가능한 flag token의 조합이 encoder에 입력되어, self-attention을 위한 query, key, value로 변환된다. **Sinusoidal positional encoding **는 query와 key에 추가된다. 출력 embedding 중에서, 인코딩된 flag token은 memory update module에 입력되고, 입력 프레임 전반의 시간적 맥락을 통합한 인코딩된 segment feature는 end decoder의 입력으로 사용된다.
Memory Update Module
입력이 스트리밍 비디오인 온라인 환경에서, 과거 프레임의 정보를 효율적으로 저장하고 효과적으로 접근하는 것은 액션 인스턴스(action instances), 특히 **시간적 범위가 입력 segment의 크기를 넘어서는 장기 액션(long-term actions)**을 감지하는 데 매우 중요하다. 이를 위해 우리는 과거 입력 segment의 정보를 선입선출(FIFO) 방식으로 저장하는 memory queue를 채택한다. 또한, flag token을 활용하는 효율적인 메모리 업데이트 방법을 제안한다. 입력 segment feature가 segment encoder를 통과할 때, flag token은 입력 segment feature에 연결된 후 flag prediction head에 사용된다. 이는 입력 segment가 액션 인스턴스와 관련이 있는지 여부를 식별하는 [FLAG]를 예측하도록 학습되어, 관련 있는 segment만 메모리에 저장되도록 한다. [FLAG]는 입력 segment와 액션 인스턴스 사이에 겹치는 프레임이 있을 때 1이고, 그렇지 않으면 0이다. 학습 중에는 **ground-truth [FLAG]**가 활용된다. 추론 중에는, flag prediction head의 출력 logit 에 대해 (여기서 는 미리 정의된 임계값)이면 [FLAG] 이고, 그렇지 않으면 0이다. [FLAG]=1일 때 입력 segment feature는 memory queue에 추가되고, [FLAG]=0일 때 버려진다. memory queue가 가득 차면, 가장 오래된 segment feature가 제거된다.
3.3 Instance Decoding Module
Instance decoding module는 Transformer의 attention mechanism을 활용하여 인코딩된 세그먼트 feature와 memory queue를 통해 액션 인스턴스를 지역화하고 분류한다.
입력 세그먼트에 걸쳐 단기적인 시간적 맥락을 가진 인코딩된 세그먼트 feature와 잠재적으로 진행 중인 액션에 대한 장기적인 맥락을 저장하는 memory queue가 주어졌을 때, **개의 instance query **가 학습되어 각 입력 세그먼트에 대해 개의 액션 인스턴스를 생성한다.
이 query 중 절반은 **액션 클래스 예측(class query; )**에 사용되고, 나머지 절반은 **시작 및 종료 타임스탬프 예측(boundary query; )**에 사용된다.
동일한 인스턴스에 대한 class query와 boundary query 쌍은 **동일한 positional embedding **를 공유하여 인스턴스들을 정확하게 식별하고 구별한다.
Fig. 3: Instance decoding module의 상세 아키텍처.
와 같이 구성된다.
이전 Transformer 기반 On-TAL 방법 [15]이 각 인스턴스의 시작 및 종료 offset을 동시에 예측하는 것과 달리, 우리 방법은 시작 offset과 종료 offset 예측을 위해 별도의 Transformer decoder를 사용한다.
Fig. 3에서 볼 수 있듯이, start decoder와 end decoder는 동일한 아키텍처를 공유하지만, 각각 액션의 시작과 종료를 예측하기 위해 다른 정보를 활용한다.
End Decoder
인코딩된 세그먼트 feature가 주어졌을 때, instance query 는 현재 타임스탬프 근처에서 액션 종료를 감지하는 데 사용되는 출력 embedding을 생성하도록 학습된다. 이를 위해 우리는 multi-head self-attention layer, multi-head cross-attention layer, 그리고 FFN으로 구성된 Transformer [3]를 채택한다. 상세 아키텍처는 Fig. 3에 나와 있다.
end decoder의 출력은 종료 boundary embedding과 class embedding으로 구성되며, 이들은 start decoder와 prediction head의 입력으로 사용된다.
Start Decoder
start decoder는 end decoder의 출력 embedding을 입력으로 받아 memory queue를 활용하여 해당 액션의 시작을 찾는다.
먼저, **memory queue는 현재 세그먼트 feature와 연결(concatenate)**된다. 이렇게 연결된 memory feature는 start decoder에서 장기적인 맥락(long-term context)으로 사용된다.
그 다음, 2D temporal positional encoding이 memory feature에 추가되고, 그 결과는 start decoder의 cross-attention layer를 위한 key와 value로 사용된다.
start decoder의 전체 아키텍처는 end decoder와 동일하지만 (Fig. 3), 인코딩된 세그먼트 feature 대신 memory feature를 사용한다.
start decoder의 출력 embedding인 시작 boundary embedding과 class embedding은 각각 start prediction head와 action classification head의 입력으로 사용된다.
또한, 우리는 memory queue를 효율적이고 효과적으로 활용하기 위한 두 가지 기술을 도입한다.
첫째, 인접한 프레임들이 유사한 정보를 포함하고 있기 때문에 메모리를 효율적으로 사용할 수 있도록 memory feature에 대해 50% uniform sampling을 수행한다.
둘째, 지속 시간이 예측 불가능한 스트리밍 비디오에 대한 positional encoding의 범위를 확장하기 위해, temporal positional encoding을 두 부분으로 분리한다: relative segment position과 relative frame position.
relative segment position은 현재 세그먼트에 대한 memory 내 세그먼트의 상대적 위치를 나타낸다.
반면, relative frame position은 동일 세그먼트 내에서 가장 최근 프레임에 대한 프레임의 상대적 위치를 나타낸다.
3.4 Prediction Heads
인스턴스 디코딩 모듈의 출력으로부터 개의 액션 인스턴스 를 생성하기 위해, 우리는 **종료 예측 헤드(end prediction head), 시작 예측 헤드(start prediction head), 액션 분류 헤드(action classification head)**의 세 가지 예측 헤드를 사용한다. 각 예측 헤드는 2-layer FFN으로 구성된다.
종료 예측 헤드 (End Prediction Head)
종료 예측 헤드는 타겟 액션의 종료 시점과 현재 타임스탬프 간의 offset을 추정한다. end decoder에서 나온 boundary embedding이 2-layer FFN에 입력되고, 이 FFN은 **종료 offset **을 추정한다.
시작 예측 헤드 (Start Prediction Head)
시작 예측 헤드는 타겟 액션의 시작 시점과 현재 타임스탬프 간의 offset을 추정한다. 입력 세그먼트 주변의 종료 offset을 찾는 종료 예측과 달리, 시작 예측은 상대적으로 더 넓은 범위에 걸쳐 offset regression을 수행해야 한다. 시작 offset regression의 범위를 좁히기 위해, 우리는 시간 범위를 개의 영역으로 나눈다:
- 메모리 커버리지 이전 영역
- 메모리에 의해 커버되는 개의 영역
- 현재 입력 세그먼트에 해당하는 영역
이러한 관점에서 시작 예측 헤드는 영역 분류(region classification)와 offset regression으로 구성되며, 각각 2-layer FFN으로 이루어져 있다. 이들은 start decoder에서 나온 boundary embedding을 입력으로 받아 시작 시간을 예측한다. 영역 분류는 시작 시간이 할당될 영역을 식별하며, 이는 로 표현된다. 여기서 는 영역 분류 헤드의 출력 logit이다. 이어서, offset regression 헤드는 영역 내의 offset을 추정하는 데 사용되며, 이는 로 표시된다. 시작 offset 는 모든 개 영역에 대해 계산되며, 추론 시에는 **식별된 영역의 offset **이 사용된다. 시작 분류 결과 와 시작 regression 결과 를 결합하여 시작 시간이 예측된다. 제안된 시작 예측 헤드의 효과는 Table 5에서 검증된다.
액션 분류 헤드 (Action Classification Head)
액션 클래스 예측을 위해, 우리는 end decoder와 start decoder 모두에서 나온 class embedding을 활용한다. 이 embedding들은 연결(concatenate)되어 액션 분류 헤드에 입력되고, 이를 통해 **클래스 확률 **이 도출된다. 여기서 는 액션 클래스의 개수이다.
액션 인스턴스 예측 (Action Instance Prediction)
마지막으로, 우리 모델은 시간 에서 다음과 같이 개의 액션 제안 을 생성한다:
여기서 는 세그먼트 길이이다. 슬라이딩 윈도우(sliding window) 방식은 각 타임스탬프에서 개의 액션 제안을 생성하므로, 중복되거나 겹치는 액션 인스턴스를 제거하여 성능을 향상시키는 후처리(post-processing)가 매우 중요하다.
각 타임스탬프에서 액션 제안에 **Non-maximum suppression (NMS)**이 적용되며, 이후 과거에 생성된 제안과 높게 겹치는 것들은 제거된다. 미래에 이루어질 더 신뢰할 수 있는 예측이 제거되는 것을 방지하기 위해, 예측된 종료 시간이 현재 타임스탬프를 초과하는 인스턴스()도 제거된다.
3.5 Training Objective
타임스탬프 에서 모델은 종료 시간이 범위에 있는 action instance를 감지하도록 학습된다. 여기서 와 는 하이퍼파라미터이다. 그런 다음, Hungarian algorithm은 action proposal과 ground-truth action instance를 가장 낮은 matching cost로 매칭한다. ground-truth 그룹 와 proposal 의 matching cost는 다음과 같다:
여기서 는 개의 action proposal에 대한 permutation이고, 는 -번째 proposal의 class probability이며, 는 ground-truth action boundary이고, 는 예측된 action boundary이다. 우리는 action classification을 위해 focal loss [20]를, start region classification을 위해 cross entropy loss를, start offset regression과 end offset regression 모두를 위해 loss를 채택한다. action classification loss , start prediction loss , end prediction loss 는 다음과 같이 정의된다:
여기서 는 각각 ground-truth action class, start region, start offset, end offset이다.
instance-level supervision을 제공하고 start time과 end time 예측 간의 연결을 용이하게 하기 위해, 우리는 ActionFormer [44]를 따라 DIoU loss [48]를 사용한다:
여기서 는 두 점 사이의 Euclidean distance이고, 와 는 proposal과 ground-truth instance의 중심이며, 는 가장 작은 enclosing 1-dim box length이다.
memory update module을 end-to-end 방식으로 학습시키기 위해, 우리는 flag prediction head 학습을 위해 flag loss를 사용한다:
여기서 와 는 각각 flag token의 예측된 logit과 ground-truth [FLAG]이다.
우리 모델은 다섯 가지 loss를 동시에 사용하여 end-to-end 방식으로 학습된다. 총 loss는 다음과 같이 계산된다:
모든 loss 계수는 1로 설정되며 loss balancing은 필요하지 않다.
4 Experiments
4.1 Experimental Setting
데이터셋 (Datasets)
우리는 두 가지 On-TAL 벤치마크인 **THUMOS14 [13]**와 **MUSES [22]**에서 우리의 방법과 기존 방법들을 평가한다.
THUMOS14는 20개의 action class에 대해 200개의 훈련 비디오와 213개의 테스트 비디오를 포함하며,
MUSES는 25개의 action class에 대해 2,587개의 훈련 비디오와 1,110개의 테스트 비디오를 포함한다.
MUSES는 multi-shot action instance로 구성되어 있어 action localization을 더욱 어렵게 만든다.
하이퍼파라미터 (Hyperparameters)
우리는 기존 On-TAL 연구들 [14, 15, 31]을 따라,
THUMOS14의 RGB 및 flow feature 추출을 위해 **Kinetics [4]로 사전학습된 frozen two-stream TSN [34]**을 사용하고,
MUSES의 RGB feature 추출을 위해 **Kinetics [4]로 학습된 I3D [4]**를 사용한다.
**Segment size **는 THUMOS14에서 64, MUSES에서 75로 설정된다.
**Segment feature의 차원 **는 두 데이터셋 모두 1024로 설정된다.
Memory-augmented video encoder의 경우, 두 데이터셋 모두 8개의 attention head를 가진 3개의 Transformer layer를 쌓는다.
**Flag threshold **는 0.5로 설정된다.
**Memory size **은 THUMOS14에서 7, MUSES에서 15로 설정된다.
Instance decoding module의 경우, 두 데이터셋 모두 4개의 attention head를 가진 5개의 Transformer layer를 쌓는다.
**Class query와 boundary query의 개수 **은 THUMOS14에서 10, MUSES에서 6으로 설정된다.
훈련 (Training)
훈련 중에는 **Adam optimizer [16]**를 사용하며, **CosineAnnealing scheduler [26]**와 함께 **초기 learning rate는 **로 설정한다.
Batch size는 THUMOS14에서 64, MUSES에서 75로 설정된다.
Focal loss 계수는 THUMOS14에서 및 , **MUSES에서 및 **이다.
모든 loss 계수는 1로 설정된다.
더 자세한 내용은 **보충 자료 (Sec. D)**에 명시되어 있다.
4.2 Comparison with the State of the Art
우리는 THUMOS14 및 MUSES 데이터셋에서 우리의 방법과 이전의 online 및 offline TAL 방법들을 비교한다. Table 1에 제시된 바와 같이, 우리의 방법은 두 벤치마크 모두에서 이전의 모든 On-TAL 방법들을 상당한 차이로 능가한다: THUMOS14에서 평균 mAP가 4.9%p 증가했고, MUSES에서 평균 mAP가 0.7%p 증가했다. 이 결과는 memory queue를 활용하는 MATR이 이전의 OAD 기반 방법들 [14, 31, 33, 46]과 instance-level 방법인 OAT-OSN [15]보다 더 효과적임을 보여준다. 우리는 또한 memory를 활용하는 두 가지 OAD 방법 [33, 46]을 On-TAL 설정에서 그들의 frame-level 예측을 action instance로 그룹화하여 평가했다.
Table 1: THUMOS14 및 MUSES 데이터셋에서 On-TAL 방법들과의 비교. 결과는 mAP 측정치(%)로 보고된다. '*'는 분류 어노테이션에서 On-TAL ground truth를 사용하여 결과가 검증되었음을 나타낸다.
| Method | THUMOS14 | MUSES | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| backbone | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average | backbone | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average | |
| Offline TAL | ||||||||||||||
| G-TAD [39] | TSN [34] | 54.5 | 47.6 | 40.2 | 30.8 | 23.4 | 39.9 | I3D [4] | 19.1 | 14.8 | 11.1 | 7.4 | 4.7 | 11.4 |
| ContextLoc [49] | I3D | 68.3 | 63.8 | 54.3 | 41.8 | 26.2 | 50.9 | - | - | - | - | - | - | - |
| P-GCN [43] | I3D | 63.6 | 57.8 | 49.1 | - | - | - | I3D | 19.9 | 17.1 | 13.1 | 9.7 | 5.4 | 13.0 |
| MUSES [22] | I3D | 68.9 | 64.0 | 56.9 | 46.3 | 31.0 | 53.4 | I3D | 25.9 | 22.6 | 18.9 | 15.0 | 10.6 | 18.6 |
| ActionFormer [44] | I3D | 82.1 | 77.8 | 71.0 | 59.4 | 43.9 | 66.8 | - | - | - | - | - | - | - |
| TriDet [27] | I3D | 83.6 | 80.1 | 72.9 | 62.4 | 47.4 | 69.3 | - | - | - | - | - | - | - |
| OAD-based Online TAL | ||||||||||||||
| TeSTra [46] | TSN | 35.6 | 29.2 | 21.4 | 13.4 | 7.6 | 21.4 | - | - | - | - | - | - | - |
| MAT [33] | I3D | 36.0 | 27.5 | 19.2 | 12.3 | 6.4 | 20.3 | - | - | - | - | - | - | - |
| CAG-QIL [14] | TSN | 44.7 | 37.6 | 29.8 | 21.9 | 14.5 | 29.7 | I3D | 8.5 | 6.5 | 4.2 | 2.8 | 1.9 | 4.8 |
| SimOn [31] | TSN | 54.3 | 45.0 | 35.0 | 23.3 | 14.6 | 34.4 | - | - | - | - | - | - | - |
| SimOn* [31] | TSN | 57.0 | 47.5 | 37.3 | 26.6 | 16.0 | 36.9 | - | - | - | - | - | - | - |
| Instance-level Online TAL | ||||||||||||||
| OAT-Naive [15] | TSN | 57.6 | 50.6 | 43.0 | 30.0 | 15.7 | 39.4 | I3D | 20.3 | 16.6 | 12.9 | 7.7 | 3.6 | 12.2 |
| OAT-OSN [15] | TSN | 63.0 | 56.7 | 47.1 | 36.3 | 20.0 | 44.6 | I3D | 22.1 | 18.5 | 14.2 | 8.9 | 4.7 | 13.7 |
| MATR | TSN | 70.3 | 62.7 | 52.1 | 38.6 | 23.7 | 49.5 | I3D | 23.5 | 19.3 | 14.3 | 9.4 | 5.7 | 14.4 |
그러나 그들의 성능은 MATR보다 훨씬 낮으며, 이는 제안된 MATR의 memory queue의 효과를 입증한다. 우리는 또한 우리의 모델을 여러 offline TAL 방법들과 비교한다. online 및 offline 방법들 사이에 여전히 성능 격차가 존재하지만, 우리의 모델은 offline 방법들과 비슷한 성능을 달성하며, 심지어 이전 연구들 [39, 43]을 능가한다. MUSES 데이터셋에서의 성능은 THUMOS14에 비해 낮은데, 그 이유는 두 가지이다: (1) MUSES의 action instance는 multi-shot으로 캡처되어 action boundary를 감지하기 어렵게 만들고, (2) "quarrel"과 "fight"와 같이 혼동하기 쉬운 action class들이 있어 action classification을 어렵게 만든다. 이러한 요인들은 MUSES를 도전적인 데이터셋으로 만들고 그 성능의 상한선을 제한한다.
4.3 Ablation Studies
우리는 제안된 모듈의 효과를 보여주기 위해 THUMOS14 및 MUSES 데이터셋에 대한 ablation study를 수행한다.
제안된 모듈에 대한 Ablation. Table 2에서 우리는 모델의 각 구성 요소의 효과를 검증하기 위한 ablation study를 수행한다. Table 2(a)는 memory-augmented video의 구성 요소에 초점을 맞추고 있으며, flag token과 segment encoder를 모두 제거했을 때 성능이 하락하는 것을 보여준다. 이 결과는 과거 정보를 선택적으로 저장하는 것의 효능과 입력 segment 전반에 걸친 시간적 맥락의 중요성을 보여준다. Table 2(b)에서는 단일 decoder를 사용하여 시작과 끝을 동시에 예측했는데, 이는 49.5 mAP에서 42.7 mAP로 상당한 성능 하락을 초래했다. 이 결과는 시작 및 끝 예측을 위해 두 개의 개별 decoder를 사용하는 우리의 새로운 action localization 방법의 기여를 입증한다. 우리는 또한 새로운 query 설계, 즉 시작 decoder를 위한 메모리 샘플링 및 instance query를 위한 positional embedding에 대해서도 ablation을 수행했다. 결과는
Table 2: 제안된 모듈에 대한 Ablation. THUMOS14 데이터셋에서 mAP(%)로 보고된 결과.
| Memory size | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| w/o mem | |||||||||||||
| Method | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average | 65.8 | 58.9 | 47.6 | 36.9 | 20.8 | 46.0 | |
| Ours | 70.3 | 62.7 | 52.1 | 38.6 | 23.7 | 49.5 | 1 | 67.2 | 59.9 | 50.7 | 37.9 | 22.7 | 47.7 |
| (a) Memory-augmented video encoder | 3 | 67.3 | 61.9 | 51.9 | 37.9 | 22.6 | 48.3 | ||||||
| w/o flag token | 67.3 | 61.0 | 50.1 | 36.5 | 22.3 | 47.4 | 7 | 70.3 | 62.7 | 52.1 | 38.6 | 23.7 | 49.5 |
| w/o segment encoder | 65.8 | 59.3 | 49.9 | 36.3 | 21.8 | 46.6 | 11 | 67.9 | 60.6 | 49.8 | 37.8 | 23.2 | 47.9 |
| (b) Instance decoding module | 15 | 66.9 | 60.1 | 50.7 | 38.4 | 24.1 | 48.0 | ||||||
| 19 | 67.0 | 60.1 | 52.5 | 40.2 | 24.6 | 49.1 | |||||||
| single decoder | 65.1 | 56.4 | 45.0 | 30.5 | 16.7 | 42.7 | (b) MUSES dataset | ||||||
| w/o splitting query | 66.2 | 61.4 | 50.9 | 38.0 | 23.2 | 47.9 | w/o mem | 22.3 | 17.6 | 13.1 | 9.1 | 4.6 | 13.3 |
| w/o sampling | 66.1 | 59.6 | 50.6 | 39.9 | 22.5 | 47.2 | 1 | 23.0 | 18.0 | 13.5 | 8.6 | 4.9 | 13.6 |
| w/o pos embedding | 67.2 | 60.5 | 49.8 | 36.3 | 22.7 | 47.3 | 3 | 23.1 | 18.3 | 13.9 | 8.9 | 5.1 | 13.9 |
| (c) Training objective | 7 | 23.5 | 18.1 | 13.5 | 8.9 | 4.9 | 13.8 | ||||||
| 11 | 22.9 | 18.7 | 14.0 | 9.4 | 5.4 | 14.1 | |||||||
| w/o DIoU loss | 62.2 | 53.4 | 43.2 | 31.0 | 17.4 | 41.4 | 15 | 23.5 | 19.3 | 14.3 | 9.4 | 5.7 | 14.4 |
| 19 | 22.7 | 18.9 | 13.8 | 9.6 | 5.5 | 14.1 |
Table 3: 메모리 큐의 최대 길이에 대한 분석.
Table 4: THUMOS14에서 다양한 메모리 모듈 간의 비교.
| Memory module | Backbone | Segment size | Inference time | fps | Memory parameters | Average mAP |
|---|---|---|---|---|---|---|
| MAT [33] | TSN [34] | 64 | 191.9 ms | 5.2 | 40.1 M | 46.9 |
| E2E-LOAD [2] | TSN | 64 | 196.1 ms | 5.1 | 53.1 M | 47.9 |
| MATR | TSN | 64 |
제안된 구성 요소의 모든 설계 선택이 action instance localization에 중요함을 보여준다. 마지막으로, DIoU loss 없이 모델을 학습하면 성능이 크게 하락하는데, 이는 On-TAL에 대한 instance-level supervision의 중요성을 보여준다 (Table 2(c)).
메모리 큐 크기의 영향. 우리는 다양한 메모리 큐 크기에 대한 ablation study를 수행한다. Table 3에서 보듯이, 메모리 큐를 사용하면 메모리가 없는 경우에 비해 성능이 향상되며, 일반적으로 메모리 큐 크기가 증가함에 따라 성능도 향상된다. THUMOS14의 경우 7, MUSES의 경우 5와 같이 학습 분할에서 상위 99%의 instance를 커버하는 적절히 큰 메모리 큐 크기를 사용하면, 모델은 강력한 성능을 보이며 이전 state-of-the-art 모델 [15]보다 높은 성능을 달성한다. THUMOS14에서는 메모리 큐 크기 7이, MUSES에서는 15가 가장 좋은 성능을 보인다.
제안된 메모리 큐와 메모리를 사용하는 OAD 방법 비교. 우리는 우리 모델의 memory-augmented video encoder (Sec. 3.2)를 교체하여 OAD task [2, 33]의 이전 메모리 모듈과 우리의 메모리 모듈을 비교한다. 공정한 비교를 위해 모든 방법의 attention block의 hidden dimension은 1024로 설정되었다. Table 4에서 보듯이, MATR은 mAP와 시공간 복잡성 모두에서 기존 메모리 모듈보다 우수한 성능을 보인다. 기존 메모리 모듈은 여러 attention block을 사용하는 반면, 우리의 메모리 모듈은 segment encoder와 flag prediction head로 구성되어 파라미터 수와 추론 속도 면에서 우수하다.
Segment 크기 분석. Fig. 4에서 보듯이, 우리 모델은 입력 segment 크기에 덜 민감하며, 이는 다양한
Fig. 4: THUMOS14에서 segment 크기에 따른 평균 mAP(%). 빨간색 선은 우리 모델의 결과를 나타내고 파란색 선은 OAT-OSN의 결과를 나타낸다.
Table 5: 시작 및 끝 예측 head에 대한 Ablation. Reg와 Cls는 각각 offset regression과 region classification을 의미한다.
| Start | End | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average |
|---|---|---|---|---|---|---|---|
| Reg | Reg | 64.2 | 59.0 | 50.0 | 37.8 | 22.7 | 46.7 |
| Reg + Cls | Reg | ||||||
| Reg + Cls | Reg + Cls | 64.0 | 58.9 | 50.2 | 38.3 | 23.2 | 46.9 |
Table 6: THUMOS14 데이터셋에서 메모리 압축 계수에 대한 Ablation.
| Compress factor | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average |
|---|---|---|---|---|---|---|
| None (Ours) | 52.1 | 38.6 | 23.7 | |||
| 2 | 67.3 | 59.9 | 49.4 | 36.9 | 22.3 | 47.7 |
| 4 | 68.1 | 61.5 | 49.3 | |||
| 8 | 67.5 | 61.3 | 52.0 | 38.8 | 23.8 | 48.7 |
Table 7: THUMOS14에서 추론 시간 및 파라미터 수 비교.
| Method | Backbone | Segment size | Inference time | fps | # Parameters | Average mAP |
|---|---|---|---|---|---|---|
| OAT-OSN [15] | TSN [34] | 64 | 163.7 ms | 6.1 | 128.7 M | 44.6 |
| MATR | TSN | 64 | 167.1 ms | 6.0 | 192.8 M | 49.5 |
| MATR | TSN | 16 | 53.8 ms | 18.6 | 192.8 M | 46.3 |
데이터셋에서 신중하게 튜닝되어야 한다. OAT-OSN의 성능은 segment 크기가 64에서 8로 감소할 때 44.6 mAP에서 25.8 mAP로 크게 하락하는 반면, 우리 모델의 성능 하락은 9.1%p에 불과하다.
시작 및 끝 예측 Head 분석. 우리는 시작 예측과 끝 예측을 위한 다양한 offset prediction 방법을 조사한다 (Table 5). 첫 번째 방법인 region classification이 없는 시작 offset regression의 경우, offset은 학습 데이터셋의 offset 통계를 사용하여 정규화된다. region classification과 offset regression을 시작 예측에 적용하고, 끝 예측에는 offset regression만 적용하는 두 번째 접근 방식이 가장 좋은 성능을 보인다. 끝 예측에 region classification을 사용할 때 성능이 하락하는 이유는 프레임 단위의 끝 분류가 복잡한 문제이며, 이는 성능에 부정적인 영향을 미치기 때문이다.
메모리 압축 계수 분석. 우리는 또한 입력 segment feature를 압축하여 메모리에 효율적으로 저장하는 실험을 수행한다. 우리는 1D convolution layer를 사용하여 segment feature의 수를 압축한다. Table 6에서 보듯이, 4배 압축은 효율적인 메모리 사용과 함께 경쟁력 있는 결과를 제공한다. 그러나 우리는 flag token을 통해 이미 효율적인 메모리 활용을 달성했으며, 각 데이터셋에 대해 최적화가 필요한 추가 하이퍼파라미터를 사용하지 않기 위해 이 방법을 사용하지 않기로 결정한다.
추론 시간. Table 7에서 보듯이, 동일한 backbone과 segment 크기를 사용할 때, MATR의 추론 시간은 OAT-OSN과 거의 동일하지만, 평균 mAP는 훨씬 더 우수하다. 또한, segment 길이를 16으로 줄임으로써 MATR은 mAP와 추론 시간 모두에서 OAT-OSN을 능가한다. MATR은 decoder를 시작 decoder와 끝 decoder로 분리했기 때문에 더 많은 파라미터를 사용한다.
Fig. 5: THUMOS14에서 MATR과 OAT-OSN [15]의 정성적 결과. Generated time은 예측된 instance가 생성된 타임스탬프이다.
4.4 Qualitative Results
Fig. 5는 우리 모델과 OAT-OSN [15]의 예측 결과를 보여준다. 결과에 따르면 MATR은 현재 action이 끝난 직후의 구간을 식별함으로써 action instance를 효율적으로 감지하는 능력을 가지고 있다. 또한, 우리 모델이 OAT-OSN보다 action instance를 더 정확하게 분류하고 지역화(localize)할 수 있음을 보여준다.
5 Conclusion
본 논문에서는 memory queue를 활용하여 장기적인 context를 이용하는 새로운 모델인 MATR을 도입함으로써 online temporal action localization (TAL) 문제를 해결한다. 또한, 우리는 Transformer 기반의 새로운 action instance localization 방법을 제안하는데, 이는 action start와 action end를 개별적으로 식별한다. 그 결과, MATR은 기존의 online TAL 방법들을 능가할 뿐만 아니라, offline TAL 방법들과도 견줄 만한 성능을 보여준다. 향후 On-TAL 연구를 촉진하기 위해 코드베이스는 공개될 예정이다.
한계점 (Limitations): memory queue에 여러 action instance가 포함될 경우, action instance가 잘못된 start point와 매칭될 위험이 있다. 또한, MATR은 입력 segment를 memory queue에 저장할 때, 해당 입력 segment가 action instance와 관련이 있는지 여부만 고려하며, memory에 저장된 과거 context와의 관계는 활용하지 않는다. 이러한 문제들을 해결하기 위해, 입력 segment feature를 저장할 때 memory queue에 저장된 정보를 활용하는 방법을 연구한다면, 더욱 효과적인 memory 저장 및 활용으로 이어질 수 있을 것이다.
감사의 글 (Acknowledgement). 본 연구는 한국 과학기술정보통신부의 NRF 그랜트 및 IITP 그랜트(RS-2019-II191906, RS-2021-II212068, RS-2022-II220290, NRF-2021R1A2C3012728)의 지원을 받아 수행되었다.
Appendix
이 보충 자료는 페이지 제한으로 인해 본 논문에서 생략된 내용을 제공한다. Sec. A에서는 instance decoding module의 start decoder에 사용된 2D temporal positional encoding에 대한 추가 설명을 제공한다. Sec. B에서는 memory queue update 절차를 제시한다. Sec. C에서는 THUMOS14 및 MUSES 데이터셋의 각 클래스별 AP 점수를 분석한다. Sec. D에서는 하이퍼파라미터 설정을 포함한 추가 실험 세부 사항을 설명한다. Sec. E에서는 하이퍼파라미터 및 후처리(post-processing)의 영향을 포함하여 우리 프레임워크에 대한 심층 분석을 제시한다. Sec. F에서는 THUMOS14 데이터셋에 대한 우리 모델의 정성적 결과를 추가로 제공한다.
A About 2D Temporal Positional Encoding
이 섹션에서는 인스턴스 디코딩 모듈(instance decoding module)의 start decoder에 있는 cross-attention layer의 key에 적용되는 2D temporal positional encoding 구현에 대해 더 자세히 설명한다. Sec. 3.3에서 설명했듯이, cross-attention layer의 key는 memory queue와 현재 segment feature를 연결(concatenate)하여 구성된다. 따라서 2D temporal positional encoding은 memory queue 내 segment들의 상대적 위치와 segment 내 frame들의 상대적 위치를 모두 포함해야 한다. 여기서 상대적 위치는 현재 frame과 해당 frame이 속한 현재 segment feature의 위치를 기준으로 정의된다.
구체적으로, 2D temporal positional encoding의 적용을 설명하는 실제 예시를 들어보겠다. memory queue가 4개의 segment feature를 저장하고 있고, 각 segment가 4개의 frame으로 구성되어 있다고 가정해보자. 만약 memory queue에 저장된 segment들의 인덱스가 이고, 현재 segment의 인덱스가 13이라면, start decoder의 memory feature에 대한 인덱스는 이 된다. 이 경우, 현재 segment를 기준으로 한 상대적 segment 위치는 각각 이 되며, 각 segment 내에서의 상대적 frame 위치는 이 된다. 이 두 상대적 위치는 각각 차원의 sinusoidal positional encoding을 사용하여 인코딩된 후, 연결(concatenate)되어 차원의 positional encoding을 얻게 된다. 상대적 segment 위치와 상대적 frame 위치를 분리함으로써, 2D temporal positional encoding은 많은 수의 frame에 대한 positional encoding을 표현하는 데 더욱 효율적이게 된다.
B Algorithm of Memory Update Module
Algorithm 1에 제시된 메모리 업데이트 절차에 대한 세부 사항을 설명한다. 이 알고리즘은 "UpdateMemQueue" 함수의 의사 코드와 메모리 큐 업데이트 절차에서의 사용법을 보여준다. 함수의 입력 파라미터는 segment와 flag이다 (23행). 여기서 segment는 현재 세그먼트 feature를 의미하고, flag는 현재 세그먼트를 메모리 큐에 저장할지 여부를 결정하는 Boolean flag이다.
Algorithm 1: Pseudocode for memory update.
class UpdateMemQueue():
self.mem_queue = [] # cached memory queue
self.max_len # max memory len
def forward(self, segment, flag): # update memory queue
if flag == True:
self.mem_queue.append(segment)
if len(self.mem_queue) > self.max_len:
self.mem_queue.pop_first()
if training == True: # select flag type
flag = gt_flag
else:
flag_prob = flag_token.sigmoid()
if flag_prob > flag_threshold:
flag = True
else:
flag = False
if isNewVideo: # reset update module when a new video starts
update_mem = UpdateMemQueue()
update_mem(segment, flag) # update memory queue
학습 중에는 ground-truth flag가 사용된다 (11-12행). 추론 중에는 flag probability가 flag threshold를 초과하면 flag는 True가 되고, 그렇지 않으면 False가 된다 (13-18행). 서로 다른 비디오 간에 메모리 큐가 섞이는 것을 방지하기 위해, 새로운 비디오가 시작될 때마다 함수가 재초기화된다는 점에 유의해야 한다 (20-21행).
C Analysis of AP scores of MATR
Fig. S1과 Fig. S2는 THUMOS14 [13] 및 MUSES 데이터셋 [22]에서 MATR의 Average Precision (AP) 점수를 보여준다. THUMOS14 데이터셋에서는 Long Jump, Pole Vault, Javelin Throw 액션 클래스가 가장 높은 성능을 보인 반면, Cricket Shot, Billiards 액션 클래스는 가장 낮은 AP를 기록했다. MUSES 데이터셋에서는 Conversation 클래스가 48.7로 가장 높은 AP를 보였고, Singing은 0.3으로 가장 낮은 AP를 기록했다. 두 데이터셋 모두 인간 중심의 액션 클래스를 포함하고 있어, 액션 클래스 간의 차이가 작고 미세한 분류(fine-grained classification)가 요구되어 구별하기 어렵다. 특히 MUSES 데이터셋에는 quarrel과 fight, conversation과 telephone conversation처럼 혼동하기 쉬운 액션 클래스들이 존재한다.
Fig. S1: THUMOS14 데이터셋에서 IoU threshold 일 때 각 클래스별 Average Precision (AP).
Fig. S2: MUSES 데이터셋에서 IoU threshold 일 때 각 클래스별 Average Precision (AP).
Table S1: THUMOS14 데이터셋에서 instance decoding module의 instance query 수 이 미치는 영향.
| 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average | |
|---|---|---|---|---|---|---|
| 10 (Ours) | ||||||
| 20 | 66.6 | 61.0 | 51.4 | 37.3 | 23.1 | 47.9 |
| 30 | 64.8 | 59.4 | 48.8 | 35.9 | 21.1 | 46.0 |
D Experimental Details
하이퍼파라미터 (Hyperparameters)
우리는 이전 OnTAL 연구 [14, 15, 31]를 따라, THUMOS14 데이터셋의 RGB 및 flow feature 추출을 위해 **Kinetics [4]로 사전학습된 frozen two-stream TSN [34]**을 사용하고, MUSES 데이터셋의 RGB feature 추출을 위해 **Kinetics [4]로 학습된 I3D [4]**를 사용한다.
segment 크기 는 THUMOS14에서 64, MUSES에서 75로 설정된다.
segment feature의 차원 는 두 데이터셋 모두 1024로 설정된다.
memory-augmented video encoder의 경우, 두 데이터셋 모두 8개의 attention head를 가진 3개의 Transformer layer를 쌓는다.
flag threshold 는 0.5로 설정된다.
instance decoding module의 경우, 두 데이터셋 모두 4개의 attention head를 가진 5개의 Transformer layer를 쌓는다.
class query와 boundary query의 개수 은 THUMOS14에서 10, MUSES에서 6이다.
post-processing에 사용되는 online NMS threshold는 0.3으로 설정된다.
memory 크기 은 THUMOS14에서 7, MUSES에서 15로 설정된다.
prediction head의 경우, 와 는 16으로 설정된다.
학습 (Training)
우리는 **Adam optimizer [16]**를 사용하여 모델을 학습시킨다.
Adam optimizer의 파라미터는 , , 이다.
학습 epoch 수는 THUMOS14 데이터셋에서 100 epoch, MUSES 데이터셋에서 30 epoch이다.
**CosineAnnealing scheduler [26]**를 warmup restarts와 함께 사용하며,
최소 learning rate는 , 최대 learning rate는 , , , 로 설정된다.
여기서 은 하나의 학습 사이클의 epoch 수, 은 하나의 사이클에서 learning rate가 증가하는 epoch 수, 는 각 사이클마다 가 감소하는 비율이다.
batch size는 THUMOS14에서 64, MUSES에서 75로 설정된다.
focal loss 계수는 THUMOS14에서 이고, MUSES에서 이다.
모든 loss 계수는 1로 설정된다.
E Additional Experiments
Instance query 수 분석.
Table S1에서 우리는 instance decoding module의 instance query 수 이 미치는 영향을 조사했다. 일반적으로 instance query 수가 증가함에 따라 성능이 감소하는 경향을 보였으며, 일 때 최적의 결과를 얻었다. 여기서 10은 가능한 가장 작은 값인데, 이는 이 지정된 범위 내에 나타나는 최대 action instance 수보다 크거나 같아야 하기 때문이다. 여기서 는 현재 타임스탬프 이전의 detection region 크기를, 는 현재 타임스탬프 이후의 anticipation region 크기를 나타낸다.
Table S2: THUMOS14 데이터셋에서 NMS 임계값에 따른 성능 분석.
| NMS threshold | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average |
|---|---|---|---|---|---|---|
| 0.1 | 68.7 | 61.1 | 50.4 | 37.3 | 23.7 | 48.2 |
| 0.2 | 69.8 | 61.9 | 51.3 | 37.9 | 23.4 | 48.9 |
| 0.3 (Ours) | 52.1 | 38.6 | 23.7 | |||
| 0.4 | 69.6 | 62.3 | 38.5 | 23.4 | 49.2 | |
| 0.5 | 67.8 | 61.0 | 51.6 | 38.6 | 23.7 | 48.5 |
| 0.6 | 66.2 | 60.0 | 51.0 | 48.1 | ||
| 0.7 | 62.6 | 57.0 | 49.0 | 37.9 | 24.4 | 46.2 |
Table S3: THUMOS14 데이터셋에서 detection region 크기 와 anticipation region 크기 분석.
| Method | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | Average | ||
|---|---|---|---|---|---|---|---|---|
| A | 8 | 8 | 67.5 | 62.1 | 38.5 | 23.1 | 48.7 | |
| B | 16 | 0 | 60.5 | 54.1 | 41.5 | 29.5 | 15.4 | 40.2 |
| C | 16 | 8 | 67.4 | 61.8 | 51.0 | 37.8 | 24.1 | 48.4 |
| D (Ours) | 16 | 16 | 23.7 | |||||
| E | 24 | 8 | 67.3 | 60.9 | 51.7 | 39.1 | 48.7 | |
| F | 32 | 0 | 63.2 | 54.9 | 43.1 | 28.9 | 17.4 | 41.5 |
후처리(post-processing) 분석.
Table S2는 NMS 후처리(post-processing)의 효과를 요약한다. 본 논문의 Sec. 3.4에서 설명했듯이, 우리는 MATR에 두 가지 NMS 후처리를 적용한다. 하나는 현재 타임스탬프에서 생성된 action proposal들 간의 NMS이고, 다른 하나는 과거에 생성된 고도로 중첩된 action proposal들 간의 NMS이다. Table S2의 NMS 임계값은 두 NMS 후처리에서 사용되는 tIoU 임계값을 나타낸다. tIoU 임계값을 초과하는 action instance들은 동일한 instance로 간주되어 제거된다. 우리 모델은 다양한 NMS 임계값에 걸쳐 견고한 성능을 보였으며, 임계값이 0.3일 때 최적의 결과를 얻었다.
및 분석.
Table S3에 제시된 바와 같이, 우리는 하이퍼파라미터 와 의 효과를 보여준다. 여기서 는 현재 타임스탬프 이전의 detection region 크기를, 는 현재 타임스탬프 이후의 anticipation region 크기를 나타낸다. 본 논문의 Sec. 3.5에서 설명했듯이, MATR은 action end time이 범위 내에 있는 action instance를 예측하도록 학습된다. A와 B, D, E와 F를 비교했을 때, 총 범위 길이 가 동일하더라도, 현재 타임스탬프 이후에 끝나는 action instance ()를 예측하는 것이 매우 효과적이다. B, C, D를 동일한 로 비교했을 때, 가 증가함에 따라 mAP가 증가한다. 와 가 모두 16으로 설정되었을 때 최고의 성능을 달성한다. 따라서 우리는 최종 모델에 하이퍼파라미터 설정 D를 채택한다.
Fig. S3: THUMOS14에서 다양한 메모리 크기를 사용한 MATR의 정성적 결과.
F More Qualitative Results
Fig. S4는 MATR과 OAT-OSN [15]의 예측 결과를 시각화한다. 이 결과는 MATR이 기존 On-TAL 방법들보다 액션 인스턴스를 더 잘 지역화(localize)할 수 있음을 보여준다.
Fig. S4 (a)와 (b)에서 MATR은 예측된 종료 시간이 현재 타임스탬프를 넘어가는 액션 인스턴스를 제거함으로써, 불확실한 미래 예측을 피하고 액션의 종료 시간을 정확하게 예측한다.
Fig. S4 (c)에서 MATR은 Cliff Diving과 Diving처럼 유사한 시간 간격을 가진 다른 클래스의 인스턴스들을 예측한다.
Fig. S4 (d)에서 MATR은 이전 Frisbee Catch 액션 인스턴스에 대한 정보를 장기적인 context로 활용하여, 두 번째 Frisbee Catch 액션을 감지한다. 이는 현재 세그먼트의 시각적 feature만으로는 감지하기 어려운 도전적인 task이다.
Fig. S4 (e)에서 MATR은 여러 부분으로 분할되기 쉬운 인스턴스에서도 강건하게 작동한다.
한계점 (Limitations)
Fig. S3에서 볼 수 있듯이, 메모리 큐(memory queue)에 여러 액션 인스턴스가 포함될 경우, 액션 인스턴스가 잘못된 시작점과 매칭될 위험이 있다. 메모리 크기가 7과 15일 때, 모델은 세 가지 ground-truth 인스턴스 모두에 대해 정확한 액션과 간격을 예측한다. 그러나 메모리 크기가 15일 때는 메모리 큐에 유사한 외형을 가진 시작 타임스탬프가 더 많이 포함되어, 추가적인 인스턴스가 잘못된 시작 타임스탬프와 매칭되는 오류가 발생한다.
Fig. S4: THUMOS14 데이터셋에 대한 추가적인 정성적(qualitative) 결과. Generated time은 예측된 인스턴스가 생성된 타임스탬프를 나타낸다.