FINT조

cdc wiki
이동: 둘러보기, 검색

프로젝트 개요

기술개발 과제

국문 : CNN을 이용하여 한글 폰트를 식별하고 GAN을 이용하여 폰트를 생성

영문 : Discriminate Hangeul(Korean) font in image using CNN and create New Hangeul(Korean) Font using GAN

과제 팀명

FINT (Find Font)

지도교수

김민호 교수님

개발기간

2019년 3월 ~ 2019년 6월 (총 4개월)

구성원 소개

서울시립대학교 컴퓨터과학부 2013920012 김범수(팀장)

서울시립대학교 컴퓨터과학부 2013920041 윤재상

서울시립대학교 컴퓨터과학부 2013920059 정희탁

서울시립대학교 컴퓨터과학부 2013920068 황두욱

서론

개발 과제의 개요

개발 과제 요약

◇ OCR(광학 문자 인식)을 이용하여 글자를 인식하고, CNN(Convolutional Neural Networks) 모델을 사용하여 해당 글자의 폰트를 식별한다.

Fint001.png


◇ 사용자가 찾고 싶은 폰트의 이미지를 페이지에 업로드 한다.
◇ 서버에서 OCR을 이용하여 글자를 인식하고, 전처리 작업을 통하여 적절하게 이미지를 자른다.
◇ 학습한 CNN 모델을 기반으로 이미지에서 폰트를 식별한다.
◇ Accuracy가 높은 상위 5개 폰트에 대해 화면에 출력한다.

개발 과제의 배경

◇ 과거에는 데이터간의 관계를 분석하고 모델식을 만드는 데이터 마이닝 기법 중 하나인 회귀분석(Regression Analysis)을 주로 사용했다. 이는 정확성이 상대적으로 떨어지고 모델 정교화를 위해 분석가의 노력이 많이 필요했고, 그래서 등장한 것이 인공신경망(Artificial Nerual Network)이다. 인공신경망은 사람의 뇌를 모방한 방법으로 데이터를 입력하면 자동으로 복잡한 수학식을 기반으로 모델링을 하는 방법이다. 인공신경망을 가지고 이미지를 분석하는 경우 방법은 Single Linear Classifiers, K-Nearest Neighbors, SVMs, Multi Layer Classifiers, Convolutional Neural Network(CNN) 등이 있다. 숫자 필기 데이터셋인 Mnist를 이용한 Performance를 측정해보면 아래와 같이 CNN은 우수한 성능을 보여준다.

Fint002.png


◇ 최근에는 두 개의 인공신경망을 사용하여 보다 정교한 결과물을 생성하는 GAN 모델링에 대한 연구가 활발하게 진행되고 있다. GAN의 A는 Adversarial의 약자로 ‘적대적인’ 이라는 뜻을 가지고 있는데, 하나의 인공신경망에는 Fake data를 생성하고, 다른 하나의 인공신경망에는 Real data를 가지고 가짜 데이터와 진짜 데이터를 구별할 수 있는 파라미터를 찾고, 이를 기반으로 Fake data가 fake인지 real인지를 식별한다. 최종적으로 Fake data가 Real data로 식별이 될 때 까지 적대적 학습(Adversarial Training)을 진행하여 그럴듯한 가짜를 만들어 낼 수 있다. 
◇ 알파벳은 소문자와 대문자를 합쳐 52개로 학습이 용이하지만 한글의 경우 유니코드 2.0에 등록된 개수만 11,172개가 되기 때문에 학습에 어려움이 있으며 이러한 이유로 인해 한글폰트를 찾아주는 서비스는 제공되지 않고 있다.
◇ 이미 존재하는 폰트와 대조하는 방식의 OCR(Optical character recognition)은 알파벳의 경우 높은 인식률을 보이지만 한글의 경우에는 높은 해상도로 스캔하지 않으면 인식률이 떨어지며, 필기체의 경우 매우 낮은 인식률을 보여준다. OCR을 기반으로 사용하되 전처리에 대한 부분은 따로 알고리즘을 구현하여 Performance를 향상시켜 차별화를 둔다.
◇ 현재 한글폰트를 찾는 경우에는 ‘한글마을’을 이용하여 원하는 문구의 가장 비슷한 폰트를 직접 찾는 번거로움이 있다. 이 문제는 딥러닝을 이용하여 이를 해결하여 가장 비슷한 폰트를 찾아 해결하며 Youtube, 개인방송, 지상파 방송의 영상편집에 이용할 수 있다. 
◇ CNN을 사용하여 폰트를 식별하는 것에 그치지 않고 식별하지 못한 데이터셋을 기반으로 GAN 모델을 이용하여 학습시켜 새로운 폰트를 만들어 새로운 가치를 창출한다.

