본문 바로가기
컴퓨터

흑백사진 컬러복원의 원리 - GAN 알고리즘

by 테크스토리 2022. 9. 22.
반응형

컬러사진이 대중화된 역사는 그리 길지 않다. 길어야 고작 30년 정도 되었을까? 하지만 역사 다큐멘터리나 유튜브 알고리즘을 통해 추천이 되는 영상들을 보면 100여 년 전의 컬러 영상까지도 확인을 할 수 있다. 그 당시 컬러사진은 있었더라도 컬러 동영상은 찍지 못했을 텐데 말이다. 과연 어떻게 복원이 된 것일까?

 

 

흑백으로 전해지던 과거

종전키스

혹시 이 사진을 본 적이 있는가? 2차 세계대전에서 일본이 항복을 한 1945년 8월 14일 뉴욕에서 찍힌 세기의 사진이다. 종전의 기쁨을 사진 한 장으로 느낄 수 있는데 왼쪽의 흑백과 오른쪽의 컬러의 느낌이 사뭇 다르다. 아무런 설명 없이 이 사진을 본다면 군인인 남자친구가 간호사인 여자 친구에게 키스를 하는 사진으로 볼 수 있지만 사실 저 둘은 전혀 모르는 사이라고 한다.

 

이처럼 과거에 찍힌 유명한 흑백사진들이 현대에 들어 컬러 사진으로 복원이 된 모습을 자주 볼 수 있다. 혹시 사진 인화 기술의 발달로 컬러사진으로 복원이 된 것일까? 예를 들면 필름 원본이 남아있는데 이것을 현대의 약품으로 인화를 했을 때 컬러로 나온다던가 하는 방식으로 말이다. 하지만 이는 당연히 불가능하다. 필름 속에 들어있는 데이터는 오로지 명암비만 저장이 되어 있어 RGB 세 가지의 색에 대한 정보가 남아있지 않기 때문이다.

 

 

수작업으로 복원하던 과거

조선시대

흑백사진을 컬러로 복원하는 과정은 굉장히 오랜 시간과 노동력이 들어간다. 쉽게 생각하면 그레이 스케일로 만들어진 스케치 위에 색을 칠한다고 생각하면 된다. 따라서 사진을 복원하는 사람들은 그 당시 주변의 색상이 어땠는지 철저한 자료조사를 통해 최대한 비슷하게 복원을 해 낸다. 물론 그 색상이 완벽히 동일하다고 볼 수 없다.

 

또한 이 방법은 사진 한 장을 복원하는 데에도 작게는 수 시간이 소모되기 때문에 동영상에는 적용을 할 수 없다. 아무리 프레임수가 낮더라도 초당 20개의 사진이 지나가니 적게잡아 장당 1시간씩 계산하면 고작 1초를 복원하기 위해 하루가 꼬박 소요되기 때문이다. 따라서 이러한 방식은 굉장히 비효율적이고 대량의 사진과 동영상을 복원하는 데에 부적합하다.

 

 

GAN알고리즘을 통한 복원

사진을 복원하는 알고리즘의 종류는 굉장히 다양하겠지만 이 포스팅에서는 가장 대표적인 알고리즘인 GAN(생성적 적대 신경망, Generative Adversarial Network)을 사용한 방법을 알아보려 한다. GAN알고리즘은 생성자(Generator)와 감별자(Discriminator)가 서로 상호작용하며 컬러 복원의 정확도를 높이는 알고리즘이다.

GAN

자. 여기 지폐위조범이 있다. 지폐 위조범은 위조지폐를 만들어 시중에 유통시키려고 할 것이고 경찰은 그 위조지폐를 찾아내 범인을 검거하려고 할 것이다. 여기서 지폐 위조범은 위조지폐를 생성하는 생성자(Generator)를, 경찰은 위조지폐를 감별하는 감별자(Discriminator)의 역할을 수행한다.

 

