[CV] Optical Flow: Horn-Schunck Method (1981)

2024. 11. 17. 15:17·Programming/DIP
728x90
728x90

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)

 

[CV] Optical Flow: Lucas Kanade Method (LK method, 1981)

다음의 자료는 Shree Nayar 교수님의 Youtube 강의자료를 정리함Lucas-Kanade Method | Optical FlowAssumptionFor each pixel, assume Motion Field, and hence Optical Flow $(u,v)$, is constant within a small neighborhood (=window, kernel) $\mathb

dsaint31.tistory.com

 


 

'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
'Programming/DIP' 카테고리의 다른 글
  • [DIP] K-Means Tree: Nearest Neighbor Search
  • [CV] Optical Flow: Lucas Kanade Method (LK method, 1981)
  • [CV] Least-Median of Squares Estimation (LMedS)
  • [DIP] Karhunen–Loève Transform (KLT)
dsaint31x
dsaint31x
    반응형
    250x250
  • dsaint31x
    Dsaint31's blog
    dsaint31x
  • 전체
    오늘
    어제
    • 분류 전체보기 (739)
      • Private Life (13)
      • Programming (56)
        • DIP (104)
        • ML (26)
      • Computer (119)
        • CE (53)
        • ETC (33)
        • CUDA (3)
        • Blog, Markdown, Latex (4)
        • Linux (9)
      • ... (350)
        • Signals and Systems (103)
        • Math (171)
        • Linear Algebra (33)
        • Physics (42)
        • 인성세미나 (1)
      • 정리필요. (54)
        • 의료기기의 이해 (6)
        • PET, MRI and so on. (1)
        • PET Study 2009 (1)
        • 방사선 장해방호 (4)
        • 방사선 생물학 (3)
        • 방사선 계측 (9)
        • 기타 방사능관련 (3)
        • 고시 (9)
        • 정리 (18)
      • RI (0)
      • 원자력,방사능 관련법 (2)
  • 블로그 메뉴

    • Math
    • Programming
    • SS
    • DIP
  • 링크

    • Convex Optimization For All
  • 공지사항

    • Test
    • PET Study 2009
    • 기타 방사능관련.
  • 인기 글

  • 태그

    math
    인허가제도
    signal_and_system
    Convolution
    Vector
    opencv
    numpy
    검사
    Probability
    Term
    linear algebra
    fourier transform
    SS
    SIGNAL
    random
    Optimization
    Programming
    function
    signals_and_systems
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
dsaint31x
[CV] Optical Flow: Horn-Schunck Method (1981)
상단으로

티스토리툴바