- 쏘는 빛과 돌아오는 빛의 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이 된다)