논문 Review/Video Retrieval

ViSiL: Fine-grained Spatio-Temporal Video Similarity Learning

SooHyun2i 2022. 3. 7. 12:55

오늘 리뷰 할 논문은 DnS: Distill-and-Select for Efficient and Accurate Video Indexing and Retrieval 에 basic이 되는 ViSiL: Fine-grained Spatio-Temporal Video Similarity Learning 입니다.

프로그래밍용어

Fine-Grained

  • 하나의 작업을 작은 단위의 프로세스로 나눈뒤, 다수의 호출을 통해, 작업 결과를 생성해내는 방식
  • Flexible System 상에서 유용하게 쓰일 수 있음

 

Coarse-Grianed

  • 하나의 작업을 큰 다위의 프로세스로 나눈 뒤, Single Call 을 통해, 작업 결과를 생성해내는 방식
  • Distributed System 상에서 유용하게 쓰일 수 있음

1. Introduction

 

Internet-based video sharing service의 인기 때문에 video filtering, recommendation, copyright protection and verification에 필수 요소인 content-based video retrieval이 increasingly challenging이 되었습니다.

이 논문에서는 paris of video 사이에 similarity estimatinon 문제를 다룹니다. 

이 문제에 대해 간단한 접근 방법은 frame-level feature들을 single video-level represenation으로 aggregate/pool 하는 것이며 이후에 similarity를 계산할 수 있습니다.

이와 같은 video-level representation은 global vector, hash code, Bag-of-Words(BoW)를 포함합니다. 

하지만 이것은 video similarity의 spatial and temporal한 structure를 버리기 때문에 aggregation된 feature는 clutter이나 irrelevant한 content에 영향을 미치게 됩니다. 다른 접근은 temporal sequence of frame을 고려하는 방법입니다.

 

최근 approach는 frame의 spatial processing의 포커스를 맞추고 temporal information을 완전히 무시하고 또는 global frame representation을 고려하고 이러한 frame representation사이의 temporal alignment를 고려합니다.

이 paper에서는 ViSiL을 제안하는데 이 video similarity learning network는 spatial이랑 temporal 둘다 고려합니다.

 

1. 어텐션 메커님즘으로 한 region-level frame CNN feature weight에서 frame-to-frame similarity는 tensor Dot이랑 Chamfer Similarity를 employ 합니다. 

->  frame-to-frame similarity function이 짝지어진 similarity를 region-to-region으로 고려하게 해줍니다. 

(region detatil이 사라지는 frame-level embedding의 similarity 계산하는 걸 극복? 보완? 해줌)

 

2. 두 비디오 사이의 각 frame 상 사이의 similarity score를 사용하여 matrix를 계산하고 이를 four-layer CNN 입력으로 사용하며, final layer에서 Chamfer Similarity(mean-max filter)이 followed합니다.

 

3. 이를 통해 밑에 보이는 Figure1 그림의 대각선 구조와 같은 관련 비디오 frame의 frame-level similarity의 temporal 구조를 학습하고 발생할 수 있는 가짜 pairwise frame similarities를 억제합니다.

 

Near-Duplicate VIdeo Retrieval, Fine-grained Incident and Event-based VIdeo Retreival, Action Viedo Retreival 과 같은 여러개의 video retrieval problem에 평가로 ViSiL이 사용되었고 좋은 결과가 있었다고 합니다.

 


2. Related Work

 

Video retrieval approach는 3가지 categories로 분류할 수 있습니다.

  1. caclulate similarity using global video representations
  2. account for similarities between individual video frames
  3. employ spatio-temporal video representations

 

1. caclulate similarity using global video representations

 

global video vector를 extract하고 dot product나 Euclidean distance를 사용해서 비디오 사이의 similarity를 계산합니다.

그 외에 많은 방법들과 논문들을 설명하는데 이 부분은 다음에 수정하도록 하겠습니다.

