KR20210128603A - 폰트 생성 방법 및 시스템 - Google Patents

폰트 생성 방법 및 시스템 Download PDF

Info

Publication number
KR20210128603A
KR20210128603A KR1020200046430A KR20200046430A KR20210128603A KR 20210128603 A KR20210128603 A KR 20210128603A KR 1020200046430 A KR1020200046430 A KR 1020200046430A KR 20200046430 A KR20200046430 A KR 20200046430A KR 20210128603 A KR20210128603 A KR 20210128603A
Authority
KR
South Korea
Prior art keywords
unit
font
component
letters
characters
Prior art date
Application number
KR1020200046430A
Other languages
English (en)
Other versions
KR102376231B1 (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 KR1020200046430A priority Critical patent/KR102376231B1/ko
Priority to JP2020116916A priority patent/JP7250734B2/ja
Publication of KR20210128603A publication Critical patent/KR20210128603A/ko
Application granted granted Critical
Publication of KR102376231B1 publication Critical patent/KR102376231B1/ko

Links

Images

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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 폰트를 생성하는 방법 및 그 시스템에 관한 것이다. 본 발명에 따른 폰트 생성 시스템은, 복수의 단위 글자들을 컴포넌트 단위로 분해하고, 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하는 인코더부, 상기 추출된 서체 정보를 상기 분해된 컴포넌트들과 맵핑하여 저장하는 메모리부 및 상기 저장부에 저장된 서체 정보를 이용하여, 상기 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하는 디코더부를 포함하도록 이루어질 수 있다. 이때, 상기 디코더부를 통해 생성된 복수의 글자는, 상기 복수의 단위 글자들과 적어도 하나의 다른 글자를 포함할 수 있다.

Description

폰트 생성 방법 및 시스템{METHOD AND SYSTEM FOR GENERATING FONT }
본 발명은 폰트를 생성하는 방법 및 그 시스템에 관한 것이다.
폰트(font)는 서체 또는 글씨체라고도 명명되며, 글자(또는 글씨, character)의 모양 또는 양식을 의미한다. 동일한 언어에 해당하는 글자이더라도, 폰트가 상이할 수 있으며, PC, 휴대폰 등에는 서로 다른 복수의 폰트가 제공되고 있다.
이러한 폰트는, 그 종류에 따라 보는 사람으로 하여금 동일한 글자이더라도, 서로 다른 분위기를 느끼게 해주므로, 최근에는 중요한 디자인 요소로 자리잡고 있다. 한편, 최근에는 기술의 발전에 따라, 손글씨의 폰트 특성을 추출하여 데이터화 또는 디지털화 함으로써, 전자기기 상에서 손글씨의 폰트를 이용할 수 있게 되었다.
다만, 손글씨에 해당하는 폰트를 데이터화 하기 위해서는, 언어를 구성하는 모든 글자에 해당하는 손글씨 폰트의 정보를 수집하고, 수집된 정보를 디지털화 해야 하므로, 매우 많은 노력이 필요하다.
특히, 한국어(한글), 중국어, 태국어 등과 같이, 낱자들의 조합에 의하여 글자가 형성되는 글자의 경우에는, 낱자들의 조합의 경우의 수가 매우 방대하여, 모든 글자에 대한 데이터를 수집하고, 이를 데이터화 하는 것은 실질적으로 매우 어려운 작업으로 분류된다. 예를 들어, 한글의 경우, 초성, 중성 및 종성의 조합으로 글자를 형성하며, 보다 구체적으로, 초성 19개, 중성 21개 및 종성28(종성 미포함의 경우의 수 “1”추가됨)개가 형성할 수 있는 글자의 조합은 11,172개가 존재하며, 11,172개의 글자 데이터를 수집하는 것은 매우 많은 노력이 필요하다.
따라서, 적은 손글씨 데이터를 이용하여, 다양한 조합의 글자를 생성하기 위한 활발한 연구가 진행되고 있으며, 그 일예로서, 대한민국 등록특허 10-1229175에 따른 선행문헌에서는 자필 폰트 생성 방법 및 장치에 대하여 개시하고 있다. 그러나, 이러한 방법에 의하면, 최소의 글자를 입력받는 것을 컨셉으로 하고 있으나, 입력받지 않은 글자에 해당하는 서체에 대해서는 사용자로부터, 사용자 자신의 서체와 유사한 스타일을 선택받는 과정을 수행한다. 따라서, 공개문헌에 의하면, 사용자의 의사선택 과정을 거쳐 폰트를 생성해야 하는 한계가 존재한다.
이에, 최소한의 손글씨를 이용하여, 손글씨의 특성을 최대한 잘 반영한 모든 조합의 글자를 생성할 수 폰트 생성 방법에 대한 니즈가 여전히 존재한다.
본 발명의 특정 서체가 반영된 일부 글자를 이용하여, 특정 서체가 반영된 다양한 글자를 생성할 수 있는 폰트 생성 방법 및 시스템을 제공하는 것이다.
이러한, 일부 글자는, 샘플 글자라고 명명될 수 있으며, 본 발명은 이러한 샘플 글자로서 이용하여, 샘플 글자의 서체가 반영된 다양한 글자를 생성할 수 있는 폰트 생성 방법 및 시스템을 제공하는 것이다.
나아가, 본 발명은, 사람의 손글씨에 해당하는 샘플 글자를 이용하여, 해당 손글씨의 서체가 반영된 다양한 글자를 생성할 수 있는 폰트 생성 방법 및 시스템을 제공하는 것이다.
특히, 본 발명은, 샘플 글자에 포함되지 않은 글자에도, 샘플 글자의 서체를 반영할 수 있는 폰트 생성 방법 및 시스템을 제공하는 것이다.
이를 위하여 본 발명은, 최소의 샘플 글자를 이용하여, 샘플 글자에 포함되지 않은 글자를 생성하는 데에 활용할 수 있는 서체 정보를 획득하는 것이 가능한 폰트 생성 방법 및 시스템을 제공하는 것이다.
나아가, 본 발명은, 샘플 글자로부터, 샘플 글자의 서체와 유사도가 높은 다양한 글자를 생성하도록 하는 학습 알고리즘이 반영된 폰트 생성 방법 및 시스템을 제공하는 것이다.
위에서 살펴본 과제를 해결하기 위하여, 본 발명에 따른 폰트 생성 시스템은, 복수의 단위 글자들을 컴포넌트 단위로 분해하고, 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하는 인코더부, 상기 추출된 서체 정보를 상기 분해된 컴포넌트들과 맵핑하여 저장하는 메모리부 및 상기 저장부에 저장된 서체 정보를 이용하여, 상기 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하는 디코더부를 포함하도록 이루어질 수 있다. 이때, 상기 디코더부를 통해 생성된 복수의 글자는, 상기 복수의 단위 글자들과 적어도 하나의 다른 글자를 포함할 수 있다.
나아가, 본 발명에서, 상기 복수의 단위 글자들 각각은, 서로 다른 컴포넌트 타입을 갖는 적어도 두개의 컴포넌트들의 조합에 의하여 형성되고, 상기 적어도 두개의 컴포넌트들 간의 상대 위치는, 상기 적어도 두개의 컴포넌트들의 컴포넌트 타입에 따라 결정될 수 있다.
또한, 위에서 살펴본, 상기 복수의 단위 글자들은 복수의 컴포넌트 타입을 갖는 특정 언어의 글자 체계를 따르며, 상기 복수의 단위 글자들은, 상기 복수의 컴포넌트 타입의 각각에 해당하는 컴포넌트들을 적어도 하나 이상 포함할 수 있다.
본 발명에 따른 폰트 생성 시스템에서, 메모리부는, 상기 추출된 서체 정보를 저장하는 제1 메모리부 및 상기 분해된 컴포넌트들이 갖는 고유의 모양 정보를 저장하는 제2 메모리부를 포함할 수 있다. 
나아가, 본 발명에 따른 폰트 생성 시스템은, 학습부를 더 포함하고, 상기 학습부는, 상기 다른 글자를 상기 다른 글자에 대응되는 기준 글자와 비교하고, 비교 결과를 이용하여, 상기 인코더부, 상기 메모리부 및 상기 디코더부 중 적어도 하나를 업데이트할 수 있다.
한편, 본 발명에 따른 폰트 생성 방법은, 서로 다른 음을 갖는 복수의 단위 글자들을 입력받는 단계, 상기 복수의 단위 글자들을, 상기 복수의 단위 글자들을 각각 형성하는 컴포넌트 단위로 분해하는 단계, 상기 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하고, 추출된 서체 정보를 각각의 컴포넌트와 맵핑하여 저장하는 단계 및 상기 저장된 서체 정보를 이용하여, 상기 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하는 단계를 포함할 수 있다.
본 발명에 따른 폰트 생성 방법 및 시스템은, 특정 언어의 글자 체계를 이루는 모든 컴포넌트들이 최소 1회 이상 포함된 복수의 글자를 샘플 글자로서 입력 받음으로써, 특정 언어의 글자 체계를 이루는 모든 컴포넌트들에 대한 서체 정보를 확보할 수 있다.
보다 구체적으로, 본 발명에 따른 폰트 생성 방법 및 시스템은, 입력받은 샘플 글자를 컴포넌트 단위로 분해하고, 분해된 컴포넌트들 각각으로부터, 서체 정보를 추출함으로써, 특정 언어의 글자 체계를 이루는 모든 컴포넌트들에 대한 서체 정보를 컴포넌트 단위로 확보할 수 있다.
따라서, 본 발명에 따른 폰트 생성 방법 및 시스템은, 샘플 글자에 포함되지 않은 글자를 생성하는 경우라도, 컴포넌트 단위로 확보된 서체 정보를 이용함으로써, 샘플 글자의 서체와 유사도가 매우 높은 새로운 글자를 생성할 수 있다.
결과적으로, 본 발명에 따른 폰트 생성 방법 및 시스템은, 특정 언어의 글자 체계를 이루는, 모든 글자에 대한 샘플 정보가 확보되지 않은 경우라도, 몇몇의 글자를 활용하여, 통일성 있는 서체를 갖는 다양한 글자를 생성하는 것이 가능하다.
나아가, 본 발명에 따른 폰트 생성 방법 및 시스템은, 위에서 살펴본 방법으로 새롭게 생성된 글자와 샘플 글자 간의 차이를 추출하고, 추출된 정보를 업데이트하는 학습을 통하여, 샘플 글자의 서체와 더욱 유사한 서체의 글자를 생성하는 것이 가능하다.
도 1은 본 발명에 따른 폰트 생성 방법 및 시스템을 설명하기 위한 개념도이다.
도 2a, 도 2b 및 도 2c는 본 발명에 따른 폰트 생성 시스템을 설명하기 위한 개념도들이다.
도 3은 본 발명에 따른 폰트 생성 방법을 설명하기 위한 흐름도이다.
도 4a 및 도 4b는 본 발명에 따른 폰트 생성 방법 및 시스템에서 글자로부터 분해된 컴포넌트를 설명하기 위한 개념도들이다.
도 5는 본 발명에 따른 폰트 생성 방법 및 시스템에서 글자를 인코딩 하는 방법을 설명하기 위한 개념도이다.
도 6a, 도 6b, 도 6c, 도 7a, 도 7b 및 도 7c는 본 발명에 따른 폰트 생성 방법 및 시스템에서 메모리 구조를 설명하기 위한 개념도들이다.
도 8은 본 발명에 따른 폰트 생성 방법 및 시스템을 통해 생성된 글자를 이용하여 학습을 수행하는 방법을 설명하기 위한 개념도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소에는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명은 특정 서체를 갖는 글자를 이용하여, 해당 글자의 서체가 반영된 다양한 글자를 생성할 수 있는 폰트 생성 방법 및 시스템을 제공하는 것이다.
여기에서, 특정 서체를 갖는 글자는, 사람에 의해 쓰여진 손글씨를 포함할 수 있다. 이 경우, 본 발명은 손글씨 이미지로부터 서체 정보를 추출하여, 손글씨에 해당하는 폰트를 생성함으로써, 컴퓨터 상에서도 손글씨와 동일 또는 유사한 서체를 이용할 수 있도록 하는 방법을 제공할 수 있다.
본 발명에서 손글씨란, 사람에 의해 쓰여지거나, 디지털화되지 않는 글자를 의미하는 것으로 이해되어 질 수 있다. 손글씨는, 동일한 내용의 글자라 하더라도, 쓰는 사람의 스타일에 따라 그 시각적 외관이 상이한 특성을 가지므로, 손글씨의 서체는 글씨를 쓰는 사람의 개성을 반영할 수 있다.
한편, 특정 서체를 갖는 글자, 예를 들어, 손글씨에 해당하는 글자를 데이터화 하기 위해서는, 특정 언어를 구성하는 모든 글자에 해당하는 손글씨 정보를 수집하고, 수집된 정보를 디지털화 해야 하므로, 매우 많은 노력이 필요하다. 이에, 본 발명에서는, 최소한의 입력 글자를 이용하여, 입력된 글자의 특성을 최대한 잘 반영한 모든 조합의 글자를 생성할 수 있는 폰트 생성 방법 및 시스템에 대하여 살펴본다.
본 발명에서 “글자(glyph)”란, 말을 적는 일정한 체계의 부호에 관한 것으로서, 언어에 따라 그 부호가 상이할 수 있다. 예를 들어, “한국어”과 “영어”는 서로 다른 언어에 관한 것으로서, 한국어와 영어는 서로 다른 체계의 부호를 갖는 글자로 구성될 수 있다. 한국어의 경우, “한글”의 부호를 이용하여 표현되며, 영어의 경우, “스펠링”의 부호를 이용하여 표현된다.
이와 같이, 언어에 따라 서로 다른 부호 체계를 가질 수 있으며, 일부 언어에 따른 글자는 복수의 구성요소에 의한 조합에 의해 하나의 글자가 형성되는 조합 글자로 이루어질 수 있다. 예를 들어, 한국어, 태국어 중국어 등이 그 예이다.
일 예로서, 한글의 경우, 하나의 완성된 글자, 예를 들어, “가”를 형성하기 위해서는, 복수의 컴포넌트(예를 들어, “ㄱ”, “ㅏ”)가 조합되어야 하는 조합 글자에 해당한다.
이때, 복수의 컴포넌트는, 낱자라고도 명명될 수 있으며, 이러한 복수의 컴포넌트는 서로 다른 컴포넌트 타입에 해당할 수 있다. 즉, 조합 글자는, 서로 다른 컴포넌트 타입에 따른 복수의 컴포넌트가 조합되어 하나의 글자를 형성하는 특성을 가질 수 있다.
예를 들어, 한글의 경우, 하나의 글자를 형성하기 위해서는, 적어도 두개의 서로 다른 컴포넌트 타입에 해당하는 컴포넌트들의 조합이 필요하다. 한글의 경우, 서로 다른 컴포넌트 타입은, 세 종류의 타입을 가지며, 보다 구체적으로, 제1 타입은 “초성”, 제2 타입은 “중성”, 제3 타입은 “종성”으로 각각 구분될 수 있다. 한편, 조합 글자가 어느 언어인지에 따라, 그 컴포넌트 타입의 종류는 변경될 수 있다.
한편, 이러한 조합 글자의 경우, 서로 다른 컴포넌트의 타입에 해당하는 컴포넌트들의 조합에 의해 새로운 글자가 형성되므로, 그 컴포넌트의 수에 따라 다양한 글자가 형성된다. 예를 들어, 한글의 경우, 초성 19개, 중성 21개 및 종성28(종성 미포함의 경우의 수 “1”추가됨)개가 형성할 수 있는 글자의 조합은 11,172개이며, 한 벌의 폰트를 생성하기 위해서는, 총 11,172개의 글자에 대한 생성이 필요하다.
한편, 본 발명에서 “폰트(font)”란, 글자의 모양을 의미하는 것으로서, 공통된 특징을 갖는 서체로 이루어진 활자 한 벌을 의미할 수 있다. 여기에서, “활자 한 벌”이란, “특정 언어를 표현하는데 사용되는 글자 한 세트”라고도 이해되어질 수 있다.
위에서 살펴본 것과 같이, 조합 글자의 경우, 한글에서, 한 벌의 폰트를 생성하기 위해서는, 11,172개의 글자가 필요하지만, 실질적으로 11,172개의 글자를 수집하고, 이를 데이터화 하기란, 매우 힘든 실정이다.
이에, 본 발명은, 조합 글자에 해당하는 폰트를 보다 효율적으로 생성할 수 있는 방법 및 시스템을 제안한다. 예를 들어, 본 발명은, 도 1의 (a)에 도시된 것과 같이, “꽃피는봄이왔습니다”라는 9개의 글자(100)를 복수의 단위 글자로서 입력받은 경우(예를 들어, 손글씨로 입력받을 수 있음), 입력받은 복수의 단위 글자를 컴포넌트 별로 분해하고, 분해된 컴포넌트를 이용하여, 새로운 글자를 생성하는 것에 관한 것이다. 보다 구체적으로나, 본 발명은, 도 1의 (b)에 도시된 것과 같이, 입력받은 손글씨와 동일 또는 유사한 서체를 갖는 “꽃핀어느밤”이라는 글자를 생성할 수 있는 폰트 생성 방법 및 시스템에 관한 것이다. 도 1의 (b)에서 생성된 글자를 살펴보면, “꽃”이라는 글자는, 입력받은 복수의 단위 글자에 존재하나, “핀어느밤”은 입력받은 복수의 단위 글자에 존재하지 않는 글자이다. 그러나, 생성된 글자에 해당하는 “핀어느밤”을 구성하는 컴포넌트들(ㅍ, ㅣ, ㄴ, ㅇ, ㅓ, ㄴ, ㅡ, ㅂ, ㅏ, ㅁ)은 입력받은 복수의 단위 글자에 포함되어 있었던 컴포넌트들이다.
이와 같이, 본 발명은, 글자를 구성하는 컴포넌트를 이용하여, 폰트를 생성할 수 있는 방법 및 시스템을 제공하는 것으로서, 이하에서는, 첨부된 도면과 함께, 본 발명에 따른 폰트를 생성하는 방법에 대하여 첨부된 도면과 함께 보다 구체적으로 살펴본다. 도 2a, 도 2b 및 도 2c는 본 발명에 따른 폰트 생성 시스템을 설명하기 위한 개념도들이다.
이하의 설명에서는 “한글”을 예를 들어 설명하나, 본 발명은 한글뿐만 아니라, 복수의 컴포넌트 타입에 의하여 조합되는 조합 글자(예를 들어, 태국어, 중국어 등)에 공통적으로 활용될 수 있음은 물론이다.
먼저 도 2a를 살펴보면, 본 발명에 따른 폰트 생성 시스템은 인코더부(110), 메모리부(120) 및 디코더부(130) 중 적어도 하나를 포함할 수 있다.
인코더부(110)는 인코더부(110)에 입력되는 복수의 단위 글자들(100)을 인코딩하는 역할을 수행하며, 보다 구체적으로는, 복수의 단위 글자들을 컴포넌트 단위로 분해하고, 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하는 역할을 수행할 수 있다. 본 발명에서는, 설명의 편의를 위하여, 인코더부(110)에 입력되는 글자를, 상황에 따라, 단위 글자, 입력된 글자, 또는 입력 글자라고 표현하도록 한다.
따라서, 인코더부(110)에 “복수의 글자가 입력되었다”고 함은, “복수의 단위 글자가 입력되었다”고 이해되어 질 수 있다.
나아가, 복수의 글자 또는 복수의 단위 글자는, “샘플 글자” 또는 “생성의 대상이 되는 글자”라고도 명명될 수 있다.
한편, 인코더부(110)에 입력되는 복수의 단위 글자들은 사람에 의해 쓰여진 손글씨로 이루어질 수 있으며, 이는 아날로그 데이터로 이루어질 수 있다. 인코더부(110)에는 손글씨에 해당하는 이미지 형식의 복수의 단위 글자들이 입력될 수 있으며, 인코더부(110)는, 이러한 복수의 단위 글자들에 대응되는 이미지로부터, 글자를 인식하여, 데이터화 또는 디지털화 하는 역할을 수행할 수 있다.
한편, 인코더부(110)로부터 추출된, 복수의 단위 글자를 형성하는 컴포넌트들의 서체 정보는, 메모리부(120)에 저장될 수 있다.
메모리부(120)는, 컴포넌트 단위로 서체 정보를 저장하도록 이루어지며, 각각의 컴포넌트는 서로 다른 접근 주소(access address)를 가질 수 있다.
나아가, 메모리부(120)에는, 컴포넌트들이 갖는 고유의 모양 정보가 저장될 수 있다. 이러한 서체 정보 및 고유의 모양 정보는, 하나의 통합된 메모리 구조를 갖는 메모리부(120) 상에, 컴포넌트 단위로 구분되어 저장될 수 있다.
나아가, 이러한 서체 정보 및 고유의 모양 정보는, 듀얼 메모리 구조를 갖는 메모리부(120)에 각각 구분되어 저장될 수 있다.
이때, 메모리부(120)는, 인코더부(110)로부터 추출된 서체 정보를 저장하는 제1 메모리부 및 컴포넌트들이 갖는 고유의 모양 정보를 저장하는 제2 메모리부를 포함할 수 있다.
제1 메모리부는, “dynamic memory” 또는 “episodic memory”라고 명명될 수 있다. 나아가, 제2 메모리부는, “persistent memory”라고도 명명될 수 있다.
한편, 제1 및 제2 메모리부에 각각 저장된 서체 정보 및 고유의 모양 정보는, 컴포넌트 단위로 서로 다른 접근 주소를 가질 수 있다. 제1 및 제2 메모리부의 각각의 접근 주소는 컴포넌트를 기준으로 서로 맵핑(mapping)될 수 있다. 제1 및 제2 메모리부에서의 컴포넌트 단위의 맵핑은 유니코드(UNICODE)를 이용하여 이루어질 수 있다.
한편, 본 발명에서 “서체 정보”는 글자를 쓰는 사람에 따라 변경 가능한 정보로서, 글자의 스타일, 분위기와 같이 외향적인 요소들에 대한 것을 의미할 수 있다.
즉, 동일한 내용을 갖는 글자라 하더라도, 서로 다른 서체 정보에 해당하는 글자는 그 시각적 외관이 상이할 수 있다. 그러나, 서로 상이한 서체를 갖지만, 그 글자의 컴포넌트의 구성이 동일한 경우, 해당 글자를 보는 사람은 모두 동일한 의미로 이해하거나 발음할 수 있다. 즉, 본 발명에서 “서체”는, 글자를 형성하기 위한 컴포넌트 고유의 모양은 해치지 않으면서, 글자를 구성하는 컴포넌트의 세부적인 모양(획의 방향, 획의 길이, 글자의 두께, 글자의 크기 등)에 대한 것을 의미할 수 있다.
반면에, “고유의 모양 정보”는, 서체 정보와 무관하게, 해당 컴포넌트 또는 글자가 가져야 하는 고유의 모양에 대한 것으로서, 특정 언어 체계에 의해 약속된 모양에 대한 정보 또는 부호를 의미할 수 있다.
예를 들어, 도 2b의 (a)에 도시된 것과 같이, “ㄱ”이라는 컴포넌트(710)의 경우, 고유의 모양 정보는, i) 제1 획(711)의 우측 끝단에서 제2 획(712)과 소정 각도로 이룸, ii) 제2 획(712)의 상단은 제1 (711)의 우측 끝단과 서로 접함 등과 같이, 해당 언어 체계에서, 해당 컴포넌트의 모양으로 설정한 규칙에 따른 정보를 포함할 수 있다.
이러한 고유의 모양 정보는, 서체 정보가 변경되더라도 변경되지 않을 수 있다. 즉, 고유의 모양 정보는, 서체 정보에 관계없이, 동일 언어에 해당하는 동일 컴포넌트라면 공통적으로 적용될 수 있는 정보를 의미할 수 있다.
반면에 서체 정보는(도 2b의 (a)의 도면부호 720을 참조), 고유의 모양 정보를 기반으로 하면서, 컴포넌트에 대한 디테일한 모양 정보를 의미할 수 있다. 이러한 서체 정보는, 컴포넌트를 구성하는 획의 두께, 복수의 획들 간의 배치 위치, 배치 간격, 획의 기울어짐 정도, 획의 길이, 획의 구부러짐 정도, 컴포넌트의 크기 정도와 같이, 컴포넌트 또는 글자의 개성을 나타낼 수 있는 정보를 포함할 수 있다. 서체 정보에 포함되는 정보는, 위에서 열거된 정보들 외에도 매우 다양할 수 있다.
예를 들어, 도 2b의 (a)의 도면부호 720을 참조하면, 동일한 컴포넌트 (예를 들어,“ㄱ”)라도, 상이한 서체 정보에 따라, 서로 시각적인 외관 및 분위기를 가짐을 알 수 있다. 이러한 서체 정보는, 손글씨 마다의 고유의 스타일, 개성을 반영하는 정보로서, 손글씨로부터 얼마나 정확하게 서체 정보를 추출하느냐에 따라, 실제 사람의 손글씨와 유사도가 높은 폰트를 생성할 수 있다.
다른 예로서, 도 2b의 (b)를 살펴보면, “ㅎ” 컴포넌트(730) 역시, 고유의 모양 정보(예를 들어, 원 기호(733)의 상단에, 두개의 획(731, 732)이 배치됨)를 가지며, 도 2b의 (b)의 도면부호 740을 참조하면, 서로 다른 시각적인 외관을 갖도록 나타내어질 수 있다. 이는, 동일한 고유의 모양 정보를 갖더라도, 서로 다른 서체 정보를 갖기 때문이다.
따라서, 이러한 서체 정보에 의하면, 도 2c의 (a), (b), (c) 및 (d)에 도시된 것과 같이, 동일한 의미를 갖는 글자이더라도(예를 들어, “꽃”), 서로 다른 모양, 즉, 서로 다른 서체 또는 스타일을 갖는 글자를 형성할 수 있다.
다음으로, 디코더부(130)는, 메모리부(120)에 저장된 서체 정보 및 고유의 모양 정보 중 적어도 하나를 이용하여, 인코더부(110)에 입력된 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하도록 이루어질 수 있다. 여기에서, 대응되는 서체란, 입력된 글자의 서체와 유사 또는 동일한 서체를 의미하는 것일 수 있다.
디코더부(130)는, 인코더부(110)에 입력된 복수의 단위 글자들로부터 분해된 컴포넌트들의 서체 정보를 이용하여, 상기 복수의 단위 글자들과 동일 또는 유사한 서체를 갖는 글자를 생성할 수 있다. 이때, 본 발명에 따른 디코더부(130)는, 상기 복수의 단위 글자들과 적어도 하나의 다른 글자를 생성할 수 있다. 즉, 디코더부(130)는 입력받은 글자가 아니더라도, 입력받은 글자로부터 추출한 서체 정보를 이용하여, 입력받은 글자와 유사 또는 동일한 서체를 갖는 글자를 생성할 수 있다.
예를 들어, 도 1에서 살펴본 것과 같이, 입력 글자로서 “꽃피는봄이왔습니다”를 입력받은 경우(도 1의 (a) 참조), 입력받은 글자에 포함된 컴포넌트를 이용하여, 입력받은 글자 “꽃”과 입력받은 글자에 포함되지 않은 “핀어느밤”(도 1의 (b) 참조)을 생성할 수 있다.
따라서, 본 발명에서 따른 폰트 생성 시스템에 의하면, 특정 언어를 구성하는 모든 글자에 대한 데이터가 없더라도, 특정 언어에 해당하는 모든 글자를 생성하는 것이 가능하다. 이하에서는, 위에서 살펴본 본 발명에 따른 폰트 생성 시스템을 참조하여, 폰트를 생성하는 방법에 대하여 첨부된 도면과 함께 보다 구체적으로 살펴본다. 도 3은 본 발명에 따른 폰트 생성 방법을 설명하기 위한 흐름도이고, 도 4a 및 도 4b는 본 발명에 따른 폰트 생성 방법 및 시스템에서 글자로부터 분해된 컴포넌트를 설명하기 위한 개념도들이다. 나아가, 도 5는 본 발명에 따른 폰트 생성 방법 및 시스템에서 글자를 인코딩 하는 방법을 설명하기 위한 개념도이고, 도 6a, 도 6b, 도 6c, 도 7a, 도 7b 및 도 7c는 본 발명에 따른 폰트 생성 방법 및 시스템에서 메모리 구조를 설명하기 위한 개념도들이다.
본 발명에 따른 폰트 생성 방법에 의하면, 복수의 단위 글자들을 입력받는 과정이 진행된다(S310). 여기에서, 복수의 단위 글자들은 이미지 형식으로 존재할 수 있다. 본 발명에서, 복수의 단위 글자들이 갖는 실질적인 의미는 중요하지 않을 수 있다.
한편, 본 발명에 따른 복수의 단위 글자들은, 앞서 살펴본 것과 같이, 복수의 컴포넌트 타입을 갖는 특정 언어의 글자 체계(예를 들어, 한국어, 태국어, 중국어 등)를 따르는 글자들로 이루어질 수 있다.
이러한, 복수의 단위 글자들은, 복수의 컴포넌트 타입의 각각에 해당하는 컴포넌트들을 적어도 하나 이상 포함하도록 이루어질 수 있다.
예를 들어, 도 4a의 (a)에 도시된 것과 같이, 복수의 글자들을 입력받은 경우, 도 4a의 (b)에 도시된 것과 같이, 복수의 글자들을 구성하는 컴포넌트들은, 복수의 컴포넌트 타입(예를 들어, 제1 내지 제3 타입)에 해당하는 컴포넌트들을 적어도 하나 이상은 포함하도록 이루어질 수 있다.
한편, 복수의 단위 글자들 각각은, 서로 다른 컴포넌트 타입을 갖는 적어도 두개의 컴포넌트들의 조합에 의하여 형성될 수 있다. 이때, 상기 적어도 두개의 컴포넌트들 간의 상대 위치는, 상기 적어도 두개의 컴포넌트들의 컴포넌트 타입에 따라 결정될 수 있다.
복수의 컴포넌트 타입은, 조합 글자에서 컴포넌트별 공통되는 성질에 따라 분류한 것으로서, 한글의 경우, 음을 구성하는 원리에 따라 구분되는 복수의 컴포넌트 타입을 가질 수 있다. 예를 들어, 한글의 경우, 제1 내지 3 타입(또는 컴포넌트 타입)으로 구성된 컴포넌트 타입을 가질 수 있다. 여기에서, 제1 타입은, “초성”을 구성하는 컴포넌트들을 분류하는 타입이고, 제2 타입은, “중성”을 구성하는 컴포넌트들을 분류하는 타입이며, 제3 타입은 “종성”을 구성하는 컴포넌트들을 분류하는 타입일 수 있다.
여기에서, “초성”, 즉, 제1 타입에 해당하는 컴포넌트는 단위 음을 구성하는 음절에서 가장 처음 소리를 구성하는 것으로서, 자음의 컴포넌트들로 이루어질 수 있다.
다음으로, “중성”, 즉, 제2 타입에 해당하는 컴포넌트는 단위 음을 구성하는 음절에서 중간 소리를 구성하는 것으로서, 모음의 컴포넌트들로 이루어질 수 있다.
마지막으로, “종성”, 즉, 제3 타입에 해당하는 컴포넌트는 단위 음을 구성하는 음절에서 가장 마지막 소리를 구성하는 것으로서, 자음의 컴포넌트들로 이루어질 수 있다.
예를 들어, 한글의 경우, 도4b에 도시된 것과 같이, 제1 타입의 컴포넌트들은, 19개의 자음을 포함하고, 제2 타입의 컴포넌트들은 21개의 모음을 포함하며, 제3 타입의 컴포넌트들은 28(종성 미포함의 경우의 수 “1”추가됨(이는 미도시됨))개의 자음을 포함할 수 있다.
이와 같이, 본 발명에서, 인코더부(110)에 입력되는 복수의 단위 글자는, 복수의 컴포넌트 타입에 포함된 각각의 컴포넌트들이 최소한 1번 이상 포함된 글자들로 이루어질 수 있다. 즉, 복수의 단위 글자에는, 제1 타입에 따른 자음 19개가 적어도 하나 이상 포함되며, 제2 타입에 따른 모음 21개가 적어도 하나 이상 포함되며, 제3 타입에 따른 자음 28개(종성 미포함의 경우의 수 “1”추가됨)가 적어도 하나 이상 포함될 수 있다. 이는, 본 발명에 따른 폰트 생성 시스템에서, 모든 컴포넌트에 대한 정보를 확보하기 위함이다.
한편, 이와 같이, 복수의 컴포넌트 타입에 따른 모든 컴포넌트들이 최소한 하나 이상 포함되기 위한 최소로 필요한 글자 수는, 복수의 컴포넌트 타입 중 가장 많은 컴포넌트를 포함한 컴포넌트 타입에 의하여 결정될 수 있다. 본 발명에서는, 폰트 생성을 위한 입력 데이터로서, 컴포넌트 자체가 아닌, 글자 단위의 데이터를 이용하므로, 모든 컴포넌트에 대한 정보를 확보하기 위해서는, 가장 많은 컴포넌트를 포함한 컴포넌트 타입에 포함된 컴포넌트 갯수 만큼의 글자를 입력 데이터로서 입력받을 수 있다.
결과적으로, 한글의 경우, 제3 타입(종성)의 경우, 제1 및 제2 타입(초성 및 중성)보다 많은 28개의 컴포넌트를 가지므로, 28개의 글자를 입력 데이터로서 입력받을 수 있다. 따라서, 입력되는 복수의 단위 글자는, 최소 28개의 글자이다. 물론, 28개의 이상의 글자가 입력되는 것 또한 가능하다. 한편, 28개의 글자에서, 최소 한 글자는, 제3 타입(종성)을 포함하지 않은 글자를 포함할 수 있다.
한편, 이와 같이, 복수의 단위 글자들이 입력되면, 복수의 단위 글자들을 컴포넌트 단위로 분해하는 과정 및 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하는 과정이 진행된다(S320, S330).
인코더부(110)는 도 5에 도시된 것과 같이, 인코더부(110)에 입력되는 복수의 단위 글자들(100)을 인코딩하는 역할을 수행하며, 보다 구체적으로는, 복수의 단위 글자들을 컴포넌트 단위로 분해(도 5의 도면 부호 500에 따른 표 참조)하고, 분해된 컴포넌트들 각각으로부터 서체 정보를 추출할 수 있다.
인코더부(110)는, 복수의 단위 글자들을 컴포넌트 단위로 분해하고, 분해된 컴포넌트들로부터 서체 정보를 추출하는데, 이때, 컴포넌트 타입별로 구분하여, 서체 정보를 추출할 수 있다.
이를 위하여, 인코더부(110)는 복수의 헤드(111, 112, 113) 구조를 갖도록 이루어질 수 있다. 복수의 헤드(111, 112, 113)는 복수의 컴포넌트 타입 중 어느 하나와 매칭되도록 이루어질 수 있다. 복수의 헤드(111, 112, 113) 각각에서는, 각각의 헤드에 매칭된 컴포넌트 타입의 서체 정보가 추출되도록 이루어진다.
이때, 복수의 헤드(111, 112, 113) 각각에 매칭된 컴포넌트 타입은 서로 다르게 설정되어, 각각의 헤드에서는 서로 다른 컴포넌트 타입의 서체 정보가 출력될 수 있다.
즉, 복수의 헤드(111, 112, 113) 각각은 상기 복수의 컴포넌트 타입 중 어느 하나의 컴포넌트 타입과 매칭되도록 이루어질 수 있다. 예를 들어, 제1 헤드(111)에는, 제1 컴포넌트 타입(또는 제1 타입)이 매칭되고, 제2 헤드(112)에는 제2 컴포넌트 타입(또는 제2 타입)이 매칭되며, 그리고, 제3 헤드(113)에는 제3 컴포넌트 타입(또는 제3 타입)이 매칭될 수 있다.
따라서, 각 헤드에서는, 복수의 컴포넌트 타입 중 기 매칭된 컴포넌트 타입의 서체 정보가 추출 및 출력될 수 있다.
따라서, 도 5에 도시된 것과 같이, 인코더부(110)는, 제1 헤드(111)를 통해, 상기 분해된 컴포넌트들 중 제1 컴포넌트 타입(예를 들어, “초성”)에 해당하는 컴포넌트(도면 부호 111a 참조: ㄲ, ㅍ, ㄴ, ㅂ, ㅇ, ㅇ, ㅅ, ㄴ, ㄷ)의 서체정보를 추출하고, 제2 헤드(112)를 통해, 상기 복수의 컴포넌트 타입 중 상기 제1 컴포넌트 타입(예를 들어, “초성”)과 다른 제2 컴포넌트 타입(예를 들어, “중성”)에 해당하는 컴포넌트(도면 부호 112a 참조: ㅗ, ㅣ, ㅡ, ㅗ, ㅣ ㅘ, ㅡ, ㅣ, ㅏ)의 서체정보를 추출하도록 이루어질 수 있다. 이때, 각 헤드에서 출력되는 서체 정보는 벡터 구조를 이룰 수 있다.
비록 도시되지는 않았지만, 본 발명에 따른 인코더부(110)는 복수의 컴포넌트 타입에 해당하는 모든 컴포넌트들에 대해 인코딩을 수행함으로써, 모든 컴포넌트들에 대한 서체 정보를 추출할 수 있다.
한편, 위의 예에서는, 인코더부(110)가 컴포넌트 타입에 각각 매칭된 복수의 헤드 구조를 갖는 것에 대하여 살펴보았으나, 인코더부(110)는 컴포넌트 타입에 각각 매칭된 헤드 뿐만 아니라, 추가적인 헤드를 더 포함할 수 있다. 이 경우, 추가적인 헤드에서는, 인코더부에 입력되는 복수의 단위 글자들이 공통적으로 갖는 서체 정보가 추출될 수 있다. 이러한 서체 정보는, 글자들의 크기, 글자 획의 두께, 글자 내에서 각 컴포넌트들 간의 배치 비율 등에 대한 정보가 포함될 수 있다. 이러한 서체 정보는, 디코더부(130)에서 글자를 생성하는 활용될 수 있다.
한편, 인코더부(110)를 통한 인코딩을 통해 서체 정보가 추출되면, 추출된 서체 정보를, 각각의 컴포넌트와 맵핑하여 저장하는 과정이 진행된다(S340).
메모리부(120)는, 컴포넌트 단위로 서체 정보를 저장하도록 이루어지며, 각각의 컴포넌트는 서로 다른 접근 주소(access address)를 가질 수 있다. 이러한 접근 주소는, 디코더(130)에서 각각의 컴포넌트에 대한 서체 정보를 호출하는데 이용될 수 있다.
메모리부(120)는 도 6 a 내지 도 6c에 도시된 것과 같이, 컴포넌트 단위로 서체 정보가 저장되도록, 컴포넌트 단위로 각각 공간이 할당되어 존재할 수 있다. 따라서, 컴포넌트 각각에 대한 서체 정보는, 각각의 컴포넌트에 할당된 공간에 매핑되어 저장될 수 있다(도 6 a 내지 도 6c의 표에서, “메모리부”열의 표시는 서로 다른 서체 정보임을 표현하기 위한 개념이며, 실질적인 데이터의 구조는 이와 다를 수 있다).
메모리부(120)는 컴포넌트의 종류 및 개수를 기준으로 저장 공간이 미리 구분되어 존재할 수 있다. 따라서, 인코더부(110)에서 추출된 서체 정보는, 메모리부(120) 상에 컴포넌트를 기준으로 할당된 복수의 공간 중, 상기 추출된 서체 정보에 대응되는 컴포넌트에 할당된 공간에 저장될 수 있다. 이와 같이, 메모리부(120)는 컴포넌트 단위로 서체정보를 저장하도록 이루어져 있으며, 이를 통해 컴포넌트와 서체정보가 서로 맵핑되어 존재할 수 있다.
한편, 인코더부에서 추출된 서체 정보가, 메모리부(120)의 기 할당된 공간에 저장되기 위해서는, 추출된 서체 정보가 어느 컴포넌트에 대한 서체 정보인지 라벨링을 하는 과정일 필요할 수 있다. 이러한, 라벨의 과정을, 본 발명에서는 “서체 정보에 접근 주소”를 할당(또는 부여, 생성)한다고 표현할 수 있다.
각각의 컴포넌트로부터 추출된 서체 정보에 대한 서로 다른 접근 주소는, 인코더부(110)에서, 복수의 단위 글자를 분해하는 과정에서 부여될 수 있다.
비록 도시되지 않았으나, 본 발명에 따른 폰트 생성 시스템은, 각각의 컴포넌트로부터 추출되는 서체정보에 대해, 컴포넌트 단위로 접근 주소를 부여(또는 할당, 생성)하는 메모리 어드레서(memory addressor)를 더 포함할 수 있다.
따라서, 추출된 서체정보는, 상기 접근 주소를 근거로, 메모리부(120) 상에, 추출된 서체 정보에 대응되는 컴포넌트를 위해 할당된 공간에 저장될 수 있다.
한편, 메모리 어드레서는 인코더부(110)에 포함되는 개념으로도 이해되어 질 수 있다. 이 경우, 인코더부(110)는, 메모리 어드레서의 역할을 수행하도록 이루어질 수 있다.
한편, 각각의 컴포넌트로부터 추출된 서체 정보에 대한 접근 주소는, 유니코드(Unicode)를 이용하여 생성될 수 있다.
보다 구체적으로, 추출된 서체 정보에 대한 접근 주소를 할당하기 위하여, 메모리 어드레서는, 복수의 글자 각각에 해당하는 유니코드를 추출할 수 있다. 유니코드는, 각 나라별 언어를 컴퓨터가 인식할 수 있도록 표현한 코드 체계로서, 인코더부(110)에 입력되는 복수의 글자 각각은 모두 유니코드로 표현될 수 있다.
메모리 어드레서는, 복수의 글자 각각에 대한 유니코드를 추출함으로써, 해당 글자에 어느 컴포넌트가 포함되어 있는지를 파악할 수 있다.
이때, 복수의 글자 각각에 대한 유니코드는, 인코더부(110)에서 추출되는 것 또한 가능하다. 즉, 인코더부(110)에서 입력된 복수의 단위 글자 각각에 대한 유니코드를 추출하며, 메모리 어드레서는, 추출된 유니코드를 이용하여 컴포넌트 각각에 대한 접근 주소를 생성할 수 있다.
한편, 유니코드를 이용하는 경우, 메모리 어드레서는 인코더부(110)에 입력된 복수의 단위 글자들이 각각 어느 컴포넌트들로 구성되어 있는지 알 수 있게 된다. 따라서, 본 발명에 따른 폰트 생성 시스템은, 컴포넌트 별로 메모리 공간이 할당된 메모리부(120)에 각각의 컴포넌트에 대응되는 서체 정보를 정확하게 저장할 수 있게 된다.
한편, 메모리 어드레서는, 컴포넌트 단위로 메모리 접근 주소를 할당하며, 이를 위하여, 메모리 어드레서는, 글자에 대한 유니코드와 함께, 글자를 구성하는 컴포넌트의 컴포넌트 타입을 이용하여, 컴포넌트 별로 메모리 접근 주소를 할당할 수 있다.
이때, 메모리 어드레서는, 인코더부(110)의 복수의 헤드(111, 112, 113)를 기준으로, 컴포넌트 각각에 대한 메모리 접근 주소를 할당할 수 있다.
즉, 복수의 헤드(111, 112, 113)는 각각 서로 다른 컴포넌트 타입에 매칭되어 있으므로, 복수의 헤드(111, 112, 113) 중 어느 헤드로부터 서체 정보가 출력되었는지에 따라, 해당 서체 정보가 특정 글자의 어느 컴포넌트 타입의 정보인지를 인지할 수 있게 된다. 예를 들어, 특정 글자가 “가”인 경우, 제1 헤드에서는, 제1 컴포넌트 타입(예를 들어, 초성)에 해당하는 “ㄱ”의 서체정보가 추출될 수 있고, 제2 헤드에서는, 제2 컴포넌트 타입(예를 들어, 중성)에 해당하는 “ㅏ”의 서체정보가 추출될 수 있다.
따라서, 메모리 어드레서는, 글자에 대한 유니코드와 복수의 헤드 중 어느 헤드로부터 서체정보가 출력되는지에 대한 정보를 조합하여, 인코더로부터 추출되는 서체 정보가, 메모리부(120) 상에서 어디에 저장되어야 할지를 가르키는 메모리 접근주소를 생성할 수 있다.
이와 같이, 각각의 컴포넌트에 대한 서체정보가 추출되고, 추출된 서체 정보에 대한 메모리 접근 주소가 할당되면(즉, 라벨링이 수행되면), 추출된 서체정보는, 메모리 접근 주소를 근거로, 도 6a, 도 6b 및 도 6c에 도시된 것과 같이, 컴포넌트 단위로 메모리부(120) 상에 서체 정보를 저장하도록 구성될 수 있다. 이때, 도 6a, 도 6b 및 도 6c에 도시된 “address” 열에 표시된 데이터는, 개념적으로 나타낸 것으로서, 실제 접근 주소는 상이할 수 있다.
한편, 본 발명에 따른 메모리부(120)는, 도 7a, 도 7b 및 도 7c에 도시된 것과 같이, 제1 및 제2 메모리부를 포함하는 듀얼 메모리부 구조를 가질 수 있다. 도시와 같이, 메모리부(120)는, 인코더부(110)로부터 추출된 서체 정보를 저장하는 제1 메모리부 및 컴포넌트들이 갖는 고유의 모양 정보를 저장하는 제2 메모리부를 포함할 수 있다. 제1 및 제2 메모리부에 저장된 서체 정보 및 고유의 모양 정보는, 앞서 살펴본 것과 같이, 컴포넌트 단위로 서로 다른 접근 주소를 가질 수 있다. 제1 및 제2 메모리부의 각각의 접근 주소는 컴포넌트를 기준으로 서로 맵핑될 수 있다.
제1 및 제2 메모리부는, 각각의 컴포넌트에 해당하는 유니코드를 기준으로 서로 맵핑될 수 있다. 즉, 제1 및 제2 메모리부에서, 동일한 컴포넌트에는, 동일한 유니코드에 따른 접근 주소가 할당될 수 있다.
다시 말해, 인코더로부터 분해된 컴포넌트들로부터 추출된 서체정보 각각은, 상기 복수의 단위 글자들에 해당하는 유니코드를 근거로 설정된 서로 다른 라벨(서로 다른 접근 주소)을 가지며, 상기 제1 메모리부에 저장된 서체 정보 및 상기 제2 메모리에 저장된 모양 정보(또는 고유의 모양 정보)는, 상기 라벨에 근거하여, 서로 대응되는 컴포넌트들끼리 서로 매핑될 수 있다.
한편, 상기 제2 메모리부에 저장된 상기 고유의 모양 정보는, 컴포넌트들 간의 배치 정보를 더 포함할 수 있다. 여기에서, 컴포넌트들 간의 배치 정보는, 컴포넌트들이 조합되어 글자를 형성하는 경우, 형성되는 글자에서 컴포넌트들 간의 배치관계, 또는 배치 규칙에 대한 것으로서, 언어에 따라 글자마다 갖는 고유의 배치 관계 또는 배치 규칙이 존재할 수 있다.
한편, 이러한 고유의 배치 관계 내에서, 서로 다른 서체 마다의 디테일한 배치 관계 정보는, 제1 메모리부에 저장된 서체 정보에 포함될 수 있다.
한편, 제1 메모리부에 저장되는 서체 정보는, 인코딩부(110)를 통한 인코딩 과정에서 추출 및 저장될 수 있다. 이와 다르게, 제2 메모리부에 저장된 고유의 모양 정보는, 인코딩 과정과 별개로 저장 또는 학습될 수 있다. 나아가, 제2 메모리부에 저장된 고유의 모양 정보는, 서로 다른 서체에 대해서 공통적으로 활용될 수 있다.
한편, 제2 메모리부는, 위에서 살펴본 인코딩의 과정과 별개의 과정으로서 정보가 추출 또는 학습될 수 있다. 즉, 고유의 모양 정보는, 인코딩 시 입력되는 복수의 글자 외에, 다른 글자들로부터 정보가 추출 또는 학습될 수 있다.
제2 메모리부에 저장되는 고유의 모양 정보를 획득하기 위하여, 별개의 인코더부가 존재할 수 있으며, 이러한 별개의 인코더부는 위에서 살펴본 본 발명에 따른 인코더부(110)의 동작에 영향을 미치지 않는다.
위의 별개의 인코더부에는, 앞서 살펴본 컴포넌트 타입 별로 구분되는 모든 컴포넌트들 간의 조합에 의해 생성되는 글자들이 입력 데이터로서 입력될 수 있다. 이 경우, 별개의 인코더부는, 컴포넌트 고유의 모양, 컴포넌트들이 이루는 글자에서 컴포넌트 간의 배치 관계 등을 학습하도록 이루어질 수 있다.
다만, 본 발명에서는, 이러한 고유의 모양 정보를 획득하는 방법과 독립적으로, 제2 메모리부에 기 획득된 고유의 모양 정보가 존재함을 전제로 설명한다.
이와 같이, 위에서 살펴본 것과 같이, 서체 정보의 추출이 완료되면, 저장된 서체를 이용하여, 입력받은 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하는 과정이 진행된다(S350).
여기에서, 생성되는 글자는, 타겟 글자라고도 명명될 수 있다. 글자의 생성은, 디코더부(130)에서 이루어질 수 있다. 디코더부(130)는, 메모리에 저장된 서체 정보 및 고유의 모양 정보를 이용하여, 글자를 생성하도록 이루어질 수 있다.
한편, 본 발명에서는, 디코더부(130)에서 생성된는 글자를, “타겟 글자”라고 명명할 수 있다.
보다 구체적으로, 디코더부(130)는, 앞서 살펴본 제1 메모리부에 저장된 서체 정보 및 제2 메모리부에 저장된 모양 정보를 이용하여, 복수의 글자, 즉 타겟 글자를 생성할 수 있다.
이때, 본 발명에 따른 디코더부(130)는, 상기 복수의 단위 글자들과 적어도 하나의 다른 글자를 생성할 수 있다. 즉, 디코더부(130)는 디코더부를 통해 입력받은 글자가 아니더라도, 입력받은 글자로부터 추출한 서체 정보를 이용하여, 입력받은 글자와 유사 또는 동일한 서체를 갖는 글자를 생성할 수 있다.
예를 들어, 앞서 도 1에서 살펴본 것과 같이, 입력 글자로서 “꽃피는봄이왔습니다”를 입력받은 경우(도 1의 (a) 참조), 입력받은 글자에 포함된 컴포넌트를 이용하여, 입력받은 글자 “꽃”과 입력받은 글자에 포함되지 않은 “핀어느밤”(도 1의 (b) 참조)을 생성할 수 있다.
디코더부(130)는, 메모리부(120)에서 각각의 컴포넌트들에 대해 접근하기 위한 접근 주소를 가지고 있으며, 이러한 접근 주소를 이용하여 생성하고자 하는 타겟 글자의 서체 정보 및 고유의 모양 정보를 호출함으로써, 타겟 글자를 생성할 수 있다.
위에서 살펴본 방법을 통하여, 본 발명에서는 컴포넌트 단위로 저장된 서체 정보 및 고유의 모양 정보를 이용하여, 디코더부(130)에서 특정 언어에 대한 한 벌의 폰트를 생성할 수 있다. 이때, 디코더부(130)에는, 한 벌의 폰트를 생성하기 위한 타겟 글자들에 대한 정보를 미리 저장하고 있을 수 있다.
한편, 본 발명에 따른 폰트 생성 방법 및 시스템은, 위에서 살펴본 방법으로 서체 정보를 추출하고, 이를 저장함으로써, 특정 언에 대한 한 벌의 폰트를 생성할 수 있다. 나아가, 본 발명에서는, 살펴본 폰트 생성 시스템을 보다 고도화하기 위하여, 인코더부(110), 메모리부(120) 및 디코더부(130) 중 적어도 하나를 업데이트하는 과정을 수행할 수 있다. 이러한 업데이트를 통하여, 본 발명에 따른 폰트 생성 시스템은, 폰트 생성의 대상이 되는 글자의 서체와 더욱 유사한 서체를 갖는 폰트를 생성할 수 있다.
이러한 업데이트의 과정은, 디코더부(130)를 통해 생성된 글자와, 기준 글자(예를 들어, 생성된 글자에 대한 손글씨)를 이용한 학습을 통하여 이루어지며, 이러한 학습을 통해, 디코더부(130)를 통해 생성된 글자와 기준 글자와의 오차를 줄임으로써, 폰트 생성의 대상이 되는 글자와 더욱 유사한 폰트를 생성할 수 있다.
여기에서, 기준 글자는, “ground truth” 또는 “ground truth 데이터” 또는 “정답 데이터”라고도 명명될 수 있다.
이하에서는, 학습을 수행하는 방법에 대하여 첨부된 도면과 함께 보다 구체적으로 살펴본다. 도 8은 본 발명에 따른 폰트 생성 방법 및 시스템을 통해 생성된 글자를 이용하여 학습을 수행하는 방법을 설명하기 위한 개념도이다.
본 발명에 따른 폰트 생성 시스템에서의 학습은, 특정 언어를 구성하는 모든 컴포넌트들에 대한 인코딩이 완료된 후, 또는 완료되기 전이라도 가능하다. 즉, 본 발명에 따른 학습 과정은, 메모리부(120) 상에 일부 컴포넌트에 대해서만 서체 정보가 저장된 상태에서도 가능하다.
본 발명에서 학습의 목표는, i) 디코더부(130)를 통해 생성되는 글자가 갖는 컴포넌트의 서체 또는 글자가, 실제 손글씨가 갖는 컴포넌트의 서체 또는 글자와 더욱 유사하게 하고, ii) 인코더부(110)를 통해 추출된 서체 정보가, 추출된 서체 정보와 대응되는 컴포넌트에 할당된 메모리에 정확하게 맵핑되도록 하고, iii) 인코더부(110)에 입력되지 않은 글자이더라도, 입력된 글자의 서체와 더욱 유사한 서체를 갖도록 하기 위함이다.
한편, 학습의 과정은 학습부(800, 또는 제어부)에 의하여 제어될 수 있다.
학습의 과정에 대해 보다 구체적으로 살펴보면, 학습부(800)는 디코더부(130)를 통해 생성된 복수의 글자 중, 인코더부(110)를 통해 입력되지 않은 글자, 즉, 실제 손글씨 데이터가 존재하지 않은 글자를 학습의 대상으로 설정할 수 있다. 본 명세서에서, 학습의 대상으로 설정된 글자는, “학습 대상 글자”라고 명명될 수 있다. 이때, 학습부(800)는, 인코더부(110)를 통해 입력된 글자에 포함된 컴포넌트를 이용하여 생성할 수 있는 글자는 “학습 대상 글자”로 결정하고, 이에 대한 글자를 디코더부(130)를 통해 생성할 수 있다.
디코더부(130)는, 학습부(800)의 제어 하에, 인코더부(110)에 입력된 글자 “꽃피는봄이왔습니다”를 구성하는 컴포넌트 중 일부 컴포넌트의 서체 정보를 이용하여, 학습 대상 글자를 생성할 수 있다. 이때, 학습 대상 글자에는, 상기 입력된 글자와 동일한 글자가 포함되지 않을 수 있다. 즉, 학습부(800)는 본 발명에 따른 폰트 생성 시스템에 의해 새롭게 생성된 글자들을 학습 대상으로 선택할 수 있다.
예를 들어, 학습을 위하여, 디코더부(130)는, 인코더로부터 입력된 “꽃피는봄이왔습니다”로부터 분해된 컴포넌트들 중 복수의 컴포넌트(예를 들어, “ㄲ”(801), “ㅂ”(802), “ㅅ”(803), “ㅣ”(804), “ㅡ”(805), “ㅏ”(806), “ㄴ”(807))에 해당하는 서체 정보를 메모리부(120)로부터 로드하여, 학습 대상 글자 “비까슨”을 생성할 수 있다.
학습부(800)는 디코더부(130)를 통해 학습된 학습 대상 글자와, 실제 손글씨에 해당하는 기준 글자(810)를 이용하여, 학습 대상 글자에 대한 학습을 수행하고, 학습 결과를 이용하여, 인코더부(110), 메모리부(120) 및 디코더부(130) 중 적어도 하나를 업데이트 할 수 있다.
이때, 학습 대상 글자와 기준 글자는 각각 이미지 형식을 가질 수 있으며, 학습부(800)는 학습 대상 글자와 기준 글자 간의 이미지 비교하고, 상기 비교를 통해, 상기 학습 대상 글자와 상기 기준 글자와의 차이 값을 추출하는 학습을 수행할 수 있다. 학습부(800)는, 디코더부(130)에서 새로운 글자가 생성되는 경우, 상기 차이 값이 최소화되도록 상기 인코더부(110), 상기 메모리부(120) 및 상기 디코더부(130) 중 적어도 하나를 업데이트할 수 있다.
이때, “인코더부(110)를 업데이트 한다”는 것의 의미는, 인코더부(110)에서 서체 정보를 보다 잘 추출하기 위하여, 인코더부(110)의 파라미터를 보정 또는 조정하는 것을 의미할 수 있다. 즉, 학습부(800)는, 상기 차이값을 최소화하기 위한 인코더부(110)의 파라미터를 보정 또는 조정할 수 있다. 상기 차이값이 최소화되는 인코더부(110)의 파라미터 보정(또는 조정)은, 인코더부(110)에서 컴포넌트의 서체 정보를 추출할 때, 어떤 정보를 어떻게 추출해야 할지에 대한 파라미터에 대한 보정(또는 조정)을 의미할 수 있다.
나아가, “메모리부(120)를 업데이트 한다”는 것은, 메모리부(120)에 저장된 서체 정보 및 고유의 모양 정보 중 적어도 하나와 관련된 정보를 업데이트 하는 것을 의미할 수 있다. 이때, 메모리부(120)는 컴포넌트 단위로 업데이트될 수 있다.
나아가, “디코더부(130)를 업데이트 한다”는 것의 의미는, 디코더부(130)에서 글자를 생성할 때, 실제 손글씨 데이터와 보다 유사한 글자를 생성하기 위하여, 디코더부(130)의 파라미터를 보정 또는 조정하는 것을 의미할 수 있다. 즉, 학습부(800)는, 상기 차이값을 최소화하기 위한 디코더부(130)의 파라미터를 보정 또는 조정할 수 있다. 상기 차이값이 최소화되는 디코더부(130)의 파라미터 보정(또는 조정)은, 디코더부(130)에서 글자를 생성하는 것과 관련될 수 있다. 즉, 상기 차이값이 최소화되는 디코더부(130)의 파라미터의 보정(또는 조정)은, 메모리부(120)에 저장된 서체 정보 및 고유의 폰트 정보를 이용하여 컴포넌트들을 어떻게 조합하여 글자를 실제 손글씨 데이터와 더욱 유사한 글자를 생성할 지와 관련된 파라미터에 대한 보정(또는 조정)을 의미할 수 있다.
한편, 학습부(800)는, 다양한 학습 알고리즘으로 학습을 수행할 수 있으며, 학습을 위하여, 감별부(discriminator) 및 컴포넌트 분류기(component classifier)를 포함할 수 있다.
감별부(discriminator)에서, 감별을 위한 데이터를 생성하는 생성기(generator)는, 디코더부(130)로 대체될 수 있다. 즉, 감별부(discriminator)는, 디코더부(130)에서 생성된 학습 대상 글자를, 기준 글자와 비교함으로써, 학습을 수행할 수 있다.
이러한 감별부는 복수의 감별 과정으로 구분될 수 있으며, 복수의 감별 과정은 학습 대상 글자와 기준 글자 간의 오차 또는 로스(loss)를 줄이기 위한 과정이라고 이해되어질 수 있다.
예를 들어, 복수의 감별 과정을 위하여 다양한 로스 함수 또는 로스 알고리즘이에 따른 딥러닝 학습기법이 활용될 수 있으며, 예를 들어, 이러한 함수들은, GAN loss, Feature matching loss, L1 loss, AC loss 등이 존재할 수 있다.
나아가, 학습부(800)는, 디코더부(130)로부터 생성된 학습 대상 글자를 인코더부(110)를 통해, 다시 컴포넌트 단위로 분해하고, 컴포넌트 분류기(component classifier)를 통해, 분해된 컴포넌트들이, 학습 대상 글자를 구성하는 컴포넌트들로 구성되어 있는지 판단할 수 있다. 그리고, 판단 결과를 이용하여, 인코더부(110), 메모리부(120) 및 디코더부(130) 중 적어도 하나의 파라미터를 조정 또는 보정할 수 있다.
이와 같이, 본 발명에 따른 폰트 생성 시스템은, 위에서 살펴본 학습 과정을 통하여, 보다 실제 데이터와 유사한 서체를 갖는 폰트를 생성하는 것이 가능하다.
한편, 본 발명에 따른 폰트 생성 시스템에서, 학습이 완료되면, 폰트를 생성하기 위하여는, 메모리부(120)에 포함된 정보 및 디코더(130)만 활용되는 것이 가능하다.
이상에서 살펴본 것과 같이, 본 발명에 따른 폰트 생성 방법 및 시스템은, 특정 언어의 글자 체계를 이루는 모든 컴포넌트들이 최소 1회 이상 포함된 복수의 글자를 입력 받음으로써, 특정 언어의 글자 체계를 이루는 모든 컴포넌트들에 대한 서체 정보를 확보할 수 있다.
보다 구체적으로, 본 발명에 따른 폰트 생성 방법 및 시스템은, 입력받은 글자를 컴포넌트 단위로 분해하고, 분해된 컴포넌트들 각각으로부터, 서체 정보를 추출함으로써, 특정 언어의 글자 체계를 이루는 모든 컴포넌트들에 대한 서체 정보를 컴포넌트 단위로 확보할 수 있다.
따라서, 본 발명에 따른 폰트 생성 방법 및 시스템은, 사전에 입력받지 않은 글자를 생성하는 경우라도, 컴포넌트 단위로 확보된 서체 정보를 이용함으로써, 사전에 입력받은 글자의 서체와 유사도가 매우 높은 새로운 글자를 생성할 수 있다.
결과적으로, 본 발명에 따른 폰트 생성 방법 및 시스템은, 특정 언어의 글자 체계를 이루는, 모든 글자에 대한 서체 정보가 확보되지 않은 경우라도, 몇몇의 글자를 활용하여, 통일성 있는 서체를 갖는 다양한 글자를 생성하는 것이 가능하다.
나아가, 본 발명에 따른 폰트 생성 방법 및 시스템은, 위에서 살펴본 방법으로 새롭게 생성된 글자와 사전에 입력받은 글자 간의 차이를 추출하고, 추출된 정보를 업데이트하는 학습을 통하여, 사전에 입력받은 글자의 서체와 더욱 유사한 서체의 글자를 생성하는 것이 가능하다.

