CS231A Lecture 6 review
Stereo Systems
- Epipolar geometry, epipolar constraints, essential matrix, fundamental matrix등을 배웠음
- 평행한 경우는? essential matrix가 단순해지고 y값이 같아지고(epipolar constraint) epipolar line들이 수평해짐
- 지난 시간에 다룬 것: 한 이미지 점이 있을 때 다른 이미지 점의 위치 추정
- 이번 시간에 할 것: 두 이미지 점이 있을 때 3차원 점 정보 복구
Rectification
- 두 이미지를 평행하게 만들자
- 평행한 이미지들이 좋은 이유는?
- traingulation이 쉬워짐
- correspondence problem이 쉬워짐
Point traingulation
- 각 이미지 점과 카메라, 회전 행렬을 다 아는 상황에서 두 카메라 광선의 교점을 구하면 될 뿐인 문제
- 그러나 현실적으로는 노이즈가 많아 정확한 계산이 안된다
-
Rectified 된 경우:
$P=(p_u, p_v, 1)$, $P’=(p’_u, p_v, 1)$이라고 했을때, Disparity는 $p_u-p’_u$로 정의되며 실제 3차원 점의 깊이 $z$와 반비례한다. 따라서 깊이 추정이 쉬움
- 이를 이용해 disparity map을 계산하여 깊이를 표현하기도 한다.
선형 삼각화 방법
- 자기자신과의 외적이 0이란 것을 이용해서, 점 $p$에 대해서 3개의 식을 유도할 수 있다. 다른 점도 마찬가지.
- 이 둘을 합쳐서 $AP=0$이란 식을 만들 수 있으며, SVD로 답을 구할 수 있다.
- 이 방법의 장점은 3개 이상의 이미지에 대해서도 적용할 수 있다는 것
- 그러나 이 방법은 projective transform에 대해 invariant하지 않아서, 최적해로 쳐주지는 않는다.
비선형 삼각화 방법
- 현실 삼각화 문제는 다음 최적화 문제 풀이로 변환된다.
-
\( \min_{\hat{P}} ||M\hat{P}-p||^2+||M’\hat{P}-p’||^2 \)
- 이는 $\hat{P}$의 reprojection error를 두 사진에서 동시에 최적화하는 최소제곱해를 구하는 것이다.
- 3차원 점의 Reprojection error란 그 점이 이미지 평면에 투사된 위치와 이미지 평면에 실제로 관측된 점 사이의 거리이다. 3개 이상의 점에 대해서도 일반화가 가능하다.
- 그러나 $M$이 projective transformation이므로 이 식은 비선형이다.
- 현실에선 여러 복잡하고 정확한 방법이 있지만, 이 수업에서는 가우스-뉴턴 방법만 다룬다.
- 3차원 점에 대해 그럴듯한 추정치가 있다고 가정하자.(선형 방법으로 구할 수 있다.)
- 아이디어는 이 점을 조금씩 업데이트하는 것이다.
- 에러 함수 $e$에 대해, $e(\hat{P}+\delta_P)\approx e(\hat{P})+\frac{\partial e}{\partial p}\delta_P$로 선형근사할 수 있다.
- 이렇게 바꾸면 비선형 최적화 문제가 선형 최적화 문제로 바뀌므로, 해를 직접 구할 수 있다.
- 수렴할 때까지 반복
Correspondence problem
- 대응 문제란? 3차원 점이 주어졌을 때, 이미지 상에서의 각 점의 위치를 서로 추정하는 것. binocular fusion problem이라고도 불린다.
- rectified된 경우는 당연히 쉽다
- 여러 방법이 있지만, correlation method에 대해 알아보자
correlation method
- 이미지가 rectified 되어 있다고 가정하자. 그럼 y좌표는 같으니 x좌표만 알면 된다.
- 점의 좌표를 픽셀값으로 추정하면 안될까? 왜?
- Window-based correlation
- 점 $p$ 주변에 창문 $W$를 잡는다. $w$는 이 창문의 flatten된 벡터
- 이미지 2에서 창문을 계속 평행이동 시키면서, $w’$과 $w$의 내적값이 최대가 되는 x좌표를 찾는다. 문제가 뭐지?
- 둘 다 이미지 밝기와 노출도에 영향을 받아 버린다.
- 따라서 다음과 같은 normalized cross correlation을 사용한다.
\( \underset{u}{\text{argmax}}\frac{(w-\bar{w})^\top(w’(u)-\bar{w}’)}{||w-\bar{w}||||w’(u)-\bar{w}’||} \)
where $\bar{w}, \bar{w}’(u)$ are window mean value at $\bar{u}$ and $u$.
- 창문이 작으면 디테일이 살지만 노이즈가 심해지고, 크면 disparity map이 부드러워지고 노이즈에 강해진다.
Correlation method의 문제점
- Fore shortening effect, occlusions 같은 문제가 있다.
- 이런 효과를 줄이기 위해 $\frac{B}{z}$ 비율을 줄이는 것이 좋다.
- 그러나 측정 에러가 줄어들면 깊이 추정 에러가 늘어나는 문제가 있다.
- 또다른 문제로 homogeneous region이 있다. 색이 비슷한 다른 영역과 헷갈려버리는 경우
- 또또다른 문제로 반복패턴이 나타나는 사진이 있다.
- 따라서 이런 종합적인 여러 문제들 때문에, correspondence problem은 어려우며, 비국소적인 조건을 통해 해결하는 것이 좋다.
- 유일성, 순서, 매끄러움 등
Multi-view geometry
The SFM problem
- m개의 이미지에서 n개의 3차원 고정 포인트를 관측했을 때, $\mathbf{x}_{ij}=\mathbf{M}_i \mathbf{X}_j$
- 여기서 다음을 추정하라
- $m$ projection matrices $\mathbf{M}_i$→motion
- $n$ 3d points $\mathbf{X}_j$→structure
Affine SFM
- 더 단순한 상황을 생각해볼 수 있다. 카메라들이 affine하다고 가정하는 것
- 그냥 perspective model에서는 알 수 있는 것이 없지만, affine 가정에서는 $\mathbf{x}=[\mathbf{m}_1\mathbf{X}, \mathbf{m}_2\mathbf{X}, 1]^\top$ 이므로,
\(\mathbf{x}^E=(\mathbf{m}_1\mathbf{X}, \mathbf{m}_2\mathbf{X})^\top=\begin{bmatrix}\mathbf{A}&\mathbf{b}\end{bmatrix}\mathbf{X}=\mathbf{A}\mathbf{X}^E+ \mathbf{b}\)
- 이 때 카메라 $i$와 $j$번째 점에 대해 쓰면, $\mathbf{x}_{ij}=\mathbf{A}_i\mathbf{X}_j+\mathbf{b}_i$이고, 각각 2x1, 2x3, 3x1, 2x1 벡터임에 유의하여야 한다.
- $m\times n$개의 관측값 $\mathbf{x}_{ij}$에 대해 각 행렬와 3차원 점의 위치를 추정하는 것이 affine SFM의 목적이다.