KR20220024146A - 자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리 - Google Patents

자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리 Download PDF

Info

Publication number
KR20220024146A
KR20220024146A KR1020217041936A KR20217041936A KR20220024146A KR 20220024146 A KR20220024146 A KR 20220024146A KR 1020217041936 A KR1020217041936 A KR 1020217041936A KR 20217041936 A KR20217041936 A KR 20217041936A KR 20220024146 A KR20220024146 A KR 20220024146A
Authority
KR
South Korea
Prior art keywords
text
line
handwriting
input
format
Prior art date
Application number
KR1020217041936A
Other languages
English (en)
Other versions
KR102576276B1 (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 마이스크립트
Publication of KR20220024146A publication Critical patent/KR20220024146A/ko
Application granted granted Critical
Publication of KR102576276B1 publication Critical patent/KR102576276B1/ko

Links

Images

Classifications

    • 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/22Character recognition characterised by the type of writing
    • G06V30/226Character recognition characterised by the type of writing of cursive writing
    • G06V30/2268Character recognition characterised by the type of writing of cursive writing using stroke segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • 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/32Digital ink
    • G06V30/36Matching; Classification
    • 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/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • 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/1444Selective acquisition, locating or processing of specific regions, e.g. highlighted text, fiducial marks or predetermined fields
    • 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/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • 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/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/12Classification; Matching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Character Discrimination (AREA)

Abstract

본 발명은, 자유 핸드라이팅 형식(FT1)으로 컴퓨팅 디바이스에 입력된 디지털 잉크(IN)의 스트로크를 검출하는 단계; 상기 스트로크로부터 텍스트 블록(BL1)을 검출하는 단계; 텍스트 블록(BL1)으로부터 텍스트 라인을 추출하는 것을 포함하여, 상기 텍스트 블록의 각각의 텍스트 라인에 대한 텍스트 인식을 수행하고, 텍스트 블록의 각각의 스트로크를 텍스트 블록(BL1)의 문자, 단어 및 텍스트 라인과 관련시키는 모델 데이터를 생성하는 단계; 문서 패턴(200)을 준수하기 위해 자유 핸드라이팅 형식(FT1)으로부터 구조화된 형식(FT2)으로 각각의 텍스트 라인을 정규화하는 단계를 포함한다. 정규화하는 단계는 각각의 텍스트 라인에 대해: 상기 텍스트 라인을 구조화된 형식으로 변환하기 위한 변환 함수를 계산하는 단계; 변환 함수를 텍스트 라인에 적용하는 단계; 및 변환 함수에 기초하여 상기 텍스트 라인의 모델 데이터를 업데이트하는 단계를 포함한다.

Description

자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리
본 개시내용은 일반적으로 텍스트의 사용자 입력 핸드라이팅을 인식할 수 있는 컴퓨팅 디바이스 인터페이스의 분야에 관한 것이다. 특히, 본 개시내용은 텍스트 핸드라이팅을 인식하고 편집하기 위한 컴퓨팅 디바이스 및 대응하는 방법에 관한 것이다.
컴퓨팅 디바이스는 일상 생활에 점점 더 아주 흔해지고 있다. 이러한 것들은 컴퓨터 데스크톱, 랩톱 컴퓨터, 태블릿 컴퓨터, 하이브리드 컴퓨터(2-in-1), 전자책 리더, 모바일 폰, 스마트폰, 웨어러블 가능 컴퓨터(스마트워치, 스마트 안경/헤드셋을 포함하는), 글로벌 포지셔닝 시스템(GPS) 유닛, 회사 정보 단말기(enterprise digital assistants: EDA), 개인 정보 단말기(PDA), 게임 콘솔 등과 같은 다양한 형태를 취할 수 있다. 또한, 컴퓨팅 디바이스는 자동차, 트럭, 농기구, 제조 장비, 건물 환경 제어(예를 들어, 조명, HVAC), 및 가정 및 상업용 가전 기기와 같은 차량과 장비에 통합된다.
각각의 유형의 컴퓨팅 디바이스는 특정 컴퓨팅 리소스가 장비되며, 지정된 용도로 사용된다. 컴퓨팅 디바이스는 일반적으로 중앙 처리 유닛(CPU), 일부 유형의 메모리, 입력 및 출력 디바이스와 같은 적어도 하나의 처리 소자로 구성된다. 다양한 컴퓨팅 디바이스 및 이들의 후속 사용은 사용자가 그들의 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하도록 다양한 입력 디바이스 및 인터페이스를 필요로 한다.
하나의 이러한 입력 디바이스는 사용자 입력이 사용자 신체 부분(예를 들어, 손가락) 또는 도구(예를 들어, 펜 또는 스타일러스)와 터치 민감성 표면 사이의 접촉을 통해 수신되는 터치스크린 또는 터치패드와 같은 터치 민감성 표면이다. 또 다른 입력 디바이스는 입력 표면 위에서 사용자에 의해 만들어진 제스처를 감지하는 입력 표면이다. 추가 입력 디바이스는 비터치 물리적 또는 가상 표면과의 터치 또는 비터치 상호 작용의 상대 위치를 검출하는 위치 검출 시스템이다.
핸드라이팅 인식은 텍스트 콘텐츠(예를 들어, 영숫자 문자) 또는 비텍스트 콘텐츠(예를 들어, 형상, 그림)와 같이 사용자에 의해 핸드드로잉된 또는 핸드라이팅된 다양한 유형의 입력 엘리먼트를 입력하고 처리하기 위해 컴퓨팅 디바이스에서 구현될 수 있다. 컴퓨팅 디바이스에 입력되면, 입력 엘리먼트는 통상적으로 디지털 잉크(digital ink)로서 디스플레이되고, 조판 버전(typeset version)으로 변환되도록 핸드라이팅 인식을 거친다. 사용자 핸드라이팅 입력은 전형적으로 실시간 핸드라이팅 인식 시스템 또는 방법을 사용하여 해석된다. 이를 위해, 온라인 시스템(클라우드 기반 솔루션 등을 사용하여 수행된 인식) 또는 오프라인 시스템이 사용될 수 있다.
사용자 입력은 도표 또는 텍스트의 임의의 다른 콘텐츠, 비텍스트 또는 텍스트와 비텍스트의 혼합 콘텐츠일 수 있다. 핸드라이팅 입력은 사용자에 의한 입력을 안내하고 제한하는 가이드라인(또는 기준선)에 따라서 구조화된 문서에서 만들어질 수 있다. 대안적으로, 사용자는 자유 핸드라이팅 모드에서, 즉 따라야 하는 라인 또는 준수해야 할 입력 크기의 어떠한 제약도 없이(예를 들어, 빈 페이지에서) 핸드라이팅할 수 있다.
도 1a는 적절한 사용자 인터페이스를 사용하여 자유 핸드라이팅 모드에서 사용자에 의해 핸드드로잉되거나 또는 핸드라이팅된 잉크 입력 엘리먼트를 디스플레이하는 디스플레이 디바이스(1)를 포함하는 컴퓨팅 디바이스(1)의 예를 도시한다. 이러한 경우에, 컴퓨팅 디바이스(1)는 텍스트 콘텐츠(4, 6) 및 비텍스트 콘텐츠(8, 10, 12)를 검출하고 디스플레이한다. 이들 엘리먼트의 각각은 디지털 잉크의 하나 이상의 스트로크(stroke)에 의해 형성된다. 입력 엘리먼트는 예를 들어 텍스트 핸드라이팅, 도표, 음악 주석 등을 포함할 수 있다. 이러한 예에서, 형상(8)은 두 엘리먼트(6, 8)가 함께 선택되고 조작될 수 있도록 텍스트 콘텐츠(6)를 수용하는 컨테이너(박스)를 구성하는 직사각형 등이다.
핸드라이팅 인식은 텍스트 입력 엘리먼트, 및 가능하면 비텍스트 입력 엘리먼트에 대해 수행될 수 있다. 추가적으로, 각각의 입력 엘리먼트는 도 1b에서 이러한 예에 도시된 바와 같이 조판 입력 엘리먼트로서 변환되어 디스플레이될 수 있다.
핸드라이팅 인식 애플리케이션에서, 특히 텍스트 핸드라이팅이 자유 핸드라이팅 모드(즉, 자유 핸드라이팅 형식)로 입력되는 경우에, 텍스트 인식이라는 면에서 성능이 항상 만족스러운 것은 아니다. 텍스트 인식 프로세스의 신뢰성 및 안정성의 문제는 종종 이러한 컴퓨팅 디바이스의 성능을 악화시키고, 이에 의해 전체 사용자 경험을 제한한다. 컴퓨팅 디바이스가, 새로운 잉크 스트로크가 인식의 이전 상태(즉, 이전에 입력된 잉크 스트로크에 기초한 이전의 인식 결과)에 영향을 미칠 때, 그리고 인식의 이러한 이전 상태에 영향을 미치지 않을 때(즉, 새로운 잉크 스트로크는 이전에 입력된 내용에 영향을 미치지 않는 새로운 콘텐츠와 관련된다)를 결정하기 어렵기 때문에 제한이 특히 발생할 수 있다.
더욱이, 통상적으로 컴퓨팅 디바이스에 디스플레이된 사용자 입력에 대해 일정 수준의 편집을 수행하는 것이 가능하다. 그러나, 일반적으로, 이러한 애플리케이션은 편집 기능을 처리하는 그 기능이 제한되며, 전형적으로 사용자의 원래 의도를 반영하지 못하는 거동을 채택하거나 타협을 수락하도록 사용자를 제한한다.
텍스트 핸드라이팅이 자유 핸드라이팅 모드를 사용하여 입력될 때 디스플레이 및 편집 기능은 컴퓨팅 디바이스에 대해 특히 더 제한된다. 본래, 라인, 크기, 배향, 여백 등의 제약이 자유 핸드라이팅 모드에서 사용자에게 부여되지 않아서, 다양하고 복잡한 형태의 핸드라이팅이 입력될 수 있으며, 이에 의해 텍스트 핸드라이팅을 조작(예를 들어, 텍스트 흐름에서 이동, 리스케일링, 교정, 행 바꿈 삽입)하기 위해 컴퓨팅 디바이스에 의한 편집 기능의 구현이 더욱 어렵게 된다. 그러나, 사용자는 특히 자유 핸드라이팅 모드가 사용될 때 더욱 구조화되고 발전된 방식으로 핸드라이팅 입력을 편집하고 조작하기를 원할 수 있다. 자유 핸드라이팅 형식으로 핸드라이팅된 텍스트 입력을 처리하는데 있어서 이러한 제한은 사용자 경험을 악화시키고 개선을 필요로 한다.
자유 핸드라이팅 모드(또는 형식)에서 텍스트 핸드라이팅 입력의 효율적이고 신뢰 가능한 처리를 가능하게 하고, 특히 텍스트 인식을 개선하고 컴퓨팅 디바이스에서 이러한 텍스트 핸드라이팅의 효율적인 편집을 가능하게 하는 해결책이 필요하다.
아래에서 설명되는 본 발명의 예는 사용자 입력 핸드라이팅 텍스트를 편집하기 위한 컴퓨팅 디바이스, 방법 및 대응하는 컴퓨터 프로그램을 제공한다.
특정 양태에 따르면, 본 발명은 텍스트 핸드라이팅을 처리하기 위하여 컴퓨팅 디바이스에 의해 구현되는 방법을 제공하며, 방법은,
- 입력 표면을 이용하여 디지털 잉크의 복수의 입력 스트로크를 검출하는 단계로서, 상기 입력 스트로크는 어떠한 핸드라이팅 제약도 없이 자유 핸드라이팅 형식으로 입력되는, 상기 복수의 입력 스트로크를 검출하는 단계;
- 상기 자유 핸드라이팅 형식으로 디스플레이 디바이스에서 상기 복수의 입력 스트로크를 디스플레이하는 단계;
- 각각의 입력 스트로크를 텍스트 또는 비텍스트로서 분류하는 단계로서, 상기 분류 단계는 자유 핸드라이팅 형식으로 핸드라이팅된 상기 입력 스트로크로부터 핸드라이팅된 텍스트의 적어도 하나의 텍스트 블록을 텍스트로서 검출하는 단계를 포함하는, 상기 분류하는 단계;
- 상기 적어도 하나의 텍스트 블록에 대해 텍스트 인식을 수행하는 단계로서, 상기 텍스트 인식은,
o 상기 적어도 하나의 텍스트 블록으로부터 핸드라이팅된 텍스트의 텍스트 라인을 추출하는 단계;
o 상기 적어도 하나의 텍스트 블록의 각각의 스트로크를 상기 적어도 하나의 텍스트 블록의 문자, 단어 및 텍스트 라인과 관련시키는 모델 데이터를 생성하는 단계
를 포함하는, 상기 텍스트 인식을 수행하는 단계;
- 문서 패턴의 라인 패턴을 준수하도록 자유 핸드라이팅 형식으로부터 구조화된 핸드라이팅 형식으로, 핸드라이팅된 텍스트의 각각의 텍스트 라인을 정규화하는 단계
를 포함하되, 상기 정규화하는 단계는, 각각의 텍스트 라인에 대해,
o 상기 텍스트 라인을 상기 구조화된 핸드라이팅 형식으로 변환하기 위해 상기 텍스트 라인을 위한 각각의 변환 함수를 계산하는 단계;
o 상기 텍스트 라인의 각각의 스트로크를 상기 구조화된 핸드라이팅 형식으로 변환하기 위해 각각의 변환 함수를 적용하는 단계; 및
o 각각의 변환 함수에 기초하여 상기 텍스트 라인의 모델 데이터를 업데이트하는 단계를 포함한다.
특정 실시형태에서, 방법은 상기 텍스트 인식 동안 생성된 모델 데이터를 저장하는 단계를 포함하고,
상기 모델 데이터를 업데이트하는 단계는 상기 텍스트 인식 동안 생성된 모델 데이터 대신에 상기 적어도 하나의 텍스트 블록의 업데이트된 모델 데이터를 저장하는 단계를 더 포함한다.
특정 실시형태에서, 방법은 상기 정규화하는 단계 후에, 상기 구조화된 핸드라이팅 형식으로 상기 적어도 하나의 텍스트 블록의 텍스트 라인을 디스플레이하는 단계를 포함한다.
특정 실시형태에서, 적어도 하나의 텍스트 블록의 모델 데이터는,
- 각각의 문자가 디지털 잉크의 적어도 하나의 스트로크 및 상기 적어도 하나의 텍스트 블록의 텍스트 라인과 관련되는, 복수의 문자를 정의하는 문자 정보;
- 각각의 단어가 문자 정보에 의해 정의된 바와 같은 적어도 하나의 문자와 관련되는, 복수의 단어를 정의하는 단어 정보; 및
- 각각의 텍스트 라인이 단어 정보에 의해 정의된 바와 같은 적어도 하나의 단어와 관련되는, 상기 적어도 하나의 텍스트 블록의 각각의 텍스트 라인을 정의하는 라인 정보를 포함한다.
특정 실시형태에서, 라인 정보는, 상기 적어도 하나의 텍스트 블록의 각각의 텍스트 라인에 대해,
- 텍스트 라인의 원점을 나타내는 원점 좌표;
- 텍스트 라인의 경사를 나타내는 경사 정보; 및
- 텍스트 라인의 높이를 나타내는 높이 정보
를 포함한다.
특정 실시형태에서, 상기 정규화하는 단계 동안 상기 모델 데이터를 업데이트하는 단계는 각각의 변환 함수에 기초하여 상기 텍스트 라인의 라인 정보를 업데이트하는 단계를 포함한다.
특정 실시형태에서, 상기 정규화하는 단계는 각각의 텍스트 라인에 대해,
- 상기 텍스트 라인의 원점 좌표, 경사 정보, 및 높이 정보를 포함하는 입력 파라미터를 결정하는 단계를 포함하며;
각각의 변환 함수는 입력 파라미터 및 문서 패턴에 기초하여 계산된다.
특정 실시형태에서, 문서 패턴은 핸드라이팅된 텍스트에 의해 준수되어야 할 다음의 핸드라이팅 제약 중 적어도 하나를 정의한다:
- 디스플레이 영역의 여백; 및
- 행간 거리.
특정 실시형태에서, 각각의 변환 함수는 상기 정규화하는 단계 동안 각각의 텍스트 라인에 적용될 다음의 변환 컴포넌트 중 적어도 하나를 정의한다:
- 병진 컴포넌트;
- 스케일 컴포넌트; 및
- 회전 컴포넌트.
특정 실시형태에서, 문서 패턴은 가이드라인을 정의하는 상기 라인 패턴을 포함하며, 핸드라이팅된 텍스트는 가이드라인에 따라서 구조화된 핸드라이팅 형식으로 배열되어야 한다.
특정 실시형태에서, 변환 함수의 스케일 컴포넌트는 각각의 텍스트 라인의 높이에 대한 상기 라인 패턴의 2개의 연속적인 가이드라인 사이의 거리의 비율에 기초하여 상기 정규화하는 단계 동안 결정된다.
특정 실시형태에서, 변환 함수의 병진 컴포넌트는 상기 텍스트 라인의 원점이 상기 정규화하는 단계 동안 상기 텍스트 라인에 할당된 라인 패턴의 대응하는 가이드라인과 정렬되기 위해 이동되도록 텍스트 라인의 병진을 수행하기 위해 상기 정규화하는 단계 동안 결정된다.
특정 실시형태에서, 상기 회전 컴포넌트는 문서 패턴에 따라서 그 경사를 0으로 감소시키도록 각각의 텍스트 라인을 회전시키기 위해 상기 정규화하는 단계 동안 결정된다.
특정 실시형태에서, 상기 정규화하는 단계 동안, 각각의 텍스트 라인의 모델 데이터는 상기 각각의 변환 함수를 적용하는 단계로부터 야기될 수 있는 어떠한 텍스트 인식도 차단하면서 각각의 변환 함수에 따라서 업데이트된다.
다른 양태에 따르면, 본 발명은 본 문서에서 정의된 바와 같은 본 발명의 방법의 단계들을 실행하기 위한 명령을 포함하는 컴퓨터 판독 가능 프로그램 코드(또는 컴퓨터 프로그램)를 기록하는 비일시적 컴퓨터 판독 가능 매체에 관한 것이다.
본 발명의 컴퓨터 프로그램은 임의의 프로그래밍 언어로 표현될 수 있고, 부분적으로 준수된 형태, 예를 들어 또는 임의의 다른 적절한 형태이도록 소스 코드, 목적 코드 또는 소스 코드와 목적 코드 사이의 임의의 중간 코드의 형태를 취할 수 있다.
본 발명은 또한 위에서 언급된 바와 같은 컴퓨터 프로그램을 제공한다.
앞서 언급한 비일시적 컴퓨터 판독 가능 매체는 컴퓨터 프로그램을 저장할 수 있는 임의의 개체 또는 디바이스일 수 있다. 예를 들어, 기록 매체는 ROM 메모리(마이크로전자 회로로 구현된 CD-ROM 또는 ROM)와 같은 저장 수단, 또는 예를 들어 플로피 디스크 또는 하드 디스크와 같은 자기 저장 수단을 포함할 수 있다.
본 발명의 비일시적 컴퓨터 판독 가능 매체는 전기 또는 광 케이블을 통해, 또는 라디오 또는 임의의 다른 적절한 수단에 의해 전달될 수 있는 전기 또는 광 신호와 같은 전송 가능한 매체에 대응할 수 있다. 본 개시내용에 따른 컴퓨터 프로그램은 특히 인터넷 또는 이와 유사한 네트워크로부터 다운로드될 수 있다.
대안적으로, 비일시적 컴퓨터 판독 가능 매체는 컴퓨터 프로그램이 탑재되는 집적 회로에 대응할 수 있으며, 회로는 본 발명의 방법을 실행하거나 실행시에 사용되는데 적합하다.
특정 실시형태에서, 본 발명은 그 안에서 구현된 컴퓨터 판독 가능 프로그램 코드를 가지는 비일시적 컴퓨터 판독 가능 매체에 관한 것이며, 상기 컴퓨터 판독 가능 프로그램 코드는 본 문서에 정의된 바와 같은 컴퓨팅 디바이스에서 입력 엘리먼트를 핸드드로잉하기 위한 방법을 구현하도록 실행되는데 적합하며, 컴퓨팅 디바이스는 상기 방법의 단계를 실행하기 위한 프로세서를 포함한다.
본 발명은 또한 본 개시내용에서 정의된 바와 같은 방법을 구현하는데 적합한 컴퓨팅 디바이스에 관한 것이다. 보다 구체적으로, 본 발명은 텍스트를 핸드라이팅하기 위한 컴퓨팅 디바이스를 제공하며, 컴퓨팅 디바이스는,
- 디지털 잉크의 복수의 스트로크를 검출하기 위한 입력 표면으로서, 상기 스트로크는 어떠한 핸드라이팅 제약도 없이 자유 핸드라이팅 형식으로 입력되는, 상기 입력 표면;
- 상기 자유 핸드라이팅 형식으로 상기 복수의 입력 스트로크를 디스플레이하기 위한 디스플레이 디바이스;
- 텍스트 또는 비텍스트로서 각각의 스트로크를 분류하기 위한 분류기로서, 자유 핸드라이팅 형식으로 핸드라이팅된 상기 입력 스트로크로부터 핸드라이팅된 텍스트의 적어도 하나의 텍스트 블록을 텍스트로서 검출하도록 구성되는, 상기 분류기;
- 상기 적어도 하나의 텍스트 블록으로부터 핸드라이팅된 텍스트의 텍스트 라인을 추출하는 라인 추출기;
- 상기 적어도 하나의 텍스트 블록의 각각의 텍스트 라인에 대한 텍스트 인식을 수행하고, 이에 의해 상기 적어도 하나의 텍스트 블록의 문자, 단어 및 텍스트 라인과 상기 적어도 하나의 텍스트 블록의 각각의 스트크로를 관련시키는 모델 데이터를 생성하는 인식 엔진; 및
- 문서 패턴의 라인 패턴을 준수하도록 자유 핸드라이팅 형식으로부터 구조화된 핸드라이팅 형식으로, 핸드라이팅된 텍스트의 각각의 텍스트 라인을 정규화하기 위한 텍스트 편집기
를 포함하되, 상기 텍스트 편집기는 각각의 텍스트 라인에 대해,
o 상기 텍스트 라인을 상기 구조화된 핸드라이팅 형식으로 변환하기 위해 상기 텍스트 라인을 위한 각각의 변환 함수를 계산하는 단계;
o 상기 텍스트 라인의 각각의 스트로크를 상기 구조화된 핸드라이팅 형식으로 변환하기 위해 각각의 변환 함수를 적용하는 단계; 및
o 각각의 변환 함수에 기초하여 상기 텍스트 라인의 모델 데이터를 업데이트하는 단계를 수행하도록 구성된다.
본 발명의 방법과 관련하여 위에서 정의된 다양한 실시형태는 본 개시내용의 컴퓨팅 디바이스, 컴퓨터 프로그램, 및 비일시적 컴퓨터 판독 가능 매체에 유사한 방식으로 적용된다.
본 개시내용에서 정의된 바와 같은 본 발명의 방법의 각각의 단계에 대해, 컴퓨팅 디바이스는 상기 단계를 수행하도록 구성된 대응하는 모듈을 포함할 수 있다.
특정 실시형태에서, 본 개시내용은 소프트웨어 및/또는 하드웨어 컴포넌트를 사용하여 구현될 수 있다. 이러한 맥락에서, "모듈"이라는 용어는 본 개시내용에서 소프트웨어 컴포넌트뿐만 아니라 하드웨어 컴포넌트 또는 복수의 소프트웨어 및/또는 하드웨어 컴포넌트를 지칭할 수 있다.
본 개시내용의 다른 특징 및 이점은 제한 특성을 가지지 않는 실시형태를 도시하는 첨부 도면을 참조하여 이루어진 다음의 설명으로부터 나타날 것이다:
- 도 1a 및 도 1b는 종래의 배열에 따른 디지털 디바이스를 나타내는 도면;
- 도 2는 본 발명의 특정 실시형태에 따른 컴퓨팅 디바이스를 개략적으로 나타내는 블록도;
- 도 3은 본 발명의 특정 실시형태에 따른 정규화 프로세스를 개략적으로 도시한 도면;
- 도 4는 본 발명의 특정 실시형태에 따른, 도 2의 컴퓨팅 디바이스에 의해 구현되는 모듈을 개략적으로 나타내는 블록도;
- 도 5는 본 발명의 특정 실시형태에 따른 방법의 단계를 개략적으로 나타내는 흐름도;
- 도 6 내지 도 8은 본 발명의 특정 실시형태에 따른, 도 2의 컴퓨팅 디바이스에 의해 처리되는 동안의 텍스트 핸드라이팅의 개략도;
- 도 9는 본 발명의 특정 실시형태에 따른, 도 2의 컴퓨팅 디바이스에 의해 생성된 모델 데이터를 개략적으로 도시한 도면;
- 도 10은 본 발명의 특정 실시형태에 따른, 도 2의 컴퓨팅 디바이스에 의해 정규화된 텍스트 핸드라이팅을 개략적으로 나타내며;
- 도 11은 본 발명의 특정 실시형태에 따른, 정규화 프로세스 동안 텍스트 핸드라이팅에 적용되는 편집 동작을 나타내며;
- 도 12는 본 발명의 특정 실시형태에 따른, 정규화 후에 편집된 텍스트 핸드라이팅을 개략적으로 나타낸다.
도면에서의 컴포넌트는 반드시 일정한 축척이 아니며, 대신 본 발명의 원리를 설명하는데 중점을 둔다.
예시의 단순성과 명료성을 위해, 달리 지시되지 않는 한 동일한 도면 부호는 도면 전체에 걸쳐서 동일하거나 유사한 부분을 지시하기 위해 사용될 것이다.
다음의 상세한 설명에서, 관련 교시의 완전한 이해를 제공하기 위해 예로서 다수의 특정 세부사항이 제시된다. 그러나, 본 교시가 이러한 세부사항 없이 실시될 수 있다는 것이 당업자에게 명백해야 한다. 다른 예에서, 널리 공지된진 방법, 절차 및/또는 컴포넌트는 본 교시의 양태를 불필요하게 모호하게 하는 것을 피하기 위해 비교적 높은 수준에서 세부사항은 설명되지 않는다.
예시적인 실시형태의 다음의 설명은 첨부된 도면을 참조한다. 다음의 상세한 설명은 본 발명을 제한하지 않는다. 대신, 본 발명의 범위는 첨부된 청구범위에 의해 한정된다. 도면에 예시된 바와 같은 다양한 실시형태에서, 컴퓨팅 디바이스, 대응하는 방법, 및 대응하는 컴퓨터 프로그램이 논의된다.
본 상세한 설명에서 "텍스트"라는 용어의 사용은 임의의 필기된 언어 및 필기된 텍스트에 사용된 임의의 기호에서, 모든 문자(예를 들어, 영숫자 문자 등), 및 이들의 문자열을 포함하는 것으로서 이해된다.
본 상세한 설명에서 "비텍스트"라는 용어는 자유 핸드라이팅된 또는 핸드드로잉된 콘텐츠(예를 들어, 형상, 그림 등) 및 이미지 데이터뿐만 아니라 문자, 그 문자열, 또는 비텍스트 맥락에서 사용되는 기호를 포함하는 것으로서 이해된다. 비텍스트 콘텐츠는 컨테이너, 그림, 일반적인 형상(예를 들어, 화살표, 블록 등) 등을 포함하여 선형 또는 비선형 구성의 그래픽 또는 기하학적 형식을 정의한다. 예를 들어 도표에서, 텍스트 콘텐츠는 컨테이너로 지칭되는 형상(사각형, 타원, 계란형 등)에 수용될 수 있다.
또한, 이들 도면에 도시된 예는 왼쪽으로부터 오른쪽으로 필기된 언어 맥락에 있으며, 그러므로 위치에 대한 모든 기준은 상이한 방향 형식을 가지는 필기된 언어에 적합할 수 있다.
본 명세서에서 설명된 다양한 기술은 일반적으로 휴대용 및 비휴대용 컴퓨팅 디바이스에서 핸드드로잉 또는 핸드라이팅된 콘텐츠의 캡처, 처리 및 관리에 관한 것이다. 본 명세서에서 설명된 시스템 및 방법은 터치 민감성 스크린(나중에 논의됨)과 같은 입력 표면을 통해 컴퓨팅 디바이스에 입력된 사용자의 자연스러운 필기 및 그리기 스타일의 인식을 이용할 수 있다. 다양한 실시형태가 소위 온라인 인식 기술을 사용하는 디지털 잉크 핸드라이팅 입력의 인식에 대하여 설명되었지만, 인식을 수행하기 위해 원격 디바이스 또는 서버를 포함하는 오프라인 인식과 같은 인식을 위한 다른 형태의 입력에 대한 적용이 가능하다는 것이 이해된다.
"핸드드로잉" 및 "핸드라이팅"이라는 용어는 입력 표면 상에 또는 입력 표면으로 사용자가 손(또는 손가락) 또는 입력 디바이스(휴대용 스타일러스 또는 디지털 펜, 마우스…)의 사용을 통해 디지털 콘텐츠의 생성(핸드라이팅 입력)을 정의하도록 본 명세서에서 교환 가능하게 사용된다. "핸드" 등의 용어는 입력 기술의 간결한 설명을 제공하기 위해 본 명세서에서 사용되며, 그러나, 유사한 입력을 위해 발, 입 및 눈과 같은 사용자 신체의 다른 부분을 사용하는 것이 이러한 정의에 포함된다.
아래에서 더 상세히 설명되는 바와 같이, 본 발명의 양태는 자유 핸드라이팅 형식으로 컴퓨팅 디바이스에 입력되는 디지털 잉크의 텍스트 핸드라이팅을 검출하고, 텍스트 핸드라이팅 입력(또는 입력 텍스트 핸드라이팅)을 나타내는 모델 데이터를 생성하는 것을 포함하는 테스트 인식을 수행하고, 문서 패턴(예를 들어, 문서 패턴의 라인 패턴)을 준수하기 위해 자유 핸드라이팅 형식으로부터 구조화된 핸드라이팅 형식으로 텍스트 핸드라이팅 입력의 각각의 텍스트 라인의 정규화를 수행하는 것에 의지한다. 이러한 정규화는 텍스트 핸드라이팅 입력에 대한 편집 변환(예를 들어, 병진, 회전 및/또는 리스케일링(rescaling))을 수행하여, 이를 구조화된 핸드라이팅 형식으로 변환하는 것을 내포한다. 모델 데이터는 정규화의 목적을 위해 텍스트 핸드라이팅 입력에 적용된 편집 변환에 따라서 또한 업데이트된다. 즉, 정규화를 수행할 때 텍스트 핸드라이팅 입력의 각각의 텍스트 라인에 적용된 변환 함수는 텍스트 라인의 모델 데이터를 업데이트하는 기준으로서 또한 사용된다. 특정 실시형태에서 다음에 설명되는 바와 같이, 모델 데이터는 텍스트 핸드라이팅 입력의 각각의 문자, 각각의 단어, 및 각각의 텍스트 라인과의 텍스트 핸드라이팅 입력의 각각의 스트로크 사이의 상관 관계를 한정한다.
정규화 프로세스의 일부로서 모델 데이터를 업데이트하는 것에 의해, 디지털 잉크의 텍스트 핸드라이팅 입력은 제약 없는 환경(자유 핸드라이팅 형식에서)으로부터 형식화된 환경(구조화된 핸드라이팅 형식에서)으로 효율적으로 변환될 수 있으며, 이에 의해 보다 양호한 디스플레이, 보다 신뢰 가능한 텍스트 인식 및 텍스트 핸드라이팅 입력 편집과 같은 보다 광범위한 조작을 가능하게 한다. 다음에 추가로 설명되는 바와 같이, 정규화 프로세스가 입력 잉크의 수정으로 이어질지라도, 임의의 이전의 텍스트 인식 상태는 보전된다. 이러한 것은 텍스트 핸드라이팅 입력과 모델 데이터가 동일한 변환을 사용하여 업데이트되기 때문에 달성될 수 있다.
본 발명에서, 정규화를 거친 각각의 텍스트 라인은 핸드라이팅된 텍스트의 텍스트 라인이다. 아래에서 추가로 설명하는 바와 같이, 일부 변환이 정규화 프로세스의 일부로서 이러한 핸드라이팅된 텍스트 라인에 적용될지라도, 이러한 텍스트 라인(즉, 정규화된 텍스트 라인)은 일단 정규화되면 여전히 핸드라이팅된 텍스트 라인, 즉 텍스트 라인으로서 배열되지만 정규화된 방식(예를 들어 입력 스트로크에 의해 형성된 핸드라이팅을 구성하지 않는 조판 콘텐츠와 대조되는)으로 배열된 핸드라이팅이다. 다음에 추가로 설명되는 바와 같이, 핸드라이팅된 텍스트의 각각의 텍스트 라인의 스트로크는 대응하는 핸드라이팅된 텍스트 라인을 정규화된 핸드라이팅 텍스트 라인으로 변환하는 변환을 정의하는 변환 함수를 따른다.
도 2는 본 발명의 특정 실시형태에 따른 컴퓨팅 디바이스(100)의 블록도를 도시한다. 컴퓨팅 디바이스(또는 디지털 디바이스)(100)는 컴퓨터 데스크 톱, 랩톱 컴퓨터, 태블릿 컴퓨터, 전자책 리더, 모바일 폰, 스마트폰, 웨어러블 컴퓨터, 디지털 손목시계, 대화형 화이트보드, 글로벌 포지셔닝 시스템(GPS) 유닛, 회사 정보 단말기(EDA), 개인 정보 단말기(PDA), 게임 콘솔 등일 수 있다. 컴퓨팅 디바이스(100)는 적어도 하나의 처리 소자의 컴포넌트, 일부 형태의 메모리, 및 입력 및/또는 출력(I/O) 디바이스를 포함한다. 컴포넌트는 커넥터, 라인, 버스, 링크 네트워크, 또는 당업자에게 공지된 것과 같은 입력 및 출력을 통해 서로 통신한다.
보다 구체적으로, 컴퓨팅 디바이스(100)는 다음에 더 설명되는 바와 같이 텍스트 및 비텍스트 엘리먼트를 포함하는 입력 엘리먼트를 핸드드로잉(또는 핸드라이팅)하기 위한 입력 표면(104)을 포함한다. 보다 구체적으로, 입력 표면(104)은 상기 입력 표면 상에 입력된 디지털 잉크의 복수의 입력 스트로크를 검출하는데 적합하다. 또한 다음에 더 논의되는 바와 같이, 이러한 입력 스트로크는 자유 핸드라이팅 형식(또는 자유 핸드라이팅 모드)으로, 즉 입력 영역에서의 위치, 크기 및 배향의 어떠한 핸드라이팅 제약도 없이 입력될 수 있다.
입력 표면(104)은 저항성, 표면 탄성파, 용량성, 적외선 그리드, 적외선 아크릴 투영, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 또는 터치 또는 근접 민감성 표면의 형태를 하는 사용자 입력을 수신하기 위해 당업자에게 공지된 바와 같은 임의의 다른 적절한 기술과 같은 기술을 이용할 수 있다. 입력 표면(104)은 위치 검출 시스템에 의해 모니터링되는 비터치 민감성 표면일 수 있다.
컴퓨팅 디바이스(100)는 또한 이미지, 텍스트 및 비디오와 같은 컴퓨팅 디바이스로부터 데이터를 출력하기 위한 적어도 하나의 디스플레이 디바이스(또는 디스플레이)(102)를 포함한다. 디스플레이 디바이스(102)는 임의의 적절한 기술(LCD, 플라즈마…)의 스크린 등일 수 있다. 다음에 추가로 설명되는 바와 같이, 디스플레이 디바이스(102)는 디지털 잉크로 입력 엘리먼트를 디스플레이하는데 적합하며, 각각의 입력 엘리먼트는 디지털 잉크의 적어도 하나의 스트로크로 형성된다. 특히, 디스플레이 디바이스(102)는 예를 들어 위에서 언급된 자유 핸드라이팅 형식으로 입력 표면(104)을 이용하여 입력된 복수의 스트로크를 디스플레이할 수 있다.
입력 표면(104)은 디스플레이 디바이스(102)와 동일 위치에 있거나 또는 이에 원격으로 연결될 수 있다. 특정 예에서, 디스플레이 디바이스(102) 및 입력 표면(104)은 터치스크린의 일부이다.
도 2에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 프로세서(106) 및 메모리(108)를 더 포함한다. 컴퓨팅 디바이스(100)는 또한 메모리(108)의 일부로서 또는 이와 분리된 하나 이상의 휘발성 저장 소자(RAM)를 포함할 수 있다.
프로세서(106)는 소프트웨어, 특히 메모리(108)에 저장된 소프트웨어를 실행하기 위한 하드웨어 디바이스이다. 프로세서(108)는 임의의 고객 맞춤형 또는 상업적으로 입수 가능한 범용 프로세서, 중앙 처리 유닛(CPU), 반도체 기반 마이크로프로세서(마이크로칩 또는 칩셋의 형태를 하는), 마이크로제어기, 디지털 신호 프로세서(DSP), 주문형 집적회로(ASIC), 필드 프로그램 가능 게이트 어레이(FPGA) 또는 다른 프로그램 가능 로직 디바이스, 또는 그 임의의 조합, 및 보다 일반적으로 당업자에게 공지된 바와 같은 소프트웨어 명령을 실행하기 위해 설계된 임의의 적절한 프로세서 컴포넌트일 수 있다.
메모리(108)는 본 개시내용의 특정 실시형태에 따른 비일시적(또는 비휘발성) 컴퓨터 판독 가능 매체(또는 기록 매체)를 구성(또는 포함)한다. 메모리(108)는 비휘발성 저장 소자(예를 들어, ROM, EPROM, 플래시 PROM, EEPROM, 하드 드라이브, 자기 또는 광학 테이프, 메모리 레지스터, CD-ROM, WORM, DVD 등)의 임의의 조합을 포함할 수 있다.
메모리(108)는 컴퓨팅 디바이스(100)에 의해 원격으로 액세스 가능한 서버 또는 클라우드 기반 시스템에서와 같이 컴퓨팅 디바이스(100)로부터 원격에 있을 수 있다. 비휘발성 메모리(108)는 프로세서(106)가 메모리(108)로부터 정보를 읽고 메모리에 정보를 기록할 수 있도록 프로세서(106)에 결합될 수 있다. 대안으로서, 메모리(108)는 컴퓨팅 디바이스(100)에 통합된다.
메모리(108)는 운영 체제(OS)(110) 및 핸드라이팅 애플리케이션(또는 컴퓨터 프로그램)(112)을 포함한다. 운영 체제(110)는 애플리케이션(112)의 실행을 제어한다. 애플리케이션(112)은 본 발명의 특정 실시형태에 따른 컴퓨터 프로그램(또는 컴퓨터 판독 가능 프로그램 코드)을 구성(또는 포함)하며, 이러한 컴퓨터 프로그램은 본 발명의 특정 실시형태에 따른 방법을 구현하기 위한 명령을 포함한다.
애플리케이션(112)은 컴퓨팅 디바이스(100)의 입력 표면(104)을 사용하여 사용자에 의해 핸드라이팅된 잉크 입력 엘리먼트를 검출 및 관리하기 위한 명령을 포함할 수 있다. 추후에 논의되는 바와 같이, 텍스트 또는 비텍스트일 수 있는 핸드라이팅된 잉크 입력 엘리먼트(또한 핸드라이팅 입력으로 지칭되는)는 디지털 잉크의 하나 또는 다수의 스트로크로 구성된다.
애플리케이션(112)은 핸드라이팅된 텍스트 및 비텍스트를 포함하는, 컴퓨팅 디바이스(100)에 대한 핸드라이팅 입력을 인식하기 위한 핸드라이팅 인식(HWR) 모듈(또는 시스템)(114)을 포함할 수 있다. HWR(114)은 소스 프로그램, 실행 가능한 프로그램(목적 코드), 스크립트, 애플리케이션, 또는 수행될 명령의 세트를 가지는 임의의 다른 컴포넌트일 수 있다. 도 2에 도시된 본 예에서, 애플리케이션(112) 및 HWR 모듈(114)은 단일 애플리케이션에서 조합된다(HWR 모듈(114)은 애플리케이션(112)의 일부이다). 대안적으로, HWR 모듈(114)은 적절한 통신 링크를 통해 컴퓨팅 디바이스(100)에 의해 원격으로 액세스 가능한 도 2에 도시된 바와 같은 서버(또는 클라우드 기반 시스템)(SV1)과 같은, 컴퓨팅 디바이스(100)로부터 원격에 있는 핸드라이팅 인식 시스템과 통신하기 위한 모듈, 방법 또는 시스템일 수 있다. 애플리케이션(112) 및 HWR 모듈(114)은 또한 컴퓨팅 디바이스(100)의 메모리(108)(또는 상이한 메모리들)에 저장된 별개의 컴포넌트일 수 있고, 이에 의해, 애플리케이션(112) 및 HWR 모듈(114)은 메모리(108)에서 처리되고 저장된 정보에 액세스하여 함께 동작한다.
도면에서 나중에 도시된 바와 같이, 입력 표면(104) 상에 또는 이를 통해 입력된 입력 스트로크는 프로세서(106)에 의해 디지털 잉크로서 처리된다. 디지털 잉크가 이 경우에 디스플레이 디바이스(102)에서 디지털 이미지 형식으로 핸드라이팅 입력을 만드는 것에 의해 형성된다.
사용자는 손이나 손가락, 또는 입력 표면(104)과 함께 사용하기에 적합한 디지털 펜이나 스타일러스와 같은 일부 입력 도구를 이용하여 입력 스트로크를 입력할 수 있다. 사용자는 또한 입력 표면(104) 부근에서 움직임을 감지하도록 구성된 수단이 사용되는 경우 입력 표면(104) 위에서 제스처를 만드는 것에 의해, 또는 마우스 또는 조이스틱 등과 같은 컴퓨팅 디바이스(100)의 주변 장치를 이용하여 입력 스트로크를 입력할 수 있다.
각각의 잉크 입력 엘리먼트(문자, 기호, 단어, 형상 등)는 하나 또는 복수의 이러한 입력 스트로크 또는 스트로크의 적어도 일부에 의해 형성된다. 스트로크(또는 입력 스트로크)는 적어도 스트로크 시작 위치("펜 다운" 이벤트에 대응하는), 스트로크 종점 위치("펜 업" 이벤트에 대응하는), 및 스트로크 시작 및 스트로크 종점 위치들을 연결하는 경로를 특징으로 한다. 상이한 사용자들이 약간의 변형으로 동일한 개체(예를 들어, 문자, 형상, 기호 등)를 자연스럽게 필기하거나 또는 핸드드로잉할 수 있기 때문에, HWR 모듈(114)은 각각의 개체가 정확하거나 의도된 개체로서 인식되는 동안 입력될 수 있는 다양한 방식을 수용한다.
핸드라이팅 애플리케이션(112)은 디지털 잉크 형태로 핸드라이팅되거나 또는 핸드드로잉된 콘텐츠(예를 들어, 텍스트, 도표, 차트, 형상, 그림 또는 임의의 종류의 텍스트 및/또는 비텍스트 핸드라이팅 입력)를 생성하고, 이러한 콘텐츠가 HWR 모듈(114)을 사용하여 정확히 인식되게 한다.
본 예에서, 메모리(108)는 또한 입력 표면(104)을 이용하여 컴퓨팅 디바이스(102) 상에서의 사용자로부터의 텍스트 핸드라이팅 입력을 나타내는 모델 문서를 정의하는 모델 데이터(DT)를 저장하는데 적합하다. 이러한 모델 데이터(DT)의 특성 및 용도는 다음에 더 상세히 논의될 것이다.
도 3에 도시된 바와 같이, 본 실시형태에서, 컴퓨팅 디바이스(100)는 자유 핸드라이팅 형식(또는 자유 핸드라이팅 모드)(FT1)에서, 즉 사용자에 대한 어떠한 핸드라이팅 제약도 없이 입력 표면(104)을 이용하여 입력되는 핸드라이팅 입력(IN)을 검출하도록 구성된다. 자유 핸드라이팅 모드는 구조화되지 않거나 가이드되지 않은 방식으로, 즉 텍스트 핸드라이팅 입력의 위치, 크기 및 배향의 어떠한 핸드라이팅 제약도 없이(따라야 할 라인 패턴이 없고, 크기나 배향에 대한 제한이 없고, 라인 사이, 여백 등의 제약이 없이), 사용자가 자유 환경(예를 들어, 공백 구역(Z1))에서 입력 엘리먼트(IN)를 핸드라이팅하는 것을 허용한다. 이러한 자유 핸드라이팅 모드(FT1)는 핸드라이팅 입력 동안 사용자에게 완전한 자유를 제공하며. 이러한 것은 예를 들어 빠르고 다양한 메모를 하거나 텍스트와 비텍스트의 혼합된 입력을 위해 때때로 필요하다.
입력 표면(104)에 의해 검출되고 디스플레이 디바이스(102)에 의해 디스플레이되는 핸드라이팅 입력(IN)은 디지털 잉크의 복수의 입력 스트로크에 의해 형성된다.
도 3에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 텍스트로서 핸드라이팅 입력(IN)을 형성하는 입력 스트로크를 분류하고, 그러므로 핸드라이팅 입력(IN)을 텍스트 블록(BL1)으로서 인식할 수 있다.
컴퓨팅 디바이스(100)는 인식된 텍스트 블록(BL1)에 대해 정규화 프로세스를 수행하고, 이에 의해 문서 패턴(200)(예를 들어 문서 패턴(200)의 라인 패턴)을 준수하도록 자유 핸드라이팅 형식(FT1)으로부터 구조화된 형식(또는 구조화된 모드)로 지칭되는 구조화된 핸드라이팅 형식(또는 구조화된 핸드라이팅 모드)(FT2)로 텍스트 블록(BL1)을 변환하도록 구성된다. 문서 패턴은 텍스트 핸드라이팅 입력(IN)이 본 개시내용에서 디스플레이 디바이스(102)에 어떻게 배열되고 디스플레이되어야 하는지에 대한 기하학적 제약을 정의하는 것으로서 이해된다. 문서 패턴(200)은 구조화된 방식, 즉 구조화된 핸드라이팅 형식(FT2)으로 핸드라이팅 입력(IN)(이 경우에 텍스트 블록(BL1))을 수신하기 위한 구조화된(또는 형식화된) 환경을 구성한다.
문서 패턴(200)은 핸드라이팅이 구조적으로 어떻게 배열되는지를 정의한다는 점에 유의해야 한다.
문서 패턴은 텍스트에 의해 준수되어야 할 다음의 핸드라이팅 제약 중 적어도 하나를 정의할 수 있다:
- 디스플레이 영역의 여백;
- 라인 패턴; 및
- 행간 거리.
특히, 문서 패턴(200)은 라인 패턴, 가능하게는 디스플레이 영역의 여백 및 행간 거리 중 적어도 하나를 정의할 수 있다.
도 3에 도시된 본 예에서, 문서 패턴(200)은 복수의 가이드라인(가이드라인 또는 기준선이라고도 함)(202)을 정의하는 라인 패턴을 포함하며, 가이드라인에 따라서, 핸드라이팅 텍스트(즉, 텍스트 블록(BL1)의 콘텐츠)는 구조화된 핸드라이팅 형식(FT2)에 따라서 배열되는 것이다. 문서 패턴(202)은 각각의 쌍의 연속적인 가이드라인 사이의 사전 결정된 행간 거리(d1)를 정의할 수 있으며, 이에 의해 구조화된 핸드라이팅 형식(FT2)으로 핸드라이팅 텍스트에 대한 크기 제약을 부과할 수 있다. 문서 패턴(202)은 또한 구조화된 형식(FT2)에서 텍스트 블록(BL1)의 각각의 텍스트 라인의 최대 길이를 부과하는 사전 결정된 라인 길이(d2)를 정의할 수 있다. 문서 패턴(200)을 기반으로 하는 이러한 구조화된 형식(FT2)은 단지 구현의 예를 구성한다는 것을 이해해야 한다. 다른 문서 패턴이 당업자에 의해 고려될 수 있다.
특정 실시형태에 따른 도 4에 도시된 바와 같이, 메모리(108)(도 2)에 저장된 애플리케이션(112)을 실행할 때, 프로세서(106)는 다수의 처리 모듈, 즉 분류기(MD2), 라인 추출기(MD4), 인식 엔진(MD6), 및 편집 모듈(MD8)을 구현한다. 애플리케이션(112)은 특정 실시형태에서 나중에 설명되는 바와 같이 본 발명의 방법의 단계를 수행하기 위해 이러한 모듈을 구현하도록 프로세서를 구성하는 명령을 포함한다.
분류기(MD2)는 입력 표면(104)에 의해 검출된 각각의 입력 스트로크(또는 입력 스트로크의 임의의 세트 또는 조합)을 텍스트 또는 비텍스트로서 분류하도록 구성된다. 특히, 다음에 추가로 설명되는 바와 같이, 분류기(MD2)는 입력 표면(104)을 이용하여 자유 핸드라이팅 형식(FT1)으로 입력된 입력 스트로크의 적어도 하나의 텍스트 블록(BL1)을 텍스트로서 검출하도록 구성될 수 있다.
이를 위해, 분류기(또는 분류 모듈)(MD2)는 사용자에 의해 입력된 입력 디지털 잉크에서 텍스트와 비텍스트 콘텐츠를 구별하기 위한 명확화 프로세스(disambiguation process)를 수행할 수 있다. 명확화 프로세스는 당업자에게 공지된 임의의 방식으로 수행될 수 있다. 예시적인 구현은 미국 특허 출원 공개2017/0109578 A1에 설명되어 있다.
명확화 프로세스의 예로서, 분류기(MD2)는 스트로크가 비텍스트 엘리먼트 또는 텍스트 엘리먼트에 속할 수 있는 가설을 구축하기 위해 공간적 및 시간적 고려 사항을 사용하여 스트로크를 그룹화할 수 있다. 공간적 고려 사항은 스트로크 사이의 거리, 스트로크의 기하학적 형상, 스트로크의 중첩, 스트로크의 상대적 위치 등을 포함할 수 있다. 시간적 고려 사항은 스트로크 입력의 시간 순서를 포함할 수 있다. 확률 점수는 충분히 높은 점수(임계값 이상)를 가진 가설만이 유지되도록 계산될 수 있다. 이어서, 스트로크의 각각의 그룹에 대한 특징은 형상 및 텍스트 언어 모델을 고려하여 추출된다. 특징은 분리 거리, 스트로크 내의 방향에서의 변화, 중첩, 스트로크 패턴의 방향, 곡률 등을 포함할 수 있다. 이어서, 스트로크는 이들 가설 내의 스트로크의 그룹 및 이들 그룹 내에서 스트로크의 공간적 및 시간적 정보의 추출된 특징을 포함하는 모든 수집된 정보에 기초하여 가설을 테스트하는 것에 의해 텍스트 및 비텍스트로 분류기(MD2)에 의해 분류될 수 있다. 이미 언급된 바와 같이, 비텍스트/텍스트 구별의 다른 기술이 고려될 수 있다.
다른 예에서, 텍스트 핸드라이팅이 입력 표면(104)을 이용하여 직접 검출되도록, 텍스트만이 핸드라이팅 입력으로서 컴퓨팅 디바이스(100)에 의해 수신됨에 따라서, 텍스트/비텍스트로서의 분류는 필요하지 않다.
라인 추출기(또는 라인 추출 모듈)(MD4)는 분류기(MD2)에 의해 검출된 입력 스트로크의 텍스트 블록(BL1)으로부터 텍스트 라인(LN)을 추출하도록 구성된다. 즉, 라인 추출기(MD4)는 텍스트 블록(BL1)을 총체적으로 형성하는 별개의 텍스트 라인(LN)을 식별할 수 있다(그러므로, 텍스트 블록(BL1)은 다수의 텍스트 라인(LN)으로 분할된다). 다음에 추가로 설명되는 바와 같이, 이러한 라인 추출은 텍스트 인식 프로세스의 일부로서 수행될 수 있다. 특정 예에서, 라인 추출기(MD4) 및 인식 엔진(MD6)은 함께 단일 모듈을 형성한다.
인식 엔진(또는 인식 모듈)(MD6)은 분류기(MD2)에 의해 추출된 바와 같은 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)에 대해 텍스트 인식을 수행하도록 구성된다. 텍스트 인식은 예를 들어 확률 점수를 이용하여 엘리먼트 후보(element candidates)(또는 가설)의 목록을 생성하고, 최상의 인식 결과를 찾도록 엘리먼트 후보에 언어 모델(어휘, 문법, 의미론 등)을 적용하는 것을 포함하는 당업자에게 공지된 임의의 적절한 기술을 사용하여 수행될 수 있다. 얼마나 자주 엘리먼트의 주어진 시퀀스가 지정된 언어로 나타나는지 또는 특정 사용자에 의해 사용되는지에 대한 통계적 정보 모델링은 인식 엔진(MD6)에 의해 생성된 해석 결과의 가능성을 평가하기 위해 또한 고려될 수 있다. 그러나, 본 개시내용을 불필요하게 모호하게 하는 것을 피하기 위해 추가의 세부사항은 제공되지 않는다. 핸드라이팅 인식을 구현하는 예는 예를 들어 미국 특허 공개 제2017/0109578 A1호에서 찾을 수 있다.
본 실시형태에서, 텍스트 인식을 수행하는 동안, 인식 엔진(MD6)은 텍스트 블록(BL1)의 각각의 입력 스트로크를 텍스트 블록(BL1)의 고유 문자, 고유 단어 및 고유 텍스트 라인과 관련시키는 모델 데이터(DT)를 생성하도록 구성된다. 다음에 추가로 설명되는 바와 같이, 모델 데이터(DT)는 텍스트 핸드라이팅 입력의 대응하는 문자, 대응하는 단어, 및 대응하는 텍스트 라인과, 텍스트 핸드라이팅 입력의 각각의 스트로크 사이의 상관 관계(또는 링크 또는 참조)를 정의한다.
편집 모듈(또는 텍스트 편집기)(MD8)는 (도 3에 도시된 바와 같이) 문서 패턴(200)에 준수하도록 위에서 언급된 자유 핸드라이팅 형식(FT1)으로부터 구조화된 형식(FT2)으로 각각의 텍스트 라인(LN)을 정규화하도록 구성된다. 다음에 추가로 설명되는 바와 같이, 이러한 정규화 동안, 편집 모듈(MD8)은 각각의 텍스트 라인(LN)에 대해,
- 문서 패턴(200)(예를 들어, 문서 패턴(200)의 라인 패턴)을 준수하도록 상기 텍스트 라인(LN)을 구조화된 형식(FT2)으로 변환하기 위해 상기 텍스트 라인(LN)을 위한 각각의 변환 함수를 계산하는 단계;
- 상기 텍스트 라인(LN)의 각각의 입력 스트로크를 구조화된 형식(FT2)로 변환하기 위해 각각의 변환 함수를 적용하는 단계; 및
- 각각의 변환 함수에 기초하여 모델 데이터(DT)(보다 구체적으로 상기 텍스트 라인(LN)과 관련된 모델 데이터(DT))를 업데이트하는 단계를 수행하도록 구성될 수 있다.
즉, 텍스트 블록(BL1)을 정규화할 때, 편집 모듈(BL1)은 텍스트 블록(BL1)을 자유 핸드라이팅 형식(FT1)으로부터 구조 핸드라이팅 형식(FT2)으로 라인 단위로 변환한다. 편집 모듈(BL1)에 의해 정규화되면, 일부 변환이 정규화 프로세스의 일부로서 핸드라이팅을 형성하는 스트로크에 적용되더라도, 정규화된 콘텐츠는 여전히 본래 핸드라이팅(입력 스트로크에 의해 형성된)이다.
정규화가 수행되었으면, 디스플레이 디바이스(102)는 구조화된 형식(FT2)으로 텍스트 블록(BL1)을 디스플레이하도록 구성될 수 있다. 편집 모듈(MD8)은 또한 구조화된 형식(FT2)으로 텍스트 블록(BL1)에 대한 추가 편집을 수행하도록 구성될 수 있다.
컴퓨팅 디바이스(100)의 모듈(MD2-MD8)의 구성 및 동작은 도면을 참조하여 다음에 설명되는 특정 실시형태에서 더 명백해질 것이다. 도 4에 도시된 바와 같은 모듈(MD2-MD6)은 본 발명의 예시적인 실시형태만을 나타내고, 다른 구현이 가능하다는 것을 이해해야 한다.
본 발명의 방법의 각각의 단계를 위해, 컴퓨팅 디바이스는 상기 단계를 수행하도록 구성된 대응하는 모듈을 포함할 수 있다. 이러한 단계 중 적어도 2개는 단일 모듈의 일부로 수행될 수 있다.
이제 도 2 내지 도 4에 도시된 컴퓨팅 디바이스(100)에 의해 구현되는 방법이 본 발명의 특정 실시형태에 따라서 도 5 내지 도 12를 참조하여 설명된다. 보다 구체적으로, 컴퓨팅 디바이스(100)는 메모리(108)에 저장된 애플리케이션(112)을 실행하는 것에 의해 이 방법을 구현한다.
사용자가 컴퓨팅 디바이스(100) 상에서 도 6에 도시된 바와 같이 핸드라이팅 입력(IN)을 입력하는 예시적인 시나리오가 고려된다. 이어서, 후술하는 바와 같이 핸드라이팅 입력(IN)에 대한 정규화 프로세스를 포함하는 처리가 다음 컴퓨팅 디바이스(100)에 의해 수행된다.
보다 구체적으로, 검출 단계(S2)에서, 컴퓨팅 디바이스(100)는 컴퓨팅 디바이스(100)의 입력 표면(104)을 이용하여 사용자에 의해 입력된 핸드라이팅 입력(IN)을 검출한다. 도 6에 도시된 바와 같이, 핸드라이팅 입력(IN)은 입력 표면(104)을 이용하여 사용자에 의해 형성된 디지털 잉크의 복수의 입력 스트로크(ST)를 포함한다. 예를 들어, 문자 "This"의 제1 문자열은 입력 스트로크(ST1, ST2, ST3 및 ST4)에 의해 형성된다. 이미 표시된 바와 같이, 각각의 입력 스트로크(ST)는 적어도 스트로크 시작 위치, 스트로크 종점 위치, 및 스트로크 시작과 스트로크 종점 위치를 연결하는 경로를 특징으로 한다. 따라서, 예를 들어 문자 "i"(단어 "This"에 있는)의 상단에 위치된 점은 그 자체로 단일 스트로크(ST4)를 구성한다.
본 예에서, 핸드라이팅 디지털 잉크(IN)는 앞서 설명된 바와 같이(도 3) 자유 핸드라이팅 형식(FT1)으로, 즉 디스플레이(102)의 사전 결정된 입력 영역에서 어떠한 핸드라이팅 제약도 없이 입력된다. 준수를 위해 라인, 크기, 배향의 제약 없이, 사용자는 자유롭고 용이한 방식으로 콘텐츠(IN)를 핸드라이팅하도록 허용된다. 알 수 있는 바와 같이, 각각의 핸드라이팅된 문자 또는 핸드라이팅된 단어의 크기, 배향 및 위치는 사용자의 선호에 의존하여 임의로 변경될 수 있다. 핸드라이팅 입력(IN)이 실질적으로 평행한 라인을 따라서 도 6에 도시되었을지라도, 핸드라이팅 입력(IN)은 다양한 라인 배향을 따라서 배열될 수 있다.
도 7에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 자유 핸드라이팅 형식(또는 모드)(FT1)에 따라서 디스플레이 디바이스(102)에서 핸드라이팅 입력(IN)의 복수의 입력 스트로크(ST)를 디스플레이한다(S4).
분류 단계(S6)에서, 컴퓨팅 디바이스(100)는 자유 핸드라이팅 형식(FT1)으로 검출된 각각의 입력 스트로크(ST)을 텍스트 또는 비텍스트로서 분류한다. 이러한 목적을 위해, 컴퓨팅 디바이스(100)의 분류기(MD6)는 임의의 적절한 방식으로 앞서 설명된 바와 같은 명확화 프로세스를 수행할 수 있다.
단순화를 위해, 본 예에서는 컴퓨팅 디바이스(100)에 의해 검출된 전체 핸드라이팅 입력(IN)이 텍스트(즉, 핸드라이팅된 텍스트)인 것으로 가정한다. 따라서, 분류 단계(S6) 동안, 컴퓨팅 디바이스(100)는 자유 핸드라이팅 형식(FT1)으로 입력된 입력 스트로크(ST)에 의해 형성된 핸드라이팅된 텍스트의 텍스트 블록(BL1)을 텍스트로서 검출한다. 본 발명의 개념이 핸드라이팅 입력(IN)에서 컴퓨팅 디바이스(100)에 의해 검출된 핸드라이팅된 텍스트의 다중 텍스트 블록과 동일한 방식으로 적용될지라도, 핸드라이팅된 텍스트의 단일 텍스트 블록(BL1)이 단순성을 위해 본 예에서 컴퓨팅 디바이스(100)에 의해 검출된다는 점에 유의해야 한다.
도 8에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 이어서 텍스트 블록(BL1)에 대한 텍스트 인식을 수행한다(S8). 텍스트 인식(S8) 동안, 컴퓨팅 디바이스(100)는 임의의 적절한 언어에 따라서 문자(CH)(또는 기호)뿐만 아니라 단어(WD)(도 8)와 같은 사전 한정된 인식 가능한 텍스트 엘리먼트를 인식하기 위해 입력 스트로크(ST)의 다양한 특징을 분석한다. 이미 언급한 바와 같이, 텍스트 인식은 예를 들어 확률 점수를 이용하여 엘리먼트 후보(또는 가설)의 목록을 생성하고 가장 적합한 후보를 선택하기 위해 엘리먼트 후보에 대해 언어 모델(어휘, 문법, 의미 등)을 적용하는 것을 포함하여 당업자에게 공지된 임의의 적절한 기술을 사용하여 수행될 수 있다. 이를 위해, 인식 엔진(MD6)은 사전 한정된 문자를 식별하기 위해 각각의 텍스트 라인(LN)의 콘텐츠를 구문 분석하고(parse) 분석하기 위해 임의의 적절한 언어 정보를 사용할 수 있다.
텍스트 인식(S8)은 후술하는 두 단계, 즉 라인 추출 단계(S10)와 생성 단계(S12)를 포함한다.
보다 구체적으로, 텍스트 인식(S8) 동안, 컴퓨팅 디바이스(100)는 텍스트 블록(BL1)으로부터 핸드라이팅된 텍스트의 텍스트 라인(LN)을 추출하기 위해 라인 추출을 수행한다(S10). 본 예에서, 컴퓨팅 디바이스(100)는 텍스트 블록(BL1)을 5개의 구별되는 텍스트 라인(LN1-LN5)으로 분할한다. 라인 추출은 텍스트/비텍스트 분류(S6) 동안 검출된 텍스트 블록(BL1)의 스트로크(ST)(또는 스트로크(ST)의 세트)의 기하학적 분석에 기초하여 라인 추출기(MD4)에 의해 수행될 수 있다. 텍스트 분석에 기초하여, 라인 추출기(MD4)는 각각의 입력 스트로크(ST)가 어느 텍스트 라인에 속하는지를 결정할 수 있다. 당업자는 자유 핸드라이팅 모드에서 입력된 텍스트 블록 내의 텍스트 라인의 식별을 가능하게 하도록 임의의 적절한 기술을 구현할 수 있다.
여전히 텍스트 인식(S8) 동안, 컴퓨팅 디바이스(100)는 텍스트 블록(BL1)의 각각의 스트로크(ST)를 텍스트 블록(BL1)의 고유 문자(CH), 고유 단어(WD) 및 고유 텍스트 라인(LN)과 관련시키는 모델 데이터(DT)를 또한 생성한다(S12).
모델 데이터(DT)는 텍스트 블록(BL1)의 문서 모델(대화형 텍스트 모델로도 지칭됨)을 정의한다. 각각의 텍스트 라인(LN)은 이러한 문서 모델에 따라서 구성된다. 나중에 보여지는 바와 같이, 텍스트 블록(BL1)을 편집할 때 잉크 상호 작용성이 나중에 달성될 수 있다는 것은 이러한 상관 관계를 설정하는 것에 의한 것이다. 예를 들어, 텍스트 블록(BL1)에서 단어(WD)를 소거하는 것은 모델 데이터(DT)에 따라서 이러한 단어(WD)에 대해 참조된 모든 구성 문자(CH)를 또한 컴퓨팅 디바이스(100)가 소거하게 한다.
본 예에서, 모델 데이터(DT)는 문자 정보, 단어 정보, 및 라인 정보의 3가지 카테고리를 포함한다. 임의의 적절한 방식으로 조직될 수 있는 모델 데이터(예를 들어, 관계 트리 또는 참조 트리로서)는 각각의 스트로크(ST)(또는 스트로크의 각각의 부분)를 고유 문자(CH)에, 각각의 문자(CH)를 고유 단어(WD)에, 각각의 단어(WD)를 고유 텍스트 라인(LN)에 링크하는 상호 참조를 정의하며, 이에 의해 텍스트 인식(S8)에서 검출된 바와 같은 스트로크(ST)(또는 스트로크의 일부), 문자(CH), 단어(WD) 및 텍스트 라인(LN) 사이의 상관 관계를 확립한다. 그 결과, 디지털 잉크는 구조화되고, 상호 작용 잉크를 형성하도록 모델 데이터(DT)와 관련된다.
보다 구체적으로, 특정 예에 따라서 도 9에 도시된 바와 같이, 텍스트 블록(BL1)의 모델 데이터(DT)는,
- 각각의 문자(CH)가 디지털 잉크의 적어도 하나의 스트로크(ST)(또는 스트로크(ST)의 적어도 일부) 및 텍스트 블록(BL1)의 텍스트 라인(LN)과 관련되는 복수의 문자(CH)를 정의하는 문자 정보(220);
- 각각의 단어(WD)가 문자 정보(220)에 의해 정의된 바와 같은 적어도 하나의 문자(CH)와 관련되는 복수의 단어(WD)를 정의하는 단어 정보(222); 및
- 각각의 텍스트 라인(LN)이 단어 정보(222)에 의해 정의된 바와 같은 적어도 하나의 단어(WD)(또는 단어의 일부)와 관련되는, 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)을 정의하는 라인 정보(224)를 포함할 수 있다.
문자(CH)는 단일 입력 스트로크(ST), 복수의 입력 스트로크(ST), 또는 하나 이상의 입력 스트로크(ST)의 일부에 의해 형성될 수 있다는 점에 유의해야 한다. 문자 정보(220)는 고유 문자(CH)와 스트로크(ST)의 각 부분의 링크를 나타낸다. 예를 들어, 도 6에 도시된 바와 같이, 텍스트 인식(S10) 동안 컴퓨팅 디바이스(100)에 의해 인식된 문자(CH2, CH3, CH4)는 스트로크(ST3)의 부분(ST31, ST32, ST33)에 의해 부분적으로 또는 전체적으로 각각 형성된다.
특정 예에서, 라인 정보(224)는, 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)에 대해,
- 텍스트 라인(LN)의 원점을 나타내는 원점 좌표(x, y);
- 텍스트 라인(LN)의 경사를 나타내는 경사 정보(a); 및
- 텍스트 라인(LN)의 높이를 나타내는 높이 정보(h)
를 포함한다.
그러므로, 라인 정보(224)는 컴퓨팅 디바이스(100)가 각각의 텍스트 라인(LN)의 위치, 배향 및 크기를 정의하는 것을 허용한다.
텍스트 라인(LN)에 속하는 임의의 사전 결정된 기준점은 상기 텍스트 라인(LN)의 전술한 "원점"으로서 라인 정보(224)에서 정의될 수 있다는 점에 유의해야 한다.
텍스트 라인(LN)의 원점 좌표는 한 쌍의 부동 소수점 값에 의해 정의될 수 있다: 라인(x, y). 경사 정보는 부동 소수점 값일 수 있다: 라인(a). 높이 정보는 부동 소수점 값일 수 있다: 예를 들어 문서 모델에 따라서 이러한 텍스트 라인에 할당된 문자의 평균 높이를 나타내는 라인(h). 본 예에서, 높이(h)는 각각의 주어진 텍스트 라인(LN)에 대해 경사(a)에 직교하여 나타난다.
각각의 텍스트 라인(LN)에 대한 평균 높이(h)의 계산은 알파벳의 어센더(ascender) 및 디센더(descender)가 각각의 텍스트 라인의 결과적인 평균 값에 노이즈를 발생시키는 것을 피하기 위해 고려되도록 컴퓨팅 디바이스(100)에 의해 수행될 수 있다.
예로서, 컴퓨팅 디바이스(100)는 제1 텍스트 라인(LN1)에서의 입력 스트로크들(ST1-ST4)가 특정 구조화된 방식으로 단어(WD1)을 총체적으로 형성한다는 것을 인식한다(S10). 그 결과, 도 6 및 도 9에 도시된 바와 같이, 컴퓨팅 디바이스(100)는 텍스트 라인(LN1)과 관련하여 다음과 같은 문자를 정의하는 문자 정보(220)를 포함하는 모델 데이터(DT)를 생성한다(S12):
- 스트로크(ST1) 및 스트로크(ST2)와 관련된 문자(CH1);
- 스트로크(ST3)의 부분(ST31)과 관련된 문자(CH2);
- 스트로크(ST3)뿐만 아니라 스트로크(ST4)의 부분(ST32)(부분(ST31 및 ST33)을 보완하는)과 관련된 문자(CH3); 및
- 스트로크(ST3)의 부분(ST33)(ST31 및 ST32를 보완하는)과 관련된 문자(CH4).
텍스트 블록(BL1)에서의 다른 문자(CH)는 문자 정보(220)에서 유사한 방식으로 정의된다.
여전히 이 예에서, 단어 정보(222)는 문자(CH1, CH2, CH3 및 CH4)와 관련된 단어(WD1)을 정의한다. 텍스트 블록(BL1)에서의 다른 단어(WD)는 단어 정보(222)에서 유사한 방식으로 정의된다.
여전히 이 예에서, 라인 정보(224)는 다음과 같은 라인을 정의한다:
- 원점 좌표(x1, y1), 경사 정보(a1) 및 높이 정보(h1)를 나타내는 텍스트 라인(LN1);
- 원점 좌표(x2, y2), 경사 정보(a2) 및 높이 정보(h2)를 나타내는 텍스트 라인(LN2); 등.
텍스트 블록(BL1)의 다른 텍스트 라인(LN3, LN4, LN5)은 라인 정보(224)에서 유사한 방식으로 정의된다.
그러나, 모델 데이터(DT)는 도 9에 예시된 것과 다른 방식으로 구성될 수 있다는 것을 이해해야 한다.
저장 단계(S14)에서, 컴퓨팅 디바이스(100)는 S12에서 생성된 모델 데이터(DT)를 메모리(108)에 저장한다.
도 10에 도시된 바와 같이, 정규화하는 단계(S16)에서, 컴퓨팅 디바이스(100)는 이전에 설명된 바와 같이 자유 필기 형식(FT1)으로부터 구조화된 핸드라이팅 형식(FT2)으로 텍스트 블록(BL1)의 각각의 핸드라이팅된 텍스트 라인(LN)을 정규화한다. 이러한 정규화는 특정 예에서 다음에 설명된 바와 같이 라인별로 수행된다. 이러한 정규화는 컴퓨팅 디바이스(100)가 핸드라이팅된 텍스트의 텍스트 블록(BL1)을 제한되지 않은 환경(자유 핸드라이팅 모드(FT1))으로부터 형식화된 또는 구조화된 환경(구조화된 핸드라이팅 형식(FT2))으로 변환하는 것을 가능하게 하여서, 상기 핸드라이팅된 텍스트는 문서 패턴(200)에 따라서 보다 체계적이고(즉, 정규화되고) 효율적인 방식으로 배열되고 나중에 디스플레이될 수 있다.
도 10의 예에서, 정규화(S16)의 결과는 디스플레이 디바이스(102) 상에서 컴퓨팅 디바이스(100)에 의해 디스플레이된다. 알 수 있는 바와 같이, 핸드라이팅된 텍스트의 텍스트 라인(LN1-LN5)은 문서 패턴(200)에 의해 정의된 바와 같은 구조화된 형식(FT2)에 따라서 위치, 크기 및 배향의 획일적인 배열로 정규화된다. 예를 들어, 텍스트 라인(LN2 및 LN4)은 문서 패턴(200)에 의해(보다 구체적으로 라인 패턴에 의해) 부과된 행간 거리(d1)를 준수하도록 다운 사이징된다. 핸드라이팅된 텍스트의 모든 텍스트 라인(LN)은 가이드라인(202)에 따라서 정렬되고 배열된다. 이미 표시된 바와 같이, 다양한 다른 형태의 정규화가 본 발명 내에서 고려될 수 있다.
이러한 정규화(S16)는 구조화된 핸드라이팅 형식(FT2)에 따라서 재배열되도록 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)을 변환하는(S20) 것에 의해 달성된다. 다음에 추가로 설명되는 바와 같이, 이러한 변환은 핸드라이팅된 텍스트의 각각의 텍스트 라인(LN)에(즉, 각각의 텍스트 라인(LN)의 스트로크(ST)에) 각각의 변환 함수(TF)를 적용하는 것에 의해 수행된다.
이미 나타낸 바와 같이, 정규화되는 각각의 텍스트 라인(LN)은 핸드라이팅된 텍스트의 텍스트 라인이다. 일부 변환이 정규화 프로세스(S16)의 일부로서 이러한 핸드라이팅된 텍스트 라인에 적용될지라도, 일단 정규화되면, 이러한 텍스트 라인(LN)(즉, 정규화된 텍스트 라인)은 (예를 들어 입력 스트로크에 의해 형성된 핸드라이팅을 구성하지 않는 조판 콘텐츠에 반대하여) 여전히 핸드라이팅된 텍스트 라인, 즉 텍스트 라인으로서, 그러나 정규화된 방식으로 배열된 핸드라이팅이다. 다음에 추가로 설명되는 바와 같이, 핸드라이팅된 텍스트의 각각의 텍스트 라인(LN)의 스트로크(ST)는 대응하는 핸드라이팅된 텍스트 라인을 정규화된 핸드라이팅 텍스트 라인으로 변환하는 변환을 정의하는 변환 함수(TF)의 대상이다.
추가적으로, 핸드라이팅된 텍스트 라인(LN)을 나타내는 모델 데이터(DT)는 정규화(S16) 동안 텍스트 라인(LN)에 적용된 동일한 변환(변환 함수에 의해 정의된 바와 같은)에 기초하여 컴퓨팅 디바이스(100)에 의해 업데이트된다(S22).
보다 구체적으로, 정규화하는 단계(S16)(도 5) 동안, 컴퓨팅 디바이스(100)는 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)에 대해 단계(S18, S20 및 S22)를 포함하여 동일한 반복을 수행한다. 명료성을 위해, 이러한 반복(S18 내지 S22)은 제1 텍스트 라인(LN1)에 대해서만 다음에 상세하게 설명된다. 단계(S18-S22)는 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)에 대해 유사한 방식으로 적용될 수 있다.
결정 단계(S18) 동안, 컴퓨팅 디바이스(100)는 문서 패턴(200)을 준수하도록 핸드라이팅된 텍스트의 텍스트 라인(LN1)을 구조화된 핸드라이팅 형식(FT2)으로 변환하기 위해 각각의 변환 함수(TF)를 계산(또는 결정)한다. 특정 예에서, 컴퓨팅 디바이스(100)는 S18에서, 텍스트 라인(LN1)의 라인 정보(224), 즉 핸드라이팅된 텍스트의 텍스트 라인(LN1)의 원점 좌표(x1, y1), 경사 정보(a1) 및 높이 정보(h1)를 포함하는 입력 파라미터를 획득한다. 이어서, 컴퓨팅 디바이스(100)는 핸드라이팅된 텍스트의 획득된 입력 파라미터에 기초하고 문서 패턴(200)에 기초하여(예를 들어, 구조화된 형식(FT2))에 적용 가능한 문서 패턴(200)의 라인 패턴을 고려하여) 텍스트 라인(LN1)을 위한 변환 함수(TF)를 결정한다(S18). 특히, 컴퓨팅 디바이스(100)는, 텍스트 라인(LN1)의 핸드라이팅된 텍스트가 문서 패턴(200)의 제1 기준선(202)으로 이동하고, 이러한 제1 기준선에 따라서 배향되고, 문서 패턴(200)의 행간(interline)에 따라서 리스케일링되도록 변환 함수(TF)를 결정할 수 있다. 예를 들어, 텍스트 라인(LN1)의 원점은 제1 기준선(202)의 사전 결정된 위치에서 이동된다.
도 11에 도시된 바와 같이, 각각의 텍스트 라인(LN)에 대해 컴퓨팅 디바이스(100)에 의해 계산된 각각의 변환 함수(TF)는 정규화하는 단계(S16) 동안 핸드라이팅된 텍스트의 상기 텍스트 라인(LN)에(그러므로, 이러한 텍스트 라인(LN)을 형성하는 스트로크(ST)에) 적용되도록 다음의 변환 컴포넌트 중 적어도 하나를 정의할 수 있다:
- 병진 컴포넌트(CP1);
- 스케일 컴포넌트(CP2); 및
- 회전 컴포넌트(CP3).
본 경우에, 비록 다른 구현이 가능할지라도, 각각의 변환 함수(TF)는 이들 3개의 컴포넌트(CP1, CP2 및 CP3)를 포함하는 것으로 간주된다.
병진 컴포넌트(CP1)는 각각의 텍스트 라인(LN)의 병진을 정의할 수 있다. 스케일 컴포넌트(CP2)는 각각의 텍스트 라인에 대한 리스케일링 동작을 정의할 수 있다. 마지막으로, 회전 컴포넌트(CP3)는 각각의 텍스트 라인(LN)의 회전을 정의할 수 있다.
특정 예에서, 정규화하는 단계(S16) 동안, 변환 함수(TF)의 병진 컴포넌트(CP1)는 이러한 텍스트 라인의 원점이 정규화하는 단계(S16) 동안 상기 텍스트 라인에 할당된 대응하는 기준선(202)과 정렬되기 위해 이동되도록 텍스트 라인(예를 들어, LN1)의 병진을 수행하도록 결정된다.
특정 예에서, 정규화하는 단계(S16) 동안, 변환 함수(TF)의 스케일 컴포넌트(CP2)는 텍스트 라인의 높이(예를 들어, h1)에 대한 문서 패턴(200)의 라인 패턴의 2개의 연속적인 기준선(202) 사이의 거리(d1)의 비율에 기초하여 각각의 텍스트 라인(예를 들어, LN1)을 위해 결정된다.
특정 예에서, 정규화하는 단계(S16) 동안, 회전 컴포넌트(CP3)는 문서 패턴(200)(예를 들어, 문서 패턴(200)의 기준선(202)을 기준으로 취하는)에 따라서 0으로 그 경사(예를 들어, a1)를 감소시키기 위해 각각의 텍스트 라인(예를 들어, LN3)을 회전시키도록 결정된다.
예로서, 변환 함수(TF)는 정규화 동안 텍스트 라인(LN)에 적용되는 회전을 정의할 수 있다. 경사 라인(LN)에 적용되는 회전은 경사(a)의 반대 각도의 회전일 수 있다. 그러므로, 텍스트 라인(LN)의 주어진 경사(a)에 대해, 변환(TF)의 회전 컴포넌트(CP3)는 (-a)의 회전일 수 있다. 변환 함수(TF)가 회전을 내포할 때, 이는 텍스트 라인(LN)의 원점 주위의 영향을 받는 스트로크(들)의 각각의 지점 또는 스트로크 부분의 회전을 유발할 수 있다. 다음에 추가로 설명되는 바와 같이, 라인 정보(224)는 또한 이에 따라 업데이트될 수 있다(라인 경사(a)를 0으로 설정하는 것에 의해: a = 0).
즉, 텍스트 라인(LN)이 이미 적절한 배향으로 있을 때(예를 들어, 텍스트 라인(LN)이 실질적으로 문서 패턴(200)의 각각의 기준선(202)의 방향을 따라서 자유 핸드라이팅 형식(FT1)으로 핸드라이팅될 때), 텍스트 라인(LN)의 회전이 구조화된 형식(FT2)으로 이를 변환하기 위해 항상 필요한 것은 아니라는 점에 유의해야 한다. 이러한 경우에, 회전 컴포넌트(CP3)는 CP3 = 0이도록 설정될 수 있다.
유사하게, 일부 경우에, 컴포넌트(CP1 및/또는 CP2)는 각각의 텍스트 라인(LN)을 구조화된 형식(FT2)로 변환하기 위해 변환 및/또는 리스케일링이 각각 필요하지 않으면 0으로 설정될 수 있다.
특정 예에서, 컴퓨팅 디바이스(100)는 컴포넌트(CP1, CP2, CP3) 중 적어도 하나가 0과 다르도록 텍스트 라인(LN1)을 위한 변환 함수(TF)를 S18에서 결정한다. 도 11에 도시된 예에서, 변환 함수(TF)는 핸드라이팅이 병진 컴포넌트(CP1)에 따라서 디스플레이 디바이스(102) 상에서 이동(병진 이동)됨에 따라서, "This example shows"를 읽는 텍스트 라인(LN1)이 스케일 컴포넌트(CP2)에 따라서 리스케일링(다운 사이징)되고 회전 컴포넌트(CP3)에 따라서 각도만큼 회전되도록 계산된다.
변환 단계(S20)에서, 컴퓨팅 디바이스(100)는 텍스트 라인(LN1)의 각각의 스트로크(ST)를 구조화된 핸드라이팅 형식(FT1)으로 변환하기 위해 각각의 변환 함수(TF)를 적용한다. 그러므로, 본 예에서, 컴퓨팅 디바이스(100)는 도 11과 관련하여 위에서 이미 설명된 바와 같이, 병진 컴포넌트(CP1)에 따라서 텍스트 라인(LN1)을 이동시키고(병진 이동), 스케일 컴포넌트(CP2)에 따라서 텍스트 라인(LN1)을 리스케일링하고, 회전 컴포넌트(CP3)에 따라서 텍스트 라인(LN1)을 회전시킨다. 도 11에 도시된 바와 같이 일단 정규화되면 "This example shows"라는 문구는 여전히 (스트로크되는 것에 의해 형성된) 핸드라이팅을 구성하지만 정규화된 방식으로 구조적으로 조직화된다.
업데이트 단계(S22)에서, 컴퓨팅 디바이스(100)는 또한 텍스트 라인(LN1)을 위해 S18에서 결정된 각각의 변환 함수(TF)에 기초하여 텍스트 블록(BL1)의 모델 데이터(DT)를 업데이트한다. 보다 구체적으로, 컴퓨팅 디바이스(100)는 S18에서 계산된 각각의 변환 함수(TF)에 따라서 텍스트 라인(LN1)과 관련된 모델 데이터(DT)의 부분을 업데이트한다.
본 예에서, 업데이트 단계(S22) 동안, 컴퓨팅 디바이스(100)는 S18에서 결정된 각각의 변환 함수(TF)에 기초하여 텍스트 라인(LN1)과 관련된 모델 데이터(DT)의 라인 정보(224)를 업데이트한다. 그 결과, 원점 좌표(x1, y1), 경사 정보(a1) 및 높이 정보(h1)는 컴포넌트(CP1, CP3, CP2)에 따라서 각각 업데이트된다.
전술한 바와 같이, 단계(S18, S20 및 S22)는 라인 추출 단계(S10)에서 검출된 각각의 텍스트 라인(LN)에 대해 유사한 방식으로 수행된다. 그 결과, 텍스트 블록(BL1)은 정규화(S16)를 거쳐서, 구조화된 형식(FT2)으로 변환되고(S20), 이에 따라 관련된 모델 데이터를 업데이트한다(S22). 이러한 정규화는, 각각의 텍스트 라인(LN)이 전용 변환 함수(TF)에 기초하여 정규화되고 각각의 텍스트 라인(LN)과 관련된 모델 데이터가 이러한 전용 변환 함수(TF)에 기초하여 업데이트된다는 점에서 라인 단위로 수행된다.
업데이트 단계(S22)는 변환 단계(S20) 전 또는 후에 수행될 수 있다. 보다 일반적으로, 단계(S18-S22)의 시퀀스가 상이한 텍스트 라인(LN)에 대해 수행되는 순서는 당업자에 의해 적합하게 될 수 있다.
도 5에 도시된 바와 같이, 컴퓨팅 디바이스는 업데이트된 모델 데이터(DT)를 메모리(8)(도 2)에 저장할 수 있다(S24). 이러한 저장 단계는 업데이트(S22)가 텍스트 블록(BL1)의 각각의 텍스트 라인(LN)에 대해 수행되는 동안 점진적으로 수행될 수 있다. 본 예에서, 텍스트 블록(BL1)의 업데이트된 모델 데이터(DT)는 S14에서 저장된 본래의 모델 데이터(DT)를 대체하여 S24에서 저장된다.
또한, 컴퓨팅 디바이스(100)는 도 10에 도시된 바와 같이 정규화된 텍스트 블록(BL1)을 디스플레이할 수 있다(S26). 일단 정규화되면, 텍스트 블록(BL1)은 이전에 설명된 바와 같이 문서 패턴(200)을 준수하도록(일치하기 위해) 구조화된 형식(FT2)에 따라서 배열된다.
각각의 텍스트 라인(LN)의 기준선(202)은 대응하는 라인 정보(224)에서 정의된 바와 같이 원점 및 경사를 사용하여 컴퓨팅 디바이스(100)에 의해 그려질 수 있다. 추가적으로, 각각의 텍스트 라인(LN)의 높이 값은 디스플레이 디바이스(102) 상에서의 강조된 직사각형(또는 이와 유사한 것)을 사용하여 표현될 수 있다. 각각의 텍스트 라인(LN)의 원점은 텍스트 라인이 정규화 동안 리스케일될 때 앵커 포인트로서 사용될 수 있다.
자유 핸드라이팅 형식으로부터 구조화된 맥락 또는 형식(FT2와 같은)으로의 텍스트 블록(BL1)의 텍스트 정규화(S16)는 잉크 상호 작용성에 의해 제공되는 전체 경험을 개선한다. 정규화는 텍스트 핸드라이팅 입력을 보다 균일하고 구조화된 방식으로 배열 및 디스플레이할 수 있을 뿐만 아니라, 다음에 설명되는 바와 같이 텍스트 인식 시스템의 신뢰성과 편집 효율성을 향상시키는 것을 가능하게 한다.
본 발명은 상호 작용 잉크를 형성하기 위해 모델 데이터로 디지털 잉크를 구성하는 것을 허용한다. 앞서 설명된 바와 같이, 모델 데이터(DT)는 각각의 스트로크(ST)를 고유 문자(CH)에, 각각의 문자(CH)를 고유 단어(WD)에, 각각의 단어(WD)를 고유 텍스트 라인(LN)에 링크하는 상호 참조를 정의하고, 이에 의해 잉크 상호 작용성을 가능하게 한다. 예를 들어, 텍스트 블록에서 단어를 소거하는 것은 문서 모델에 따라서 이 단어에 의해 참조되는 모든 문자를 또한 소거하는 것을 내포한다. 다른 예로서, 주어진 라인(LN)의 모든 콘텐츠를 소거하는 것은 모델 데이터로부터 이러한 라인을 소거할 뿐만 아니라, 컴퓨팅 디바이스(100)가 이러한 라인의 모든 구성 단어(WD) 및 문자(CH)를 소거하게 한다. 이러한 상관 관계는 위에서 설명한 바와 같이 라인별 정규화 프로세스를 허용하는 모델 데이터(DT)에 의해 정의된다.
본 발명 덕분에, 텍스트 핸드라이팅 입력은 추가 텍스트 인식이 정규화 프로세스 동안 수행된 변환에 응답하여 수행될 필요가 없도록 입력 텍스트 핸드라이팅을 나타내는 최신의 관련 모델 데이터를 유지하면서 정규화될 수 있다. 다시 말해서, 정규화 프로세스의 일부로서, 컴퓨팅 디바이스(100)는 텍스트 핸드라이팅 입력(IN)의 스트로크(ST), 문자(CH), 단어(WD) 및 텍스트 라인(LN) 사이의 상관 관계를 모델 데이터에서 정의된 바와 같이 업데이트하여서, S8에서 수행된 초기 텍스트 인식의 결과와 충돌할 수 있는 정규화된 텍스트 블록(BL1)에 대한 텍스트 인식을 다시 한 번 수행할 필요가 없다.
일반적으로 말하면, 공지된 컴퓨팅 디바이스에서의 텍스트 인식 엔진은 통상적으로 텍스트 핸드라이팅에서 발생하는 잉크 수정 또는 편집(예를 들어, 스트로크의 삭제 또는 편집)을 모니터링하도록 구성된다. 따라서, 텍스트 정규화가 이러한 공지된 컴퓨팅 디바이스에서 발생하면, 이는 텍스트 인식 엔진이 정규화 동안 다시 실행되어 일단 구조화된 형식으로 변환된 텍스트 핸드라이팅 입력을 가능한 새로운 콘텐츠로 인식하도록 시도한다. 즉, 디지털 잉크 공지된 시스템의 정규화는 이전 인식 결과를 버리고 새로운 인식 결과를 얻기 위해 전체 잉크를 재처리하게 한다. 이러한 반응형 텍스트 인식 메커니즘은 잉크 수정이 예를 들어 자유 핸드라이팅 모드에서 사용자의 일부 형태의 편집에 기인할 때 유용할 수 있지만, 컴퓨팅 디바이스(100)가 자유 핸드라이팅 형식(FT1)으로부터 구조화된 형식(FT2)으로 텍스트 블록(BL1)의 정규화(S16)에 응답하여 새로운 텍스트 인식을 수행하는 것은 실제로 역효과를 낳는다. 정규화(S16)에 응답하는 어떠한 추가적인 텍스트 인식도 자유 핸드라이팅 모드(FT1)에서 텍스트 핸드라이팅 입력(IN)에 대해 수행된 초기 텍스트 인식(S8)을 오염시키거나 충돌할 위험이 있다. 추가적으로, 이러한 추가 텍스트 인식 프로세스를 수행하는 것은 시간과 리소스를 요구한다. 정규화 동안 디지털 잉크에 적용된 변환 함수(TF)에 따라서 모델 데이터(DT)를 업데이트하는 것은 디지털 잉크 및 관련 데이터를 일정하고 일관된 상태로 두면서 시간과 리소스를 절약할 수 있다.
텍스트 블록(BL1)에 대해 수행된 정규화(S16)에 응답하여 새로운 텍스트 인식을 트리거하는 대신, 본 발명의 컴퓨팅 디바이스(100)는 정규화 동안 텍스트 라인(LN)에 적용된 변환 함수(TF)에 따라서 텍스트 블록(BL1)의 모델 데이터(DT)를 업데이트하도록 구성된다.
본 발명에서 정규화 프로세스의 요점은 주어진 초기 인식 결과(즉, 초기 텍스트 인식(S8)의 결과)에 대해 디지털 잉크를 조작하는 것이다. 이를 위해, 컴퓨팅 디바이스(100)는 텍스트 블록(BL1)의 디지털 잉크를 구조화된 형식(FT2)으로 변환하고, 이에 따라 문서 모델을 업데이트하여서, 자유 핸드라이팅 모드에서 획득된 초기 텍스트 인식(S8)의 결과가 요구되지 않는다.
특정 실시형태에서, 정규화하는 단계(S16) 동안, 각각의 텍스트 라인(LN)의 모델 데이터(DT)는 S18에서 획득된 각각의 변환 함수(TF)에 따라서 업데이트되는 한편, 각각의 변환 함수(TF)를 적용하는 것에 의해 초래되는 어떠한 텍스트 인식도 차단한다. 그 결과, 컴퓨팅 디바이스(100)는 단계(S16)에서 텍스트 블록(BL1)에 대해 수행된 정규화에 응답하여 어떠한 새로운 텍스트 인식도 금지한다. 그러므로, 인식된 텍스트는 디지털 잉크가 정규화 동안 변환되더라도 안정적으로 유지되고, 이에 의해 전체 인식 시스템의 신뢰성과 효율성을 향상시킨다.
그러나, 텍스트 블록(BL1)이 구조화된 형식(FT2)로 정규화되었으면(도 10에 도시된 바와 같이), 새로운 텍스트 인식은 정규화된 텍스트 블록(BL1)에 대해 나중에 수행되는 모든 후속 형식의 편집 또는 잉크 수정을 반영하기 위해 트리거될 수 있다는 것을 이해해야 한다. 예를 들어, 사용자가 구조화 모드(FT2)에서 제1 텍스트 라인(LN1)을 편집하기로 결정하면(예를 들어, 단어(WD) 또는 문자(CH)의 스트로크 또는 스트로크 부분을 소거하거나 이를 교정하는 것에 의해), 컴퓨터 디바이스(100)는 초기 텍스트 인식(S8)의 결과와 다를 수 있는 텍스트를 인식하기 위해 새로운 텍스트 인식을 수행할 수 있다.
따라서, 컴퓨팅 디바이스(100)는 바람직하게 정규화하는 단계(S16) 후에 수행되는 편집 동작에 응답하여 새로운 텍스트 인식을 트리거한다. 이러한 경우에, 텍스트 인식 기능은 컴퓨팅 디바이스(100)에서 영구적으로 차단되지 않고, 대신에 구조화된 형식(FT2)으로 텍스트 블록(BL1)에 대해 나중에 편집하는 경우에 새로운 콘텐츠가 인식되는 것을 가능하게 하도록 정규화(S16)가 완료되면 활성 상태로 유지된다. 그러므로, 핸드라이팅 텍스트는 임의의 형태의 편집(예를 들어, 텍스트 리플로우 등)과 같은 추가 작업 및 상호 작용을 위해 정규화 후에 컴퓨팅 디바이스(100)에 의해 보다 안정적이고 용이하게 처리될 수 있다.
또한, 본 발명은 사용자가 자유 핸드라이팅 모드에서 텍스트 핸드라이팅을 입력하는 것을 가능하게 한다. 본질적으로, 라인, 크기 및 배향(가이드라인, 여백 등을 포함하는)의 제약이 자유 핸드라이팅 모드에서 사용자에게 부과되지 않아서, 다양하고 복잡한 형태의 핸드라이팅이 입력될 수 있다. 앞서 설명된 바와 같이 텍스트 핸드라이팅 입력을 구조화된 핸드라이팅 형식으로 정규화하는 것에 의해, 텍스트 핸드라이팅에 대한 컴퓨팅 디바이스(100)에 의한 편집 기능(수정, 리스케일링 등)의 구현이 용이해질 수 있다. 정규화는 예를 들어 컴퓨팅 디바이스에 의해 수신된 사용자 개시 명령 또는 컴퓨팅 디바이스에 의해 검출된 임의의 사전 결정된 이벤트로부터 발생할 수 있다. 사용자는 자유 핸드라이팅 모드가 초기에 사용되었음에도 불구하고 핸드라이팅 입력을 보다 구조화되고 발전된 방식으로 편집 및 조작하고, 이에 의해 사용자 경험을 향상시킬 수 있다.
예를 들어 도 12에 도시된 바와 같이, 정규화(S16)가 완료되면, 컴퓨팅 디바이스(100)는 편집 단계(S28) 동안 편집 동작을 수행할 수 있다. 본 예에서, 텍스트 리플로우는 정규화된 텍스트 블록(BL1)에 대해 가로 방향으로 수행된다(세로 텍스트 리플로우가 또한 가능하다). 그 결과, 구조화된 형식(FT2)에서 텍스트 블록(BL1)의 상이한 디지털 잉크 스트로크의 상대 위치가 재배열된다. 이러한 편집 동작은 임의의 적절한 사용자 명령(예를 들어, 입력 표면(104) 상의 사용자 제스처)에 응답하여 사용자에 의해, 또는 사전 결정된 이벤트의 검출 시에 컴퓨팅 디바이스(100) 자체에 의해 트리거될 수 있다.
일부 대안적인 구현에서, 블록에서 언급된 기능은 도면에서 언급된 순서와 다르게 발생할 수 있다는 점에 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은 실제로 실질적으로 동시에 실행될 수 있거나, 블록들은 때때로 역순으로 실행될 수 있거나, 또는 블록들은 관련된 기능에 의존하여 대안적인 순서로 실행될 수 있다.
본 발명이 특정 실시형태에서 설명되었지만, 첨부된 청구범위의 범위에 따라서 당업자의 능력 내에서 수많은 수정 및 실시형태가 가능한 것은 명백하다. 특히, 당업자는 첨부된 청구범위의 범위 내에 속하는 이 문서에서 설명된 다양한 실시형태의 임의의 모든 조합 및 변형을 고려할 수 있다.

