2021. 3. 25. 18:37ㆍ논문 리뷰
Abstract
이 논문은 vision transformer에서 영감을 얻어 동영상에 transformer를 적용시켜 풀어낸 논문이다.
기존의 video recognition은 3D ConvNet를 많이 사용해왔다. 하지만 이 논문에서 제시하는 방법은 정확도는 비슷하게 나오되 속도가 10배이상 차이나는 구조를 제안한다.
이하 Video Transformer Network 는 'VTN'이라 칭한다.
1. Introduction
그 동안 convolution 기법의 발전으로 image recognition, object detection등 다양한 분야가 다양하게 발전해 왔지만 이제 transformer의 시대가 도래하고 있다.
Video recognition 역시 3D Network로 많이들 풀어냈지만 이 논문에서는 SOTA를 달성한 2D architecture를 통해 feature representation을 뽑아내고 그 뒤에 temporal mechanisms를 attention mechanism을 통해 붙여줬다.
Video recognition은 language modeling과 비슷하여 Transformer에 적합한 문제이다. Language modeling의 경우 sequence of words라고 볼 수 있으며 video의 경우는 sequence of image라고 볼 수 있다. 하지만 이들은 길이가 길어지면 먼 것끼리의 관계는 잘 파악할 수 없다는 제한적인 부분이 존재하는데, 이 논문에서는 이를 LongFormer를 통해 풀어냈다.
Longterm을 학습할 때 속도를 높일 것인가, 정확도를 높일 것인가에 대한 고민을 하게 된다. 실험을 진행했을 때, epoch별 시간은 같거나 더 우위에 있는데 수렴을 더 빨리하는 현상을 볼 수 있었다. 또한 학습은 너무 동영상이 길어 clip으로 하게 되는데, 전체 동영상에 대한 inference 시에 multi-view와 full video 분석이 가능했다.
Modular 화를 잘 시켜놔서 2D Spatial backbone은 다른 어떤 Network를 가져와 사용해도 된다.
2. Related Work
Spatial-temporal networks
최근 video recognition은 3D ConvNet으로 많이들 접근 한다. 다양한 예시가 있는데 이 게시글에서는 자세히는 다루지 않겠다.
- I3D : 2D ConvNet을 활용하여 3D로 layer를 확장하여 사용
- NLN : Short clip과 Long term의 관계를 파악해서 Long Sequence에도 robust하고자 했다.
- SlowFast: two pathways and different frame rates
- slow pathway: Spatial
- fast pathway: Temporal
- X3D: slowfast에 비해 light weight하다
Transformers in Computer Vision
최근 Transformer은 vision task에 많이 사용하는 추세다.
ViT. DeiT for image classification
DETR for object detection and panoptic segmentation
VisTR for video instance segmentation
Applying Transformers on long sequences
- BERT / RoBERTa
- transformer based language representation models
- Pre-trained on large unlabeled text and later fine-tuned on a given target task
- With minimal modification achieve SOTA in NLP Tasks
Transformer의 문제는 long sequence이다 -> 시간 복잡도가 O(n^2) per layer이기 때문에 연산량도 많고 멀리 떨어져 있을수록 관계를 찾기가 어렵다
3. Video Transformer Network
VTN architecture은 modular and composed of three consecutive parts 이다
- 2D Spatial feature extraction model (spatial backbone)
- temporal attention-based encoder
- classification MLP head
3-1. Spatial backbone
backbone의 경우 representation을 잘 추출해 줄 수 있는 backbone이면 상관없이 사용 가능하다.
3-2. Temporal attention-based encoder
Sequence data의 관계를 찾기 위해 transformer model 구조를 사용한다. 하지만! 한번에 처리할 수 있는 token의 갯수에 제한이 있고 멀리 떨어진 것들과의 관계들은 놓치게 된다.
이 work에서는 이를 해결하기 위해 Longformer 를 사용했다. Longformer에 대해서는 추후에 따로 포스팅을 하도록 하겠다. Longformer 사용 후 sliding window 방식을 사용하기 때문에 Linear의 computation으로 만들어 줄 수있어, O(n)으로 줄일 수 있다.
2D spatial backbone을 통해 나온 representation은 Longtransformer encoder로 넣어 주게 된다.
이때, encoder로 넣어주는 이 1D token은 일반적인 Transformer의 embedding 과정으로 생각해주면 된다.
BERT의 special token ([CLS]) 처럼 이 논문에서는 sptial representation앞에 special token을 붙여준다.
After propagating the sequence through the Longformer layers, we use the final state of the features related to this classification token as the final representation of the video and apply it to the given classification task head. Longformer also maintains global attention on that special [CLS] token.
3-3. Classification MLP head
MLP head의 경우 두 linear layer로 이루어져 있고, activation function의 경우 GELU를 사용해 구현했다.
이때 input token의 representation은 Layer normalization부터 통과하고 시작한다.
3-4. Looking beyond a short clip context
기존에 video action recognition들은 3D-based network를 사용해왔고, inference 중 메모리의 용량 문제 때문에 전체 동영상을 전부 사용할 수는 없었다. inference 할때는 10개의 clip을 뽑아 softmax score의 average를 통해 점수를 내는 방법을 사용해 결과를 내었다. 앞서 언급한 SlowFast, X3D 등 다양한 예시에서도 10개의 clip을 뽑아 사용했다.
하지만 full video를 사용해 inference를 하는 경우 clip을 사용해 학습을 하였기 때문에 저조한 performance를 보였다.
4. Video Action Recognition with VTN
Video recognition에 어떻게 동작하는지 보기 위해 다양한 spatial backbones pre-trained on 2D images를 사용해 살펴보았다.
ViT-B-VTN
ImageNet-21K로 Pre-trained 된 ViT-Base network를 backbone으로 사용하였다. ViT 기반 VTN의 경우 spatial과 temporal domain 둘다 attention 을 적용했다.
R50/101-VTN
비교를 위해 ResNet-50 & ResNet-101 network를 backbone으로 사용해 보았다.
이 역시 ImageNet으로 Pre-trained 된 모델을 사용하였다.
DeiT-B/BD/Ti-VTN
최근에 나온 것들 과의 비교를 통해, 선택하였다.
4-1. Implementation details
Training
사용되는 Spatial backbone들은 ImageNet 혹은 ImageNet-21k 로 pre-trained 된 것들을 사용하였다. Longformer와 classification을 위한 MLP head는 zero mean으로 normalization 시키고 0.02 std를 갖게 하고, video clip을 사용해 end-to-end로 학습한다. 이 clip들은 starting point로 부터 random하게 골라서 추출한다.
모든 frame은 224x224 사이즈로 crop 해준다.
ViT-VTN에서는 16 batch_size를 사용, R50/101에서는 32 batch_size를 사용하였고, learning rate 0.001에 SGD optimizer를 사용했다.
Spatial backbone으로 2D model들을 사용하기 때문에 clip shape를 [B, C, T, H, W]로 표현할 수 있다.
배치의 모든 클립에서의 frame들을 모아준다고 하면 [BxT, C, H, W]로 표현할 수 있다.
다양한 hyperparameter 수정 및 embedding size, positional embedding 등을 Video action recognition에 맞게 수정하여 학습을 진행하였다.
Inference
학습을 할 때는, 10개의 clip을 뽑아서 224x224로 crop해서 사용했다. 결과적으로는 video 별 30 view가 나오게 되고, prediction은 모든 뷰의 softmax 점수의 average해서 결과를 낸다.
inference할때는 전체 frame을 넣어주게 되는데 sub- or up-sampling을 통해 250 프레임을 맞춰줘 진행한다. 그리고 마찬가지로 center crop 224x224로 진행한다.
5. Experiments
실험은 Kinetics-400 dataset을 활용하여 진행하였다.
한 epoch를 도는데 얼마나 걸리는지 측정한 표이며, best performance까지 얼마만의 epoch가 걸리는지 알 수 있다.
실험 결과를 보면 더 빠르게 최고치에 도달하는 것을 알 수 있다.
6. Conclusion
이 논문에서는 modular transformer-based framework for video recognition task를 제안했다. 이는 더 긴 영상을 더 짧은 시간 안에 분석할 수 있게 했고, 3D ConvNets들에 비해 long-term video processing의 능력을 더 잘 해결한다는 것을 보이고 싶다.
이 논문을 잘 이해하기 위해서는 SlowFast, LongTransformer 두 논문에 대한 이해도가 필요한 것 같다.
다음번에는 위의 두 논문에 대해 포스팅을 하도록 하겠다.
'논문 리뷰' 카테고리의 다른 글
ELMo : Embeddings from Language Models (0) | 2021.04.12 |
---|---|
Bert : Pre-training of Deep Bidirectional Transformers for Language Understanding (0) | 2021.04.09 |
Swin Transformer: Hierarchical Vision Transformer using shifted Windows (0) | 2021.04.01 |
Exploring Simple siamese Representation Learning (0) | 2021.03.10 |
ContraGAN: Contrastive Learning for Conditional Image Generation 논문 리뷰 (0) | 2021.03.02 |