어도비 포토샵의 AI기반 노이즈 제거 기술

최근 포토샵에 AI를 이용한 denoise 기능이 추가됐는데 성능이 굉장히 좋다고 한다. 

이와 관련해서 Adobe 블로그에도 Denoise 기술에 관한 글이 올라와 있고 AI 기술에 대해 잘 몰라도 이해할 수 있도록 설명을 잘 해놓은 것 같다. 이를 참고해 Denoise 기술의 원리 및 성능에 대한 리뷰를 해보고자 한다. 아래 링크를 따라 원문 blog글을 볼 수 있다. 

https://blog.adobe.com/en/publish/2023/04/18/denoise-demystified

노이즈 발생 원리 및 denoise 개요

 먼저 카메라로 사진을 찍을 때 노이즈가 생기는 이유에 관해 간단히 설명하면, 이유는 여러가지지만 기본적으로 카메라가 빛을 받아서 센서가 빛을 감지할 때 생기는 노이즈가 많다. 카메라의 기본 3요소중 하나인 ISO (빛 감도)에 따라서 ISO 값이 높아지면 빛을 카메라가 예민하게 받아들여서 어두운 환경에서도 좀 더 밝게 사진을 찍을 수 있는데 그만큼 빛의 변화량에 민감해지면서 노이즈가 많이 발생한다. 이렇게 생긴 노이즈를 없애는 기술이 denoise기술이다. 기존 방법으로 denoise에 적용하면 이미지가 흐릿해지거나 디테일이 같이 죽는 경우가 많았는데 이러한 점을 AI를 이용해서 깔끔하게 복원할 수 있도록 만들었다.

AI 학습 방법

 이런 AI를 학습시킨 방법에 대해서도 여러가지 언급한다.

 먼저 노이즈가 많고, 적은 이미지 패치들을 수백만장을 모아서 AI가 알아낼 수 있도록 학습시켰다고 한다. 기본적으로 학습 데이터가 많다는 뜻이다. 어도비니까 이러한 학습 데이터는 쉽게 구할 수 있지 않았을까 생각이 든다.

 또한 수많은 종류의 물건 혹은 장면들을 가지고 학습을 시켜서 모델이 자연스럽고 디테일하게 denoise를 할 수 있게 했다고 한다. 위 문단과 비슷한 내용이지만 학습데이터가 많기만 할 뿐만 아니라 다양한 이미지들로 학습에 사용했다고 얘기하고 싶은 것 같다.

 다음으로 구조는 CNN(convolution neural network)를 사용했다고 한다. CNN은 주변의 픽셀들을 분석해서 context를 찾을 수 있게 해준다. 마치 사람이 말을 할 때 특정 단어의 의미를 알기 위해 문맥을 파악하는 것처럼 CNN도 노이즈가 제거된 값을 찾기 위해 주변 pixel 값들을 보며 context를 분석할 수 있다. 최근 denoising에 transformer도 많이 이용되고 있는데 블로그의 원문에서는 transformer에 대한 언급은 아예 없었다. 단순히 너무 기술적인 내용이라 안넣었는지 실제로 transformer를 사용하지 않은 것인지는 정확히 모르겠다. 

 마지막으로 조금 자세히 AI를 학습시킨 방법들을 언급하면서 기존 방법들보다 어떻게 좋게 만들었는지에 대한 설명을 한다. 장점들을 요약 하면 다음과 같다.

  •  첫 번째로, 다양한 현실 세계 상황에서 강력하고 작동할 수 있는 모델을 만들기 위해 노이즈 시뮬레이션과 데이터 증강 파이프라인을 개발했다고 한다. (data augmentation)
  • 두 번째로, “dark frames”이라고 불리는 대규모 데이터셋을 활용했다고 한다. 이 데이터셋은 특히 오래된 카메라에서 발생하는 그림자 영역의 패턴 노이즈를 이해하고 제거하는 데 도움을 준다고 하고 실제로, 렌즈 캡이 장착된 상태에서 많은 이미지를 기록하기 위해 많은 용량의 데이터가 사용되었다고 언급되어 있다. 
  • 세 번째로, Raw 파일에 Denoise를 적용해서 Raw Details(원본 세부 정보)도 함께 얻을 수 있다고 한다. 
  • 마지막으로, NVIDIA의 TensorCores와 Apple Neural Engine과 같은 최신 플랫폼 기술을 모델에 최대한 활용하도록 설계해서 모델이 현대적인 하드웨어에서 더 빠르게 실행될 수 있도록 만들었다고 한다.

사용법

사용법에 대해서는 밑의 링크에 잘 나와있다.

https://helpx.adobe.com/lightroom-classic/help/whats-new/2023-3.html

예시

 원문에 많은 예시들이 있지만 정말 퀄리티가 훌륭하고 거의 모든 노이즈에 대해 잘 작동하는 것 같다.

왼쪽은 noise 이미지, 오른쪽은 AI기반 denoise로 노이즈가 제거된 이미지
왼쪽은 noise 이미지, 가운데는 이전 방법(manual한 방법)으로 nosie를 제거한 모습, 오른쪽은 AI기반으로 noise를 제거한 모습

기존에도 원래 manual하게 noise를 reduction하는 기능이 있었는데  가운데 이미지 처럼 약간 흐려지기도 하고 완벽히 잘 제거되지는 않았는데 AI 기반으로 denoise를 하면 디테일도 거의 죽지 않고 깔끔하게 노이즈만 제거하고 심지어 detail이 오히려 살아나는 듯한 느낌도 받는다. 이러한 denoise 기술은 높은 ISO나 낮은 ISO나 어떤 환경에서 발생한 노이즈에 대해서도 잘 작동한다고 한다. 

Tips

  • Batch mode: 여러 장을 한번에 하면 한장 씩 하는 것보다 빨리 할 수 있다
  • 다른 기능보다 denoise를 먼저 적용하면 다른 기능들이 훨씬 잘 작동한다! (ex. Content-Aware Remove and Select Subject)
  • Add Grain : denoise를 하면 이미지가 너무 smooth 해질 수도 있는데 이때 effect 패널에서 grain feature를 사용하면 더 자연스럽게 해준다고 한다.
  • 당연한 얘기지만 메모리가 크고 빠른 GPU를 쓰면 더 빨리 작동한다. (최소 8GB 이상의 gpu 사용을 권고한다.)
  • 추가로 denoise기술이 모든 노이즈를 완벽하게 제거할 순 없기 때문에 ISO 80000000000짜리를 ISO 8짜리 처럼 바꿔줘! 이런 기적같은 일은 할 수 없으니까 사진을 찍을 때 너무 denoise기술에 의존하려고 하지는 말고 적당히 찍으라고 한다. 

What’s next?

일단 지금은 RAW 파일 형식만 지원하고 있는 것 같은데 추가적인 다양한 파일 형식(JPG 등)에도 적용 가능하도록 만들 예정인 것 같다. 추가적으로 super-resolution (화질을 올려주는 기술)도 같이 계속 개발을 할 예정이라고 한다. 

Donghun Ryou


Popular Categories


Search the website


today visits :

9

total visits :

8559


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다