개발 과제의 목표 및 내용

◇ OCR을 이용하여 글자를 인식하고, 전처리 작업을 통하여 적절하게 이미지를 잘라준다.
◇ 가공된 이미지 세트에 여러 노이즈를 발생시켜 학습의 효율을 높여준다.
◇ CNN 모델을 기반으로 학습하여 폰트를 식별하여 최적의 파라미터를 찾는다.
◇ 최적화된 파라미터를 이용하여 사용자가 요청한 폰트와 가장 근접한 상위 5개의 폰트를 출력한다.
◇ 유료 폰트와 제휴하여 구매 대행을 하는 등 찾을 수 있는 폰트의 개수를 늘려간다.

관련 기술의 현황

관련 기술의 현황 및 분석(State of art)

  • 전 세계적인 기술현황
◇ OCR(Optical Character Recognition) – 광학 문자 인식

인공지능 모델을 만들기 위해서 데이터 전처리는 필수적이고 모델의 성능과 밀접한 관련이 있다. 한 설문조사에서는 인공지능 개발자의 80% 시간을 데이터를 수집 및 전처리에 사용한다고 한다. 지루하고 반복 작업의 연속이기 때문에 시간이 많이 들어가지만 가장 중요한 작업이기 때문에 초반에 시간을 들여서 개발하는 것이 중요하다.

전처리 과정에서 사용할 기술인 OCR은 이미지에서 한 글자 별로 나눠주고 그 글자가 무엇인지 분류하는 역할을 한다 . 예를 들어 사용자가 나눔 고딕의 ‘가’라는 이미지를 입력한 경우 OCR은 ‘가’라는 글자를 찾아서 경계를 나눠주고 해당 이미지가 어떤 글자인지 판별하는 작업을 담당하다. 하지만 한 가지 문제점은 OCR의 성능이 생각보다 완벽하지 않다는 점이다. OCR 오픈 소스인 tesseract를 사용하는 경우 영어는 대략 95%의 정확도를 자랑한다. 하지만 한글의 경우 인식률이 매우 낮다. 그 이유는 영어는 한 글자가 대부분 하나의 덩어리로 이루어져 있어, 알파벳 단위로 이미지를 잘라서 인식 하기 때문에 정확도가 상대적으로 높은 반면 한글의 경우 자음, 모음, 받침 글자로 구분되어 한 글자 별로 정확하게 이미지를 자르기 쉽지 않다.

어떻게 입력된 이미지에서 글자별로 자르고, 해당 글자가 무엇인지 판단하는 작업이 CNN모델의 정확도에 가장 큰 영향을 준다.

▶ Tools & Library

가) Tesseract-OCR

- C++로 만들어진 오픈소스 OCR Engine

- 2005년에 HP에 의해 오픈소스화 되었으며, 2006년 이후로 Google에 의해 개발

- 사용자가 요청한 이미지에서 글자를 뽑아낼 때 사용한다.

Fint008.png

나) openCV

- Image를 분석할 목적으로 만들어진 프로그래밍 라이브러리

- 입력받은 Image에서 글자부분을 Compact하게 추출할 때 사용한다.

- Bounding Box(Contour Algorithm 사용)

Fint009.png

◇ CNN(Convolution Neural Networks) - 합성곱 신경망

Convolutional Neural Networks의 약자로 Convolution(합성곱)과 Neural(신경망)을 결합해 만들어진 알고리즘으로, 우수한 성능을 내는 인공신경망 기법 중 하나이다. 일반적으로 분류작업은 ‘특징추출 + 분류 = 결과’ 의 매커니즘으로 작동하는데 CNN은 특징추출을 Convolution을 이용해서, 분류는 Neural Networks를 이용해서 결과를 나타낸다.

Convolution을 이용하여 특징을 추출하는 방법은 다음과 같은 방식으로 진행한다.

Fint010.png

왼쪽의 사진으로부터 빛의 삼원색(RGB : Red, Green, Blue)을 추출하여 오른쪽과 같이 정형화를 진행한다.

검은색을 1로 나타내고, 흰색을 0으로 나타내면 왼쪽과 같은 Matrix가 완성된다. 이것이 Input이 된다. 여기에 가중치를 가지는 필터와 함께 Convolution(합성곱)을 통하여 특징을 추출한다.

