주어진 점집합을 기술하는 직선을 얻는 방법 중에 하나로 각각의 점들이 직선에서 벗어난 거리의 제곱을 더한 값(square of residual)을 최소화시키는 기울기와 절편을 찾는 최소자승법(least square method: linear regression)이 있다. 점집합이 $\{(x_i, y_i\}$를 직선 $y=ax +b$로 피팅을 하는 경우 직선에서 벗어난 정도(residual)는 직선까지의 거리를 사용할 수도 있고 또는 $y$ 값의 차이를 이용할 수도 있다. 먼저 해를 closed form으로 쓸 수 있는 $y$ 값의 offset을 residual로 사용하자. 그러면 fitting error는 각 점에서 residual의 제곱의 합으로 주어진다.
$$ R^2(a, b) = \sum_i \left| y_i - (ax_i + b) \right|^2 $$
여기서 주어진 점집합의 moment를 $$ S_{xx} = \sum x_i^2 , ~S_{yy} = \sum y_i^2, ~S_{xy} = \sum x_i y_i, ~S_x = \sum x_i, ~S_y = \sum y_i$$로 놓으면
\begin{align} R^2(a,b) &= S_{yy} + a^2 S_{xx} + n b^2 - 2a S_{xy} + 2ab S_x - 2 b S_y\end{align}
이다. 주어진 점집합을 피팅하는 직선의 파라미터는 타원의 방정식으로 주어짐을 알 수 있고, 주워진 타원상의 임의의 파라미터에 해당하는 직선의 fittign error는 항상 일정한 값을 가짐을 알 수 있다.
좌표의 원점을 각 성분의 평균값만큼 이동하면 $S_x = S_y = 0$이 되어 더 식이 단순해진다. 분산
$$ \sigma_x^2 = \frac{1}{n} S_{xx} - \bar{x}^2 ~\to ~\sigma_{x}^2 =\frac{1}{n} \vec{x}\cdot \vec{x}\\ \sigma_y^2 = \frac{1}{n} S_{yy} - \bar{y}^2 ~\to~ \sigma_y^2 = \frac{1}{n} \vec{y}\cdot \vec{y}$$ 공분산
$$\text{cov}(x,y)= \frac{1}{n} S_{xy} - \bar{x}\bar{y} \to \text{cov}(x,y) = \frac{1}{n} \vec{x}\cdot\vec{y}$$
을 써서 표현하면,
\begin{align} R^2 &= n\sigma_x^2 a^2 -2n \text{cov}(x,y) a + n b^2 + n \sigma_y^2 \\ &=n \sigma_x^2 \left( a - \frac{\text{cov}(x,y)}{\sigma_x^2 } \right)^2 + n b^2 + n \frac{\text{cov}(x,y)^2}{\sigma_x^2} + n \sigma_y^2 \\ &\ge n \frac{\text{cov}(x,y)^2}{\sigma_x^2} + n \sigma_y^2 \end{align}
따라서 residual을 최소로 만들어 주는 직선의 기울기 $a$와 $y-$절편 $b$는
\begin{align} a &= \frac{\text{cov}(x, y) }{\sigma_x^2 } \\ b&=0\end{align}
로 주어지는데, 이 직선은 원점을 통과하는 직선이 된다. 원래의 좌표계로 돌아가면 기울기는 원점의 이동에 무관하므로 변화가 없고 직선이 $(\bar{x}, \bar{y})$을 통과해야 하므로 절편 $b$값은
$$b = \bar{y} - a \bar{x}$$
로 주어진다. 상관계수 $r(x,y)$를 이용하면 Fitting이 잘된 정도를 정량적으로 표현이 된다.
$$ r = \frac{\text{cov}(x,y) }{\sqrt{ \sigma_x^2 \sigma_y^2 } }$$
즉,
$$ R = n\sigma_y^2 ( r^2 + 1)$$
로 주어진다.
'Image Recognition > Fundamental' 카테고리의 다른 글
Ellipse Fitting (0) | 2024.03.02 |
---|---|
Bilateral Filter (0) | 2024.02.18 |
영상에 Impulse Noise 넣기 (2) | 2023.02.09 |
Canny Edge: Non-maximal suppression (0) | 2023.01.11 |
Statistical Region Merging (0) | 2022.06.11 |