이것저것 기록

[DL, GAN] 개인 데이터셋에 CycleGAN 적용해보기 본문

Data Science/ML & DL

[DL, GAN] 개인 데이터셋에 CycleGAN 적용해보기

anweh 2020. 9. 26. 19:27

https://arxiv.org/abs/1703.10593 

 

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks

Image-to-image translation is a class of vision and graphics problems where the goal is to learn the mapping between an input image and an output image using a training set of aligned image pairs. However, for many tasks, paired training data will not be a

arxiv.org

CycleGAN 원논문 주소

 


 

Image-to-Image translation은 paired image 세트를 사용해서 입력이미지와 출력이미지를 매핑하는 것을 목표로 한다. 얼룩말을 일반 말로, 모네의 그림을 사진처럼, 사진을 모네가 그린 그림처럼 바꾸는 것이다. 

 

Image-to-Image tralsation

cycleGAN을 연구한 연구실에서 cycleGAN이전에 소개했던 pix2pix와의 차별성은 학습할 때 paired training set이 필요 없다는 점이다. cycleGAN은 paired training set 없이 이미지의 모음에서 특징을 파악한 후, 다른 이미지 모음에 어떻게 이 특징을 적용 (translate)할지를 배운다. 

 

cycleGAN에 대한 자세한 설명은 velog.io/@chy0428/CycleGAN 이 블로그를 참고하면 좋다. 가장 쉽고, 자세하게 설명되어 있다. 

 


 

어쨌든 내가 cycleGAN을 통해 해보고 싶었던 것은 인피니트 성규의 사진을 세잔의 그림풍으로 바꾸는 것이었다. (결과적으론 실패했지만...) 세잔의 그림을 성규처럼 바꾸는 것은 애초에 기대하지 않았고, cycleGAN 네트워크가 세잔의 그림풍을 학습해서, 성규 이미지를 세잔이 그린 것처럼 바꿔주길 원했는데ㅠㅠ 

 

네트워크 코드는 github.com/eriklindernoren/Keras-GAN/tree/master/cyclegan 를 참고해서 적용했다. 

별로 수정해준 것은 없고, 이미지 사이즈가 원코드와 맞지 않아서 그 부분을 조금 수정했고, dataset_name을 'kyu2cezanne'로 수정해줬다. 

그런데 학습이 끝나고 깨달았는데... 이 코드... 모델과 웨이트를 저장하는 로그 코드가 없다 ㅋㅋㅋㅋㅋㅋㅋㅋ

학습된 모델에다가 다른 사진도 적용하려고 봤는데 당황했다...  

 

실험결과 (kyu2cezanne)

epoch = 5
epoch = 50

 

epoch = 201
epoch = 250
epoch = 497

첫째줄 중앙을 보면 된다. 보다시피.. 에폭 200쯤부터 세잔의 그림처럼 느낌이 바뀌긴 했는데 원 이미지의 디테일은 살리지 못한 것을 볼 수 있다. 

확실히 세잔풍의 '느낌'이 나긴 한다. 

문제는 그 느낌이 원 이미지의 디테일을 죽이는 쪽으로 적용이 된다는 것이지ㅠㅠ 이미지셋 크기가 너무 작아서 압축되면서 디테일이 다 날아갔을 수도 있고... 

다양한 조건에서 실험을 적용해본게 아니라서 정확한 원인은 분석하지 못했다. 

성규 얼굴에만 이런가 싶어 원 논문에서 제시한 데이터셋도 다운받아서 적용해봤다. 

 

ukiyoe2photo

epoch = 20

 

epoch = 62
epoch = 100
epoch = 108

음.. 확실히 풍경화에서 배운 특징을 풍경사진에 적용할 땐 잘 적용되는 것 같다.

원래 에폭 500까지 갔어야되는건데 에폭 100이 거의 하루가 꼬박 걸려서... 중간에 그냥 꺼버렸다. 

원 논문에선 말을 얼룩말로 바꾸고, 사과를 오렌지로 바꾸고 한 것을 보면 동일한 대상에서 배운 특징이 잘 적용되는 듯하다. 

성규오빠 미안해... 안티 아님 ㅠㅠ 

 

Comments