Fint011.png

위와 같이 필터를 계속 이동하면서 Input의 해당영역에 Filter값을 곱하여 합한 결과를 나타내면 Feature Output이 된다. 필터는 학습마다 다른 필터를 사용할 수 있기 때문에 여러 가지 경우의 특징이 추출된다. 추출한 특징값을 Pooling Layer를 통하여 Subsampling을 진행한다. Subsampling을 진행하면 Overfitting을 방지하고 모델의 파라미터의 수를 감소시켜준다. Pooling의 방법은 대푯값 선정에 따라 구분하는데, Max pooling(최대값)과 Average pooling(평균값) 등이 있다. 아래는 Max pooling을 이용하여 Subsampling을 하는 예시이다.

Fint012.png

Convolution을 통해 특징을 추출하고 Subsampling을 통해 최소화하여 1차원의 행렬로 만들어Fully-Connected layer를 통하여 최종적으로 분류하는 것이 CNN이다. CNN을 간단하게 도식화하여 나타내면 아래와 같다.

Fint013.png

▶ Tools & Library

가) tensorflow

- 기계학습과 딥러닝을 위해 구글에서 만든 오픈소스 라이브러리

- 2015년에 오픈소스로 공개된 머신러닝 시스템이며 Python과 C++로 사용 가능

- tensorflow 라이브러리를 기반으로 한 CNN 신경망을 구축한다.


◇ GAN(Generative Adversarial Network) - 합성곱 신경망

GAN에서 G는 ‘Generative’ 약자로 그럴듯한 가짜를 만들어 내는 생성모델을 의미한다. 인공신경망을 이용해 학습하여 실제로 있을 법한 사람이나 사물의 사진을 만드는 것을 가능하게 한다. 아래의 사진은 GAN 모델을 이용하여 만들어 낸 가짜 이미지이다.

Fint024.png

그러나 ‘그럴듯하다’라는 것을 어떻게 수치화할 수 있을까? 수학적으로 실제 데이터의 분포와 비슷한 분포를 갖는 데이터를 실제와 비슷하다고 말할 수 있다. 그러므로 생성 모델은 실제 이미지와 유사한 분포를 갖는 이미지를 생성하기 위해 학습한다. 하지만 특정한 이미지를 생성하는 것은 매우 어렵다. 그 이유는 크기가 256X256 픽셀의 작은 이미지에 RGB 색상 값까지 고려한다면 총 256X256X3 개의 변수가 있고, 이 변수 하나하나에 특정 이미지와 유사한 분포를 갖는 값들을 할당해줘야 하기 때문이다. 또 각 픽셀마다 0에서 255값을 가질 수 있기 때문에 256X256 픽셀 크기의 이미지에서 나올 수 있는 수는 무려 5000만(256X256X256X3) 가지에 달한다. 경우의 수가 너무 많으므로, 특정 이미지를 생성하기 위해 픽셀에 적절한 분포를 갖는 데이터를 할당하는 방법은 기존의 프로그래밍 방법으로는 불가능하다.

그렇기 때문에 GAN에서 'Adversarial'의 약자인 A의 방법을 사용한다. Adversarial은 GAN이 두 개의 모델을 적대적으로 경쟁하며 발전한다는 것을 뜻한다. 위조지폐를 만드는 범죄좌와 감식관을 생각해 보자. 이 둘은 적대적 경쟁 관계이다. 범죄자는 감식관을 속이기 위해 정교한 지폐를 만들어 내기 위해 점점 정교한 지폐 위조 기술을 발전시킬 것이고, 감식관은 범죄자를 잡기 위해 점점 위폐를 찾는 기술을 발전시킬 것이다. 궁극적으로는 범죄자 솜씨가 매우 좋아져서 감식관이 더 이상 진짜 지폐와 위조지폐를 구별할 수 없을 정도(구별 확률 = 0.5)가 된다.

Fint025.png

즉, GAN은 범죄자에 해당하는 생성자(Generator)의 역할을 하는 인공신경망과 감식관에 해당하는 식별자(Discriminator)의 역할을 하는 인공신경망을 경쟁적으로 학습시킨다. 생성자는 가짜 데이터를 만들어서 식별자를 속이는 것이 목표이고, 식별자는 생성자가 만든 그럴듯한 가짜 데이터를 구분해 내는 것이다. 이것을 적대적 학습(Adversarial Training)이라고 하며, GAN의 핵심이다.

