Image Transformation and RANSAC

2023. 11. 25. 18:14컴퓨터비전

728x90

2D Transformation

 

T가 global 하다의 의미

: 모든 점들에 대해 변화가 같다.

 

행렬로 나타내면 

->

* 변형된 상태를 보고 원본을 만들려면 역매핑 해줘야 빈 픽셀값들이 안 생긴다.

 

 

Scale

Uniform scaling: x, y좌표가 동일한 비율로 scaling

Non-uniform scaling: x,y좌표가 동일하지 않은 비율로 scaling

 

 

Rotate

기본: 원점을 중심으로 반시계 회전

 

 

 

* 2x2행렬로는 평행이동을 표현할 수 없다.

오직 Linear transformation만 2x2 행렬로 표현 가능하다.

 

예) scale, rotation, mirror, shear

shear: 예를 들어 직사각형을 밀어서 평행사변형으로 만드는 변형을 말한다.

 

 

평행이동을 표현하려면 어떻게 해야 할까?

homogeneous coordinate로 변환하기

homogeneous coordinate을 사용하여 3x3 행렬로 나타내기

 

다른 선형 변형들도 3x3 행렬로 나타낼 수 있다.

 

 

 

transformation의 알려지지 않은 파라미터값을 계산하는 법

즉, T를 알고 싶은 상황인 것이다.

 

2가지 접근 방식

1. Direct (pixel-based) alignment

: 2개의 이미지로부터 모든 픽셀들을 비교

2. Feature-based alignment

: 2개의 이미지의 feature point를 찾아서 

그 feature point들의 픽셀들만 비교.

 

 

feature pair들의 좌표가 있고,

T의 식이 다음과 같을 때, 

파라미터값을 어떻게 구할까?

일단, homogeneous coordinate를 사용하여 식을 변형한다.

그리고 파라미터값이 6개이므로 feature pair는 최소 3개가 필요하다.

더 많으면 좋다.

이제 대입해서 풀면 된다.

 

 

RANSAC

outlier(이상치)

: 두 이미지의 잘못된 matching point 쌍

 

 

RANSAC: RANdom SAmple Consensus

  • outlier로부터의 영향을 피하고 싶을 때 사용
    -> inlier들만 보고 사용하고 싶을 때 사용
  • 데이터셋에서 노이즈를 제거하고 모델을 예측하는 알고리즘.

 

line fitting을 위한 RANSAC

1. point들 중 랜덤 하게 선택

2. 선택한 점들로 line model을 가정

3. 모델과 모델에 포함되지 않은 다른 점들과의 오차를 계산

4. 모델에 포함되는 점들을 선택

5. 모델에 포함되는 점들이 가장 많을 때까지 이 과정을 반복

 

 

보통 몇 번 반복해야 하나?

: S를 최소 반복 횟수라 하고, p를 좋은 모델을 선택할 확률,

p^k를 모든 k개의 sample이 한 번만에 inlier가 될 확률,

P를 S번 반복한 후 total 확률이라 할 때

-> 1-P=(1-p^k)^S

-> 최소 횟수 S= log(1-P) / log(1-p^k)

 

728x90