Giter Site home page Giter Site logo

skku_swe3028's Introduction

2021-2 Capstone project(SWE3028): TeamA - Jjangdol

[SWE3028-41] Capstone Design
Contact e-mail : [email protected]
Document : proposal, final

Fontmaking Webservice using AI model : DM-font

Brief Explanation

We developed web-service(GANdan-fontmaker) based on Dual Memory-Augmented Font Generation Network(DM-font). Our service provides two distinctive functions; combining people’s font style and re-correcting font style for satisfying user needs.

Overall Architecture

readmeImg/overall.png

Environment

Install dependencies in Conda Env:

conda install --name CONDA_ENV_NAME --file requirements.txt

Note that using different version of required packages can effects the results, especially PyTorch. The implementations are tested on Python 3.7+

Please pull out the dmfont, and ProgramFiles directories outside of Capstone-project directory

.
├── dmfont                 # From Capstone-project directory
├── Capstone-project       # At first, contains dmfont, and ProgramFiles directories
│   ├── FlaskProj          
│   ├── web1               
│   └── ...                
└── ProgramFiles           # From Capstone-project directory

Please check your local Path in FlaskProj directory

.
├── dmfont                 
├── Capstone-project      
│   ├── FlaskProj          
│   │   ├── HelloWorld.py  # modify the localPath                
│   │   ├── Png2Svg.py     # modify the localPath     
│   │   ├── Svg2Ttf.py     # modify the localPath
│   │   ├── Template.py    # modify the localPath, webPublicPath, popplerPath  
│   │   └── ...                
└── ProgramFiles           

Installation

OpenSources:

DM-font : Few-shot Compositional Font Generation with Dual Memory
-> paper

FontForge : Fully formatted font editor that can support all plain font formats, To Convert SVG to TTF
-> Download FontForge for Windows : "FontForge-2020-11-07-Windows.exe", and install.

ImageMagick : Opensource used to create or fix graphic images, To Convert PNG to PNM
-> Download Latest Version: "ImageMagick-7.1.0-17-Q16-HDRI-x64-dll.exe" and install it, and add the path to your SYSTEM PATH

Poppler : Library that performs PDF document rendering
-> Download Latest binary : "poppler-0.68.0_x86" from this website, unzip it in ProgramFiles directory

potrace : Cross-platform that converts bitmap images into vector graphics,To Convert PNM to SVG
-> Already installed and uploaded to Github, so no need to re-download.

Pretrained model

Data sources for Korean-handwriting datasets were built from UhBee fonts. For running the DM-font, pretrained model below.

Checkpoint trained on the Korean-handwriting dataset

.       
├── dmfont       
│   ├── checkpoints                 # Make directory named "checkpoints"
│   │   ├── korean-handwriting.pth  # Download Pretrained model
│   └── ...                
└── ...

How To Run

.
├── dmfont                
├── Capstone-project       # set the terminal(1) on this directory
│   ├── web1               # set the terminal(2) on this directory
│   ├── FlaskProj          # set the terminal(3) on this directory
│   └── ...                
└── ProgramFiles           

In terminal(1) Server using node.js will run.
In terminal(2) Frontend using React will run.
In terminal(3) Flask server will run.

terminal command:

terminal(1)> node server
terminal(2)> npm start
terminal(3)> python HelloWorld.py

You can test on localhost:3000/

How To Use & Demo

You can get the project information and Demo HERE

Main Page

readmeImg/image1.png Main page : You can download template, or move to the page to generate a font for either one or more users.

GANdan fontmaker with multiple users

readmeImg/image2.png Multiple user page : upload templates with handwritings and choose among initial, medial, final consonants.

GANdan fontmaker with one user + AS service

readmeImg/image3.png One user page : Just upload template and submit. When a font is generated by DM-font model, it is checked whether you want to get the AS service or not before converting to a ttf format file
AS service page : Choose the consonants you didn't like or want to modify, and write the letters when you get Get button on template, and submit again.

skku_swe3028's People

Contributors

daehyupp avatar sachoi1201 avatar peanallc avatar ndy2 avatar

Stargazers

lismin avatar

Watchers

 avatar

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.