이 영역을 누르면 첫 페이지로 이동
컴01기 블로그의 첫 페이지로 이동

컴01기

페이지 맨 위로 올라가기

컴01기

힝입니다.

[arXiv 2021] CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrieval

  • 2023.11.23 20:08
  • 📰논문 리뷰

Abstract

  • Multi-modal 분야의 Video-Text Retrieval 을 위한 CLIP4Clip 이라는 end-to-end 모델을 제안합니다.
  • 본 논문의 메인 아이디어는, 기존의 image-language pretraining 모델인 CLIP 을 video-language 분야로 knowledge transfer 한 것입니다.
  • similarity calculator 를 세 가지 타입으로 디자인했고, 여러 실험을 통해 분석합니다.
  • 추가로, 당시에 CLIP4Clip 모델은 여러 video-text retriveal datasets (MSR-VTT, MSVC, LSMDC, ActivityNet, DiDeMo) 에서 SOTA 를 달성했었다고 합니다. (지금은 CLIP2TV, CaMoE 등의 모델이 SOTA 입니다.)

연구 배경 : 기존의 방법론들

우선 Video-text retrieval 의 방법론은 모델의 input 에 따라 크게 2가지로 나뉠 수 있습니다.

  1. Pixel-level approach
    • Raw video 를 input 으로 이용함
    • 데이터셋의 video-text 쌍으로부터 적절한 video feature extractor 를 학습할 수 있음
  2. Feature-level approach
    • Frozen 된 video feature extractor 로부터 뽑은 Video feature 를 input 으로 이용함
    • 어떤 extractor 를 사용하느냐에 따라 성능이 달라지므로, extractor 에 대한 의존성이 매우 크다는 단점이 있음

Pretrain model 은 주로 Feature-level approach 을 사용해왔습니다. 당연하게도 cost 측면에서는 생각해보면, 원본 비디오를 그대로 사용하는 것보다 용량을 줄인 feature 를 input으로 사용하는 것이 더 효율적일 것입니다. 그럼 정보량이 떨어지니까 성능이 더 떨어지는 거 아닌가? 싶겠지만, 정보가 손실되더라도 (Pixel-level approach 에서는 cost 문제 때문에 사용하기 힘든) 대규모 데이터셋을 사용할 수 있었기 때문에 feature-level 의 pretrain 모델들은 video-text retrieval 문제에서 꽤나 좋은 성능을 얻어왔다고 합니다.

최근에는 Pixel-level approach 를 사용하는 Pretrain model 들도 제안되고 있습니다. 앞서 언급했듯이 video input 의 높은 computational overload를 줄이는 것이 가장 큰 문제였는데, 아래의 방법론들은 이런 방식으로 해당 문제를 해결했다고 합니다.

ClipBERT (2021)

  • 하나의 비디오로부터 하나의 clip 또는 여러 개의 short clips 를 sampling 하여 input 으로 사용함

Frozen (2021)

  • 커리큘럼 학습 방식을 사용해서, 쉬운 데이터인 싱글 프레임부터 어려운 데이터인 멀티 프레임까지 input 으로 사용함

그러나, 본 논문은 방금 언급한 두 모델들처럼 video-text 데이터셋으로 pretrain 시킨 새로운 모델을 제안하려는 것이 아닙니다.

본 논문의 핵심 아이디어는, image-text retrieval 을 위해 학습된 CLIP 모델을 video-text retrieval 로 knowledge transfer 하려는 것입니다.

이 아이디어를 채택해서 제안한 모델이 Contrastive Language-Image Pretraining For video Clip, CLIP4Clip 입니다. 논문 읽는 내내 생각한 건데 이름 되게 멋있게 지은 것 같습니다…! 이 다음에는 CLIP 논문에 대한 리뷰도 해볼 생각입니다. 우선 해당 모델의 프레임워크부터 살펴보겠습니다.

Framework of CLIP4clip

주어진 데이터

 

모델의 학습 목표

 

CLIP4Clip 모델은 이를 위해 text encoder, video encoder, similarity calcuatior 로 구성되어 있습니다.

The Framework of CLIP4Clip

 

Video Encoder

CLIP4Clip 은 ViT-/32 를 Video encdoer 로 이용했습니다. 즉, pretrained CLIP(ViT-/32) 을 backbone 으로 사용하여 image representation 을 video representation 으로 transfer 한 것입니다.

  1. Video clip 으로부터 frames 를 extract 한다.
  2. Video Encoder 로 frames 를 encode 하여, a sequence of features 를 얻는다.
    • ViT 는 frames 에서 9개의 non-overlapping image patches 를 extract 한 후, a linear projection 을 통해 1D tokens 로 만든다.
    • 1D tokens으로 transformer 를 이용하여, 각 patch 간의 interaction 을 모델링하여 final representation 을 얻는다.

