Segmentation-Neural-Style-Transfer ๐Ÿ’ป + ๐ŸŽจ = ?


ํ”„๋กœ์ ํŠธ ๊ฐœ์š”


  • NST ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€?

์•Œ๊ณ ๋ฆฌ์ฆ˜์€ CNN๋„ท(์ผ๋ฐ˜์ ์œผ๋กœ VGG-16/19)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ์ž…๋ ฅ ์ด๋ฏธ์ง€(์Šคํƒ€์ผ ์ด๋ฏธ์ง€)์—์„œ -> ๋‹ค๋ฅธ ์ž…๋ ฅ ์ด๋ฏธ์ง€(์ฝ˜ํ…์ธ  ์ด๋ฏธ์ง€)๋กœ ์Šคํƒ€์ผ์„ ์ „์†กํ•œ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” GAN์„ ํ™œ์šฉํ•œ Style Transfer์„ ํ†ตํ•ด ์—ฐ์†๋œ ์ด๋ฏธ์ง€์˜ ์Šคํƒ€์ผ ๋ณ€ํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ , ํŠน์ • ์˜์—ญ์„ ์ง€์ •ํ•˜์—ฌ ์Šคํƒ€์ผ ๋ณ€ํ™”๋ฅผ ํ•œ๋‹ค.

  • style GAN์ด๋ž€?

style gan

  1. ์Šคํƒ€์ผ ์ด๋ฏธ์ง€ + ์‚ฌ๊ณ„์ ˆ, ์ฝ˜ํ…ํŠธ ์ด๋ฏธ์ง€ โ†’ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” gif ์ƒ์„ฑ
  2. ํŠน์ • ์˜์—ญ(์ง€์ • ์˜์—ญ)๋งŒ ์Šคํƒ€์ผ ๋ณ€ํ™˜

๋‹ค์Œ๊ณผ ๊ฐ™์ด Style transfer ์‘์šฉ ๋ถ„์•ผ ํ™•์žฅ ์ด ๋‘ ๊ฐ€์ง€๋ฅผ ์ˆ˜ํ–‰ํ•จ.


ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ


python, numpy, os, argparse, matplotlib, cv2 ๊ธฐํƒ€ ๋“ฑ๋“ฑ...

channels:

  • defaults
  • pytorch

dependencies:

  • python=3.7.6
  • pip=20.0.2
  • matplotlib=3.1.3
  • pytorch==1.4.0
  • torchvision=0.5.0

pip:

  • numpy==1.18.1
  • opencv-python==4.2.0.32

๋ฐ์ดํ„ฐ ์„ธํŠธ


์ง์ ‘ ์ดฌ์˜ํ•œ 8์ดˆ์งœ๋ฆฌ ํ•™๊ต ์˜์ƒ์„ -> ์ดˆ๋‹น ํ”„๋ ˆ์ž„์ด 30fps์ธ 240์žฅ์˜ ์—ฐ์†๋œ ์‚ฌ์ง„๋“ค๋กœ ๋ณ€ํ™˜ํ•จ.

ํ•™๊ต ์˜์ƒ << ๋ˆŒ๋Ÿฌ์„œ ์›๋ณธ ๋™์˜์ƒ ํ™•์ธ!

์—ฐ์† ๋œ ์‚ฌ์ง„

=> ์œ„ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด content_0to59 ํŒŒ์ผ ์•ˆ์— ์ €์žฅ๋œ 60์žฅ์˜ ์‚ฌ์ง„๋“ค.

=> content_0to59, content_60to119, content_120to179, content_180to239 ์ด 4๊ฐœ์˜ ํŒŒ์ผ์— 60์žฅ์”ฉ ๊ตฌ๋ถ„ํ•ด๋‘ .


๋ชจ๋ธ ์„ค๋ช… - ์‚ฌ์šฉํ•œ ๋ชจ๋ธ์˜ ์ข…๋ฅ˜ ๋ฐ ์„ ํƒ ์ด์œ 


