Ⅰ. 서론
카메라로 촬영한 이미지의 해상도는 이미지가 이미지 평면에서 최종적으로 디지털 데이터로 양자화되는 CCD(charge Coupled Device) 센서와 같은 이미지 센서의 정밀도에도 관계가 되지만, 기본적으로는 카메라 렌즈의 직경에 의해서 결정된다. 즉, 원형 렌즈의 직경이 D인 카메라에서 최소 해상도는 ∆l = 2.44λf/D로 정의된다[1]. 여기서 λ는 빛의 파장, f는 렌즈의 초점 거리이다. CCD 센서의 pixel 수가 아무리 많아도 스마트폰과 같이 휴대용 기기에서는 카메라의 두께에 한계가 있으며 따라서 카메라의 렌즈 크기에도 한계가 있으므로, 촬영된 이미지의 해상도에는 한계가 있다. 최근에는 고급 영상 처리 기술을 도입하여 색감이나 명도, 채도, 명확도 등을 보정하고 있지만 기본적으로 부족한 이미지 정보를 생성하여 해상도를 높이는 것은 불가능하다.
따라서 하나 또는 여러 대의 카메라를 움직이면서 동일한 피사체에 대해 여러 장의 낮은 해상도의 이미지를 촬영하고 이들 사진들을 합성하여 한 장의 높은 해상도의 사진을 생성하는 연구가 이전부터 활발하게 진행되어 오고 있다[2~6]. 최근 들어 스마트폰 카메라를 이용한 사진 촬영이 빈번해지고 카메라의 성능이 스마트폰의 중요한 요소가 됨에 따라 이에 대한 관심이 고조되고 있다.
[2]에서는 복수의 사진에서 물체의 이동량을 추정하기 위하여 사진 속의 직선 특성을 이용하였으며, [3]에서는 여러 장의 저해상도(Low Resolution: LR) 사진에서 한 장의 고해상도(Super Resolution: SR) 사진을 합성하는 원리가 그림 1과 같이 설명되어 있다.
그림 1. 두 장의 LR 이미지들을 합성하여 한 장의 HR 이미지를 생성하기
Fig. 1. HR image restoration from two LR images
즉, 저해상도 사진 LR1과 LR2는 다른 카메라 위치인 C1과 C2에서 동일한 피사체 X를 각각 촬영한 이미지들이다. 격자 무늬는 교차점에 이미지 픽셀의 위치를 의미한다. 디지털 카메라의 경우 한정된 픽셀 개수가 있으므로 실제 이미지 점과는 다른 양자화된 픽셀 위치에서 픽셀 데이터가 수집된다. 따라서 동일한 피사체 X에 대해서 픽셀 위치가 다른 LR1과 LR2를 합성하여 고해상도 이미지인 SR을 생성할 때 SR의 픽셀 위치에 LR들의 서브 픽셀 위치가 맵핑된다. 결과적으로 두 장의 LR 이미지들의 추가적인 정보가 SR의 이미지에 표시되어 해상도가 증가하는 것이다.
그림 2는 고해상도 이미지를 합성하는 절차이다[3]. 먼저 이동한 카메라의 위치를 추정하던지 사진의 이동 정보를 추정한다. 이 과정에서 기준 LR 이미지와 다른 LR 이미지들 사이의 픽셀의 이동 거리를 소수 단위로 추정한다. 즉, LR의 양자화된 정수의 픽셀 위치가 아니라 픽셀 위치를 실수 단위로 계산한다. 여러 장의 LR 이미지들을 픽셀의 해상도가 높아진 SR 이미지 프레임에 맵핑을 하는데, SR의 양자화된 정수의 픽셀 위치에 LR의 실수의 픽셀 위치를 맵핑하기 위해서는 보간법이 적용되어야 한다[4~6]. 그 다음 단계는 생성된 고해상도 이미지에서 왜곡과 잡음을 제거하는 전통적인 영상 처리 기술들이 적용된다.
그림 2. 고해상도 사진 생성 방법
Fig. 2. Scheme for super resolution
본 논문에서는 여러 장의 LR 이미지에서 이동한 픽셀들의 위치를 추정하기 위하여 호모그래피 매트릭스를 적용하는 방법을 제안하였다. 또한 본 논문에서는 C2로 이동한 카메라에서 촬영한 LR2 이미지를 역 호모그래피 변환을 통해서 C1 카메라의 위치에서 촬영한 것처럼 이동시키는 경우에는, LR2의 이미지 픽셀의 위치가 서브 픽셀로 변경되므로 LR1과 LR2를 합성하면 고해상도의 SR 이미지를 얻을 수 있다. 여러 가지 경우의 LR 이미지들에 제안된 방법을 적용하여, 해상도가 향상되고 잡음이 줄어든 SR 이미지들을 확인하였다.
Ⅱ. 호모그래피 행렬의 추정
1. 호모그래피 행렬
이동하는 단안 카메라로 동일한 피사체를 촬영하면 두 장의 이미지에 투영된 피사체의 픽셀들의 위치 x1과 x2 및 카메라 원점들 C1, C2와의 관계를 에피폴라 기하학이라고 한다. 이 때 C2의 카메라에 의해 촬영된 이미지의 픽셀 좌표를 x 및 y라고 하고, 피사체의 3차원 좌표를 X, Y, 및 Z라고 하면 다음 식으로 표시할 수 있다.
\(\begin{aligned}x=K[I \mid 0]\left[\begin{array}{cccc}r_{11} & r_{12} & r_{13} & t_{x} \\ r_{21} & r_{22} & r_{23} & t_{y} \\ r_{31} & r_{32} & r_{33} & t_{z} \\ 0 & 0 & 0 & 1\end{array}\right]\left[\begin{array}{c}X \\ Y \\ Z \\ 1\end{array}\right]=K[R \mid \boldsymbol{t}] X\end{aligned}\) (1)
여기서 K는 카메라의 초점 거리가 포함된 카메라 내부 행렬(intrinsic matrix)이고, I는 단위 행렬, R과 rij는 회전 행렬, 그리고 t는 C1을 좌표계의 원점이라고 할 때 C2의 상대 좌표이다. C1과 C2에 의해 생성된 두 장의 이미지들은 평면이며 이 조건을 식(1)에 적용하면 다음과 같은 식이 유도된다[13].
\(\begin{aligned}\left[\begin{array}{l}x_{2} \\ y_{2} \\ 1\end{array}\right]=H\left[\begin{array}{c}x_{1} \\ y_{1} \\ 1\end{array}\right]\end{aligned}\) (2)
여기서 x1 및 y1은 좌표계의 원점인 C1 카메라 위치에서의 이미지 좌표이고, x2 및 y2는 C1 카메라 위치에서 이동하고 회전한 C2 카메라 위치에서의 이미지 좌표이다. H는 3 x 3의 행렬이고 호모그래피 행렬이라고 한다.
즉, 두 장의 평면 이미지 사이에서 동일한 피사체의 이미지 픽셀 사이의 관계는 선형 함수인 호모그래피 행렬로 표시할 수 있다. 본 논문에서는 촬영 위치가 다른 두 장의 이미지들을 한 장의 이미지로 합성하기 위하여, 우선적으로 두 장의 이미지에 대한 호모그래피 행렬을 구한다.
2. 호모그래피 행렬 추정
먼저 openCV의 detect 함수를 사용하는 class인 FeatureDetector, DescriptorExtractor를 이용하여 LR1과 LR2의 두 장의 이미지들에서 특징점과 기술자(descriptor)를 AKAZE 방식으로 추출하고, BruteForce-Hamming 방식으로 두 이미지들 사이에서의 기술자가 일치되는 특징점들을 찾는다. 이 과정에서 일치되는 특징점 사이의 최소 거리와 최대 거리를 각각 계산한다. 이후 정확한 특징점의 일치만을 골라내기 위하여, 특징점 사이의 거리가 최소 거리의 2배보다 큰 특징점 쌍은 불일치로 간주한다. 이때 최소 거리가 매우 작은 경우를 고려하여 30을 최소 거리의 하한으로 설정한다. LR1과 LR2에서 일치되는 특징점들에 cv2.findHomography 함수를 적용하고, 오류 특징점들을 제거하기 위한 RANSAC 방식을 인수로 설정하여 호모그래피 행렬을 계산하였다. 일정 거리를 이동한 카메라로 촬영한 두 번째 저해상도 이미지를, 이동하기 전의 첫 번째 사진의 위치로 이동시키기 위해서는 H의 역행렬 H-1을 곱해서 역변환을 시켜야한다. 그림 3은 호모그래피 역행렬을 적용하여, 두 장의 사진을 겹친 것이다. 두 장의 이미지가 잘 구분되지 않는 것을 보면, 두 장의 이미지에서 호모그래피 행렬 추정과 역변환이 제대로 된 것을 확인할 수 있다.
그림 3. 이동하여 촬영한 이미지를 호모그래피 역변환시켜, 원점에서 촬영한 이미지와 겹쳐 그린 이미지.
Fig. 3. An image drawn by inversely homographically transforming an image taken while moving and overlaid with an image taken from the origin.
Ⅲ. 해상도 높은 이미지의 합성
1. 저해상도 이미지의 템플릿 변환
저해상도 이미지를 고해상도 이미지로 변환하기 위해서는 먼저 해상도가 향상된 이미지 템플릿(template)이 필요하다. 예를 들어 C1에서 촬영한 저해상도 이미지 LR1의 해상도가 640 x 360 픽셀이라면, 두 배의 해상도를 얻기 위해서는 1,280 x 720 픽셀의 빈 이미지 템플릿을 만든다. 그리고 LR1을 기준으로 LR2의 이미지를 합성한다면, LR1의 픽셀들은 빈 이미지 위에서 두 칸 간격으로 이미지 템플릿에 매핑시킨다. 그러나 LR2의 경우에는 고해상도 빈 이미지 위에 호모그래피 역행렬을 곱하는 과정에서 불규칙적으로 매핑이 일어난다.
따라서 규칙적으로 픽셀 값을 갖는 LR1과, 불규칙하게 픽셀 값을 갖는 LR2를 합성했을 때, 빈 픽셀에 채워지는 픽셀 값이 발생한다.
그림 4. 저해상도 이미지의 호모그래피 역변환에 의한 고해도 템플릿 매핑 과정 (검정색 점은 LR1의 픽셀. 회색 점은 LR2의 픽셀. combined SR template는 LR1과 역변환된 LR2 SR template의 합성본).
Fig. 4. High-resolution template mapping process by homographic inverse transformation of low-resolution images (black dots are pixels of LR1, gray dots are pixels of LR2, combined SR template is a combination of LR1 and inverse transformed LR2 SR template).
두 장 이상의 동일 피사체 이미지들을 동일한 좌표계로 변환시켜 동일한 피사체 위치로 정렬한 후에, 여러 이미지들의 픽셀들을 합성하는 방법에는 여러 가지가 있다. 그러나 본 논문은 이미지들을 정렬시키는 방법에 호모그래피 행렬을 적용하는 방법을 제안한 것이므로, 픽셀 합성에는 일반적인 방법을 적용한다.
첫 번째 방법은, 두 장의 고해상도 템플릿의 픽셀 값들을 단순히 평균하여 최종 고해상도 템플릿에 매핑하는 선형적인 방법이다. 두 번째 방법은 비선형적인 방법으로, 간단하지만 우수한 고해상도 이미지를 생성할 수 있었다. 두 장의 고해상도 템플릿의 픽셀들을 합성하여 최종 고해상도 템플릿을 생성하는 과정에서, 최종 템플릿의 동일한 이미지 좌표에 두 장의 픽셀들이 중복하여 매핑 하는 경우에는 평균값을 픽셀 값으로 매핑 한다. 또한 두 장의 픽셀 중에 하나의 픽셀만 매핑 되는 경우에는 해당 픽셀 값을 매핑 한다. 최종 고해상도 템플릿에 매핑 되는 픽셀이 없는 경우에는, 주변 4개의 픽셀 값들을 평균하여 픽셀 값으로 매핑 한다.
Ⅳ. 실험 및 결과
이미지의 촬영은 Samsung Galaxy Note 5와 Galaxy A24의 스마트폰 카메라를 이용하였다. 벽면에 여러 가지 종류의 2차원 그림을 부착하고 50cm 및 1m 떨어진 거리에서 촬영하였다. 그림의 정면에서 먼저 촬영을 한 후, 30cm 오른쪽으로 이동하여 두 번째 사진을 촬영하였다. Note 5 사진 촬영은 프로 모드에서 수행하였고 사진의 해상도는 5312 x 2988 픽셀이다. Galaxy A24의 사진 촬영 해상도는 4080 x 2296 픽셀이다. 사진 압축과정에서의 왜곡을 최소화시키기 위해 dng 포맷으로 저장하고 bmp 포맷으로 변환하여 후속 처리를 진행했다. 촬영된 SR 이미지들을 640 x 360 픽셀의 LR 이미지들로 축소하였다. 축소된 두 장의 LR 이미지들에 본 논문에서 제안된 알고리즘을 적용하여 1280 x 720 픽셀의 SR 이미지를 생성하였다.
그림 5 (a)는 축소되기 이전의 원본 이미지의 일부분이다. (b)와 (c)는 원본 이미지를 축소한 두 장의 LR 이미지들의 일부분이다. (d)는 이동하면서 촬영한 두 장의 LR 이미지들 (b)와 (c)를 두 번째 방법으로 합성하여 생성한 SR 이미지이다. 해상도가 크게 향상된 것을 확인할 수 있다. 해상도의 향상과 잡음의 감소를 확인할 수 있다. 따라서 본 논문에서 제안한 방법이 잘 적용되어 이미지의 질이 향상되었다.
그림 5. Note 5로 촬영된 두 장의 LR 이미지들을 본 논문에서 제안된 방식으로 합성하여 생성된 SR 이미지: (a) 이미지 원본의 일부분, (b)와 (c) 축소된 LR 이미지의 일부분, (d) 합성된 SR 이미지의 일부분.
Fig. 5. Generated SR image from two LR images taken with Note 5 using the proposed method in this paper: (a) the part of the original image, (b) and (c) the parts of the resized LR images, and (d) the generated part of the SR image.
또한 그림 6과 7은 두 가지 시험 이미지 세트에 대한 합성 결과이다. (b)와 (c)의 합성 결과를 비교해 보면 두 번째 방법의 성능이 더 좋은 것을 확인할 수 있다.
그림 6. Note 5로 촬영된 시험 이미지 세트 1에 대한 LR 이미지들의 합성 결과. (a) LR1 전체 이미지, (b) 첫 번째 방법으로 합성된 SR 전체 이미지, (c) 두 번째 방법으로 합성된 SR 전체 이미지.
Fig. 6. Composite result of LR images taken with Note 5 for test image set 1. (a) LR1 full image, (b) SR full image synthesized by the first method, (c) SR full image synthesized by the second method.
그림 7. A24로 촬영된 시험 이미지 세트 2에 대한 LR 이미지들의 합성 결과. (a) 4080 x 2296 해상도의 원본 이미지, (b) 640 x 360 해상도로 축소된 LR1 이미지, (c) 두 번째 방법으로 두 장의 LR 이미지들로 합성된 1280 x 720 해상도의 SR 이미지.
Fig. 7. Composite of LR images taken with A24 for test image set 2. (a) 4080 x 2296 resolution original image, (b) 640 x 360 downscaled LR1 image, (c) 1280 x 720 resolution SR image synthesized from two LR images by the second method.
Ⅴ. 결론
본 논문에서는 이동하면서 카메라로 촬영한 여러 장의 저해상도의 이미지들을 호모그래피 행렬로 정렬시키고, 이를 고해상도 이미지로 합성하여 해상도를 향상시켰다. 스마트폰과 같이 렌즈의 크기가 작은 카메라에서 고해상도 이미지를 촬영하기 위한 대안이 될 것이며, 향후에는 더욱 다양한 환경에서 촬영된 이미지들을 합성하는 연구가 필요하다.
References
- Keigo Iizuka, Engineering-Optics, 3E, Springer, 2008.
- Carlos A. Berenstein, and et al., "A Geometric Approach to Subpixel Registration Accuracy", Computer Vision, Graphics, and Image Processing, Vol. 40, No. 3, pp. 334-360, 1987. https://doi.org/10.1016/S0734-189X(87)80146-9
- Sungcheol Park, Minkyu Park, and Moongi Kang, "Super-Resolution Image Reconstruction: A Technical Overview", IEEE Signal Processing Magazine, Vol. 20, No. 3, pp. 21-36, 2003. https://doi.org/10.1109/MSP.2003.1203207
- Dhirendra Mishra and Bhakti Palkar, "Image Fusion Techniques: A Review", Int. J. Comp. App., Vol. 130, No. 9, pp. 7-13, 2015. https://doi.org/10.5120/ijca2015907084
- Chao Dong, et al., "Image Super-Resolution Using Deep Convolutional Networks", IEEE Tr. Pattern. Analysis Machine Intell., Vol. 38, No. 2, pp. 295-307, 2015. https://doi.org/10.1109/TPAMI.2015.2439281
- S-Ra-El Lee, Kyung-Sik Ko, and Jong-Won Park, "Automated Algorithm for Super Resolution using Satellite Images", J. Inst. Int. Broad. Comm., Vol. 18, No. 2, pp. 209-216, 2018.
- Mahmoud Khattab, et al., "Multi-Frame Super-Resolution: A Survey", IEEE Int. Conf. Comp. Intell. Comp. research, pp. 1-8, 2018.
- Xiaohua, et al., "Image Registration With Fourier-Based Image: A comprehensive Review of Developments and Applications", IEEE J. Sel. Topics App. Earth Observ. Rem. Sens., Vol. 12, No. 10, pp. 4062-4081, 2019. https://doi.org/10.1109/JSTARS.2019.2937690
- Zdenek Hrazdira, et al., "Iterative Phase Correlation Algorithm for High-Precision Subpixel Image Registration", The Astrophysical J. Supp. Series, Vol. 247, No. 8, 2020.
- Harpreet Kaur, Deepika Koundal, and Virender Kadyan, "Image Fusion Techniques: A Survey", Vol. 28, No. 7, pp. 4425-4447, 2021. https://doi.org/10.1007/s11831-021-09540-7
- Shuhei Hikosaka and Hideyuki Tonooka, "Image-to-Image Subpixel Registration Based on Template Matching of Road Network Extracted by Deep Learning", Remote Sensing, Vol. 14, No. 21, 2022.
- Adrian Kaehler and Gary Bradski, Learing openCV3, O'Reilly, 2017.
- David M. Escriva and Robert Laganiere, OpenCV 4 Computer Vision Application Programming Cookbook, 4E, Packt, 2019.