ViSiL: Fine-grained Spatio-Temporal Video Similarity Learning 리뷰
이 논문은 2019년 ICCV에 개제 된 논문으로, Video Retrieval 문제를 해결하기 위한 기존 모델들이, 프레임 전체, 때로는 영상 전체를 하나의 벡터로 임베딩하여 시공간적 정보를 잃었던 것과는 달리, 시공간적 정보를 세세하게 고려하는 영상 유사도 학습 구조를 제안한다.
이 CNN 기반 모델은 프레임 간 유사도로부터 비디오 간 유사도를 구하게 되는데, 이를 통해 각 영상 내부적(intra)인 정보와 영상 사이(inter)의 정보 모두를 고려한다.
ViSiL 모델에서 각 프레임 쌍의 유사도는 CNN feature frame에 대한 텐서 닷 연산(Tensor Dot, TD)과 Chamfer Similarity(CS)를 통해 구해지는데, 이를 통해 feature들이 aggregation 되기 전에 유사도를 구한다.
그 결과 생성된 전체 프레임간의 유사도 행렬은 4개의 계층을 가진 CNN에 입력되어, Chamfer Similarity(CS)로 요약되어 비디오 간의 유사도 점수를 구하게 된다.
저자들은 이 모델을 트리플렛 로스로 학습시키고, 네 개의 Video Retrieval 데이터셋에서 평가하여 SOTA를 달성하였다.
Introduction
ViSiL은 영상의 공간적(intra-frame) 정보와 시간적(inter-frame) 정보 모두의 시각적 유사도를 활용한다.
먼저, 어텐션 기법으로 가중치를 부여한 region-level CNN의 feature에 대한 텐서 닷(TD)연산과 Chamfer Similarity(CS)를 통해 프레임 간 유사도를 구한다. 이를 통해 영상 속의 공간적 정보를 잃지 않고 프레임간의 비교를 수행할 수 있다.
그다음, 두 영상의 각 프레임에 대한 유사도 점수 행렬을 구하여 이를 4 계층 CNN에 입력하고, Chamfer Similarity(즉, mean max filter)를 마지막 계층에 적용한다. 이를 통해 유사한 영상들의 frame들 사이에 존재하는 시간적 유사 구조를 학습하고(위 이미지의 대각선 영역), 혹시나 나타날 수 있는 가짜 유사 구조들은 억제한다.
저자들은 ViSiL을 유사 중복 영상 검색(NDVR), Fine-grained Incident and Event-based Video Retrieval (FIVR, EVR), Action Video Retrieval (AVR) 등의 다양한 벤치마크 데이터셋에서 실험을 진행하여, 대부분 큰 차이로 SOTA를 달성하였다.
Related Work
영상 검색(Video Retrieval)에는 크게 3가지의 접근 방식이 있다.
- 영상 전역의 표현(Global video representation)간의 유사도를 이용하는 방법
- 각 영상 속 프레임간의 유사도를 이용하는 방법
- 영상의 시공간적 표현의 유사도를 이용하는 방법
global video representation을 사용하는 방법 1.은 영상 전체를 고정된 크기의 벡터로 만들어 비교한다.
이 방법은 일반적으로 뒤에 설명할 두가지 방법에 비해 떨어지는 성능을 보인다.
두 번째 방법은 영상 속의 각 프레임들을 사이의 유사도를 비교하고, 이를 영상 수준의 유사도로 병합(aggregate)한다. 이러한 방법들은 꽤나 효과적이었지만, 기존 연구들의 엄격한 병합 과정의 한계상 다양한 시간적 유사성을 검출할 수 없었다.
한편, ViSiL은 CNN subnet을 이용해 이러한 유사 패턴들을 학습하여 이러한 두 번째 방법론에 속하면서도 각 프레임 사이의 시간적 유사성을 검출할 수 있다.
세 번째 방법은 영상의 프레임 수준 feature들로부터 시공간적 표현을 추출하고, 이를 이용해 영상의 유사도를 계산한다. 이 방식에서는 푸리에 변환을 이용한 연구들이 많이 이루어지고 있다. 그러나, 이런 방법들은 global frame representation에 의존하는 경향이 많아, 공간적 정보를 놓치게 된다.
Feng et al. 은 cross gated bilinear matching을 통한 영상 re-localization 문제를 위해 C3D feature가 다계층 순환신경망을 도입하여 video matching 문제에서 좋은 성능을 얻었으나, 이 방법은 영상 검색에는 적용할 수가 없다. (아래에서 설명)
Preliminaries
텐서 닷(TD) 연산: 두 텐서 $\mathcal{A}\in \mathbb{R}^{N_1\times N_2\times K}, \mathcal{B}\in\mathbb{R}^{K\times M_1\times M_2}$가 있을 때, 두 텐서의 TD는 특정 축에 대한 두 텐서의 합으로 다음과 같다.
$$ \mathcal{C} = \mathcal{A}\cdot_{(i,j)}\mathcal{B}$$
TD 연산의 결과는 $C\in\mathbb{R}^{N_1 \times N_2 \times M_1 \times M_2}$와 같으며, $i, j$는 어떤 축을 기준으로 텐서를 더할지를 나타낸다. 두 축의 크기가 일치해야 하므로, 위 예시에서는 공통되게 $K$의 크기를 갖도록 $i=3, j=1$이 된다.
Chamfer Similarity(CS) 연산: Chamfer Distance연산의 반대로, 각각 $N,M$개의 원소를 갖는 집합 $x, y$에 대하여, 두 집합의 유사도 행렬은 $\mathcal{S} \in \mathbb{R}^{N\times M}$가 되는데, CS는 집합 $x$에 속한 각 원소와 가장 유사도가 높은 집합 $y$의 원소 사이의 유사도의 평균이다.
$$ CS(x,y) = \frac{1}{N}\sum_{i=1}^N \max_{j\in[1, M]} \mathcal{S}(i,j)$$
CS 연산은 symmetric 하지 않음에 유의하여야 한다. 저자들은 Symmetric 한 CS연산을 따로 SCS라 구성하여 테스트하였다.
ViSiL
ViSiL의 구조는 그림 2와 같다. 먼저 CNN의 중간 합성곱 계층으로부터 region pooling을 수행하여 feature들을 추출한다. 그리고 PCA whitening과 어텐션 기반의 가중치 부여 과정을 거친다. 그다음, TD+CS 연산을 통해 각 triplet pair들의 유사도 행렬(Similarity Matrix)을 생성하여 frame-level의 비교를 수행하고, 이를 CNN에 투입하여 video level similarity model을 학습시킨다.
Feature Extraction
영상의 한 프레임이 입력으로 주어지면, R-MAC을 적용하여 중간 합성곱 계층들로부터 MAC feature들을 추출한다. R-MAC이 영상의 한 축을 $N$개로 분할하도록 하였을 때, $K$개의 계층을 가진 CNN은 $K$개의 feature map $\mathcal{M}^k \in \mathbb{R}^{N\times N\times C_k}(k=1, \cdots, K)$을 갖는다. ($C^k$는 $k$번째 합성곱 계층의 채널 수)
이렇게 생성된 $K$개의 feature map은 모두 $(N\times N)$ 해상도를 갖기 때문에, 다음과 같이 합칠 수 있다. $\mathcal{M} \in \mathbb{R}^{N\times N\times C}, C=C_1 + \cdots C_k$ 이때, 병합 전후로 각 feature map의 채널 축에 대하여 L2 normalization을 적용한다.
이러한 특성 추출 과정을 $L_N-\text{iMAC}$으로 나타낸다.
추출된 frame feature들은 $N$에 따라 각기 다른 공간적 정보를 유지하고 있다.
다음으로 우리는 PCA를 적용하여 whitening, 차원 축소를 함께, 혹은 하나만 적용한다.
그리고 다시금 L2 normalization을 적용하는데, 이는 모든 영역의 벡터들이 유사도 계산에서 동등하게 대우되도록 한다.
예를 들어, 완전히 어두운 영역 역시 복잡한 관심 영역과 같은 영향력을 가질 것이다.
이를 방지하기 위해, 각 프레임의 영역들에 어텐션을 활용해 중요도(saliency)에 따라 가중치를 부여해 준다.
어텐션 기법을 영상에 적용하기 위해, 저자들은 다음과 같은 기법을 개발했다. 프레임 표현 $\mathcal{M}$에 대하여 region vector $r_{ij}:\mathcal{M}(i,j,\cdot) \in \mathbb{R}^C$이 정의될 때, visual context unit vector $u$가 정의되며, 이는 각 region vector의 중요도를 측정하기 위해 사용된다.
우리는 모든 $r_{ij}$와 internal context vector $u$간의 dot product를 구하여 가중치 점수 $\alpha_{ij}$를 얻는다. 모든 벡터가 unit norm을 가지기 때문에, $\alpha_{ij}$는 $[-1, 1]$의 범위를 갖는다.
벡터의 방향은 유지하고 norm은 바꾸기 위해, 우리는 가중치 점수 $\alpha_{ij}$를 2로 나누고 0.5를 더하여 범위를 $[0, 1]$로 바꾼다. 결과적으로 가중치 부여는 아래 식에 의해 수행된다.
$$ \alpha_{ij} = u^Tr_{ij}, s.t. ||u|| = 1\\
r'_{ij} = (\alpha_{ij}/2 + 0.5)r_{ij}$$
가중치 부여 과정은 모두 미분가능하기 때문에, $u$는 학습과정에서 학습된다. 각 벡터를 독립적으로 가중치 부여하기 위해, 별도의 normalization은 진행하지 않는다. 또한, 실험을 통해 이 task에서는 어텐션 모듈에 은닉층을 두는 것이 오히려 성능을 하락시킴을 알아내었다.
Frame-to-frame similarity
두 비디오 프레임 $d, b$가 주어졌을 때, region feature maps에 CS를 적용하여 두 프레임의 유사도를 계산한다.
먼저, regional feature map $\mathcal{M}_d, \mathcal{M}_b \in \mathbb{R}^{N\times N\times C}$를 분해하여 region vector $d_{ij}, b_{kl}\in \mathbb{R}^C$로 만든다. 그 다음, 모든 region vector 쌍에 대한 dot product를 통해 두 프레임의 유사도 행렬을 생성한다. 여기에 CS를 적용하여 최종적인 frame-to-frame similarity vector를 얻는다.
$$ CS_f(d, b) = \frac{1}{N^2} \sum^N_{i,j=1} \max_{k,l\in[1, N]}d_{ij}^Tb_{kl}$$
이 과정을 통해 region vector들의 지역적 정보들을 활용하고, 어느 정도 공간적 invariance도 허용하게 된다.
조금 더 상세히 설명하자면, CNN의 중간 계층에서 mid-level visual structures, 즉 물체의 일부와 같은 형상들을 가져오는데, 이를 통해 region to region similarity를 구하여 공간적 변화(이동 등)에 강건함을 얻는다. 이러한 구조는 frame의 전체적인 구조적 정보를 보존하는 것과, 공간적 변화에 강건해지는 것 사이에 어느 정도의 trade off 관계를 갖는다.
Video-to-Video Similarity
각각 $X, Y$개의 프레임을 가지고 있는 영상 $q, p$에 frame-to-frame similarity를 구하기 위해, 비디오 텐서 $\mathcal{Q}, \mathcal{P}$에 TD와 CS를 적용하여 frame-to-frame similarity matrix $\mathcal{S}^{qp}_f \in \mathbb{R}^{X\times Y}$를 얻는다.
$$ \mathcal{S}^{qp}_f = \frac{1}{N^2}\sum^{N^2}_{i=1} \max_{j\in[1, N^2]} \mathcal{Q}\cdot_{(3,1)}\mathcal{P}^T(\cdot, i, j, \cdot ) $$
이때, TD 축은 각 영상 텐서의 채널 차원을 의미하며, 이를 통해 위에서 소개한 $CS_f(d, b)$ 식을 모든 프레임 쌍에 수행할 수 있다. 즉, 영상 텐서 $\mathcal{Q}$와 $\mathcal{P}$ 속 각 프레임에 대하여, 가장 유사도가 높은 프레임들을 찾고, 그 프레임들의 유사도의 평균이 $S_f^{qp}$가 되는데, 이를 영상의 모든 프레임 $X, Y$개에 대하여 수행하면 $X\times Y$ 크기의 행렬 $\mathcal{S}_f$를 얻을 수 있다.
이렇게 얻어진 frame-to-frame 유사도 행렬 $\mathcal{S}_f$는 CNN에 입력된다. 이 신경망은 segment level에서의 영상의 유사도 패턴을 학습한다. 최종 영상 유사도를 계산하기 위해, 우리는 출력값을 $[-1, 1]$로 클리핑하는 hard tanh 활성화 함수를 최종 출력함수로 사용한다. 그리고, CS를 적용하여 하나의 값을 출력하게 한다.
$$CS_v(q, p) = \frac{1}{X'}\sum^{x'}_{i=1} \max_{j\in[1, Y']}H\tanh(\mathcal{S}^{qp}_v(i,j))$$
$\mathcal{S}^{qp}_v \in \mathbb{R}^{X' \times Y'}$는 CNN의 출력이다. 여기에 hard tanh를 적용하여 출력을 클리핑 한다. frame-to-frame 유사도 계산과 비슷하게, 이 역시 video-level structure와 시간적인 변화에 강건함 사이의 trade off가 있다.
Loss Function
우리가 얻고자 하는 영상 유사도 점수 $CS_v(q,p)$는 연관성이 있는 영상에 대해서는 높아야 하고, 연관성이 없는 영상에 대해서는 낮은 값이 나와야 한다. 학습을 위해 데이터셋의 영상으로 triplet $v, v^+, v^-$를 구성한다. 이는 각각 앵커, positive(유관 영상), negative(무관 영상)을 의미한다. 아래 triplet loss를 사용하여 모델이 positive 영상에게는 높은 값, negative 영상에게는 낮은 값을 부여하도록 학습시킨다.
$$\mathcal{L}_{tr} = \max(0, CS_v(v, v^-) - CS_v(v, v^+) + \lambda)$$
$\lambda$는 마진 파라미터로, 모델은 positive 한 영상들이 이 마진보다 낮은 유사도를 갖도록 한다.
또한, 유사도 제약 함수(similarity regularization)를 적용하여 hard tanh 함수에 너무 큰 입력을 가해 출력값이 극단적으로 치우치지 않도록 한다. 이 제약은 단순하게, 클리핑 범위를 벗어난 유사도 값들을 모두 더한다.
$$ \mathcal{L}_{reg} = \sum^{X'}_{i=1} \sum^{Y'}_{j=1} |\max(0, S^{qp}_v(i,j) -1)| + |\min(0, S_v^{qp}(i,j)+1)|$$
$$\mathcal{L} = \mathcal{L}_{tr} + \mathcal{r} * \mathcal{L}_{reg}$$
ViSiL 학습
ViSiL의 학습에는 Triplet이 필요하다. 학습 과정에서 label을 이용해 triplet을 구성하며, 몇 가지 augmentation 기법을 통해 positive pair를 더 만든다. grayscale 변환, 밝기, 대비, 색조, 휘도와 같은 색상을 변환하거나, flip, crop, rotation, resize, rescale 같은 기하학적 변환, slow motion, fast forward, frame insertion, video pause, reversion과 같은 시간적 영상 변환도 가한다. 학습 과정에서 색상 변환, 기하학적 변환, 시간적 변환 각 요소 중 하나씩을 랜덤 하게 선택하여 영상에 적용한다.
저자들은 positive pair를 구성하는 두 가지 영상 풀을 만드는데, 각 positive pair에 대하여 hard triplet을 생성한다. (positive 영상보다 더 높은 유사도 점수를 갖는 negative 샘플로 구성된 hard negative pair) 이때 BoW 방법을 활용한다.
첫 번째 풀은 학습 데이터셋의 annotation(label)을 이용해 생성된다. 최소 5초 이상 유관한 부분이 있는 영상들로 positive pair를 구성한다. $s$가 각 영상의 대응되는 부분의 유사도라고 할 때(BoW로 계산된), positive pair의 $s$보다 큰 유사도를 갖는 negative 영상을 이용해 hard negative pair들을 생성한다.
두 번째 풀은 학습 데이터에 위에 설명한 변환을 가하여 생성한 pair들이다. 변환을 가하기 전 영상과 유사한 영상(유사도>0.1)들을 hard negative로 본다. 그러나, 유사-중복 영상을 만들려는 것은 아니기 때문에 너무 유사한(유사도 > 0.5) 영상들은 제외하였다.
각 학습 에포크에서, 저자들은 각 풀에서 $T$개의 triplet을 추출하였다. GPU 메모리의 한계 상, 모든 영상을 신경망에 투입하는 대신 총 $W$ 프레임에 해당하는 영상의 일부들을 사용하였는데, 이를 위해 위에서 언급한 것처럼 positive pair들 간에 유사한 부분이 최소 5초 이상 있도록 하였다.
Evaluation setup
저자들은 모델을 다양한 Retrieval task에서 평가하였다.
- Near-Duplicate Video Retrieval (NDVR)
- Fine-grained Incident Video Retrieval (FIVR)
- Event Video Retrieval (EVR)
- Action Video Retrieval (AVR)
이를 위해 여러 가지 데이터셋이 사용되었다.
- VCDB: 학습 데이터로 사용되었다. 528개의 영상과 9000개의 copied segment가 존재하며, 10만 개의 distractor video가 포함되어 있다.
- CC_WEB_VIDEO: NDVR 문제에 사용되었다. 24개의 쿼리 영상과 13,129개의 영상을 가지고 있다. 저자들은 이 데이터셋의 annotation에 몇 가지 문제가 있는 것을 발견하였는데, 이를 고친 cleaned 버전의 데이터를 공개하였다.
- FIVR-200K: 100개의 쿼리 영상과 225,960개의 영상을 가진 데이터로, FIVR task에 사용되었다. 이 데이터셋은 DSVR, CSVR, ISVR 3가지의 task를 위한 annotation을 가지고 있는데, 빠른 비교를 위해 FIVR-200K 데이터 중 어려운 데이터들로 구성된 FIVR-5K 데이터셋을 사용했다.
- EVVE: EVR 문제를 위한 데이터셋으로, 620개의 쿼리와 2375개의 비디오로 구성된다. 그러나, 다운로드 환경의 문제로 저자들은 약 80%의 데이터만을 사용할 수 있었다.
- ActivityNet: AVR 문제를 위해 사용하였으며 3791개의 학습 데이터와 444개의 validation, 494개의 test 영상으로 구성된다.
Implementation Details
각 영상에서 초당 1개의 프레임을 추출하였고, AVR을 제외한 모든 문제에 대해 위에서 설명한 ResNet기반의 feature extractor를 사용하였다. 다만, 효율을 위해 네 개의 residual block들에서만 feature map을 추출하였다. whitening 계층을 위한 PCA는 VCDB에서 얻은 백만 개의 region vector로 학습되었다.
AVR task를 위해서는 I3D 구조를 사용하였고, 마지막 3D 합성곱 계층의 출력을 공간 축에 대하여 max-pooling 하여 feature를 얻었다.
학습에서, GPU 메모리의 한계 상 저자들은 한 번에 한 영상에 대한 triplet만을 사용하였다. Adam 옵티마이저에 러닝 레이트는 $l=10^{-5}$를 사용하였고, 각 에포크당 $T=1000$의 triplet을 사용하였다. 모델은 100 에포크 학습되어, 총 20만 회의 학습을 진행하였다.
validation mAP를 기준으로 최적의 모델을 선정하였고, 다른 파라미터는 모두 $\lambda=0.5, \mathcal {r}=0.1, W=64$를 사용하였다. feature extraction CNN과 whitening layer의 가중치는 고정하였다.
Experiments
저자들은 실험 과정에서 기존 SOTA 모델들인 DP와 TN을 구현하였다. 그러나, 이 방법들이 원래 handcrafted feature를 기반으로 하는 오래된 방법이었기에, 이 방법들에 저자들이 제안한 frame extractor를 사용하도록 수정하였다.
Frame-to-frame similarity comparison
저자들이 제안한 feature extraction 방법과 기존의 global pooling 방법들에 대한 비교를 FIVR-5K 데이터에서 수행하였다. Dot Product로 유사도 계산을 수행하였고, 모든 실험에 대한 영상 유사도는 CS로 계산되었다. 비교 대상이 된 기존 방법은 MAC, SPoC, R-MAC, GeM pooling이 있다. 또한, 저자들은 저자들이 제안한 방법에서 region level $L_N$을 $N=2, 3,$그리고 각 레벨에 따른 각기 다른 벡터 크기로 바꿔가며 실험해 보았다. PCA를 사용하여 whitening 없이 region vector의 크기를 줄였다.
위 표에 FIVR-5K 데이터에서의 비교 결과가 나와있다. 제안된 $L_3-iMAC$이 다른 방법들과 큰 차이로 최고의 성능을 내는 것을 확인할 수 있다. 특히, 차원 축소를 거친 feature들이 이를 진행하지 않은 feature들에 비해 크게 뒤떨어지지 않으며, 비슷한 차원의 다른 feature들보다 좋은 성능을 내는 것을 눈여겨볼 만하다.
저장 공간 측면에서 ViSiL feature는 성능과의 훌륭한 trade-off를 보인다.
Ablation Study
저자들은 ViSiL의 각 요소들이 성능에 주는 영향을 평가하였다. 평가는 FIVR-5K 데이터셋에서 진행되었다. 각 요소는 성능에 긍정적인 영향을 주었는데, CS 대신 SCS(Symmetric Chamfer Similarity) 연산을 수행할 경우 오히려 성능이 하락하였다. $(ViSiL_{sym})$
저자들은 Similarity Regularization Loss $\mathcal{L}_{reg}$를 추가하는 것이 성능을 크게 향상함도 확인했다.
저자들은 이 외에도 supplementary를 통해 CS 이외의 유사도 함수를 사용하는 것, 하이퍼파라미터 $\lambda, W, \mathcal{r}$을 바꾸는 것 등 여러 가지 실험을 진행했다.
Comparison against SOTA
Near-duplicate video retrieval
NDVR task에서, 기존에 좋은 성능을 낸 모델인 Deep Metric Learning, Circulant Temporal Encoding, 그리고 DP와 TN의 재구현 버전과의 비교를 수행한 결과, ViSiL이 크게 앞선 성능을 보였다. 다만, CC_WEB_VIDEO 데이터셋의 라벨 오류를 포함한 경우에서만 CTE 모델이 더 좋은 성능을 내었고, 이 오류를 고친 결과 ViSiL이 가장 좋은 성능을 내었다.
Fine-grained incident video retrieval
FIVR-200K의 SOTA와 비교를 수행했다. Layer Bag-of-Words with iMAC features와 DP, TN 재구현 모델과 비교를 수행했다. 역시 ViSiL이 모든 경쟁 모델을 앞서는 성능을 보였으며, DSVR task에서는 0.9라는 높은 성능을 보였다. 또한, 오답으로 분류된 결과들을 확인한 결과, 일부는 라벨링 오류로 인해 오답으로 처리된 것을 확인할 수 있었다. (아래 이미지)
Event video retrieval
EVR task에서, 저자들은 역시 기존 SOTA인 Learning to Align and Match Videos(LAMV) 방법과의 비교를 수행했다. ViSiL은 별다른 query expansion 기법 없이도 꽤 잘 작동하였다. ViSiL은 대부분의 클래스에 대하여 더 우수한 성능을 보였으나, EVVE 데이터셋을 80% 정도밖에 확보하지 못하여 정확한 비교는 불가하였다.
Action video retrieval
ActivityNet, DML, DP, TN과 VReL과의 비교를 수행했다. feature는 I3D로부터 추출된 것을 사용했다. 특이하게, 이 경우에는 SCS를 사용한 것이 좋은 성능을 내었다.
Conclusions
이 논문에서는 다음과 같은 기여를 하였다.
- regional level에서의 frame-to-frame 유사도 계산 방법
- video segments 간에 유사도를 강건하게 잡아내는 유사도 행렬 기반의 video-to-video 유사도 계산 방법
이를 통하여 영상의 시공간적 정보를 모두 잘 활용한 영상 검색을 수행하여 좋은 성능을 얻었다.
'Deep Learning > 논문 리뷰' 카테고리의 다른 글
댓글
이 글 공유하기
다른 글
-
VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 요약
VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 요약
2023.05.12 -
VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 리뷰
VVS: Video-to-Video Retrieval with Irrelevant Frame Suppression 리뷰
2023.05.01 -
Near-Duplicate Video Retrieval with Deep Metric Learning 리뷰
Near-Duplicate Video Retrieval with Deep Metric Learning 리뷰
2023.03.30 -
Near-Duplicate Video Retrieval by Aggregating Intermediate CNN Layers 리뷰
Near-Duplicate Video Retrieval by Aggregating Intermediate CNN Layers 리뷰
2023.03.29