현실에서는 단 한번만 경찰에 걸리더라도 교도소에 가겠지만 알고리즘의 세계에서는 그렇지 않다. 따라서 지폐위조범은 지속적으로 위조지폐를 만들고 발전시키며 더욱 감쪽같은 위조를 해 낼 것이다. 물론 경찰도 마찬가지다. 처음 위조지폐를 판별하던 경찰은 세세한 디테일을 포착하지 못하겠지만 지폐 위조범의 발전하는 기술과 함께 점차 미세한 부분까지 감별해내는 능력이 생길 것이다. 이렇게 지폐 위조범과 경찰이 서로 상호작용하며 함께 자신의 능력을 키워나가는 알고리즘이 바로 GAN이다.

최종

이 과정이 무한히  반복된다면 결국 도둑은 완벽하게 위조를 해 낼 것이고 경찰 또한 완벽하게 위조된 위조지폐 속에서 실제와 다른 부분을 찾지 못하게 될 것이다. 그렇게 위조지폐와 실제 지폐는 동일해지고 만들어낸 위조지폐는 경찰을 통과해 유통될 것이다. 이는 흑백사진 복원에도 적용이 된다. 위조지폐범에게는 흑백사진을, 경찰에게는 컬러사진을 준 후 학습을 시키면 도둑은 완벽한 채색 스킬을 얻어낼 것이고 최종적으로 경찰을 통과하게 된다.

 

 

그런데 경찰이 비교할 대상이 없다.

알고리즘이 완벽하게 동작하기 위해 선행되는 중요한 조건이 있다. 경찰에게 주어지는 정답이 있어야 세세한 디테일까지 비교를 하며 감별을 해 낼텐데 오래된 옛날 사진들은 흑백의 사진만이 존재하고 그 당시 실제로 어떤 모습이었는지에 대한 자료가 존재하지 않는다. 감별자가 감별할 수가 없는데 어떻게 복원을 시킨다는 말인가? 또한 경찰이 비교할 데이터가 존재했다면 애초에 GAN알고리즘을 통한 학습을 진행할 이유도 없다. 경찰에게 주어질 데이터가 원하는 결과니 그대로 쓰면 되기 때문.

 

따라서 과거의 데이터를 복원하기 위해 현재의 데이터를 사용해 학습을 진행한다. 만약 컬러사진이 있다면 이것을 흑백으로 바꾸어 지폐 위조범에게 주고 컬러 사진을 경찰에게 주는 것이다. 사진의 개수를 무한히 늘린다면 위조범은 채색을 하는 스킬이 늘 것이고 경찰은 감별해내는 스킬이 늘 것이다. 결과적으로 어떤 사진이 들어와도 도둑은 채색을 할 수 있는 능력을, 경찰은 현실과 위조범의 사진을 보고 현실과의 구별 능력이 생길 것이다.

 

이때에 복원하고 싶은 흑백 사진을 던져주는 것이다. 경찰에게는 비교할 정답 사진이 없지만 이전까지 연습했던 데이터를 활용해 감별해낸다. 위조지폐범과 경찰은 컬러 사진으로 연습해 얻어낸 채색 스킬과 감별능력을 흑백사진을 통해 뽐내게 된다.

 

 

그 옛날의 색과 같을까?

위의 사진은 원본 사진을 흑백으로 변환한 후 알고리즘을 통해 복원해낸 사진과 비교한 것이다. 복원된 모습은 실제로 있을법한 색으로 칠해진 것을 알 수 있지만 원본 사진과는 차이가 난다. 어찌 생각하면 당연한 건데 결과적으로 경찰에 주어진 정답 데이터가 없기 때문에 최대한 비슷하게만 감별을 해 냈고 실제 모습과는 다른 결과를 보여준다.

독립

이는 오래된 흑백사진들에도 동일하게 적용이 된다. 복원해낸 컬러사진은 학습에 사용되었던 사진들을 기반으로 있을 법한 색을 칠한 것이지 실제 그 옛날의 색과 동일하지 않을 수 있다. 아쉽지만 과거의 실제 데이터가 없으니...

그래도 과거의 모습을 간접적으로나마 확인할 수 있음에 만족해야 할 것 같다.

 

흑백사진복원 - 어떻게 컬러로 복원된걸까?

댓글