Claims (14)

  1. 복수의 단위 글자들을 컴포넌트 단위로 분해하고, 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하는 인코더부; 
    상기 추출된 서체 정보를 상기 분해된 컴포넌트들과 맵핑하여 저장하는 메모리부; 및 
    상기 저장부에 저장된 서체 정보를 이용하여, 상기 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하는 디코더부를 포함하고, 
    상기 디코더부를 통해 생성된 복수의 글자는, 
    상기 복수의 단위 글자들과 적어도 하나의 다른 글자를 포함하는 것을 특징으로 하는 폰트 생성 시스템. 
  2. 제1항에 있어서, 
    상기 복수의 단위 글자들 각각은, 
    서로 다른 컴포넌트 타입을 갖는 적어도 두개의 컴포넌트들의 조합에 의하여 형성되고, 
    상기 적어도 두개의 컴포넌트들 간의 상대 위치는,  
    상기 적어도 두개의 컴포넌트들의 컴포넌트 타입에 따라 결정되는 것을 특징으로 하는 폰트 생성 시스템. 
  3. 제2항에 있어서,  
    상기 복수의 단위 글자들은 복수의 컴포넌트 타입을 갖는 특정 언어의 글자 체계를 따르며, 
    상기 복수의 단위 글자들은, 
    상기 복수의 컴포넌트 타입의 각각에 해당하는 컴포넌트들을 적어도 하나 이상 포함하는 것을 특징으로 하는 폰트 생성 시스템. 
  4. 제3항에 있어서, 
    상기 인코더부는 복수의 헤드를 구비하며,  
    상기 복수의 헤드 각각은 상기 복수의 컴포넌트 타입 중 어느 하나의 컴포넌트 타입과 매칭되고, 
    상기 복수의 헤드 각각에 매칭된 컴포넌트 타입은 서로 다른 것을 특징으로 하는 폰트 생성 시스템. 
  5. 제4항에 있어서, 
    상기 복수의 헤드 중 제1 및 제2 헤드는 각각 상기 복수의 컴포넌트 타입 중 제1 및 제2 컴포넌트 타입과 매칭되고, 
    상기 인코더부는, 
    상기 제1 헤드를 통해, 상기 분해된 컴포넌트들 중 제1 컴포넌트 타입에 해당하는 컴포넌트의 서체 정보를 추출하고, 
    상기 제2 헤드를 통해, 상기 복수의 컴포넌트 타입 중 상기 제1 컴포넌트 타입과 다른 제2 컴포넌트 타입에 해당하는 컴포넌트의 서체 정보를 추출하는 것을 특징으로 하는 폰트 생성 시스템. 
  6. 제5항에 있어서,
    상기 특정 언어가 한국어인 경우,
    상기 복수의 컴포넌트 타입은, 한글의 음을 구성하는 기준에 근거하여 분류되는 초성, 중성 및 종성에 각각 대응되고,
    상기 제1 헤드에서는, 상기 분해된 컴포넌트들 중 초성에 해당하는 컴포넌트의 서체 정보가 추출되고,
    상기 제2 헤드에서는, 상기 분해된 컴포넌트들 중 중성에 해당하는 컴포넌트의 서체 정보가 추출되며,
    상기 인코더부에 구비된 제3 헤드에서는, 상기 분해된 컴포넌트들 중 종성에 해당하는 컴포넌트의 서체 정보가 추출되는 것을 특징으로 하는 폰트 생성 시스템.
  7. 제1항에 있어서,
    상기 메모리부는,
    상기 추출된 서체 정보를 저장하는 제1 메모리부 및
    상기 분해된 컴포넌트들이 갖는 고유의 모양 정보를 저장하는 제2 메모리부를 포함하는 것을 특징으로 하는 폰트 생성 시스템.
  8. 제7항에 있어서,
    상기 디코더부는,
    상기 제1 메모리부에 저장된 서체 정보 및 상기 제2 메모리부에 저장된 모양 정보를 이용하여, 상기 복수의 글자를 생성하는 것을 특징으로 하는 폰트 생성 시스템.
  9. 제7항에 있어서, 
    상기 분해된 컴포넌트들 각각은, 상기 복수의 단위 글자들에 해당하는 유니코드를 근거로 설정된 서로 다른 라벨을 가지며, 
    상기 제1 메모리부에 저장된 서체 정보 및 상기 제2 메모리에 저장된 모양 정보는, 상기 라벨에 근거하여, 상기 분해된 컴포넌트들과 각각 매핑되는 것을 특징으로 하는 폰트 생성 시스템.
  10. 제1항에 있어서,
    메모리 어드레서를 더 포함하고,
    상기 메모리 어드레서는,
    상기 복수의 단위 글자 각각에 대한 유니코드를 이용하여, 상기 서체 정보 각각에 대한 메모리 접근 주소를 생성하는 것을 특징으로 하는 폰트 생성 시스템.
  11. 제10항에 있어서,
    상기 메모리 접근 주소는,
    상기 복수의 단위 글자 각각에 대한 유니코드 및 상기 복수의 단위 글자 각각을 구성하는 컴포넌트의 컴포넌트 타입에 의해 특정되는 것을 특징으로 하는 폰트 생성 시스템.
  12. 제1항에 있어서,
    학습부를 더 포함하고,
    상기 학습부는,
    상기 다른 글자를 상기 다른 글자에 대응되는 기준 글자와 비교하고,
    비교 결과를 이용하여, 상기 인코더부, 상기 메모리부 및 상기 디코더부 중 적어도 하나를 업데이트하는 것을 특징으로 하는 폰트 생성 시스템.
  13. 제12항에 있어서,
    상기 학습부는,
    상기 비교를 통해, 상기 다른 글자와 상기 기준 글자와의 차이 값을 추출하고,
    상기 디코더부에서 새로운 글자가 생성되는 경우, 상기 차이 값이 최소화되도록 상기 인코더부, 상기 메모리부 및 상기 디코더부 중 적어도 하나를 업데이트하는 것을 특징으로 하는 폰트 생성 시스템.
  14. 복수의 단위 글자들을 입력받는 단계;  
    상기 복수의 단위 글자들을, 상기 복수의 단위 글자들을 각각 형성하는 컴포넌트 단위로 분해하는 단계;  
    상기 분해된 컴포넌트들 각각으로부터 서체 정보를 추출하고, 추출된 서체 정보를 각각의 컴포넌트와 맵핑하여 저장하는 단계; 및 
    상기 저장된 서체 정보를 이용하여, 상기 복수의 단위 글자들의 서체와 대응되는 서체를 갖는 복수의 글자를 생성하는 단계를 포함하고, 
    상기 생성된 복수의 글자는, 
    상기 복수의 단위 글자들과 적어도 하나의 다른 글자를 포함하는 것을 특징으로 하는 폰트 생성 방법. 
