VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 요약
이전 VVS 리뷰글에 이어, 해당 논문을 다 읽고 더 쉽고 짧게 요약해보았습니다.
자세한 내용이 궁굼하신 분들은 이전 리뷰글을 참고해주시기 바랍니다.
Introduction
영상 기반 비디오 검색(video-to-video retireval)은 어떤 쿼리 영상(query)이 주어지면, 수많은 영상들로 구성된 데이터베이스(DB)에서 해당 쿼리와 유관한 영상들을 찾아내는 task이다. 주어진 쿼리 영상과 DB 속 영상들을 영상 서술자(video descriptor)라는 벡터 형태로 변환한 후, 쿼리 영상의 서술자와 유사한 순서로 DB 속 영상들을 정렬하여 유사도가 가장 높은 영상들을 검색 결과로 삼는 것이다.
즉, 비디오 검색의 핵심은 "유사한 영상들이 유사한 서술자 벡터를 갖고, 유사하지 않은 영상들이 유사하지 않은 서술자 벡터를 갖도록 영상을 얼마나 잘 벡터화하는가"라고 할 수 있다.
비디오 검색의 방식은 영상 벡터를 생성하는 데 사용하는 데이터의 단위에 따라 크게 두 가지로 나뉜다.
- 프레임 단위(frame-level) 방법은 영상에서 추출한 프레임들을 벡터화하고, 이 프레임 수준 특성들을 비교하여 영상의 유사도를 구한다. 이 방법은 프레임 수준 특성들을 각각 비교하여 상대적으로 정확도가 높지만, 검색에 소요되는 시간이 길다는 단점이 있다.
- 영상 단위(video-level) 방법은 영상 전체를 나타내는 하나의 영상 수준 특성을 만들어 이들을 비교한다. 비교의 횟수가 적기 때문에 검색 속도는 빠르지만 프레임 수준 방법에 비해 정확도가 낮은 단점이 있다.
논문에서는 비디오 검색의 실용성을 고려하면 검색 속도가 중요함을 주장하며, 논문에서 제안하는 방법들을 통해 영상 단위 방법론의 장점인 속도를 가지면서도, 프레임 수준 방법과 준하는 높은 정확도를 내는 모델인 VVS를 제안한다.
방해자 프레임
우리가 실생활에서 흔히 접하는 영상들은 비정돈 영상(Untrimmed Video)으로, 영상의 주제와 무관한 다양한 프레임들을 포함하고 있다. 위 그림에서 두 영상은 모두 "비행기 사고"라는 공통된 주제를 다루고 있지만, 뉴스 앵커가 말하는 장면이나 영상 편집 과정에서 들어가는 장면 등 비행기 사고와는 무관한 장면들이 포함되어 있다.
이러한 방해자 프레임(distractor)들은 영상에 포함된 프레임들의 정보를 하나의 벡터로 압축하여 사용하는 영상 단위 방법론에서 특히 성능에 악영향을 끼치게 된다.
저자들은 이러한 방해자 프레임들을 모델이 알아서 무시하도록 학습되기를 기대하는 기존 방법론들과 달리, 명시적으로 방해자 프레임들을 제거하는 과정을 모델에 더해주어 영상 단위 방법론이면서도 프레임 단위 방법론에 가까운 높은 정확도를 보이는 모델을 개발하고, 여러 실험을 통해 이 방법의 효과를 입증한다.
VVS 프레임워크
VVS는 영상으로부터 프레임 단위 특성들을 추출한 후 쉬운 방해자 제거 단계와 억제 가중치 생성 단계를 거쳐, 방해자 프레임들을 억제한다. 이렇게 방해자 프레임들이 억제된 후 프레임 단위 특성들을 병합하여 영상 단위 특성을 생성함으로써 영상의 핵심적인 요소들만 포함한 영상 단위 특성을 얻을 수 있다.
쉬운 방해자 제거 단계에서는 프레임에 포함된 시각적 정보가 현저히 부족한 프레임들을 제거한다. 이때 영상에서 추출된 프레임의 갯수 $T$가 줄어들어 $T'$로 변화한다.
억제 가중치 생성 단계에서는 앞선 과정에서 제거되지 않은 프레임들 중, 비디오 검색에 도움이 되지 않는 프레임들을 두 가지 모듈로 판별하여, 해당 프레임들에 낮은 가중치를 부여하여 억제한다. 가중치 부여는 두 모듈이 각각 생성한 억제 가중치들을 아다마르 곱하여 최종 억제 가중치를 생성하고, 이를 다시 프레임 단위 특성들에 아다마르 곱하는 방식으로 이루어진다.
최종적으로 이렇게 방해자 프레임들의 억제가 완료된 $T' \times S^2 \times C$ 크기의 특성의 시공간축에 대한 전역 평균 풀링(Spatio-Temporal Global Average Pooling)을 수행하여 영상 단위 특성 $V\in\mathbb{R}^C$를 생성한다.
특성 추출
프레임 단위 특성 추출에는 $\text{L}_N-\text{iMAC}$ 방법을 사용한다. 이 방법은 ViSiL을 비롯한 기존의 다양한 비디오 검색 모델에서 사용된 것과 같은 것으로, R-MAC과 I-MAC을 융합한 형태이다. Feature map을 $N\times N$개의 영역으로 분할하여 특성을 풀링하여 프레임의 지역적 특성을 유지하고, 특성 추출기로 사용되는 ResNet50의 최종 계층을 포함하여 여러 계층에서 특성을 추출함으로써 프레임이 가진 저수준 특성부터 고수준 특성을 모두 활용할 수 있다.
무엇보다, feature map의 해상도와 무관하게 $N\times N$개의 영역으로 나누어 풀링을 수행하기 때문에, 영상의 해상도와 무관하게 추출된 프레임 단위 특성은 $N^2 \times C$의 크기를 갖는다. ($C$는 추출이 진행된 feature map들의 채널 축 크기의 합) 이렇게 얻어진 특성에 PCA whitening을 적용하였는데, 이때 $C$의 차원이 변화함에 따른 성능의 차이 또한 실험에서 다루었다.
쉬운 방해자 제거 단계
쉬운 방해자 프레임은 시각적인 정보가 현저히 부족하여, 영상의 내용을 판단하는데 전혀 도움이 되지 않는 프레임들이다. 논문에서는 frame-level feature의 magnitude가 40 미만인 프레임들을 쉬운 방해자로 정의했다.
방해자 판별 모듈(Distractor Discrimination Module, DDM)은 영상에 포함된 쉬운 방해자 프레임들을 판별하는 이진 분류 모델이다. 학습 단계에서, 영상에 랜덤하게 사전에 정의된 쉬운 정의자 프레임들이 삽입되며, DDM은 이렇게 삽입된 프레임들을 구분하도록 학습된다.
역전파를 통해 학습이 가능하게 하기 위해, 학습 단계에서 DDM은 방해자 프레임을 제거하지 않고 예측한 값을 프레임 단위 특성에 아다마르 곱한다. 그러나 추론 단계에서는 DDM이 방해자로 판별한 프레임은 완전히 제거되어, 특성의 차원이 $T\times S^2 \times C$에서 $T' \times S^2 \times C$로 바뀌게 된다.
공부 과정에서 "DDM을 사용하지 않고 그냥 frame-level feature의 magnitude가 40 미만인 프레임들을 제거해주면 안되나?" 하는 의문이 들었는데, 분류 모델을 사용하여 magnitude에 국한되지 않고 더 유연한 분류를 할 수 있어, 성능이 향상된다고 한다.
억제 가중치 생성 단계
앞서 시각적인 정보가 부족한 쉬운 방해자 프레임들을 제거하였지만, 비정돈 영상에는 여전히 어려운 방해자 프레임들이 포함되어 있다. 이 단계에서는 시간적 중요도 모듈(Temporal Saliency Module, TSM)과 주제 지도 모듈(Topic Guidance Module, TGM)을 통해 억제 가중치(suppression weights)를 생성하여 남은 방해자 프레임들을 억제할 것이다.
이때, 앞선 단계와 달리 추론 과정에서도 방해자 프레임들을 제거하는 것이 아닌 억제를 수행한다. 이는 영상 검색에 중요한 프레임이 방해자로 오분류 되더라도 어느 정도는 영향을 가질 수 있도록 한다.
시간적 중요도 모듈 (Temporal Saliency Module, TSM)
이 모듈은 ViSiL에서 영감을 받은 모듈로, 어떤 두 영상을 비교할 때 중요하게 사용되는 프레임들에 높은 가중치를 부여하는 역할을 한다.
이 모듈은 학습 과정에서 기준 영상(anchor)과 유사한 양성 영상(positive), 유사하지 않은 음성 영상(negative)으로 구성되는 트리플렛으로 학습된다. 먼저, 기준 영상과 양성 영상, 음성 영상 간의 프레임 단위 유사도 맵을 각각 구한다. 이 과정은 텐서 닷(TD) 연산과 챔퍼 유사도(CS) 연산으로 진행된다.
기준 영상에서 얻어진 $T'$개의 프레임 단위 특성들과 양성 영상에서 얻어진 $T'$개의 프레임 단위 특성 사이의 텐서 닷 연산은 $T'_{anc} \times S^2 \times S^2 \times T'_{pos}$크기의 텐서를 생성한다. 여기에 주어진 행렬에 대한 각 열들의 최댓값의 평균을 구하는 챔퍼 유사도 연산을 수행하면 위 그림의 상단에 표현된 것과 같은 $T' \times T'$ 크기의 유사도 맵을 생성하는데, 이때 각 행은 기준 영상의 프레임을 의미하고, 각 열은 양성 영상의 프레임을 의미한다. 즉, 이 유사도 맵의 픽셀들은 기준 영상과 양성 영상의 프레임들 간의 유사도를 나타낸다.
TSM은 먼저 이렇게 얻어진 유사도 맵을 입력으로 받아 트리플렛 손실에 의해 학습되는 신경망을 학습시키는데, 신경망의 출력부에 존재하는 챔퍼 유사도 연산이 최댓값을 우선하기 때문에 자연스럽게 영상의 유사도를 판단하는데 중요한 프레임에 높은 값을 할당하게 된다. 신경망이 높은 가중치를 부여하는 영역들을 추출하여 중요도 라벨(saliency label)로 활용한다.
위 과정에 이어, 이번에는 기준 영상과 기준 영상 자신 간의 유사도 맵을 TD+CS 연산을 통해 생성한다. 그 다음 별도의 트랜스포머 기반 신경망을 이용해 이 유사도 맵을 정제하여, 목표 영상과 다른 영상 간의 유사도를 판단하는데 중요한 프레임에 높은 가중치를 부여하는 신경망을 학습시킨다. 이때 학습을 위하여 위에서 얻은 중요도 라벨을 활용한다.
추론 단계에서는 트리플렛 영상 쌍이 아닌 목표 영상(target)만이 주어진다. 이 영상을 두 번째 과정에서 학습한 모델에 투입하여 목표 영상에서 다른 영상과의 유사도를 판별하는데 중요하지 않은 프레임들을 억제하는 중요도 가중치(saliency weight)를 획득한다.
주제 지도 모듈 (Topic Guidance Module)
위에서도 설명한 것처럼, 비정돈 영상에는 영상의 주제와 무관한 장면들이 포함되어 있다. 주제 지도 모듈은 이러한 프레임들을 억제하는 모듈이다.
먼저, 영상의 모든 프레임 단위 특성에 대하여 시공간적 전역 평균 풀링(ST-GAP)을 수행한다. 이를 통해 $T\times S^2 \times C$ 크기였던 특성은 $C$ 크기의 유사 주제(pseudo topic) 벡터로 변환된다. 이 벡터는 영상에서 추출한 모든 프레임 단위 특성의 전역 평균 풀링으로 구해진, 일종의 영상을 대표하는 특성이라고 볼 수 있다. 그 다음 다시 프레임 단위 특성에 공간적 전역 평균 풀링(S-GAP)을 수행하여 이번에는 $T' \times C$ 크기의 행렬을 얻는다. 이 행렬과 위에서 구한 유사 주제의 코사인 유사도를 구하여 초기 상태 $I\in\mathbb{R}^{T'}$를 얻는다. 이는 각 프레임과 영상의 유사 주제와의 유사도를 의미한다.
이렇게 얻은 초기 상태를 1차원 합성곱 신경망에 입력하여 정제 과정을 거치고, 0-1의 출력을 갖는 Tempered Sigmoid 함수를 통과시키면 $T'$ 개의 프레임에 대한 주제 지도 가중치를 얻을 수 있다.
$$ \omega(h) = \frac{\sigma}{1+e^{-h/\tau}} - o $$
Tempered Sigmoid는 우리가 흔히 아는 시그모이드 함수의 변형으로, 학습 시 그래디언트의 norm을 조절하여 노이즈에 대해 강건하게 만든다. 저자들은 위 공식에서 $\sigma=1, o=0, \tau=512$로 설정하였는데, 이는 결국 기존 시그모이드 함수에서 입력값에 512를 나누어 준 것과 같다. 입력 값을 512로 나누어 줌으로써 시그모이드 함수가 입력된 활성화 값에 512배 둔감하게 반응하게 하고, 이를 통해 학습 시 그래디언트의 크기가 작아진다. TGM은 ST-GAP을 사용하여 모든 프레임 단위 특성 값을 사용해 유사 주제를 만드는데, 학습 단계에서 TGM의 입력으로 DDM에서 전달된 easy distractor를 포함한 특성들을 사용하기 때문에 이러한 노이즈에 취약하게 된다. 그렇기에 TGM에 Tempered Sigmoid를 적용하여 노이즈에 대한 강건함을 얻고자 하였다.
Training Strategy
VVS는 기본적으로 트리플렛 방식으로 학습되며, 손실함수는 아래와 같이 정의된다.
$$ \mathcal{L} = \mathcal{L}_{vi} + \mathcal{L}_{fr} + \mathcal{L}_{sa} + \alpha\mathcal{L}_{di}$$
$\mathcal{L}_{di}$는 Discrimination Loss로, 방해자 판별 모듈의 학습을 위한 이진 크로스 엔트로피 함수이다. 이는 DDM이 올바르게 쉬운 방해자를 판별하고 있는지 평가하며, 학습 과정에서 DDM이 빠르게 수렴하는 경향이 있어 이 속도를 조절하기 위해 하이퍼 파라미터 $\alpha$를 도입하였다.
$$\mathcal{L}_{fr} = \mathcal{L}_{tri} + 0.5\mathcal{L}_{reg}\\
\mathcal{L}_{tri} = \max\{0, CS(\mathcal{D}_n) - CS(\mathcal{D}_p) + \gamma\}\\
\psi(\mathcal{D}) = \sum |\max\{0, \mathcal{D} - J\}| + |\min\{0, \mathcal{D} + J\}|,\\
\mathcal{L}_{reg} = \psi(\mathcal{D}_p) + \psi(\mathcal{D}_n)
$$
Frame Loss $\mathcal{L}_{fr}$은 시간적 중요도 모듈에서 사용되는데, Triplet Margin Loss $\mathcal{L}_{tri}$와 Regularization Loss $\mathcal{L}_{reg}$의 합으로 정의된다. $\mathcal{L}_{tri}$는 TSM에서 생성된 유사도 맵의 CS 연산을 거쳐 얻어진 값이 트리플렛의 양성 샘플 간에는 마진 $\gamma$보다 낮게, 음성 샘플 간에는 마진 $\gamma$보다 크게 만든다. $\mathcal{L}_{reg}$는 $\mathcal{D}$와 같은 크기의 0과 J로 각각 가득한 행렬 $0, J$로 정의되며, TSM이 생성하는 유사도맵의 발산을 제한하는 규제를 적용한다.
$$\mathcal{L}_{sa} = \frac{1}{T'}\sum^{T'}_{t=1} y_{sa}^{(t)} \log(w_{sa}^{(t)}) + (1-y_{sa}^{(t)})\log (1-w_{sa}^{(t)}). $$
Saliency Loss $\mathcal{L}_{sa}$는 saliency weight $W_{sa} = \{ w_{sa}^{(t)} \}^{T'}_{t=1}$와 saliency label $Y_{sa}=\{ y_{sa}^{(t)} \}^{T'}_{t=1}$ 간의 이진 교차 엔트로피로, TSM의 학습에 사용된다.
$$\mathcal{L}_{vi} = \max \{ 0, \theta(V, V^-) - \theta(V, V^+) + \gamma \}$$
video loss $\mathcal{L}_{vi}$은 tiplet의 video-level feature 간의 triplet margin loss이다. $V, V^-, V^+$는 각각 triplet의 anchor, positive, negative 샘플의 video-level feature들이며 $\theta$는 코사인 유사도 이고, $\gamma$는 마진 값이다.
VVS는 전체 과정에서 가중치를 학습시키지 않는 백본 신경망을 제외하고 모든 신경망을 동시에 최적화하는 end-to-end framework이다.
Experiments
저자들은 비디오 검색 분야에서 흔히 사용되는 FIVR-200K 데이터셋과 CC_WEB_VIDEO 데이터셋에서 기존 비디오 검색 모델들과의 성능 비교를 진행하였다. 그 결과, VVS는 모든 영상 단위 비디오 검색 모델 중 가장 좋은 mAP 성능을 달성하였으며, 프레임 단위 비디오 검색 모델에 가까운 성능을 보였다.
한편 FIVR-5K 데이터셋에서 검색 속도를 측정한 결과, VVS는 일반적인 영상 단위 검색 방법론과 같이, 프레임 단위 검색 방법론 대비 약 3배 빠른 속도를 보였다.
또한 저자들은 제안한 세 가지 모듈의 비교 실험을 통해, 방해자 프레임들을 다양한 방법으로 명시적으로 억제하는 것들이 모두 성능 향상에 효과적임을 보였다.
영상의 각 프레임들과 해당 프레임들에 부여된 가중치의 시각화를 보면, 의도된 것처럼 각 모듈들이 영상의 주제와 무관한 방해자 프레임들을 잘 억제하고 있음을 확인할 수 있다.
Conclusion
VVS는 비정돈 영상에서 영상 단위 특성을 생성할 때, 방해자 프레임들을 명시적으로 적절히 제거하는 방법을 통해, 정확도가 낮다고 여겨졌던 영상 단위 비디오 검색 방법론으로도 충분히 높은 정확도를 달성할 수 있음을 주장하며, 이를 위한 세 가지 모듈들을 정의하여 실제로 영상 단위 비디오 검색 방법론 중 SOTA를 달성하였다.
이 과정에서 Tempered Sigmoid, Tensor Dot, Chamfer Sim 등 다양한 방법과 비교 실험을 통해 성능을 최대화하고 논문이 제안하는 방법의 실용성을 보였다.
특히 Supplementary에서 본문에서 설명하지 못한 내용이나 뒷받침이 필요한 내용들에 대해 정량적, 정성적 실험과 수식들을 기반으로 보충하여 낯선 분야의 논문이었음에도, 다 읽고 난 후 의문이나 아쉬움이 얼마 없었던 논문이었다. (조금이나마 생겼던 의문들은 가까운 곳에 계신 저자님들의 도움으로 금방 해결할 수 있었다.)
기초 교육 과정의 마지막 단계로 이 논문을 읽고, 개인적으로는 처음으로 supplementary를 포함하여 세 번 이상 완독한 논문이 되었는데, 지난 4개월 간의 여정(?)을 돌아보고, 앞으로 내가 나아가야 할 분야와 좋은 논문을 쓰는 방법 등에 대해 많은 생각을 가질 수 있었다.
'Deep Learning > 논문 리뷰' 카테고리의 다른 글
댓글
이 글 공유하기
다른 글
-
Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset (I3D) 논문 리뷰
Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset (I3D) 논문 리뷰
2023.05.24 -
ImageBind: One Embedding Space To Bind Them All 리뷰
ImageBind: One Embedding Space To Bind Them All 리뷰
2023.05.16 -
VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 리뷰
VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 리뷰
2023.05.01 -
ViSiL: Fine-grained Spatio-Temporal Video Similarity Learning 리뷰
ViSiL: Fine-grained Spatio-Temporal Video Similarity Learning 리뷰
2023.04.04