서브픽셀 정밀도 (Sub-pixel Accuracy)

스테레오 매칭에서 정합의 정확도를 높이기 위한 첫 번째 방법은 서브픽셀 정밀도를 도입하는 것이다. 픽셀 단위에서만 정합을 수행하는 경우, 깊이 맵에 노이즈가 많이 포함될 수 있다. 이를 개선하기 위해 픽셀 간의 중간 값을 계산하는 방법이 서브픽셀 정밀도이다. 일반적으로 서브픽셀 정밀도는 정합된 두 점의 불일치(disparity) 값을 보간(interpolation)하여 얻는다. 이때 자주 사용되는 보간 방식은 다음과 같다.

이차 보간법 (Quadratic Interpolation)

이차 보간법은 주어진 픽셀 값과 그 주변 픽셀 값을 이용해 곡선을 만들고, 그 곡선에서 최소값이나 최대값을 찾아 서브픽셀 불일치 값을 계산하는 방법이다. 예를 들어, 불일치 함수 D(x)의 이차 보간을 통해 서브픽셀 정밀도를 향상시킬 수 있다.

이차 보간 함수는 다음과 같이 나타낼 수 있다:

D(x) = ax^2 + bx + c

여기서 a, b, c는 보간된 함수의 계수이다. 서브픽셀 정밀도에서 불일치 값은 다음의 식으로 계산된다:

x_{\text{subpixel}} = -\frac{b}{2a}

이 계산을 통해 불일치 값의 정밀도를 픽셀 수준 이상으로 향상시킬 수 있다.

다중 해상도 접근법 (Multi-resolution Approach)

다중 해상도 접근법은 정합 정확도를 높이기 위해 이미지의 해상도를 단계적으로 변화시키며 정합을 수행하는 방법이다. 이를 통해 고해상도에서 생길 수 있는 정합의 오류를 저해상도에서 보정할 수 있다. 저해상도에서 정합을 먼저 수행한 후, 점차 해상도를 높여가며 세밀한 정합을 수행하는 방식이다.

라플라시안 피라미드 (Laplacian Pyramid)

다중 해상도 접근법의 대표적인 기법 중 하나가 라플라시안 피라미드를 사용하는 것이다. 이미지의 라플라시안 피라미드는 여러 단계의 저해상도 이미지를 생성하며, 각 단계에서 정합을 수행하고 그 결과를 상위 해상도로 전파한다.

라플라시안 피라미드는 다음과 같은 방식으로 구성된다:

L_i = G_i - \text{Expand}(G_{i+1})

여기서 G_i는 해상도 i의 이미지, L_i는 라플라시안 피라미드의 레벨 i의 이미지이다. 각 레벨에서 정합된 결과는 상위 해상도 레벨로 전파되어 보다 정밀한 정합을 가능하게 한다.

비용 함수 최적화 (Cost Function Optimization)

정합의 정확도를 높이는 또 다른 방법은 비용 함수를 최적화하는 것이다. 스테레오 매칭에서 비용 함수는 두 이미지 간의 차이를 정량적으로 표현하며, 이를 최소화하는 방향으로 정합을 수행한다. 비용 함수를 더 정교하게 정의하고 최적화하는 방법으로 정합 성능을 크게 향상시킬 수 있다.

절대 차이 (Absolute Difference)

가장 단순한 비용 함수는 두 픽셀 간의 절대 차이(AD, Absolute Difference)이다. 주어진 좌표 \mathbf{p}에서의 비용은 다음과 같이 정의된다:

C(\mathbf{p}, d) = |I_L(\mathbf{p}) - I_R(\mathbf{p} - d)|

여기서 I_L은 왼쪽 이미지, I_R은 오른쪽 이미지, d는 불일치 값(disparity)이다.

정규화 상호 상관 (Normalized Cross-Correlation, NCC)

정규화 상호 상관은 정합 정확도를 높이기 위해 사용하는 또 다른 비용 함수이다. NCC는 주어진 패치에서 두 이미지의 유사도를 측정하며, 값이 클수록 더 정확한 정합을 의미한다. NCC는 다음과 같이 정의된다:

NCC(\mathbf{p}, d) = \frac{\sum_{\mathbf{q} \in W} \left( I_L(\mathbf{q}) - \bar{I_L} \right) \left( I_R(\mathbf{q} - d) - \bar{I_R} \right)}{\sqrt{\sum_{\mathbf{q} \in W} \left( I_L(\mathbf{q}) - \bar{I_L} \right)^2 \sum_{\mathbf{q} \in W} \left( I_R(\mathbf{q} - d) - \bar{I_R} \right)^2}}

여기서 W는 윈도우 크기, \bar{I_L}\bar{I_R}은 각각 왼쪽 이미지와 오른쪽 이미지 패치의 평균값이다. NCC는 패치 단위로 두 이미지의 상관관계를 계산해 정확도를 높인다.

윈도우 기반 정합 (Window-based Matching)

