๐Ÿฑ Project/2021Captone : Cycle GAN Web

Cycle GAN ์ •๋ฆฌ #1

์ง€ ์› 2022. 1. 14. 17:25

https://youtu.be/Fkqf3dS9Cqw

Cycle GAN ๋…ผ๋ฌธ ์ €์ž๋‹˜์˜ ๋ฐœํ‘œ๊ฐ•์˜ ์˜์ƒ

Cycle GAN

์‚ฌ์ง„์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” 2๊ฐ€์ง€์˜ data set ์„ ์ด์šฉํ•˜์—ฌ ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€์˜ style๋กœ ๋ณ€ํ™˜

 

How does it work?

  • pix2pix
  • GAN
  • Cycle GAN

 

 

pix2pix

input ๊ณผ out์ด ๋ชจ๋‘ ์‚ฌ์ง„์ด์–ด์•ผ ํ•˜๋Š” supervised learning framework

Goal : ํ‘๋ฐฑ์‚ฌ์ง„์€ ์ปฌ๋Ÿฌ์‚ฌ์ง„์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” neural network

 

train

test

ํ‘๋ฐฑ โ†’ ?

 

 

 

train

๋„ํ˜•โ†’์‚ฌ์ง„

test

๋„ํ˜•โ†’?

 

 

 

 

Loss : output G(x) and ground truth y ์˜ ์ฐจ์ด๋ฅผ ์ตœ์†Œํ™”

โ†’ ์–ด๋–ค ๊ฒƒ์ด ๊ฐ€์žฅ ์˜ณ์€ ๊ฒƒ์ธ์ง€ (์‚ฌ๋žŒ์€ ์•Œ ์ˆ˜ ์žˆ์œผ๋‚˜) ํŒ๋‹จ ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์ค‘๊ฐ„๊ฐ’์„ ์„ ํƒํ•˜๊ฒŒ ๋จ. ๋”ฐ๋ผ์„œ ๊ฒฐ๊ณผ๋ฌผ๋“ค์ด ๋Œ€์ฒด๋กœ ๋ฟŒ์—ฐ ํŽธ. (only pixel level difference ์œผ๋กœ ์ž‘๋™ํ–ˆ์„ ๋•Œ)

 

 

 

GAN

Neural Network G์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ Discriminator Network D๋ฅผ ๋„์ž….

 

 

D๋Š” real์ธ์ง€ fake์ธ์ง€ ํŒ๋‹จ.

G๋Š” D์—๊ฒŒ fake์ž„์„ ๋“คํ‚ค์ง€ ์•Š๋„๋ก ํ–ฅ์ƒ.

 

 

D ํ›ˆ๋ จ ์‹œํ‚ค๋Š” ์‹

 

G ํ›ˆ๋ จ ์‹œํ‚ค๋Š” ์‹

 

G๊ฐ€ ๊ฐ€์žฅ ์ž˜ ํ›ˆ๋ จ๋œ D๋ฅผ ์†์ผ ์ˆ˜ ์žˆ๋Š” Network ๊ฐ€ ๋˜์–ด์•ผํ•จ

 

GAN ์€ pix2pix์™€ ๋‹ค๋ฅด๊ฒŒ D๋ผ๋Š” ํ•จ์ˆ˜์™€ ํ•จ๊ป˜ ๊ฒฝ์Ÿํ•˜๋ฉด์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•ด ๋‚˜๊ฐ

 

 

โ†’ pixel level difference ์™€ GAN์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, ๋ณด๋‹ค ์‹ค์‚ฌ์ ์ธ ์ด๋ฏธ์ง€๋ฅผ ์–ป์–ด ๋‚ผ ์ˆ˜ ์žˆ์Œ

 

Cycle GAN

: pair ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์˜ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์„ ํ•™์Šต

 

 

ํ•œ๊ณ„์ 

  • input ์„ ๋ฌด์‹œ
  • ์–ด๋–ค input์—๋„ ๊ฐ™์€ output์„ ๋งŒ๋“ค์–ด๋ƒ„

 

 

Cycle GAN ์˜ Key object

G๋ฅผ ํ›ˆ๋ จ์‹œํ‚ด๊ณผ ๋™์‹œ์— ๋ฐ˜๋Œ€์˜ F๋„ ํ•จ๊ป˜ ํ•™์Šต์„ ์‹œํ‚ด

โ†’ ๊ทธ๋ฆผ์„ ์‚ฌ์ง„์œผ๋กœ ๋งŒ๋“ฆ๊ณผ ๋™์‹œ์—, output ์‚ฌ์ง„์œผ๋กœ ์›๋ž˜ input์ธ ๊ทธ๋ฆผ์„ ์œ ์ถ”ํ•ด ๋‚ผ ์ˆ˜ ์žˆ์–ด์•ผํ•จ

 

 

Loss

โ‡’ pix2pix์™€ ๋น„์Šทํ•˜๋‚˜, GAN Loss๊ฐ€ ํ•˜๋‚˜์žˆ๊ณ , ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ pixel level difference๊ฐ€ ์ ์šฉ๋œ ํ˜•ํƒœ

 

 

F(G(x))โ‰ˆx ๊ฐ€ ๋˜์–ด์•ผ ํ•จ์€ G(F(y))โ‰ˆy ์™€๋„ ๊ฐ™์€ ์˜๋ฏธ์ด๋ฏ€๋กœ, Cycle GAN ์˜ Loss ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Œ

 

 

Cycle GAN ์˜ loss formulation

์ฃผํ™ฉ์ƒ‰ ์„ ์ด G ํŒŒ๋ž€์ƒ‰ ์„ ์ด F

 

 

 

โ“ ํ˜„์žฌ์˜ Cycle GAN ์ˆ˜์ค€์—์„œ ์—ฌ๋Ÿฌ๋ฒˆ Cycle์„ ์ ์šฉํ•˜๋ฉด ์›๋ž˜์˜ content์™€๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์–ด์ง€๊ฒŒ ๋จ. โ†’ Cycle GAN์˜ ์ˆ˜์ค€์ด ๋†’์•„์ง€๋ฉด ๋‹น์—ฐํžˆ Cycle ์„ ์—ฌ๋Ÿฌ๋ฒˆ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Œ!

 

โ“ ์‚ฌ๋žŒ์ด ๋ง์„ ํƒ€๊ณ  ์žˆ๋Š” ์‚ฌ์ง„์„ ๋ณ€ํ™˜ํ•˜๋ฉด ์‚ฌ๋žŒ์ด ์–ผ๋ฃฉ๋ง์„ ํƒ€๊ณ  ์žˆ๋Š” ์‚ฌ์ง„์€ ์—†์œผ๋ฏ€๋กœ ์‚ฌ๋žŒ์ด ์›ํ•˜๋Š” ์‹์œผ๋กœ ๋ณ€ํ™˜์ด ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌ

 

โ“ SK T๋ธŒ๋ ˆ์ธ์˜ disco GAN ๊ณผ ๋‹ค๋ฅธ ์ ?

disco GAN ์€ Encoder-decoder ๋ฅผ ์‚ฌ์šฉ โ†’๊ธ‰์ง„์ ์ธ ๋ณ€ํ™”๊ฐ€ ๋งŽ์ด ์ผ์–ด๋‚˜๊ฒŒ ๋จ : ๋ชฉํ‘œ๊ฐ€ ๋‹ค๋ฆ„