마지막 단어인 네트워크(Network)는 이 모델이 인공신경망 또는 딥 러닝으로 만들어졌기 때문에 붙여졌다. 먼저 식별자를 학습시킨 후, 생성자를 학습시키는 과정을 서로 주고받으면서 반복한다. 아래 식에서 V(D,G)를 하나의 모델이라고 가정하면 식별자는 V(D,G) 값을 최대로 하는 방향으로 학습을 진행하고, 생성자는 반대로 V(D,G)의 값을 최소로 하는 방향으로 학습을 하게 된다. 아래는 위의 과정을 수식으로 나타낸 것이다.

Fint026.png


우리의 프로젝트에서는 폰트를 식별하는 CNN모델과 더불어 식별하지 못한 데이터들을 모아 폰트를 생성하기 위하여 GAN모델을 개발한다. GAN모델을 학습 시키기 위해 CNN모델을 검증하는 단계에서 폰트의 결과 값을 다르게 예측한 이미지를 수집한다. 예를 들어, 나눔 고딕 폰트로 생성된 ‘가' 이미지를 CNN모델이 HY견명조로 예측하는 경우, 이 예측은 틀렸으므로 해당 이미지를 수집한다. 수집된 폰트와 글자들을 GAN모델의 식별자의 입력 데이터로 학습 시킨다.

GAN모델에는 DCGAN, StarGAN 등 여러 가지 종류가 있지만, 먼저 기본적인 모델을 이용하여 학습을 진행하고 정확도가 매우 떨어지는 경우 다른 모델을 도입할 예정이다. 기본적인 GAN모델은 생성자와 식별자 두 가지로 나뉜다. 두 가지 모델이 서로 경쟁하며 학습한다. 먼저 생성자의 경우 수집된 실제 폰트 이미지를 이용해 실제 이미지를 판별하도록 학습 시킨다. 식별자의 경우 임의로 생성된 벡터를 바탕으로 이미지를 생성하는데, 생성자가 실제 이미지로 착각할 만한 이미지를 생성할 때까지 학습한다. 이러한 작업을 무수히 거치게 되면 생성자가 만든 글자 이미지가 실제 글자에 가까워지고 이를 모아 폰트로 만든다.



  • 특허조사
◇ 한글 문서에 포함된 문자를 인식하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 (1010152330000)

이미지로 표현되는 한글 문서에 대해 문자 인식을 수행하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체가 개시된다. 본 발명에 따르면, 이미지 형식의 한글 문서에 포함된 문자를 인식하기 위한 방법으로서, (a) 이미지에 포함된 문자를 대상으로, 다른 성분과 접합되어 있지 않은 일 이상의 독립된 성분들을 추출하는 단계, (b) 상기 추출된 독립된 성분 중 자소에 해당되는 성분을 인식하는 단계, (c) 상기 인식된 자소를 기초로 하여 1차 문자 인식을 수행하는 단계, (d) 상기 1차 문자 인식 결과로부터 상기 한글 문서에 대한 문서 정보를 파악하는 단계, 및 (e) 상기 파악된 문서 정보를 기초로 상기 1차 문자 인식의 대상이 되지 못한 문자들에 대해 2차 문자 인식을 수행하는 단계를 포함하는 방법이 제공된다. 본 발명에 따르면, 문자 분할의 정확도 향상과 문자 인식의 속도 향상을 꾀할 수 있다.

◇ System for selecting, distributing, and selling fonts (U.S. 6,853,980 B1)

컴퓨터화된 전자상거래 글꼴 서버 시스템은 사용자가 하나 이상의 글꼴을 선택할 수 있도록 한다. 시스템은 사용자가 다차원 속성 값으로 정의된 글꼴을 선택할 수 있게 해준다. 시스템은 이미지 내 글자가 있는 영역을 표시하여 사용자가 영역을 선택할 수 있게 한다. 선택한 영역 내 글자의 글꼴과 유사한 글꼴들을 보여주고, 사용자는 글꼴을 선택할 수 있다. 선택한 글꼴을 클라이언트의 운영체제가 사용하기에 적합한 형태로 제공한다.

◇ CHARACTER IDENTIFICATION THROUGH GLYPH DATA MATCHING (U.S. 20110188761 A1)

