1. Alignment 응용
- alignment의 응용이다. corner, edge처럼 중요한 feature에 대해서 alignment를 수행해서 한장의 사진으로 합칠 수 있다.
- 실제로 샘플 포인트들을 다 넣어서 변환 행렬식을 찾아낸다.
2. Homography
- 이렇게 view point의 차이를 탐지할수도 있다.
- 이런 porjective 변환은 어떻게 align할 수 있을까?
- 이렇게 카메라 각도에 따라 변환행렬을 우측처럼 정의할 수 있다.
- K : 3*3 카메라 내부 파라미터
- Rt : 3*4 짜리 변환 행렬
- X : (x,y,z,1)
- 그럼 X를 소거하면 x' = Hx 를 구할 수 있고 이 말은 영상으로 부터 view point를 찾아내던가 view point가 바뀌었을 때, 영상을 만들 수 있다.
- 이런 projective 변환을 homography 변환이라고 한다.
- x'과 Hxi는 동일 직선상에 있기 때문에 cross product는 0이다. 이 식을 이용해서 h들을 찾는다.
- xiT, h1은 다 1*3짜리 행렬들이다.
- 근데 최종 결과를 보면 1행, 2행을 가지고 3행을 만들 수 있다. 즉 rank가 2라는 뜻이다.
- 따라서 (N개의 점에 대해서) 최종 풀 식은 ((2*N) X9) * (9X1) = 0 이다.
- 우리의 목적은 9X1짜리 h를 구하는 것이 목적이다. svd로 구해라.
3. Image stitching and blending
1. 일단은 keypoint를 찾는다. (SIFT)
2. 두 영상에서 keypoint들을 매칭한다.
3. 이제 동일점 쌍들을 구한셈이다. 이걸 가지고 homography를 구한다.
4. H를 구하면 한 영상을 H변환하여 다른 영상과 합칠 수 있게 된다.
- 참고로 H를 구하는 과정에서 RANSAC를 활용한다.
- 총 N개의 점 중에서 무작위로 4개의 점을 사용하여 H를 구한다.
- 그렇게 구한 H가 많은 sample 포인트들에도 적용되는지 확인한다
- 제일 많은 결과를 포함하는 H를 채택한다.
- 매칭된 지점의 histogram 거리를 구해서 색감도 조정할 수 있다.
- 더 감쪽같이 하기 위해 blending을 할수도 있다.
- 색만 활용하는 blending보다 고주파 성분을 활용하는 blending으로 더 감쪽같이 합성을 할수도 있다.
- 참고로 transform을 하면 픽셀중 빈곳이 생기기 마련이다. 왜냐면 x,y는 정수이고 변환하면 소수로 나오기 때문이다. 따라서 텅빈 부분들을 보간해서 더 자연스러움을 줄 수 있다. (aliasing)
'ComputerScience > ImageProcessing' 카테고리의 다른 글
Computer vision - Motion (0) | 2022.05.19 |
---|---|
Computer vision - Image segmentation (0) | 2022.05.19 |
Computer vision - Alignment (0) | 2022.05.12 |
Computer vision - RANSAC (line fitting) (0) | 2022.04.19 |
Computer Vision - SIFT(Scale Invariant Feature Transform) (0) | 2022.04.08 |