토리의 데굴데굴 공부일기

[ 논문리뷰 ] Video Summarization by Learning from Unpaired Data 본문

ML DL/논문리뷰

[ 논문리뷰 ] Video Summarization by Learning from Unpaired Data

도토오오리 2024. 4. 13. 01:39

https://arxiv.org/abs/1805.12174

 

Video Summarization by Learning from Unpaired Data

We consider the problem of video summarization. Given an input raw video, the goal is to select a small subset of key frames from the input video to create a shorter summary video that best describes the content of the original video. Most of the current s

arxiv.org

https://github.com/pcshih/pytorch-VSLUD

 

GitHub - pcshih/pytorch-VSLUD: This is the implementation of the paper Video Summarization by Learning from Unpaired Data(CVPR20

This is the implementation of the paper Video Summarization by Learning from Unpaired Data(CVPR2019) - pcshih/pytorch-VSLUD

github.com

https://github.com/weirme/FCSN

 

GitHub - weirme/FCSN: A PyTorch reimplementation of FCSN in paper "Video Summarization Using Fully Convolutional Sequence Networ

A PyTorch reimplementation of FCSN in paper "Video Summarization Using Fully Convolutional Sequence Networks" - weirme/FCSN

github.com

 

CVPR 2019 

 

고급딥러닝 과목에서 논문을 쓰는 것이 한학기동안의 목표인데, 우리 조는 video summarization task를 다뤄보기로 정해서 이 논문 리뷰를 하게 되었따! 근데 이 논문 진짜 완전 신기하고 재밌음

 

0. Abstract 

이 논문은 기존 video summarization task의 문제에 대해 집중하였다. 

일단 먼저 Video summarization 이란 input으로 raw video가 들어왔을때, 작은 subset의 key frame을 선택하여 짧은 video를 만들어내는 task이다. 그렇게 만들어낸 요약 video가 원래 video의 content를 가장 잘 설명하도록 만들면 좋겠지?! 

 

대부분의 기존 video summarization의 SOTA는 supervised learning 방식을 사용한다. 근데 이럴 경우 문제가 데이터셋을 사람이 라벨링하는 과정이 필요하다. 라벨러가 ground truth 요약 영상을 만들어내야 하는데, 이는 매우 힘들고 비싼 과정이다. 

 

 

그래서 이 논문에서는 아주 참신한 새로운 방안을 제안한다. 그 방안은 바로 unpaired data로부터 video summarization model을 학습시키는 것!! 여기서 unpaired data는 (V,S)로 구성되어 있는데, V는 그냥 일반 raw video이고 S는 그냥 요약된 video이다. 근데 이거 두개가 상관관계나 일치하는 부분이 없는 데이터인 것이다. 그러니까 예를 들어 V에는 그냥 먹방 유튜브 영상이 있다고 하면 S에는 스포츠 하이라이트 요약 영상이 있는 느낌. 

 

이렇게 unpaired data를 가지고 V로부터 중요한 부분을 추출하여 만든 요약 영상인 S'이 실제 존재하는 요약 video인 S의 분포와 같아지는 방향으로 Discriminator를 이용해 F를 학습시키는 것이 이 논문의 Network 구조이다.

 

1. Introduction 

Video summarization task에는 두가지 종류의 subset selection이 존재한다. 

1. key frame selection : 프레임 단위로 중요 부분 선택

2. key shot selection  : segment나 subshot 단위로 중요 부분 선택 

 

이렇게 두가지가 있는데 이 논문은 1번 프레임 단위로 선택한다고 한다. 

 

그럼 좋은 summary video란 무엇일까?

다른 논문들에서 말하기를 

1. key content를 포함하고 있고

2. visually diverse 

한 영상들이 좋은 요약 영상이라고 한다. 

 

그래서 이 논문에서도 'good summary video'를 만들기 위해 학습시에 그러한 loss를 만들어 사용한다. 

 

기존의 unsupervised method들은 hand-crafted heuristics를 이용하여 영상에서 frame을 선택하였다. 하지만 이러한 방법의 한계는 충분한 heuristics를 만들기 어려워 좋은 성능을 내기가 어렵다는 점이다. 

그와 반대로 supervised method들은 위쪽에서 말했듯 사람이 라벨링하는 training data에 너무 의존한다는 한계가 존재한다. 하지만 이러한 데이터는 사람이 라벨링하기 때문에 힘들고 비싸다. 

 

그래서 이 논문에서는 앞에서도 말했듯 unpaired data를 이용하여 video summarization을 learning하는 새로운 방식을 제안한다. 

 

저자는 이 논문의 기여점 3가지를 언급한다.

1. adversarial process와 unpaired data를 통해 학습하는 video summarization 딥러닝 모델 제안

2. 제안한 방법의 효율성을 설명한 확장된 empirical study 

3. video summarization 성능을 향상시키기위한 partial supervision을 도입한 확장 버전 제안 

 

3. Our Approach 

크게보면 이렇게 S_K, S_D 두개의 네트워크로 나눌 수 있다. 

Key frame selector network

S_K는 Key frame selector network로 T개의 frame을 가지는 video를 input으로 받아 이를 k개의 key frame을 가지는 summary video로 바꿔주는 역할을 수행한다. 이때 FCSN(Fully Convolutional Sequence Network)를 사용한다. 이거는 encoder-decoder fully conv network이고, input video에서 key frame들을 선택하는 역할을 수행한다. 크게 그래서 FCSN과 skip connection으로 구성되어 있다고 생각하면 됨! 

FCSN의 encoder: inter-frame 구조를 capture하는 representation들을 추출하는 역할
FCSN의 decoder: key frame or non-key frame을 결정하는 score를 만들어내는 역할 

 

Summary discriminator network

S_D는 Summary discriminator network로 두가지의 입력을 받는다.

1. S_K에서 만들어진 요약 영상

2. 실제 unpaired dataset의 요약 영상 S

 

이 네트워크의 목적은 S_K에서 만들어진 요약 영상과 실제 요약영상을 구별하는 것이다. 

to distinguish between the summaries produced by SK and the real summaries

 

먼저 input을 FCSN의 Encoder를 거치고, video-level feature representation을 획득하기 위해 encoded vector에 

temporal average pooling operation (Ωt)를 수행한다. 그리고 마지막으로 FC layer를 거치고 sigmoid를 거쳐 최종적으로 R_s라는 score를 얻어내도록 한다. 

 

 

Loss

1. Adversarial Loss 

2. Reconstruction Loss 

3. Diversity Loss

 

 

Final Loss