메뉴 바로가기 본문 바로가기

Denoising Noise Adventure(1): 노이즈란 무엇인가

  • Taeyeop Kim
  • 2022.09.13

Denoising Noise Adventure(1): 노이즈란 무엇인가

 

1. 들어가며


1-1. Motivation

옛날 브라운관 TV 시절 화면이나 사진을 보면 지지직거리는 잡음이 섞인 화면이 나왔던 것을 기억하는가?

그런 잡음들을 흔히 노이즈라고 부르는데 이 때문에 영상을 보는데 불편한 적이 있었다.

이런 노이즈들은 이미지를 보는 사람들만 불편하게 할 뿐만 아니라 이미지와 관련된 다양한 작업들을 수행할 때 영향을 미칠 수 있다.

일상적인 이미지 이외에도 초저온 전자 현미경(Cryogenic electron Microscopy), 형광 현미경 검사(fluorescence microscopy) 등의 살아 있는 시료를 관찰한 바이오 이미지나 우주 망원경을 통해 찍는 천체 이미지 등도 예외는 아니다.

다시 말해 검측 장치로 어떤 측정(measurement)이 존재하는 모든 분야에서 노이즈는 흔히 발생하는 문제이다.

 

[그림 1] 브라운관 TV 속 노이즈 (출처: unsplash.com)

만약 노이즈를 제거할 수 있는 기술이 있다면 어떻게 활용될까?

단순하게는 미디어산업 등에서 노이즈를 줄여서 과거 미디어 영상을 리마스터하여 복원하는 곳에도 사용될 수 있을 것이다.

하지만 노이즈 제거 기술은 실생활의 다양한 영역에서 혁신을 일으킬 수 있다.

예를 들어 CT, MRI 같은 의료영상(medical image)을 촬영하는 방사선 전문의(radiologist)는 노이즈가 없는 더 좋은 품질의 이미지를 얻기 위해서 환자들로 하여금 더 높은 방사선에 노출되도록 한다.

만약 노이즈를 제거하는 기법이 있다면 환자들 또한 방사선량 노출을 줄이게 되어 방사선 피폭위험(radioation risk)을 줄이면서도 좋은 퀄리티의 이미지를 얻는 데 도움이 될 수 있다.

 

