본문 바로가기
Deep Learning

[논문리뷰] Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic Image Colorization with Simultaneous Classification

by 지오는 짱짱걸 입니다 2021. 11. 12.
반응형

안녕하세요. 오늘은 논문 리뷰를 이렇게 그림도 넣어서 해보려고 해요. 이게 더 가독성이 좋지 않을까 해서요. 그럼 시작해볼게요!!

 

본 논문은 2016년에 SIGGRAPH라는 곳에서 발표된 논문입니다. 제 기억이 맞다면 본 논문이 각종 커뮤니티에서 그 당시 많은 이슈가 되었던 것으로 기억합니다.

논문의 제목은 그곳에 색이 있으라라는 의미의 let there be color라는 멋진 제목을 가지고 있습니다. 인용수는 현재까지 659회입니다.

 

본 논문의 설명으로 본격적으로 들어가기 전에 한 가지만 짚고 넘어가겠습니다.

 

컴퓨터에서 컬러 이미지를 나타낼 때는 크게 RGB, CMYK 그리고 Lab 칼라 이렇게 세 가지 방식이 있습니다.

RGB는 빛의 삼원색인 red, green, blue에 의한 색 표시 방식으로 다들 잘 알고 계시는 흔한 방법입니다.

다음으로 CMYK 방법이 있는데, 이 방법은 잉크의 삼원색인 cyan(청색), magenta(적자색), yellow(노랑색)black(검정색)을 합하여 네 가지 색상으로 표현하는 방식이며, 주로 인쇄용 작업에 사용됩니다.

 

마지막으로 Lab 칼라 방법이 있습니다. 이 방법은 red, yellow, blue, green4원색으로 한 표현 방식입니다. 이렇게 표현하면 모니터나 프린터에 좌우되지 않는 독립적인 방법으로 색상을 구현할 수 있고, rgbcmyk의 범위를 모두 포함할 수 있는 색상범위를 가지게 됩니다. 여기서 L은 명도, ared, green을 그리고 bblueyellow를 표현합니다. 색상과 빛을 분리하여 이미지를 표현하기 때문에 채도의 변화 없이 색상대비와 밝기 조절이 가능하다고 합니다.

여기서 이렇게 다양한 종류의 이미지 색 표현 방식을 설명 드린 이유는 이 논문에서는 이미지를 Lab방식으로 표현하고 있기 때문입니다.

 

실제 논문에서는 다음과 같이 Lab방식이 ground truth와 비교했을 때 가장 유사하게 색이 복원되어졌기 때문에 Lab를 사용했다고 합니다.

 

이제 논문으로 들어가 보겠습니다. 논문에서는 2016년 이전의 많은 이미지 colorization 방법과는 다르게 fully automatic으로 이미지의 색을 자동으로 칠해준다는 점이 의미 있는 결과라고 했습니다. 또한 아래의 이미지를 보시면 알겠지만 색을 아주 현실적으로 복원해준다는 점이 주목할 만한 점이라고 합니다.

 

이 논문에서는 두 가지의 네트워크를 사용했습니다. Global image의 사전 정보를 학습하는 네트워크와 local image의 작은 patch들을 학습하는 네트워크 입니다. 최종적으로 이 두 가지 네트워크를 서로 조합하여 이미지의 colorize를 자동으로 실행하게 만들어줍니다.

논문에서는 두 네트워크를 조합하는 방법을 fusion layer라고 했습니다. 그리고 global 사전 정보를 학습하는 네트워크는 단순하게 우리가 잘 알고 있는 classification network입니다.

 

본격적으로 논문에 대해서 설명 드리기 전에 먼저 이전까지의 채색 관련 연구는 연구에 대해서 말씀드리겠습니다.

 

먼저 위의 scribble-baseduser가 미리 흑백 사진에 어떤 색을 칠할지 정해주면, AI가 적절하게 채색을 진행하는 방법입니다.

그런데 이런 방법을 사용하면 user의 입력에 대해서 강한 의존성을 가지고 좋은 결과를 얻으려면 여러 번의 시도를 해야 하기 때문에 요즘은 사용되지 않고 있습니다.

 

