파노라마 사진 만들기
1. feature
1) 특징 찾기 - local feature : corner
2) 특징 묘사 - vector로 표시
3) 특징끼리 연결 (match)
2. alignment
1) transform & warping
2) alignment
이전 포스팅에서 이미지의 특징점을 찾기 위해 corner를 알아보고,
그것을 찾는 방법인 Harris corner detection을 알아보았다.
Feature descriptors and matching
이제 두 이미지의 feature를 일치하는지 비교해야 한다.
이때, 일정한 크기의 박스 영역에 있는 vector를 각각 비교하는 방법이 있을 수 있다.
하지만 회전, Intensity 등 여러 요소들에 의해 값 자체를 비교하면 일치하지 않는 경우가 빈번하게 발생할 것이다.
Feature descriptor
따라서 우리는 변하지 않으면서도 featuer만의 특징을 뽑아내어 비교해야 한다.
이를 descriptor라 명명하려고 한다.
Descriptor 조건
- Invariance : 이미지가 transform되어도 descriptor는 바뀌면 안 된다.
- Discriminability : descriptor는 각 점에 대해 매우 unique 해야 한다.
Descriptor 고려사항
Geometric
- Rotation : MOPS
- Scale : Gaussian Pyramid
Photometric
- Intensity change : SIFT
Multiscale Oriented PatcheS descriptor (MOPS)
- feature 주위에 40 x 40 크기의 window를 구한다.
- Gaussian prefiltering을 이용하여 1/5 사이즈로 scale을 조정한다.
- X_max 방향을 x축으로 고정한다.
- 위의 window를 8 x 8 사이즈 window로 조정한다.
- intensity를 nomalize한다.
위의 8x8 크기의 patch가 우리가 얻고자 하는 descriptor이다.
Scale을 조정하면서 patch 크기 살펴보기
위와 같이 scale에 따라 패치가 너무 작아질 경우 corner인 feature들도 계속 확대되어 edge로 보이는 상황이 나올 수 있다.
또한, intensity를 normalize한다고 하더라도 값으로 두 feature가 완벽하게 동일한지 찾기는 힘들 것이다.
Intensity에 영향을 받지 않는 이미지 요소는 어떤 것이 있을까?
색, 조명에 invarient한 edge를 떠올려보자
Edge가 descriptor가 되기 위해서는
- edge의 pattern이 맞아야 한다.
- Edge orientation 고려
- 모든 기하학적인 요소에 Invariant 해야 한다.
- 작은 변형(deformation)에 유연해야 한다.
Scale Invariant Feature Transform (SIFT)
- feature 주위에 16x16 크기의 window를 구한다.
- 16x16 크기의 window를 4x4 크기의 grid로 나눈다.
(위 예시는 8x8로 나누어 2x2 크기의 grid로 표현했다)
- 16x16 크기의 window를 4x4 크기의 grid로 나눈다.
- 각 픽셀의 edge orientation을 계산한다.
- 이때 edge는 gradient angle의 -90이다.
- 16cells * 8 orientations = 128 dimensional descriptor를 얻을 수 있다.
- gradient magnitude의 threshold를 통해 weak edge는 날린다.
- edge orientation당 edge gradient의 값을 히스토그램으로 나타낸다.
이를 통해 색과 회전의 영향을 받지 않는 강력한 descriptor를 얻을 수 있다.
Feature Matching
이제 두 이미지의 feature를 각각 matching 해보자
이미지 I1의 feature 대해서 가장 적합한 이미지 I2의 feature는 어떻게 구할 수 있을까?
이를 구하기 위해
- distance function을 정의한다
- 이미지 I2의 모든 feature에 대해 테스트하고 min distance를 가지는 I2의 feature 하나를 찾는다.
Feature distance - L2 distance
가장 쉽게 L2 distance (Euclidean distance)로 구할 수 있다.
문제
그러나 위와 같이 feature를 잘못 찾으면 어떻게 해결해야할까?
Feature distance - ratio distance
L2 distance를 개선하기 위해 ratio distance를 사용해 보자
- f2는 이미지 I2에서 가장 적합한 SSD를 가지는 feature이다.
- f2`은 이미지 I2에서 2번째로 적합한 SSD를 가지는 feature이다.
따라서 ratio distance 값이 커질 수록 애매한 매치 즉, 매칭이 잘못 됐음을 알 수 있다.
'Computer Science > 컴퓨터비전' 카테고리의 다른 글
컴퓨터비전:: Image alignment (0) | 2023.04.13 |
---|---|
컴퓨터비전:: Transformation & Warping (0) | 2023.04.13 |
컴퓨터비전:: Harris corner detection (0) | 2023.04.12 |
컴퓨터비전:: Resample (0) | 2023.04.11 |
컴퓨터비전:: Edge & Edge Detection (0) | 2023.03.15 |