요약하자면, 아래와 같은 video representation 을 얻게 됩니다.

이때 두 가지 종류의 projection (2D linear, 3D linear)를 사용하고 비교해보았는데, 2D 는 frames 간의 temporal information 을 무시하기 때문에 temporal feature extraction 을 enhance 시키기 위해 3D 를 도입했습니다.

 

 

Text Encoder

CLIP4Clip 은 text encoder 를 CLIP 에서 가져왔습니다. 즉, Transformer 의 구조를 살짝 바꿔서 사용합니다.

Similarity Calculator

CLIP 모델은 원래 pre-trained image-text model 입니다. 따라서 video-text 에 대한 similarity calculator module 을 위한 새로운 learnable weights 를 추가해야 합니다. 그래서 본 논문에서는 3가지 접근 방식을 디자인하고 비교했습니다.

 

Parameter-free approach

 

Sequential type

 

Tight type

Training Strategy

Loss Function

(video, text) 또는 (video clip, text) 로 구성된 batch B 가 주어졌을 때, 모델은 B x B similarities 를 구하고 최적화해야합니다. CLIP4Clip 은 아래와 같은 symmetric cross entropy loss 를 사용하여 학습합니다. (video-to-text, text-to-video)

 

Frame Sampling

pixel-level approach 로 raw video 를 input으로 받아서 사용하니까, features 를 뽑을 때 사용할 frames 를 선택해야 합니다. information richness와 computational complexity 는 서로 trade off 관계 이므로, 어떤 샘플링 전략을 사용할지 정하는 것은 중요합니다. (관련 실험으로는 frame lengths 와 different extraction positions 에 대해 진행했습니다.)

CLIP4Clip 은 uniform frame sampling strategy 를 사용했고, sampling rate 은 1 fps 입니다.

Pretraining

CLIP4Clip 모델은 Howto100M dataset 으로 post-pretrained 되었습니다. 해당 video-text dataset 의 양이 매우 많기 때문에, 그 중 Food and Entertaining 카테고리에 대해서만 행하였습니다. 이 과정은 image 에서 visual concepts 를 잘 학습하는 CLIP 의 knowledge 를 video 쪽으로 transfer 하기 위함이었습니다.

Methods 는 (Ours)-(types of similarity calculator) 이고, 해당 table 은 text-to-video 에 대한 결과입니다.

7K에서는 meanP (parameter free) type 의 성능이 가장 좋았고, 9K 에서는 seqTransf 와 tightTransf 의 성능이 좋았음을 알 수 있었습니다. 이를 통해 small dataset 에서는 새로운 parameter 를 추가하지 않는 것이 좋고, large dataset 에서는 새로운 parameter 를 도입하는 것이 학습에 더 효과적이라는 것을 알 수 있었습니다. 그 이유는, 추가 parameter 가 pretraiend weight 에서 멀어져서, 그 weight 로부터 이득을 보지 못하는 것을 을 방지하기 위해서는 더 큰 데이터 세트가 필요하기 때문이라고 이해된다고 합니다. 다른 데이터셋들도 비슷한 경향을 띄며, 대부분의 경우 tightTransf type 이 성능이 가장 안 좋은 calculator 였다고 합니다. 그리고 이 이유는, tight type 은 데이터셋의 야이 충분하지 않으면, cross-modality interaction 을 학습하는데 어려움을 겪기 때문이라고 보여졌습니다.

 

본 논문에서는 3D patch linear 이 temporal information 을 frames 로부터 잘 뽑아서, performance 가 언제나 더 좋아질 거라고 생각했었는데, MSR-VTT 와 MSVD 데이터셋에서는 2D 가 더 좋았다고 합니다.

저자는 CLIP 이 2D linear 에서 학습되었기 때문에, 초기화를 무시한 3D를 사용하는 것은 temporal info 를 학습하는데 어려움을 겪기 때문이라고 말했습니다.

 

Hyper parameters 에 대한 experiments 를 진행하여 최적의 세팅을 알아내기도 하였습니다. 이때, learning rate 에 따라 성능이 많이 떨어지는 경우도 있는데, 해당 모델이 lr 에 sensitive 하다는 것을 알 수 있었고, lr를 너무 작거나 너무 크게 선택한 경우, 성능이 떨어질 뿐만 아니라 pre-trained weight 로부터 받는 advantage 를 이용하지 못하게 됨으로 보여집니다.