이 방법들이 다른 2개의 카테고리보다 성능이 잘나온다고 합니다.

 

2. account for similarties between individual video frames

 

일반적으로 frame level feature를 추출해서 frame-to-frame similarity 계산을 적용하고 video-level similarities로 aggregtae합니다.

위와 같습니다 나중에 수정하도록 하겠습니다.

 

이 방법으로 여태까지 제안된 solution은 rigid한 aggregation approach 때문에 다양한 temporal similarity pattern을 capturing 할 수 없습니다.

여기서 ViSiL은 이 method에 속하는데 frame 쌍 사이의 similarity matrix에서 작동하는 CNN subnet의 similarity pattern을 학습합니다.

 

3. employ spatio-temporal video representations

 

이 방법은 frame-level feature을 기반으로 해서 spatio-temporal representation을 extract하고 video similarity를 계산합니다. 이 방법은 video matching 문제에서는 잘 작동하지만, Section 6에서 보면 알 수 있는데 video retrieval task에는 적용이 되지 않습니다.

 


3. Preliminaries

 

간단하게 Tensor Dot랑 Chamfer Similarity 개념을 설명합니다. 

 

Tensor Dot(TD)

여기서 i,j는 tensors들이 합해지는 축을 나타냅니다.

 

Chamfer Similarity : This is the similarity counter part of Chamfer Distance

CS는 two sets of items x and y with total numberf of N and M items 그리고 이것들의 similarity matrix 가

일 때 세트 x의 각 항목에 대해 세트 y에서 가장 유사한 항목의 average similarity로 계산됩니다.

Chamfer Similarit;

주의 할 점은 CS는 symmetric하지 않습니다. 하지만 symmetric variant SCS는 

SCS(x,y) = (CS(x,y) + CS(y,x)) / 2 로 정의 될 수 있습니다.

 

Chamfer Distance에 대해 간단히 설명하자면

 

이미지의 윤곽선을 딴 다음에 윤곽선이랑 먼저 얼마나 distance가 있는지 계산해서 Distance Transform을 해줍니다.

그림에서는 0인 부분이 윤곽선 자체이고 픽셀 속의 숫잘들이 거리를 의미합니다. 그 다음 원래 갖고 있던 템플릿을 넣어서 어디 부분이 제일 잘 맞는지를 매칭시켜줍니다. Chamfer matching이 이 의미이고 

이떄 쓰는게 Chamfer Distance인데 템플릿의 특정한 한 점에 대해 이미지의 윤곽선의 어느 한 점과 가장 가까운 거리를 찾고, 템플릿의 모든 점에 대해 이 작업을 수행해서 그 거리들을 다 더해주고 템플릿의 점의 개수로 나눠주면 나오는게 chamfer distance 입니다. 

 

참고자료 : https://m.blog.naver.com/kwangrok21/222070055101

 

Chamfer Mattch

참고자료 : https://kipl.tistory.com/36

 

 


4. ViSiL description

 

section 별로 설명을 해보겠습니다.

 

4.1. Feature extraction

 

input video frame이 주어지면 Regional Maximum Activation of Convolution(R-MAC)을 intermediate convolutional layer에 적용하고 convolutional layers 개수 만큼 feature map을 만듭니다.

모든 extracted 된 feature map은 같은 resolution (N * N)을 가지고 있고

frame representation

으로 concatenated 합니다. concatenation 전후로 L2 normalization을 채널 axis로 적용합니다. 

extracted frame feature는 다른 세분화된 frame의 spatial 정보를 유지합니다.

 

그 다음 extracted frame descriptor의 PCA whitening로 차원감소 하고 동일한 분산을 가지게 해줍니다. feature간에 서로 작은 correlation을 지니도록 해주는거죠.