윈도우 기반 정합은 정합 비용을 단일 픽셀이 아닌 주변 픽셀 집합(윈도우)을 사용하여 계산하는 방법이다. 이를 통해 정합의 정확도를 높일 수 있다. 일반적으로 작은 윈도우는 세부 정보를 잘 포착하지만 노이즈에 민감하고, 큰 윈도우는 노이즈를 줄일 수 있지만 세부 정보가 손실될 수 있다. 윈도우 크기를 동적으로 조정하는 기법이 이를 보완하는 방법 중 하나이다.

적응형 윈도우 (Adaptive Window)

적응형 윈도우 방법은 이미지의 내용에 따라 윈도우 크기를 동적으로 변경하는 방식이다. 이미지의 텍스처, 경계선, 물체의 형상에 따라 최적의 윈도우 크기를 선택함으로써 정합 정확도를 높인다. 적응형 윈도우의 대표적인 방법 중 하나는 픽셀의 일관성(consistency)을 기반으로 윈도우를 설정하는 것이다.

가우시안 가중치 윈도우 (Gaussian Weighted Window)

정합할 때 윈도우 내에서 각 픽셀의 중요도를 다르게 부여하는 방법으로, 가우시안 가중치 윈도우가 자주 사용된다. 중심 픽셀에 더 높은 가중치를 부여하고, 주변 픽셀은 점차 낮은 가중치를 부여하는 방식이다. 가우시안 가중치는 다음과 같이 계산된다:

W(\mathbf{p}, \mathbf{q}) = \exp\left(-\frac{|\mathbf{p} - \mathbf{q}|^2}{2\sigma^2}\right)

여기서 \mathbf{p}는 중심 픽셀, \mathbf{q}는 주변 픽셀, \sigma는 가우시안 분포의 표준 편차이다. 가우시안 가중치 윈도우는 경계선 근처에서도 정밀한 정합을 수행할 수 있도록 도와준다.

전역 최적화 기법 (Global Optimization Techniques)

정합의 정확도를 더욱 높이기 위해서는 지역 정합만으로는 충분하지 않으며, 이미지 전체를 고려한 전역 최적화 기법을 적용할 필요가 있다. 전역 최적화는 이미지의 특정 부분이 아닌 전체를 대상으로 정합을 수행하기 때문에 더 안정적이고 일관된 결과를 얻을 수 있다.

그래프 컷 (Graph Cuts)

그래프 컷은 전역 최적화 기법 중 하나로, 에너지 최소화 문제를 그래프 이론을 통해 해결하는 방법이다. 이 방법은 스테레오 정합 문제를 에너지 함수 E를 최소화하는 문제로 변환하여 해결한다. 에너지 함수는 일반적으로 다음과 같은 형태로 정의된다:

E(D) = \sum_{\mathbf{p}} E_{\text{data}}(\mathbf{p}, D(\mathbf{p})) + \lambda \sum_{\mathbf{p}, \mathbf{q} \in \mathcal{N}} E_{\text{smooth}}(D(\mathbf{p}), D(\mathbf{q}))

여기서 D(\mathbf{p})는 픽셀 \mathbf{p}의 불일치 값, E_{\text{data}}는 데이터 비용, E_{\text{smooth}}는 매끄러움 비용, \lambda는 매끄러움에 대한 가중치를 나타낸다. 첫 번째 항은 픽셀 간의 정합 오차를 최소화하려는 데이터 항이고, 두 번째 항은 정합 결과가 매끄럽게 유지되도록 하는 매끄러움 항이다.

그래프 컷 알고리즘은 그래프를 생성하고 그 위에서 최소 컷(min-cut)을 구해 불일치 값을 결정한다. 그래프 컷의 강점은 비정렬된 영역에서도 강력한 정합을 제공한다는 점이다.

신뢰 전파 (Belief Propagation, BP)

신뢰 전파는 전역 최적화 기법 중 하나로, 픽셀 간의 의존 관계를 모델링하여 최적의 불일치 값을 찾아내는 방법이다. 이 알고리즘은 각 픽셀이 인접한 픽셀로부터 메시지를 받고, 이를 바탕으로 자신의 불일치 값을 갱신한다. 메시지 전달 과정은 다음과 같은 식으로 나타낼 수 있다:

m_{\mathbf{p} \to \mathbf{q}}(d_q) = \min_{d_p} \left( E_{\text{data}}(\mathbf{p}, d_p) + \lambda E_{\text{smooth}}(d_p, d_q) + \sum_{\mathbf{r} \in \mathcal{N}(\mathbf{p}) \setminus \mathbf{q}} m_{\mathbf{r} \to \mathbf{p}}(d_p) \right)

여기서 m_{\mathbf{p} \to \mathbf{q}}(d_q)는 픽셀 \mathbf{p}에서 \mathbf{q}로 전달되는 메시지, d_pd_q는 각각 픽셀 \mathbf{p}\mathbf{q}의 불일치 값이다. 이 알고리즘은 모든 픽셀이 정보를 서로 교환하며, 최종적으로 수렴할 때 각 픽셀의 최적 불일치 값을 얻는다.

준전역 정합 (Semi-global Matching, SGM)

