읽은 일시 : 2026.07.18.-2026.07.23.
Paper Information
Title: Two-Stream Convolutional Networks for Action Recognition in Videos Authors: Karen Simonyan, Andrew Zisserman Affiliation: Visual Geometry Group, University of Oxford arXiv ID: 1406.2199 Topic: Video Action Recognition, Two-Stream ConvNet, Optical Flow, Spatial-Temporal Modeling, Video Understanding Venue: Advances in Neural Information Processing Systems 27, NIPS 2014 Pages: 568–576
1. One-line Summary
정지 프레임의 외형 정보를 학습하는 공간 스트림과 다중 프레임 optical flow의 움직임 정보를 학습하는 시간 스트림을 분리한 뒤, 두 예측을 후기 융합하여 비디오 행동을 인식하는 Two-Stream ConvNet을 제안한다.
2. Problem
영상에는 정지 프레임의 appearance와 프레임 사이의 motion이라는 서로 다른 정보가 존재하며, 이를 효과적으로 포착하고 결합하는 것이 어렵다. → 정적 이미지 분류와 비교했을때 영상의 시간정보는 인식에 추가적이고 중요한 실마리를 제공하는데, 많은 동작의 경우 움직임 (motion) 정보에 의해 신뢰도 있게 인식되었기 때문. + 개별 비디오 프레임을 분류할 때 사용 가능한 자연스러운 데이터 증강 효과를 제공한다Additionally, video provides natural data augmentation ( jittering ) for single image (video frame) classification
-
jittering은 프레임마다 나타나는 작은 자연적 변동
3. Method & Background Concept

3.1. Discriminative와 generative의 차이
-
Discriminative model : 입력 x가 주어졌을 때 클래스 y를 예측하는 데 집중
예: 이 영상이 주어졌을 때 행동이 달리기일 확률 은 얼마인가?
-
Generative model : 각 클래스의 데이터가 어떻게 생성되는지까지 모델링 또는
예: 달리기 영상은 일반적으로 어떤 모습과 움직임 을 가지는가?
3.2. Optical Flow란? (광류)
실제 물체의 운동 그 자체가 아니라, 영상 평면에서 관찰되는 겉보기 운동의 추정치 → 각 픽셀이 어느 방향으로 얼마나 이동했는지를 추정한 2차원 벡터장
still frame 은 비디오에서 뽑아낸 한 장의 정지된 이미지 프레임
- Still image : 일반적인 정지 이미지
- Still frame : 비디오에서 특정 시점의 프레임 한 장을 정지 이미지처럼 사용한 것
- Video clip : 여러 연속 프레임으로 이루어진 짧은 영상 구간
3.3. late fusion이란? (후기 융합, 후단 융합)
공간 스트림과 시간 스트림이 각각 독립적으로 행동을 예측한 뒤, 네트워크의 마지막 출력 단계에서 두 예측 결과를 결합하는 방식
각 네트워크는 마지막 softmax 층에서 행동별 점수를 독립적으로 출력한다. () 그 후 이 점수들을 합쳐 최종 행동을 결정.
예를 들어 행동 클래스가 “달리기, 수영, 테니스” 세 개라고 설정할때,공간 스트림의 출력:
공간 스트림은 라켓과 코트 같은 외형을 보고
테니스
일 가능성을 높게 판단
시간 스트림의 출력:
시간 스트림도 팔과 라켓의 움직임을 보고
테니스
라고 판단
평균을 사용하는 late fusion의 예시 :
→ 최종적으로 테니스라고 제시
논문에서는 어떻게 사용되었는가?1. Averaging
: 두 스트림의 클래스별 softmax 점수를 평균. 가장 단순한 방법이며, 두 스트림의 중요도는 동일
2. Linear SVM
두 스트림의 L2-normalised softmax 점수를 연결한 뒤, 이를 특징 벡터로 사용해 별도의 다중 클래스 선형 SVM을 학습 → 평균처럼 고정된 규칙을 쓰는 대신 SVM이 어떤 점수 조합이 어떤 행동에 중요한지 학습
→ 논문의 실험에서는 평균 융합보다 SVM 기반 융합이 더 좋은 성능을 냈다. 반대의 개념으로 Early Fusion도 존재한다. 입력이나 낮은 수준의 특징을 초기에 결합해 두 정보 사이의 세밀한 상호작용을 일찍 학습할 수 있지만, 입력 구조와 학습이 복잡해진다.
RGB 특징 + Optical-flow 특징
→
하나의 통합 네트워크
→
행동 예측
4. Key Idea
이 연구의 목표정적 이미지에서 SOTA인 ConvNets를 활용해서 영상 데이터 속 행동 인식에 적용한다.
-
공간 스트림과 시간 스트림
네트워크로 구성된 Two-Stream ConvNet 아키텍처 제시
First, we propose a two-stream ConvNet architecture which incorporates spatial and temporal networks.
-
여러 프레임에 걸친
밀집 광류를 입력으로 학습
한 ConvNet이 제한된 양의 학습 데이터에도 불구하고 매우 우수한 성능을 낼 수 있음을 보인다.
Second, we demonstrate that a ConvNet trained on multi-frame dense optical flow is able to achieve very good performance in spite of limited training data.
-
dense optical flow영상의 일부 특징점만이 아니라, 거의 모든 픽셀 위치에서 이동 벡터를 계산한 광류
-
-
마지막으로, 서로 다른 두 동작 분류 데이터셋에
멀티태스크 학습
을 적용하면
활용 가능한 학습 데이터의 양을 늘리고 두 데이터셋 모두에서 성능을 향상시킬 수 있음
을 보인다.
Finally, we show that multitask learning, applied to two different action classification datasets, can be used to increase the amount of training data and improve the performance on both
→ “활용 가능한 학습 데이터의 양을 늘리고”의 의미 : 한 데이터셋의 모델이 다른 데이터셋의 영상도 공통 특징 추출기 학습에 활용할 수 있다.