extracted frame descriptor에서 L2 normalization 한 결과는 similarity 계산으로 동일하게 고려되는 모든 region vectors 입니다. 이 문제에 대해 예를 들어 설명하는게 완전한 dark region이 관심있는 subject을 묘사하는 region의 같은 similarity에 영향을 미친다는 것을 의미한다. (이게 좀 이해가 안되는데....흠..) 이 문제를 해결하기 위해 논문의 저자들은 document classification( 다른 research filed) 방법에 영감을 받아 region vector에 대한 visual attention 메커니즘을 통해 saliency를 기반으로한 frame region에 weight를 줍니다.

 

visual context unit vector u를 소개하고 각각의 region vecotr의 중요성을 측정하기 위해 사용됩니다.

이를 위해 모든 region vector를 u랑 함께 각각 dot product합니다. weight score aij를 derive 하기 위해서

 

모든 벡터는 unit norm으로 되어 있기 때문에 aij의 range는 -1~1 입니다.

region vector의 방향이랑 norm을 변경하려고 weight score aij는 2로 나누고 0.5를 더해줍니다. range를 0~1로 하기 위해서입니다.

 

모든 weighting process는 미분이 가능해서 visual context unit vector u는 training process로 학습 합니다.

어떠한 normalization function을 weight 계산하는데 사용하지 않습니다. 왜냐하면 weight 각각 vector의 independently를 얻기 위해서 이고 또한 경험적으로 attention module에 hidden layer을 사용하는게 시스템 퍼포먼스에 부정적인 효과를 보인다고 알아냈습니다.

(이 내용은 도대체....왜......다시 읽어보기)

 

4.2. Frame-to-frame similarity

 

 

위 그림 처럼 두개의 video frames d,b가 있으면 그 region feature map에서 CV를 적용해 similarity를 계산합니다. 

Md랑 Mb가 region feature map을 의미하고 이 feature map 을 바탕으로 decomposed를 해서 region vector dij,bkl을 얻습니다. 그리고 이 두개의 vector을 이용해 frame-to-frame similarity를 계산합니다. 

식은 위의 그림과 같고 This process leverages the geometric information captured by region vectors and provides some degree of spatial invariance.

 

구체적으로 설명하자면 CNN은 visual structure에 mid-level에 상응하는 feature을 extract하는데 obejct parts와 같은것들 그리고 CS랑 combined합니다. 이렇게 디자인하는게 region-to-region matrix의 global한 strcuture를 버릴 수 있어서 조금 더 공간 변환에 대해서 좀 더 robust한 similarity 계싼이 가능하다라는게 논문 저자가 하는 말입니다.

 

이게 이제 공간 변환에 대한 invariance랑 frame structure의 보존에 관한 요 두개의 trade-off를 보여줍니다.

 

4.3. Video-to-Video similarity

 

two video에 frame-to-frame similarity를 적용하기 위해 video tensors Q 랑 P에 TD랑 CS를 결합한 것을 적용하고 frame-to-frame similarity matrix 를 도출합니다. 이것에 대한 방정식 내용이 밑에 그림입니다.

 

여기서 TD 축은 비디오 텐서의 채널 수를 나타내고 이런식으로 모든 frame 쌍에 위의 방정식을 적용합니다.

위의 그림이 ViSiL frame work의 cnn 아키텍처입니다. 비디오 사ㅣㅇ의 similarity를 계산하기 위해 similarity matrix를 CNN network로 제공합니다. 

그 다음 마지막 video similarity를 계산하기 위해 hard tanh activation function을 적용합니다. network output에

range를 [-1,1]로 만들어주고 single value를 얻기 위해 CS를 또 적용하고 그 식은 밑에 그림과 같습니다.

frame-to-frame similarity 계산이랑 유사하게 이 과정도 traee-off가 있는데 video-level 구조랑 temoporal difference에 invariant에 trade-off가 있습니다. (얘는 왜 termporl이지..?)

결과적으로 다른 temporal similarity 구조를 frame-to-frame similarity matrix에서는 captured 할 수 있습니다.