KR1020200046430A 2020-04-17 2020-04-17 폰트 생성 방법 및 시스템 KR102376231B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200046430A KR102376231B1 (ko) 2020-04-17 2020-04-17 폰트 생성 방법 및 시스템
JP2020116916A JP7250734B2 (ja) 2020-04-17 2020-07-07 フォント生成方法及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200046430A KR102376231B1 (ko) 2020-04-17 2020-04-17 폰트 생성 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20210128603A true KR20210128603A (ko) 2021-10-27
KR102376231B1 KR102376231B1 (ko) 2022-03-21

Family

ID=78281924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200046430A KR102376231B1 (ko) 2020-04-17 2020-04-17 폰트 생성 방법 및 시스템

Country Status (2)

Country Link
JP (1) JP7250734B2 (ko)
KR (1) KR102376231B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230082926A (ko) * 2021-12-02 2023-06-09 숭실대학교산학협력단 폰트 생성 방법 및 장치
KR20230089273A (ko) * 2021-12-13 2023-06-20 이미나 폰트 생성 시스템 및 이를 이용한 폰트 생성 방법
KR20230094023A (ko) * 2021-12-20 2023-06-27 단국대학교 산학협력단 대상 폰트 파일로부터 글씨 특징을 디지털화 처리하는 방법, 장치, 및 컴퓨터 프로그램
KR20230094022A (ko) * 2021-12-20 2023-06-27 단국대학교 산학협력단 Nft 기반 신규 폰트 파일을 생성하는 방법, 장치, 및 컴퓨터 프로그램
KR20230123751A (ko) 2022-02-17 2023-08-24 영남대학교 산학협력단 영역 상관관계 인지 대조 학습 알고리즘을 이용한 폰트 생성 시스템 및 그 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229175B1 (ko) * 2012-04-06 2013-02-01 (주)정글시스템 자필 폰트 생성 방법 및 장치
KR101801153B1 (ko) * 2016-12-30 2017-11-27 이경민 기계학습 기반의 문자 인식 시스템
KR20190066450A (ko) * 2017-12-05 2019-06-13 주식회사 비젠 템플릿을 이용한 개인화 폰트 생성 방법 및 시스템
KR20210037280A (ko) * 2019-09-27 2021-04-06 이현규 손 글씨를 이용한 폰트 제작 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3713967B2 (ja) * 1998-08-24 2005-11-09 オムロン株式会社 フォント作成方法及び装置並びに記憶媒体
CN103186511B (zh) 2011-12-31 2017-03-08 北京大学 汉字造字方法和设备、构造字体库的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101229175B1 (ko) * 2012-04-06 2013-02-01 (주)정글시스템 자필 폰트 생성 방법 및 장치
KR101801153B1 (ko) * 2016-12-30 2017-11-27 이경민 기계학습 기반의 문자 인식 시스템
KR20190066450A (ko) * 2017-12-05 2019-06-13 주식회사 비젠 템플릿을 이용한 개인화 폰트 생성 방법 및 시스템
KR20210037280A (ko) * 2019-09-27 2021-04-06 이현규 손 글씨를 이용한 폰트 제작 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230082926A (ko) * 2021-12-02 2023-06-09 숭실대학교산학협력단 폰트 생성 방법 및 장치
KR20230089273A (ko) * 2021-12-13 2023-06-20 이미나 폰트 생성 시스템 및 이를 이용한 폰트 생성 방법
KR20230094023A (ko) * 2021-12-20 2023-06-27 단국대학교 산학협력단 대상 폰트 파일로부터 글씨 특징을 디지털화 처리하는 방법, 장치, 및 컴퓨터 프로그램
KR20230094022A (ko) * 2021-12-20 2023-06-27 단국대학교 산학협력단 Nft 기반 신규 폰트 파일을 생성하는 방법, 장치, 및 컴퓨터 프로그램
KR20230123751A (ko) 2022-02-17 2023-08-24 영남대학교 산학협력단 영역 상관관계 인지 대조 학습 알고리즘을 이용한 폰트 생성 시스템 및 그 방법