4.1. Spatial Stream ConvNet
개별 프레임에 대해서 작동하며 정적 이미지로부터 행동 인식에 효과적임
- 사실 action classification의 경우 still frames 만으로도 경쟁력이 있는 성능이 나온다.
4.2. Optical Flow ConvNet

연속적인 프레임 간의 광류 변위장들을 채널 방향으로 쌓아 만든다(stacking optical flow displacement fields)
- optical flow 는 영상의 모든 위치에서 픽셀이 얼마나 이동했는지
- 한 픽셀이 아니라 영상 전체에 계산하므로 변위장(displacement field) → 영상 프레임간 움직임을명시적으로 묘사한다 → 인식에 더 도움이 됨 → 주어진 움직임 패턴이 어떤 행동을 뜻하는지 에 더 집중
그러면 optical flow를 추출했다는 가정 하에 어떻게 이를 입력값으로 모델에 넣는가?
이미 계산된 여러 flow의 성분을 CNN의 개 채널로 쌓는다. 그럼 flow는 어떻게 읽어오는가?

: displacement vector at the point in the frame
: a set of displacement vector fields
: horizontal and vertical components of the vector field
-
Optical Flow Stacking
: 여러 시점의 flow field에서 동일한 영상 좌표의 값을 읽는 방식 (
Figure 3 - left
)
앞서 설정한 displacement vector fields 개의 optical flow displacement field을 쌓는다
→ 개의 Input Channels 달성 (horizontal + vertical)
→ a ConvNet input volume
-
Trajectory Stacking :
움직이는 점의 이동을 따라간다
(Figure 3 - right)
trajectory-based descriptors에 모티브를 얻음
: 시작점 에서 점의 위치이고 그다음 위치는 현재 optical flow만큼 이동
이 밖에도 양방향을 모두 고려하는 Bi-directional optical flow,
카메라의 움직임을 고려해 각 (displacement field)에서 평균 벡터를 빼서 완화하는 Mean flow subtraction 전략도 존재한다
Temporal ConvNet은 기존의 수작업 motion feature를 완전히 버린 것이 아니라, 그 특징들을 학습 가능한 ConvNet 안에서 일반화한 모델이다.
4.3. Multi-task learning for Optical Flow (Temporal ConvNet)