두 번째 방법은 아래의 Reference image-based 방법입니다.

이 방법은 입력과 비슷한 레퍼런스 이미지를 통해 입력 이미지에 대해 적절한 채색을 하는 방법입니다. 그림을 보시면 Input에는 흑백 성 이미지가 입력되는 것을 보실 수 있고, reference에는 유사한 성 이미지가 흑백이 아닌 컬러 이미지로 입력되어 있는 것을 보실 수 있습니다(서로 같은 이미지가 아니라 조금 다른 이미지예요). 이렇게 입력과 유사한 reference 이미지를 사용해서 적절한 출력을 생성하는 방법이 reference image-based 방법입니다.

하지만 이 방법도 결국에는 입력과 비슷한 reference 이미지를 찾기 위해 사람이 적절한 전처리를 수행해야 한다는 것에 있어 좋지 않습니다.

 

마지막으로 automatic colorization 방법이 있긴 합니다. 이 방법은 입력 이미지를 각각의 patch들로 나누고 그 patch를 입력으로 하는 작은 뉴럴 네트워크를 통해 feature를 얻습니다. 이렇게 얻어진 feature를 사용하여 최종적으로 채색을 하게 됩니다. 이때 입력 이미지로부터 각각의 패치를 뽑는 과정에서 segmentation 기법이 사용되는데, 만약 segmentation이 제대로 작동하지 않는다면 전체 이미지에 대한 채색 성능이 떨어지기에 end-to-end로 학습할 수 있는 본 논문에서 제안한 모델과 비교해서 다소 떨어지는 성능을 보이게 된다고 합니다.

 

이제 본 논문으로 본격적으로 들어가 보겠습니다.

 

모델의 구조는 다음과 같습니다.

 

모델은 Low-level feature network, mid-level feature network, global feature network 그리고 colorization network 같은 4개의 network 구성되어져 있습니다.

 

low-level feature network mid-level global feature network에서 공유되어 사용되는 네트워크 입니다. low-level feature network에서는 우리가 알고있듯이 이지미의 엣지나 코너같은 lower features 학습하게 됩니다.

 

모델은 먼저 크게 두 개의 브랜치로 나누어집니다. 위의 브랜치의 네트워크가 local feature를 위한 네트워크입니다.

 

그리고 아래 보이는 네트워크가 global feature를 위한 네트워크 입니다.

 

가운데 보시면 fusion layer라는 것이 있는데, 이것을 통하여 두 개의 네트워크를 조합하고 이미지의 colorizeautomatic하게 할 수 있습니다.

 

여기서 global feature network가 학습하는 것은 전체 학습데이터에 있는 이미지 레벨에서의 정보를 학습한다고 합니다. 예를들면 이미지가 외부에서 촬영된 이미지인지 내부에서 촬영된 이미지인지 또는 낮인지 밤인지 등의 정보를 학습한다고 합니다.

 

그리고 local feature network 입력 이미지를 통해 주어진 위치에서의 local texture 또는 local object 표현하게 된다고 합니다.

 

이렇게 학습된 네트워크를 fusion layer 통해 서로 합치게 됩니다. global feature network에서의 결과인 1차원 vector mid-level features network location마다 뎁스 방향으로 concatenate합니다. 사실 지금 여기서 gobal feature network의 결과로 256vector가 나오고 mid-level feature network의 결과로 256뎁스가 나오는데, 이 둘을 뎁스 방향으로 concat하면 fusion layer512사이즈의 뎁스를 가지게 됨을 알 수 있습니다.

 

마지막으로 fused features를 입력으로 사용하여 colorization network를 통해 색차 feature를 출력하게 되고 이 결과를 input 이미지와 합쳐서 최종 결과물인 흑백 이미지를 색이 있는 이미지로 만들게 됩니다.

 

이 때, 이 모델의 output은 색차인 chrominancered, green값을 가진 Ayellow, blue값을 가진 B를 출력하므로 입력 이미지의 black and white의 값인 Ldepth 방향으로 합쳐지면 칼라 이미지를 만들어낼 수 있습니다.

 

