
z를 알아낼 수 있음





x,y가 x+udt, y+vdt로 이동u, v: 속도; x, y축으로 얼마나 움직였는지에 대한 정도(Offset, Optical flow))
dt가 아주 짧은 시간이면 거의 그대로니까 아래 식 성립




x, y에서 현재 프레임의 점 x+u, y+v로 이동했음을 알 수 있게됨




- 이 방법은 아래 Lucas-Kanade와 다르게 움직임이 클 때 사용
- 움직임이 크다고 Aperture 크기를 키우면 Aperture에 배경과 움직이는 물체가 같이 있는 경우가 생겨 판단하기 어려워짐
- 그래서 이런 경우는 feature만 찾아서 그 점들만 tracking하는 것

위치-Temporal시간 Image brightness variations (Spatio-Temporal Derivatives)
Method compute motion example motion motion field how Feature-based Methods Matching methods Patch matching for large sparse(locally) min SSD or max Correlation Direct Methods Differential methods Lucas-Kanade for small dense(globally) Spatio-temporal derivative
Ω들의 평균적인 움직임을 찾아야 한다 -> 시그마 들어감
u, v를 구한다Local Patch Analysis
- feature detection의 Harris Mat과 똑같은 Lucas-Kanade의 Mat -> feature와 관련
- Aperture: 2x2행렬의 sumation 영역 (아래 그림의 검정 원 부분)
- 점이 이동했을 때, 이동 방향을 찾기 위해서는 모든 방향(
Ix,Iy)의 gradient가 0이 아니여야지 찾을 수 있다
- Textured area
- Aperture에 corner: 모든 방향으로 변화가 있어 점 주변의 gradient 분포를 알 수 있고 점이 이동했을 때 어디로 갔는지 분명히 찾을 수 있다
- u, v값에 따른 SSD를 계산했을 때, SSD(E)가 최소(하얀색)가 되는 유일한 점
u, v을 찾을 수 있다 (유일한 해)- Edge
- Aperture에 edge: 한쪽 방향으로 변화x, 한 축의 gradient=0 -> 행렬의 det=0으로 역행렬 존재x
- u, v값에 따른 SSD를 계산했을 때, SSD(E)가 최소가 되는 점
u, v들이 많다 (해가 무수히 많다)- Homogeneous area
- Aperture에 아무것도 없으면 모든 방향으로 변화x, gradient = 0 -> 0행렬
- u, v값에 따른 SSD를 계산했을 때, 의미가 없다 (해가 없다)!
-> patch 내에 gradient가 없어서 밝기 변화가 생겨도 어디서 온 점인지 알 수 없다
u, v를 계산
u, v를 구할 수 없다
u, v=0이 아닌데 0으로 나옴u, v 계산u, v만큼 움직임 (픽셀마다 다른 u, v를 가짐) -> 이미지를 Warping한다u, v가 클 때는 iterative하게 풀면 답을 구할 수 있다Iterative Estimation
- f1의 점이 어디로 가야 f2에 맞는가
- f1을
x0에서 미분하고, 미분한 것과 f2의 교점의 x좌표와x0좌표의 간격인u를 찾고,u만큼 f1을 이동- f함수가 직선이 아니여서(linearX) 알맞게 찾아지지 않음 (u, v가 매우 작으면 local하게 linear했음) -> 똑같은 과정 반복
Issuses
- 시간에 따라 움직이기 때문에 픽셀별로 다른 속도
u, v를 가지고, 각 픽셀별로 다른 속도로 이미지를 warping하기 어려움
(일관성있게 움직이던 이미지 transform으로 한 forward, inverse warping과 다름)- 각 Iterate마다 모든 픽셀의 gradient를 계산해야함
- low-pass filter를 하면 안정적으로 찾을 수 있음
Ⅰ. Aperture
- 특정 점 주변 범위
Ω를 넓혀서 Aperture안에 Corner가 들어오도록 하기 (=이미지 크기 줄이기)- feature detection 할 때처럼, multi scale을 사용해서 이미지를 줄여가며 같은 크기의 Aperture에 corner가 들어가도록 함
- 작은 크기의 이미지 입장에서는 Aperture가 커지는 효과 -> corner가 들어올 확률 커짐
Ⅱ. Large u, v
- Pyramid로 이미지의 크기를 줄이면 u, v도 충분히 작아짐
Ⅲ. Aliasing
- 작은 크기의 이미지 입장에서 커진 Aperture로 반복되는 패턴이 하나의 Aperture에 들어가게 됨
- 전체적으로 관찰해 같은 패턴이 이동한 것임을 알아냄
u, v를 찾음u, v(motion field)를 사용해 Optical flow에 맞게 warping -> 이상적으로 그 결과Jw가 다음 프레임 이미지I와 같아야한다 (같다면 다음 단계 이미지 갈 필요 없이 끝)Jw와 I의 차이Δa를 구한다 (이 차이만큼 더 있으면 같아졌을 테니까) -> Refine(다듬다)Δa를 더하여 warping한다a_out이 예측된 motion 

Affine



Err가 최소화되는 미지수 6개 구하기
Quadratic(2차식)

Projective

x,y의 patch와 x+u, y+v의 patch를 비교해서 SSD가 가장 작거나 Correlation이 가장 큰 x, y 점을 찾고, 그 때의 u, v motion vector로 glabal motion model 만듦
- 이제 이미지가 전체적으로 얼마나 움직였는지 파악해서 global motion model로 warping하고 ,
- 그 후에 detail한 것을 찾아 motion field로 warping
(근데 Patch matching은 두 과정에서 다 쓰일 수 있는듯 ?)
find maxfind mina 변화) 값이 달라짐a가 변해도 값이 거의 변하지 않는다 (전체적인 밝기가 달라져도 linear하게 같은 경향성을 가짐)
- normalized correlation
- correlation은 밝은 곳에서 너무 큰 값이 나오고, 어두운 곳에서는 작은 값이 나온다.
- 밝기값에 영향을 받지 않도록 (어두운 곳에서도 비슷한 경향성이 있으면 큰 값이 나왔으면 좋겠다), 정규화를 한 correlation을 사용하기도 한다




s(어디까지 inlier로 볼 것인가)가 추가된 식을 최소화