(ex, strong diagonals or diagonal parts)

 

4.4. Loss function

 

target video similarity score인 CSv(q,p)는 관련있는 video는 높은값, 관련이 없는 video는 낮은 값을 얻어야 합니다.

그래서 anchor 기준으로 triple loss를 사용하고 식은 다음과 같습니다.

감마는 margin parameter를 의미합니다.

그리고 추가적으로 hard tanh가 saturated output이 되는 부분?을 high values 패널티를 주려고 similarity regularization function을 정의합니다. 이거 때문에 network에서 발생되는 output인 Sv의 범위가 [-1,1](hard tanh clipping range) 되게 해줍니다. regularization loss를 계산하기 위해 간단하게 clipping 범위를 벗어나는 output similarity matrices의 모든 값을 합칩니다. 이런 내용이 밑에 있는 식입니다.

최종 total loss는 다음과 같습니다.

4.5. Training ViSiL

 

ViSiL 아키텍처를 training 하는데 ground truth annotation dataset이 필요합니다.

annotation을 사용함으로써 training 하는 중에 관련 visual content가 있는 video paris를 extract합니다. anchor에 positive pairs를 제공하기 위해서

게다가 positive video를 인공적으로 만드려고 임의이 비디오에 transformation을 적용합니다.

3가지의 transformation을 고려합니다.

  1. color
  2. geometric
  3. temporal

training 하는 동안 각각의 카테고리로부터 하나의 transformation이 랜덤하게 선택되고 적용이 됩니다.(selected video)

positive paris로 구성된 두개의 video pools를 만듭니다. 각각의 positive pair로 hard triplet(anchor랑 positive video 보다 더 큰 anchor와 similarity를 가지는 negative video) 을 만듭니다.

 

1번째 pool은 training dataset에 있는 annotaed video로부터 pool을 얻고, 두번째 pool은 인공적으로 만들어낸 positive paris가 있는 training dataset에서 임의의 video로부터 pool을 얻습니다. 

initial video(similarity>0.1)와 유사한 video는 hard negative로 간주됩니다. 여기서 potential near-duplicate를 피하기 위해 similarity > 0.5 인 video는 hard negative set에서 제외합니다. 

 

각 training epoch에서 각각의 videp pool로부터 T triplet을 샘플합니다. GPU 메모리 한계로 전체 동영상을 네트워크에 feed하지는 않고 앵커랑 positive video 사이에 최소 5초 이상 겹침이 있도록 하기 위해 triplet에 각각의 video로부터 W 프레임의 총 size를 가진 임이의 비디오 조각을 선택합니다. ( 이건 또 왜?...)

 


6. Experiments

 

크게 3가지 Section으로 구성되어 있다. 먼저 제안된 frame-to-frame similarity 계산 체계를 dot product similarity의 global feature와 비교합니다(Section6.1)

다양한 구성에서 제안된 접근 방식을 평가하기 위한 ablation study도 제공합니다.(Section6.2)

마지막으로 Visil을 각 문제에 관한 SOTA 모델과 비교 합니다.

또한 저자들은 공개적으로 사용 가능한 video re-localization(VReL)방법을 예측된 segment의 확률을 기준으로 비디오의 rank를 매기는 retrieval setting에 naive adaptation을 시행했습니다.

 

6.1 Frame-to-frame similarity comparison

 

이 section은 FIVR-5K dataset에 대한 이전 문헌에서 제안했던 global pooling scheme과 비교해서 제안된 feature extraction scheme을 비교합니다.

 

위 tabe을 보면 FIVR-5k의 비교에 대한 결과를 알 수 있습니다.

L3-iMAC이 가장 좋은 결과를 얻었습니다. 또 reduced feature가 경쟁력있는 performance를 보여줍니다. ( global descriptors of similar dimensionality와 비교하여) 그래서 storage space가 충분하지 못한 setting에서 줄어든 ViSiL의 feature은 retrieval performance와 storage cost사이에서 훌륭한 trade-off를 제공합니다.

 

