Horn-Schunck(혼 슁크) 방법은
- Optical Flow를 구하는 기법으로
- Global Optimization Method임.
Optical flow는
연속된 영상프레임 사이에서
Global Optimization 기반으로
물체의 이동(motion vector or velocity)을 추출하는 기법임.
Original Ref. : https://www.researchgate.net/publication/222450615_Determining_Optical_Flow
참고:
2004년 제안된 Brox Algorithm은
Horn-Schunck Method가 조명이 변화하는 환경이나 Texture가 약한 환경에서 잘 동작하지 않는 단점을
개선한 알고리즘으로 $E_\text{data}$와 $E_\text{smooth}$로 구성된 energy function 을 최소화함.
https://link.springer.com/chapter/10.1007/978-3-540-24673-2_3
1. Horn-Schunck 방법의 기본 개념
- Horn-Schunck 방법은 영상 전체에서 optical flow field 를 추정.
- 이 방법은 global smoothness constraint를 적용하여, 모든 픽셀의 움직임 벡터가 서로 매끄럽게 연결된다고 가정.
- 즉, 영상 전체를 고려하여 optical flow를 계산하므로, local한 정보에만 의존하지 않고, 전체적인 일관성을 유지.
1-1. Optical Flow 기본 방정식
Horn-Schunck 방법은 다음의 brightness constancy assumption을 기반으로 함:
brightness constancy assumption
밝기 항상성 가정
$$
u\frac{\partial I(x,y,t)}{\partial x} + v\frac{\partial I(x,y,t)}{\partial y} + \frac{\partial I(x,y,t)}{\partial t} = 0 \\ u\nabla_x I(x,y,t) +v\nabla_y I(x,y,t) + \nabla_t I(x,y,t) = 0 \\ uI_x + vI_y + I_t = 0
$$
여기서:
- $I_x, I_y$ : 공간 축 방향의 영상 기울기(gradient) ◁공간에서의 1차미분
- $I_t$: 시간에 따른 영상 밝기 변화 ◁시간에서의 1차미분
- $(u, v)$ : 각 방향의 optical flow (속도 벡터) ◁구하고자 하는 motion vector
2. Global Smoothness Constraint (글로벌 매끄러움 제약)
Horn-Schunck 방법은 에너지 최소화 접근법(energy minimization approach) 을 사용하여 optical flow 구함.
- 이 접근법의 $E_\text{total}$는
- 전체 에너지(total energy) 또는 비용 함수(cost function)로서
- 아래의 식으로 표현되며, 이를 최소화함으로써 최적의 optical flow를 추정함.
- Horn-Schunck 방법의 핵심은
- 앞서 다룬 brightness constancy assumption에
- smoothness term을 추가하여,
- 영상 전체에서 흐름 필드가 부드럽게 변하도록 제약을 가하는 것임.
- 이 제약 조건은 인접한 픽셀들의 optical flow가 급격하게 변화하지 않도록 해줌.
$$
E_{\text{total}} = \int_\Omega \left( (I_x u + I_y v + I_t)^2 + \alpha^2 \left( |\nabla u|^2 + |\nabla v|^2 \right) \right) dx dy
$$
where
- 첫 번째 항 : 광도 불변 조건 (brightness constancy constraint)을 최소화.
- 두 번째 항 : 매끄러움(smoothness) 제약 조건으로, 인접한 픽셀 간의 flow 변화량을 최소화.
- $\alpha$ : 가중치 파라미터로, 광도 불변 조건과 매끄러움 제약 간의 균형을 조정.
- 적분은 image 전체영역 $\Omega$을 범위로 하여 이루어짐: global method
- $\Omega$는 optical flow를 계산하고자 하는 영역(이미지 전체)를 정의.
- 이미지의 x축과 y축의 각 pixel의 수가 각각 $W, H$이라면 다음으로 정의됨
- $\Omega = \{(x,y)|x \in [0,W], y \in [0,H]\}$
2-1. global smoothness constraint 의미
- 영상 전체에서 optical flow이 부드럽게 연결되도록 강제
- 결과적으로 global한 특성을 가지는 algorithm이 됨.
- 즉, 특정 지역(local)에서만 움직임을 계산하는 것이 아니라, 전체 영상의 흐름을 일관되게 추정하는 데 중점.
3. Local Method와의 비교
Horn-Schunck 방법과 대조적으로, Lucas-Kanade 방법은 local method로 분류됨.
- Lucas-Kanade 방법은 작은 영역(예: 3x3, 5x5 윈도우 등)에서 각 픽셀의 optical flow를 독립적으로 추정.
- 이 방법은 지역적으로 정의된 윈도우 내의 정보만 사용하여 움직임을 계산
- 따라서, 전체 영상에서 일관된 흐름을 보장하지는 않음.
4. 요약 비교
Horn-Schunck
- Global Optimization 이용
- 영상 전체를 고려하여 매끄러운 flow field 추정
Lucas-Kanade
- Local Optimization 이용.
- 지역 윈도우에서 독립적으로 optical flow 추정
2024.11.17 - [Programming/DIP] - [CV] Optical Flow: Lucas Kanade Method (LK method, 1981)
'Programming > DIP' 카테고리의 다른 글
[DIP] K-Means Tree: Nearest Neighbor Search (0) | 2024.11.25 |
---|---|
[CV] Optical Flow: Lucas Kanade Method (LK method, 1981) (2) | 2024.11.17 |
[CV] Least-Median of Squares Estimation (LMedS) (0) | 2024.11.16 |
[DIP] Karhunen–Loève Transform (KLT) (1) | 2024.10.28 |
[CV] 간단한 Camera의 역사: imaging 의 역사? (5) | 2024.10.09 |