이렇게 모델이 구성되면 MSE loss를 통해 학습이 진행됩니다. Input으로 흑백의 이미지가 입력되고, output으로 색차(chrominance) 이미지가 출력됩니다. 이렇게 출력된 outputground truthMSE loss계산하고 backpropagate 되면서 학습이 진행됩니다. 하지만 MSE loss만 사용하는 것은 아닙니다. 왜냐하면 앞에서도 말했듯이 global featureclassification을 통해 학습되기 때문입니다.

 

이렇게 global features network2개의 fully-connected layer로 구성된 classification network를 붙여주면 최종적으로 모델의 구조가 완성됩니다. 이렇게 되면 imageglobal context를 학습할 수 있으므로 이미지의 semantic정보를 학습할 수 있습니다. 예를 들어서 맑은 하늘, 사람의 피부 와 같은 semantic 정보를 학습할 수 있게 됩니다.

참고로 여기서 classification network205개의 분류를 진행하게 됩니다.

 

그래서 결국 colorization network loss MSE에서 classification network loss cross entrophy loss 값이 모델의 최종 loss식이 됩니다. 여기서 알파 값은 classification network에 얼마만큼의 중요도를 줄지를 정하는 값입니다. 당연하게도 알파 값에 0을 대입하면 classification network의 결과를 사용하지 않고 오로지 colorization loss만 사용한다는 의미가 됩니다. 이 논문에서는 알파 값을 1/300로 설정하고 학습했다고 합니다.

 

이 논문에서 데이터셋으로 places scene dataset을 사용했고 이 데이터셋의 개수는 대략 230만개입니다. 데이터셋의 형식은 이미지 데이터이며, 205개의 class들이 존재합니다.

 

이렇게 소개해드린 데이터셋을 통해 학습한 결과를 바탕으로 global feature network에 대한 유용함을 증명하기 위해 global feature를 뺀 결과와 포함한 이미지 결과를 비교해 보도록 하겠습니다.

이 그림을 보면 가운데 baseline이라고 쓰여 있는 결과 값이 global feature network를 학습하지 않는 모델에서의 결과 이미지이고, 제일 오른쪽 결과 값이 모든 네트워크 구조를 사용한 결과 이미지 입니다. Baseline이미지를 보면 몇가지 어울리지 않는 부분이 있다는 것을 알 수 있습니다. 가령 호수의 물이 갈색으로 땅과 같이 갈색으로 칠해진 것을 볼 수 있거나 indoor이미지인데 반해 천장의 색이 하늘색과 같이 표현된 것을 볼 수 있습니다. 대신 제일 오른쪽 결과 이미지를 보면 global feature를 포함한 모든 구조로 학습한 모델은 baseline과 같은 오류를 범하지 않은 것을 확인할 수 있습니다. 그러므로 이 모델에서 global featureimagecontext, 즉 맥락을 이해한다고 할 수 있습니다.

 

추가적으로 다른 모델과의 비교를 해보겠습니다. 이 사진은 이때 당시 SOTA였던 다른 모델과 비교한 결과 입니다. 첫 번째 행이 모델의 입력입니다. 두 번째 행은 이전의 SOTA모델이고, 세 번째 행은 본 논문에서 제안한 모델에서 global feature network를 학습하지 않는 모델입니다. 그리고 마지막 행이 본 논문에서 제안한 전체 모델을 사용한 것입니다. 확실히 보면 아래행으로 갈수록 더욱 세부적인 색채가 더욱 잘 되는 것을 확인할 수 있습니다.

 

이 사진들은 본 논문에서 제안한 모델을 통해 채색된 이미지입니다. 실제와 같이 상당히 잘 된 것을 볼 수 있습니다. 소방차는 빨간색으로, 말은 갈색으로, 풀은 녹색으로 그리고 건물의 유리는 파란색으로 칠해진 것을 보면 실제로 global feature가 이미지의 semantic정보를 잘 학습하는 것 같습니다.

 

이렇게 모델의 결과가 진짜 같은 이미지라는 것을 테스트할 수 있는 방법이 있어야 하는데, 본 논문의 모델은 진짜같이 채색 된 이미지를 output으로 나타내어주는 것이기 때문에 사람들에게 질문을 통해 본 논문에서 소개한 모델의 결과가 좋다는 것을 입증했다고 합니다.