Also Published As

Publication number Publication date
JP7250734B2 (ja) 2023-04-03
JP2021174497A (ja) 2021-11-01
KR102376231B1 (ko) 2022-03-21

Similar Documents

Publication Publication Date Title
KR102376231B1 (ko) 폰트 생성 방법 및 시스템
JP5647919B2 (ja) 文字認識装置、文字認識方法、文字認識システム、および文字認識プログラム
US5454046A (en) Universal symbolic handwriting recognition system
US5109352A (en) System for encoding a collection of ideographic characters
US9633255B2 (en) Substitution of handwritten text with a custom handwritten font
TWI464678B (zh) 用於手寫輸入亞洲語言的方法及系統
US20130343639A1 (en) Automatically morphing and modifying handwritten text
CN111914825B (zh) 文字识别方法、装置及电子设备
KR20210037280A (ko) 손 글씨를 이용한 폰트 제작 방법
JP7450868B2 (ja) タッチベースユーザインターフェース入力におけるジェスチャーストローク認識
JP2019028094A (ja) 文字生成装置、プログラム及び文字出力装置
KR102040088B1 (ko) 템플릿을 이용한 개인화 폰트 생성 방법 및 시스템
CN108597493B (zh) 语言语义的音频交换方法和音频交换系统
KR101159323B1 (ko) 아시아 언어들을 위한 수기 입력
Suchenwirth et al. Optical recognition of Chinese characters
KR20050012864A (ko) 음소 필체 이미지를 자동 조합하여 자동으로 자필 문장이미지를 형성하는 시스템 및 구현 방법
KR20220159065A (ko) 글자체 제공을 위한 서비스 제공 장치 및 방법
JPS6254364A (ja) 表意文字処理方法および装置
KR102016805B1 (ko) 평면 배열 기반 중국어 사전 제공 방법 및 그 장치
KR20230123751A (ko) 영역 상관관계 인지 대조 학습 알고리즘을 이용한 폰트 생성 시스템 및 그 방법
Wilson Preliminary Proposal to Encode the Khotanese Script
KR20220151724A (ko) 텍스트 범위에 대한 폰트 갱신 방법 및 디바이스
KR20240080068A (ko) 광학 문자 인식의 대상 이미지 내의 텍스트 박스 간의 종속 관계를 결정하는 전자 장치 및 그 동작 방법
Hussain et al. PAN localization: A study on collation of languages from developing Asia
KR20190094007A (ko) 3씨3잎파생식김광글모(자모)시스템

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant