사람의 자세추정(Human Pose Estimation)에서 나아가 사람의 행동(Human Action)에 대한 recognition 연구에 대해서도 알아보게 되었다. 예전에 리뷰 논문을 읽고 내용을 정리해두었던 걸 포스팅해보려고 한다.
※ 제가 이해한 내용을 바탕으로 작성하여 틀린 내용이 있을 수 있습니다! 잘못된 부분은 지적해주시면 감사하겠습니다 :)
Human Action Recognition and Prediction: A Survey (1)
목차
1. Introduction
2. Human Perception of Actions
3. Action Recognition
4. Action Prediction and Motion Prediction
5. Datasets
6. Evaluation Protocols for Recognition and Prediction
7. Future Directions
8. Conclusion
1. Introduction
" Real world의 human action을 모니터링 하는 것은 기계가 대신 해야할 일 "
[Basic topic]
- Action Recognition : 현재의 행동을 인식
- Action Prediction : 미래의 행동을 예측
이 두가지 topic을 잘 기억해두고 읽으면 좋을 것 같다.
1.1) Real-world Applications
Human Action Recognition은 다음과 같은 곳에 사용될 수 있다.
- 범죄 감시
- 동영상 검색
- 오락
- 사람-로봇간 상호작용
- 자율주행 자동차 등
1.2) Research Challenges
1.2.1) Intra- and inter-class Variations
- 한 행동 간
- 한 행동에 대해 사람마다 다르게 움직임 ex)'달리기'의 경우- 빠르게 달리기, 느리게 달리기, 점프하며 달리기
- 한 행동을 다양한 view point에서 봄 ex) 대상의 정면에서, 머리 위에서
- 같은 행동에 대해 사람마다 다른 자세를 취함
- 서로 다른 행동 간
- 서로 다른 행동 간의 유사함 ex) 달리기와 걷기는 서로 유사함
1.2.2) Cluttered Background and Camera Motion
실내의 통제된 환경에서 잘 동작하는 human action 알고리즘은 많지만,
야외의 통제되지 않은 환경에서는 그렇지 않음
-> 주로 Background 때문에 문제가 되고, camera motion도 보완되어야 함
+ 환경과 관련된 추가적인 이슈) illumination conditions, viewpoint changes, dynamic background 등
1.2.3) Insufficient Annotated Data
충분한 annotated dataset이 존재하지 않음
-> Labeld Data와 unabled data 둘 다를 이용해서 학습할 수 있는 recognition 알고리즘이 필요함
1.2.4) Uneven Predictability
어떤 행동은 바로 예측이 가능하고 어떤 행동은 예측하는 데 더 많은 프레임이 필요함
-> 모든 행동을 더 정확하게 초기에 예측할 수 있는 알고리즘이 필요함
2. Human Perception of Actions
사람의 action understanding은 아래 세가지에 의해 이루어진다.
- Action Recognition
- Intention Understanding
- Narrative Understanding
위와 같은 심리적, 인지적 연구는 action prediction의 접근 방식을 디자인하는데에 도움이 됨
3. Action Recognition
[Topic]
- Action Representation : 행동의 feature vector를 추출함
- Action Classification : feature vector로부터 Action Label을 추론함
- Deep Network : 1+2 end-to-end trainable framework
한 행동 간의 차이는 최소화하고, 다른 행동 간의 차이는 최대화 해야함
3.1) Shallow Approaches
3.1.1) Action Representation
- Holistic Representation
- 사람 몸의 전체를 capture
- 특정 부분을 사각형으로 capture하기 때문에 노이즈에 민감한 경향이 있음
- Local Representation
- 주요 동작 정보가 있는 local 부분만 capture -> Holistic representation의 단점이 보완됨
3.1.2) Action Classifiers
- Direct Classification : Action video를 한 feature벡터로 만든 뒤, 바로 action recognition
- Sequential Approaches : human action의 시간적 특성까지 고려, 주로 holistic feature이용
- Space-time Approaches : spatio-temporal 특성까지 고려, large dataset에서 잘 동작함
- Part-based Approaches : 몸의 부분부분과 몸의 전체 모두의 motion 정보를 고려함
- Manifold Learning Approaches : silhouette의 차원수를 줄임 (차원수가 크면 효율적으로 recognition할 수 없음)
- Mid-Level Feature Approaches : Low Level의 feature와 high level의 action 사이의 의미적 간극을 줄임(Semantic description을 통해서)
- Feature Fusion Approaches : 한 비디오에서 inter-related한 여러 타입의 feature들을 합침
3.1.3) Classifiers for Human Interaction
- 2명 이상의 사람들에 의해 수행되는 action에 초점(Human interaction recognition) ex) 악수, 대화 등
- 사람들 사이에서 행동의 동시 발생은 human interaction recognition에서 가치있는 정보가 됨
- 논문 저자는 이 행동 동시 발생을 직접 모델링하기보다, body part간의 행동 관계를 기술하는 방식을 제안함
-> 좀 더 디테일하고 복잡한 interaction까지 고려할 수 있도록
- 밀접한 접촉이 나타나는 행동
- ex) hug, push, hi-five 등
- 사람끼리 신체가 겹쳐서 인식하기 어려워지므로 patch-aware model이 필요할 것
- 그렇지 않은 행동
- ex) crossing the road, talking, waiting 등
3.1.4) Classifiers for RGB-D Videos
- Kinect Sensor의 등장으로 RGB-D 영상으로부터의 action recognition이 주목받고 있음
- Depth channel은 3D 구조적 정보를 파악할 수 있게 함 -> 배경의 노이즈 제거, 한 행동 간 특성의 단순화가 가능해짐
3.2) Deep Architectures
3.2.1) Space-time Networks
- 2D ConvNet의 확장
-대표적으로 'C3D'가 있음(상대적으로 더 shallow한 Net (8 layers))
-[19]가 좀 더 deep한 network인데 Kinectics dataset을 pre-train 했을 때 더 좋은 결과를 보임
[문제점]
- 3D convNet의 전형적인 문제는 짧은 시간 간격임(16 frames 정도)[14] ->long term 시간적 정보는 인식하지 못함
[해결책]
- 3D convolution의 시간간격을 늘림[152] -> recognition 성능을 향상시키는 데 도움이 됨
3.2.2) Multi-stream Networks
- Multiple convolutional network를 사용 -> appearance와 motion information 모두를 모델링하기 위해.
- Hand Crafted shallow representation보다 더 안 좋은 성능을 보였었음
- Two Stream 가설
- Spatial ConvNet(정적인 이미지로 학습) + Temporal ConvNet (optical flow 기반으로 recognition수행)
- 두 stream 각각의 softmax로 나온 결과를 하나로 합침
- 그러나 이는 긴 시간의 정보를 합치는 데에 적절하지 않은 방법.
[문제점]
- Two stream의 주요 문제점은 두 stream간의 interaction이 불가능하다는 것.
(두 stream간의 interaction은 spatiotemporal feature를 학습하는 데 매우 중요한 요소임)
[해결책]
- Fusion Layer를 두 stream 중간에 위치하게 함
->두 stream 간 interaction이 가능해질 것.
3.2.3) Hybrid Networks
- LSTM처럼 CNN위에 recurrent layer를 추가함 -> temporal information을 합칠 수 있음
- 공간적인 행동패턴을 인식하고 시간적인 순서와 long-term temporal dependency를 인식하는 데 좋은 결과를 보임
- CNN으로 motion feature를 추출하고 LSTM으로 long-term dependency를 모델링 하는 식으로 사용함
3.3) Summary
- Deep approach가 Shallow approach보다 우세하지만 shallow방법도 아직은 쓸만함
(Deep approach에 비해 학습하기도 쉽고 작은 dataset 에선 잘 동작함)
+ C3D, TSN같은 pre-trained Deep Network가 있음
[장단점]
나머지는 다음 포스팅에서 이어서 작성하겠습니다
'머신러닝 > Human Action Recognition' 카테고리의 다른 글
[논문 리뷰] A Review on Human Pose Estimation (2021) (0) | 2022.05.31 |
---|---|
[논문 리뷰] Human Action Recognition and Prediction: A Survey (2) (0) | 2021.03.27 |