์ƒ์„ฑ ๋ชจ๋ธ์ธ GAN์˜ ์ข…๋ฅ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. Conditional gan(2014)
  2. DC gan (2015)
  3. cycle gan (2017)
  4. star gan (2018)
  5. style gan (2019)

(๋ณดํ†ต VGG-16๋‚˜ VGG-19 ์‚ฌ์šฉ)

  • ์ด ์ค‘์—์„œ style gan์ด ๊ฐ€์žฅ ์ตœ์‹  ๋ฒ„์ „์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ๊ฑด๋ฌผ์ด๋‚˜ ์‚ฌ๋žŒ์˜ ์–ผ๊ตด ์ž˜ style transfer์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๊ฐ€์กŒ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค.

-> ์œ„์™€ ๊ฐ™์€ ์ด์œ ๋กœ style gan์œผ๋กœ ๋ชจ๋ธ์„ ์ง  git hub ํŒŒ์ผ๋“ค์„ ์ฐพ์•„๋ณด๋‹ค๊ฐ€,

์ฒจ๋ถ€ํ•œ ์ž๋ฃŒ๊ฐ€ ๋‚ด๊ฐ€ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐฉํ–ฅ๊ณผ ๊ฐ€์žฅ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ

๋ฉ”์ธ์œผ๋กœ ์ฐธ๊ณ ํ•˜์—ฌ ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. git hub ์ฐธ๊ณ 


์‹คํ—˜ ๊ฒฐ๊ณผ ไธญ 1

1. ์Šคํƒ€์ผ ์ด๋ฏธ์ง€ + ์‚ฌ๊ณ„์ ˆ, ์ฝ˜ํ…ํŠธ ์ด๋ฏธ์ง€ โ†’ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•˜๋Š” gif ์ƒ์„ฑ


  • 60์žฅ์”ฉ ์ด ๋„ค ๋ฒˆ์˜ style transfer ์ง„ํ–‰
  • style์€ ์‚ฌ๊ณ„์ ˆ ์ด๋ฏธ์ง€ (๋ด„, ์—ฌ๋ฆ„, ๊ฐ€์„, ๊ฒจ์šธ) ์‚ฌ์šฉ

๊ฒฐ๊ณผ => 2์ดˆ๊ฐ€ ์ง€๋‚  ๋•Œ๋งˆ๋‹ค ๊ณ„์ ˆ์ด ๋ฐ”๋€Œ๋Š” 8์ดˆ์งœ๋ฆฌ ํ•™๊ต ์˜์ƒ ๋ฐ gif ์ƒ์„ฑ

spring spring spring spring

  • spring 60์žฅ + summer 60์žฅ + autumn 60์žฅ + winter 60์žฅ ํ•ฉ์นœ gif

gif <<< ๋ˆŒ๋Ÿฌ์„œ GIF.ver ํ™•์ธ!!


์‹คํ—˜ ๊ฒฐ๊ณผ ไธญ 2

2. ํŠน์ • ์˜์—ญ(์ง€์ • ์˜์—ญ)๋งŒ ์Šคํƒ€์ผ ๋ณ€ํ™˜


ํŠน์ • ์˜์—ญ ์Šคํƒ€์ผ ๋ณ€ํ™˜์€ ๋‹ค์Œ ๊นƒํ—ˆ๋ธŒ์™€, ํ•™๊ต์—์„œ ์‹ค์Šตํ•œ ํฌ๋กœ๋งˆํ‚ค ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉฐ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

์ฐธ๊ณ  << ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ

๋งˆ์Šคํฌ ์ด๋ฏธ์ง€ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •

  1. ์ด๋ฏธ์ง€๋กœ๋“œ
  2. ์ด๋ฏธ์ง€ ๋ณ€ํ™˜ (BGR -> HSV)
  3. ํ•˜๋Š˜์ƒ‰ ๋ฒ”์œ„ ์ •์˜ (HSV)
  4. ํ•˜๋Š˜ ์˜์—ญ ๋งˆ์Šคํฌ ์ƒ์„ฑ
  5. ๋งˆ์Šคํฌ ์ €์žฅ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›๋ณธ content์—์„œ ํ•˜๋Š˜ ๋ฐ ์ฐฝ๋ฌธ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ ,

