반응형
Submit : Tran, Du. ICCV (2015)
Paper : https://arxiv.org/pdf/1412.0767.pdf
아직 정제되지 않은 글입니다.
0. Abstract
- deep한 3차원의 conv network를 사용해 시공간적인 특징을 학습
- 3가지 특징
- 시공간적인 특징을 학습하기에 2D conv에 비해 3D conv가 더 적합
- 3D conv에서 3_3_3 conv kernel이 가장 좋은 성능을 보였다
- C3D가 4개의 다른 벤치마크 중에서 가장 뛰어난 성능을 보였다
- 특징이 명확
- 단지 10차원에서 UCF101에서 52.8%의 정확도를 보였다. 빠른 conv 추론덕에 계산하기 효율이 좋다. 개념적으로 아주 심플하고 학습시키지 쉽다
1. Introduction
video를 이해하는 것에서는, 검색/추천/랭킹 등 여러 목적을 가지고 다양한 접근방법을 가지고 해결해왔다. 그러나 대규모 비디오 task를 같게 해결하려는 generic video descriptor의 필요성이 존재한다
(1) video descriptor에 4가지 특성을 가져야 한다
- generic : 구분할 때 다른 종류의 비디오를 나타낼 수 있도록 일반적이어야 한다
- 다양한 비디오 종류: 지형, 자연, 스포츠, 티비쇼, 영화, 음식, 애완동물..
- compact : compact descriptor는 진행, 저장, 일처리를 더 큰 범위에서 수행 가능해야 한다
- efficient : 수천 개의 비디오가 매 분마다 리얼 시스템에서 동작 가능해야 한다
- simple : 좋은 descriptor는 더 간단한 모델에서 잘 동작해야 한다
- 지난 몇년간 이미지 영역에서 feature 학습에 많은 발전이 있었음에 따라 이미지 feature 추출을 위한 conv model을 사용할 수 있게 됐다.
- 그러나 이러한 image 베이스 deep features는 video에 적합하지 않다 : motion modeling이 부족하기 때문 (section 4,5,6에서 다룸)
- 여기에서, 우리는 3d convNet을 이용해 시공간적 feature를 학습
- 간단한 선형 분류로 학습한 feature만으로도 다양한 비디오 분석 테스크에 좋은 결과를 보여준다
- 최초로 3d convNet을 제시한 것은 아님. 그러나 다양한 유형의 비디오 분석 테스크에서 제일 좋은 성능 가짐
(2) 요약
- 3d conv deep network는 모델과 모션을 동시에 모델링하는 우수한 학습 네트워크인 것을 보여줌
- 한정된 아키텍쳐에서 3x3x3 conv kernel이 제일 좋다는 것을 발견
- 4개의 다른 테스크와 6개의 다른 벤치마크에서 가장 우수했거나 근접.
- 작고 효율적
2. Related works
3. Method
3d convNet작동 설명, large-scale dataset에서 feature 학습을 위해 어떻게 학습시켜야 하는지 설명할 예정
(1) 3d conv
3d ConvNet은 3d convolution과 3d pooling 덕에 temporal information을 더 잘 모델링 할 수 있다
- 3d conv에서 conv, pooling은 시공간적으로 작동 가능. 2d conv는 오직 공간적으로만
- (a) 이미지에 2d적용: 아웃풋은 image
- (b) 복수의 이미지에 2d적용(다른 channel로 적용해서): 아웃풋은 image
- 또한 2d conv는 매번 conv작동될 때마다 시간적 정보를 잃는다
- 오직 3d conv만이 시간적 정보를 보존한다
- (c) 그 결과 3d conv에서만 아웃풋이 volume형태
$\int_0^{2\pi} \sin x~dx$
(2) 시간적 정보 잃기?
- [36]논문에 의하면, 시간적 stream network는 복수의 프레임을 인풋으로 가져도 / 2d conv때문에 처음 conv layer후에 시간적 정보가 완벽하게 소실된다.
- 비슷하게 [18]논문에서도 2d conv썼지만, 대부분의 네트워크가 인풋의 시간적 신호를 첫 conv layer이후 잃어버렸다. 그러나 'slow fusion'이라는 모델에서는 3d conv를 썼는데, (우리는) 그게 가장 좋은 결과를 보인 이유라고 본다. 그러나 이 역시 나중에 3번째 conv 레이어 지난 후 시간적 정보 잃는다
- 여기선, 3d convNet을 위한 좋은 구조를 밝히려한다.
- 중간규모의 UCF101로 먼저 실험.
- [37]에 따르면 2d보다 3*3의 conv kernel이 가장 좋은 결과를 보임. 그래서 여기에서 깊이만 3d conv kernel로 수정함
(3) 2d conv vs 3d conv 수식 비교
([15] 3D Convolutional Neural Networks for Human Action Recognition 논문)
a. 2d convolution
- x,y,z : feature map/volume의 좌표
- v : feature map/ volume의 좌표
- p, q : kernel의 spatial dimension index
- r : temporal dimension index
- j/m : feature map/volume
- i : convolution 의 i번째 layer
- bij : feature map/volume의 bias
- tanh(.) : activation function이 hyperbolic tangent라는 것을 가정 (변경 가능)
- w^(pq)ijk : k번째 feature map의 커널 (p,q)에서의 값
- P, Q: 높이, 폭
b. 3d convolution
- x,y,z : feature map/volume의 좌표
기존의 2d conv
![image](https://user-images.githubusercontent.com/13168096/73604811-0f4b4680-45da-11ea-8632-f4c845b8008d.png)
3d conv
2D 컨볼루션 개념 + 인접한 프레임과의 컨볼루션 연산이 결합된 구조 / 를 제안
기존의 2D 컨볼루션 방법에서 Feature map을 만들 때, 각 Feature map을 만들 때 사용되는 커널 weight가 공유 되지 않듯이, 본 논문에서의 제안하는 3D CNN 모델에서도 아래 그림과 같이 weight가 공유되지 않는 형태로 Feature map이 생성됨
[https://page-box.tistory.com/9](https://page-box.tistory.com/9)
![image](https://user-images.githubusercontent.com/13168096/73604816-1a05db80-45da-11ea-80c8-123a5f8e298c.png)
---
- 3d convolution
- x,y,z : feature map/volume의 좌표
- 2d conv 테스트 통해 3*3 커널 사이즈를 가진 deeper architecture가 가장 좋은 결과 나옴
- -> 그대로 3d conv에 사용 : 3*3*3
- video clip은 c*l*h*w 사이즈 (channel수 / frame길이 / frame의 높이 / 너비)
- pooling kernel size는 d*k*k (temporal depth / k: spatial size)
(4) 모델 설명
- input dimension: 3x16x128x171
- conv layer: 5개 (뒤에 pooling layer따라옴)
- pooling layer: 5개
- fully connected layer: 2개
- softmax loss layer: 2개
- 각 conv layer의 필터 수: 64, 128, 256, 512, 512개
- 모든 conv kernel은 d사이즈를 가짐 (d: kernel temporal depth. d의 값은 나중에 찾을 것)
- conv stride 1: conv layer의 input과 output크기 달라지지 않는다
- pooling layer: max pooling, kernel size: 2x2x2 (첫번째 레이어 제외), stride 1
- -> output 8배 감소
- 첫번째 pooling layer kernel size: 1x2x2
- 이유: 너무 일찍 시간적 신호를 합치지 않기 위해서. clip길이 16프레임 만족시키려고
- 두개의 fc layer는 2048 output가짐
(5) 이 논문의 주요 관심사: temporal information.
- kernel temporal depth d를 주로 변경했다
a. 실험
- homogeneous temporal depth : 모든 conv layer가 같은 kernel temporal depth를 가짐
- d : 1,3,5,7 실험 (depth-d로 명명)
- depth-1는 각 프레임에 2d conv 적용한 것과 똑같다
- d : 1,3,5,7 실험 (depth-d로 명명)
- varying temporal depth : layer에 따라 달라진다
- 증가: 3-3-5-5-7
- 감소: 7-5-5-3-3
- 이 모두 마지막 pooling layer에서 아웃풋 크기 똑같아서 fc에 대한 파라미터 수 같음
- conv layer에서만 kernel temporal depth가 달라서 파라미터가 다를 뿐
- 2d conv가 가장 worst였고 UCF101에서 3x3x3가 가장 좋은 성능을 내었다
- UCF101은 중간규모였으니 이제 대규모에서 테스트
(6) 조건
- conv layer: 8개
- pooling layer: 5개
- 2개의 fc layer, softmax layer
- 모든 3d conv filter: 3x3x3, stride: 1x1x1
- 3d pooling layer: 2x2x2, stride: 2x2x2 (pool1제이. kernel size 1x2x2, stride 1x2x2. 초반에 시간적 정보 보존 위해)
- fully connected layer는 4096개의 아웃풋
4. experiment
- Sports-1M: UCF101에 비해 클래서 5배, 데이터 100배
- 모델은 Deepvideo(이전에 3d적용했던 모델)과 비교
- 비디오일 경우, 비디오에서 무작위로 추출된 10개의 클립의 평균을 비교.
- (비교대상 주의) deepVideo, c3d는 짧은 클립을 사용하는 반면 conv pooling은 긴 클립 사용.
- C3D 둘 다 DeepVideo보다 성능 좋음. conv pooling보다는 낮음. 근데 저건 긴 클립 쓰니까 직접 비교 불가. conv pooling은 120프레임으로 사용하기 때문에 clip hit, video hit 차이 작음
(1) C3D는 무엇을 배우는가?
- C3D는 첫 몇 프레임에서 외관에 초점을 맞추다가 두드러지는 움직임을 추적함
- 그림은 두가지 conv5의 feature map을 시각화한다
- 1) 전체 사람(배경포함)에 초점 맞춘 후 나중엔 이 폴 보트라는 사람에게 초점
- 2) 먼저 눈에 초점 맞춘 후 화장시 주위에 일어나는 동작을 초점
- 따라서 C3D는 움직임과 외관 모두를 선택적으로 초점본다는 점에서 2d convNet과 다름
(2) 실험
C3D갖고 video clip에서 시도할 수 있는 3가지 성능평가에서 비교
a. action recognition
- C3D와 SVM을 함꼐 사용. action recognition에서 좋은 결과
b. action similarity labeling
ASLAN dataset
- 전에 한번도 본 적 없는 video에 대해 측정
c. scene and object recognition
- Maryland, YUPENN벤치마크
- [4]
- [41]
- [8]
- [9]
- imagenet과 비교했을때 약간의 성능 상승
5. Conclusion
- 비디오 분석에서 3d conv가 시공간적 피쳐를 학습하는 것이 가능하다는 것을 보임
- 3d conv에 가장 가장 최적인 termporal kernel length를 찾으려 함
- c3d가 외관과 움직임 정보를 동시에 모델링할 수 있으며, 다양한 비디오 분석 작업에서 2D ConvNet를 능가함을 보임
- 선형 classifier도입함으로써 최신 방법에 아주 가까운 성능에 가까워질 수 있음을 보임
- 다른 비디오 분석 밴치마크에서 좋은 성능을 보임
- c3d feature는 효율적이고 compact하며 아주 심플
반응형
'Paper review > Vision' 카테고리의 다른 글
[논문 리뷰] Conditional Generative Adversarial Nets (0) | 2020.11.22 |
---|---|
[논문 리뷰] ObamaNet: Photo realistic lip sync from text (0) | 2020.06.14 |
[논문 리뷰] Everybody Dance Now (0) | 2020.06.14 |
[논문 리뷰] Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset (0) | 2020.06.14 |
[논문 리뷰] Adversarial Examples Are Not Bugs, They Are Features (0) | 2020.06.14 |