그 외에도 sampling 을 하는 전략으로 head, tail, uniform 방식을 비교하기도 하였습니다. 이를 통해 uniform 을 선택했습니다.

 

Conclusion

본 논문은 frame-level input 으로 video clip retrieval 문제를 해결하기 pretrained CLIP 을 backbone으로 사용하는 CLIP4Clip 모델을 제안했습니다. 또한 세 가지 타입의 similarity calculator 를 사용하여 비교했습니다.

실험을 통해, 경험적으로 아래와 같은 insight 를 얻었습니다.

  1. video-text retrieval 에서 image feature 는 쓸 만하다.
  2. image-text pretrained CLIP 을 post-pretrain 하는 것은 video-text retrieval 의 성능을 올릴 수 있다.
  3. retrieval task 에서, 3D patch linear projection 과 sequential type similarity 를 사용하는 접근 방식이 효과적이다.
  4. video-text retrieval 을 할 때, CLIP 은 learning rate 에 sensitive 하다.

CLIP 로부터 파생된 모델들이 sota 인게 많아서, 계속 보이니까 읽고 싶은… 그런 상태였습니다. 아마 당분간은 multimodal 관련해서, 특히 video-text 관련된 걸 많이 읽을 것 같네요. 이상으로 리뷰 마치겠습니다.

 

 

질문
내가 했던 답변

저작자표시

'📰논문 리뷰' 카테고리의 다른 글

[ICCV 2019] HowTo100M: Learning a Text-Video Embedding by Watching Hundred Million Narrated Video Clips  (0) 2023.11.23
[PMLR 2021] Learning Transferable Visual Models From Natural Language Supervision  (0) 2023.11.23
[WACV 2021] Temporal Context Aggregation for Video Retrieval with Contrastive Learning  (0) 2023.11.23
[TMM 2015] Pattern-Based Near-Duplicate Video Retrieval and Localization on Web-Scale Videos  (0) 2023.11.23
[CVPR 2015] ActivityNet: A Large-Scale Video Benchmark for Human Activity Understanding  (0) 2023.11.23

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [ICCV 2019] HowTo100M: Learning a Text-Video Embedding by Watching Hundred Million Narrated Video Clips

    [ICCV 2019] HowTo100M: Learning a Text-Video Embedding by Watching Hundred Million Narrated Video Clips

    2023.11.23
  • [PMLR 2021] Learning Transferable Visual Models From Natural Language Supervision

    [PMLR 2021] Learning Transferable Visual Models From Natural Language Supervision

    2023.11.23
  • [WACV 2021] Temporal Context Aggregation for Video Retrieval with Contrastive Learning

    [WACV 2021] Temporal Context Aggregation for Video Retrieval with Contrastive Learning

    2023.11.23
  • [TMM 2015] Pattern-Based Near-Duplicate Video Retrieval and Localization on Web-Scale Videos

    [TMM 2015] Pattern-Based Near-Duplicate Video Retrieval and Localization on Web-Scale Videos

    2023.11.23
다른 글 더 둘러보기

정보

컴01기 블로그의 첫 페이지로 이동

컴01기

  • 컴01기의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록

카테고리

  • 분류 전체보기 (87)
    • 📰논문 리뷰 (16)
    • 🍒회고록 (4)
    • 🖤네이버 ai tech (0)
    • ✨글쓰는힝 (1)
    • 🔥취준일기 (2)
    • 🎲유니티 (2)
    • 🔨삽질 (10)
    • 📚 서적 리뷰 (4)
    • 🐹알고리즘 (4)
    • 😎정리하는 카테고리 (4)
    • 📝CS 공부 (6)
      • 운영체제 (1)
      • 네트워크 (4)
      • 리팩토링 (1)
    • etc (22)
      • 혼공단 (7)
      • Spring (7)
      • JS (1)
      • OpenCV (2)
      • Unity (5)

최근 글

인기 글

댓글

태그

  • github
  • 혼공SQL
  • 혼공머신
  • unity
  • 회고록
  • 백준
  • 혼공학습단
  • 혼공단

나의 외부 링크

  • Github
  • Youtube

정보

힝님의 컴01기

컴01기

힝님

방문자

  • 전체 방문자
  • 오늘
  • 어제

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 힝님. Designed by Fraccino.

티스토리툴바