What is GAN?

Q1. Pix2pix 모델 같은 경우 이미 정답으로 존재하는 groundtruth 가 있는데 무엇을 output으로 기대하고 모델을 학습시킬까?

모델의 output은 groundtruth와 비슷하지만 다른 이미지를 생성할 수 있다. Acadia paper에서도 groundtruth의 오류를 GAN이 수정함.

Q2. Pix2pix 모델은 test 할 때 paired 한 이미지가 필요한가?

모델은 paired image를 input으로 받기 때문에 당연히 paired image로 test 해야한다.

Q3. Unpaired image로 돌릴 순 없는가?

Pix2pix 와 반대되는 모델인 cycleGAN, discoGAN이 있다.

Pix2pix 처럼 paired dataset이 있다면 좋겠지만 현실에선 정답이 존재하는 dataset을 찾기 쉽지 않다. 예를 들어, 모네 화풍의 정답 이미지는 존재하지 않음. 따라서 unpaired image로도 학습을 할 수 있게 만든 모델.

Q4. What is CycleGAN?

기존의 GAN은 X에서 Y로의 단순한 mapping을 하는 함수 G가 존재한다. 이렇게 되면 Y Domain의 이미지 처럼만 보이게 하면 되기 때문에 효과적이지 못하다. 따라서 X의 구조는 유지하되 Y로 style만을 바꾸기 위해 다시 Y에서 X로 돌아오는 mapping도 고려한다.

Q5. What is DiscoGAN?

CycleGAN은 스타일 변형에 초점을 두었다면 DiscoGAN은 형태 변형에 초점을 두었다. 대신, 학습이 어렵고 해상도가 떨어지나 형태 변형은 자유롭다.

REF https://taeoh-kim.github.io/blog/image2image/

Q6. GAN은 왜 만들어졌을까?

CNN, RNN 등 큰 성공을 거두었던 deep discriminative model(정답이 있고 분류하는 지도학습) 과는 달리 deep generative model은 maximum likelihood estimation에서 다룰수 없는 확률적인 계산때문에 어려움이 있었다. 따라서, generative model의 실패를 피하기 위해 discriminative model을 사용함.

REF https://www.facebook.com/goaistep/posts/333321837103818/

GAN종류 32가지…(in AllGAN code)

Pix2pix

dataset을 돌리면서 train 과 test data의 차이점이 궁금하여 다른 pix2pix 모델에도 같은 dataset을 적용해보았다.

Pix2pix https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix

Training environment: epoch 10, dataset example 10

Test input

Test output

더 많은 dataset 으로 Training 결과 필요

다른 dataset 생성

Generate new Dataset #2

  1. 새로운 Dataset 만들기

Pix2pix 모델의 dataset 예시이다.

ground truth 사진과 input 사진 순서대로 붙여서 사용한다. (width = 256+256, height = 256)

Input 은 건축 플랜의 Sketch 형태를 만들어야 하므로

rhino에서 Explode Hatch()와 DeleteObjects() 함수를 사용하여 벽의 선만 남기고 모든 object 들을 제거했다.

pix2pix 모델 dataset 예시처럼 사진의 크기를 256 사이즈로 변환시켰다.

이전보다 선의 굵기를 굵게 바꾸었다.

dataset 결과 예시

왼쪽 사진이 ground truth, 오른쪽 사진이 input(sketch) 사진이다.

2. Pix2Pix 모델 사용해보기

학습되는 시간이 느리다.

아직 train, validation, test dataset이 어떻게 작동하는지 공부 필요

0.png

Thinking of my GAN research

GAN 사용 예시: https://machinelearningmastery.com/impressive-applications-of-generative-adversarial-networks/ (2019.06)

  • Generate Examples for Image Datasets
  • Generate Photographs of Human Faces
  • Generate Realistic Photographs
  • Generate Cartoon Characters
  • Image-to-Image Translation
  • Text-to-Image Translation
  • Semantic-Image-to-Photo Translation
  • Face Frontal View Generation
  • Generate New Human Poses
  • Photos to Emojis
  • Photograph Editing
  • Face Aging
  • Photo Blending
  • Super Resolution
  • Photo Inpainting
  • Clothing Translation
  • Video Prediction
  • 3D Object Generation

Our Objective  = ㅡ>  ≠ or -, = ㅡ> 三

기존의 acadia paper

  • pix2pix 모델을 사용
  • Ground truth라는 정답이 이미 존재
  • Ground truth의 부분들을 복사 붙여넣기 하는 정도

Suggestion:

무 에서 유를 창조하는 것은 너무 힘드니

방2 화장실1 거실1 영역의 구조를 재배치? 

Retry

  • 너무 랜덤한 dataset이 아니었을까?
  • 너무 이미지 해상도가 큰게 아니었을까?

더욱 간단하고 랜덤 변수가 적은 dataset 100개 생성 후 가장 결과가 잘 나왔던 original GAN에 시험적으로 training 해보았다.

image size = 126, batch size=4

Results

epoch=10
epoch=20
epoch=30
epoch=40

DCGAN #8

setting environment

https://www.researchgate.net/publication/328280126_Architectural_Drawings_Recognition_and_Generation_through_Machine_Learning

위의 Acadia paper의 setting environment를 살펴보면,

115 images 사용(100개 training, 15개 testing)

1 epoch with 100 images: 80 seconds

총 80 epochs

DCGAN Google Colab 환경

MNIST dataset을 다운로드하여 data storage을 확인하였다.

빈 공간은 76.77GB, 약 1KB 이미지 3000장을 upload 한 결과 0.01GB 감소

워드프레스닷컴으로 이처럼 사이트 디자인
시작하기