๊ฒฝํฌ๋ํ๊ต 2020ํ๋ ๋ 2ํ๊ธฐ ๋ฐ์ดํฐ๋ถ์ ์บก์คํค ๋์์ธ ํ๋ก์ ํธ์ ์์ค์ฝ๋์ ์คํ ๋ด์ฉ์ ๊ณต๊ฐํ๊ธฐ ์ํ Repository ์ ๋๋ค.
- mp4 ์์์์ ์ฌ๋์ ์ผ๊ตด ์์ญ์ ์ฐพ์ Tooni-fyํ๊ณ , ํด๋น ์ผ๊ตด ์์ญ์์ ํ์ ์ ์ธ์ํ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ ์์์ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ๋ก ์ ์ํ๋ค.
- Tooni-fy๋ StyleGAN2 ๋ชจ๋ธ์ ์ด์ฉํ๊ณ , Emotion Recognition์ mini-Xception ๋ชจ๋ธ์ ์ด์ฉํ๋ค. StyleGAN2๋ custom dataset์ ์ด์ฉํ์ฌ ํ๋ จ์์ผฐ๊ณ , mini-Xception์ FER2013 dataset์ ์ด์ฉํด ํ๋ จ์์ผฐ๋ค. Dataset๊ณผ ๊ด๋ จํ ๋ด์ฉ์ 2. Dataset์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
- StyleGAN2๋ TensorFlow(TF) 1.x๋ฅผ ์ง์ํ๊ณ , mini-Xception์ TF 2.x๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค. Colab์์ TF 1.x๋ฅผ ์ง์ ํ์ฌ Toonify(StyleGAN2)๋ฅผ ๋จผ์ ์งํํ๊ณ , Tooni-fy๋ ์์์์ TF 2.x๋ฅผ ์ง์ ํด Emotion Recognition์ ์งํํ์๋ค.
- ์ด๋ก ์ ์ธ ๋ถ๋ถ(StyleGAN2, mini-Xception์ ๊ตฌ์กฐ์ ์ด๋ก )์ ํ์ฌ repository์ ์ฌ๋ ค๋ Interim report.pdf์์ ํ์ธ ๊ฐ๋ฅํ๋ค. StyleGAN2 version 1, 2๋ฅผ ๋ฐํํ ๋ ผ๋ฌธ๊ณผ mini-Xception ๊ตฌ์กฐ๋ฅผ ์ฒ์ ์ ์ํ๊ณ ์ฌ์ฉํ ๋ ผ๋ฌธ์ ๋ํ ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํด๋์๋ค.
- ์ฌ๋์ ์ผ๊ตด ์์ญ์ tooni-fyํ๊ณ , ์ฌ์ฉ์์ ์ผ๊ตด ์์ญ์์ ํ์ ์ธ์์ ์งํํ๋ค.
- Disney/Pixar/Dream Works ๋ฑ์ ์ ๋๋ฉ์ด์ ์บ๋ฆญํฐ๋ฅผ ํ์ต ์ํจ StyleGAN2 ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์ฌ๋์ ์ผ๊ตด์ Tooni-fy(์บ๋ฆญํฐํ)ํ๋ค. ์ด๋ ์ฌ์ฉํ dataset์ 2. Dataset์์, ๋ชจ๋ธ์ network snapshot์ 5.4 StyleGAN2์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
- ์ฌ๋์ ํ์ ์ด๋ฏธ์ง๋ฅผ 7๊ฐ์ ์นดํ ๊ณ ๋ฆฌ๋ก ๋๋์ด ์ ๊ณตํ๋ FER2013์ ์ด์ฉํ์ฌ ํ์ต ์ํจ Keras ๊ธฐ๋ฐ ๋ชจ๋ธ mini-Xception์ scalingํ๊ณ , ์์์์ ์ฌ๋์ ํ์ ์ ์ธ์ํด ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ค. ์ด๋ ์ฌ์ฉํ dataset์ 2. Dataset์์, ๋ชจ๋ธ์ scaling ๊ณผ์ ์ 5.3 mini-Xception์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
1. Crawling images from Google Search Engine.
- ๊ตฌ๊ธ์์ "emoji"๋ฅผ ๊ฒ์ํด ๋์จ ๋ชจ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๋ ์ฝ๋์ด๋ค. ์ถ๊ฐ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฒํ ํ๋ฉฐ ์ ๋ณํ๋ ์์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.
- Baby face dataset์ ๊ฒฝ์ฐ, ์ง์ YouTube ์์์ ๋ณด๋ฉฐ ํ๋ํ๋ ์บก์ณํด์ฃผ์๋ค. ์บ๋ฆญํฐ์ ์ผ๊ตด ์์ญ์ ์ง์คํด ํฌ๋กค๋งํ๊ณ , ํฌ๋กญํ๊ณ , ์ ๋ณํ๋ ์์ ๋ณด๋ค๋ ์ง์ ์ด๋ฏธ์ง๋ฅผ ๋ชจ์ผ๋ ๊ฒ์ด ๋ ๋น ๋ฅด๋ค๋ ํ๋จ ํ์ ๊ทธ๋ ๊ฒ ์งํํ์๋ค.
- Crawling ์ฝ๋๋ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ๋ก ๊ณต๊ฐํด๋์๋ค. ๋งํฌ๋ฅผ ํตํด ํ์ธํด์ฃผ์๊ธธ ๋ฐ๋๋ค.
2. Resize and Convert to RGB.
- ์์์ ๊ฐ์ ธ์ ์ ๋ณ ์์ ์ ๋ง์น ์ด๋ฏธ์ง๋ค์ 1024x1024 ์ฌ์ด์ฆ๋ก resizeํ๊ณ , RGBA ์ด๋ฏธ์ง๋ค์ ๋ค์ RGB๋ก ๋ฐ๊พธ์ด์ฃผ๋ ๊ณผ์ ์ ์งํํ๋ ์ฝ๋์ด๋ค.
- StyleGAN2์ ๋ฐ์ดํฐ ์ (.tfrecord)์ผ๋ก ๋ณํํ๊ธฐ ์ํด์๋ RGB ํํ์ ์ ์ฌ๊ฐํ ์ด๋ฏธ์ง์ฌ์ผ ํ๋ค. ๋ฐ๋ผ์ ๋ง์ฝ ์ง์ custom ๋ฐ์ดํฐ ์ ์ ์์ฑํ๋ค๋ฉด ์ด ์ฝ๋๋ฅผ ์ด์ฉํด ์ ์ฒ๋ฆฌ๋ฅผ ์งํํด ์ฃผ์ด์ผ ํ๋ค.
- ์์ธํ ์ฝ๋์ ๋ด์ฉ์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ๋ก ๊ณต๊ฐํด๋์๋ค. ๋งํฌ๋ฅผ ํตํด ํ์ธํด์ฃผ์๊ธธ ๋ฐ๋๋ค.
1. Fer2013
- 7๊ฐ์ง ๊ฐ์ ์ ๋ฐ๋ฅธ ์ฌ๋ ์ผ๊ตด์ ์ด๋ฏธ์ง ๋ฐ์ดํฐ ์ ์ด๋ค. mini-Xception ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ์ฌ์ฉํ์๋ค.
- Emotion map = {0:Angry, 1:Disgust, 2:Fear, 3:Happy, 4:Sad, 5:Surprise, 6:Neutral}
[๊ทธ๋ฆผ 1] FFHQ๋ฅผ base network๋ก ์ค์ ํ์ ๋์ fake init snapshot. ์ถ์ฒ : NVlab StyleGAN2 repository
- NVlab์ StyleGAN2์์ ์ ๊ณตํ๋ ๊ณ ํ์ง์ ์ฌ๋ ์ผ๊ตด ๋ฐ์ดํฐ ์ ์ผ๋ก, ์ง์ ํ๋ จ์ ์ํค์ง ์์์ง๋ง style์ ์์ฐ๋ base network๋ก FFHQ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
- NVlab์์๋ StyleGAN2 custom model ํ์ต์ ์ฝ๊ฒ ํ ์ ์๋๋ก FFHQ์ ๊ฐ์ ๋ฐ์ดํฐ ์ ๊ณผ pretrained ๋ชจ๋ธ์ ์ ๊ณตํ๋ค.
- StyleGAN2์์ style์ ํ์ต์ํค๊ธฐ ์ด์ , fake init ์ค๋ ์ท์ผ๋ก [๊ทธ๋ฆผ 1]๊ณผ ๊ฐ์ ์ฌ์ง์ด ์์ฑ๋๋ค.
3. Emoji
- ์ง์ Google์ ์ด๋ฏธ์ง ๊ฒ์์์ ํฌ๋กค๋งํ๊ณ , resize์ RGB๋ก์ ๋ณํ ๊ณผ์ ์ ํตํด ์์ฑํ emoji ๋ฐ์ดํฐ ์ ์ด๋ค.
- Emoji-fy ๋ชจ๋ธ์ ํ์ตํ ๋, ์ฌ์ฉํ๋ค. [๊ทธ๋ฆผ 2]์ ๊ฐ์ด ์ฌ๋ ์ผ๊ตด ๋ชจ๋ธ(FFHQ)์ ํน์ฑ์ด ๋ง์ด ๋จ์ ์๋ network๋ฅผ ์ ์ฅํ๊ธฐ ์ํด, ๊ธฐ์กด์ snapshot ์ฃผ๊ธฐ๋ฅผ default ๊ฐ์ธ 4์์ 1๋ก ์ค์ฌ ์ฃผ์๋ค. ์งง์ ์ฃผ๊ธฐ๋ก network๋ฅผ ์ ์ฅํ๊ณ , fake snapshot์ ํตํด ์ํ๋ ๋ชจ๋ธ์ ์ ์ ํ๋ค.
4. Baby Characters of Disney/Pixar/Dream Works
- Disney, Pixar, Dream Works์ ์ ๋๋ฉ์ด์ ์ ๋ณด๋ฉฐ ์ง์ ์บก์ณํ ๋ฐ์ดํฐ ์ ์ด๋ค. ์ ๋๋ฉ์ด์ ์ ์๊ธฐ ์บ๋ฆญํฐ ์ผ๊ตด์ resize, RGB ๋ณํ์ ํ์ฌ ์ฌ์ฉํ๋ค.
- Baby-fy ๋ชจ๋ธ์ ํ์ต์ํฌ ๋ ํ์ฉํ๋ค. [๊ทธ๋ฆผ 3]๊ณผ ๊ฐ์ด ์ฌ๋ ์ผ๊ตด์ ํํ๊ฐ ๋จ์ ์๋ ์ํ์์ ์ ๊ธฐ๋ฉ์ด์ ์ ์๊ธฐ ์ผ๊ตด์ ๋ํ๋๋ ๋์ฝ์ ์ด ์์์ ธ ์๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
5. Characters of Disney/Pixar/Dream Works
[๊ทธ๋ฆผ 2] Cartooni-fy StyleGAN2 dataset. ์ถ์ฒ : Justin Pinkney์ Cartoon Dataset
- Disney, Pixar, Dream Works์ ์ ๋๋ฉ์ด์ ์บ๋ฆญํฐ์ ์ผ๊ตด๋ค๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ์ ์ด๋ค. Pinkney์ Toonify ํ๋ก์ ํธ์์ ์ฐ์ธ ๋ชจ๋ธ์ trainingํ ๋ ์ฌ์ฉ๋ ๋ฐ์ดํฐ ์ ์ด๋ค.
- ๋งํฌ๋ก ์ด๋ํ๋ฉด ์๋ณธ ๋ฐ์ดํฐ ์ ์, Pinkney์ ๋ธ๋ก๊ทธ ํฌ์คํธ ๊ธ์์ ์์ธํ ํ๋ก์ ํธ์ ๋ด์ฉ์ ํ์ธํ ์ ์๋ค.
[๊ทธ๋ฆผ 3] ์ด๊ธฐ ํ๋ก๊ทธ๋จ ์ค๊ณ๋
- ์ด๊ธฐ ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ๋ [๊ทธ๋ฆผ 5]์ ๊ฐ๋ค. StyleGAN2 ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ๋ง๋ personal emoji๋ฅผ ์ค์๊ฐ ์์์์ ์ผ๊ตด ์์ญ์ ๋ ๋๋งํ๋ค. ์ด๋, ๊ฐ๊ฐ์ ํ์ ์ ๋ง๋ emoji๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ , ์์ธกํ ํ์ ์ ๋ฐ๋ผ ๋ ๋๋งํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ค๊ณ ๋ฐ ๊ตฌํํ๋ค.
[๊ทธ๋ฆผ 4] ์ต์ข ํ๋ก๊ทธ๋จ ์ค๊ณ๋
- Real-time์ ํฌ๊ธฐํ๊ณ , ์์์ ํ๋ ์ ๋จ์๋ก Tooni-fy๋ฅผ ์งํํ๋ ๊ฒ์ ์ ํํ๋ค. [๊ทธ๋ฆผ 8]๊ณผ ๊ฐ์ด ์๋ณธ ์์์ด ๋ค์ด์ค๋ฉด, 10 ํ๋ ์ ๋จ์๋ก ํ๋ ์์ ๋ฐ์ ์ Toonified ์์์ ๋ง๋ ๋ค. ๊ทธ๋ ๊ฒ ๋ง๋ค์ด์ง Toonified ์์์ Emotion Recognition์ ์งํํด ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ ๋ค.
- ์ด๊ธฐ ์ค๊ณ์์ Personal emoji์ ๊ฒฐ๊ณผ๋ฌผ์ด ์์๋ณด๋ค ์์๊ฒ ๋์ค์ง ์์ Disney/Pixar/Dream Works์ ์ ๋๋ฉ์ด์ ์บ๋ฆญํฐ ์ผ๊ตด์ ํ์ต ์ํจ Toonify ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค.
[๊ทธ๋ฆผ 5] StyleGAN2 Tooni-fy model training process.
- ์ฐ๋ฆฌ ํ๋ก์ ํธ์์๋ StyleGAN2์ custom dataset์ ํ์ต์์ผ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ ์ด์ฉํ์๋ค. ์ฌ์ฉ๋์๋ dataset์ 2.Dataset์ ์์ธํ ์ ์ด๋์๊ณ , ๊ฐ๊ฐ์ dataset์ ๋ํ ๊ฒฐ๊ณผ๋ฌผ์ 5.4 StyleGAN2์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
- ์ต์ข ์ ์ผ๋ก๋ pinkney์ cartoon dataset์ ์ด์ฉํ์๊ณ , ์ด๋ฅผ ํ์ต์ํจ ๊ณผ์ ์ [๊ทธ๋ฆผ 5]์ ๊ฐ๋ค. StyleGAN2์ base network๋ก FFHQ(์ฌ๋ ์ผ๊ตด์ ๋ฐ์ดํฐ ์ ์ผ๋ก pre-train ๋) StyleGAN2 model์ ์ฌ์ฉํด์ฃผ์๋ค.
- StyleGAN ํน์ฑ ์, base network์ style์ ํ์ธต ํ์ธต ์ ํ๊ฐ๋ฉฐ ์ต์ข ์ ์ผ๋ก ์ํ๋ dataset์ fake image๋ฅผ ์์ฑํ ์ ์๋ network๊ฐ ๋ง๋ค์ด์ง๋ค. ํ์ฌ ํ๋ก์ ํธ์์๋ ์ฌ๋ ์ผ๊ตด์ ์บ๋ฆญํฐ์ ์คํ์ผ์ ์ ํ๊ธฐ ์ํ๊ธฐ ๋๋ฌธ์ cartoon์ style์ FFHQ ๋ชจ๋ธ์ ์ ํ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์งํ๋์๋ค.
- StyleGAN2์์ epoch๊ณผ ๊ฐ์ ๊ฐ๋ ์ผ๋ก ์ฌ์ฉ๋๋ kimg๋ฅผ default ๊ฐ์ธ 25,000์ผ๋ก ์ค์ ํ์๊ณ , network snapshot์ ์ ์ฅํ๋ ์ฃผ๊ธฐ๋ฅผ 4(default)์์ 1๋ก ์ค์ฌ์ฃผ์๋ค. ์ด๋ฅผ ์ด์ฉํด ์ข ๋ ์ข์ ๊ฐ๊ฒฉ์ผ๋ก ์ ์ฅ๋ network๋ฅผ ํ์ธํ๊ณ , ์ํ๋ ์คํ์ผ์ pkl ํ์ผ์ ์ฌ์ฉํ ์ ์์๋ค.
- StyleGAN2์ ์ ์๊ณผ ์ด๋ก ์ NVIDIA์ publication์, StyleGAN2์ ์์ค์ฝ๋๋ NVlab์ repository๋ฅผ ์ฐธ๊ณ ํ์๋ค.
[๊ทธ๋ฆผ 6] mini-Xception์ ๊ธฐ๋ฐ์ผ๋ก ํ model 9์ ๊ตฌ์กฐ.
- ์ฐ๋ฆฌ ํ๋ก์ ํธ๋ Xception์ ๊ฒฝ๋ํ ํ CNN ๋ชจ๋ธ ๊ตฌ์กฐ์ธ mini-Xception ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด ๊ฐ์ ๋ถ๋ฅ์ ์ฌ์ฉํ๋ค. Real-time์ผ๋ก model import๊ฐ ๊ฐ๋ฅํ ์ ๋๋ก ์ฉ๋์ด ๊ฐ๋ณ๊ณ , ํ๋ผ๋ฏธํฐ์ ์๊ฐ ๊ธฐ์กด์ CNN ๋ชจ๋ธ๋ณด๋ค ํจ์ฌ ์ ์ ๊ฒ์ด ํน์ง์ด๋ค.
- Original mini-Xception์ ๋ํด์๋ GitHub repository์ publication์์ ํ์ธ ๊ฐ๋ฅํ๋ค. ํ์ฌ ํ๋ก์ ํธ์ ์์ค์ฝ๋๋ ์ด original repository์์ ์๊ฐ์ ๋ฐ์ GitHub ํ๋ก์ ํธ๋ฅผ ์ฐธ๊ณ ํ์๋ค.
- Original mini-Xception ๊ตฌ์กฐ์ scaling์ ์งํํ์ฌ ๊ฐ์ฅ ๋์ validation ์ ํ๋๋ฅผ ๋ณด์ธ ๋ชจ๋ธ 9๋ฅผ ์ต์ข ๋ชจ๋ธ๋ก ์ ํํ๋ค. ์ด 16๋ฒ์ scaling์ ์งํํ์๊ณ , ๊ฐ๊ฐ์ ๋ชจ๋ธ์ ๋ํ ์์ธํ ๊ฒฐ๊ณผ๋ฌผ์ 5.3 mini-Xception์์ ํ์ธํ ์ ์๋ค.
- ์ต์ข ์ ์ผ๋ก ์ ์ ๋ ๋ชจ๋ธ 9์ ๊ตฌ์กฐ๋ [๊ทธ๋ฆผ 6]๊ณผ ๊ฐ๋ค. ๊ธฐ์กด์ 48x48์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ 94x94๋ก ๋์๊ณ (Resolution scaling), Convolution block์ 4๋ฒ์ด ์๋ 6๋ฒ์ผ๋ก 2๊ฐ์ ๋ธ๋ก์ ์ถ๊ฐํด์ฃผ์๋ค(Width/Depth scaling).
- Original Xception๊ณผ Big-Xception ์ญ์ ์ฌ์ฉํด ๋ณด์์ง๋ง, ์ฉ๋ ๋๋น ์ ํ๋๊ฐ ๋์ง ์์ real-time์ ์ ์ ํ์ง ์๋ค๊ณ ์ฌ๊ฒจ mini-Xception ๊ธฐ๋ฐ์ ๋ชจ๋ธ 9๋ฅผ ์ ํํ๊ฒ ๋์๋ค.
![]() |
![]() |
![]() |
![]() |
|---|
[๊ทธ๋ฆผ 7] personal emoji ์์ฑ ๊ณผ์ . ์ผ์ชฝ๋ถํฐ StyleGAN2๋ฅผ ํตํด ์์ฑํ personal emoji ์๋ณธ, mask๋ฅผ ์์ด ์ด๋ฏธ์ง, mask ๋ถ๋ถ์ ํฌ๋ช ํ๊ฒ ์ ๊ฑฐํ ์ด๋ฏธ์ง, face crop์ ํ ์ต์ข ์ด๋ฏธ์ง.
- Personal emoji๋ ์ฌ๋์ ์ผ๊ตด์ ํ ๋๋ก emoji์ ์คํ์ผ์ ๋ง์์ ์๋ก์ด emoji๋ฅผ ์์ฑํ ๊ฒ์ ์๋ฏธํ๋ค. [๊ทธ๋ฆผ 6]์ ๋ณด๋ฉด ๊ฐ์ฅ ์ผ์ชฝ์ ์ด๋ฏธ์ง๊ฐ ์ฌ๋์ ์ผ๊ตด ์ฌ์ง์ base๋ก ์์ฑํ personal emoji์ด๋ค. Emoji-fy ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์์ฑํ ์ฌ์ง์์ ๋ฐฐ๊ฒฝ์ ์ ๊ฑฐํด์ฃผ๊ธฐ ์ํด cv2์ Contour ํจ์๋ฅผ ์ฌ์ฉํ๋ค.
- Contour ์์ญ์ ๊ฒ์ถํ๊ณ , ๋ฐฐ๊ฒฝ์ผ๋ก ์ถ์ ๋๋ ๋ถ๋ถ์ mask๋ฅผ ์์ด๋ค. ์ด mask ๋ถ๋ถ์ ์์์ ์ง์์ฃผ๊ณ , RGBA๋ก ๋ณํํ์ฌ png ํ์ผ๋ก ์ ์ฅํ๋ค. ์ด png ํ์ผ์ ์ผ๊ตด ์์ญ ์ค์ฌ์ผ๋ก crop ํด์ฃผ๋ฉด ์ต์ข ์ด๋ฏธ์ง์ธ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ ์ด๋ฏธ์ง๊ฐ ์์ฑ๋๋ค. ์์ธํ ์ฝ๋๋ Personal-Emoji ํด๋์์ ํ์ธํ ์ ์๋ค.
[๊ทธ๋ฆผ 8] ์ค์๊ฐ personal emoji ๋ ๋๋ง ์์
- mini-Xception ๊ตฌ์กฐ์ ๊ฒฝ์ฐ, ํ๋ผ๋ฏธํฐ์ ์๊ฐ ๊ธฐ์กด ๋ชจ๋ธ์ ๋นํด ํ์ ํ ์ ์ด ์ค์๊ฐ ์์์์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฌธ์ ๊ฐ ์์๋ค. ๊ทธ๋ฌ๋ StyleGAN2์ ๊ฒฝ์ฐ, GPU ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ๊ณผ ์ฉ๋์ด ๋งค์ฐ ์ปค projection์ ํ๋ ์๊ฐ์ด ๋งค์ฐ ์ค๋ ๊ฑธ๋ฆฌ๋ ์ ์ ๊ณ ๋ คํ์ฌ [๊ทธ๋ฆผ 7]๊ณผ ๊ฐ์ด ๋ฏธ๋ฆฌ ์์ฑํ personal emoji๋ฅผ ๋ ๋๋งํ๋๋ก ๊ตฌํํ๋ค.
- mini-Xception ๋ชจ๋ธ์ omar178๊ณผ oarriaga์ ์์ ๋ฌผ๊ณผ ๋ ผ๋ฌธ์ ์ฐธ๊ณ ํ์ฌ scaling ํ์๋ค.
| Model | Batch Size | Resolution | Augmentation | # of Conv Blocks | Architecture | Val Acc | Val Loss |
|---|---|---|---|---|---|---|---|
| origin | 32 | 48x48 | X | 4 | mini | 0.6478 | 0.9646 |
| 1 | 32 | 48x48 | O(1,000) | 4 | mini | 0.6418 | 1.0114 |
| 2 | 32 | 48x48 | O(5,000) | 4 | mini | 0.6363 | 0.9962 |
| 3 | 48 | 48x48 | O(5,000) | 4 | mini | 0.6381 | 0.9445 |
| 4 | 32 | 48x48 | O(10,000) | 4 | mini | 0.6441 | 0.9836 |
| 5 | 32 | 48x48 | O(10,000) | 4 | mini | 0.6450 | 0.9814 |
| 6 | 48 | 128x128 | O(10,000) | 5 | mini | 0.6743 | 0.9449 |
| 7 | 32 | 128x128 | O(10,000) | 5 | mini | 0.6734 | 0.9678 |
| 8 | 48 | 96x96 | O(10,000) | 6 | mini | 0.6778 | 0.9307 |
| 9 | 32 | 96x96 | O(10,000) | 6 | mini | 0.6817 | 0.9269 |
| 10 | 32 | 72x72 | O(10,000) | 6 | mini | 0.6539 | 0.9622 |
| 11 | 32 | 48x48 | O(10,000) | 4 | Big | 0.6482 | 0.9949 |
| 12 | 32 | 94x94 | O(10,000) | 4 | Big | 0.6454 | 1.0088 |
| 13 | 32 | 128x128 | O(10,000) | 4 | Big | 0.6300 | 1.0584 |
| 14 | 32 | 96x96 | O(10,000) | 4 | origin | 0.6704 | 0.9361 |
| 15 | 32 | 96x96 | O(10,000) | 4 | origin | 0.6705 | 0.9304 |
| 16 | 32 | 96x96 | O(10,000) | 4 | origin | 0.6626 | 0.9816 |
[๋ํ 1] Emotion Recognition Model Scaling ๊ณผ์
- mini : mini-Xception, Big : Big-Xception, origin : Xception
- Big-Xception๊ณผ origin-Xception์ ๊ฒฝ์ฐ, ๋ชจ๋ธ์ ์ฉ๋ ๋๋น ์ ํ๋๊ฐ mini-Xception๋ณด๋ค ๋จ์ด์ ธ ์ถ๊ฐ์ ์ผ๋ก scalingํ์ง ์์๋ค.
- Real-time์์ ๋์๊ฐ๋ ๊ฒ์ ์ด๊ธฐ ๋ชฉํ๋ก ํ๊ธฐ์ validation set์ ๋ํ ์ ํ๋๊ฐ original model๋ณด๋ค 4% ์ค๋ฅธ model 9๋ฅผ ์ต์ข ๋ชจ๋ธ๋ก ์ ์ ํ๋ค.
- Training๊ณผ Real-time Emotion Recognition ๊ด๋ จ ์ฝ๋๋ Emotion-Recognition ํด๋์์ ํ์ธํ ์ ์๋ค.
[๊ทธ๋ฆผ 9] Emoji-fy ๋ชจ๋ธ์ network snapshot
[๊ทธ๋ฆผ 10] Baby-fy ๋ชจ๋ธ์ network snapshot
[๊ทธ๋ฆผ 11] Tooni-fy ๋ชจ๋ธ์ network snapshot
- Emoji, Baby characters, Characters ๋ฐ์ดํฐ ์ ์ FFHQ์ base๋ก ํ์ต์ํจ StyleGAN2 ๋ชจ๋ธ์ network snapshot์ด๋ค. Network๋ฅผ ์ ์ฅํ๋ ๊ฐ๊ฒฉ์ default ๊ฐ์ธ 4์์ 1๋ก ์ค์ฌ ์คํ์ผ์ด ์กฐ๊ธ์ฉ ์ ํ์ง๋ ๊ณผ์ ๋ค์ ๋ณด๊ณ , ๊ฐ์ฅ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ ๋ชจ๋ธ์ ์ ์ ํ๋ค.
- ๊ฒฐ๊ณผ๋ฌผ์์ ์ฌ์ฉํ Toonify ๋ชจ๋ธ์ [๊ทธ๋ฆผ 11]์ด๋ค. FFHQ ๋ฐ์ดํฐ ์ [๊ทธ๋ฆผ 1]๊ณผ ๋น๊ตํ๋ฉด ์๋ณธ์์ ์ผ๋ง๋ ๋ณํ๋์ง๋ฅผ ํ์ธํ ์ ์๋ค. Training ์ฝ๋๋ StyleGAN2_Cartoon_Model.ipynb์์ ํ์ธํ ์ ์๋ค.
- Emoji-fy model์ ๊ฒฐ๊ณผ๋ฌผ์ ์ฌ๊ธฐ์์, Baby-fy model์ ๊ฒฐ๊ณผ๋ฌผ์ ์ฌ๊ธฐ์์, Tooni-fy model์ ๊ฒฐ๊ณผ๋ฌผ์ ์ฌ๊ธฐ์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
![]() |
![]() |
![]() |
![]() |
|---|
[๊ทธ๋ฆผ 12] ์ผ์ชฝ๋ถํฐ FFHQ, Emoji-fy, Baby-fy, Tooni-fy ๋ชจ๋ธ์ snapshot.
- Snapshot ์ ํ ์ธ๋ฌผ์ ์ค์ฌ์ผ๋ก ๋น๊ตํด๋ณผ ์ ์๋ค. Projection ๊ฒฐ๊ณผ๋ฌผ์ด ๊ฐ์ฅ ์ผ์ ํ๊ณ , ์ด์๊ฒ ๋์ค๋ Tooni-fy ๋ชจ๋ธ์ ์ต์ข ๋ชจ๋ธ๋ก ์ ์ ํ๋ค.
![]() |
![]() |
![]() |
|---|
[๊ทธ๋ฆผ 13] ์ผ์ชฝ๋ถํฐ ์๋ณธ ์ด๋ฏธ์ง, ์ผ๊ตด ์ค์ฌ์ผ๋ก align๋ ์ด๋ฏธ์ง, Tooni-fied ์ด๋ฏธ์ง.
- ์ผ์ชฝ์ ์๋ณธ ์ด๋ฏธ์ง๋ 100K Faces ํ๋ก์ ํธ๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์์ ์ธ๋ฌผ ์ฌ์ง์ด๋ค. ์ธํฐ๋ท ์์์ ๋ฌด๋ฃ๋ก ๊ณต๊ฐ๋์ด ์์ผ๋ฏ๋ก ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋งํฌ์์ ์ฌ์ง๋ค์ ํ์ธ ๊ฐ๋ฅํ๋ค.
- Projection์ StyleGAN2์ FFHQ ์ผ๊ตด ํ์ง์ ์ ๋ ฌ ๋ชจ๋์ ์ฌ์ฉํ๋ค. Projection ์ฝ๋๋ pinkney์ Toonify Yourself๋ฅผ ์ฐธ๊ณ ํ๋ค.
- Sample 1์ ์ค๋งํธํฐ ์ ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ FHD๊ฐ ์ต๋ ํ์ง์ด์์ง๋ง, Sample 2์ ๊ฒฝ์ฐ ํ๋ฉด ์นด๋ฉ๋ผ๋ฅผ ์ด์ฉํ์ฌ UHD๋ก ์ดฌ์ํ๋ค. [๊ทธ๋ฆผ 13]๊ณผ [๊ทธ๋ฆผ 14]๋ฅผ ๋ณด๋ฉด ๋ ๊ณ ํ์ง๋ก ์ดฌ์ํ Sample 2์ ๊ฒฐ๊ณผ๋ฌผ์ด ์ข ๋ ์ข์ ํ๋ฆฌํฐ๋ก ์์ฑ๋์์์ ํ์ธํ ์ ์๋ค.
- [๊ทธ๋ฆผ 12]์ projection ์์๋ฅผ ๋ณด๋ฉด, ๊ณ ํ์ง์ ์ฌ์ง ํ ์ฅ์ ๋ํด์๋ ๋งค์ฐ ์ข์ ํ๋ฆฌํฐ์ ๊ฒฐ๊ณผ๋ฌผ์ด ์์ฑ๋๋ ๊ฒ์ ๋ณผ ์ ์๋ค. [๊ทธ๋ฆผ 12]์ [๊ทธ๋ฆผ 13, 14] ๋ชจ๋ ๋์ผํ kimg(styleGAN2์ epoch๊ณผ ๊ฐ์ training step)์์ ์์ฑ๋์์์๋ ๋ถ๊ตฌํ๊ณ , [๊ทธ๋ฆผ 12]์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐฐ๊ฒฝ๊ณผ ์ฌ๋์ ์กฐํ๋, ์ฌ๋ ์ผ๊ตด์ identity features์ ์์ด ์ฐจ์ด๊ฐ ๋ฐ์ํ ์ด์ ๋ฅผ ํ์ง๊ณผ ๋ฐฐ๊ฒฝ ์์ ์ผ๊ด์ฑ์ด๋ผ๊ณ ํด์ํ๊ณ ์๋ค. ์ฌ๋ ๋ค์ ๋ฐฐ๊ฒฝ์ด ์ผ๊ด๋ ์์ ๊ฐ์ง๊ณ ์๊ณ , ๋งค์ฐ ๊ณ ํ์ง๋ก ์์์ ์ดฌ์ํ ๊ฒฝ์ฐ ์ข ๋ ์ ๋ช ํ๊ณ ๋ฐฐ๊ฒฝ์ด ์ผ๊ด์ ์ธ ์์์ด ์์ฑ๋๋ค.
- 1080p ์ด์์ ํ์ง(FHD ์ด์, 30fps)๋ก ์ผ๊ตด ๋์์์ ์ดฌ์ํ๋ค.
- ์ดฌ์ํ ์๋ณธ ์์์ 10 ํ๋ ์์ 1์ฅ์ฉ ํ๋ ์์ ๋ฐ์์ ์ ์ฅํ๋ค.
- ์ ์ฅํ ์ด๋ฏธ์ง๋ฅผ StyleGAN2 FFHQ ๋ชจ๋์ ํ์ฉํด ์ผ๊ตด ์์ญ๋ง cropํ๊ณ , alignํ๋ค.
- Aligned ์ด๋ฏธ์ง๋ฅผ Tooni-fy ๋ชจ๋ธ์ projectionํ๋ค.
- Projection ์ด๋ฏธ์ง๋ค์ ๋ชจ์์ cv2์ VideoWriter๋ก mp4 ์์(fps=3)์ ์์ฑํ๋ค.
- [๊ทธ๋ฆผ 13]์ ์์์ด ์์ฑ๋๋ค.
- [๊ทธ๋ฆผ 13]์ ์์์ ๊ฐ์ ธ์จ๋ค.
- ์์์์ Emotion Recognition์ ์ค์ํ๋ค. ์ด๋, ์ผ๊ตด์ด ๊ฒ์ถ๋์ง ์์ผ๋ฉด Cannot detect face region ์ด๋ผ๋ ๋ฌธ๊ตฌ๋ฅผ ์ฝ์ ํ๋ค.
- Emotion Recognition์ ๋ชจ๋ ํ๋ ์์ ์ค์ํ๊ณ ๊ฒ์ถ๋ ํ์ ์ ๋ณด๋ฅผ ์ฝ์ ํ ํ๋ ์์ ๋ค์ ์ ์ฅํ๋ค.
- ์ด ํ๋ ์์ VideoWriter๋ก mp4 ์์(fps=3)์ ์์ฑํ๋ค.
- [๊ทธ๋ฆผ 14]์ ์ด๋ ๊ฒ ์์ฑ๋ ์ต์ข ์์์ 0.5๋ฐฐ์ํ ๊ฒ์ด๋ค. ์์์ด ๋๊ฒจ ๋ณด์ด๋ ๊ฒ์ ์ต์ํ ํ๊ธฐ ์ํด fps๋ฅผ 3์ผ๋ก ์์ฑํ์ผ๋, ํ์ ์ธ์ ๊ฒฐ๊ณผ๋ฌผ์ ์ฒ์ฒํ ํ์ธ ๊ฐ๋ฅํ๋๋ก ๋๋ฆฐ ๋ฒ์ ์ gif ํ์ผ์ ์ถ๊ฐํ๋ค.
๋ชจ๋ ํ๋ ์(์๋ณธ, tooni-fied, emotion-recognition)์ ์ด๋ฏธ์ง๋ก ์ ์ฅํ๊ณ , ์์์ผ๋ก๋ ์ ์ฅํ๋ค. ๊ฐ๊ฐ์ ์ด๋ฏธ์ง์ ๋ฐ๋ฅธ ํ๋ก์ธ์ค๊ฐ ์ ์ด๋ฃจ์ด์ก๋์ง, ์ธ๋ถ์ ์ธ ๊ฒฐ๊ณผ๋ฌผ์ ํ์ธํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ๊ตฌํํ์๋ค. ์์ธํ ์ฝ๋์ ๋ด์ฉ์ ํ์ฌ repository์ ์ ๋ก๋ํ Frame_by_frame_Emotion_Classification_and_Emojify.ipynb์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
This project was inspired by these amazing projects below. If you want to see the original project of StyleGAN2, Toonify, and Emotion Recognition using mini-Xception, please visit the address below.
























