FINT조
프로젝트 개요
기술개발 과제
국문 : 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) 모델을 사용하여 해당 글자의 폰트를 식별한다.
◇ 사용자가 찾고 싶은 폰트의 이미지를 페이지에 업로드 한다.
◇ 서버에서 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은 우수한 성능을 보여준다.
CLASSIFIER
ERROR RATE
Linear
Classifiers
linear classifier (1-layer NN)
12.0%(MAX)
pairwise linear classifier
7.6%(MIN)
K-Nearest
Neighbors
K-nearest-neighbors, Euclidean (L2)
5.0%(MAX)
K-NN with non-linear deformation (P2DHMDM)
0.52%(MIN)
SVMs
SVM, Gaussian Kernel
1.4%(MAX)
Virtual SVM, deg-9 poly, 2-pixel jittered
0.56(MIN)
Multi Layer
Classifiers
2-layer NN, 300 hidden units, mean square error
4.7%(MAX)
6-layer NN 784-2500-2000-1500-1000-500-10
(on GPU) [elastic distortions]
0.35%(MIN)
Convolutional
Neural
Networks
Convolutional net LeNet-1
1.1%(MAX)
committee of 35 conv. net, 1-20-P-40-P-150-10
[elastic distortions]
0.23%(MIN)
◇ 최근에는 두 개의 인공신경망을 사용하여 보다 정교한 결과물을 생성하는 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 모델을 이용하여 학습시켜 새로운 폰트를 만들어 새로운 가치를 창출한다.
개발 과제의 목표 및 내용
내용
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
- 전 세계적인 기술현황
내용
- 특허조사 및 특허 전략 분석
내용
- 기술 로드맵
내용
시장상황에 대한 분석
- 경쟁제품 조사 비교
내용
- 마케팅 전략 제시
내용
개발과제의 기대효과
기술적 기대효과
내용
경제적, 사회적 기대 및 파급효과
내용
기술개발 일정 및 추진체계
개발 일정
내용
구성원 및 추진체계
내용
설계
설계사양
제품의 요구사항
내용
설계 사양
내용
개념설계안
내용
이론적 계산 및 시뮬레이션
내용
상세설계 내용
내용
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
내용
포스터
내용
관련사업비 내역서
내용
완료작품의 평가
내용
향후계획
내용
특허 출원 내용
내용