4-1/컴퓨터비전개론

15주차-Optical Flow

Donghun Kang 2025. 6. 16. 14:56
  • Time-of-flight depth Sensor

- 쏘는 빛과 돌아오는 빛의 Phase가 얼마나 달라졌는지를 측정
=> Phase Shift를 가지고 갔다온 거리를 측정 (빛의 파장 이용)

  • Pulse Modulation

- Source에서 purse를 보낸다.
- 빛이 Scene에 반사되어 돌아온다.
- 돌아오는 시간을 계산
- Depth를 추정 
=> 실제로 구현이 어렵다.

  • Continuos Modulation

=> 실질적으론 이 방법을 사용한다.

 

# Phase Measurement by Correlation

 

* Cross-Correlation

 

# Computing Depth from Phase

 


  • Motion Field
- 이미지 상에 움직인 만큼의 속도
- 3D 공간에서 물체가 실제 이동하는 속도 벡터 필드

 

  • Optical Flow
- pixel의 밝기 값이 그 다음 장에서 어디로 갔는지를 나타내주는 화살표
- 이미지 내에서 밝기 변화 패턴이 시간에 따라 이동하는 현상을 2D 벡터 필드로 표현 
=> 이상적으로는 Optical Flow = Motion Field

 

Q) 그렇다면 Optical Flow와 Motion Field가 같지 않은 경우는 무엇일까?

A)

 


  • Optical Flow Constraint Equation

=> pixel 값마다 optical flow 값이 2개씩 존재한다. (u,v)

[Assumption]
(Assumption1)


(Assumption2)

- 최종적으로 위의 식을 정리하여 아래와 같이 Constraint eq을 얻는다.

 

# Geometrix Interpretation

 

Q) 위 문제를 푸는 방법은?

A) Lucas-Kanade Solution!

 


 

  • Lucas-Kanade Solution
- patch를 짤라서 patch 안에 있는 pixel들은 optical flow가 같다고 가정하자
=> window 안에 있는 모든 pixel들은 다 똑같은 optical flow를 가진다.
(똑같은 constraint equation을 가진다.) => 문제를 풀 수 있다.


 

# Optical flow가 잘 구해지려면?

  • Smooth Regions (Bad)

- Smmoth한 Regions을 가져다가 λ1, 2를 구하면 둘 다 굉장히 작은 값으로 나온다.
=> Optical flow를 구해도 정확한 값이 나오지 않는다.

  • Edge (Bad)
EX) 집과 하늘을 같은 optical flow로 본다.

- Edge에서도 Optical flow가 정확히 나오지 않는다.

  • Textured Regions (Good)

- λ1,2가 어느 정도 큰 값으로 나온다 / Edge가 아니면서 어느 정도 패턴이 있다.
=> Optical flow 잘 나온다. 

 

  • Large Motion (Bad)

- Motion이 크면 잘 나오지 않는다.
=> Resolution 진행

 

  • Coarse-to-Fine Estimation

- Large Motion일 경우 사용
=> Resolution(해상도)를 줄이자!
(Large Motion이 Slow Motion이 된다)

[Algorithm]

 

  • Template Matching

- patch 끼리 비교하자
- 더 느리고, miss match가 나오는 경우가 있다.

 

'4-1 > 컴퓨터비전개론' 카테고리의 다른 글

14주차-Depth from Defocus  (0) 2025.06.14
13주차-Photometric Stereo  (0) 2025.06.11
12주차-Light and Reflectance  (0) 2025.06.11
11주차-Structure from Motion  (0) 2025.06.10
10주차-Triangulation  (0) 2025.06.09