temporal ConvNet은 spatial stream ConvNet과 다르게 입력이 multi-frame optical flow이므로, RGB 정지 이미지를 사용하는 ImageNet 사전학습 모델을 이 논문의 설정에서 직접 이용하기 어렵다.더군다나 그 중 영상 Action 분류를 위한 데이터는 더 적다→ Overfitting의 위험성 서로 다른 데이터셋을 합쳐 규모를 키워보려해도 클래스 조합의 교집합이 존재하고 이를 어떻게 분류할 것인가 (동일 행동? 유사행동?)가 수작업 판단이 필요하다 → multi-task learning의 등장
- split당 training videos ⇒ UCF-101 :
9.5K, HMDB-51 :3.7K
- 데이터셋별 softmax head와 loss는 분리됨
- 하지만 마지막 fully connected layer 아래의 ConvNet backbone은 공유됨
- 전체 손실은 두 task loss의 합
- 공유 backbone 은 양쪽 데이터셋의 gradient를 모두 받아 업데이트됨
5. Result
평가는 UCF-101과 HMDB-51에 대하여 진행되었고 이 두개는 라벨링이 된 영상 데이터셋 중 가장 큰 것 들이다. 101과 51은 각 데이터셋의 행동 클래스 수이다.-
UCF-101 : 13K videos (180 frames/video on average)
UCF-101의 경우 비슷한 배경, 비슷한 뷰포인트처럼 공통적인 특성으로 묶여 25개의 그룹이 존재한다고 한다. 그리고 이 그룹은 동일한 분할에서 테스트/훈련 데이터에 둘 다 존재하지 않는다→ 모델이 행동 자체보다 배경이나 뷰포인트와 같은 것을 학습해 성능이 부풀려질 수 있기 때문
The videos in 101 action categories are grouped into 25 groups, where each group can consist of 4-7 videos of an action. The videos from the same group may share some common features, such as similar background, similar viewpoint, etc.
- HMDB-51 : 6.8K videos
-
두 데이터셋 모두 학습/테스트 데이터를 3개의 분할으로 나누어서 제공한다
- UCF-101은 각 분할당 9.5K개의 영상을, HMDB-51은 분할당 3.7K개의 영상을 학습 데이터로 사용한다.
- 성능은 각각의 분할에서 평가된 분류 정확도(Accuracy)에 대해서 평균을 계산하는 방법으로 측정된다.
5.1. Spatial ConvNets and Temporal ConvNets

- Training from scratch on UCF-101
- pre-training on ILSVRC-2012 followed by fine-tuning on UCF-101
- keeping the pre-trained network fixed and only training the last (classification) layer on UCF-101
공통적으로 dropout은 0.9로 설정해 일반화 능력을 높이고자 하였음 또한 ILSVRC-2012 없이 UCF-101에 대해서만 학습된 상태 (from scratch)
- using multiple (L = {5, 10}) stacked optical flows
- trajectory stacking
- mean displacement subtraction
- using the bi-directional optical flow
→ 1. 결과적으로 광류를 쌓았을때 (Stacking Optical Flow, )가 확실하게 이득인데 이유가 long-term motion information을 저장할 수 있기 때문이라고 하고 이게 frame간의 흐름을 보여주는 것보다 훨씬 구체적인 정보라고 한다.
→ 2. mean subtraction 방식이 프레임간 전역적 움직임의 효과 (e.g. 카메라 자체의 흔들림)를 억제하는 효과를 보여줘서 성능에 유의미한 향상이 있었음 → 최종적으로 실험 결과에 따르면 Spatial ConvNet보다 Temporal ConvNet이 훨씬 유의미한 성능을 보여주었음하지만 L을 늘린다고 해서 반드시 성능 향상이 폭발적으로 늘어나는 것은 아니었고, L이 커질 수록 그 성장 폭은 점점 줄어들었다. (이 10 이상으로는 실험이 안된 이유)


5.2. Multi-task learning of temporal ConvNets
이제 UCF-101을 기준으로 성능을 확인했으니 본격적으로 HMDB-51을 활용하면서 multi-task learning의 데이터 풍부화 효과를 노린다.→ 하지만 한가지 문제점이 HMDB-51은 UCF-101에 비해 training split이 2.6배정도 더 작다. → 연구자들은 이에 효과적인 training set size를 증가시키기 위해 다양한 전략을 시도해봄
- fine-tuning a temporal network pre-trained on UCF-101
- adding 78 classes from UCF-101 , which are manually selected so that there is no intersection between these classes and the native HMDB-51 classes ;
- using the multi-task formulation to learn a video representation, shared between the UCF-101 and HMDB-51 classification tasks


