Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Be Your Own Prada: Fashion Synthesis with Structural Coherence #92

Open
chullhwan-song opened this issue Feb 20, 2019 · 1 comment
Open

Comments

@chullhwan-song
Copy link
Owner

http://mmlab.ie.cuhk.edu.hk/projects/FashionGAN/

@chullhwan-song
Copy link
Owner Author

chullhwan-song commented Feb 27, 2019

Abstract

  • GAN을 통해 새로운 옷을 사람에 입히는 방법제시.
  • input = { image, sentence } > multi-modal
    • image : 입히려는 사람.
    • sentence : 그에 관련 옷에 대한 설명(describing a different outfit)
  • 이러한 input이 주어졌을때, 착용자와 그 포즈와 변하지 않게 다시(착용자는 이미 다른 옷을 입고 있는 상태) 입히는 방법
  • 다음 그림을 보면 더 잘 이해함.
    image
  • 그에 묘사엔 outfit를 설명한 문장으로 그에 맞는 옷을 사람에게 입히는 이미지를 생성하는 것은 New task.
  • 이를 위해, 이 연구에서는 " generative process"를 두 단계로 나누어 품.
    • semantic segmentation map - 착용자의 입히는 공간 확보( latent spatial arrangement, effective spatial constraint)
    • 제안한 Generator 모델로 , (semantic segmentation map에서 이용하여) 정확히 영역에 texture를 입힌 이미지를 rendering
  • DeepFashion dataset

Methodology

  • GAN based
    image
    • z is a random or encoded vector
    • p_data is the empirical distribution of training images,
    • p_z is the prior distribution of z
    • maximum
      • G(x)는 p_data 에 가까워(distribution) 지려고하고.

Overview of FashionGAN

  • input (위와 동일)
    • original image of a wearer
    • sentence description of the new outfit.
      • ex) "a white blouse with long sleeves but without a collar"
  • goal : 묘사된 문장과 동일한 outfit를 입력 이미지에 그대로 입은 옷을 generator
  • scenario
    • original image(I_0)에 입히기 보다. 먼저, person’s segmentation map(S_0)를 추출한다.
      • segmentation map> pixel-wise class labels > hair, face, upper-clothes, pants/shorts, etc
    • wearer의 정보를 추출
      • vector of binary attributes(a)를 추출함. > person’s face, body and other physical characteristics.
        • ex) gender, long/short hair, wearing/not wearing sunglasses and wearing/not wearing hat.
      • 이들 정보로 부터, the mean RGB values of skin color, aspect ratio of the person, coarse body size..,
      • 이들 속성은 최종 output에서 보존되어함.
    • text encoder(v)
    • 정리하자면,
      • design coding = image & human segmentation map S_0 가 실제 input
        • 밑의 식(3)
  • overall generative process
    image
    • the human segmentation (shape) generation (corresponding to the desired/target outfit) - 식(2)
    • texture rendering. - 식(3)
      image
      • image은 S_0의 low resolution representation
        • spatial constraint to ensure structural coherence
    • 식(2)에서 image 보듯, 헤갈리는듯한데, 초기 human parsing(clothing parsing) 프로세스(이전에 이러한 연구들이 존재함)나 segmentation된 라벨된 map 정보 (S_0)이고, 이를 받아 새롭게 Generator하는게 식(2)의 의미인듯.. > 3.2장 Segmentation Map Generation 에서..
      • 초기이외에 또한번 정확한(?) segmentation map을 생성한다는 의미인듯..
    • texture for each semantic part와 segmentation map과 일치 시키는 과정이 필요 > compositional
      mapping
      - 식(3)

Segmentation Map Generation (G_shape)

  • Generator imageimage를 생성하는게 목적.
  • 다시말하면, image는 S_0' segmentation 정보를 design coding d 맞는 segmentation 로 재 생산해내는것.

