GithubHelp home page GithubHelp logo

datascience-lab-yonsei / 23-2_dsl_modeling_fontgenerator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from younghkim1/23-2_dsl_modeling_fontgenerator

0.0 0.0 1.0 0 B

23-2 DSL Modeling Project : Multimodal

Python 100.00%

23-2_dsl_modeling_fontgenerator's Introduction

23-2_DSL_Modeling_each_team_project_name


주제

  • 한글 지원이 되지 않는 영문 폰트에 대응하는 한글 폰트 생성

Team F 김영현 유선재 이성균 장현빈 정성오


Overview

발표자료

1. Overall Pipeline

image

  • 생성하고자 하는 글자의 모양을 가진 source 이미지로부터 글자의 구조와 모양에 대한 정보를 담은 content feature를 뽑기 위해 UNet의 encoder part를 통과시킴.

  • UNet의 인코더의 6개의 층으로부터 각각의 레벨에서 structure feature을 뽑아내고, 이들이 잘뽑혔는지 확인하기 위해 다시 UNet의 decoder를 통해 복원하여 확인함.

  • 원하는 스타일을 가진 target 이미지의 경우 폰트의 스타일에 대한 정보를 가진 feature를 추출하기 위하여 UNet과 별개의 encoder를 통해 style feature를 뽑아냈음.

  • style feature을 6단계의 de-convolution block을 가진 generator에 입력으로 넣어주는데, 6개의 레벨마다 이전에 UNet encoder에 source image를 통과시켜 6단계에 걸쳐 얻어낸 style features를 condition으로 넣어줌.

  • 이러한 방식으로 source 이미지와 target 이미지를 결합하여 generator의 최종 아웃풋으로는 32by32 이미지를 얻게 됨.

2. Model

image

  • 생성된 이미지는 target font의 스타일을 가진 글자이므로 모델이 잘 학습 되었다면 target font에서 가져온 같은 글자 모양 이미지와 같아야 하기 때문에 그 둘 간에 l1 norm의 형태로 generator loss를 정의하였음.

  • fake image와 source image는 gan의 분포추론을 이용하기 위해 discriminator를 사용해 discriminator loss를 정의하였음.

3. Dataset

image

  • 한글과 영어가 모두 지원이 되는 폰트의 소스파일인 ttf 파일로부터 각 폰트 당 영어 52개와 한글 조합 약 만 천 개의 이미지를 변환하는 방법을 이용하여 학습을 진행함.

Result

1. Final Output

  • target font

image

  • generated font

image

2. Meaning & Limitations

  • 영어 폰트의 경우 52개의 알파벳에 대한 글씨체를 구성하면 끝이지만 한글 폰트의 경우 약 만 천개의 글씨에 대해 모두 글씨체를 구성해야하므로 비용과 시간이 상당히 많이 필요함.
  • FontGenerator는 영어만 가능한 폰트가 한글에 대해서도 호환이 가능할 수 있도록 모든 한글 조합에 대하여 이미지를 생성함으로써 폰트를 생성하는데 필요한 시간과 비용을 크게 단축할 수 있게 도와준다는 점에 큰 의미를 가짐.
  • 그러나 ttf파일로부터 이미지를 불러오는 속도가 다소 느려서 단 22개의 폰트를 불러오고 모델을 학습하는데 상당히 많은 시간이 소요되었음.
  • 모델의 속도를 높이고자 불러온 이미지의 해상도를 32 by 32로 낮춰서 모든 프로세스를 진행하였기 때문에 생성된 폰트의 해상도가 낮음.
  • ttf파일을 hdf5라는 형식의 파일로 바꾼 후, 거기에서 파일을 불러와서 학습과 추론을 진행하는 방법을 이용한다면 학습 시간을 크게 단축시킬 수 있을 것으로 생각됨.
  • 낮은 해상도로 인한 한계점을 개선하기 위하여 생성된 이미지의 해상도를 높이는 super-resolution 모델을 사용해볼 수 있을 것이라고 생각됨.

File description

  • main (실제 구동하는 파일)
    • main.py
  • model (모델 내부 구조 파일)
    • model.py
  • dataset & utils (데이터 생성 파일)
    • dataset.py
    • utils.py

23-2_dsl_modeling_fontgenerator's People

Contributors

younghkim1 avatar

Forkers

sjung055

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.