영구 데이터 저장소에 문자 식별 데이터가 저장된다. 문자 식별 데이터는 하나 이상의 글꼴의 하나 이상의 문자에 대해 (a) 문자에 대한 글리프 데이터 (b) 코드 포인트 데이터와 문자를 연관시키는 데이터로서, 여기서 글리프 데이터는 문자를 출력 장치에 렌더링하는 방법을 설명하고 코드 포인트 데이터는 컴퓨터화된 엔티티에 대한 ID를 식별한다. 문자. PDF 문서와 같은 내장형 글꼴 문서가 특정 문자에 대한 코드 포인트 데이터 세트를 포함하지 않는다고 판단되면, 문자 식별 데이터를 참조하여 특정 문자의 신원을 결정한다. 이렇게 해서 기계는 내장된 글꼴 문서에 있는 문자를 인식할 수 있으며, 내장된 글꼴 문서에 색인화 또는 검색 등의 기능을 수행할 수 있다.

◇  특허 현황

2019년 5월 기준 글꼴 관련 특허는 한국 15,300여개, 미국 92,000여개, 유럽 63,000여개, 일본 23,000여개가 존재한다. 그 중 대부분은 OCR관련 특허이고 머신러닝을 활용한 특허는 소수이다. 머신러닝을 이용해 글꼴을 식별하거나 생성하는 특허는 영어 글꼴에 대해서는 존재하지만, 한글 글꼴에 대해서는 전무하다.


  • 특허 전략
◇ 우리가 개발하려는 한글 글꼴 식별 및 생성 시스템은 여러 오픈소스를 활용해 개발된다. 현재 이런 시스템에 대한 특허가 존재하지 않기 때문에, 특허 등록을 하게 되면 긍정적인 효과를 기대할 수 있다. 그러나 오픈소스를 활용해 개발하기 때문에 특허 등록이 가능한 것인지 알 수 없다. 따라서 시스템이 성공적으로 개발된다면, 특허 관련 전문가에게 자문하여 알아본 뒤 가능하다면 특허 등록을 할 계획이다.

시장상황에 대한 분석

  • 경쟁제품 조사 비교
◇ WhatTheFont

WhatTheFont는 미국 디지털 폰트 유통 업체인 MyFonts에서 제공하는 폰트 인식 서비스이다. 사용자가 글자가 있는 PNG나 JPG 파일을 업로드하면, 문자인식(OCR) 기술을 이용해 글자를 인식한다. 인식된 글자가 출력되고 사용자가 식별하려는 문자를 클릭하면, WhatTheFont는 딥러닝을 이용해 133,000여 개의 폰트 중 유사도가 높은 폰트들을 찾아주는 서비스를 제공한다. 현재 다른 언어는 지원하지 않고, 영어만 지원하고 있다.

◇ 한글마을

한글마을은 우리나라 최초의 한글 글꼴 등록시스템으로, 현존하는 모든 한글 글꼴을 등록 및 검색할 수 있는 서비스이다. 2019년 3월 기준으로 1700개의 한글 폰트를 검색할 수 있고, 원하는 글자를 입력하면 입력된 글자를 1700개의 폰트로 보여주며 사용자는 그중 원하는 폰트를 선택해 구매 및 다운로드할 수 있다.

◇ Adobe Photoshop CC 글꼴인식

Adobe사 이미지 편집 프로그램인 Photoshop의 CC 2015.5 버전부터 추가된 기능이다. 이미지를 불러온 뒤 글꼴 인식 기능을 실행하여 인식하려는 글자가 있는 이미지의 일부분을 선택한다. 머신러닝 기술을 이용해 Photoshop에 내장된 글꼴과 Adobe Typekit에서 제공되는 글꼴 중 유사한 글꼴을 찾아 사용자에게 보여준다. 아직은 한글은 지원되지 않고 로마어/라틴어 및 일본어만 지원하고 있다.

◇ GitHub – GAN을 활용한 한글 폰트 제작 프로젝트

GitHub의 periannath라는 유저가 개발한 한글 폰트 제작 프로젝트이다. 제공된 폰트 템플릿에 맞춰 글자를 작성한 뒤 스캔하여 학습 데이터로 이용한다. 템플릿에는 399자만 있기 때문에 완성형 한글 글자 수인 11172자를 생성하기에 input 개수가 부족하다. 이를 해결하기 위해 여러 개의 Copyleft 폰트로 학습된 모델을 생성한 뒤 transfer learning을 통해 399자를 학습시키고 그 모델을 통해 폰트를 생성하는 프로젝트이다.

◇ University of California, Berkeley AI Research LAB – MC-GAN for Font Style Transfer