6.2. Ablation study

 

먼저 아키테척의 각 개별 모듈이 ViSiL의 retrieval 퍼포먼스에 미치는 영향을 평가합니다.

 

video-level similarity calculation 인 visilv 일 때 DSVR 그리고 CSVR task에서 가장 큰 향상을 보입니다. 

또한 어탠션 메커니즘으로 인해 ISVR task에서 (0.018mAP)의 상당한 이득을 얻을 수 있습니다. 

여기서 sym은 symmetric Chamfer Distance를 frame-to-frame이랑 video-to-video similarity calculation에 사용 한건데 확실히 non symmetric version이 성능이 더 잘나옵니다.

 

추가적으로 similarity regularization loss를 추가해주는 거에 대한 평가입니다. 확실히 성능이 더 잘나옵니다.

 

6.3 Comparison against state-of-the-art

6.3.1 Near-duplicate video retrieval

 

먼저 4개의 CC_WEB_VIDEO 버전에 대한 접근으로 SOTA 모델을 비교합니다.

 

ViSiL이 original annoation을 사용하는 case(CTE가 가장 잘 수행되는 case)를 빼고 모든 분야에서 SOTA를 보입니다.

그 경우 위에서 설명한 바와 같이 몇 가지 잘못된 주석이 있었습니다. 클린 버전에서 테스트 했을 때 ViSiL은 두 평가 설정 모두에서 거의 완벽한 결과를 얻었습니다. 오리지날 방법인 옛날 방법보다 ViSiL이 더 좋다고 얘기합니다.

 

6.3.2 Fine-grained incident video retrieval

 

FIVR-200K 데이터셋으로 SOTA모델을 비교해서 평가합니다.

비교하는 모델은 그 전에 제일 성능이 좋았던 VGG로부터 얻은 iMAC feature 를 활용한거랑 DP 및 TN으로 구현된 이 두가지를 합친  layer Bag-of Words(LBoW)와 비교를 합니다. 

표 6에서 볼 수 있듯이 ViSiLv는 DP 및 TN을 포함한 모든 경쟁 시스템을 능가합니다.

 

6.3.3 Event video retrieval

 

EVR 에서는 sota 모델인 LAMV랑 ViSiL을 비교했습니다. ViSiL은 Average Query Expansion 기술 적용 없이도 EVR problem에서 성능이 잘 나옵니다. 그러나 일부 비디오는 더 이상 사용할 수 없기 때문에 원래 EVVE dataset의 80%를 차지하는 현재 사용 가능한 비디오에 대한 결과를 보여줍니다.

 

6.3.4 Action video retrieval

 

성능은 당연히 잘 나오고 특이한 점은 symmetric similarity calculation인 ViSilsym이 성능이 덜 잘나오는 모습을 확인 할 수 있습니다.


7. Conclusions

이 논문에서는 paris of videos 사이에 similarity를 계산하고 학습하는 네트워크를 제안합니다.ViSiL의 key contribution은 a) region lvel에 대한 similarities를 capture가 가능한 frame-to-frame similarity computation scheme이랑 b) frame-to-frame similarity matrix를 분석해서 비교하는 videos segment 간에 similarities를 robustly하게 establish하는 video-to-video similarity computation schemee 입니다. 이들을 결합하여  video similarity computation method가 fine-grained spatial이랑 video similarity의 temporal한 측면 둘다 설명할 수 잇는 방법이 되도록 합니다. 이 제안된 방법들은 content-based video retrieval problem에 적용이 가능합니다. 그리고 sota도 달성합니다. 

향후 work로는 계산 복잡성을 줄이는 방법을 조사하고 해당 detection problem(video copy detection이나 re-localizatio)에 대해 제안된 체계를 적용할 계획입니다.