Search
🌍

b3.4_1.1. title: 정규화된 교차상관(Normalized Cross Correlation)과 상관계수(Correlation Coefficient)는 광학적 변화(radiomeric transformation)에 강인한 유사도 판단 기준이다.

생성
🚀 prev note
♻️ prev note
🚀 next note
♻️ next note
💡 아이디어조각
13 more properties
n개의 후보 중 쌍을 찾아내는 매칭 작업을 위해서는 후보들이 얼마나 유사한지를 정량적으로 나타내는 유사도 기준이 필요하다. 유사도를 정량화하는 방법은 SSD(Sum of Squared Differences, OpenCV에서는 SQDIFF), SAD(Sum of Absolute Differences), CC(Cross Correlation, OpenCV에서는 CCORR) 등 다양하다. 하지만 이들은 밝기(brightness) 변화나 대비(contrast) 변화에 대해 강인하도록 모델링되지 않았다(ref1).
반면 정규화된 교차상관(Normalized Cross Correlation, OpenCV에서는 CCORR_NORMED)는 밝기나 대비값이 변화하여 픽셀값이 달라도 이미지 간 유사도를 파악할 수 있다. 이를 광학적 변화(radiometric transformation)에 강인하다(invariant)고 이야기한다. NCC는 광학적 변화에 강인한 유사도 판단 기준이다.
직접 계산해 보면 이해가 쉽다. 이미지 매칭 문제의 일종인 템플릿 매칭 문제에서, 원본 영상 A가 있고 템플릿 영상 B, C가 아래와 같이 존재한다. 직관적으로 생각해볼 때, A와 C가 매칭되기보다는 A와 B가 매칭되어야 한다. 유사도 판단 기준 f(x1,x2)f(\mathrm{x_1, x_2})에 따라 유사도 점수를 매길 때 더 높은 점수를 매길 수 있어야 한다. 판단 기준을 SDD, SAD, CC, NCC 등 달리해가며 값을 비교해보자.
A=[1,4,2,5]B=[2,5,3,6]C=[4,1,3,10]A=[1,4,2,5] \\ B=[2,5,3,6] \\ C=[4,1,3,10]
CC를 유사도 판단 기준으로 사용하면 단순히 값이 클 때 높은 결과를 얻으므로 A와 B가 매칭되는 것이 아니라, A와 C가 매칭된다.
CC(A,B)=12+45+23+56=58CC(A,C)=14+41+23+510=64\mathrm{CC}(A, B) = 1*2+4*5+2*3+5*6=58 \\ \mathrm{CC}(A, C) = 1*4+4*1+2*3+5*10=64 \\
NCC는 위 결과값을 [0,1][0, 1]의 범위로 정규화한 값이다. 아래 연산 결과가 시사하듯 NCC(A,B)>NCC(A,C)\mathrm{NCC(A, B)} > \mathrm{NCC(A, C)} 로 정상적으로 A와 B가 매칭됨을 알 수 있다. CC의 값을 픽셀의 강도 곱으로 나타날 수 있는 최대값으로 나누어 주기 때문에 CC가 가진 문제가 해결된다.
(12+42+22+32)(22+52+32+62)=4674=58.34...\sqrt{(1^2+4^2+2^2+3^2)(2^2+5^2+3^2+6^2)}=\sqrt{46*74}=58.34...
NCC(A,B)=5858.34=0.99\mathrm{NCC}(A, B)=\frac{58}{58.34}=0.99
(12+42+22+32)(42+12+32+102)=46126=76.13...\sqrt{(1^2+4^2+2^2+3^2)(4^2+1^2+3^2+10^2)}=\sqrt{46*126}=76.13...
NCC(A,C)=6476.13=0.63\mathrm{NCC}(A, C)=\frac{64}{76.13}=0.63
NCC와 비슷하게 상관계수(Correlation Coefficient, OpenCV에서는 CCOEFF)를 이용한 유사도 판단 기준도 영상에서 템플릿과 연산되는 부분 영상과 템플릿 영상의 픽셀 강도 평균을 반영하기 때문에 광학적 변화에 강인하다. 아래 연산 결과가 시사하듯 CCOEFF(A,B)>CCOEFF(A,C)\mathrm{CCOEFF}(A, B) > \mathrm{CCOEFF}(A, C)로 정상적으로 A와 B가 매칭됨을 알 수 있다.
A=[13,43,23,53]=[2,+1,1,+2]B=[24,54,34,64]=[2,+1,1,+2]C=[44.5,14.5,34.5,104.5]=[0.5,3.5,0.5,+5.5]\begin{aligned} A'&=[1-3,4-3,2-3,5-3] \\ &=[-2, +1, -1, +2] \\ B'&=[2-4,5-4,3-4,6-4] \\ &=[-2, +1, -1, +2] \\ C'&=[4-4.5,1-4.5,3-4.5,10-4.5] \\ &=[-0.5, -3.5, -0.5, +5.5] \end{aligned}
CCOEFF(A,B)=(2)(2)+11+(1)(1)+22=4+1+1+4=10\begin{aligned} \mathrm{CCOEFF}(A,B) &= (-2)*(-2)+1*1+(-1)*(-1)+2*2\\ &= 4+1+1+4 \\ &= 10 \\ \end{aligned}
CCOEFF(A,C)=(2)(0.5)+1(3.5)+(1)(0.5)+25.5=1+(3.5)+0.5+7=5\begin{aligned} \mathrm{CCOEFF}(A,C) &= (-2)*(-0.5)+1*(-3.5)+(-1)*(-0.5)+2*5.5\\ &= 1+(-3.5)+0.5+7 \\ &= 5 \\ \end{aligned}
parse me : 언젠가 이 글에 쓰이면 좋을 것 같은 재료을 보관해 두는 영역입니다.
1.
2.
3.
4.
from : 과거의 어떤 원자적 생각이 이 생각을 만들었는지 연결하고 설명합니다.
1.
이 글은 이미지 매칭 문제 중 매칭과 그 기준에 대한 이야기다.
supplementary : 어떤 새로운 생각이 이 문서에 작성된 생각을 뒷받침하는지 연결합니다.
1.
None
opposite : 어떤 새로운 생각이 이 문서에 작성된 생각과 대조되는지 연결합니다.
1.
None
to : 이 문서에 작성된 생각이 어떤 생각으로 발전되거나 이어지는지를 작성하는 영역입니다.
ref : 생각에 참고한 자료입니다.