두 장의 영상을 이용한 저조도 환경에서의 실용적 계산 사진 기법과 Mosaic 에의 응용 Practical Computational Photography with A Pair of Images under Low Illumination and Its Application to Mosaic 안택현 O, 홍기상 포항공과대학교 정보통신학과 O, 포항공과대학교 전자전기공학과 {ath84, hongks}@postech.ac.kr 요 약 본 논문에서는 저조도(low illumination) 환경에서 카메라를 손에 들고 촬영한, 노출시간이 서로 다른 두 영상을 이용하여 적절한 한 장의 영상을 생성하는 방법을 제안한다. 저조도 환경에서 촬영을 할 경우 카메라 모션 블러와 노출 시간간의 trade-off관계가 성립하는데 이 문제를 해결하기 위하여 제안된 방법 은 계산량이 많은 기존의 블러된 영상으로부터 블러를 제거(deblurring)하는 방법들과 달리, 노출 시간이 다른 두 영상이 가진 서로 다른 정보를 합함으로써 빠른 속도로 적절한 한 장의 영상을 생성할 수 있 다. 1. 서론 저조도(Low illumination) 환경에서는 카메라의 센서에 닿는 빛의 양이 충분하지 않기 때문에, 손 에 들고 촬영하는 카메라를 이용하여 한 번의 촬 영으로 얻을 수 있는 영상은 한계를 지니고 있다. 카메라의 결과 영상의 밝기는 카메라의 노출시간 을 조절하여 조정하게 되는데, 충분한 빛의 양을 얻기 위해 노출 시간을 길게 하면 노출시간 동안 카메라의 움직임이 반영 되어 결과 영상에 블러가 나타나게 되고, 반대로 노출시간을 짧게 하면 블러 가 없어 구조(structure)정보는 살아있지만 영상이 어둡기 때문에 색감이 적고, 영상에 노이즈가 나타 나게 된다. 이와 같은 이유로 한 번의 촬영으로 적 절한 하나의 영상을 얻기 힘들기 때문에 후처리 (post process)가 필요하게 되는데 이 처리가 빠르게 된다면 영상을 촬영하면서 결과영상을 확인해가며 보다 실용적으로 영상을 얻을 수 있을 것이다. 이와 같은 저조도 환경에서 후처리를 해서 적절 한 한 장의 영상을 얻기 위해 간단히 생각해 볼 수 있는 것은, 같은 장소에서 노출시간을 달리하여 얻은 두 장의 영상들이 가진 서로 다른 정보를 이 용해 보는 것이다. 이러한 방식으로 같은 위치에서 촬영한 노출시간이 서로 다른 두 영상간의 관계를 이용하여 확률적인 접근으로 결과영상을 얻는 방 식[1]이 있지만, 반복연산과 많은 계산량 등으로 인 한 긴 계산시간에 비해 결과영상이 만족스럽게 얻 어지지는 않았다. 이와는 다른 방식으로, 문제를 노출시간을 충분히 하여 얻은 블러가 나타난 영상 에서 블러를 제거(deblurring)하는 것으로 생각할 수 있다. 일반적으로 블러제거에 대한 접근 방법들은 블러된 영상 는 블러가 없는 영상 와 카메라의 움직임을 나타내는 블러 커널(blur kernel) 와의 컨 볼루션의 형태로 문제를 모델링 하고 있는데, 이렇 게 모델을 잡게 되면 커널 를 추정하는 연산 (kernel estimation)과 컨볼루션 연산을 역으로 계산 해주는(deconvolution) 연산을 거쳐야 한다. 그 중, 커널을 추정함에 있어서도 기본적 블러가 나타난 영상과 그것의 구조정보를 더 가지고 있을 노출 시간을 짧게 하여 촬영한 영상 두 장을 이용하여 더 쉽게 커널을 구하는 방식을 먼저 생각 할 수
있다[2]. 그리고 나아가서 블러가 나타난 영상 1장 자체만을 가지고 커널을 추정하여 결과 영상을 생 성[3,4]하는 것이 최근까지 연구되고 있고, 좀 더 빠르고 정확하게 커널을 얻기 위해 부가적인 장비 를 사용하여서 하는 접근방식들도 있다. 하지만 이 러한 블러를 제거하는 방법들은 물결현상(ringing artifact)과 같은 해결해야 할 문제들도 있지만, 계산 시간이 오래 걸리고 부가적인 장비가 필요하기도 하다. 이러한 후처리 과정이 빠르게 이루어진다면, 핸드폰이나 카메라 같은 촬영 기기에서 얻은 결과 영상을 바로 확인 할 수가 있을 것이다. 본 연구에서는 저조도 환경에서의 긴 노출을 통 한 블러가 있는, 그리고 짧은 노출을 통한 어둡고 노이즈가 있는 두 영상을 통해 적절한 하나의 영 상을 빠르게 생성하는 방법을 제안한다. 기존의 알 고리즘들의 계산량이 많은 것을 고려하여 부가적 인 장비 없이 실시간 적용이 되는 것을 목표로 하 였다. 본 논문의 구성은 다음과 같다. 2장에서 제안된 노출시간이 서로 다른 두 영상을 이용하여 하나의 결과 영상을 얻는 방법에 대해 기술하고, 제 3장에 서 실험 및 결과를 기술한다. 4장에서는 제안된 방 법의 모자익(mosaic)에의 활용에 대하여 기술한다. 그리고 제 5장에서 결론을 맺는다. 2. 제안된 계산사진기법 2.1 개요 기존의 방법들은 계산과정이 복잡하거나, 반복 되는(iterative) 연산을 수행하기 때문에 부가적인 장 비 없이 빠른 시간에 처리하여 결과 영상을 바로 보고자 하는 실시간적 접근성은 충족 할 수 없다. 본 연구에서 제안하는 방법의 전체적인 구성은 <그림 1> 와 같이 되어 있다. 입력으로는 노출시간 이 서로 다른, 노이즈가 있는 어두운 영상과 노출 시간을 길게 하여 블러가 나타난 영상이 들어온다. 노출시간이 적어서 노이즈가 있지만 물체의 구조 (structure) 정보가 잘 드러나 있는 짧은 노출의 영 상의 명도(brightness)정보를 기반으로, 노출 시간이 짧아서 충분히 얻지 못한 채도(chrominance) 정보를 노출 시간이 길지만 블러가 나타난 영상에서 가져 옴을 기본 구성으로 함으로써 복잡한 연산을 거치 지 않고 부가적인 하드웨어의 추가 없이 기존의 블러 제거 방법들보다 빠르게 결과 영상을 얻는 것을 목표로 하였다. 이러한 구성에서는 명도 정보 와 채도 정보를 나누는 것이 중요하기 때문에, 모 든 과정은 명도와 채도 정보를 잘 나눈다고 알려 져 있는 CIE L*a*b* 색 공간을 기반으로 처리한다. 입력 받은 노이즈가 있는 어두운 영상의 명도정 보를 향상(enhancement) 시키게 되는데, 향상 시키 는 과정에서 영상잡음이 같이 향상이 되므로 속도 가 빠르고 효율적인 영상잡음 제거법이 필요하다. 이렇게 향상 과정을 마치게 된 영상의 채도는 블 러가 나타난 영상으로부터 보완 해 주게 됨으로써, 최종적인 결과 영상을 얻게 된다. 2.2장에서는 명 도 정보의 향상에 대해 기술하고, 2.3장에서는 그 에 따라 필요해진 영상잡음 제거 방법에 대해서 기술하며, 그리고 2.4장에서는 색 전송을 하는 방 법을 기술한다. 그림 1. 제안된 시스템의 전체적인 구성 2.2 영상 향상(image enhancement) 서론에서 설명하였듯이 입력으로 받은 노출시간 이 짧은 노이즈가 있는 영상을 기반으로 하여, 이 영상의 구조정보를 담고 있는 명도를 향상시키게 된다. 영상 향상은 Retinex[5]를 사용하였다. 이 알 고리즘은 인간의 눈이 무언가를 볼 때 눈의 망막 (Retina)에 닿는 절대적인 빛의 양 뿐만이 아니라 뇌(Cortex)에서 주변 환경도 함께 고려하여 그것을 인식한다는 사실에 기반하고 있는데, 여기서는 <그 림 2>과 같이 광원의 효과를 줄여서 주변 환경에 대한 상대적 반사(relative reflectance)를 구하는 방 법으로 이야기한다. 일반적으로 컬러 영상에서 레티넥스 알고리즘은 색 균형(color balance)을 맞추기 위해서나, 연산시 간 절약을 위해 명도 성분에서만 사용되어지는데, 본 연구에서는 L*a*b* 색 공간에서 명도를 나타내
는 L* 평면을 향상 시키게 된다. 하지만 RGB 색 공간에서 L*a*b* 색 공간으로 갈 때 선형적인 계 산이 아닌 세제곱근 연산을 거치게 되는데, RGB공 간에서 L*a*b*공간으로 가는 중간과정인 XYZ 색 공간의 Y 평면을 향상시켜줌으로써 그 영향을 받 지 않는 채로 영상 향상을 가능하게 하였다. 그림 2. Retinex 알고리즘의 효과 2.3 영상 잡음 제거(Noise reduction) 노출 시간이 짧은 영상에서 2.2와 같은 영상 향 상을 하게 되면 영상 잡음도 같이 향상 되는데, 그 영향을 줄이기 위해 빠르고 효율적인 잡음제거 (denoising) 방법을 요구하게 되었다. 이러한 잡음 제거 법으로는 O(1) bilateral filter[6]를 사용되었다. 기본적인 쌍방향 필터(bilateral filter)는 입력 화 소 의 값 에 대해, 그 이웃 화소들 의 값 들의 공간(domain), 범위(range)에 대한 가중치 를 함께 적용한 가중평균을 이용하여 결과 화소 를 구하게 되는데, 이는 수식 (1)과 같이 나 타내어진다. 여기서, 는 각각 공간, 범위에 대 한 잡음의 척도를 나타내는 상수항이 되고, 는 가중치들을 표준화 시켜주기 위한 표준화 상수 (normalizing constant)이다. (1) [6]에서는 사용 되는 입력 화소의 값 를 특 정한 몇 개의 고정된 값 로 치환시킴으로써, (1) 와 같이 복잡한 식을 두개의 가우시안 공간적 필 터로 나타낼 수 있다고 이야기 하고, 이 가우시안 공간 필터에 [7]을 적용 하게 됨으로써 O(1)의 계 산량을 가지게 된다고 기술한다. 이 영상잡음 제거방법은 앞에서 설명한 명도 향 상 전에 사용이 되는데, 명도 향상은 XYZ 색 공간 의 Y 평면에 사용을 하고, 이 Y 평면은 RGB 공간 중 R,G 두 평면의 성분에 의해 99%의 영향을 받 고 있으므로 R,G,B 평면에 대해 잡음 제거를 하지 않고 R,G 평면에만 잡음 제거를 적용함 으로써 눈 에 띄는 차이 없이(R,G,B 각각에 적용한 영상과의 PSNR 40dB 이상) 계산량을 더 줄일 수 있다. 2.4 색 전송(color transfer) 블러가 나타난 영상과 노출 시간이 짧은 영상잡 음이 있는 영상을 a*b* 색 공간상에서 비교를 하면 그 평균(mean)과 표준편차(standard deviation)가 다 를 뿐 비슷한 분포를 나타내는 사실을 관찰 할 수 있다. 이 사실을 기반으로 하여 영상의 평균과 표 준편차를 맞추어주는 방법[8]을 사용함으로써, <그 림 3>의 (b) 와 같이 어두운 영상을 기반으로 향상 시킨 영상으로부터 (c)와 같은 최종 결과를 얻게 된다. 그림 3. 색 전송에 따른 결과 색 전송 방법은 두 영상의 전체 색 분포를 맞추 어주는 방법이기 때문에, 두 영상을 완전히 겹치지 않게 촬영하더라도 잘 동작하므로, 카메라를 손에 들고 촬영하는 환경에서 사용하기 적합하다고 할 수 있다. 3. 실험 결과 및 분석 실험 평가는 본 논문에서 제안한 방법에 의해 생성된 영상 결과와, 동일한 입력 영상으로 결과를 볼 수 있는 기존 방법[1]의 영상 결과를 비교 평가 하고, 블러 현상에 대한 일반적인 접근 방법들 [3][4]과 계산시간을 비교 하도록 한다. 제안된 방
법의 시스템은 CPU 2.80GHz, RAM 3.49GB 하드웨 어 환경에서 C++로 구현하였다. 3.1 실험 결과 <그림 4>는 실내에서 노출 시간을 서로 달리 하 여 얻은 두 영상으로 얻은 결과 영상들을 나타내 고 있는데, 노출이 긴 영상에서 책 부분이 포화 (saturation)되어 종이가 바랜 부분도 하얗게 된 것 을 볼 수 있는데 이 부분이 결과에 반영되어 하얗 게 나타나는 것을 볼 수 있다. 하지만 제안된 결과 에서는 종이의 바랜 부분을 유지 하는 것을 볼 수 있고, 기존의 방법보다 대비(contrast)가 더 뚜렷하 게 나타남을 볼 수 있다. <그림 5>는 흐린 날씨의 바깥에서 짧고 긴 노출 시간으로 촬영하여 얻은 영상들로 얻은 결과를 보 여준다. 사진을 찍는 동안 부는 바람으로 인해, 노 출이 길 때의 영상과 짧을 때의 영상의 꽃들의 위 치가 차이가 많이 나지만 알고리즘이 전체 색의 분포를 맞춰 주는 것이기 때문에 문제없이 결과가 나타남을 볼 수 있고, 또한 제안된 결과가 기존의 방법과 색상은 비슷하게 나타내면서 대비는 더 뚜 렷하게 나타남을 볼 수 있다. image size 793x524 ('desk') 565x376 ('garden') time (sec) Denoising 0.890 Retinex & Color transfer 0.172 Total 1.062 Denoising 0.407 Retinex & Color transfer 0.093 Total 0.500 표 1. 계산속도 그림 5. 결과 영상 비교 ( garden') 그림 4. 결과 영상 비교( desk') 제안 된 방법의 대부분의 계산시간은 쌍방향 필 터의 연산에 소모되는데, 이는 공간적 필터의 크기 에 무관하게 계산 시간이 결정이 되므로, <표 1>에 서 볼 수 있는 결과와 같이 결과 영상을 얻는데 필요한 시간은 영상의 크기에만 비례 하게 된다. 아래 <표 2>에서는 블러 현상에 대한 기존의 접 근 방법[3][4]들과의 계산 시간을 비교 하고 있는
데, Shan's method[3]에서는 블러의 효과적인 제거 에 중점을 두고 Cho's method[4]에서는 빠른 블러 제거에 중점을 둔 방법을 제안하고 있다. [3]의 경 우와 같이, 일반적인 블러 제거 방법들은 영상의 크기에 따라 달라지지만 수십 초~수십 분의 계산 시간을 가지게 되는데 이러한 일반적인 방법들과 비교하여 제안된 방법은 실시간 처리에 가까운 결 과를 나타내고 있음을 볼 수 있다. [4]에서는 보다 빠른 블러 제거를 위해 부가적인 하드웨어 (GPU) 를 사용하여 알고리즘의 성능을 향상 시켰는데, 제 안된 방법은 이러한 부가적인 하드웨어의 지원 없 이 그것을 사용한 [4]에 가까운 계산 시간이 걸리 는 것을 확인 할 수 있다. time (sec) Cho's image Shan's Cho's with ours size GPU 800 x 360 20 0.609 0.988 532 903 x 762 33 0.984 1.909 910 836 x 762 28 0.937 1.561 804 454 x 309 11 0.438 0.620 588 표 2. 계산속도 비교 4. 낮은 조도 환경에서 모자익(mosaic) 에의 활용 카메라가 가지는 시야는 한정되어 있다. 이런 한정된 시야를 넓히는 방법 중 가장 널리 알려진 모자익(Mosaic)방법은 좁은 시야를 가지는 여러 장 의 영상들을 정합해 하나의 넓은 시야를 가지는 영상을 생성하는 방법이다. 제안된 방법에서는 간 단히 인접한 영상간의 평면변환관계인 호모그래피 (homography)를 계산하여 이 영상들을 연속적으로 연결해주는 지역적 정합(local registration)을 사용하 였다. 낮은 조도 환경에서 이러한 모자익(mosaic) 영상 을 생성하기 위한 입력 영상들을 촬영 할 때 노출 을 길게 하면 블러 현상이 나타나게 되므로, 노출 을 짧게 하여 필요한 영상 수만큼 찍고 노출을 길 게 한 하나의 추가적인 영상을 더 촬영으로써 좋 은 결과 영상을 얻을 수 있다면, 이 접근 방법은 실용적이라 할 수 있다. 실험 과정은 <그림 1> 와 동일하지만 입력 영상이 어둡게 찍은 영상들의 모 자익 결과 영상이 되고, 모자익 입력영상들 중 하 나와 짝을 이루는 하나의 블러된 영상을 사용하게 되며 <그림 6> 은 그에 대한 영상 생성 결과를 나 타낸다. 어두운 부분에서 촬영한 한 쌍의 영상들을 기준으로 색 전송을 하게 되는데, 이것이 밝은 부 분(다른 영상의 출입구 부분)에서의 색상이 틀어지 는 효과를 가져 오지는 않을까 했지만, <그림 6>의 실험 결과로 보이듯 전체 영상의 분위기에만 영향 을 끼치는 것을 확인 할 수 있다. 5. 결론 본 논문에서는 저조도 환경에서 손에 들고 촬영 하는 카메라를 이용하여 획득한 노출 시간이 서로 다른 두 장의 영상을 이용하여 하나의 적절한 영 상을 빠르게 생성하는 방법을 제안하였다. 기존의 블러를 제거하는 방법들이 수십~수백초가 걸리거 나, 부가적인 하드웨어를 사용해야 하는 것에 비교 해서 512x512 정도의 크기를 가지는 영상에서 1초 미만의 시간이 걸리면서 적절한 결과 영상을 얻을 수 있었다. 또한 저조도 환경에서 모자익을 하는 경우에, 여러 장의 어두운 영상에 한 장의 블러가 나타난 충분한 노출시간을 가진 영상을 추가 함 으로써, 보다 더 좋은 모자익(mosaic) 결과 영상을 얻을 수 있음을 보였다. 다만, 노이즈한 영상을 노출 시간이 너무 짧은 상태로 얻게 되면 색상 정보가 상당히 사라져 버 리기 때문에 결과 영상의 색상이 만족스럽게 나타 나지 않게 되므로, 일정 수준의 노출 시간을 확보 할 필요가 있다. 실험에서는 자동 노출시간으로 찍 은 사진을 블러된 영상으로 놓을 때의 1/4~ 1/16 의 노출 시간으로 촬영하여 만족스런 결과 영상을 얻을 수 있었다.
Shirley, "Color transfer between images," In IEEE Computer Graphics and Applications, 34-40, 2001. 그림 6. Mosaic에의 활용 참고문헌 [1] J. Jia, J. Sun, C.-K. Tang, and H.-Y. Shum, "Bayesian correction of image intensity with spatial consideration," In proceeding of ECCV, 342-354, 2004. [2] L. Yuan, J. Sun, L. Quan, and H.-Y. Shum, "Image deblurring with blurred/noisy image pairs," ACM Trans. Graphics 26, 3, article no. 1, 2007 [3] Q. Shan, J. Jia and A. Agarwala, "High-quality Motion Deblurring from a Single Image," ACM Trans. Graphics 27, 3, article no.73, 2008. [4] Sunghyun Cho and Seungyong Lee, Fast motion deblurring, ACM Trans. Graphics 28, 5, article no.145, 2009. [5] D.J. Jobson, Z. Rahman, and G.A. Woodell, "Properties and performance of a center/surroun retinex," IEEE Trans. Image Processing, vol 7, no. 3, pp. 451-462, Mar.1997. [6] Q. Yang, K.-H. Tan, and N. Ahuja, "Real-Time O(1) Bilateral Filtering," In CVPR, 557-564, 2009 [7] R. Deriche, "Recursively implementing the Gaussian and its derivatives," In ICIP, 263-267, 1992. [8] E. Reinhard, M. Ashikhmin, B. Gooch, and P.