*크롬으로 보시는 걸 추천드립니다*
이미지 분석(Image Analysis)을 연구하거나, 산업에 적용하다 보면
영상 분석(Video Analysis)에 대해서 종종 접하게 됩니다.
영상 분석을 접할 기회가 적은 편이고,
'이미지 분석하는 것도 힘든데.. 영상분석이라니..'라는 막연한 두려움 때문에, 그동안 다루지 못했었습니다.
이번 기회에 영상 분석에 대한 진입장벽을 낮추고자, "영상 분석이 무엇인가?"를 주제로 다루겠습니다.
( 오히려, 이 글이 영상분석에 대한 진입장벽을 높이지 않길 기도하면서.. )
heartbeat.fritz.ai/computer-vision-from-image-to-video-analysis-d1339cf23961
를 참고하여 진행했습니다!
Video Analysis 개요
Computer Vision(CV)의 핵심은 이미지를 이해하는 것입니다.
현재, "이미지를 이해"하는 것에서 "비디오를 이해"하는 것으로 점점 발전하고 있습니다.
비디오(영상) 분석은
1. 비디오란 - "일련의 이미지들"이라고 할 수 있으며, 단일 이미지보다 더 많은 상황정보를 제공합니다.
2. 사물을 트랙킹(Object Tracking)을 통해서, 다음 움직임(Next Move)이 무엇인지 예측할 수 있습니다.
- 예를 들어, 사람의 움직임을 예측하는 Human Pose 분야도 포함됩니다.
비디오(영상) 분석의 핵심 요소 :
1. Object Detection
2. Object Tracking
3. Action Classification
이라고 할 수 있습니다.
Object Detection은 이미지 분석에서도 충분히 다루므로,
Object Tracking부터 설명드리고자 합니다.
① Object Tracking
비디오(영상) 분석의 핵심 요소 중 Object Tracking에 대해서 설명하고자 합니다.
이미지와 비디오와 차이는 'Motion'이며, 이를 위한 Tracking이 필요합니다.
Object Tracking의 카테고리 :
1. Video Stream : Live Image Feed - 실시간 이미지 스트리밍
- 현재 이미지와 이전 이미지를 고려
2. Video Sequence : Fixed-Length Video - Full 영상
- 첫 이미지부터 마지막 이미지까지, 전체를 다룸
1) Optical Flow(광학 흐름)
- Optical Flow란 : 영상에서 모션(Motion) 벡터를 찾는 방법으로써, 두 프레임(Frame) 사이의 Pixel Shift를 계산
en.wikipedia.org/wiki/Optical_flow
- Optical Flow의 출력 값(Output) : Frame1 → Frame2 사이의 흐름(Movement)에 대한 벡터 값(Vector)
Optical Flow(광학 흐름) 대표 딥러닝 논문
○ FlowNet : 6-depth(2 RGB)를 Input을 활용하여, Optical Flow를 색으로 표시
2) Visual Object Tracking(VOT)
Optical Flow가 Pixel단위의 흐름을 추적한다면, Visual Object Tracking(VOT)는 객체(Object) 단위를 트랙킹 한다.
Visual Object Tracking 특징 :
1. Object Detection은 필요하지 않음 - 무엇을 Tracking 하는지 알 필요 없음
2. 초기 경계 박스(Starter Bounding Box)가 주어짐
3. 주어진 객체를 추적함
- 프레임 0과 1의 유사성을 계산
- 경계박스 내 물체 확인 및 다음 프레임에서 검색
- 경계 박스를 이동하여, Object를 추적
Visual Object Tracking 대표 딥러닝 논문
○ MDNet(Multi-Domain Net) : Object와 Background를 구별하는 딥러닝을 학습
- Domain-specific Layer가 존재
○ GOTURN(Generic Object Tracking Using Regression Networks)
: 두 CNN 모델(Previous Frame 및 Currenet Frame 용)을 활용하여, 검색할 영역(Region)을 특정시킴
- 100 FPS에서 작동 가능하며, 좋은 성능을 보임
※ 번외 : 딥러닝을 사용하지 않는 VOT
※ 번외 : 딥러닝을 사용하지 않는 VOT
○ Color Model
1. Bounding Box를 활용하여, 추적할 초기 Object를 입력 받음
2. 입력된 Object의 Color 히스토그램을 계산
3. 입력된 Object 근처의 배경색을 계산
4. 전체 이미지에서, Object의 색을 제거
3) Multiple Object Tracking(MOT)
Multiple Object Tracking 특징 :
1. 여러 객체를 트랙킹함
2. VOT보다 더 Long-Term 한 영상을 다룸
Multiple Object Tracking 종류 :
1. Detection-Based Tracking - (YOLO - Deep SORT)
2. Detection-Free Tracking
Detection-Based Tracking세부 Task :
1. Object Dectection
2. Object Association
- Time t의 탐지(Detection) 결과와 Time t+1 탐지 간의 연계
- Detection 성능에 상당히 의존적임
- Good Tracker는 약간의 Frame은 Detection 없이 처리해야 함
* 관련된 내용은 Deep SORT를 다루면서, 추가로 설명하고자 합니다
nanonets.com/blog/object-tracking-deepsort/
haandol.github.io/2020/02/27/deep-sort-with-mxnet-yolo3.html
② Action Classification
비디오(영상) 분석의 핵심 요소 중 마지막 Action Classification에 대해서 설명하고자 합니다.
예를 들어, Action Classification은 매장 내 사람들의 행동을 분석할 때 사용한다.
Action Classification의 특징 :
1. Bounding Box내에서의 Action을 알기 위해선,Object Detection과 Tracking이 우선 되어야 함
- 주어진 상황이나 장면을 우전적으로 이해해야 되기 때문에
2. 가장 좋은 카메라 각도(앵글)를 선택
3. Action 분류( 쉬운 : 걷기, 달리기 ~ 어려운 : 샌드위치 만들기 - 여러 작업(빵 짜르기, 토마토 씻기 등)이 복합됨)
Action Classification 대표 딥러닝 논문
○ Optical Flow 활용
- Optical Flow를 Input으로 받음
- Action Classifier(Softmax) Layer를 추가
○ End-to-End 학습 방법
- Action Classification을 위한, End-to-End 학습 예시 :
- 이미지와 다르게, 다중 Frame을 처리해야 함 → Space-time Volume이라고 함
- Spatial Stream : Single Image에 적용
- Temporal Stream : Optical Flow 이미지들을 입력 받음
※ 번외 : 그 이외에 Action Classification - Pose Estimation
※ 번외 : 그 이외에 Action Classification - Pose Estimation
1. Detecting Keypoint - Keypoint란 왼쪽 그림의 점들
2. Tracking Detecting Keypoint
3. Keypoint의 움직임을 분석
마치며
- 이미지와 영상분석의 차이에 대해서 다루었습니다.
- 영상분석의 주요 개념(Tracking, Action classification)에 대해서 다루었습니다.
- 다음번에는 대표적인 Tracking방법인, Deep SORT를 다루어볼 예정입니다.
'발전중인 AI > 영상 분석(Video Analysis)' 카테고리의 다른 글
영상 분석(Video Analysis) 이란? - Tracking ② (0) | 2021.03.15 |
---|---|
영상 분석(Video Analysis) 이란? - Tracking ① (2) | 2021.03.05 |