안녕하세요. 백지오입니다.
여덟 번째 X-REVIEW는 Temporal Action Localization (TAL) task에 약지도학습을 적용한 방법인 Background Suppression Network, BaS-NET 리뷰입니다.
본격적인 리뷰에 앞서, Temporal Action Localization task에 대해 소개드리자면, 어떤 영상이 주어졌을 때, 해당 영상의 어떤 액션을 담고 있는지 분류하는 Action Classification에서 나아가, 영상의 어떤 시점에서 액션이 일어나는지까지 알아내는 Task 입니다. 자세한 소개는 제 지난 리뷰에서 다루었으므로, 궁굼하시다면 참고 부탁드립니다.
한편, 이 논문에서 다룰 약지도학습 기반의 TAL task, W-TAL은 TAL과 같이 영상과 라벨은 주어지나, 이때 라벨에 액션의 클래스만 등장하는 경우를 말합니다. 예를 들어, TAL task에서 영상에 대한 라벨로 (2초 ~ 5초, 달리기)와 같이 액션의 종류와 시간이 제공되었다면, W-TAL에서는 (달리기)와 같이 오직 액션의 종류만 주어지며, 그럼에도 불구하고 액션이 등장하는 시간까지 예측하고자 하는 task 입니다.
저로서는 도대체 어떻게 라벨도 없이 액션의 발생 시점을 예측할지 아이디어가 떠오르지 않았는데, 본 논문에서는 유사하지만 약간 다른 목표를 갖는 두 개의 branch를 고안하여 W-TAL 문제를 해결합니다.
문제를 해결한 방식이 매우 참신하다고 느꼈고, 제게 약지도학습의 세계(?)를 보여준 듯한 논문이라 가져와 봤습니다.
그럼 리뷰 시작하겠습니다.
기존의 WTAL 방법론들은 먼저 각 프레임이 어떤 액션에 속할 확률을 구한 뒤, 이들을 병합하는 식으로 영상에 대한 Action classification을 수행하도록 하여 결과적으로 frame level classification이 가능하게 하는 식의 접근을 주로 선택했다. (Multiple Instance Learning, MIL) 그러나 저자들은 이러한 MIL 방식이 background 프레임들을 그저 다른 프레임으로 분류하여 문제를 정확히 모델링하지 못하고, background 프레임들을 false positive로 학습되게 하여 성능 하락을 일으킨다고 지적한다.
저자들은 이러한 문제를 해결하기 위해 background 프레임들을 위한 추가 클래스를 생성하여 fully-supervised object detection이나 TAL과 비슷하게 WTAL에 접근하지만, 이러한 방식은 background frame에 대한 라벨이 없어 결국 background frame 분류에 대해 잘 학습되지 않게 되기에, 두 branch로 구성된 BaS-Net을 제안한다.
BaS-Net은 Base Branch와 Suppression Branch로 구성된다. Base Branch는 일반적인 MIL 구조와 비슷하게, Frame-wise feature를 입력받아 frame-wise class activation sequence (CAS)를 생성한다. 그와 동시에 Suppression Branch는 Base Network와 같은 구조, 공유된 가중치를 가지며 입력된 feature에서 background frame들의 activation score들을 감소시키는(attenuate) 필터링 역할을 수행한다. Suppression Branch의 목적은 Base Branch와 반대로 background class들의 score를 감소시키는 것인데, 두 branch가 가중치를 공유하기 때문에 두 branch는 무작정 score를 올리거나/내리도록 동시에 학습될 수 없다. 이러한 제한으로 인해 필터링 모듈은 background에 활성화 값만을 감소시키도록 학습되며, 결과적으로 action에 대한 정확도가 향상되게 된다고 한다.
저자들은 contribution을 세 가지로 정의한다.
- 저자들은 background를 의미하는 추가 클래스를 통해 WTAL 모델이 background에 적절히 대응하게 하였다.
- 대비되는 목적을 가진 비대칭 two-branch weight-sharing 구조를 통해 background 프레임에 대한 억제 수행
- THUMOS’14와 ActivityNet에서 WTAL SOTA 달성
Related Work
지도학습기반 TAL 방법들은 주로 Sliding Window 기반의 방법으로 영상을 작은 클립들로 나누어 분류를 수행하는 방식으로 수행되어 왔다. 최근에는 proposal generation에 더 정교한 방법을 사용하는 방식도 등장하였다.
약지도학습기반 TAL 방법은 video-level label만이 주어진 상황에서 TAL을 수행하여야 한다. 주로 앞서 언급한 것처럼, 프레임 단위로 class activation sequence를 생성하는 방법을 사용하는데, 이러한 방법은 일부 구별적인(discriminative) 프레임에만 집중하는 경향이 있다고 한다. 이외에도 MIL 방식과 같은 방법으로 WTAL을 푸는 시도들이 있었으나, 이들은 background frame들을 위한 bg class를 고려하지 않았다. 저자들이 주장하는 이 논문의 큰 contribution이 이러한 background class의 고려이다.
Proposed Method
$N$개의 학습 영상 $\{v_n\}^N_{n=1}$과 video-level label $\{\mathbb{y}_n\}^N_{n=1}$이 있다. $\mathbb{y}$는 $C$개의 클래스에 대한 $C$차원의 이진 벡터이다. 영상은 여러 개의 액션 클래스를 포함할 수도 있다. 각 영상은 신경망에 입력되어 frame-level class score 즉, Class Activation Sequence (CAS)를 생성한다. 모델은 생성된 스코어의 병합 과정을 거쳐 video-level 예측을 생성하도록 학습된다. Inference 시에는 frame 단위의 CAS에 임계값을 적용하여 localization을 수행한다.
Background Class
앞서 지적한 것처럼 background를 위한 별도의 클래스가 없으면, 영상의 background frame은 다른 액션 클래스들로 분류되어 정확한 localization을 방해한다. 저자들은 background를 위한 별도의 클래스를 추가하여 액션이 없는 프레임은 background class로 분류되도록 하였다. 이때, 자연스럽게 모든 영상은 background 프레임을 포함하고 있기 때문에 background에 대한 positive sample이 되는 반면, negative sample은 존재하지 않기 때문에 데이터 불균형이 초래된다.
Two-branch Architecture
앞서 언급한 문제를 극복하고 background class를 더 잘 다루기 위해, 저자들은 two-branch 구조를 사용하였다. 영상에서 추출된 feature들은 두 개의 브랜치로 입력된다. 두 브랜치는 가중치를 공유하며 feature map을 입력받아 CAS를 생성하는데, 이때 Suppression 브랜치는 background 프레임들을 필터링하여 이들의 CAS를 억제하는 필터링 모듈이 포함되어 있다. 두 브랜치는 가중치를 공유하지만 상반된 목표를 가지고 있는데, Base 브랜치는 입력 영상이 가지고 있는 액션 클래스와 background에 대한 positive sample로써 이들을 분류하기 위한 CAS를 생성하는 반면, Suppression 브랜치는 똑같이 분류 점수를 생성하되 background class의 스코어를 최소화하는 목표를 가지고 있다. 두 브랜치의 가중치를 공유하는 것은, 같은 입력이 주어졌을 때 두 브랜치가 모두 목표를 달성하지 못하도록 한다. (만약 Base 브랜치의 목표가 달성되면 Suppression 브랜치는 목표를 달성하지 못하고, 반대도 성립한다.) 그러므로 오직 필터링 모듈만이 Suppression 브랜치의 목표를 달성하기 위해 중요한 역할을 하게 되어, background를 잘 필터링하도록 학습된다.
Background Suppression Network
먼저 입력 영상 $v_n$를 16 frame의 겹치지 않는 $L_n$개의 세그먼트들로 나눈다. ($v_n = \{ s_{n,l} \}^{L_n}_{l=1}$) 영상의 길이가 매우 다양하기 때문에, 저자들은 각 영상에서 고정된 $T$개의 세그먼트를 추출하였다. 그다음, 각 세그먼트의 RGB 영상과 optical flow를 사전학습된 특징 추출기에 입력하여 $F$차원의 feature vector $x^{RGB}_{n, t}\in \mathbb{R}^F$와 $x^{flow}_{n, t} \in \mathbb{R}^F$를 추출한다. 두 vector를 합쳐 최종 특성 $f_{n, t}\in \mathbb{R}^{2F}$를 생성한다. ($X_n = [ x_{n, 1}, \cdots x_{n, T}] \in \mathbb{R}^{2F\times T}$)
Base Branch에서는 segment-level class score를 생성하기 위해, 각 클래스에 대한 확률을 담고 있는 CAS $\mathcal{A}_n$을 생성한다. CAS는 1D 합성곱으로 생성된다.
$$ \mathcal{A}_n = f_{conv}(X_n; \phi)$$
$\phi$는 합성곱 신경망의 학습 가능한 파라미터를 나타낸다. $\mathcal{A}_n \in \mathbb{R}^{(C+1) \times T}$가 성립하는데, $C+1$은 전체 액션 클래스의 수에 background 클래스를 추가한 것을 의미한다. segment-level class score를 담고 있는 CAS를 병합하여 video-level class score를 생성하여 실제 라벨과 비교하고 학습을 진행한다. 점수를 병합하는 방법으로는 top-k mean 방법을 사용했다고 한다. 클래스 c에 대한 video-level class score는 다음과 같이 나타낼 수 있다.
$$a_{n;c} = \text{aggregate}(\mathcal{A}_n, c) = \frac{1}{k} \max_{A\subset \mathcal{A}_n [c, :] |A|=k} \sum_{\forall a \in A} a$$
$k=[\frac{T}{r}]$이고 $r$은 선택된 세그먼트의 비율을 조정하는 하이퍼 파라미터이다. 얻어진 video-level class score를 softmax를 거쳐 영상을 분류하는데 활용된다.
$$p_n = \text{softmax}(a_n)$$
Base 브랜치는 다음과 같은 이진 크로스 엔트로피 손실로 학습된다.
$$\mathcal{L}_{base} = \frac{1}{N}\sum^N_{n=1}\sum^{C+1}_{c=1} -y^{base}_{n;c} \log(p_{n;c})$$
Suppression Branch는 base 브랜치와 다르게 필터링 모듈을 앞단에 가지고 있다. 이 모듈은 background 프레임들을 억제하도록 학습된다. 모듈은 두 개의 temporal 1D 합성곱 계층과 sigmoid 하수로 구성된다. 출력은 가중치 $\mathcal{W}_n\in \mathbb{R}^T$로 0~1의 범위를 가진다. 필터링 모듈의 출력은 feature map에 시간축으로 곱해져 background 프레임을 억제하게 된다.
$$X’_n = X_n \otimes \mathcal{W}_n$$
나머지 과정은 Base 브랜치와 똑같이 수행된다. 다만 입력만이 $X_n$에서 $X’_n$으로 바뀌어 $p’_n$을 얻게 된다. suppression 브랜치의 학습은 이진 크로스 엔트로피로 다음과 같이 수행된다. (이 역시 base와 똑같다.)
$$\mathcal{L}_{supp} = \frac{1}{N}\sum^N_{n=1}\sum^{C+1}_{c=1} -y^{supp}_{n;c} \log(p’_{n;c})$$
이때, $y^{supp}_n$에서 background label은 0으로 설정된다. 이를 통해 background frame이 적절히 필터링되도록 학습되는 것이다.
Joint Training. 두 브랜치는 동시에 학습된다. 추가로, filtering weight에 L1 규제를 적용한다. 그러므로 전체 손실함수는 다음과 같다.
$$\mathcal{L}_{overall} = \alpha \mathcal{L}_{base} + \beta \mathcal{L}_{supp} + \gamma \mathcal{L}_{norm}$$
$\alpha, \beta, \gamma$는 각 손실함수의 비율을 조절하는 하이퍼파라미터이다.
Classification and Localization
추론 단계에서는 background에 대한 억제가 진행된 suppression 브랜치의 출력을 사용한다. $p’_n$에서 먼저 임계값 $\theta_{class}$ 미만의 값을 갖는 클래스들을 제외하고, 남은 CAS를 다시 $\theta_{act}$로 걸러 후보 세그먼트를 선택했다. 그다음, 각 후보 세그먼트를 proposal 삼아 confidence score를 계산하였다.
Experiments
Experimental Settings
저자들은 TAL 분야에서 흔히 사용되는 THUMOS’14, ActivityNet 데이터셋을 사용하였다. 이때, 데이터셋에 원래는 temporal label이 포함되어 있으나 이는 사용하지 않았다. 평가는 mAP@IoU를 사용하였다. 저자들은 특성 추출기로 UntrimmedNet과 I3D net을 사용하였고, 이들은 ImageNet과 Kinetics에서 각각 사전학습되었다. 공정한 비교를 위해 특성 추출기에 대한 fine-tuning은 진행하지 않았다. 저자들은 TVL1 알고리즘을 통해 optical flow를 생성하였다.
저자들은 세그먼트의 개수 $T$를 750으로 설정하였고, 각 영상에서 세그먼트를 추출하기 위해 STPN과 같이 학습 단계에서는 random perturbation, 테스트 단계에서는 uniform sampling을 수행하였다. 하이퍼파라미터는 그리드 서치로 설정하여 $r=8, \alpha=1, \beta=1, \gamma=10^{-4}, \theta_{class}=0.25$를 적용하였고, $\theta_{act}$는 0~0.5 사이를 0.025 단위로 나누어 임계값을 설정하였다. 그 다음 임계값 0.7로 NMS를 수행하여 중복 예측을 제거했다.
Comparison with SOTA methods
저자들은 제안한 BaS-Net과 기존 TAL, WTAL SOTA 방법들 간의 비교를 수행하였다. STAR는 WTAL이긴 하나 supervision의 정도가 달라 별도로 분류했다고 한다. 저자들이 제안한 BaS-Net이 Weakly supervised 모델 중에 가장 우수한 성능을 보여주는 것을 표에서 확인할 수 있다. 뿐만 아니라, BaS-Net은 더 supervision을 많이 받은 모델들도 일부 앞서기도 하였다.
Ablation Study
THUMOS 데이터셋에서의 비교 실험을 수행하였다. Baseline은 일반적인 MIL 설정으로, 별도의 background class가 없는 Base Branch를 생각하면 된다. Base branch는 추가 background class를 넣은 base branch로, 오히려 성능이 감소하였다. 이는 negative sample이 없는 background class에 대해 모델이 항상 높은 점수를 주기 때문으로 보았다. Suppression branch는 base 브랜치가 없는 버전으로, 이때 필터링 모듈은 일종의 어텐션처럼 작동한다고 한다. 이 경우 베이스라인 대비 성능이 향상되지만, 저자들은 background class에 대한 positive sample이 없기 때문에 이것이 background modeling을 통한 것은 아니라고 보았다.
BaS-Net은 두 브랜치를 통해 background class를 학습시킴으로써 성능을 크게 향상하였다.
Qualitative Results
(a)는 사람이 매우 작게 보이고, 액션이 일어나는 프레임과 background의 차이가 미미하여 어려운 경우이지만 background suppression이 잘 일어나고 있음을 볼 수 있다. (b)는 액션이 매우 빈번하게 발생하는데, 역시 그런 상황에서도 정확하게 background와 액션을 나누고 있다. (c)는 background와 액션 영역의 구분이 시각적으로 어려운 샘플이나 역시 잘 구분한다고 한다.
이 논문에서는 Temporal annotation 없이 시간 정보를 예측하기 위하여, 먼저 각 프레임에 대하여 액션의 존재 확률을 예측하고 병합하여 영상의 액션을 분류하는 CAS 방식으로 신경망을 설계하여, 모델이 영상의 각 시간에 대한 예측을 수행하도록 강제하였습니다.
그 다음, Filtering Module이 포함된 branch와 그렇지 않은 branch를 구성하고 두 branch가 공유된 파라미터로 CAS를 생성하되, Suppression branch는 background를 제외한 클래스를 예측하도록 하여 filtering module이 background를 suppression 하도록 강제하였고, 결과적으로 action 이 포함된 시간을 알 수 있게 되었습니다.
문제를 푼 방식이 아주 복잡하지 않으면서도 참신하여 읽으면서 굉장히 재밌었던 논문이었습니다. 향후에 제가 어떤 연구를 하게 될지는 모르지만, 언젠가 도움이 될, 제 생각의 폭을 넓혀준 논문이라는 생각이 듭니다.
그럼, 리뷰 마치도록 하겠습니다.
읽어주셔서 감사합니다. 😊
리뷰 잘 읽었습니다. WS-TAL 연구의 경우 후속 연구들이 대부분 BasNet을 기초 베이스라인으로 삼고 있기 때문에 잘 알아두고 있으면 도움이 될 거라고 생각합니다.
BasNet은 20년도에 연구된 논문으로 현재는 더욱 정교한 연구들이 많이 나와있습니다.
BasNet의 핵심 아이디어는 백그라운드라는 보조 클래스를 할당하여 명시적으로 백그라운드를 처리하였는데
이런식의 접근은 Untrimmed Video의 모든 백그라운드를 대응할 수 있는가에 대한 질의를 드리고 싶습니다.
어떻게 생각하시나요?
안녕하세요. 임근택 연구원님.
항상 댓글과 논문 추천 감사드립니다.
제 생각에 BaSNet과 같은 방식만으로는 모든 백그라운드에 대응하기는 어려울 것으로 생각됩니다.
그 이유는 Filtering Module이 background를 억제하긴 하지만, BaSNet은 결국 영상의 액션을 분류하기 위해 학습되므로, 이를 위해 액션이 발생하는 프레임 뿐만 아니라 액션 인근의 유관한 프레임들에서도 액션에 대한 confidence가 올라갈 것이라 생각됩니다.
예를 들어, 멀리 뛰기라는 액션에 대하여 주변 도움닫기를 진행하거나 착지를 마친 후의 프레임들도 어느 정도 멀리 뛰기에 대한 score가 올라갈 것으로 생각이 되는데, Filtering Module이 확실한 background 들은 억제하긴 하겠으나, 이러한 애매한 장면들까지 정확하게 억제할 수 있도록 하는 추가적인 요소가 도입되지 않는다면 백그라운드 프레임들을 완벽하게 대응할 수는 없을 것으로 생각됩니다.
정확히는 틈틈히 약지도학습 기반 논문들을 팔로우업 하면서 배워나가 보겠습니다.
감사합니다. ☺