* 이 포스트는 컴퓨터 비젼에 대한 개인 학습용으로 작성한 포스트입니다.
Image Alignment
하나의 image를 다른 image 카메라 관점으로 align 시킨다. 이 기술은 여러 가지 응용에 사용될 수 있는데, Panorama stitching, Recognition of object instances 등에 사용될 수 있다. 이의 접근법으로 두가지가 있다.
Direct (pixel-based) alignment : 이미지의 모든 pixel에 대해 align을 시키는 방법
Feature-based alignment : 이미지의 중요한 feature를 추출하고 feature point를 align 시키는 방법
다른 image로 transform하는 matrix를 T라고 하면 mapping했을 때의 좌표와 원래 좌표와의 error를 최소화하는 T를 찾는 것이 최종 목표이다. 즉, 아래 식을 최소화하는 T를 찾는다.
Homography
: plane projective transformation
일반적으로, 카메라는 homography 특성을 가진다. 이는 rotation, scale, affine 변화를 모두 포함한다. Cross ratio, Concurrency, Colinearity의 invariant properties를 가지며, Degree of freedom은 8이다.
이러한 특성이 나오는 이유는 pinhole camera model로 설명할 수 있다. 카메라는 ray capture system이기 때문에, 카메라로 찍은 이미지는 ray를 특정 방향으로 cut (capture)한 것이기 때문이다.
그러므로, 다른 이미지으로의 transform는 H matrix로 나타낼 수 있으며, 아래 식과 같다.
Direct Linear Transform (DLT)
위의 H matrix를 구하는 것이 최종 목표이다. 두 개의 point가 주어졌을 때, 같은 방향을 가르켜야하므로, 두 개의 cross product는 0이 되어야할 것이다.
이를 목표로 계속 전개해 나가자.
위의 식에서 빨간색으로 표시한 2개의 식만 linearly independent이므로 마지막 row는 버린다. (마지막 row는 두 개의 row의 linear 연산으로 만들 수 있음)
4개의 correspondences로 H matrix를 구할 수 있으며, n개의 correspondences에 대한 식은 아래와 같고, 이를 풀면 H matrix를 구할 수 있다.
위의 과정을 요약하면 H matrix를 구하는 과정을 아래의 알고리즘으로 요약할 수 있다.
Image Warping
Homography matrix를 구했으면, 하나의 이미지를 다른 이미지로 warping할 수 있다. 하지만, 2D 평면상에 projection을 하다보면 한 부분은 sparse하고 어떤 부분은 dense하는 부분이 나타난다. 이를 방지하기 위해 target image에서 original image로 돌아오는 inverse warping도 함께 진행한다. Warping한 지점이 정수가 아니기 때문에 4개의 point가 나눠가져야하는데, 이는 bilinear interpolation으로 해결한다.
Robust Feature-based Alignment
Homography를 찾기위해서 적어도 4개의 point를 찾아야하는데, 어떤 point correspondences를 찾느냐가 중요한 문제이다. Alignment까지의 과정을 크게 3가지로 나눌 수 있다.
1. Extract features
2. Compute putative matches
3. Loop (RANSAC) : hypothesize homography & verify homography
Feature Discriptors
Robust한 feature를 추출하였다면, 그 feature가 어떤 성향을 가지고 어떠한 점과 matching 되어야 하는지 descriptor를 생성하는 과정이 필요하다. 이는 각 feature마다 unique한 특성을 가져야한다. Feature descriptor를 생성하는 과정은 앞 포스팅에서 언급하였다.
2개의 vector를 비교함에 있어서, image의 환경이 다르기 때문에 normalize 과정이 필요하다.
이때, normalized correlation은 다음과 같다.
앞 포스팅에서 설명했듯이, 하나의 point에 대해 descriptor는 4x4x8 = 128 dimension vector로 표현하고, 그 값이 그 feature를 대표하는 feature이다. 최종적으로, 어떤 point의 descriptor의 similiarity가 높은 쌍을 찾으면 된다. 계산량을 줄이고 transform 범위가 크지 않을때, search window를 지정하고 그 중에서 비슷한 쌍을 고른다. Match 후보 중에서 거리 차이가 얼마나지 않을 경우에는 seperation을 하지 않는 방법이 있다.
RANSAC
앞의 포스팅에 따라, homography H를 찾기 위해 RANSAC을 사용한다. H를 결정하기 위해 4개의 correspondences가 필요하므로 s = 4인 RANSAC을 사용한다. 알고리즘은 아래와 같다.
Homography 추정의 문제점
Camera center가 다를 경우, 물체 표면에서 나오는 다른 ray를 capture하기 때문에 위의 방법을 사용할 수 없다.
하지만, 대상이 plane이거나 아주 멀리 떨어져있으면 plane으로 취급할 수 있으므로 Homography를 구할 수 있다.
'Basic Learning > Computer Vision' 카테고리의 다른 글
MRF and MAP Inference (0) | 2020.11.18 |
---|---|
Epipolar Geometry and Stereo (0) | 2020.11.13 |
Fitting (0) | 2020.10.25 |
Rotation, Scale, Affine Invariant Features (0) | 2020.10.22 |
Scaled Representations : Image Pyramid (0) | 2020.10.08 |