사진 복원 Demo

아래 링크를 따라 실행하시면 ‘사진 복원된 결과'를 확인하실 수 있어요!

Google Colaboratory

주제 소개

우리는 행복한 순간들을 기록하기 위해서 사진을 찍곤 합니다. (요즘에는 네 컷 사진이 굉장히 유행이죠📸) 선명한 핸드폰 카메라부터 셀프 사진관까지 다양한 방법으로 고화질의 추억을 남길 수 있는 지금과 달리 과거의 우리는 어땠을까요?

“요즘에 데뷔한 아이돌들은 어린 시절 사진이 고화질이래!”라는 말이 충격적(?)으로 다가오셨다면 공감하실 수 있으실 겁니다. 저희가 어렸을 때만 생각해도 필름 카메라로 사진을 찍기도 하고, 디지털카메라로 찍은 후 인화했던 기억이 나네요. 결과물을 모르는 상태로 한장 한장 소중하게 찍던 필름 카메라에서 디지털카메라가 등장했을 때 매우 큰 발전이 이루어졌다고 생각했었는데, 지금과 비교하면 많은 부족함이 느껴지지 않나요? 이렇게 찍힌 사진들을 보면, 노이즈가 많아 사진의 전반적인 선명도가 떨어지고 인화된 사진들을 보관하다 보니 찢어지거나 구겨진 경우도 많습니다.

물론, 요즘 디지털 기술의 발전으로 사진을 디지털화하여 복원할 수 있기는 하지만 수동 리터치는 힘들고 시간이 매우 오래 걸립니다. 수많은 사진을 복원하는 것은 불가능에 가깝습니다. 이러한 배경을 바탕으로 오래된 사진을 즉시 복구할 수 있는 자동 알고리즘을 설계하는 것의 필요성이 대두되었고, 다양한 모델들이 개발중에 있습니다.

다시 돌아오지 않을 어린 시절의 소중한 추억을 복원해드리기 위해, 3가지 모델을 소개합니다.

활용 코드 소개&분석

1) 사진 복원

GitHub - microsoft/Bringing-Old-Photos-Back-to-Life: Bringing Old Photo Back to Life (CVPR 2020 oral)

첫 번째 모델은 딥러닝 접근 방식을 통해서 훼손되거나 손상된 오래된 사진을 복원합니다. 오래된 사진을 복원하는 것은 매우 어려운 작업입니다. 우선 오래된 사진은 다양한 훼손을 가지고 있고, 인공적인 사진과 실제 사진과의 Domain-gap이 존재합니다. 예를 들어, 딥러닝 네트워크는 인공적인 사진 복원과 실제 사진 복원을 단순히 일반화 하기 힘듭니다. 따라서 복원에는 다른 방식이 요구됩니다. 비구조적 결함 - 필름 노이즈, 흐림, 색 바램 등등은 Homogeneous filters(주변 픽셀로부터 만들어진 필터)로 복원 가능하지만 구조적인 결함(긁힘, 파임)은 그 부분에 색을 칠하기 위해 사진의 전체적인 맥락을 고려해야 합니다.

Domain-gap 문제를 해결하기 위해 해당 모델은 깨끗한 이미지와 옛날 이미지를 다른 도메인으로 다루고 서로 매핑 시키는 방법을 적용했습니다.

이를 통해 오래된 사진과 합성 이미지 사이의 도메인 간격이 줄어들고, 깨끗한 이미지로의 변환은 잠재 공간에서 학습된다는 특징을 가집니다. 또한 Global Context를 활용하여 잠재 기능을 복원하는 부분적인 Non local block을 제안하여 스크래치에 대해 더 일관성 있게 칠할 수 있게 됩니다. 해당 모델은 심각하게 성능이 저하된 오래된 사진을 복원하는 데 더욱 좋은 성능을 보여줍니다.

2) 초고해상도화

GitHub - JingyunLiang/SwinIR: SwinIR: Image Restoration Using Swin Transformer (official repository)