BAIR(Berkeley Artificial Intelligence Research) Lab의 블로그에 발표된 영어 폰트 제작 기술이다. BAIR 연구진은 multi-content GAN(MC-GAN)이라는 새로운 종류의 GAN 모델을 디자인했다. MC-GAN은 아래 이미지와 같이 7~8자의 알파벳을 input으로 이용하면, 폰트를 만들어내 한 문장을 만들 수 있다.

Fint003.png

다만, 26개의 알파벳으로 구성된 영어와 달리 11172자의 한글에 이 기술을 적용하면 사용자가 원하는 폰트 제작이 불가능할 것이라 기대된다.



  • 마케팅 전략 제시
◇ WhatTheFont와 Photoshop 글꼴 인식 서비스는 한국어를 지원하지 않으므로, 우리 제품은 시장에서 한국어를 최초로 지원하는 서비스임을 강조하며 홍보한다.
◇ 한글마을은 한글을 지원하지만, 인공신경망을 이용한 이미지 인식이 아닌 사용자가 직접 찾아봐야 하는 불편함을 갖고 있다. 사용자에게 편리한 서비스를 제공하는 점에 중점을 둔다.
◇ 유튜브를 통한 광고 및 바이럴 마케팅을 이용해 문서 및 PPT 자료 작성이 잦은 20~30대 고객층을 중심적으로 노린다.

개발과제의 기대효과

기술적 기대효과

◇ 고객이 제품을 이용하기 위해 입력한 이미지를, 필요시 추가 표본으로 사용하여 학습시킴으로써 시간이 지날수록 신경망의 정확도 상승을 기대할 수 있다.
◇ 이미지에서 원하는 폰트를 발견했을 때, 2000개에 달하는 한글 폰트를 비교하며 찾아낼 필요가 사라져 이용자의 시간을 절약할 수 있다.
◇ 폰트 검색 기능으로 일치하는 폰트를 식별하지 못하면, 폰트 제작 기능을 통해 새로운 폰트를 제작하여 이용자의 욕구를 충족시킬 수 있다.
◇ 웹 기반 서비스를 이용함으로써 이용자에게 편리한 접근성을 제공할 수 있다.

경제적, 사회적 기대 및 파급효과

◇ 문서 및 발표 자료의 목적에 따른 적절한 폰트 사용으로 이용자의 목표 달성을 도모할 수 있다.
◇ 폰트 검색에 편리함을 제공해 이용자가 많아지면, 국내 유료 폰트 제작자의 매출 상승을 기대할 수 있다.
◇ 유료 폰트 시장의 활성화에 기여하고, 폰트 제작자를 떠오르는 인기 직업군으로 만들 수 있다
◇ 식별에 실패한 폰트를 기반으로 새로운 폰트를 제작하여 이용자가 폰트 제작자가 되고, 뜻밖의 수익창출을 이끌어낼 수 있다.

설계

기술개발 일정 및 추진체계

개발 일정

Fint032.png

구성원 및 추진체계

  공  통 - 보고서 작성, 결과 분석
  김범수 - CNN 인식 데이터 수집, CNN 모델 구현, UI 제작
  정희탁 - 데이터 전처리, CNN 모델 구현, UI 제작
  황두욱 - GAN 모델 구현, Font Template 작성
  윤재상 - GAN 모델 구현, Font Template 작성, Font Generating

전체 상태도

Fint033.png

기술 로드맵

학습 · 인식

 가) 흐름도

Fint004.png

 나) CNN Model

Fint005.png

폰트 생성

 가) 흐름도

Fint006.png

 나) GAN Model

Fint007.png

결과 및 평가

완료 작품의 소개

학습과정

1) CNN 폰트 인식

Fint034.png

2) GAN 폰트 생성

Fint037.png

프로토타입 사진

1) 기본 페이지

Fint035.png

◇ 사용자에게 글자 이미지를 업로드 받는다.
◇ CNN 모델을 이용하여 학습한 최적의 파라미터 값을 이용하여 폰트를 식별한다.

2) 결과 화면

가) 폰트 검색

Fint038.png

◇ 사용자가 업로드 한 폰트를 가지고 식별한 결과를 보여준다.
◇ Accuracy가 높은 상위 5개의 폰트를 가지고 결과 화면을 보여준다.
◇ 상위 5개의 폰트를 다운로드 할 수 있다.

나) 폰트 생성

Fint036.png

◇ 임의의 폰트를 선택하여 Feature Font로 설정한다.
◇ GAN 모델을 이용하여 폰트를 생성한다.
◇ 생성된 폰트를 기반으로 다운로드 할 수 있는 기능을 제공한다.


완료작품의 평가

Fint039.png