๊ฑฐ๊ธฐ์— autumn์œผ๋กœ style transfer ๋œ ํ•™๊ต ๊ฑด๋ฌผ ๋ฐ ๋„๋กœ ๋‚˜๋ญ‡์žŽ ์˜์—ญ์„ ์˜ค๋ฒ„๋ ˆ์ด ํ•œ๋‹ค.

segmentation


์ถ”ํ›„ ๊ฐœ์„  ์‚ฌํ•ญ


  1. ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์€ ๋›ฐ์–ด๋‚˜๋‚˜, ์†”์งํ•˜๊ฒŒ ๋งํ•ด์„œ ์ด๋Ÿฐ ์Šคํƒ€์ผ ๋ณ€ํ™˜ ์‹ ๊ฒฝ๋ง์„ ์˜ˆ์ˆ ์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•ด๋ณธ๋‹ค๋Š” ๊ฒŒ ํ”„๋กœ์ ํŠธ ๋‚ด๋‚ด ์•„์‰ฌ์› ๋‹ค. ๋”ฐ๋ผ์„œ ์ถ”ํ›„ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ๋Š” ๋ฐ์ดํ„ฐ ์ฆ๊ฐ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ๋„ GAN์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ๋‹ค.

  2. ์œ„์˜ 1์—์„œ ์–ธ๊ธ‰ํ–ˆ๋˜ ๋ฐ”์™€ ๊ฐ™์ด, ์˜ˆ์ˆ ๊ณผ ์ƒ์„ฑ ๋ชจ๋ธ์„ ๊ฒฐํ•ฉํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ๊ฒฐ๊ณผ๋Š” ์‚ฌ๋žŒ์˜ ์ฃผ๊ด€์ ์ธ ํŒ๋‹จ์ด ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์ข‹๊ณ  ๋‚˜์˜๋‹ค ํ•  ์ •ํ™•ํ•œ ์ง€ํ‘œ๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ํ‰๊ฐ€์ง€ํ‘œ๊ฐ€ ๋”ฑํžˆ ์ •ํ•ด์ ธ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์Šคํƒ€์ผ ๋ณ€ํ™˜๋œ ์ด๋ฏธ์ง€๋ฅผ ํ‰๊ฐ€ํ•ด์ฃผ๋Š” ์‚ฌ์ดํŠธ์— ๋‚ด ๊ฒฐ๊ณผ๋ฌผ์„ ์ง์ ‘ ์˜ฌ๋ ค์„œ, ๋Œ€์ฒด์ ์œผ๋กœ ์–ด๋–ค ์ด๋ฏธ์ง€๊ฐ€ ๊ฐ€์žฅ ์ž˜ ์ž˜ ๋‚˜์™”๋Š”์ง€์— ๋Œ€ํ•œ ํˆฌํ‘œ๋ฅผ ๋ฐ›์•„๋ณด๊ณ  ์‹ถ๋‹ค.

  3. ๋ชจ๋ธ ์•ˆ์— ์žˆ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์„ ์ง์ ‘ ์กฐ์ •ํ•ด๋ณด๊ณ  ์‹ถ๋‹ค. ์ง€๊ธˆ์€ ํ•™๋ถ€์ƒ์ด๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ๊นŒ์ง€ ์†๋Œ€๋ณด์ง€ ๋ชป ํ•œ ์ ์ด ์•„์‰ฝ๋‹ค. ๋ชจ๋ธ ์‘์šฉ ๋ถ„์•ผ ํ™•์žฅ๋„ ๋ฌผ๋ก  ์ข‹์ง€๋งŒ, ์ง์ ‘์ ์œผ๋กœ ์„ฑ๋Šฅ ๊ฐœ์„  ํ•˜๋Š” ๊ฒƒ๋„ ํ•™๋ถ€์ƒ์ผ ๋•Œ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ถ”ํ›„ ์‹œ๋„ํ•ด ๋ณผ ์˜ˆ์ •์ด๋‹ค.