Claims (15)

  1. 텍스트 핸드라이팅을 처리하기 위하여 컴퓨팅 디바이스(100)에 의해 구현되는 방법으로서,
    - 입력 표면(104)을 이용하여 디지털 잉크(IN)의 복수의 입력 스트로크(ST)를 검출하는 단계(S2)로서, 상기 입력 스트로크는 어떠한 핸드라이팅 제약도 없이 자유 핸드라이팅 형식(FT1)으로 입력되는, 상기 복수의 입력 스트로크를 검출하는 단계;
    - 상기 자유 핸드라이팅 형식으로 디스플레이 디바이스(102)에서 상기 복수의 입력 스트로크(ST)를 디스플레이하는 단계(S4);
    - 각각의 입력 스트로크를 텍스트 또는 비텍스트로서 분류하는 단계(S6)로서, 상기 분류 단계는 자유 핸드라이팅 형식(FT1)으로 핸드라이팅된 입력 스트로크로부터 핸드라이팅된 텍스트의 적어도 하나의 텍스트 블록(BL1)을 텍스트로서 검출하는 단계를 포함하는, 상기 분류하는 단계;
    - 상기 적어도 하나의 텍스트 블록(BL1)에 대해 텍스트 인식을 수행하는 단계(S8)로서, 상기 텍스트 인식은,
    o 상기 적어도 하나의 텍스트 블록으로부터 핸드라이팅된 텍스트의 텍스트 라인을 추출하는 단계(S10);
    o 상기 적어도 하나의 텍스트 블록의 각각의 스트로크(ST)를 상기 적어도 하나의 텍스트 블록의 문자(CH), 단어(WD) 및 텍스트 라인(LN)과 관련시키는 모델 데이터(DT)를 생성하는 단계(S12)
    를 포함하는, 상기 텍스트 인식을 수행하는 단계; 및
    - 문서 패턴(200)의 라인 패턴을 준수하도록 상기 자유 핸드라이팅 형식으로부터 구조화된 핸드라이팅 형식(FT2)으로, 핸드라이팅된 텍스트의 각각의 텍스트 라인(LN)을 정규화하는 단계(S16)
    를 포함하되, 상기 정규화하는 단계는, 각각의 텍스트 라인에 대해,
    o 상기 텍스트 라인(LN)을 상기 구조화된 핸드라이팅 형식(FT2)으로 변환하기 위해 상기 텍스트 라인을 위한 각각의 변환 함수(TF)를 계산하는 단계(S18);
    o 상기 텍스트 라인의 각각의 스트로크를 상기 구조화된 핸드라이팅 형식(FT2)으로 변환하기 위해 각각의 변환 함수(TF)를 적용하는 단계(S20); 및
    o 각각의 변환 함수에 기초하여 상기 텍스트 라인의 모델 데이터(DT)를 업데이트하는 단계(S22)
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 텍스트 인식 동안 생성된 모델 데이터(DT)를 저장하는 단계를 포함하고,
    상기 모델 데이터를 업데이트하는 단계는 상기 텍스트 인식 동안 생성된 모델 데이터 대신에 상기 적어도 하나의 텍스트 블록의 업데이트된 모델 데이터를 저장하는 단계(S24)를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서, 상기 정규화하는 단계 후에, 상기 구조화된 핸드라이팅 형식(FT2)으로 상기 적어도 하나의 텍스트 블록의 텍스트 라인을 디스플레이하는 단계(S26)를 포함하는, 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서, 적어도 하나의 텍스트 블록(BL1)의 모델 데이터(DT)는,
    - 각각의 문자가 디지털 잉크의 적어도 하나의 스트로크 및 상기 적어도 하나의 텍스트 블록의 텍스트 라인과 관련되는, 복수의 문자를 정의하는 문자 정보(220);
    - 각각의 단어가 상기 문자 정보에 의해 정의된 바와 같은 적어도 하나의 문자와 관련되는, 복수의 단어를 정의하는 단어 정보(222); 및
    - 각각의 텍스트 라인이 상기 단어 정보에 의해 정의된 바와 같은 적어도 하나의 단어와 관련되는, 상기 적어도 하나의 텍스트 블록의 각각의 텍스트 라인을 정의하는 라인 정보(224)
    를 포함하는, 방법.
  5. 제4항에 있어서, 라인 정보는, 상기 적어도 하나의 텍스트 블록의 각각의 텍스트 라인에 대해,
    - 상기 텍스트 라인의 원점을 나타내는 원점 좌표;
    - 상기 텍스트 라인의 경사를 나타내는 경사 정보; 및
    - 상기 텍스트 라인의 높이를 나타내는 높이 정보
    를 포함하는, 방법.
  6. 제4항 내지 제5항 중 어느 한 항에 있어서, 상기 정규화하는 단계 동안 상기 모델 데이터(DT)를 업데이트하는 단계는 각각의 변환 함수에 기초하여 상기 텍스트 라인의 라인 정보(224)를 업데이트하는 단계를 포함하는, 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 정규화하는 단계는, 각각의 텍스트 라인에 대해
    - 상기 텍스트 라인의 원점 좌표, 경사 정보, 및 높이 정보를 포함하는 입력 파라미터를 결정하는 단계를 포함하고;
    각각의 변환 함수는 상기 입력 파라미터 및 상기 문서 패턴에 기초하여 계산되는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 문서 패턴은, 핸드라이팅된 텍스트에 의해 준수되어야 할 다음의 핸드라이팅 제약 중 적어도 하나를 정의하는, 방법:
    - 디스플레이 영역의 여백; 및
    - 행간 거리.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 각각의 변환 함수는, 상기 정규화하는 단계 동안 각각의 텍스트 라인에 적용될 다음의 변환 컴포넌트 중 하나를 정의하는, 방법:
    - 병진 컴포넌트(CP1);
    - 스케일 컴포넌트(CP2); 및
    - 회전 컴포넌트(CP3).
  10. 제9항에 있어서, 상기 문서 패턴은 가이드라인을 정의하는 상기 라인 패턴(202)을 포함하며, 상기 핸드라이팅된 텍스트는 상기 가이드라인에 따라서 상기 구조화된 핸드라이팅 형식(FT2)으로 배열되는, 방법.
  11. 제10항에 있어서, 상기 변환 함수의 스케일 컴포넌트(CP2)는 각각의 텍스트 라인의 높이에 대한 상기 라인 패턴의 2개의 연속적인 가이드라인 사이의 거리의 비율에 기초하여 상기 정규화하는 단계 동안 결정되는, 방법.
  12. 제10항 또는 제11항에 있어서, 상기 변환 함수의 병진 컴포넌트는 상기 텍스트 라인의 원점이 상기 정규화하는 단계 동안 상기 텍스트 라인에 할당된 라인 패턴의 대응하는 가이드라인과 정렬되도록 이동되기 위해 텍스트 라인의 병진을 수행하도록 상기 정규화하는 단계 동안 결정되는, 방법.
  13. 제10항 내지 제9항 중 어느 한 항에 있어서, 상기 회전 컴포넌트(CP3)는 사익 문서 패턴(200)에 따라서 그 경사를 0으로 감소시키도록 각각의 텍스트 라인을 회전시키기 위해 상기 정규화하는 단계 동안 결정되는, 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 정규화하는 단계 동안, 각각의 텍스트 라인의 모델 데이터(DT)는 상기 각각의 변환 함수를 적용하는 단계로부터 야기될 수 있는 어떠한 텍스트 인식도 차단하면서 각각의 변환 함수에 따라서 업데이트되는, 방법.
  15. 텍스트를 핸드라이팅하기 위한 컴퓨팅 디바이스로서,
    - 디지털 잉크(IN)의 복수의 스트로크(ST)를 검출하기 위한 입력 표면(104)으로서, 상기 스트로크는 어떠한 핸드라이팅 제약도 없이 자유 핸드라이팅 형식(FT1)으로 입력되는, 상기 입력 표면;
    - 상기 자유 핸드라이팅 형식으로 상기 복수의 입력 스트로크를 디스플레이하기 위한 디스플레이 디바이스(102);
    - 텍스트 또는 비텍스트로서 각각의 스트로크를 분류하기 위한 분류기(MD2)로서, 상기 자유 핸드라이팅 형식(FT1)으로 핸드라이팅된 상기 입력 스트로크로부터 핸드라이팅된 텍스트의 적어도 하나의 텍스트 블록을 텍스트로서 검출하도록 구성되는, 상기 분류기;
    - 상기 적어도 하나의 텍스트 블록으로부터 핸드라이팅된 텍스트의 텍스트 라인을 추출하는 라인 추출기(MD4);
    - 상기 적어도 하나의 텍스트 블록의 각각의 텍스트 라인에 대한 텍스트 인식을 수행하고, 이에 의해 상기 적어도 하나의 텍스트 블록의 문자, 단어 및 텍스트 라인과 상기 적어도 하나의 텍스트 블록의 각각의 스트크로를 관련시키는 모델 데이터를 생성하는 인식 엔진(MD6); 및
    - 문서 패턴의 라인 패턴을 준수하도록 상기 자유 핸드라이팅 형식으로부터 구조화된 핸드라이팅 형식(FT2)으로, 핸드라이팅된 텍스트의 각각의 텍스트 라인을 정규화하기 위한 텍스트 편집기(MD8)
    를 포함하되, 상기 텍스트 편집기는, 각각의 텍스트 라인에 대해,
    o 상기 텍스트 라인을 상기 구조화된 핸드라이팅 형식으로 변환하기 위해 상기 텍스트 라인을 위한 각각의 변환 함수를 계산하는 단계;
    o 상기 텍스트 라인의 각각의 스트로크를 상기 구조화된 핸드라이팅 형식으로 변환하기 위해 각각의 변환 함수를 적용하는 단계; 및
    o 각각의 변환 함수에 기초하여 상기 텍스트 라인의 모델 데이터를 업데이트하는 단계
    를 수행하도록 구성되는, 컴퓨팅 디바이스.
