*크롬으로 보시는 걸 추천드립니다*
본 "영상 분석(Video Analysis) 이란? - Tracking"을 보시기 전에
를 먼저 보시면서, Video Analysis의 기본적인 개념에 대해서, 참고하시는 것을 추천드립니다.
비디오(영상) 분석의 핵심 요소 :
1. Object Detection
2. Object Tracking
3. Action Classification
이 있다고 말씀드렸습니다.
Object Detection은 이미 많이 알려져 있져있기 때문에,
"영상 분석(Video Analysis) 이란? - 기본"에 이어서,
Object Tracking에 대해서 좀 더 자세하게 설명하고자 합니다.
nanonets.com/blog/object-tracking-deepsort/
medium.com/analytics-vidhya/yolo-v3-real-time-object-tracking-with-deep-sort-4cb1294c127f
를 중심으로 참고하였습니다.
Introduction
단순한 "픽셀-픽셀간의 이동"이 아닌 "어떻게 이미지나 비디오의 패턴"을 인식하도록 할 것인가? 가 주요 관심사이다.
Object Detection은 많이 알려져 있지만, 영상에서의 Object Tracking은 상대적으로 더 알려져 있다.
- Static images에서 물체를 감지하고, 시간 정보를 분석하여 결합하고, 이를 활용하여 궤적을 잘 예측하도록 사용
- Single Object Tracking은 다른 물체와의 구별이 필요 없으므로 상대적으로 쉽다
- Multiple Object Tracking은 다른 물체와의 구별과 식별(identify)이 필요하며,
Scene에서 벗어날 때까지 Tracking해야 하므로 어렵다.
Object Detection vs Tracking
○ 영상 분석에서의 Object Detection의 역할 :
- 각 Frame에서 독립적으로 수행됨
- 특정 Frame에서 여러 Object를 탐지 및 식별함
- Bounding Box 및 분류를 진행함
○ 영상 분석에서의 Object Tracking의 역할 :
- 전체 비디오에서 특정 객체를 식별
- Detection 된 각 객체를 이어지는 프레임에서 추적(고유 ID 사용)
- Tracker는 시공간(Spatio-Temporal) Feature를 사용해야 함
Challenges
Object Tracking을 하면서 발생되는 기본적인 문제들에 대해서 다루고자 합니다.
○ Occlusion
- 물체가 겹쳐지거나 가려지는 것
- 왼쪽 그림에서 배경에 잡힌 남자가, 오른쪽 그림에서는 Detect 되지 않음
→ Detect가 끊어졌던 동일한 사람에 대해서 식별하고, 과거의 Track과 궤적에 대한 특징을 연결해야 함
○ Variations in view points
- 종종 여러 카메라에서 Object Tracking을 진행할 수 있음
- 변화된 카메라 View에 대해서도, 불변(Invariant)하게 Tracking 해야 함
- 예시 : 무인 편의점
○ Non Stationary Camera
- 추적하는 카메라가 특정 물체를 따라서 움직이는 경우
- 추적하는 대상이 더 커지거나, 작게 변화될 수 있음
- 객체의 Feature를 활용하는 Tracker의 특성상, 물체를 따라 카메라가 움직이는 경우 추적에 실패할 수 있음
- 예시 : 드론, 자율주행
○ Annotation Training Data
- Annotation 된 좋은 훈련 데이터를 얻기 어려움
- Detection은 여러 영상 이미지를 무작위로 뽑아 주석을 달면 되지만,
Tracking은 각각의 Instance가 식별 및 Frame마다 연결되어야함
즉, 비디오 시퀀스(Sequence)에 대한 전체적인 Annotation이 필요함
Tranditional Methods
Mean Shift
● Mean Shift 특징
- Mean Shift(=Mode seeking)는 Clustering 같은 Unsupervised에서 많이 사용됨
- K-Means와 유사하나, 중심을 찾을 때 평균에 가까울수록 중요도를 높이는 가중평균(Weighted Average) 사용
- 이 알고리즘에 목적은 주어진 데이터 분포(distribution)에서의 Mode(최빈값)을 찾는 것이다.
● Mean Shift 과정
1. Frame에서 물체를 감지하고 특징(색감, 질감, 히스토그램)을 추출
2. 현재 영상에서, feature 분포의 Mode에 대한, 위치를 인식
3. Frame이 바뀌어서 분포가 변경이 되었을 때, 가장 큰 분포의 Mode( - 유사도 ↑)를 찾으며 Object를 추적함
● Mean Shift 단점
- 물체의 크기, 형태 변화에 민감하다 ( ∵ 크기나 형태가 변화하면, Feature의 분포가 크게 변하기 때문에)
※ 이 블로그에 잘 설명되어있어서, Mean Shift의 적용이 궁금하신 분은 참고하시면 도움이 되실 겁니다
Optical Flow
※ kmhana.tistory.com/20?category=845938 에서 간단하게 다루긴 했지만, 한번 더 다루겠습니다
● Optical Flow 특징
- Mean Shift와는 다르게 Object의 Feature를 추출할 필요가 없다
- 추적해야 되는 객체의 변위 벡터를 얻는 것이 목적
● Optical Flow 가정
1. 밝기의 일관성 : Small region의 위치가 변경될 수는 있지만, 밝기는 거의 유사할 것으로 예상
2. 공간의 통일성(coherence) : Neighboring points은 같은 표면(Surface)에 위치하므로, 유사한 움직임을 가짐
- 근방의 Point들은 비슷한 방향으로 움직인다
3. 시간의 지속성(Persistence) : Motion of a patch는 점진적으로 변경됨
4. 동작(Motion)의 제한 : 점들이 너무 멀리 가거나, 무작위(Random)로 이동하지 않음
● Optical Flow 설명 링크
- 위 가정이 충족되면 Lucas-Kanade[ en.wikipedia.org/wiki/Lucas%E2%80%93Kanade_method ]방법을 사용
→ 속도에 대한 방정식(Velocity Equation)을 얻음
- Lucas-Kanade에 대한, 설명은 Lucas-Kanade 사이트 참고
- Optical Flow에 대한, 더 자세한 내용은 docs.opencv.org/3.4/d4/dee/tutorial_optical_flow.html 참고
- 한글로 설명된 블로그는 다음 링크를 추천 블로그
Kalman Filters
● Kalman Filters 특징
- 컴퓨터 비전, 내비게이션, 경제학 등에서, 시계열적인 예측과 관련된 문제를 해결하는 데 사용됨
- 사용 가능한 Detection 정보와 이전 예측(Predcitions)을 이용하여, 현 상황에 대하여 잘 추측하고자 함
- Tracking 과정에서 발생할 수 있는, 오류 가능성을 유지(keeping)
* 비디오 분석에서, 좋은 Object detector를 가지고 있지만, 종종 객체를 놓치는 경우가 생김
● Noise 요소
- 가정 : 고속도로에서의 차량속도가 일정하다고, 예측하는 등속도 모델(Constant Velocity Model)
1. Process Noise : 자동차가 따를 것이라고 가정한 등속도 모델과 관련된 소음 (∵ 실제로는 일정한 속도가 아님)
2. Measurement Noise : Tracking의 기반이 되는 Detector의 결과(Output)가 부정확할 수 있음
● Kalman Filters 특징
- Kalman Filters는 재귀적으로 작동
- Real-time으로 동작됨
- 현재에 입력된 측정값(Measurement)과 이전에 계산된 상태(State), 이것의 Uncertainty Matrix만 가지고도 동작됨
* 추가적인 더 먼 과거정보는 필요하지 않음
- "이전 상태의 분포"와 "측정한 분포" 사이에서, 새로운 분포를 추론하는 것과 같음
● Kalman Filters 과정
1. 예측 단계 : 현재 상태 변수의 추정치를 생성(약간의 Noise를 포함시킴)
- produces estimates of the current state variables, along with their uncertainties.
2. 현재 상태에 대한 변수를 실제로 측정(Mesure)
- the outcome of the next measurement is observed
3. 보정 단계 :추정한 상태를 기반으로 예측한 상태와 실제 측정치의 차이를 반영하여, 현재의 상태를 업데이트함
가중 편균을 사용하여, 더 높은 확실성을 가진 추정치에 더 많은 가중치를 부여
- these estimates are updated using a weighted average,
with more weight being given to estimates with higher certainty
● Kalman Filters을 비디오 분석에서 사용할 수 있는 이유
- Kalman Filters은 가우시안을 따르는 Linear System에 잘 작동함
1. Tracking 시, 선형성을 거의 벗어나지 않음 ( 카메라가 바뀌지 않는 한, 물체는 순간이동 하지 않음)
2. Tracking 과정과 Noise는 가우시안 영역에 속함
마치며
- Object Tracking에 대해서, 낯설었기 때문에 정리하는 데 오래 걸렸습니다.
- Object Tracking을 위한 딥러닝을 다음 리뷰에서 이어서 다루겠습니다.
- Object Tracking과 관련된 딥러닝과 함께, Deep SORT 논문 리뷰를 진행하겠습니다
'발전중인 AI > 영상 분석(Video Analysis)' 카테고리의 다른 글
영상 분석(Video Analysis) 이란? - Tracking ② (0) | 2021.03.15 |
---|---|
영상 분석(Video Analysis) 이란? - 기본 (3) | 2021.02.17 |