Ground truth이미지와 baseline 그리고 전체 모델을 통과한 이미지를 각각 500개씩 총 1500개를 랜덤하게 10명의 테스트 하는 사람들에게 보여주고 이미지가 자연스러운지 아닌지를 테스트했습니다. 이 때 ground truth이미지가 97.7%의 자연스러움을 보였고 또한 이 모델의 결과 이미지가 92.6%의 자연스러움을 보였으므로 이 논문의 방법이 일반적이고 사실적인 채색화를 했다고 생각해도 된다고 합니다.

 

다음으로 소개해드릴 부분은 제가 본 논문에서 제일 신기했던 부분입니다. Global feature를 학습하는 네트워크의 입력으로 local network와 다른 이미지를 입력으로 넣으면 네트워크의 출력 결과가 Global feature의 이미지에 대한 스타일로 채색될 수 있다고 합니다. 예를 들어 입력으로 어떤 이미지를 흑백 이미지로 변환하여 모델에 입력했을 시 다음의 그림과 같이 출력으로 나온 결과가 봄이라고 하겠습니다.

 

이번에는 다른 이미지를 흑백 이미지로 변환하여 모델에 입력했을 시 그림과 같이 출력으로 나온 결과가 가을이라고 해봅시다.

 

이 때 local networkglobal network에 서로 다른 입력을 넣는다면, local network에 봄에 해당하는 이미지를 입력으로 넣고 global network에는 가을에 해당하는 이미지를 입력으로 넣고 결과를 출력하면 놀랍게도 봄에 해당하는 이미지가 가을의 모습으로 변경되는 것을 확인할 수 있습니다. style transfer가 되는 것이라 생각할 수 있습니다. 여기서 주목할 점은 localglobal network의 입력 모두 흑백 이미지가 입력으로 들어갔다는 점입니다. 물론 본 모델에서는 정확한 style transfer를 위해서는 이미지의 클래스가 같거나 유사한 이미지에 대해서 입력해야 한다고 합니다. 예를 들어 정원 클래스와 골프 코스 클래스와 같은 서로 유사하거나 같은 클래스의 이미지를 필요로 합니다. 하지만 본 논문에서 소개한 모델의 모든 입력이 흑백인 것을 감안하면 global feature에서 학습되는 것이 정말 이미지 전체의 context라는 것을 알 수 있게 해줍니다.

 

하지만 본 모델에도 한계가 있습니다. Colorization은 본질적으로 모호한 문제입니다. 예를 들어 위와 같은 '사진에서 텐트의 색이 무슨 색입니까?' 를 예측했을 때 무한한 답이 나올 수 있는 것과 같은 것을 말합니다. 그러므로 이러한 문제에 대한 값으로는 정확한 답을 맞출 수 없는 문제가 있습니다. 하지만 그럼에도 이미지의 semantic 정보를 학습하는 global network가 존재하기 때문에 다른 모델과 비교했을때는 정답에 좀 더 비슷하게 채색되어지기는 합니다.

 

이제 마지막입니다. 본 논문에서 소개한 모델에서는 global networklocal network를 학습해서 이미지의 colorization을 더욱 진짜같이 할 수 있습니다. 또한 이 두개의 network를 이어주는데 fusion layer를 사용했고, 학습된 논문의 네트워크 하나를 통해 style transfer까지 가능했었습니다. 즉, 본 모델은 global network를 통하여 전체 이미지의 semantic정보를 학습하고 local network를 사용하여 global network로부터의 semantic정보를 활용해 흑백 이미지에 대한 colorization을 더욱 진짜 이미지와 같이 할 수 있습니다.

 

 

Reference

https://dl.acm.org/doi/pdf/10.1145/2897824.2925974

 

Let there be color!: joint end-to-end learning of global and local image priors for automatic image colorization with simultaneo

Preview is not available. By clicking download,a new tab will open to start the export process. The process may takea few minutes but once it finishes a file will be downloaded on your browser soplease do not close the new tab.

dl.acm.org

 

반응형