KR1020217041936A 2019-06-20 2020-06-19 자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리 KR102576276B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19181519.0 2019-06-20
EP19181519.0A EP3754537B1 (en) 2019-06-20 2019-06-20 Processing text handwriting input in a free handwriting mode
PCT/EP2020/067144 WO2020254600A1 (en) 2019-06-20 2020-06-19 Processing text handwriting input in a free handwriting mode

Publications (2)

Publication Number Publication Date
KR20220024146A true KR20220024146A (ko) 2022-03-03
KR102576276B1 KR102576276B1 (ko) 2023-09-07

Family

ID=66999758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217041936A KR102576276B1 (ko) 2019-06-20 2020-06-19 자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리

Country Status (6)

Country Link
US (1) US11687618B2 (ko)
EP (1) EP3754537B1 (ko)
JP (1) JP7486131B2 (ko)
KR (1) KR102576276B1 (ko)
CN (1) CN114402331A (ko)
WO (1) WO2020254600A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024085460A1 (ko) * 2022-10-19 2024-04-25 삼성전자주식회사 이미지 내에 포함된 글자들을 식별하기 위한 전자 장치 및 그 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2020267498B2 (en) 2019-05-06 2023-04-06 Apple Inc. Handwriting entry on an electronic device
US20210349627A1 (en) 2020-05-11 2021-11-11 Apple Inc. Interacting with handwritten content on an electronic device
CN117724620A (zh) * 2021-04-22 2024-03-19 广州创知科技有限公司 交互方法和交互平板
CN115048027A (zh) * 2022-05-06 2022-09-13 合肥讯飞读写科技有限公司 手写输入方法、装置、系统、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090161958A1 (en) * 2007-12-21 2009-06-25 Microsoft Corporation Inline handwriting recognition and correction
US20170109578A1 (en) * 2015-10-19 2017-04-20 Myscript System and method of handwriting recognition in diagrams
US20180114059A1 (en) * 2016-10-26 2018-04-26 Myscript System and method for managing digital ink typesetting

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2749020B2 (ja) 1991-11-14 1998-05-13 日立ソフトウエアエンジニアリング株式会社 ダイアグラム認識システム
EP0667567B1 (en) 1993-12-30 2001-10-17 Xerox Corporation Apparatus and method for supporting the implicit structure of freeform lists, outlines, text, tables, and diagrams in a gesture-based input system and editing system
US5847712A (en) 1995-01-03 1998-12-08 University Of Washington Method and system for generating graphic illustrations according to a stroke texture and a tone
GB9701793D0 (en) 1997-01-29 1997-03-19 Gay Geoffrey N W Means for inputting characters or commands into a computer
WO2000074240A1 (en) 1999-05-27 2000-12-07 America Online Keyboard system with automatic correction
US7298903B2 (en) 2001-06-28 2007-11-20 Microsoft Corporation Method and system for separating text and drawings in digital ink
US7136082B2 (en) 2002-01-25 2006-11-14 Xerox Corporation Method and apparatus to convert digital ink images for use in a structured text/graphics editor
US20030215145A1 (en) 2002-05-14 2003-11-20 Microsoft Corporation Classification analysis of freeform digital ink input
CA2390506C (en) 2002-06-12 2013-04-02 Smart Technologies Inc. System and method for recognizing connector gestures
US7218779B2 (en) 2003-01-21 2007-05-15 Microsoft Corporation Ink divider and associated application program interface
AU2003900865A0 (en) * 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods, systems and apparatus (NPW010)
US7218783B2 (en) 2003-06-13 2007-05-15 Microsoft Corporation Digital ink annotation process and system for recognizing, anchoring and reflowing digital ink annotations
US7502812B2 (en) 2003-08-21 2009-03-10 Microsoft Corporation Electronic ink processing
US7616333B2 (en) 2003-08-21 2009-11-10 Microsoft Corporation Electronic ink processing and application programming interfaces
US7324691B2 (en) 2003-09-24 2008-01-29 Microsoft Corporation System and method for shape recognition of hand-drawn objects
US7352902B2 (en) 2003-09-24 2008-04-01 Microsoft Corporation System and method for detecting a hand-drawn object in ink input
US7848573B2 (en) * 2003-12-03 2010-12-07 Microsoft Corporation Scaled text replacement of ink
US20050273761A1 (en) 2004-06-07 2005-12-08 The Mathworks, Inc. Freehand system and method for creating, editing, and manipulating block diagrams
US7496232B2 (en) 2004-06-23 2009-02-24 Microsoft Corporation Distinguishing text from non-text in digital ink
US7440616B2 (en) 2004-09-21 2008-10-21 Microsoft Corporation System and method for recognition of a hand-drawn chart in ink input
US7394935B2 (en) 2004-09-21 2008-07-01 Microsoft Corporation System and method for editing a hand-drawn chart in ink input
US7904810B2 (en) 2004-09-21 2011-03-08 Microsoft Corporation System and method for editing a hand-drawn list in ink input
US7512273B2 (en) 2004-10-21 2009-03-31 Microsoft Corporation Digital ink labeling
US7643687B2 (en) 2005-03-18 2010-01-05 Microsoft Corporation Analysis hints
EP1783593A3 (en) 2005-10-07 2012-12-19 Sony Corporation Information processing apparatus with a user interface comprising a touch panel, method and program
US7657094B2 (en) * 2005-12-29 2010-02-02 Microsoft Corporation Handwriting recognition training and synthesis
US20080195931A1 (en) 2006-10-27 2008-08-14 Microsoft Corporation Parsing of ink annotations
US8014607B2 (en) 2007-03-23 2011-09-06 Palo Alto Research Center Incorporated Method and apparatus for creating and editing node-link diagrams in pen computing systems
US7945097B2 (en) 2007-05-21 2011-05-17 Microsoft Corporation Classifying digital ink into a writing or a drawing
US20100171754A1 (en) * 2009-01-07 2010-07-08 Microsoft Corporation Converting digital ink to shapes and text
US8718375B2 (en) 2010-12-03 2014-05-06 Massachusetts Institute Of Technology Sketch recognition system
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US9171204B2 (en) 2012-12-12 2015-10-27 Qualcomm Incorporated Method of perspective correction for devanagari text
US20140313216A1 (en) 2013-04-18 2014-10-23 Baldur Andrew Steingrimsson Recognition and Representation of Image Sketches
KR102183448B1 (ko) 2013-04-26 2020-11-26 삼성전자주식회사 사용자 단말 장치 및 그 디스플레이 방법
KR102199193B1 (ko) 2014-01-22 2021-01-06 삼성전자주식회사 핸드라이팅 정보 운용 방법 및 이를 지원하는 전자 장치
JP2016181057A (ja) 2015-03-23 2016-10-13 株式会社東芝 画像処理装置、画像処理方法及び画像処理プログラム
US20170068868A1 (en) 2015-09-09 2017-03-09 Google Inc. Enhancing handwriting recognition using pre-filter classification
US10346510B2 (en) * 2015-09-29 2019-07-09 Apple Inc. Device, method, and graphical user interface for providing handwriting support in document editing
US10976918B2 (en) * 2015-10-19 2021-04-13 Myscript System and method of guiding handwriting diagram input
US10671844B2 (en) * 2017-06-02 2020-06-02 Apple Inc. Handwritten text recognition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090161958A1 (en) * 2007-12-21 2009-06-25 Microsoft Corporation Inline handwriting recognition and correction
US20170109578A1 (en) * 2015-10-19 2017-04-20 Myscript System and method of handwriting recognition in diagrams
US20180114059A1 (en) * 2016-10-26 2018-04-26 Myscript System and method for managing digital ink typesetting

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024085460A1 (ko) * 2022-10-19 2024-04-25 삼성전자주식회사 이미지 내에 포함된 글자들을 식별하기 위한 전자 장치 및 그 방법