[그림 2] DL-enhanced CT image (출처: https://wanglab.faculty.ucdavis.edu/archives/1510)

실생활뿐만 아니라 사물을 인식하는 인공지능 분야에서도 노이즈를 제거하는 것에서 도움을 얻을 수 있다.

예를 들어 글자를 인식하여 분류하는 작업에서 노이즈를 제거했을 때와 아닐 때의 정확도를 비교하였는데 노이즈를 처리한 쪽이 더 높은 정확도를 보였다.

 

[그림 3] 노이즈 제거 여부에 따른 문자 인식 정확도 비교 (출처: Image Denoising to enhance Character Recognition using Deep Learning, Vanlal ruata et al.)

이미지의 품질을 좋게 하는 기법들을 가리켜 이미지 복원(image restoration)이라고 부른다. 이미지 복원에는 super resolution, deblurring 등과 같은 세부 기법들이 존재한다.

 

이번에 다룰 디노이징 역시 이미지 복원의 한 부류에 속한다. 즉, 노이즈를 제거하여 원본 이미지에 가깝도록 복원하는 기법을 통칭하여 디노이징(denoising)이라고 한다.

이렇게 우리가 측정하여 얻은 결과물(노이즈가 낀 이미지)을 바탕으로 이전 단계의 요인이나 데이터들을(원본 이미지) 추정하는 것을 inverse problem을 푼다고 말한다.

본문에서는 디노이징 기법이 제거하고자 하는 대상인 노이즈란 무엇인지 알아보고자 한다.

 

 1-2. Problem Statement

문제를 해결하려면 문제에 대한 정의부터 제대로 정립하고 들어가야 할 것이다. 이를 위해선 수학적 모델을 만드는 것을 고려해볼 수 있다.

우리가 찾고 싶어하는 노이즈가 깨끗한 이미지를 x라고 했을 때 여기에 노이즈 n이 더해진 것을 우리가 관측하거나 측정한 이미지라고 모델링 할 수 있다. y는 우리가 관측한 노이즈가 있는 이미지(noisy observation)이 되고 x를 노이즈가 없는 이미지(noiseless image), 클린 이미지(clean image) 혹은 latent image라고도 부른다.

 

 

[그림 4] 이미지 디노이징 (출처: https://www.slideshare.net/EngHaitham/image-denoising-44893821)

노이즈 n은 다양한 원인에 의해서 나올 수 있지만, 지금은 간단히 가우시안 분포에서 랜덤한 값이라고 생각하자.

보통 실세계의 많은 자연현상이 가우시안 분포 형태를 띠는 경우가 많으므로 이를 기초적인 이론 전개의 출발점으로 사용하기로 한다. 이

때 노이즈 레벨이라는 개념이 나오는데 노이즈의 정도라고 이해하면 된다. 노이즈 레벨이 커질수록 노이즈가 심해진다고 보면 된다.

아래 예시에서는 가우시안의 표준편차(standard deviation) n을 노이즈 레벨의 역할로 정의한다. 이 값이 클수록 노이즈 값의 범위가 넓어지기 때문이다.

우리의 목표는 x에 가까운 추정값(estimate)인 ​(denoised image)를 찾아내야 한다. 원본 x를 정확히 알아낼 수 없으니 오직 추정(estimation)에 의존하여 근사화된 값을 알아낼 수밖에 없다. 즉, 우리의 목표는 추정값을 출력해주는 어떤 함수를 고안해내는 것이다.

 

 

이렇게 구축한 기본적인 모델링에서 성공적으로 디노이징을 하기 위한 몇 가지 요소를 살펴볼 수 있다.

첫 번째로 이미지의 노이즈 분포(noise distribution)에 대한 지식이다. n에 대해 우리가 좀 더 잘 알고 있다면 노이즈 이미지 y가 있을 때 x의 잠재적인 솔루션이 어떻게 될지 도움이 될 수 있다. 이를 통해 관측된 이미지 y에서 너무 동떨어진 솔루션을 배제할 수 있다.

두 번째는 클린 이미지 x가 어떻게 생겼는지에 대한 지식이다. 이러한 지식을 prior이라고 한다. 보통 우리는 얻고자 하는 이미지에 어떤 특성이 있을 것으로 기대한다. 예를 들어 위의 Lena 그림에서 사람 얼굴 피부 부분은 픽셀이 대체로 부드럽게 변화하고 주변 픽셀값과 비슷할 것이다. 반면에 머리카락 부분은 값의 변화가 클 것이다. 이러한 사전 지식을 반영하는 분포쪽으로 솔루션을 제한할 수 있다. 

이렇게 노이즈에 대한 가정과 클린 이미지들에 대한 가정(prior)을 방법론에 따라서 외연적으로(explicitly) 넣기도 하고 내재적으로(implicitly) 넣기도 한다.

뒤에서 살펴보겠지만, 필터링, 예를 들어 smooth 한 결과가 만들어지는 필터를 적용한 것은 클린 이미지의 매끄러운 성질을 외연적으로 표현하지 않고 내재적으로 넣었다고 할 수 있다.

 

1-3. Criteria

앞에서 디노이징을 위한 두 가지 요소를 알아보았는데 성공적인 디노이징을 위해서 좀 더 구체적인 기준을 생각해보자.

 

[그림 5] Left: Unblurred noisy image, Middle: TV method, Right: Edge-driven diffusion, (출처: Introducing Dynamic Prior Knowledge to Partially-Blurred Image Restoration)

위의 왼쪽 그림은 노이즈가 들어간 Lena 얼굴을 각기 다른 두 가지 방법으로 디노이징을 시도한 것이다.

어떤 방법이 디노이징을 성공적으로 한 것으로 보이는가? 제일 오른쪽은 노이즈를 많이 제거하였지만 흐림(blur) 처리된 것과 같은 느낌을 준다. 특히 입술의 경계 부근이 사라져서 잘 보이지 않는다. 가운데는 노이즈를 완전히 제거하진 못하고 변형(artifact)이 일어났지만 흐림(blur) 효과는 덜 생긴 것으로 보인다.

두 가지 디노이징 방법을 언급하긴 했지만 여기선 누가 더 잘했다를 말하고자 하는 게 아니라 디노이징 자체의 방향성에 대해 정리해보기로 하자. 디노이징에서 추구해야 하는 목표는 다음과 같다.

 

1. 가장자리 혹은 경계(edge)는 흐림(Blur)이 생기지 않고 보존되어야 한다. 

2. semantic에 영향을 주는 high-frequency 정보를 보존하여야 한다. 

3. flat region은 부드러워야(smooth) 한다. 

4. 새로운 형태의 artifact를 생성되어서는 안 된다.

  

참고로 서로 다른 디노이징을 양적으로 평가하는 방법 또한 따로 마련되어 있다.

실제로 후속 연구들은 기존의 연구와 비교할 때 PSNR, SSIM 등의 metric을 사용한다.

 

1-4. Type of Noise

앞에선 간단히 노이즈의 형태를 가우시안 분포로 가정하였지만 좀 더 엄밀하게 노이즈를 구별할 수 있다.

먼저 이미지가 만들어지는 과정을 생각해보면 다음과 같다. 기본적으로 이미지를 얻기 위해선 물체에서 반사된 빛을 카메라의 렌즈에 맺히게끔 한다. 이렇게 가시광선을 수광하여 파장을 분리한 뒤 2진수 데이터 스트림으로 변환하는데 다양한 프로세싱을 들어간다. 이때 아날로그 도메인에서 디지털 도메인에서 전환이 일어나는 모든 프로세스에서 노이즈가 들어갈 수 있게 된다.

 

[그림 6] Sources of Noise, (출처: tour of image denoising, shahar kovalsky et al.)

노이즈를 엄밀하게 정의하면 이미지 i번째 위치에 해당하는 픽셀에서 측정해야하는 진짜 광량(the true amount of light)와 실제 측정되어진 값의 편차라고 할 수 있다. 이때 노이즈를 두 가지 형태로 나눌 수 있는데 산탄 노이즈(shot noise)와 검출기 노이즈(detector noise)이다.

산탄 노이즈는 빛의 물리적인 특성에서 의해서 발생한다. 빛은 이중성에 의해 입자로도 행동하는데 우리는 이를 광자(photon)라고 부른다. 이 노이즈에 의해 픽셀이 균일하지 않고 좁쌀같은 모양의 노이즈가 나타날 수 있다. 센서의 입사되는 광자(Photon)의 갯수가 일정하지 않고 시간에 따라 랜덤하기 때문이다. 이런 형태의 노이즈는 포아송(Poisson) 분포를 따르기 때문에 포아송 노이즈라고도 한다. 그래서 밝은 픽셀일수록 노이즈 레벨이 더 높아진다.

 

[그림 7] Photon Rain, (출처: https://bit.ly/3JO5wRo)

검출기 노이즈는 빛을 검출하기 위해 쓰이는 전자장비에 의해 나오는 노이즈이다. 이런 형태의 노이즈를 우리가 앞서 모델링을 할때 사용했던 가우시안 분포형태이다. 실제로 캐논 1D3 카메라로 측정한 노이즈를 다음과 같이 가우시안 분포에 근사된다.

 

[그림 8] Read noise of a 1D3 at ISO 800. The histogram of the noise is approximately gaussian (출처: https://bit.ly/3F4H1fe)

실제로는 더 다양한 종류의 노이즈가 있지만 가장 근본적이고 흔히 관찰되는 이 두가지 노이즈에 대한 가정을 바탕으로 많은 연구들이 진행되었다.

이러한 노이즈로 인해 이미지를 얻는데 제약이 걸리게 된다. 빛의 노출시간, 해상도, 이미징 속도에 영향을 미치기 때문에 이를 희생하지 않기 위해 디노이징이 반드시 필요한 것이다.

노이즈를 제거하는 디노이징에 대해 이야기하고 있지만 이렇게 생각해볼 수도 있을 것이다. 

“노이즈가 그렇게 골칫거리면 처음부터 노이즈를 예방하면 되는 거 아닌가?”

 

 detector noise는 전자장비의 문제니깐 이를 개선한다고 치고 shot noise를 예방할 수 있을까?

이에 대해서 좋은 소식과 안 좋은 소식이 있다. 먼저 안 좋은 소식부터 살펴보면 shot noise는 빛의 물리적 특성에 기인하는 것이기 때문에 근본적인 예방 방법을 강구하기 어렵다.

하지만 플랜B가 몇 가지 마련되어 있다. 대표적으로 다음과 같은 방법을 생각해볼 수 있다.

1. 노출 시간을 증가시키기

2. 광량을 증가시키기(입사되는 signal의 양을 올리기)

3. 이미지 여러 장의 평균을 구하기
 

즉 오랫동안 노출해서 입사되는 광자량을 늘리는 것이다. 한 마디로 오랫동안 촬영하자는 것이다. 현실적으로 쉽지 않다.

움직이는 물체는 장시간 노출을 시키면 blur가 생겨버린다. 혹 떼려다가 혹을 하나 더 붙이는 꼴이 되는 것이다. 밤하늘 사진사가 찍은 타임랩스(time-lapse) 이미지가 이런 현상의 대표적인 현상이다.

 

[그림 9]

(출처: https://www.space.com/best-intervalometers) 

그럼 희소식은 무엇인가? 다음 이미지를 보면 밤하늘 사진인데도 흐림 효과 없이 선명하다. 이런 사진은 어떻게 찍은 것일까?

이는 3번째 방법을 활용했다. 짧게 노출시킨 사진을 여러 장 합쳐서 흐림 효과는 낮추고 노이즈가 낮은 선명한 사진을 확보하였다.

 

[그림 10] (출처: https://www.canon.com.au/get-inspired/astrophotography-timelapse-tips-from-matthew-vandeputte)

이후 게시할 디노이징 시리즈 글들에는 이 아이디어에 착안한 딥러닝 모델들도 소개할 예정이다.

본문에서는 디노이징에 대한 간단한 소개와 디노이징의 대상이 되는 노이즈의 정의 및 종류에 대해 알아보았다. 이어지는 시리즈에서는 본격적으로 다양한 디노이징 기법들을 소개하고자 한다.


About Author 

Taeyeop Kim

Pro, AI 1팀

tykim@cubox.ai