spatial constraint image

  • 이를 생성하기 위해서는 위에서 언급했듯이 3가지 입력값를 받아 생성, Fig.2
    • S_0, design coding d, Gaussian noise z 가 spatial constraint의 입력값.
    • S_0의 생성
      • the original image using a pixel-wise one-hot encoding > S_0 > 이는 라벨 L개의 nxm 사이지의 이미지들. > 이는 각 라벨 L마다 0, 1로 표현한 binary 이미지
      • 이 논문에서는 " L = 7 corresponding to background, hair, face, upper-clothes, pants/shorts, legs, and arms."
    • 원 이미지의 입고 있는 정보는 불필요하고, 그 이미지안에 있는 사람의 정보만 capture.
    • 그리고, spatial constraint의 역할은 구조적 일관성 보존(preserving structural coherence)이 중요한 룰임.
      • S_0 를 down-sampling & merge
        • S_0의 down-sampling를 사용하는 이유는 높은 해상도 정보가 그닥 image를 생성하는데 좋지 못한 문제를 일으키는듯.. > 사실 와닿지 않지만.ㅠ
          image
          * down-sampling의 사용은 S_0와 d 사이의 상관관계를 약화(contradict)시켜서..좋다?
          * S_0에서 사용하고 싶은 정보는 인간의 body shape정보등만 필요하고, design coding d는 실제로 S_0 segmentation과 그닥 일치하지 않아야 한다.
          * 왜이리 힘들게 써놓았을까 생각되지만, 일단, S_0 & d는 서로 상반되는 정보를 가지고 있다. 즉, d는 입히고자 하는 정보이고, S_0는 segmentation정보는 원래 입고 있는 정보이다. > 긴소매를 입히고 싶은데 S_0은 그렇지 않을수 있다...
  • 촛점은 왜 S_0를 down-sampling하는 이유에 대해 ?? == image

Shape Generation

image

  • image segmentation map은 design coding d와 일치하는 속성을 지녀야한다.
  • Generator하려고하는 human shape은 S_0에서의 지닌 pose 속성을 가져야한다.
  • G_shape를 Generator하기 위해 GAN 도입.
    • generator and discriminator > convolution/de-convolution layers with batch normalization and non-linear operations
    • Softmax activation function on each pixel & 라벨마다의

Texture Rendering (G_image)

  • image는 입력이미지의 body shape과 design coding d의 속성과 일치된 Segmentation 정보이다.
  • 이 정보를 바탕으로 Texture Rendering을 통해 원하는 최종 output 이미지를 Generator한다.
  • 이때 다시 GAN을 사용 = FashionGAN
    • 이때, 다시, image, design coding d, Gaussian noise z 를 입력값으로 이용.

Compositional Mapping

  • segmentation map에 Guide된 이미지를 Generator > 원래 GAN은 region 정보와 상관없이 Generator.
    • 이런 이유로, Compositional 이란 단어를 쓰는것같음.
  • 이렇게 하면 더 좋은 성능
    • the new mapping layer helps to generate textures more coherent to each region and maintain
      visibility of body parts.
  • segmentation map에 Guided되었다는 또 다른 의미는 각 Segmentation part 즉, 라벨된 category 영역 을 이용한다는 의미.

Image Generation

  • Shape Generation에서 사용하였던 GAN Network와 유사.
    • 단, Tanh activation function

실험

image
image
image
image

  • Shape prior S_0
    • One-Step-8-7: We use the down-sampled but not merged segmentation map (8×8×7) as the prior;
    • One-Step-8-4: We use the down-sampled merged segmentation map (8×8×4) as the prior (the same setting we used in our first stage GAN).

image
image

결론

  • 개인적으론 이 연구 결과가 너무 좋지 않다고 생각한다. 이전에 했던, Everybody Dance Now의 방식과도 연관되어있을거 같은데.. ProGAN이나 함께 해보면 이보단 좋지 않을까??

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant