given (u, v).
왜 =이 아니라 ~인가?
projection 과정에서 발생하는 loss 때문에 size 정보를 정확히 담지 못해 proportional하기 때문이다.
카메라가 2대 이상이라면, 그 카메라 2대로 동시에 어떤 대상을 찍었을 때, depth 정보를 추론해낼 수 있다.
Fundamental Ambiguity 때문이다.
x = f * X / Z = f * kX / kZ
, y = f * Y / Z = f * kY / kZ
위 식에 따르면, 거리가 멀어져도 가까워져도(k값에 변화가 있어도), z축 기준 동일선상에 있다면 픽셀상 동일한 point에 값이 찍힌다. → 수없이 많은 X(or Y)와 Z 세트가 있음
우리는 P, Q 위치에 있는 물체의 depth 정보를 알고 싶다. 왼쪽 카메라로 보면, P와 Q는 서로 다른 픽셀의 위치에 찍히지만, 오른쪽 카메라로 보면 둘은 동일선상에 있기 때문에 하나의 픽셀에 찍힌다.
하나의 카메라만으로 알 수 없었던 depth 정보를 하나의 카메라를 추가로 사용함으로써 얻을 수 있다.
Depth can be recovered with two images and triangulation
카메라 두 대의 거리를 알면, 세상에다 대고 삼각형을 그려서 카메라로부터 얼마나 떨어져 있는지를 알 수 있다.
두 카메라로 동시에 찍은 두 이미지를 비교해보았을 때, 가까이 있는 object의 움직임이 커보이고, 멀리 있는 object의 움직임은 작아보인다.
→ categorization의 문제가 아니라, inversely proportional한 값이다. 즉, 수치화할 수 있을 것이다. (→ 많이 움직이면 가까이, 조금 움직이면 멀리 있겠구나)
두 이미지는 dynamic하면 안되고, static한 이미지여야만 한다. → 동일한 카메라로 동시에 촬영한다.
- 어려운 점
- triangle을 그리려면, 카메라 사이의 거리를 정확하게 맞춰야 한다.
- 두 카메라에서 찍은 image coordinate의 물체가 동일한 것인지 알 수 있어야 함(어떤 것과 어떤 것이 matching되는지 알아야 함).
f1 = f2 = f, A1 = A2 = A
→ 두 카메라는 동일한 카메라라고 가정했으므로 focal length와 affine transformation은 동일함R = I
T = (T'x, 0, 0)
stereo setup을 아주 간단히만 해보자. rotation하지 말고, x방향(좌우)으로만 translation하자.
baseline
이라고 부르기도 한다. parallax distance
라고 한다.Z = f * T'x / d
given f, T'x, dNote: Depth and stereo disparity are inversely proportional
depth와 disparity는 "반비례" 관계이다!
correspondence matching을 수행할 때, 사용할 수 있는 measure로 similarity(유사도)와 SSD(Dissimilarity)가 있다.
자, 근데 이상한 점..
1) 오른쪽 이미지에서 보이지 않는 곳까지 disparity values에 값이 구해져있다.
2) 검은색은 일치하는 patch를 찾지 못했기 때문에 검은색이다.
patch를 떠서 corespondence matching을 할건데, object의 edge 부분은 배경 변화가 크기 때문에 8-neighbor의 값이 달라진다. 이 문제는 edge에서 많이 발생한다. 따라서 저 disparity values 이미저처럼 깔끔하게 나오는 게 말이 안된다!
x 방향으로만 translation했기 때문에, y값은 동일!
근데... 좌우 이동하면서 전체를 다 봐야 할까?
left image를 기준으로 right image는 왼쪽으로 물체가 이동한 것처럼 보이므로 patch의 왼쪽만 보면 된다.
또또. 왼쪽을 다 볼 필요 없다. 두 카메라 사이의 T'x(baseline) 범위까지만 확인해보면 correspondence point를 찾을 수 있다.
왼쪽 이미지와 같이 나오는 게 정상이다(edge에서 error가 많이 발생).
이는 근본적인 correspondence matching의 문제(patch를 가지고 8-neighbor 값을 비교하는)이다. 이 correspondence matching의 전제조건은 "시점에 따라 값의 변화가 있으면 안됨"이기 때문.
solution
disparity 이미지는 기준이 되는 카메라에 맞춰서 하나의 이미지가 생성된다. 위 이미지는 left image의 disparity image이다.
그래서 disparity image는 image(camera) 하나 당 한 개가 나온다.