Also Published As

Publication number Publication date
JP2022537169A (ja) 2022-08-24
WO2020254600A1 (en) 2020-12-24
EP3754537A1 (en) 2020-12-23
CN114402331A (zh) 2022-04-26
US11687618B2 (en) 2023-06-27
KR102576276B1 (ko) 2023-09-07
US20200401796A1 (en) 2020-12-24
JP7486131B2 (ja) 2024-05-17
EP3754537B1 (en) 2024-05-22

Similar Documents

Publication Publication Date Title
US9911052B2 (en) System and method for superimposed handwriting recognition technology
KR102576276B1 (ko) 자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리
US10007859B2 (en) System and method for superimposed handwriting recognition technology
JP7105695B2 (ja) デジタルインク対話性のためのシステムおよび方法
CN114365075B (zh) 用于选择图形对象的方法和对应装置
CN108369637B (zh) 用于美化数字墨水的系统和方法
JP2020504848A (ja) 手書き図式のコネクタの管理用システムおよび方法
US11429259B2 (en) System and method for selecting and editing handwriting input elements
KR102310385B1 (ko) 중첩된 필기 인식 기술을 위한 시스템 및 방법
US20240134507A1 (en) Modifying digital content including typed and handwritten text
EP4047465A1 (en) Modifying digital content
US20240078377A1 (en) Completing typeset characters using handwritten strokes
WO2023170315A1 (en) Merging text blocks
WO2023170314A1 (en) Creating text block sections

Legal Events

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