KR102623293B1 - 폰트 생성 방법 및 장치 - Google Patents

폰트 생성 방법 및 장치 Download PDF

Info

Publication number
KR102623293B1
KR102623293B1 KR1020210170891A KR20210170891A KR102623293B1 KR 102623293 B1 KR102623293 B1 KR 102623293B1 KR 1020210170891 A KR1020210170891 A KR 1020210170891A KR 20210170891 A KR20210170891 A KR 20210170891A KR 102623293 B1 KR102623293 B1 KR 102623293B1
Authority
KR
South Korea
Prior art keywords
font
image
generation model
feature vector
character
Prior art date
Application number
KR1020210170891A
Other languages
English (en)
Other versions
KR20230082926A (ko
Inventor
최재영
박장경
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Priority to KR1020210170891A priority Critical patent/KR102623293B1/ko
Publication of KR20230082926A publication Critical patent/KR20230082926A/ko
Application granted granted Critical
Publication of KR102623293B1 publication Critical patent/KR102623293B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

폰트 생성 방법 및 장치가 제공된다. 본 개시에 따른 폰트 생성 방법은, 소정의 글자를 나타내는 소스 이미지를 획득하는 단계, 상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하는 단계, 상기 소스 이미지를 사용하여 컨텐츠 정보를 생성하는 단계, 상기 복수의 타겟 컴포넌츠 이미지를 사용하여 폰트 스타일 정보를 생성하는 단계 및 상기 컨텐츠 정보 및 상기 폰트 스타일 정보에 기초하여, 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하는 단계를 포함할 수 있다.

Description

폰트 생성 방법 및 장치{FONT GENERATING METHOD AND APPARATUS THEREOF}
본 개시는 폰트 생성 방법 및 장치에 관한 것이다.
폰트 디자이너가 새로운 폰트를 만들 때 로마자는 대소문자를 포함한 알파벳 52개의 글자를 디자인하면 되지만, 한글은 11,172개의 글자를 디자인하여야 한다. 이는 30분에 한 글자씩 만들어도 하루 8시간 작업 시 700일이 소요되는 노동 집약적인 작업이다. 최근 인공지능을 이용한 새로운 폰트 생성에 관심이 증대되면서 보다 적은 글자로 고품질의 글자 생성 모델 개발이 요구되어 왔으며, 여러 개선된 모델이 발표되고 있다.
현재까지 개발된 딥러닝 기반 한글 생성 모델은 기존의 방식에 비해 입력하는 글자 수를 획기적으로 줄인 모델이지만, 여전히 많은 입력 데이터를 사용하고 있으며, 구조가 복잡하고, 상당한 시간과 많은 자원이 소요된다. 따라서 보다 적은 수의 입력 글자로 시간과 자원이 절약되는 간결하고 효율적인 모델 개발이 요구되고 있다.
본 개시의 일부 실시예는, 딥러닝에 기반하여 한글 폰트를 디자인함에 있어서, 글자를 구성하는 각 구성요소로부터 폰트 스타일에 관한 정보를 획득하고, 획득한 폰트 스타일에 관한 정보를 폰트 생성 모델의 학습 및 예측에 사용하여, 상대적으로 적은 수의 입력 글자로 짧은 시간 내에 폰트를 생성할 수 있는 폰트 생성 방법 및 장치를 제공하는 것을 목적으로 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제1 측면은, 소정의 글자를 나타내는 소스 이미지를 획득하는 단계, 상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득 단계, 상기 소스 이미지를 사용하여 컨텐츠 정보를 생성하는 단계, 상기 복수의 타겟 컴포넌츠 이미지를 사용하여 폰트 스타일 정보를 생성하는 단계 및 상기 컨텐츠 정보 및 상기 폰트 스타일 정보에 기초하여, 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하는 단계를 포함하는 폰트 생성 방법을 제공할 수 있다.
또한, 본 개시의 제2 측면은, 메모리 및 적어도 하나의 프로세서를 포함하며, 상기 적어도 하나의 프로세서는 소정의 글자를 나타내는 소스 이미지를 획득하고, 상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하고, 상기 소스 이미지를 사용하여 컨텐츠 정보를 생성하고, 상기 복수의 타겟 컴포넌츠 이미지를 사용하여 폰트 스타일 정보를 생성하고, 상기 컨텐츠 정보 및 상기 폰트 스타일 정보에 기초하여, 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하는 폰트 생성 장치를 제공할 수 있다.
또한, 본 개시의 제3 측면은, 소정의 글자를 나타내는 소스 이미지를 획득하는 단계, 상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하는 단계, 상기 소스 이미지를 사용하여 컨텐츠 정보를 생성하는 단계, 상기 복수의 타겟 컴포넌츠 이미지를 사용하여 폰트 스타일 정보를 생성하는 단계 및 상기 컨텐츠 정보 및 상기 폰트 스타일 정보에 기초하여, 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하는 단계를 포함하는 폰트 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공할 수 있다.
본 개시에 의하면, 딥러닝에 기반하여 한글 폰트를 디자인함에 있어서, 글자를 구성하는 각 구성요소로부터 폰트 스타일에 관한 정보를 획득하고, 획득한 폰트 스타일에 관한 정보를 폰트 생성 모델의 학습 및 예측에 사용하여, 상대적으로 적은 수의 입력 글자로 짧은 시간 내에 폰트를 생성할 수 있는 폰트 생성 방법 및 장치를 제공할 수 있는 효과가 있다.
도 1은 한글을 구성하는 초성, 중성 및 종성의 종류 및 개수를 나타내는 도면이다.
도 2는 한글을 완성형 글자, 조합형 글자 및 구성요소간 결합으로 구분하여 나타낸 도면이다.
도 3은 일부 실시예에 따른 폰트 생성에 사용되는 폰트 생성용 글자 세트를 나타낸 도면이다.
도 4는 일부 실시예에 따른 폰트 생성 방법의 각 과정을 순서대로 나타낸 도면이다.
도 5는 일부 실시예에 따른 폰트 생성 모델을 개념적으로 나타낸 도면이다.
도 6은 일부 실시예에 따른 폰트 생성 모델 학습용 이미지 세트를 나타내는 도면이다.
도 7은 일부 실시예에 따른 사전학습이 완료된 폰트 생성 모델이 폰트 생성용 글자 세트를 사용하여 생성한 아웃풋 이미지의 예를 나타낸 도면이다.
도 8은 일부 실시예에 따른 폰트 생성 장치의 구성을 나타내는 도면이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 한글을 구성하는 초성, 중성 및 종성의 종류 및 개수를 나타내는 도면이다.
도 1을 참조하면, 한글은 14개의 자음과 10개의 모음 이외에, 자음에서 확장된 5개의 쌍자음(ㄲ, ㄸ, ㅃ, ㅆ, ㅉ)과 11개의 복자음(ㄳ, ㄵ, ㄶ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅄ), 그리고 모음에서 확장된 11개의 복모음(ㅐ, ㅒ, ㅔ, ㅖ, ㅘ, ㅙ, ㅚ, ㅝ, ㅞ, ㅟ, ㅢ)을 포함한 총 51개(14+5+11=30개 자음, 10+11=21개 모음)의 구성요소로 이루어진다. 51개 구성요소가 조합되어 글자를 이루며, 모든 글자는 [초성 + 중성] 또는 [초성 + 중성 + 종성]의 순서대로 조합된 형태를 가진다.
초성, 중성 및 종성에 각각 사용될 수 있는 구성요소를 고려하면, 한글은 초성에 사용될 수 있는 자음 19개(14개의 자음 + 5개의 쌍자음)와 중성에 사용되는 모음 21개(10개의 모음 + 11개의 복모음), 종성에 사용되는 자음 27개(14개의 자음 + 2개의 쌍자음 + 11개의 복자음)를 순서대로 조합하여 만든 글자이다. 자음과 모음이 조합되는 규칙은 최소 한 개의 초성과 한 개의 중성이 순서로 조합되며, 여기에 종성(받침)이 결합되거나 결합되지 않는다.
따라서 한글은 초성에는 19개, 중성에는 21개, 종성에는 28개(받침이 없는 경우를 1개의 종성으로 포함)의 경우의 수가 있어, 초성, 중성 및 종성의 조합에 의해 생성 가능한 모든 조합형 한글의 글자 수는 총 11,172개(초성 19개 x 중성 21개 x 종성 28개)이다.
다시 도 1을 참조하면, 초성과 종성에 모두 사용될 수 있는 16개 자음(자음 14개+ 쌍자음 2개)를 제외하면, 한글은 전술한 것과 같이 51개(30개 자음 + 21개 모음)의 구성요소로 이루어지고, 추가적으로 종성이 없는 경우를 포함하면 총 52개의 구성요소로 이루어지는 것으로 볼 수 있다.
도 2는 한글을 완성형 글자, 조합형 글자 및 구성요소간 결합으로 구분하여 나타낸 도면이다.
한글은 로마자의 알파벳과 달리 초성, 중성 및 종성이 모여서 하나의 글자를 만들기 때문에, 프로그램 관점에서는 총성, 중성 및 종성이 모두 결합된 하나의 글자로 처리하는 방식의 완성형 글자(Complete Type) 또는 초성, 중성 및 종성을 각각 따로 처리하는 방식의 조합형 글자(Combination Type)로 구분하여 사용할 수 있다. 예를 들어, 도 2를 참조하면, 글자 '감'은 하나의 완성형 글자 '감' 또는 초성 'ㄱ', 중성 'ㅏ' 및 종성 'ㅁ'의 결합인 조합형 글자 '감'으로 구분될 수 있다.
프로그램 관점에서 한글을 조합형 글자로 구분하는 것이 처리에 필요한 데이터 량을 줄이는데 효과적이며, 특히 일부 자음은 한글의 초성 및 종성에 모두 사용될 수 있음을 고려할 때, 폰트를 생성하기 위해 폰트 생성 모델에 입력해야 하는 글자들을 미리 설정할 필요가 있다.
이에 따라, 본 개시의 일부 실시예에 따른 폰트 생성 방법은, 보다 적은 개수의 글자에 기초하여 폰트를 생성하기 위해서, 한글을 구성할 수 있는 모든 자음, 자음의 조합, 모음 및 모음의 조합을 적어도 한 번씩 사용하여 만들어진 글자들로 이루어지는 폰트 생성용 글자 세트를 미리 설정할 수 있다.
다시 도 1을 참조하면, 한글을 구성하는 52개의 구성요소 각각을 적어도 한 번씩 포함하는 최소 글자 개수는 종성의 개수와 같은 28개임을 알 수 있다. 이에 따라, 본 개시의 일부 실시예에 따른 폰트 생성용 글자 세트는 도 1을 통해 전술한 52개의 구성요소를 각각 적어도 한 번씩 사용하여 생성한 28개의 글자로 이루어질 수 있다.
도 3은 일부 실시예에 따른 폰트 생성에 사용되는 폰트 생성용 글자 세트를 나타낸 도면이다.
도 3을 참조하면, 한글을 구성하는 모든 구성요소를 포함하는 28개의 글자로 이루어진 폰트 생성용 글자 세트의 일 예가 도시되어 있다. 즉, 본 개시의 폰트 생성 방법은 28개의 글자로 이루어진 수많은 폰트 생성용 글자 세트를 사용할 수 있으며, 도 3에 도시된 폰트 생성용 글자 세트는 그 중 하나의 예이다.
도 4는 일부 실시예에 따른 폰트 생성 방법의 각 과정을 순서대로 나타낸 도면이다.
도 4를 참조하면, 단계 S101에서 폰트 생성 장치는 소정의 글자를 나타내는 소스 이미지를 획득할 수 있다. 이때 소정의 글자는 미리 설정된 폰트 생성용 글자 세트에 포함된 복수의 글자 중 어느 하나의 글자에 해당할 수 있다.
일부 실시예에 따르면, 폰트 생성용 글자 세트에 포함된 복수의 글자는 한글을 구성할 수 있는 모든 자음, 자음의 조합, 모음 및 모음의 조합을 적어도 한 번씩 사용하여 만들어진 글자들로 이루어질 수 있다. 보다 구체적으로, 폰트 생성용 글자 세트는, 전술한 것과 같이, 한글을 구성하는 52개의 구성요소를 각각 적어도 한 번씩 사용하여 생성한 28개의 글자로 이루어질 수 있다.
단계 S102에서 폰트 생성 장치는 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득할 수 있다. 일부 실시예에 따르면, 소정의 글자를 구성하는 복수의 구성요소는 소정의 글자에 사용된 초성, 중성 및 종성 중 적어도 하나를 포함할 수 있다. 즉, 각 타겟 컴포넌츠 이미지는 소정의 글자를 구성하는 각 초성, 중성 및 종성에 대응되는 이미지일 수 있다.
소스 이미지가 획득되면, 단계 S103에서 폰트 생성 장치는 획득한 소스 이미지를 사용하여 컨텐츠 정보를 생성할 수 있다. 본 개시의 일부 실시예에 따르면, 컨텐츠 정보는 소스 이미지가 나타내는 글자가 어떠한 글자인지에 관한 정보를 포함할 수 있다.
복수의 타겟 컴포넌츠 이미지가 획득되면, 단계 S104에서 폰트 생성 장치는 획득한 복수의 타겟 컴포넌츠 이미지를 사용하여 폰트 스타일 정보를 생성할 수 있다. 본 개시의 일부 실시예에 따르면, 폰트 스타일 정보는 생성하고자 하는 폰트의 형태에 관한 정보를 포함할 수 있다. 즉, 복수의 타겟 컴포넌츠 이미지는 소정의 글자를 구성하는 각 초성, 중성 및 종성에 대응되는 이미지이며, 폰트 스타일 정보는 각 초성의 형태, 중성의 형태 및 종성의 형태에 대한 정보로 이루어질 수 있다.
컨텐츠 정보 및 폰트 스타일 정보가 생성되면, 단계 S105에서 폰트 생성 장치는 생성된 컨텐츠 정보 및 폰트 스타일 정보에 기초하여, 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성할 수 있다.
본 개시에 따른 일부 실시예에서, 폰트 생성 장치는 폰트 생성 모델의 예측을 통해 소스 이미지, 복수의 타겟 컴포넌츠 이미지로부터 아웃풋 이미지를 생성할 수 있으며, 이와 같은 폰트 생성 모델을 학습시키기 위한 별도의 타겟 이미지를 사용할 수 있다.
예를 들어, 본 개시에 따른 폰트 생성 장치는 소스 이미지에 대응하는 타겟 이미지를 획득하고, 획득한 타겟 이미지와 생성된 아웃풋 이미지를 서로 비교하여 오차 정보를 생성할 수 있다. 이때 오차 정보는 타겟 이미지가 나타내는 소정의 글자의 형태 및 아웃풋 이미지가 나타내는 소정의 글자의 형태 간 오차에 관한 정보일 수 있다. 오차 정보가 생성되면, 폰트 생성 장치는 소정의 글자의 형태 간 오차가 최소화될 수 있도록 폰트 생성 모델에서 사용되는 가중치(계수)를 조절하는 방식으로 학습을 진행할 수 있다.
도 5는 일부 실시예에 따른 폰트 생성 모델을 개념적으로 나타낸 도면이다.
본 개시의 일 실시예에 따른 폰트 생성 모델은 GAN(Generative Adversarial Networks) 기반 모델로 이루어질 수 있다. GAN 모델은 일반적으로 Generator 신경망(G) 및 Discriminator 신경망(D)을 포함하는 구조를 가지며, Generator 신경망(G)은 이미지를 생성하는 역할을, Discriminator 신경망(D)은 이미지가 원본 이미지인지, 생성된 이미지인지 여부를 판정하는 역할을 수행하며 서로 경쟁한다. 즉, GAN 모델은 두 신경망을 서로 경쟁시키는 방식을 통해 학습이 이루어지는 비지도 학습을 사용한다.
상대적으로 높은 품질의 폰트를 생성하기 위해서는, 디자인하고자 하는 대상 폰트의 특징에 관한 정보를 정확히 추출하여 폰트 생성 모델이 학습을 진행하는 동안 정보의 손실을 최소화하는 것이 중요하다.
도 5를 참조하면, 이와 같은 정보의 손실을 최소화하기 위해, 본 개시의 일부 실시예에 따른 폰트 생성 모델은 Generator 신경망(G) 및 Discriminator 신경망(D)을 포함하는 GAN 모델의 일반적인 구조를 따르면서, Generator 신경망(G)은 소스 이미지(XC)에 기초하여 컨텐츠 정보(ZC)를 생성하기 위한 컨텐츠용 인코더(EC) 및 복수의 타겟 컴포넌츠 이미지(YS)에 기초하여 폰트 스타일 정보(ZS)를 생성하기 위한 스타일용 인코더(ES) 등 두 개의 인코더를 포함하고 있다.
또한, 본 개시의 일부 실시예에 따른 폰트 생성 모델은 폰트 스타일 정보를 타겟 컴포넌츠 이미지로부터 바로 획득하는 것으로 설계되어, 보다 정확한 스타일 정보를 획득할 수 있는 구조를 가지고 있다.
한편, 일부 실시예에 따른 폰트 생성 모델의 Generator 신경망(G)은 획득된 컨텐츠 정보(ZC) 및 폰트 스타일 정보(ZS)를 사용하여 아웃풋 이미지를 생성하기 위한 디코더(Dec)를 포함할 수 있다.
일부 실시예에 따르면, 각 컨텐츠 정보(ZC) 및 폰트 스타일 정보(ZS)는 CNN(Convolutional Neural Network) 등의 각 레이어를 통과하며 획득된 특징 벡터(feature vector)로 이루어질 수 있으며, 컨텐츠 정보(ZC) 및 폰트 스타일 정보(ZS)가 병합된 벡터가 디코더(Dec)에 입력될 수 있다.
컨텐츠 정보(ZC) 및 폰트 스타일 정보(ZS)에 기초하여 디코더(Dec)가 아웃풋 이미지를 생성하면, 폰트 생성 모델의 Discriminator 신경망(D)은 소스 이미지와 아웃풋 이미지를 비교하여 GAN 손실(GAN_loss)을, 소스 이미지에서 생성된 벡터와 아웃풋 이미지에서 생성된 벡터를 비교하여 스타일 손실(Style_loss)을, 타겟 이미지와 아웃풋 이미지를 비교하여 L1 손실을 계산하고, 계산 결과에 따라 갱신을 반복하며 생성되는 이미지의 품질을 향상시킬 수 있다.
도 6은 일부 실시예에 따른 폰트 생성 모델 학습용 이미지 세트를 나타내는 도면이다.
본 개시의 일부 실시예에 따른 폰트 생성 모델은 원하는 폰트 스타일로 새로운 폰트를 생성하기 위해, 글자를 나타내는 이미지를 생성하기 위한 사전학습을 수행할 수 있다.
본 개시의 일부 실시예에 따른 폰트 생성 모델의 학습을 위해, 사전학습에 사용할 학습과 테스트 데이터 셋을 만들기 위해 상용 한글 2,350(KS X 1001)개의 글자에서 학습용으로 2,000개 글자, 테스트용으로 350개 글자를 분리하고, 학습 대상이 되는 77개의 다양한 폰트 스타일을 발췌하여, 60개 폰트 스타일을 학습에, 17개 폰트 스타일을 테스트에 사용하는 실험이 이루어졌다.
도 6은 일부 실시예에 따른 폰트 생성 모델 학습용 이미지 세트를 나타내는 도면이다.
본 실험에서는 한글을 초성과 중성, 종성으로 분리하기 위해 유니코드 기반 python의 'jamo' API를 활용하여 모든 글자를 초성, 중성, 종성으로 분리하였으며, 각 글자가 가지는 구성요소가 초성과 중성만으로 이루어진 경우와 초성, 중성 및 종성으로 이루어진 글자를 식별하여 사용하고, 폰트 스타일 정보를 대상 글자의 구성요소에서 추출하기 위해 대상 폰트 스타일별로 구성요소를 분리하였다.
소스 이미지와 스타일별 타겟 이미지, 복수의 타겟 컴포넌츠 이미지 등 총 5개의 이미지를 병합한 256 x 1280 사이즈의 이미지를 생성하여, 총 180,950(2,350 x 77)개의 폰트 생성 모델 학습용 이미지 세트를 만들었으며, 도 6은 폰트 생성 모델 학습용 이미지 세트에 포함된 일부 이미지를 나타낸 예이다.
도 7은 일부 실시예에 따른 사전학습이 완료된 폰트 생성 모델이 폰트 생성용 글자 세트를 사용하여 생성한 아웃풋 이미지의 예를 나타낸 도면이다.
본 실험에서는 폰트 생성 모델 학습용 이미지 세트를 사용하여 폰트 생성 모델에 대한 사전학습이 이루어진 후, 새로운 17개의 폰트 스타일에 기반하여 전이학습이 이루어졌다. 도 7을 참조하면, 폰트 생성 모델은 폰트 생성용 글자 세트에 포함된 28개의 글자에 대해, 소스 이미지가 나타내는 글자에 폰트 스타일이 정상적으로 적용된 글자를 나타내는 아웃풋 이미지를 생성하였음을 확인할 수 있다.
도 8은 일부 실시예에 따른 폰트 생성 장치의 구성을 나타내는 도면이다.
도 8을 참조하면, 일부 실시예에 따른 폰트 생성 장치(10)는 메모리(1001) 및 프로세서(1003)를 포함할 수 있다.
메모리(1001)는 폰트 생성 장치(10)의 동작을 제어하기 위한 프로그램을 저장할 수 있다. 메모리(1001)는 폰트 생성 장치(10)의 동작을 제어하기 위한 적어도 하나의 인스트럭션을 포함할 수 있다. 메모리(1001)에 저장된 프로그램들은 그 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
일부 실시예에 따른 메모리(1001)는 폰트 생성 모델, 소스 이미지, 타겟 이미지, 타겟 컴포넌츠 이미지, 아웃풋 이미지, 컨텐츠 정보, 폰트 스타일 정보 및 오차 정보 중 적어도 하나에 관한 정보를 저장할 수 있다.
메모리(1001)는, 예를 들어, 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(RAM, Random Access Memory) SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있으나, 이에 제한되지 않는다.
프로세서(1003)는 메모리(1001)에 저장된 프로그램들을 실행하여 폰트 생성 장치(10)의 전반적인 동작을 제어할 수 있다.
일부 실시예에 따른 프로세서(1003)는 소정의 글자를 나타내는 소스 이미지를 획득하고, 획득한 소스 이미지를 사용하여 컨텐츠 정보를 생성할 수 있다.
일부 실시예에 따른 프로세서(1003)는 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하고, 획득된 복수의 타겟 컴포넌츠 이미지를 사용하여 폰트 스타일 정보를 생성할 수 있다.
일부 실시예에 따른 프로세서(1003)는 컨텐츠 정보 및 폰트 스타일 정보에 기초하여, 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성할 수 있다.
한편, 일부 실시예에 따른 프로세서(1003)는 소스 이미지에 대응하는 타겟 이미지를 획득하고, 타겟 이미지 및 아웃풋 이미지를 비교하여 오차 정보를 생성할 수 있다. 프로세서(1003)는 생성된 오차 정보를 사용하여 폰트 생성 모델을 학습시킬 수 있다.
일부 실시예에 따른 프로세서(1003)는, 예를 들어, 인공지능 연산을 수행할 수 있다. 프로세서(1003)는, 예를 들어, CPU(Central Processing Unit), GPU(Graphics Processing Unit), NPU(Neural Processing Unit), FPGA(Field Programmable Gate Array), ASIC(application specific integrated circuit) 중 어느 하나일 수 있으나, 이에 제한되지 않는다.
일부 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술 분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (11)

  1. 폰트 생성 모델을 사용하여 폰트를 생성하는 방법에 있어서,
    소정의 글자를 나타내는 소스 이미지를 획득하는 단계;
    상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하는 단계;
    상기 폰트 생성 모델의 컨텐츠용 인코더에 상기 소스 이미지를 입력하여 상기 소스 이미지가 나타내는 글자에 관한 컨텐츠 정보에 상응하는 제1 특징 벡터를 생성하는 단계;
    상기 폰트 생성 모델의 스타일용 인코더에 상기 복수의 타겟 컴포넌츠 이미지를 입력하여 상기 복수의 타겟 컴포넌츠 이미지에 포함되는 각 초성의 형태, 중성의 형태 및 종성의 형태에 관한 폰트 스타일 정보에 상응하는 제2 특징 벡터를 생성하는 단계;
    상기 제1 특징 벡터 및 제2 특징 벡터를 상기 폰트 생성 모델의 디코더에 입력하여 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하는 단계;
    상기 소스 이미지에 대응하는 타겟 이미지를 획득하는 단계; 및
    상기 타겟 이미지 및 상기 아웃풋 이미지를 비교하여 상기 폰트 생성 모델을 학습시키는 단계:를 포함하되,
    상기 소정의 글자는 미리 설정된 폰트 생성용 글자 세트에 포함된 복수의 글자 중 어느 하나의 글자를 포함하고,
    상기 폰트 생성용 글자 세트에 포함된 복수의 글자는 한글을 구성할 수 있는 모든 자음, 자음의 조합, 모음 및 모음의 조합을 적어도 한 번씩 사용하여 만들어진 글자들로 이루어지며,
    상기 폰트 생성 모델을 학습시키는 단계는, 상기 폰트 생성 모델의 Discriminator 신경망(D)이,
    상기 소스 이미지와 상기 아웃풋 이미지를 비교하여 GAN 손실(GAN_loss)을 계산하는 단계;
    상기 소스 이미지에서 생성된 특징 벡터와 상기 아웃풋 이미지에서 생성된 특징 벡터를 비교하여 스타일 손실(Style_loss)을 계산하는 단계; 및
    상기 타겟 이미지와 상기 아웃풋 이미지를 비교하여 L1 손실을 계산하는 단계를 포함하는 폰트 생성 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 소정의 글자를 구성하는 복수의 구성요소는
    상기 소정의 글자에 사용된 초성, 중성 및 종성 중 적어도 하나를 포함하는
    폰트 생성 방법.
  5. 제1항에 있어서,
    상기 소스 이미지에 대응하는 타겟 이미지를 획득하는 단계;
    상기 타겟 이미지 및 상기 아웃풋 이미지를 비교하여 오차 정보를 생성하는 단계; 및
    상기 오차 정보를 사용하여 상기 폰트 생성 모델을 학습시키는 단계:를 더 포함하되,
    상기 오차 정보는 상기 타겟 이미지가 나타내는 글자의 형태 및 상기 아웃풋 이미지가 나타내는 글자의 형태 간 오차 정보를 포함하는 폰트 생성 방법.
  6. 폰트 생성 모델을 사용하여 폰트를 생성하는 장치에 있어서,
    메모리; 및
    적어도 하나의 프로세서;를 포함하며,
    상기 적어도 하나의 프로세서는
    소정의 글자를 나타내는 소스 이미지를 획득하고,
    상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하고,
    상기 폰트 생성 모델의 컨텐츠용 인코더에 상기 소스 이미지를 입력하여 상기 소스 이미지가 나타내는 글자에 관한 컨텐츠 정보에 상응하는 제1 특징 벡터를 생성하고,
    상기 폰트 생성 모델의 스타일용 인코더에 상기 복수의 타겟 컴포넌츠 이미지를 입력하여 상기 복수의 타겟 컴포넌츠 이미지에 포함되는 각 초성의 형태, 중성의 형태 및 종성의 형태에 관한 폰트 스타일 정보에 상응하는 제2 특징 벡터를 생성하고,
    상기 제1 특징 벡터 및 제2 특징 벡터를 상기 폰트 생성 모델의 디코더에 입력하여 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하고,
    상기 소스 이미지에 대응하는 타겟 이미지를 획득하는 단계; 및
    상기 타겟 이미지 및 상기 아웃풋 이미지를 비교하여 상기 폰트 생성 모델을 학습시키되,
    상기 소정의 글자는 미리 설정된 폰트 생성용 글자 세트에 포함된 복수의 글자 중 어느 하나의 글자를 포함하고,
    상기 폰트 생성용 글자 세트에 포함된 복수의 글자는 한글을 구성할 수 있는 모든 자음, 자음의 조합, 모음 및 모음의 조합을 적어도 한 번씩 사용하여 만들어진 글자들로 이루어지며,
    상기 폰트 생성 모델을 학습시키는 과정은, 상기 폰트 생성 모델의 Discriminator 신경망(D)이,
    상기 소스 이미지와 상기 아웃풋 이미지를 비교하여 GAN 손실(GAN_loss)을 계산하는 단계;
    상기 소스 이미지에서 생성된 특징 벡터와 상기 아웃풋 이미지에서 생성된 특징 벡터를 비교하여 스타일 손실(Style_loss)을 계산하는 단계; 및
    상기 타겟 이미지와 상기 아웃풋 이미지를 비교하여 L1 손실을 계산하는 단계를 포함하는 폰트 생성 장치.
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 소정의 글자를 나타내는 소스 이미지를 획득하는 단계;
    상기 소정의 글자를 구성하는 복수의 구성요소에 각각 대응되는 복수의 타겟 컴포넌츠 이미지를 획득하는 단계;
    폰트 생성 모델의 컨텐츠용 인코더에 상기 소스 이미지를 입력하여 상기 소스 이미지가 나타내는 글자에 관한 컨텐츠 정보에 상응하는 제1 특징 벡터를 생성하는 단계;
    상기 폰트 생성 모델의 스타일용 인코더에 상기 복수의 타겟 컴포넌츠 이미지를 입력하여 상기 복수의 타겟 컴포넌츠 이미지에 포함되는 각 초성의 형태, 중성의 형태 및 종성의 형태에 관한 폰트 스타일 정보에 상응하는 제2 특징 벡터를 생성하는 단계;
    상기 제1 특징 벡터 및 제2 특징 벡터를 상기 폰트 생성 모델의 디코더에 입력하여 상기 소정의 글자에 폰트 스타일이 적용된 글자를 나타내는 아웃풋 이미지를 생성하는 단계;
    상기 소스 이미지에 대응하는 타겟 이미지를 획득하는 단계; 및
    상기 타겟 이미지 및 상기 아웃풋 이미지를 비교하여 상기 폰트 생성 모델을 학습시키는 단계:를 포함하되,
    상기 소정의 글자는 미리 설정된 폰트 생성용 글자 세트에 포함된 복수의 글자 중 어느 하나의 글자를 포함하고,
    상기 폰트 생성용 글자 세트에 포함된 복수의 글자는 한글을 구성할 수 있는 모든 자음, 자음의 조합, 모음 및 모음의 조합을 적어도 한 번씩 사용하여 만들어진 글자들로 이루어지며,
    상기 폰트 생성 모델을 학습시키는 단계는, 상기 폰트 생성 모델의 Discriminator 신경망(D)이,
    상기 소스 이미지와 상기 아웃풋 이미지를 비교하여 GAN 손실(GAN_loss)을 계산하는 단계;
    상기 소스 이미지에서 생성된 특징 벡터와 상기 아웃풋 이미지에서 생성된 특징 벡터를 비교하여 스타일 손실(Style_loss)을 계산하는 단계; 및
    상기 타겟 이미지와 상기 아웃풋 이미지를 비교하여 L1 손실을 계산하는 단계를 포함하는 폰트 생성 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020210170891A 2021-12-02 2021-12-02 폰트 생성 방법 및 장치 KR102623293B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210170891A KR102623293B1 (ko) 2021-12-02 2021-12-02 폰트 생성 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210170891A KR102623293B1 (ko) 2021-12-02 2021-12-02 폰트 생성 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20230082926A KR20230082926A (ko) 2023-06-09
KR102623293B1 true KR102623293B1 (ko) 2024-01-10

Family

ID=86765310

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210170891A KR102623293B1 (ko) 2021-12-02 2021-12-02 폰트 생성 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102623293B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101919073B1 (ko) 2017-03-06 2019-02-08 (주)한양정보통신 모듈화 분석을 이용한 폰트 검색 시스템 및 방법
WO2020059527A1 (ja) 2018-09-20 2020-03-26 富士フイルム株式会社 フォント作成装置、フォント作成方法及びフォント作成プログラム
JP2020154951A (ja) 2019-03-22 2020-09-24 大日本印刷株式会社 フォント選定装置及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102376231B1 (ko) * 2020-04-17 2022-03-21 네이버 주식회사 폰트 생성 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101919073B1 (ko) 2017-03-06 2019-02-08 (주)한양정보통신 모듈화 분석을 이용한 폰트 검색 시스템 및 방법
WO2020059527A1 (ja) 2018-09-20 2020-03-26 富士フイルム株式会社 フォント作成装置、フォント作成方法及びフォント作成プログラム
JP2020154951A (ja) 2019-03-22 2020-09-24 大日本印刷株式会社 フォント選定装置及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Cha, Junbum, et al., Few-shot compositional font generation with dual memory, Computer Vision-ECCV 2020: 16th European Conference, Glasgow, UK, August 23-28, 2020, Proceedings, Part XIX 16., 2020*
Mirza, Mehdi, and Simon Osindero. "Conditional generative adversarial nets." arXiv preprint arXiv:1411.1784 (2014).

Also Published As

Publication number Publication date
KR20230082926A (ko) 2023-06-09

Similar Documents

Publication Publication Date Title
DE102017005880A1 (de) Fontersetzung auf Grundlage optischer Ähnlichkeit
CN110334357A (zh) 一种命名实体识别的方法、装置、存储介质及电子设备
KR102297266B1 (ko) 인공지능 기반의 유아 한글 커리큘럼 세부조정 장치 및 방법
CN112529153A (zh) 基于卷积神经网络的bert模型的微调方法及装置
US10909743B2 (en) Multiscale 3D texture synthesis
WO2017132545A1 (en) Systems and methods for generative learning
JP2021120914A (ja) データ拡張システム、データ拡張方法、及びプログラム
CN114581992A (zh) 一种基于预训练StyleGAN的人脸表情合成方法及***
CN114072816A (zh) 用于神经主题建模中的多视图和多源迁移的方法和***
JP7502370B2 (ja) カスタマイズされたディープラーニングベースのテキスト修正のための方法及び装置
CN114283083B (zh) 一种基于解耦表示的场景生成模型的美学增强方法
Kim et al. The structure of deep neural network for interpretable transfer learning
Parente et al. Which type is your type?
KR102623293B1 (ko) 폰트 생성 방법 및 장치
CN110222817A (zh) 基于学习自动机的卷积神经网络压缩方法、***及介质
JP2020140676A (ja) 学習方法、抽出方法、学習プログラムおよび情報処理装置
KR102297265B1 (ko) 인공지능 기반의 유아 한글 수준별 진단 평가 장치 및 방법
CN112084831A (zh) 基于年龄编辑的年龄估计方法
CN116310028A (zh) 三维人脸模型的风格迁移方法及***
Parente et al. Using autoencoders to generate skeleton-based typography
KR102267402B1 (ko) 인공지능 기반의 유아 한글 맞춤형 커리큘럼 생성 장치 및 방법
Ouyang et al. An efficient twin projection support vector machine for regression
KR102539283B1 (ko) 인공 지능을 이용한 코드 생성 방법
CN108228910B (zh) 一种将循环神经网络应用在关联选择问题上的方法
Luo Automatic Methods for Sound Change Discovery

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right