5.3. Two-stream ConvNets

두개의 스트림을 하나로 결합하는데 있어 가장 먼저 제시되는건 공간 네트워크와 시간 네트워크의full6또는full7층 위에 공동 fully connected layer들을 쌓아 학습하는 것. → 고차원 특징을 합친 뒤 새로운 fully connected layer들을 추가로 학습하는 방법을 시도했지만 과적합 문제로 인해 활용되지 않았다. → 얌전히 softmax score를 활용하기로 했다. → 문제는 어떻게 softmax score를 합칠 것인가?
- averaging softmax score
- linear SVM
-
애초에 두 스트림은 상호 보완적이었다 (합성시 두 개의 단일 스트림 모델에 대해 모두 성능이 향상되었기 때문)
→ 융합 모델이 Temporal stream 단독보다 약
6%p, Spatial stream 단독보다 약14%p높은 성능을 기록했다.Temporal and spatial recognition streams are complementary , as their fusion significantly improves on both (6% over temporal and 14% over spatial nets)
-
SVM 기반의 softmax score 합성은 단순히 평균을 내는 것보다 좋은 성능을 보인다
SVM-based fusion of softmax scores outperforms fusion by averaging
-
양방향 플로우를 활용하는건 이번 ConvNet 합성 사례에서는 추가 이득이 없었다
Using bi-directional flow is not beneficial in the case of ConvNet fusion
-
multi-task learning을 활용하여 학습된 temporal ConvNet의 경우 단일로 사용되나 Spatial Net과 합쳐지나 최고의 성능을 보인다.
Temporal ConvNet, trained using multi-task learning, performs the best both alone and when fused with a spatial net

UCF-101, HMDB-51 데이터셋에 대한 SOTA 모델들과 성능을 비교해본 결과, 경쟁 가능한 수준을 보여주었다

6. Limitation
6.1. Trajectory-aware pooling의 부재
- Trajectory stacking은 optical flow를 움직임 궤적을 따라 샘플링한다.
- 그러나 ConvNet 내부의 spatial pooling은 고정된 공간 영역에서 수행되며, 궤적의 이동을 따라가지 않는다.
- 따라서 입력 단계에서는 움직이는 점을 추적하지만, 특징을 집계하는 단계에서는 동일한 객체나 신체 부위를 지속적으로 정렬해 처리하지 못한다.
- 향후에는 궤적 중심의 spatio-temporal tube를 따라 특징을 pooling하는 구조가 필요하다.
6.2. 단순한 카메라 모션 보정
- Optical flow에는 객체의 움직임과 카메라의 움직임이 함께 포함된다.
- 본 논문은 각 flow에서 평균 변위 벡터를 빼는 mean displacement subtraction으로 전역 움직임을 완화한다.
- 그러나 이 방식은 카메라의 평행 이동을 근사적으로 줄일 뿐, 회전·확대·축소·원근 변화와 같은 복잡한 카메라 모션을 명시적으로 모델링하지 못한다.
- 향후에는 카메라 모션을 별도로 추정하고 제거하는 정교한 보정 방법이 필요하다.
이 논문의 Temporal ConvNet은 trajectory stacking을 통해 궤적을 따라 optical flow를 입력으로 구성하지만, 네트워크 내부의 spatial pooling은 궤적을 고려하지 않는다 는 한계가 있다. 또한 카메라 움직임을 평균 변위 벡터 차감 으로만 단순하게 보정하므로, 복잡한 전역 카메라 모션을 충분히 제거하지 못한다. 따라서 향후에는 trajectory-aligned spatio-temporal pooling과 명시적인 camera motion compensation이 필요하다.
7. Connection to My Research & What I Can Apply
- BMOD 프로젝트를 진행할때 temporal feature에 대한 고려가 부족했는데 optical flow에 대한 temporal stream ConvNet의 방식을 활용할 수 있겠다 생각
- 서로 다른 데이터셋을 활용하여 전체 학습 데이터셋의 규모를 키우는 방식 또한 행동 인식, 특히 비인간동물에 대한 학습데이터셋은 제한적인데 이 multi-task learning 전략을 활용해 보는것도 유용할 수 있겠다 생각함.