준밀도 정합은 그래프 컷이나 신뢰 전파처럼 전역 최적화를 수행하지만, 보다 효율적인 계산을 가능하게 하는 기법이다. SGM은 이미지의 각 방향(좌우, 상하, 대각선)에서 불일치 값을 계산하고, 이들을 결합하여 최종적인 불일치 맵을 얻는다. 이때 각 방향에서의 비용을 결합하는 방식은 다음과 같이 정의된다:

C_{\text{SGM}}(\mathbf{p}, d) = C(\mathbf{p}, d) + \sum_{\mathbf{r} \in \mathcal{N}(\mathbf{p})} \min(C(\mathbf{r}, d), C(\mathbf{r}, d-1), C(\mathbf{r}, d+1))

여기서 C_{\text{SGM}}(\mathbf{p}, d)는 픽셀 \mathbf{p}에서 불일치 값 d에 대한 SGM 비용, C(\mathbf{p}, d)는 픽셀 \mathbf{p}에서의 기본 정합 비용이다. SGM은 방향별 비용을 종합하여 보다 안정적이고 정확한 정합 결과를 도출한다.

정규화 상호 정보량 (Normalized Mutual Information, NMI)

정합의 정확도를 높이기 위한 또 다른 기법은 정규화 상호 정보량(NMI)을 사용하는 것이다. NMI는 두 이미지 간의 통계적 의존성을 측정하는 방법으로, 특히 서로 다른 조명 조건이나 이미지 강도가 다를 때도 효과적으로 동작한다.

상호 정보량 (Mutual Information, MI)

상호 정보량은 두 변수 간의 상호 의존성을 나타내며, 이미지 간의 유사도를 정량화하는 데 사용할 수 있다. 상호 정보량은 다음과 같이 정의된다:

I(X; Y) = H(X) + H(Y) - H(X, Y)

여기서 H(X)는 이미지 X의 엔트로피, H(Y)는 이미지 Y의 엔트로피, H(X, Y)XY의 공동 엔트로피를 나타낸다.

정규화 상호 정보량 (NMI)

정규화 상호 정보량은 상호 정보량을 정규화하여 값이 0에서 1 사이에 위치하도록 하는 기법으로, 조명 변화나 강도 변화에 대해 더 강건한 성능을 제공한다. NMI는 다음과 같이 정의된다:

NMI(X, Y) = \frac{2I(X; Y)}{H(X) + H(Y)}

여기서 NMI(X, Y)는 이미지 XY 간의 정규화된 상호 정보량을 나타낸다. NMI는 두 이미지가 동일할 때 1에 가까운 값을 가지며, 차이가 클수록 0에 가까운 값을 가진다. 이를 통해 정합의 정확도를 높일 수 있다.

다중 기하학적 제약 (Multiple Geometric Constraints)

스테레오 정합의 정확도를 높이기 위해 추가적인 기하학적 제약을 도입하는 방법도 있다. 에피폴라 제약 외에도 추가적인 제약 조건을 사용하여 불일치 계산의 정확도를 더욱 향상시킬 수 있다.

평면 제약 (Planar Constraint)

많은 경우에 이미지 상의 물체는 특정한 평면 위에 위치한다는 가정을 도입하여 정합 정확도를 높일 수 있다. 평면 제약을 사용하면 특정 영역의 불일치 값을 일관성 있게 유지할 수 있으며, 이를 통해 보다 정확한 깊이 맵을 얻을 수 있다. 평면 제약은 다음과 같이 표현할 수 있다:

d(\mathbf{p}) = a \mathbf{p}_x + b \mathbf{p}_y + c

여기서 d(\mathbf{p})는 픽셀 \mathbf{p}의 불일치 값, a, b, c는 평면 방정식의 계수, \mathbf{p}_x\mathbf{p}_y는 각각 픽셀 \mathbf{p}의 좌표이다. 이 평면 방정식은 동일 평면 위에 있는 모든 픽셀에 적용되어 일관된 불일치를 제공한다.

동적 프로그래밍 기반 정합 (Dynamic Programming-based Matching)

동적 프로그래밍(DP)은 정합을 효율적으로 수행할 수 있는 또 다른 기법이다. 이 방법은 정합 비용을 최소화하기 위해 최적 경로를 찾는 방식으로 작동하며, 특히 경계선 근처에서 높은 정합 정확도를 제공한다. DP 기반 정합은 다음과 같은 재귀적 관계를 사용하여 불일치 값을 계산한다:

C(\mathbf{p}, d) = \min \left( C(\mathbf{p} - 1, d), C(\mathbf{p} - 1, d - 1), C(\mathbf{p} - 1, d + 1) \right) + E(\mathbf{p}, d)

여기서 C(\mathbf{p}, d)는 픽셀 \mathbf{p}에서의 정합 비용, E(\mathbf{p}, d)는 해당 픽셀의 정합 오차를 나타낸다. 동적 프로그래밍은 좌우 간 정합 경로를 추적하며, 비용을 최소화하는 경로를 선택하여 불일치 값을 결정한다.