2. Artificial Intelligence/Seoul National Univ. Computer Vision

[Seoul National Univ: Computer Vision] Lecture 11. Video Classification 2

뉴하늘 2025. 6. 5. 19:15
728x90

본 포스팅은 서울대학교 이준석 교수님의 M3224.000100 Machine Learning for Visual Understanding을 수강하고 공부한 내용을 정리하기 위한 포스팅입니다.
 
https://youtu.be/xXG5LV7mmcc?si=mEl00P-RJN1hMMrX

 

1. 3D Convolution

 
 3D convolution영상이나 시계열처럼 시간/깊이 축을 포함한 3차원 데이터를 처리하기 위한 합성곱 연산이다. 입력은 일반적으로 다음과 같은 5차원 텐서로 구성된다.

  • N: 배치 크기
  • D: 깊이(시간축)
  • H, W: 높이, 너비
  • C: 입력 채널 수

 커널의 텐서는 아래와 같다.

  • k_D, k_H, k_W: 깊이, 높이, 너비 방향 커널 크기
  • C_in: 입력 채널 수
  • C_out: 출력 채널 수(필터 개수)

 출력 데이터 형태의 계산 방법은 아래와 같다.

2. 3D Convolutional Models

 

C3D(Convolutional 3D, 2015)

C3D는 3D CNN 기반의 비디오 표현 학습 모델이다. 이 모델은 이미지가 아니라 비디오 클립을 입력으로 받아, 공간(공간적 구조) + 시간(프레임 간 변화)을 동시에 처리하여 Spatio-temporal feature를 학습한다.
 
 2D CNN은 프레임 간 시간 정보(Temporal Dynamics)를 무시하지만, 3D CNN은 시간축까지 Convolution이 적용되어 시간 정보를 담을 수 있다.

C3D(Convolutional 3D, 2015): Full Architecture

 VGG 스타일의 작은 3X3 kernel과 ReLU, MaxPooling을 반복 사용한 단순한 구조이다. 영상 데이터 특성 상 모델의 깊이에 제한이 있기 때문에 Layer 개수가 적다.
 
 입력으로는 16프레임 단위로 고정된 클립을 사용한다. 

C3D(Convolutional 3D, 2015): Limitations

 C3D의 한계는 아래와 같다.
 
1. 짧은 시간 구간(16 프레임)은 잘 처리하지만 장기 의존성에는 약하다.
2. 3D Conv는 계산량이 크고 학습 비용이 높다.
3. 여전히 수작업으로 만든 특징들을 결합하면 성능 향상이 가능해진다.

R3D(3D ResNets, 2017)

 기존 C3D의 한계를 극복하기 위해 Residual connection을 도입한 3D 버전의 ResNet이다. ResNet과 유사하게 Fully Connected를 사용하지 않고, Residual Block을 사용하여 기존 C3D보다 깊게 쌓으면서 학습이 가능해졌다.

R3D(3D ResNets, 2017): Architecture

  • 각 블록 내에서 Skip connection이 적용된다.
  • 마지막 Layer에서는 Spatiotemporal Pooling, FC layer, Softmax를 진행한다.

R(2+1)D(2017)

 R(2+1)D는 3D CNN 구조의 개선 버전이다. 기존 3D Conolution은 공간 정보와 시간 정보를 동시에 처리하지만, R(2+1)D는 하나의 3D convolution을 두 개의 연산(2D + 1D)으로 분리한다.


 이렇게 공간 정보와 시간 정보를 분리한 후 처리하게 되면 학습 안정성이 향상되고 실제로 성능 향상이 된다. 또한 중간에 비선형 활성화 함수가 추가되므로 표현력이 증가한다.

 공간 정보를 처리할 때는 공간 차원을 1로 설정하고, 시간 정보를 처리할 때는 시간 차원을 1로 설정한다.

