Optical Flow란? 연속된 프레임에서 움직임을 읽는 방법
영상의 연속된 두 프레임 사이 픽셀 이동을 벡터로 표현하는 Optical Flow의 원리와, Sparse·Dense 방식의 차이를 정리한다.

Optical Flow(광학 흐름)는 영상에서 연속된 두 프레임 사이에 카메라나 물체의 움직임으로 발생하는 픽셀의 겉보기 이동 패턴을, 각 지점마다 이동 방향과 거리를 나타내는 2차원 벡터로 표현한 것이다. 정지 이미지 한 장이 아니라 “이전 프레임 대비 지금 무엇이 어디로 움직였는가”를 다룬다는 점에서, Object Detection·Segmentation과는 다른 축의 문제를 푼다.
Sparse 방식과 Dense 방식
Optical Flow는 프레임 안의 모든 픽셀을 계산할지, 일부만 계산할지에 따라 두 가지로 나뉜다.
| 방식 | 계산 대상 | 특징 |
|---|---|---|
| Sparse Optical Flow | 코너·모서리 같은 특징적인 픽셀 일부만 | 연산량이 적어 실시간 처리에 적합, 추적 대상 외 영역의 움직임은 알 수 없음 |
| Dense Optical Flow | 프레임 전체의 모든 픽셀 | 픽셀 하나하나의 움직임까지 정밀하게 파악 가능, 연산량이 많아 실시간성이 떨어질 수 있음 |
Lucas-Kanade 방법은 대표적인 Sparse Optical Flow 알고리즘으로, 인접한 픽셀들이 비슷한 방향으로 움직인다는 가정(local motion constancy)을 바탕으로 특징점의 이동을 추정한다. 반대로 Farneback 알고리즘 같은 방식은 프레임 전체에 대해 Dense Optical Flow를 계산한다.
Tracking과의 관계
Optical Flow는 물체 추적(Tracking)의 기초 기술로도 쓰인다. 한 번 찾아낸 물체의 위치를, 매 프레임마다 다시 Object Detection을 수행하지 않고도 Optical Flow로 다음 프레임에서의 위치를 예측해 따라갈 수 있다. 다만 오차가 프레임을 거듭할수록 누적될 수 있어, 실무에서는 일정 주기로 Detection을 다시 수행해 위치를 보정하는 방식과 함께 쓰는 경우가 많다.
어디에 쓰이나
- 영상 압축(프레임 간 중복 정보 제거)
- 드론·로봇의 자체 움직임(visual odometry) 추정
- 스포츠 영상에서 선수·공의 움직임 분석
- 손떨림 보정(video stabilization)
한계와 주의할 점
- Optical Flow는 “밝기 항상성 가정(brightness constancy assumption)” — 같은 지점의 밝기가 프레임 간에 크게 변하지 않는다는 전제 — 에 의존하므로, 조명이 급격히 바뀌는 장면에서는 오차가 커질 수 있다.
- 반사되는 표면이나 텍스처가 거의 없는 균일한 영역(예: 흰 벽)에서는 이동을 정확히 추정하기 어렵다.
- 카메라 자체가 움직이는 경우, 카메라 움직임으로 인한 흐름과 실제 물체의 움직임을 구분하는 추가 처리가 필요하다.
결론
Optical Flow는 연속된 프레임 사이 픽셀의 겉보기 이동을 벡터로 표현해 “무엇이 어디로 움직였는가”에 답하는 기법이다. Sparse 방식은 빠르고 가볍게, Dense 방식은 정밀하게 움직임을 파악하며, 물체 추적·영상 압축·자율 이동체의 움직임 추정 등 폭넓게 쓰인다.