광학 흐름
광학 흐름(Optical Flow)은 영상 내에서 픽셀의 움직임을 나타내는 벡터장이다. 연속적인 영상 프레임들 사이의 픽셀 강도 변화를 분석하여 각 픽셀의 이동 방향과 속도를 추정하는 기술이다. 쉽게 말해, 비디오나 이미지 시퀀스에서 물체의 움직임을 추적하는 방법이라고 할 수 있다.
정의:
광학 흐름은 시간에 따른 픽셀 강도의 변화를 공간적 변화와 연결시켜 계산한다. 이를 위해 일반적으로 '밝기 일관성 가정(Brightness Constancy Assumption)'이라는 가정이 사용된다. 이 가정은 특정 픽셀의 밝기가 시간에 따라 일정하게 유지된다는 것을 의미한다. 물론, 조명 변화나 물체의 표면 변화 등으로 인해 이 가정이 항상 만족되는 것은 아니지만, 광학 흐름 계산의 기본적인 가정으로 사용된다.
계산 방법:
광학 흐름을 계산하는 다양한 알고리즘이 존재한다. 대표적인 알고리즘으로는 Lucas-Kanade 방법, Horn-Schunck 방법, Farneback 방법 등이 있다. 이러한 알고리즘들은 픽셀 강도의 시간적 및 공간적 변화를 이용하여 픽셀의 움직임을 추정한다. 계산 과정은 일반적으로 편미분 방정식을 풀거나 최적화 문제를 해결하는 것을 포함한다. 계산의 복잡도와 정확도는 알고리즘의 종류와 사용되는 매개변수에 따라 달라진다.
응용 분야:
광학 흐름은 다양한 분야에서 활용된다. 대표적인 응용 분야는 다음과 같다.
- 자율 주행: 주변 환경의 움직임을 분석하여 자율 주행 자동차의 경로 계획 및 장애물 감지에 활용된다.
- 로봇 비전: 로봇이 주변 환경을 이해하고 상호 작용하는 데 필요한 정보를 제공한다.
- 동작 인식: 비디오에서 사람의 움직임을 분석하여 동작을 인식하고 분류한다.
- 비디오 압축: 영상 내에서 실제로 움직이는 부분만을 압축하여 저장 공간을 절약한다.
- 날씨 예보: 구름의 움직임을 분석하여 기상 예보의 정확도를 높인다.
한계:
광학 흐름은 몇 가지 한계점을 가지고 있다. 큰 움직임, 텍스처가 부족한 영역, 조명 변화 등은 광학 흐름 계산의 정확도를 떨어뜨릴 수 있다. 또한 계산량이 많아 실시간 처리가 어려울 수 있다.