I3D(Two-Stream Inflated 3D CNN, 2018)

 I3D는 기존 C3D와 Two-stream fusion을 결합한 모델이다.

 Two-stream 모델에서 Spatial stream과 Temporal stream으로 분리했다. 이때 Spatial stream은 frame마다 2D convolution을 진행했고, Temporal stream은 Optical Flow를 입력받아 2D Covolution을 한 후 Optical Flow stacking이나 Trajectory stacking을 진행했다. 그 후 마지막으로 Spatial stream과 Temporal stream을 Fusion한 것이 Two-stream 모델이다.
 
 I3D 모델은 Two-stream 모델과 마찬가지로 Spatial stream과 Temporal stream으로 구분한다. 하지만 2D Convolution이 아닌 3D Convolution으로 연산을 하고 fusion하는 방식이다.
 따라서 Spatial stream은 시간축이 존재하는 원본 비디오 프레임을 입력받아 3D Convolution을 진행한다. Temporal stream에서는 여전히 사전 계산된 Optical Flow를 시간 순서대로 입력받고 3D Convolution을 진행한다. 마지막에는 fusion하여 Loss를 계산한다.

I3D(Two-Stream Inflated 3D CNN, 2018): Architecture

 I3D는 기존 GoogLeNet에서 사용된 Inception Architecture을 사용하고, 모든 2D Conv/Pooling Layer를 3D로 확장한다.
 
 Inception Module은 한 Layer에서 다양한 Filter size로 특징을 동시에 추출하고, 그 결과들을 concatenate하는 구조이다. 이로써 다양한 Feature map에서 정보를 동시에 추출할 수 있다. 이때 깊이가 계속 커지면서 계산이 복잡해지는 것을 방지하기 위해 1x1 Convolution(Bottleneck layer)를 적용해 깊이를 축소시킨다.
 
 3D Inception Module은 2D Inception Module과 마찬가지로 기본 구조는 동일하지만, 2D Convolution이 아닌 3D Convolution을 진행한다. 그리고 5x5 Conv 대신 3x3 Conv로 바뀌었다.

I3D(Two-Stream Inflated 3D CNN, 2018): Discussion

 I3D 모델은 여전히 Optical Flow를 사용해야하는 문제가 있다. Spatial stream에서 3D Convolution을 통해 시간축도 고려하도록 구조가 바뀌었음에도 불구하고, Optical Flow를 활용하면 정확도가 향상되므로 쓰지 않을 이유가 없다. 최근에는 Optical Flow를 쓰지 않는 사람들도 많지만 여전히 실용적이기 때문에 사용하는 사람들이 있다. 

S3D(Separable 3D CNN, 2018)

 S3D는 I3D의 기본 구조와 완전히 동일하지만, R(2+1)D 모델의 특징을 추가한 모델이다. R(2+1)D에서 시간 정보와 공간 정보를 분리하여 학습하면서 성능을 높일 수 있었다. 이 특징을 I3D의 Inception Module에 적용한 것이 특징이다.

3. More Recent Convolutional Models

 

SlowFast Networks(2019)

 SlowFast Networks는 비디오 데이터를 두 가지 시간 해상도로 나누어서 동시에 사용한다. 즉, 비디오 인식에서 시간을 이중 시점에서 바라보는 관점을 도입하여, 정적 의미와 빠른 움직임을 동시에 포학한다.

  • Slow pathway: 낮은 시간 해상도 → 고수준 semantic 정보 학습(채널 수가 많음)
  • Fast pathway: 높은 시간 해상도  → 빠른 motion 변화 감지(채널 수가 적음)

이 두 pathway는 서로 다른 속도로 비디오를 처리하고, 중간에 정보를 Fusion함으로써 정적 + 동적 정보를 함께 학습한다. 이때 중간에 정보를 Fusion하므로 Output Size의 H, W를 동일하게 맞춰주어야 한다.

 

  • Fast pathway의 빠른 temporal 특징을 Slow pathway에 주기적으로 전달
  • 서로 다른 해상도에서도 적절히 matching하여 concatenation
  • 중간 레벨에서 특징 통합 → 최종적으로 rich spatiotemporal 표현

 

X3D(Expand 3D CNN, 2020)

 X3D는 효율 중심의 비디오 인식 모델로, 가장 최적의 3D CNN 구조를 찾기 위해 점진적으로 확장해 나가는 모델이다. 기존의 비디오 인식 네트워크들은 랜덤으로 깊이, 너비, 시간 길이 등을 키웠지만, X3D는 경량 구조에서 시작해서 점진적으로 구조를 확장해 나간다. 덕분에 속도와 정확도의 균형을 최적화 할 수 있다.

X3D(Expand 3D CNN, 2020): Architecture

X3D(Expand 3D CNN, 2020): Result

Further Reading

 2021년 이후 Computer Vision 분야에서는 CNN 중심의 패러다임이 Transformer 중심으로 전환되었다. 

728x90