Gaegul's devlog
Optical Flow 개념 및 알고리즘 종류 본문
Optical Flow (광학흐름) 이란?
영상 내 물체의 움직임 패턴을 의미하며, 이전 프레임 t 와 다음 프레임 t +1 (t') 간 픽셀이 이동한 방향과 거리이다. 아래의 그림같이 두 연속적인 이미지(프레임)에서의 모션을 추정하는 것이다.
Optical Flow는 비디오에서 주로 쓰이며, 물체의 움직임을 탐지하는 것과 관련된 motion segmentation 까지 많은 분야 까지 폭넓게 적용될 수 있다.
가장 대표적인 알고리즘 2가지
1. Lucas-Kanade
Lucas-Kanade 알고리즘은 영상 내 이미지 사이의 시간적, 공간적 연속성과 이웃한 픽셀들의 움직임은 함께 간다는 것을 가정하고 만들어졌다. 연속된 이미지에서 우리가 관측하고 있는 포인트 p의 변위를 알고 싶다. 이 때, 연속성을 이용하여 delta t만큼의 시간이 지날 동안 p 만큼의 변위가 있었다고 가정할 수 있고, 이미지의 함수 f를 풀어 변위를 구할 수 있다.
optical flow equation이 한 방정식에 대해 미지수가 2개이므로 풀 수 없다는 것을 고려하여 같은 motion vector를 가지는 여러 픽셀들을 함께 고려하여 motion vector(u,v)를 구하는 방법이다.
Lucas-Kanade 알고리즘의 특징은 다음과 같다.
1) method of differences
2) 'constant' flow : 작은 패치 위로 흐르는 flow은 동일해야 한다는 가정을 따른다.
예를 들면, 5x5 윈도우를 생성하여 그 윈도우 안에 들어가는 이웃 픽셀에 대해서는 같은 방향으로 움직일 것이라고 가정한다.
𝚫p를 이루는 , 를 구하기 위해 25개의 방정식을 수립할 수 있다. Least squares 방식으로 변위 𝚫p를 구한다.
3) local method : flow는 locally하게 smooth해야 한다.
2. Horn-Schunck
Horn-Schunck 알고리즘의 특징은 다음과 같다.
1) brightness constancy
다음 equation을 유도하면 다음과 같다.
이 솔루션은 단순한 constraint으로 특별하게 결정될 수 없다. 모든 pixel을 위해 bright constancy 를 최소로 하는 u,v를 찾아야한다.
2) small motion
3) 'smooth' flow
flow는 pixel에서 pixel(근접하는 pixel)로 부터 smooth해야 한다. 세계의 대부분의 물체는 단단하거나 탄력적으로 변형되어 일관성 있게 함께 움직인다. 그러므로 optical flow field가 smooth 하길 기대한다.
smooth한 flow field를 구하기 위해 ui,j에서 ui+1,j로 이동할때 최소 제곱이 되는 u를 찾아야 한다.
4) global method : flow는 global하게 smooth해야 한다.
결론적으로, Horn-Schunck 알고리즘은 다음과 같은 목적 함수를 갖게 되는데 smoothness Es(i,j)와 brightness constancy Ed(i,j)를 둘 다 고려하는 알고리즘이다.
이상으로 optical flow 개념과 대표적인 2가지 알고리즘에 대해 간략히 알아보았다. 요즘 프레임간의 움직임 정보를 주기 위해 optical flow말고도 다양한 네트워크와 방법에 관한 연구가 나오고 있다. optical flow가 모션을 잘 캡쳐할 수 있다고 하지만 flow를 계산하는데 시간이 오래 걸린다는 단점도 분명 존재한다. 앞으로도, 비디오를 조금 더 효율적이고 우수한 성능 측면에서 다룰 수 있는 연구가 많이 나올 것으로 생각된다.
'Artificial Intelligence > Computer Vision' 카테고리의 다른 글
pretrained model layer 수정하기 (1) | 2021.07.28 |
---|---|
[의료 이미지] CT image 이해하기 (feat. Dicom 파일) (0) | 2021.06.22 |