안녕하세요, 이번 주차 X-Review에서 제가 소개해드릴 논문은 올해 CVPR에 게재된 <Proposal-based Multiple Instance Learning for Weakly-Supervised Temporal Action Localization>입니다. 본 논문은 비디오 분야에서 Weakly-supervised Temporal Action Localization(WTAL) task를 수행하는 방법론을 소개하고 있고 사실 기존 WTAL 방법론들의 inference 방식을 알고계신 분들은 제목만 보고도 방법론의 핵심 차별점이 무엇인지 눈치채실거라 생각합니다.
WTAL task가 무엇인지에 대한 자세한 소개는 이전에 여러 번 했으니 생략하고, 바로 논문의 Introduction을 보겠습니다.
1. Introduction
비디오와 관련된 어떠한 task이든 그것을 수행하는 과정에서 비디오에 속한 action의 특성을 파악하거나 구간을 모델링하는 것은 중요합니다. Intelligent surveillance, Video summarization, Video highlight detection 등의 관련 task에서도 Temporal Action Localization(TAL)은 활발히 응용되고 있다고 하네요.
기술이 발전하며 수많은 비디오가 쏟아지고, 대용량 데이터셋이 구축되고 있는 상황에서 Fully-supervised TAL을 수행하기 위해 비디오 segment 별 temporal annotation을 일일이 얻는 것은 쉬운 일이 아닙니다. 학습을 위한 데이터를 구축하는 기업이나 연구소 입장에서 경제성을 생각한다면 라벨링에 들어가는 비용과 인력을 최소화하려고 노력하겠죠. 앞서 말씀드렸듯 학계의 다른 task에서도 Fully-supervised TAL 방법론을 응용하려면 그 분야에서 사용하는 데이터셋에 특정 action의 시간 구간이 라벨링되어있어야 하는데, 그렇지 않은 경우 새롭게 라벨링하는 것도 쉬운 일이 아닐 것입니다.
이러한 관점에서 WTAL의 등장 배경과 필요성은 충분히 설명된 상태입니다. Unsupervised 기반으로 수행하는 TAL이 일반적으로 높은 성능을 보이고 실제로도 잘 작동한다면 좋겠지만, 아직 성능 차이가 크고 충분히 연구되지 않아 지금은 Fully-supervised TAL과 더불어 video-level label만 가지고도 TAL을 꽤나 잘 수행할 수 있는 WTAL이 가장 활발히 연구되고 있는 상황입니다.
그렇다면 저자가 지적하는 기존 WTAL 방법론들의 문제점은 무엇일까요?
저자가 개선하고자 하는 문제는 WTAL의 학습과 inference 대상 간 차이에 있습니다. 저자가 말하는 문제점이 왜 진짜 문제인지를 이해하려면 일반적인 WTAL 방법론의 학습과 inference 방식을 알아야겠죠.
기존 WTAL 방법론들의 학습-inference 방식
기존이라고 하여 WTAL 완전 초창기의 방식은 아니고, 약 21~22년도부터 제안된 효과적인 학습-inference 방식에 대해 알아보겠습니다. Backbone network(보통 I3D)를 통해 추출한 비디오의 feature는 각 논문이 제안하는 다양한 방법론을 거쳐 Class Activation Sequence(CAS)를 만들어내게 됩니다.
CAS는 아래 그림과 같이 비디오를 구성하는 총 T개의 snippet이 데이터셋에 존재하는 클래스 C개 + background 1개, 총 (C+1)개의 클래스 중 각 클래스에 속할 확률값을 담고 있는 행렬에 해당합니다. 이렇게 얻은 CAS를 snippet 축에 대해 평균내기도 하고, 보통은 별도의 모듈을 두어 하나의 snippet이 어떤 클래스이든 관계없이 action에 해당할 확률인 Actionness score 또한 만들어줍니다. Actionness score는 일종의 action과 관련있는 attention weight로도 볼 수 있겠죠.
모든 untrimmed video에는 background가 반드시 존재하기 때문에 현 시점에서의 CAS는 ‘BGD’ 클래스의 값이 활성화되어 있을 것입니다. 이 때 저희가 추출한 Actionness score를 snippet 별 action이 존재할 확률 또는 가중치로 보고 각 클래스 별로 모두 곱해준다면 아래 그림과 같이 background가 억제된 CAS를 만들어낼 수 있게 되겠죠.
결과적으로는 일반 CAS S_{base}, background가 억제된 CAS S_{supp}, Actionness score A를 가지고 학습을 수행합니다. S_{base}, S_{supp}에서 top-k pooling을 수행해 위 그림의 오른쪽 부분과 같은 video-level class score를 추출하고 저희가 가지고 있는 GT 라벨에 ‘BGD’ 존재 유무를 달리 붙여주며 아래 그림과 같이 CrossEntropyLoss로 학습하게 됩니다.
위와 같은 방식으로 학습을 마치고 성능을 측정하기 위해 inference를 수행하는 과정은 아래와 같습니다.
Inference를 위해 S_{base}와 A가 활용됩니다. A에서 사전에 정의한 여러 개의 threshold마다 그 값을 넘기는 snippet 구간을 모아 이를 proposal candidate라고 칭합니다. 이렇게 모은 proposal candidate들에 대해 그 구간에 대한 CAS를 살펴보며 특정 클래스에 대한 Outer-Inner Contrast score를 기반으로 NMS를 수행하여 최종 예측인 proposal을 만들어냅니다.
저자는 기존 WTAL framework의 학습-inference 과정 속 suboptimal한 부분이 있다고 주장합니다. 학습은 snippet 단위로 수행하면서, 정작 실제 성능 측정에 사용하거나 또 다른 task에서 활용되는 최종 결과물인 “proposal”에 대해서는 별다른 학습이 이루어지지 않고 있다는 것입니다. 쉽게 말하면 학습 과정에서 최적화하고자 하는 대상과, 실제 inference시의 결과값이 일치하지 않는다는 뜻입니다.
우선 저자는 방금 설명드린 segment 단위의 학습 방식을 S-MIL이라고 칭하였습니다. S는 segment 또는 snippet 단위를 뜻할 것이고 MIL은 CAS를 기반으로 학습하는 Multiple Instance Learning 방식을 의미합니다. 저자는 이러한 S-MIL 방식에 두 가지 단점이 있다고 주장합니다.
두 가지 중 첫 번째로 그림 1의 (a)에서 주장하는 바는, 방금 위에서 제가 언급했듯 학습 과정과 추론 과정에서의 목적이 다르다는 것입니다. 학습 때는 클래스 또는 action 내, 외부에 대한 분류를 segment 단위로 수행해왔지만 정작 inference 할 때는 segment들을 엮은 proposal에 대해 점수를 매겨 최종 proposal을 만들어낸다는 것입니다. 학습 과정에서도 proposal 후보들에 대한 후처리나 정제 과정을 거친다면 더 좋은 최종 proposal을 기대해볼 수 있다는 것이죠.
두 번째로 S-MIL에서처럼 segment 단위로 학습하는 경우 하나의 segment가 담고 있는 정보가 전체 비디오 상에서 보면 너무 짧거나 모호하기 때문에 제대로된 분류를 수행하기 어렵다는 점입니다. 실제로 WTAL 방법론들은 한 비디오를 겹치지 않는 16프레임 덩어리로 나눠 하나의 segment를 만들게 되는데요, 비디오가 30fps인 경우 16프레임으로 이루어진 한 segment는 실제 비디오 상에선 ~0.5초 정도에 해당할 것입니다.
그림 1의 (b)를 두 번째 문제점에 대한 단적인 예시로 들 수 있습니다. 각 비디오는 ‘높이 뛰기’, ‘멀리 뛰기’, ‘3단 뛰기’에 해당하는데 jump를 수행하기 전 도움닫기 하는 과정은 시각적으로나 motion 관점에서 모두 유사하게 보일 수 있어 저 부분만 봐서는 셋 중 어떤 action으로 분류되야할지 알 수 없기 때문에 그 뒤의 action이 무엇인지까지 봐야만 segment를 분류할 수 있다는 주장입니다. 그러기 위해서는 지금의 S-MIL처럼 segment 단위의 분류에서 한 발 더 나아가 여러 segment가 엮여있는 proposal-level에서의 학습이 반드시 수반되어야 할 것입니다.
문제 정의는 이정도로 충분히 되었다고 생각하고, 이를 해결하기 위해 저자는 2-stage 기반의 학습 파이프라인을 제안합니다. 앞선 S-MIL과 다르게 이제는 Proposal을 대상으로도 학습하니, 저자가 제안하는 방법론의 이름은 P-MIL이라고 합니다. 첫 번째 stage에서는 기존의 S-MIL을 수행하여 두 번째 stage인 P-MIL 단계에서 학습할 proposal candidate들을 얻습니다. 그리고 논문의 실제 contribution인 P-MIL 단계에선 3가지 모듈이 등장하는데, 그 목적과 동작 방식은 방법론에서 알아보겠습니다.
그럼 논문의 contribution을 정리하며 제안하는 모듈의 이름만 간단히 살펴보고, 방법론으로 넘어가겠습니다.
Contribution
- We propose a novel Proposal-based Multiple Instance Learning (P-MIL) framework, which can handle
the drawbacks of the S-MIL framework by directly classifying the candidate proposals in both the training and testing stages. - We propose three key designs (Surrounding Contrastive Feature Extraction module, Proposal Completeness Evaluation module, Instance-level Rank Consistency loss), which can deal with the challenges in different stages of the P-MIL framework.
- Extensive experimental results on THUMOS14 and ActivityNet datasets demonstrate the superior performance of the proposed framework over state-of-the-art methods.
2. Methods
S-MIL과 P-MIL을 각 stage에서 수행하는 과정에서의 notation을 정리하고 시작하겠습니다. 하나의 비디오 V를 입력받아 \{(c_{i}, s_{i}, e_{i}, q_{i})\}_{i=1}^{M_{p}}를 예측하고 여기서 M_{p}는 proposal의 개수입니다. 각 비디오에 대한 video-level label y는 해당 비디오에 특정 클래스 존재 여부에 따라 0 또는 1로 들어가게 됩니다.
S-MIL에서 얻은 proposal 후보들에 대해 P-MIL에서는 두 가지 과정을 거쳐 최종 proposal을 만들어내게 됩니다. 이 두 가지 과정에는 총 3개의 모듈이 포함되어 있는데요, 두 과정은 각각 Proposal feature extraction and classification, Proposal refinement에 해당합니다.
2.1 Candidate Proposal Generation
2.1절이 두 개의 stage 중 첫 번째 stage로, S-MIL 단계에 해당합니다. P-MIL을 수행하려면 S-MIL로부터 proposal 후보들을 먼저 얻어야겠죠. 위 과정은 제가 Introduction에서 설명하였는데, 결과적으로 S-MIL의 학습 및 inference 과정을 통해 얻어진 proposal 후보들을 출력으로 내뱉게 됩니다.
S-MIL 수행을 위해 설정된 기존 방법론은 CO2-Net으로, 해당 방법론에 대한 세부 사항이 궁금하신 분들은 제 이전 리뷰를 참고해주시기 바랍니다.
다만 P-MIL의 학습을 위해 조금 다르게 설정한 점이 존재합니다. 원래는 action을 찾는 task이다보니 action에 대한 proposal만 Introduction에서 설명한 방식으로 만들어내는데, action과 background의 차이를 조금 더 명시적으로 학습하기 위해 actionness score A가 낮은 구간을 엮어 background 구간에 대한 proposal도 만들어냅니다.
Action에 대한 proposal P_{act}는 M_{1}개, background에 대한 proposal P_{bkg}는 M_{2}개 추출하여 P-MIL에서 사용할 proposal 후보의 집합 P는 아래 수식과 같이 정리할 수 있습니다.
- P = P_{act} + P_{bkg} = \{(s_{i}, e_{i})\}_{i=1}^{M}
여기서 M은 M_{1}+M_{2}로 action proposal 후보와 background proposal 후보의 개수 합을 의미합니다. 최종적인 P-MIL의 inference시에는 P_{act}만 사용합니다.
2.2 Proposal Feature Extraction and Classification
소제목에서 알 수 있듯 본 절에서는 proposal 후보에 대한 학습을 위해 proposal-level에서의 feature 추출 및 분류를 수행합니다. 어떠한 방식으로 proposal에 대한 feature를 추출하는지와 무엇을 분류하고자 하는지 순서대로 알아보아야겠죠.
사실은 S-MIL에서 segment에 대해 각 저자들의 방식대로 feature를 추출하고, Introduction에서 설명드린대로 CAS를 추출해 가지고 있는 video-level label로 분류 학습을 수행한 것과 유사하게 진행됩니다. 다만 대상이 segment가 아니라 그 segment들을 엮은 proposal이라는 것이 차이일 뿐입니다.
Surrounding Contrastive Feature Extraction
우선 앞선 절에서 총 M개의 proposal 후보들을 얻었었습니다. 이에 대한 feature는 X_{P} \in{} \mathbb{R}^{M \times{} D}로 표현하고, D는 I3D로 인코딩한 snippet feature의 차원으로 보통 1024를 의미합니다. D차원의 snippet을 구간 길이만큼 엮어 proposal을 만든 뒤, 다시 conv layer를 통해 인코딩하여 각 proposal마다 1 \times{} D shape을 갖게 되었다고 생각하시면 됩니다.
저자는 기존 S-MIL의 문제점으로, 이전 WTAL 리뷰에서도 다양한 저자들이 해결하고자 했던 ‘Localization by Classification’ 문제를 지적하고 있습니다. 이렇게 기존 S-MIL에서의 문제점을 proposal-level로 올려 조금씩 해결해보자는 의미겠죠. 이 문제는 video-level label을 통한 분류 문제를 해결하며 학습한 CAS로부터 segment를 엮어 localization을 수행하는 것 자체가 suboptimal하다는 것입니다. 아래에서 이에 대해 조금 더 설명드리겠습니다.
어떠한 snippet이 한 비디오가 특정 클래스로 분류되는데 큰 역할을 수행했다면, 그 snippet을 기준으로 앞뒤 구간 또한 action에 포함됨에도 불구하고 큰 역할을 수행한 snippet만 action 구간으로서 proposal 후보에 오르는 문제가 발생하게 됩니다. 저자는 이 snippet을 discriminative short proposal이라 칭하고, 이러한 proposal에 완전한 action이 담기지 못하는 문제점을 해결하고자 Surrounding Contrastive Feature Extraction(SCFE) module을 제안합니다.
SCFE 모듈에서 하나의 proposal P_{i} = (s_{i}, e_{i})에 대한 feature를 어떻게 추출하는지 알아보겠습니다. 단순히 시작, 끝 구간을 알고 있으니 원래의 video feature에서 그 구간만을 따올 수도 있지만 앞선 discriminative short proposal에 대응하기 위해선 별도의 조치가 필요하겠죠.
우선 저자는 P_{i}의 앞뒤 구간을 추가적으로 가져옵니다. 추가될 구간은 P_{i}의 길이에 \alpha{}를 곱한 값으로 실제 \alpha{}는 0.25에 해당합니다. 가운데 원래 proposal P_{i}의 길이가 12였다면 (왼쪽 3 – 가운데 12 – 오른쪽 3) 이렇게 양쪽으로 붙을것입니다.
그 후 왼쪽, 가운데, 오른쪽 region에 속하는 D차원의 segment feature X_{S}들에 대해 RoIAlign 기법을 적용하여 공통된 시간 축 길이의 feature로 임베딩해줍니다. 각각은 X_{i}^{l}, X_{i}^{n}, X_{i}^{r}이라 칭하게 됩니다.
RoIAlign 기법은 Mask RCNN 논문에서 기존 RoIPooling 기법의 quantization 과정 중 손실되거나 추가되는 정보를 막기 위해 bilinear interpolation을 통해 고정된 크기의 격자를 만들고 MaxPooling을 수행하는 것인데, 본 논문에서는 spatial 축에 대한 box를 대상으로 수행하는 것이 아니라 현재 가지고 있는 temporal 구간에 대해 이를 수행하여 구간 길이가 다른 왼쪽, 가운데, 오른쪽 region의 feature를 모두 동일한 시간 축 길이의 feature X_{i}^{l}, X_{i}^{n}, X_{i}^{r}로 만들어주는 것입니다.
추가로 RoIPooling과 RoIAlign의 개념에 대해 제가 참고한 글의 링크를 함께 첨부하니 궁금하신 분들은 찾아보시면 좋을 것 같습니다.
짧은 proposal의 action incompleteness를 보완해주기 위해 위와 같이 각 region에 feature를 추출하였다면 해당 proposal의 feature는 세 region에 대해 추출한 feature를 단순히 concat할 수 있을 것입니다. 하지만 저자는 기존 방법론인 AutoLoc에서 영감을 받아 아래 수식 4와 같이 주변과의 차이를 구해 contrastive information을 concat한 후 FC layer를 태워 P_{i}에 대한 feature X_{i}를 얻게 됩니다.
이렇게 proposal 후보 양쪽 정보를 함께 고려함으로써 짧은 proposal 후보에 대한 대응을 해주었다고 볼 수 있습니다. 개인적으로 본 모듈이 정말 불완전하고 짧은 proposal에 대응하고자 했다면, 한 비디오에는 특정한 action 클래스만이 존재한다는 것을 알고 있는 상황이기 때문에 가지고 있는 proposal 간의 상대적 길이를 활용해 정말 짧은 proposal 후보들에만 위와 같은 방식을 적용했다면 어떨까 생각하긴 하지만, 아무래도 이렇게 단순한 변수에 대해서는 모두 실험해보고 위 방식이 최적이었기 때문에 선택하지 않았을까.. 하는 생각이 문득 드네요.
Classification Head
S-MIL에서 segment 단위로 추출한 feature를 이용해 CAS를 만들고 Actionness score를 만들어 최종 proposal을 만들어냈듯, 앞서 추출한 proposal의 feature X_{P}를 대상으로 CAS와 Actionness score를 만들어 video-level label 학습을 수행하는 부분입니다.
Segment가 시간 축에 대해 T개 였다면 proposal은 M개이므로 Actionness score A \in{} \mathbb{R}^{M \times{} 1}, CAS S_{base} \in{} \mathbb{R}^{M \times{} (C+1)}, 둘을 곱한 background suppressed CAS S_{supp} \in{} \mathbb{R}^{M \times{} (C+1)}일 것입니다. 이를 top-k pooling하여 video-level class score를 만들고 가지고 있는 video-level label과 CrossEntropyLoss로 학습하는 것입니다.
2.3 Proposal Refinement
본 절에서는 최종 proposal의 refinement를 위한 학습 모듈 2가지가 등장합니다. 각각은 Proposal Completeness Evaluation, Instance-level Rank Consistency입니다.
Proposal Completeness Evaluation
S-MIL에선 segment 별로 action 클래스에 대한 pseudo-label을 주어 localization에 좀 더 적합한 학습을 수행하는 방법론들도 존재합니다. 본 절에서는 snippet 단위의 pseudo-label 학습 방식과 유사하게, 가지고 있는 proposal 중 pseudo-instances를 지정하여 해당 pseudo-instances를 proposal의 pseudo-label 삼아 유사해지도록 학습을 수행함으로써 action completeness를 보완해주는 것이 목적입니다.
Pseudo-instances를 지정하는 과정은 다음과 같습니다.
먼저 proposal들의 actionness score A를 \gamma{} \times{} max(A)로 thresholding하여 남는 proposal들을 Q에 담습니다. (\gamma{}는 0.8입니다.) 이후 NMS를 거치듯 Q에서 가장 actionness score가 높은 proposal을 기준으로 tIoU가 0이 아닌, 즉 조금이라도 겹치는 proposal을 모두 제거합니다. 이후 방금 기준이 되었던 Q에서 가장 높은 score를 가진 proposal은 Q에서 삭제되며 pseudo-instances의 집합 G = \{(s_{i}, e_{i})\}_{i=1}^{N}로 포함되게 됩니다.
이 과정을 Q가 빌 때까지 반복하여 최종적으로 G에 담기는 proposal들을 pseudo-instances로 사용하게 됩니다. 현재 전체 proposal은 M개, pseudo-instances는 N개이므로 모든 proposal의 pseudo-instances들과의 tIoU에 대한 matrix는 M \times{} N이 될 것입니다. 이후 이 matrix를 N축으로 max 처리하면 completeness pseudo labels q \in{} \mathbb{R}^{M}을 얻을 수 있고 이는 전체 proposal 하나하나가 pseudo-instances 내의 proposal 중 가장 많이 겹치는 proposal과의 tIoU 값을 의미하겠죠.
이후 모든 proposal을 다시 completeness branch에 태워 앞선 pseudo-instance와 관계 없이 tIoU를 예측합니다. 예측된 M차원의 \hat{q}는 아래 수식 9와 같이 \mathcal{L}을 통해 q를 따라가도록 branch가 학습됩니다.
이렇게 학습된 completeness branch로부터 얻은 점수는 정말 최종 inference 때 weight로서 사용될 수 있겠죠.
Instance-level Rank Consistency
최종 proposal을 만들어내는 과정에서, Inference 단계에서 수행되는 NMS는 같은 클래스 proposal 간 상대적 score에 큰 영향을 받게됩니다. 이에 따라 RGB와 FLOW 모달 간 관계를 고려하는 강인한 relative score를 만들어줄 필요가 있습니다.
먼저 Actionness score A의 평균값으로 A를 thresholding 해 점수가 낮은 proposal들은 지워버립니다. 살아 남은 proposal의 집합을 R, 그에 포함된 proposal을 r이라고 칭합니다. 모든 r에 대해 자신과 조금이라도 겹치는 다른 proposal을 모두 포함하는 cluster \Omega{}_{r}을 만들고 이에 속하는 proposal의 개수는 N_{r}이라고 하겠습니다.
그러면 하나의 군집 \Omega{}_{r}에 포함하는 일련의 proposal의 index를 각각 RGB, FLOW 모달로부터 얻은 CAS S_{base}에서 따와 p_{r, c}^{RGB}, p_{r, c}^{FLOW}를 얻습니다. 여기서 c는 저희가 알고 있는 GT label을 의미합니다.
그리고 위 수식 5, 6을 통해 각 score 축에 대한 모달 내부적 softmax를 취하고 해당 score 분포를 KL Divergence loss를 통해 모달 간 분포를 유사하게 가져가도록 학습하게 됩니다. 이렇게 score 높은 proposal들의 주변 proposal까지 고려한 score를 만들어내고 두 모달에서의 분포를 최대한 유사하게 가져감으로써 NMS 과정에서 상대적으로 점수가 낮은 proposal은 확실히 버릴 수 있는 효과를 기대하는 것입니다.
2.4 Network Training and Inference
Training
최종 학습은 수식 10에 의해 이루어집니다. 수식 8은 S-MIL에서의 학습 방식을 P-MIL에 그대로 반영한 것으로 CE Loss를 통한 video-level label 학습 수식을 의미하고, 수식 9는 앞서 Proposal Completeness Evaluation 모듈에서 등장한 loss를 의미합니다.
Inference
추론은 background suppressed CAS S_{supp}에 top-k pooling을 적용해 얻은 \hat{y}_{supp}에 thresholding을 거쳐 비디오에 존재하는 라벨을 먼저 선별하고, 해당 라벨에 대해 수식 11을 통해 proposal에 대한 score s_{i}를 얻게 됩니다. 수식 11에서 completeness branch로부터 예측된 해당 proposal의 score도 함께 반영되는 것을 볼 수 있네요.
이렇게 얻은 score를 통해 Soft-NMS를 거쳐 중복적인 proposal을 제거하면 최종 예측 구간을 얻을 수 있게 되는 것입니다.
이제 모든 방법론과 학습-추론 과정까지 알아보았으니 실험 결과들을 살펴보겠습니다.
3. Experiments
평가는 THUMOS14, ActivityNet v1.2, ActivityNet v1.3 데이터셋에서 진행하였습니다.
3.1 Comparison with State-of-the-art Methods
표 1은 THUMOS14 데이터셋에서의 벤치마크 성능입니다. 22년도까지의 기존 방법론들에 비해서는 성능이 모든 tIoU 기준으로 오른 것을 볼 수 있네요. 눈여겨볼만한 점은 Fully-supervised 방식 중 지금까지도 자주 활용되는 BMN이나 G-TAD와 꽤나 견줄만한 성능을 달성하고 있다는 것입니다. 물론 약 3~4년의 시점 차이가 있긴 하지만, 항상 차이가 크다고만 느꼈던 Fully-supervised 기반 대표적 방법론들과의 성능 차이가 눈에 띄게 줄었다는 점이 인상깊습니다.
참고로 ours에 달린 *의 차이는 둘 다 학습 과정에서 S-MIL과 P-MIL을 모두 사용하되 ours는 P-MIL만의 proposal을 사용하고, ours*은 S-MIL과 P-MIL의 proposal을 모두 사용한 결과라고 합니다. 아마 최종 inference 때 S-MIL의 proposal들은 OIC score, P-MIL의 proposal들은 수식 11에서의 방식으로 score를 매긴 다음 Soft-NMS를 적용하여 proposal을 생성했을 때의 결과인듯 합니다. 이 과정에 대한 자세한 설명이 논문에는 담겨있지 않네요.
다음은 ActivityNet v1.2, ActivityNet v1.3 데이터셋에서의 벤치마크 성능입니다. 마찬가지로 S-MIL과 P-MIL에서의 예측을 합쳐 사용하는 것이 더 높은 성능을 보여주고 있습니다. 데이터셋이 어려운만큼 큰 폭은 아니지만 기존 방법론들보다 높은 성능을 보여주고 있긴 하네요. 다만 THUMOS14 데이터셋에선 P-MIL의 결과만을 사용한 “ours”만으로도 SOTA였지만 여기선 “ours”가 SOTA가 아니라는 것이 조금 아쉽긴 합니다.
3.2 Ablation Studies
Ablation 실험들은 THUMOS14 데이터셋을 기준으로 수행되었습니다.
우선 표 4는 첫 번째 stage의 S-MIL에서 얻은 proposal 중 P_{bkg}의 샘플링 여부에 따른 성능입니다. WTAL 초반에는 action 클래스에 속하는 segment들만을 모델링하다가, background에 대한 클래스를 추가하여 명시적으로 모델링함으로써 성능이 크게 올랐었는데, proposal-level에서 학습할 때도 background가 확실한 proposal들을 대조적으로 학습시켜줌으로써 mAP기준 평균 5%에 가까운 큰 성능 향상을 보인 것을 알 수 있습니다.
표 5는 추출한 proposal의 score를 매기는 방식에 대한 실험입니다. GT의 경우 실제 temporal annotation과의 IoU를 계산하여 실제 GT와의 IoU를 weight로 주는 상황에서의 성능을 의미합니다. P-MIL의 성능은 수식 11과 같이 score를 주는 방식이고, S-MIL은 앞서 언급했듯 Outer-Inner Contrast score를 기준으로 주는 proposal score를 의미하는 것으로 보입니다. 상한선 성능인 GT와는 성능 차이가 꽤 있지만 P-MIL은 확실히 S-MIL 방식보다 높은 성능을 보이고 있습니다. FUSE는 표 1에서 설명드린 방식으로 측정한 ours*의 성능입니다.
표 6은 proposal에 대한 feature를 추출할 때 AutoLoc 논문 방식을 따라 Outer-Inner Contrast 방식을 사용하는 경우 성능이 가장 높았다는 것을 보여주고 있습니다. 마지막으로 표 7은 Proposal refinement 과정에서 두 모듈에 대한 ablation 성능이니 필요하신 분은 참고하시기 바랍니다.
마지막으로 논문에 정성적 결과가 담겨있는줄 알았는데 하이퍼파라미터에 대한 실험 그림이었어서 그 부분은 생략하도록 하겠습니다.
4. Conclusion
본 논문은 사실 놓치고 있던 비디오 속 action의 특성을 새로운 아이디어로 모델링한다기보단, 학습-추론 과정 간의 비일관적인 포인트를 잘 잡아내었다는 점이 인상깊었습니다. 2023년도 CVPR의 WTAL 관련 논문에 마찬가지로 train-test gap을 줄이는 논문이 있었는데 저는 생각지도 못했던 단점들이 이렇게 수면 위로 떠오르니 놓치고 있었다는 점에 대해 다시 한 번 반성하게 됩니다.
이상으로 리뷰 마치겠습니다.
안녕하세요. 김현우 연구원님. 리뷰 잘 읽었습니다.
문제 정의가 상당히 탄탄하네요. Proposal 관련해서 학습하는 논문이 이 논문이 최초인가보죠?
“Surrounding Contrastive Feature Extraction”에서 앞뒤 구간을 무조건 포함하는건 액션을 준비하는 장면도 어느정도 보면 성능이 좋아서 그런거 아닐까도 생각해봅니다.
질문이 있는데 Pseudo-instances를 생성할 때 과정을 그림이랑 비교하면 잘 이해가 가지 않습니다. 설명에서는 NMS를 통해 특정 Pseudo-instances를 하나만 남기는 것 같았는데요. 그림에서는 뭔가 여러개의 라벨값(Attention Weight)이 존재하는 것 같아서요. Pseudo-instances가 여러개 존재하는 구조같긴 한데, 어떻게 생성되는지 추가적인 설명이 가능할까요?
Pseudo-instasnce들은 하나의 비디오에 대해 S-MIL 단계에서 얻은 proposal을 대상으로 변형된 NMS를 거쳐 얻게됩니다. 전체 proposal 중 가장 score가 높은 proposal과 조금이라도 겹치는 proposal은 모두 제거한 뒤 가장 score가 높은 proposal은 pseudo instance 집합으로 빼주고, 전혀 겹치지 않아 아직 살아있는 proposal 중 다시 점수가 가장 높은 proposal을 대상으로 조금이라도 겹치는 proposal은 모두 제거 후 점수가 가장 높은 proposal은 pseudo instance 집합으로 빼주는 과정을 반복적으로 수행해 결국 P-MIL에서의 actionness score를 기반으로 여러 개의 pseudo instance로 구성된 pseudo instance 집합 G를 만들어내는 것입니다.
안녕하세요. 좋은 리뷰 감사합니다.
최근 Action Localization을 배우고 있어 반가운 리뷰였습니다.
한가지 궁굼한 점은, IRC loss를 통해 RGB와 FLOW 모달이 유사한 예측을 수행하도록 하는데, 모델의 feature단에서 두 모달이 합쳐지지 않고 각각 에측을 수행한 뒤 SOFT-NMS를 통해 결과를 합쳐주는 것인가요?
감사합니다!
WTAL을 수행할 때 초창기 방법론들은 먼저 RGB와 FLOW feature를 단순 concat한 후 뒤 모듈을 거쳤지만, 방법론들이 발전할수록 RGB와 FLOW 각각의 특성을 살리거나 각각의 장점으로 서로의 단점을 보완해주는 느낌의 모듈들이 등장하였습니다.
본 논문에서 S-MIL의 방법론으로 삼은 CO2-Net이 방금 말씀드린 것과 같이 RGB와 FLOW feature를 별도로 모델링하여 각각의 CAS와 Actionness score를 추출하기 때문에, 이번 논문에 상세히 설명되진 않았지만 P-MIL 단계에서도 RGB와 FLOW 모달 각각에서 CAS와 Actionness score를 뽑고, 질문해주신 내용대로 각 모달에서의 proposal을 만들어 한번에 Soft-NMS를 통해 결과를 합쳐준다고 생각하시면 될 것 같습니다.