Abstract
2017년에 나온 논문으로 action recognition에 대한 동향을 알 수 있는 논문이다. 해당 논문에서는 새로운 dataset인 Kinetics Human Action Video를 공개하였다. 해당 dataset은 400개의 action class와 각 class별로 400개 이상의 비디오가 포함되어 있다. 그리고 당시까지 나와있던 architecture들을 소개하고 two-stream inflated 3D ConvNet (I3D)를 제시하였다. 각 architecture별로 dataset에 대한 accuracy를 비교하는 내용이 주를 이룬다.
Action Classification Architectures
참고 : ImageNet pre-trained ConvNet을 사용
ConvNet + LSTM
각 frame별로 features를 extract하고 비디오 전체에 대해 예측을 실시하는 image classification의 개념을 그대로 적용한 방법이다. bag of words image modeling 방식으로 접근한 것인데 temporal structure (시간)를 나타내는데 어려움이 있다. 그래서 LSTM과 같은 recurrent layer를 적용하여 temporal ordering, 넓은 범위에 대한 의존성을 잡아낼 수 있었다.
3D ConvNets
3D ConvNets은 기존의 convolutional networks에 spatio-temporal filter가 추가된 것이라고 보면 쉽게 이해할 수 있다. spatio-temporal filter가 추가됨으로써 시공간 데이터를 계층적으로 나타낼 수 있다. 하지만 2D와 비교하면 parameter의 수가 급격하게 늘어나기 때문에 train을 시키는데 무리가 있다.
해당 논문에서는 실험에 공개된 architecture C3D를 사용했다. parameter수를 줄이기 위해 BN을 매 conv, fc layer 이후에 수행하였고 첫 번째 pooling layer에서도 temporal stride를 1에서 2로 증가하여 사용했다.
Two-Stream Networks
ConvNets + LSTM 방식은 high-level variation을 modeling할 수 있지만 low-level motion을 잡아내는데 어려움이 있었다. 또한, 다수의 frame을 backpropagation을 수행해야 하기 때문에 high computation power가 필요했다.
two-stream networks는 short temporal snapshots (비디오의 RGB 이미지 1개)와 외부에서 연산한 optical flow를 N개를 쌓아서 averaging을 통해 classification을 수행한다. Optical flow의 경우 horizontal, vertical 2개의 channel로 구성돼있기 때문에 conv layer를 2개를 사용한다. test시에는 video로부터 multiple snapshots를 샘플링하고 예측값의 average값을 사용한다.
마지막 conv layer이후에 spatial과 flow stream을 결합한 3D-fused two-stream도 있다. time, x, y dimensions가 3x3x3 3D conv layer(output 512 channels), 3x3x3 3D max-pooling layer, fc layer를 통과하는 형태로 논문에서는 실험에 사용하였다. two-stream, 3d-fused two-stream 모두 end-to-end 방식으로 train했다.
Two-Stream Inflated 3D ConvNets (I3D)
1) Inflating 2D ConvNets into 3D
기존의 공개된 우수한 2D ConvNets architecture를 3D ConvNets으로 convert하기 위해 매우 간단한 방법을 사용했다. temporal dimension를 추가한 것으로 N x N filter를 N x N x N로 변경했다. 이는 모든 filter와 pooling kernel에 적용되었다.
2) Bootstrapping 3D filters from 2D filters
pre-trained ImageNet models의 parameters를 사용하기 위해 boring-video fixed point를 이용했다. 이는 image를 복사하여 video sequence로 만들어 video처럼 만드는 것이다. 이를 사용하면 3D models도 간접적으로 ImageNet을 pre-trained할 수 있게 된다. 2D filter의 weights를 time dimension 값인 N번 반복하고 마지막에 N으로 나눠주어 rescaling을 한다.
3) Two 3D Streams
3D ConvNet은 RGB input에 대한 motion features를 잘 찾아낼 수 있었지만 optical flow algorithms의 recurrent적 특성을 활용하고자 했다. 기존의 실험의 결과를 보면 optical flow를 사용했을 경우 더 나은 성능을 보여주었었기에 이를 사용했다. 두 개의 image, optical flow network를 개별적으로 학습을 진행했고 예측의 평균값을 사용했다.
Implementation Details
자세한 hyper-parameter는 생략
Results
- I3D가 가장 우수한 성능을 보여주었다.
- Pre-trained ImageNet을 3D ConvNet에 적용한 것이 크게 도움이 되었다.
- Two-stream architectures들이 모든 dataset에서 우수한 성능을 보여주었다. 이는 optical flow 덕분이라고 본다.
- I3D가 우수한 성능을 낼 수 있었던 이유로 high temporal resolution 때문이라고 한다. 이는 video당 frame을 늘릴수록 높은 성능을 보여주는 것이다.
'AI > Paper' 카테고리의 다른 글
MoViNets: Mobile Video Networks for Efficient Video Recognition (2021) 리뷰 (0) | 2021.04.26 |
---|---|
Squeeze-and-Excitation Networks (2018) 리뷰 (0) | 2021.04.20 |
Skeleton Aware Multi-modal Sign Language Recognition (2021) (0) | 2021.04.13 |
Deep residual learning for image recognition; ResNet (2015) (0) | 2021.03.29 |
Going deeper with convolutions; GoogLeNet (2014) (0) | 2021.03.29 |