Search
Duplicate

AI/ Optical Flow

Optical Flow

Optical flow란 이미지의 시퀀스에 대해 카메라(관찰자)와 장면(객체, surface, edge) 사이의 상대 움직임으로 인한 각 픽셀의 apparent 움직임을 설명하는 2d vector field로 정의된다. 카메라 또는 장면 또는 그 둘 모두 움직일 수 있다.
Optical flow는 2d 이미지 시퀀스 사이의 픽셀 이동에 대한 것이므로, 3d 세계의 움직임을 2d로 나타내는 Motion field와는 차이가 있다.
아래 그림은 반시계 방향으로 회전하는 파리의 예시이다. 장면이 정적이더라도 apparent 움직임의 2d optical flow는 원점을 중심으로 반대 방향(시계 방향)의 회전을 나타낸다.
optical flow는 2d 픽셀 사이의 차이에 대한 것이지만 motion field는 실제 3d 세계의 움직임을 반영하는 것임에 유의하라. 따라서 고정된 조명 소스를 갖고 균일하게 회전하는 구에 대해 픽셀 차이가 없으므로 zero optical flow지만 움직임이 존재하므로 non-zero motion field를 갖는다. 반면 고정된 구에 조명이 그 주위를 움직이는 경우 픽셀 차이가 존재하므로 non-zero optical flow이지만 움직임이 없으므로 zero motion field이다.
video를 시간에 걸쳐 포착된 프레임의 정렬된 시퀀스로 정의할 수 있다. 공간과 시간 모두의 함수인 I(x,y,t)I(x, y, t)는 시간 tt에서 프레임에서 픽셀 (x,y)(x, y)의 강도를 나타낸다. dense optical flow에서 각 시간 tt와 각 픽셀 (x,y)(x, y)에 대해 x-축과 y-축 모두에서 픽셀의 apparent 속도 u(x,y,t)=ΔxΔtu(x, y, t) = {\Delta x \over \Delta t}v(x,y,t)=ΔyΔtv(x, y, t) = {\Delta y \over \Delta t}를 각각 계산하기를 원한다. 각 픽셀에 대한 optical flow vector는 u=[u,v]\bold{u} = [u, v]^\top로 주어진다.
optical flow를 계산하기 위한 방법이 여러가지 있지만 Lucas-Kanade 방법을 이용한 계산 방법에 대해서는 Computer Vision/ 9. Optical and Scene Flow의 2 부분 참조.

참고