2023. 11. 25. 18:14ㆍ컴퓨터비전
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)
'컴퓨터비전' 카테고리의 다른 글
| Object Recognition (1) | 2023.12.01 |
|---|---|
| Segmentation (3) | 2023.11.25 |
| [opencv] Error: Assertion failed (((0x28442211 >> ((traits::Depth<_Tp>::value) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in cv::Mat::at 에러 해결 (2) | 2023.11.21 |
| 과제하며 배운 opencv 함수 및 여러 정보 (2) | 2023.11.20 |
| Feature Detection and Matching (0) | 2023.11.14 |