[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102771373B1 - Managing real-time handwriting recognition - Google Patents

Managing real-time handwriting recognition Download PDF

Info

Publication number
KR102771373B1
KR102771373B1 KR1020217043310A KR20217043310A KR102771373B1 KR 102771373 B1 KR102771373 B1 KR 102771373B1 KR 1020217043310 A KR1020217043310 A KR 1020217043310A KR 20217043310 A KR20217043310 A KR 20217043310A KR 102771373 B1 KR102771373 B1 KR 102771373B1
Authority
KR
South Korea
Prior art keywords
handwriting
recognition
handwriting input
user
input
Prior art date
Application number
KR1020217043310A
Other languages
Korean (ko)
Other versions
KR20220003662A (en
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
Priority claimed from US14/290,945 external-priority patent/US9465985B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Priority claimed from US14/291,865 external-priority patent/US9495620B2/en
Priority claimed from US14/291,722 external-priority patent/US20140363082A1/en
Priority claimed from KR1020217005264A external-priority patent/KR102347064B1/en
Priority claimed from US14/292,138 external-priority patent/US20140361983A1/en
Publication of KR20220003662A publication Critical patent/KR20220003662A/en
Application granted granted Critical
Publication of KR102771373B1 publication Critical patent/KR102771373B1/en

Links

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/2264Character recognition characterised by the type of writing of cursive writing using word shape
    • 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
    • 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/28Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
    • G06V30/287Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of Kanji, Hiragana or Katakana characters
    • 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/28Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
    • G06V30/293Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of characters other than Kanji, Hiragana or Katakana

Abstract

사용자 디바이스 상에서 필기 입력 기능을 제공하기 위한 기법에 관련된 방법, 시스템, 및 컴퓨터 판독가능 매체가 제공된다. 필기 인식 모듈은 단일 필기 인식 모델을 사용하여 수만의 문자들을 인식할 수 있고 다수의 비중첩 스크립트들을 포함하는 레퍼토리(repertoire)를 갖도록 훈련된다. 필기 입력 모듈은 다문자 필기 입력을 위해 실시간, 획 순서 및 획 방향에 독립적인 필기 인식을 제공한다. 특히, 실시간, 획 순서 및 획 방향에 독립적인 필기 인식은 다문자 또는 문장 수준의 중국어 필기 인식을 위해 제공된다. 필기 입력 기능을 제공하기 위한 사용자 인터페이스들이 또한 개시되어 있다.Methods, systems, and computer-readable media relating to techniques for providing handwriting input functionality on a user device are provided. A handwriting recognition module is trained to recognize tens of thousands of characters using a single handwriting recognition model and to have a repertoire including a large number of non-overlapping scripts. The handwriting input module provides real-time, stroke-order and stroke-direction independent handwriting recognition for multi-character handwriting input. In particular, real-time, stroke-order and stroke-direction independent handwriting recognition is provided for multi-character or sentence-level Chinese handwriting recognition. User interfaces for providing handwriting input functionality are also disclosed.

Description

실시간 필기 인식 관리{MANAGING REAL-TIME HANDWRITING RECOGNITION}{MANAGING REAL-TIME HANDWRITING RECOGNITION}

본 발명은 컴퓨팅 디바이스 상에서 필기 입력 기능을 제공하는 것에 관한 것이며, 보다 구체적으로는, 컴퓨팅 디바이스 상에서 실시간, 멀티스크립트, 획 순서 독립적인 필기 인식 및 입력 기능을 제공하는 것에 관한 것이다.The present invention relates to providing a handwriting input capability on a computing device, and more particularly, to providing a real-time, multi-script, stroke-order independent handwriting recognition and input capability on a computing device.

필기 입력 방법은 터치 감응 표면들(예컨대, 터치 감응 디스플레이 스크린들 또는 터치 패드들)을 구비한 컴퓨팅 디바이스들에 대한 중요한 대안적인 입력 방법이다. 수많은 사용자들, 특히 일부 아시아 또는 아랍 국가들의 사용자들은 초서체로 쓰는 것에 익숙하고, 키보드로 타이핑하는 것에 대조적으로 손으로 쓰는 것을 편안하게 느낄 수도 있다.Handwriting input methods are an important alternative input method for computing devices equipped with touch-sensitive surfaces (e.g., touch-sensitive display screens or touchpads). Many users, especially those in some Asian or Arab countries, are accustomed to writing in cursive and may feel more comfortable writing by hand as opposed to typing on a keyboard.

한지(Hanzi) 및 간지(Kanji)(한자라고도 함)와 같은 소정 표어 기입 시스템(logographic writing system)들의 경우, 대응하는 표어 기입 시스템들의 문자들을 입력하기 위해 대안적인 음절 입력 방법들(예컨대, 핀인(Pinyin) 또는 가나(Kana))이 이용 가능할지라도, 그러한 음절 입력 방법들은 사용자가 표어 문자를 표음식으로 철자하는 방식을 알지 못하고 표어 문자의 부정확한 표음식 철자를 사용할 때 적절하지 않다. 따라서, 컴퓨팅 디바이스 상에서 필기 입력을 사용할 수 있는지는, 관련 표어 기입 시스템에 대해 단어들을 충분히 잘 발음할 수 없거나 전혀 발음할 수 없는 사용자들에게 중요해진다.For certain logographic writing systems, such as Hanzi and Kanji (also known as Hanja), although alternative syllabic input methods (e.g., Pinyin or Kana) may be available for entering characters of the corresponding logographic writing systems, such syllabic input methods are not suitable when the user does not know how the logographic characters are spelled phonetically and uses imprecise phonetic spellings of the logographic characters. Therefore, the availability of handwriting input on a computing device becomes important to users who are not able to pronounce the words of the relevant logographic writing system well enough or at all.

필기 입력 기능이 세계의 소정 지역들에서 일부 인기를 얻고 있지만, 개선이 여전히 필요하다. 특히, 사람의 필기는 (예컨대, 획 순서, 크기, 서체 등의 관점에서) 매우 다양하고, 고품질의 필기 인식 소프트웨어는 복잡하며 광범위한 훈련을 필요로 한다. 이와 같이, 제한된 메모리를 갖는 모바일 디바이스 상에서 효율적인 실시간 필기 인식을 제공하고 자원들을 산출하는 것이 과제로 되어 왔다.Although handwriting input has gained popularity in some parts of the world, improvements are still needed. In particular, human handwriting is very diverse (e.g., in terms of stroke order, size, font, etc.), and high-quality handwriting recognition software is complex and requires extensive training. Thus, providing efficient real-time handwriting recognition on mobile devices with limited memory and resources has been a challenge.

또한, 오늘날의 다문화 세계에서는, 여러 국가들의 사용자들이 여러 언어를 사용하고, 종종 하나 초과의 스크립트로 기입(예컨대, 영어로 된 영화 제목을 언급하는 메시지를 중국어로 기입)하는 것이 필요할 수 있다. 그러나, 기입 도중에 인식 시스템을 원하는 스크립트 또는 언어로 수동으로 전환하는 것은 번잡하고 비효율적이다. 또한, 다중 스크립트들을 동시에 취급하기 위해 디바이스의 인식 능력을 확대시키는 것은 컴퓨터 자원들에 대한 요구 및 인식 시스템의 복잡도를 크게 증가시키기 때문에, 종래의 멀티스크립트 필기 인식 기법들의 유용성은 심각하게 제한되어 있다.Moreover, in today's multicultural world, users from different countries speak different languages, and often need to type in more than one script (e.g., type a message mentioning a movie title in English into Chinese). However, manually switching the recognition system to the desired script or language during the typing process is cumbersome and inefficient. Furthermore, extending the recognition capability of a device to handle multiple scripts simultaneously significantly increases the demands on computer resources and the complexity of the recognition system, thus severely limiting the utility of conventional multi-script handwriting recognition techniques.

추가로, 종래의 필기 기법들은 인식 정확도를 달성하기 위해 언어 또는 스크립트-특정 특수성들에 크게 의존한다. 그러한 특수성들은 다른 언어들 또는 스크립트들에 대해 쉽게 호환성이 없다. 그리하여, 새로운 언어들 또는 스크립트들에 대한 필기 입력 능력들을 추가하는 것은 디바이스들 및 소프트웨어의 공급자들에 의해 가볍게 수행되지 않는 힘든 일이다. 결과적으로, 수많은 언어들의 사용자들은 그들의 전자 디바이스들에 대한 중요한 대안적인 입력 방법을 잃었다.Additionally, conventional handwriting techniques rely heavily on language- or script-specific idiosyncrasies to achieve recognition accuracy. Such idiosyncrasies are not readily portable across other languages or scripts. Thus, adding handwriting input capabilities for new languages or scripts is a daunting task that vendors of devices and software do not undertake lightly. As a result, users of many languages have lost an important alternative input method for their electronic devices.

필기 입력을 제공하기 위한 종래의 사용자 인터페이스들은 사용자로부터 필기 입력을 허용하기 위한 영역 및 필기 인식 결과들을 디스플레이하기 위한 영역을 포함한다. 소형 폼 팩터를 갖는 휴대용 디바이스들에 대해, 일반적으로 효율, 정확도 및 사용자 경험을 개선시키기 위해 사용자 인터페이스의 현저한 개선이 여전히 필요하다.Conventional user interfaces for providing handwriting input include an area for accepting handwriting input from a user and an area for displaying handwriting recognition results. For portable devices with small form factors, significant improvements in user interfaces are still needed to generally improve efficiency, accuracy, and user experience.

본 명세서는 보편적인 인식기(universal recognizer)를 사용하여 멀티스크립트 필기 인식을 제공하기 위한 기법을 설명한다. 보편적인 인식기는 상이한 언어들 및 스크립트들로 문자들에 대한 기입 샘플들의 대형 멀티스크립트 코퍼스(large multi-script corpus)를 사용하여 훈련된다. 보편적인 인식기의 훈련은 언어 독립적이며, 스크립트 독립적이며, 획 순서 독립적이며, 그리고 획 방향 독립적이다. 그리하여, 동일한 인식기는 사용 동안 입력 언어들 사이의 수동 전환을 요구하지 않고 혼합 언어, 혼합 스크립트의 필기 입력을 인식할 수 있다. 추가로, 보편적인 인식기는 전세계의 상이한 지역들에서 사용되는 상이한 언어들 및 스크립트들에서의 필기 입력을 가능하게 하기 위해 모바일 디바이스들 상에서 독립형 모듈로서 전개되기에 충분히 경량이다.This specification describes a technique for providing multi-script handwriting recognition using a universal recognizer. The universal recognizer is trained using a large multi-script corpus of writing samples for characters in different languages and scripts. The training of the universal recognizer is language-independent, script-independent, stroke-order-independent, and stroke-direction-independent. Thus, the same recognizer can recognize mixed-language, mixed-script handwriting input without requiring manual switching between input languages during use. Additionally, the universal recognizer is lightweight enough to be deployed as a standalone module on mobile devices to enable handwriting input in different languages and scripts used in different regions of the world.

또한, 보편적인 인식기는 획 순서 독립적이며 획 방향 독립적인 공간-유도 특징부(spatially-derived feature)들에 대해 훈련되고, 획 레벨(stroke-level)에서 어떠한 시간적인 또는 시퀀스 정보도 요구하지 않기 때문에, 보편적인 인식기는 종래의 시간-기반 인식 방법들(예컨대, 은닉 마르코프 방법(Hidden Markov Method, HMM)에 기초한 인식 방법)에 비해 수많은 추가적인 특징들 및 이점들을 제공한다. 예를 들어, 사용자는 하나 이상의 문자들, 어구들, 및 문장들의 획들을 임의의 순서로 입력하여 동일한 인식 결과들을 여전히 획득하는 것이 허용된다. 그리하여, 비순서적인 다문자 입력, 및 먼저 입력된 문자들의 비순서적인 수정들(예컨대, 추가 또는 고쳐 쓰기)이 이제 가능하다.Furthermore, since the universal recognizer is trained on stroke-order-independent and stroke-direction-independent spatially-derived features and does not require any temporal or sequence information at the stroke-level, the universal recognizer offers numerous additional features and advantages over conventional time-based recognition methods (e.g., those based on Hidden Markov Methods (HMMs)). For example, a user is allowed to input strokes of one or more characters, phrases, and sentences in any order and still obtain the same recognition results. Thus, out-of-order multi-character input and out-of-order modifications (e.g., additions or rewriting) of previously entered characters are now possible.

게다가, 보편적인 인식기는 실시간 필기 인식을 위해 사용되고, 여기서 보편적인 인식기에 의해 문자 인식이 수행되기 전에 필기 입력을 명확화 또는 분할(segment)하기 위해 각 획에 대한 시간 정보가 이용 가능하며 선택적으로 사용된다. 본 명세서에 설명되는 실시간, 획 순서 독립적인 인식은 종래의 오프라인 인식 방법들(예컨대, 광학적 문자 인식(OCR))과 상이하고, 종래의 오프라인 인식 방법들보다 더 양호한 성능을 제공할 수 있다. 또한, 본 명세서에 설명되는 보편적인 인식기는 인식 시스템에서의 상이한 변동들(예컨대, 속도, 템포, 획 순서, 획 방향, 획 연속성 등에서의 변동들)의 구별되는 특징들을 명시적으로 내장하지 않고서 개인적인 기입 습관들의 높은 가변성(예컨대, 속도, 템포, 획 순서, 획 방향, 획 연속성 등에서의 가변성)을 취급함으로써, 인식 시스템의 전체적인 복잡성을 저감시킬 수 있다.Moreover, the universal recognizer is used for real-time handwriting recognition, where temporal information for each stroke is available and optionally used to disambiguate or segment the handwriting input before character recognition is performed by the universal recognizer. The real-time, stroke-order-independent recognition described herein differs from, and may provide better performance than, conventional offline recognition methods (e.g., optical character recognition (OCR)). Furthermore, the universal recognizer described herein can reduce the overall complexity of the recognition system by handling high variability in individual writing habits (e.g., variability in speed, tempo, stroke order, stroke direction, stroke continuity, etc.) without explicitly embedding distinguishing features of different variations in the recognition system (e.g., variations in speed, tempo, stroke order, stroke direction, stroke continuity, etc.).

본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 시간-유도 획 분포 정보가 선택적으로 보편적인 인식기로 재도입되어 동일한 입력 이미지에 대한 유사해 보이는 인식 출력들 사이를 명확화하고 인식 정확도를 높인다. 시간-유도 특징부(temporally-derived feature)들 및 공간-유도 특징부들이 별도의 훈련 프로세스를 통하여 획득되고 별도의 훈련이 완료된 후에 필기 인식 모델에서만 조합되기 때문에, 시간-유도 획 분포 정보의 재도입은 보편적인 인식기의 획 순서 및 획 방향 독립성을 손상시키지 않는다. 게다가, 시간-유도 획 분포 정보는, 유사해 보이는 문자들의 획 순서들의 차이들에 대한 명시적 지식에 의존하지 않고서, 유사해 보이는 문자들의 구별되는 시간 특성들을 캡처하도록 세심하게 설계된다.As described herein, in some embodiments, temporally-derived stroke distribution information is optionally reintroduced into the universal recognizer to disambiguate similar-looking recognition outputs for the same input image and to improve recognition accuracy. Since temporally-derived features and spatially-derived features are acquired through separate training processes and are only combined in the handwriting recognition model after the separate training is completed, reintroduction of temporally-derived stroke distribution information does not compromise the stroke-order and stroke-direction independence of the universal recognizer. Furthermore, the temporally-derived stroke distribution information is carefully designed to capture distinguishing temporal characteristics of similar-looking characters without relying on explicit knowledge of differences in stroke orders of similar-looking characters.

필기 입력 기능을 제공하기 위한 사용자 인터페이스들이 또한 본 명세서에 설명된다.User interfaces for providing handwriting input functionality are also described herein.

일부 실시예들에서, 멀티스크립트 필기 인식을 제공하는 방법은, 멀티스크립트 훈련 코퍼스(multi-script training corpus)의 공간-유도 특징부들에 기초하여 멀티스크립트 필기 인식 모델을 훈련시키는 단계 - 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 및 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계를 포함한다.In some embodiments, a method of providing multi-script handwriting recognition comprises the steps of training a multi-script handwriting recognition model based on spatially-guided features of a multi-script training corpus, the multi-script training corpus including individual handwriting samples corresponding to characters in at least three non-overlapping scripts; and providing real-time handwriting recognition of a user's handwriting input using the multi-script handwriting recognition model trained on the spatially-guided features of the multi-script training corpus.

일부 실시예들에서, 멀티스크립트 필기 인식을 제공하는 방법은, 멀티스크립트 필기 인식 모델을 수신하는 단계 - 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련되었고, 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함함 -; 및 필기 입력을 수신하는 것에 응답하여, 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 사용자에게 실시간으로 제공하는 단계를 포함한다.In some embodiments, a method of providing multi-script handwriting recognition comprises: receiving a multi-script handwriting recognition model, wherein the multi-script recognition model has been trained on spatially-derived features of a multi-script training corpus, the multi-script training corpus including individual handwriting samples corresponding to characters of at least three non-overlapping scripts; receiving handwriting input from a user, the handwriting input including one or more handwritten strokes provided on a touch-sensitive surface coupled to the user device; and in response to receiving the handwriting input, providing to the user in real time one or more handwriting recognition results based on the multi-script handwriting recognition model trained on spatially-derived features of the multi-script training corpus.

일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 복수의 필기 획들을 수신하는 단계 - 복수의 필기 획들은 필기 문자에 대응함 -; 복수의 필기 획들에 기초하여 입력 이미지를 생성하는 단계; 입력 이미지를 필기 인식 모델로 제공하여 필기 문자의 실시간 인식을 수행하는 단계 - 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공함 -; 및 복수의 필기 획들을 수신하는 것에 실시간으로, 복수의 필기 획들이 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자를 디스플레이하는 단계를 포함한다.In some embodiments, a method of providing real-time handwriting recognition includes the steps of: receiving a plurality of handwritten strokes from a user, the plurality of handwritten strokes corresponding to handwritten characters; generating an input image based on the plurality of handwritten strokes; providing the input image to a handwriting recognition model to perform real-time recognition of the handwritten character, the handwriting recognition model providing stroke order-independent handwriting recognition; and, in real-time upon receiving the plurality of handwritten strokes, displaying an identical first output character regardless of the individual order in which the plurality of handwritten strokes were received from the user.

일부 실시예들에서, 본 방법은, 사용자로부터 제2 복수의 필기 획들을 수신하는 단계 - 제2 복수의 필기 획들은 제2 필기 문자에 대응함 -; 제2 복수의 필기 획들에 기초하여 제2 입력 이미지를 생성하는 단계; 제2 입력 이미지를 필기 인식 모델로 제공하여 제2 필기 문자의 실시간 인식을 수행하는 단계; 및 제2 복수의 필기 획들을 수신하는 것에 실시간으로, 제2 복수의 필기 획들에 대응하는 제2 출력 문자를 디스플레이하는 단계를 추가로 포함하고, 제1 출력 문자 및 제2 출력 문자는 제1 복수의 필기 입력들 및 제2 복수의 필기 입력들이 사용자에 의해 제공된 개별 순서에 관계없이 공간 시퀀스에서 동시에 디스플레이된다.In some embodiments, the method further comprises the steps of: receiving a second plurality of handwritten strokes from a user, the second plurality of handwritten strokes corresponding to a second handwritten character; generating a second input image based on the second plurality of handwritten strokes; providing the second input image to a handwriting recognition model to perform real-time recognition of the second handwritten character; and displaying, in real-time upon receiving the second plurality of handwritten strokes, a second output character corresponding to the second plurality of handwritten strokes, wherein the first output character and the second output character are displayed simultaneously in a spatial sequence regardless of the individual order in which the first plurality of handwriting inputs and the second plurality of handwriting inputs were provided by the user.

일부 실시예들에서, 제2 복수의 필기 획들은 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향을 따라 제1 복수의 필기 획들을 공간적으로 뒤따르고, 제2 출력 문자는 디폴트 기입 방향을 따른 공간 시퀀스에서 제1 출력 문자를 뒤따르고, 본 방법은, 필기 문자를 개정하기 위해 사용자로부터 제3 필기 획을 수신하는 단계 - 제3 필기 획은 시간적으로 제1 복수의 필기 획들 및 제2 복수의 필기 획들 후에 수신됨 -; 제3 필기 획을 수신하는 것에 응답하여, 제1 복수의 필기 획들에 대한 제3 필기 획의 상대적인 근접성에 기초하여 제1 복수의 필기 획들과 동일한 인식 유닛에 필기 획을 배정하는 단계; 제1 복수의 필기 획들 및 제3 필기 획에 기초하여 개정된 입력 이미지를 생성하는 단계; 개정된 입력 이미지를 필기 인식 모델로 제공하여 개정된 필기 문자의 실시간 인식을 수행하는 단계; 및 제3 필기 입력을 수신하는 것에 응답하여, 개정된 입력 이미지에 대응하는 제3 출력 문자를 디스플레이하는 단계 - 제3 출력 문자는 제1 출력 문자를 대신하고 디폴트 기입 방향을 따른 공간 시퀀스에서 제2 출력 문자와 동시에 디스플레이됨 - 를 추가로 포함한다.In some embodiments, the second plurality of handwritten strokes spatially follow the first plurality of handwritten strokes along a default writing direction of a handwriting input interface of the user device, and the second output character follows the first output character in a spatial sequence along the default writing direction, the method comprising: receiving a third handwritten stroke from the user to revise the handwritten character, the third handwritten stroke being received temporally after the first plurality of handwritten strokes and the second plurality of handwritten strokes; in response to receiving the third handwritten stroke, assigning the handwritten stroke to a same recognition unit as the first plurality of handwritten strokes based on a relative proximity of the third handwritten stroke to the first plurality of handwritten strokes; generating a revised input image based on the first plurality of handwritten strokes and the third handwritten stroke; providing the revised input image to a handwriting recognition model to perform real-time recognition of the revised handwritten character; and in response to receiving a third handwriting input, further comprising the step of displaying a third output character corresponding to the revised input image, the third output character replacing the first output character and displayed simultaneously with the second output character in a spatial sequence along the default writing direction.

일부 실시예들에서, 본 방법은, 제3 출력 문자 및 제2 출력 문자가 필기 입력 인터페이스의 후보 디스플레이 영역에서 인식 결과로서 동시에 디스플레이되는 동안, 사용자로부터 삭제 입력(deletion input)을 수신하는 단계; 및 삭제 입력에 응답하여, 인식 결과에서 제3 출력 문자를 유지하면서, 인식 결과로부터 제2 출력 문자를 삭제하는 단계를 추가로 포함한다.In some embodiments, the method further comprises the steps of: receiving a deletion input from a user while a third output character and a second output character are simultaneously displayed as recognition results in a candidate display area of a handwriting input interface; and, in response to the deletion input, deleting the second output character from the recognition result while maintaining the third output character in the recognition result.

일부 실시예들에서, 상기 필기 획 각각이 사용자에 의해 제공됨에 따라 필기 입력 인터페이스의 필기 입력 영역에서 제1 복수의 필기 획들, 제2 복수의 필기 획들, 및 제3 필기 획을 실시간으로 렌더링하는 단계; 및 삭제 입력을 수신하는 것에 응답하여, 필기 입력 영역에서 제1 복수의 필기 획들 및 제3 필기 획의 개별 렌더링들을 유지하면서, 필기 입력 영역으로부터 제2 복수의 필기 획들의 개별 렌더링을 삭제하는 단계.In some embodiments, the step of rendering in real time a first plurality of handwritten strokes, a second plurality of handwritten strokes, and a third handwritten stroke in a handwriting input area of a handwriting input interface as each of the handwriting strokes is provided by a user; and in response to receiving a delete input, the step of deleting the individual rendering of the second plurality of handwritten strokes from the handwriting input area while maintaining the individual renderings of the first plurality of handwritten strokes and the third handwritten stroke in the handwriting input area.

일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 하나 이상의 필기 획들을 포함함 -; 필기 인식 모델에 기초하여, 필기 입력에 대한 복수의 출력 문자들을 식별하는 단계; 사전결정된 분류 기준에 기초하여 복수의 출력 문자들을 2개 이상의 카테고리들로 나누는 단계; 필기 입력 인터페이스의 후보 디스플레이 영역의 초기 시야(initial view)에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들을 디스플레이하는 단계 - 후보 디스플레이 영역의 초기 시야는 후보 디스플레이 영역의 확장 시야(extended view)를 호출하기 위한 어포던스(affordance)를 동시에 구비함 -; 확장 시야를 호출하기 위한 어포던스를 선택하는 사용자 입력을 수신하는 단계; 및 사용자 입력에 응답하여, 후보 디스플레이 영역의 확장 시야에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들 및 후보 디스플레이 영역의 초기 시야에서 사전에 디스플레이되지 않은 적어도 제2 카테고리 내의 개별 출력 문자들을 디스플레이하는 단계를 포함한다.In some embodiments, a method for providing real-time handwriting recognition comprises: receiving a handwriting input from a user, the handwriting input comprising one or more handwriting strokes provided in a handwriting input area of a handwriting input interface; identifying a plurality of output characters for the handwriting input based on a handwriting recognition model; classifying the plurality of output characters into two or more categories based on predetermined classification criteria; displaying, in an initial view of a candidate display area of the handwriting input interface, individual output characters within a first category of the two or more categories, the initial view of the candidate display area simultaneously having an affordance for invoking an extended view of the candidate display area; receiving a user input selecting an affordance for invoking the extended view; and, in response to the user input, displaying, in the extended view of the candidate display area, individual output characters within the first category of the two or more categories and individual output characters within at least a second category that were not previously displayed in the initial view of the candidate display area.

일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -; 필기 인식 모델에 기초하여, 필기 입력으로부터 복수의 출력 문자들을 인식하는 단계 - 출력 문자들은 자연 인간 언어의 스크립트로부터의 적어도 제1 이모지 캐릭터 및 적어도 제1 문자를 포함함 -; 및 필기 입력 인터페이스의 후보 디스플레이 영역에서 자연 인간 언어의 스크립트로부터의 제1 이모지 캐릭터 및 제1 문자를 포함하는 인식 결과를 디스플레이하는 단계를 포함한다.In some embodiments, a method of providing real-time handwriting recognition includes: receiving a handwriting input from a user, wherein the handwriting input comprises a plurality of handwritten strokes provided in a handwriting input area of a handwriting input interface; recognizing a plurality of output characters from the handwriting input based on a handwriting recognition model, wherein the output characters comprise at least a first emoji character and at least a first character from a script of a natural human language; and displaying a recognition result comprising the first emoji character and the first character from the script of the natural human language in a candidate display area of the handwriting input interface.

일부 실시예들에서, 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 디바이스에 결합된 터치 감응 표면에서 제공되는 복수의 필기 획들을 포함함 -; 필기 입력 인터페이스의 필기 입력 영역에서 복수의 필기 획들을 실시간으로 렌더링하는 단계; 복수의 필기 획들에 대한 핀치 제스처 입력(pinch gesture input) 및 팽창 제스처 입력(expand gesture input) 중 하나를 수신하는 단계; 핀치 제스처 입력을 수신할 시에, 복수의 필기 획들을 단일 인식 유닛으로서 처리함으로써 복수의 필기 획들에 기초하여 제1 인식 결과를 생성하는 단계; 팽창 제스처 입력을 수신할 시에, 복수의 필기 획들을 팽창 제스처 입력에 의해 떼어내진 2개의 별도의 인식 유닛들로서 처리함으로써 복수의 필기 획들에 기초하여 제2 인식 결과를 생성하는 단계; 및 제1 인식 결과 및 제2 인식 결과의 개별 인식 결과를 생성할 시에, 필기 입력 인터페이스의 후보 디스플레이 영역에서 생성된 인식 결과를 디스플레이하는 단계를 포함한다.In some embodiments, a method of providing handwriting recognition comprises: receiving a handwriting input from a user, the handwriting input comprising a plurality of handwritten strokes provided on a touch-sensitive surface coupled to a device; rendering the plurality of handwritten strokes in real time in a handwriting input area of a handwriting input interface; receiving one of a pinch gesture input and an expand gesture input for the plurality of handwritten strokes; upon receiving the pinch gesture input, generating a first recognition result based on the plurality of handwritten strokes by processing the plurality of handwritten strokes as a single recognition unit; upon receiving the expand gesture input, generating a second recognition result based on the plurality of handwritten strokes by processing the plurality of handwritten strokes as two separate recognition units separated by the expand gesture input; and upon generating separate recognition results of the first recognition result and the second recognition result, displaying the generated recognition results in a candidate display area of the handwriting input interface.

일부 실시예들에서, 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -; 복수의 필기 획들로부터 복수의 인식 유닛들을 식별하는 단계 - 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함함 -; 복수의 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 다문자 인식 결과를 생성하는 단계; 필기 입력 인터페이스의 후보 디스플레이 영역에서 다문자 인식 결과를 디스플레이하는 단계; 다문자 인식 결과가 후보 디스플레이 영역에서 디스플레이되는 동안, 사용자로부터 삭제 입력을 수신하는 단계; 및 삭제 입력을 수신하는 것에 응답하여, 후보 디스플레이 영역에서 디스플레이되는 다문자 인식 결과로부터 최후 문자(end character)를 제거하는 단계를 포함한다.In some embodiments, a method of providing handwriting recognition includes: receiving a handwriting input from a user, the handwriting input comprising a plurality of handwritten strokes provided in a handwriting input area of a handwriting input interface; identifying a plurality of recognition units from the plurality of handwritten strokes, each recognition unit comprising a respective subset of the plurality of handwritten strokes; generating a multi-character recognition result comprising individual characters recognized from the plurality of recognition units; displaying the multi-character recognition result in a candidate display area of the handwriting input interface; receiving a delete input from the user while the multi-character recognition result is displayed in the candidate display area; and in response to receiving the delete input, removing an end character from the multi-character recognition result displayed in the candidate display area.

일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 디바이스의 배향을 결정하는 단계; 제1 배향으로 있는 디바이스에 따른 수평 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공하는 단계 - 수평 입력 모드에서 입력되는 필기 입력의 개별 라인은 수평 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할됨 -; 및 제2 배향으로 있는 디바이스에 따른 수직 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공하는 단계 - 수직 입력 모드에서 입력되는 필기 입력의 개별 라인은 수직 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할됨 - 를 포함한다.In some embodiments, a method of providing real-time handwriting recognition includes: determining an orientation of a device; providing a handwriting input interface on the device in a horizontal input mode according to the device in a first orientation, wherein an individual line of handwriting input entered in the horizontal input mode is segmented into one or more individual recognition units along a horizontal writing direction; and providing a handwriting input interface on the device in a vertical input mode according to the device in a second orientation, wherein an individual line of handwriting input entered in the vertical input mode is segmented into one or more individual recognition units along a vertical writing direction.

일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 디바이스에 결합된 터치 감응 표면 상에서 제공되는 복수의 필기 획들을 포함함 -; 필기 입력 인터페이스의 필기 입력 영역에서 복수의 필기 획들을 렌더링하는 단계; 복수의 필기 획들을 2개 이상의 인식 유닛들로 분할하는 단계 - 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함함 -; 사용자로부터 편집 요청(edit request)을 수신하는 단계; 편집 요청에 응답하여, 필기 입력 영역에서 2개 이상의 인식 유닛들을 시각적으로 구별하는 단계; 및 필기 입력 영역으로부터 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단을 제공하는 단계를 포함한다.In some embodiments, a method of providing real-time handwriting recognition comprises: receiving a handwriting input from a user, the handwriting input comprising a plurality of handwritten strokes provided on a touch-sensitive surface coupled to a device; rendering the plurality of handwritten strokes in a handwriting input area of a handwriting input interface; segmenting the plurality of handwritten strokes into two or more recognition units, each recognition unit comprising a distinct subset of the plurality of handwritten strokes; receiving an edit request from the user; in response to the edit request, visually distinguishing the two or more recognition units in the handwriting input area; and providing means for individually deleting each of the two or more recognition units from the handwriting input area.

일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 제1 필기 입력을 수신하는 단계 - 제1 필기 입력은 복수의 필기 획들을 포함하고, 복수의 필기 획들은 필기 입력 인터페이스의 필기 입력 영역과 연관된 개별 기입 방향을 따라 분포되는 다수의 인식 유닛들을 형성함 -; 필기 획이 사용자에 의해 제공됨에 따라 필기 입력 영역에서 복수의 필기 획들 각각을 렌더링하는 단계; 인식 유닛이 완전히 렌더링된 후에 다수의 인식 유닛들 각각에 대한 개별 페이딩 프로세스(fading process)를 시작하는 단계 - 개별 페이딩 프로세스 동안, 제1 필기 입력에서의 인식 유닛의 렌더링이 점점 더 페이딩됨 -; 필기 입력 영역 중에서 다수의 인식 유닛의 페이딩된 인식 유닛에 의해 점유되는 구역 위에서 사용자로부터 제2 필기 입력을 수신하는 단계; 및 제2 필기 입력을 수신하는 것에 응답하여: 필기 입력 영역에서 제2 필기 입력을 렌더링하는 단계; 및 필기 입력 영역으로부터 페이딩된 인식 유닛들 모두를 클리어하는 단계를 포함한다.In some embodiments, a method for providing real-time handwriting recognition comprises: receiving a first handwriting input from a user, wherein the first handwriting input comprises a plurality of handwriting strokes, the plurality of handwriting strokes forming a plurality of recognition units distributed along respective writing directions associated with a handwriting input area of a handwriting input interface; rendering each of the plurality of handwriting strokes in the handwriting input area as the handwriting strokes are provided by the user; initiating an individual fading process for each of the plurality of recognition units after the recognition units are fully rendered, wherein during the individual fading process, rendering of the recognition units in the first handwriting input becomes increasingly more faded; receiving a second handwriting input from the user over an area of the handwriting input area occupied by faded recognition units of the plurality of recognition units; and in response to receiving the second handwriting input: rendering the second handwriting input in the handwriting input area; and clearing all of the faded recognition units from the handwriting input area.

일부 실시예들에서, 필기 인식을 제공하는 방법은, 필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부들의 세트를 별도로 훈련시키는 단계 - 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며, 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징지음 -; 필기 인식 모델에서의 공간-유도 특징부들의 세트와 시간-유도 특징부들의 세트를 조합하는 단계; 및 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계를 포함한다.In some embodiments, a method for providing handwriting recognition comprises the steps of separately training a set of spatially-derived features and a set of temporally-derived features of a handwriting recognition model, wherein the set of spatially-derived features is trained on a corpus of training images, each of the images being an image of a handwriting sample for an individual character of an output character set, and the set of temporally-derived features is trained on a corpus of stroke-distribution profiles, each stroke-distribution profile numerically characterizing the spatial distribution of a plurality of strokes in the handwriting sample for an individual character of the output character set; combining the set of spatially-derived features and the set of temporally-derived features in the handwriting recognition model; and providing real-time handwriting recognition of a user's handwriting input using the handwriting recognition model.

본 명세서에 설명되는 발명 대상의 하나 이상의 실시예들의 상세사항은 첨부 도면 및 하기 설명에서 기술된다. 발명 대상의 다른 특징, 양태, 및 이점은 본 명세서, 도면, 및 청구범위로부터 명백해질 것이다.Details of one or more embodiments of the subject matter described herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will be apparent from the specification, drawings, and claims.

도 1은 일부 실시예들에 따른 터치 감응 디스플레이를 갖는 휴대용 다기능 디바이스를 도시하는 블록도이다.
도 2는 일부 실시예들에 따른 터치 감응 디스플레이를 갖는 휴대용 다기능 디바이스를 도시한다.
도 3은 일부 실시예들에 따른 디스플레이 및 터치 감응 표면을 갖는 예시적인 다기능 디바이스의 블록도이다.
도 4는 일부 실시예들에 따른 디스플레이로부터 분리되는 터치 감응 표면을 갖는 다기능 디바이스에 대한 예시적인 사용자 인터페이스를 도시한다.
도 5는 일부 실시예들에 따른 필기 입력 시스템의 동작 환경의 블록도이다.
도 6은 일부 실시예들에 따른 멀티스크립트 필기 인식 모델의 블록도이다.
도 7은 일부 실시예들에 따른 멀티스크립트 필기 인식 모델을 훈련시키기 위한 예시적인 프로세스의 플로차트이다.
도 8a 및 도 8b는 일부 실시예들에 따른 휴대용 다기능 디바이스 상에서의 실시간 멀티스크립트 필기 인식 및 입력을 나타내는 예시적인 사용자 인터페이스들을 도시한다.
도 9a 및 도 9b는 휴대용 다기능 디바이스 상에서의 실시간 멀티스크립트 필기 인식 및 입력을 제공하기 위한 예시적인 프로세스의 플로차트들이다.
도 10a 내지 도 10c는 일부 실시예들에 따른 휴대용 다기능 디바이스 상에서의 실시간 획 순서 독립적인 필기 인식 및 입력을 제공하기 위한 예시적인 프로세스의 플로차트들이다.
도 11a 내지 도 11k는 일부 실시예들에 따른, 후보 디스플레이 영역의 정상 시야(normal view)에서 하나의 카테고리의 인식 결과들을 선택적으로 디스플레이하고, 후보 디스플레이 영역의 확장 시야에서 다른 카테고리들의 인식 결과들을 선택적으로 디스플레이하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 12a 및 도 12b는 일부 실시예들에 따른, 후보 디스플레이 영역의 정상 시야에서 하나의 카테고리의 인식 결과들을 선택적으로 디스플레이하고, 후보 디스플레이 영역의 확장 시야에서 다른 카테고리들의 인식 결과들을 선택적으로 디스플레이하기 위한 예시적인 프로세스의 플로차트들이다.
도 13a 내지 도 13e는 일부 실시예들에 따른 필기 입력을 통하여 이모지 캐릭터들을 입력하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 14는 일부 실시예들에 따른 필기 입력을 통하여 이모지 캐릭터들을 입력하기 위한 예시적인 프로세스의 플로차트이다.
도 15a 내지 도 15k는 일부 실시예들에 따른, 핀치 또는 팽창 제스처를 사용하여 현재 누적된 필기 입력을 하나 이상의 인식 유닛들로 나누는 방식을 필기 입력 모듈에 통지하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 16a 및 도 16b는 일부 실시예들에 따른, 핀치 또는 팽창 제스처를 사용하여 현재 누적된 필기 입력을 하나 이상의 인식 유닛들로 나누는 방식을 필기 입력 모듈에 통지하기 위한 예시적인 프로세스의 플로차트들이다.
도 17a 내지 도 17h는 일부 실시예들에 따른 사용자의 필기 입력의 문자 단위(character-by-character) 삭제를 제공하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 18a 및 도 18b는 일부 실시예들에 따른 사용자의 필기 입력의 문자 단위 삭제를 제공하기 위한 예시적인 프로세스의 플로차트들이다.
도 19a 내지 도 19f는 일부 실시예들에 따른 수직 기입 모드와 수평 기입 모드 사이에서 전환하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 20a 내지 도 20c는 일부 실시예들에 따른 수직 기입 모드와 수평 기입 모드 사이에서 전환하기 위한 예시적인 프로세스의 플로차트들이다.
도 21a 내지 도 21h는 일부 실시예들에 따른, 사용자의 필기 입력에서 식별되는 개별 인식 유닛들을 디스플레이하고 선택적으로 삭제하는 수단을 제공하기 위한 사용자 인터페이스들을 도시한다.
도 22a 및 도 22b는 일부 실시예들에 따른, 사용자의 필기 입력에서 식별되는 개별 인식 유닛들을 디스플레이하고 선택적으로 삭제하는 수단을 제공하기 위한 예시적인 프로세스의 플로차트들이다.
도 23a 내지 도 23l은 일부 실시예들에 따른, 필기 입력 영역에서 기존의 필기 입력 위에 제공되는 새로운 필기 입력을, 기존의 필기 입력에 대해 디스플레이되는 인식 결과를 입력하기 위한 암시적 확인 입력(implicit confirmation input)으로서 이용하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 24a 및 도 24b은 일부 실시예들에 따른, 필기 입력 영역에서 기존의 필기 입력 위에 제공되는 새로운 필기 입력을, 기존의 필기 입력에 대해 디스플레이되는 인식 결과를 입력하기 위한 암시적 확인 입력으로서 이용하기 위한 예시적인 프로세스의 플로차트들이다.
도 25a 및 도 25b는 일부 실시예들에 따른, 필기 인식 모델의 획 순서 및 획 방향 독립성을 손상시키지 않고서, 공간-유도 특징부들에 기초한 필기 인식 모델로 시간-유도 획 분포 정보를 통합하기 위한 예시적인 프로세스의 플로차트들이다.
도 26은 일부 실시예들에 따른 예시적인 필기 인식 시스템의 공간-유도 특징부들 및 시간-유도 특징부들의 별도의 훈련 및 후속 통합을 예시하는 블록도이다.
도 27은 문자의 획 분포 프로파일을 산출하기 위한 예시적인 방법을 예시하는 블록도이다.
도면 전체에 걸쳐서 동일한 도면 부호들은 대응하는 부분들을 지칭한다.
FIG. 1 is a block diagram illustrating a portable multifunction device having a touch-sensitive display according to some embodiments.
FIG. 2 illustrates a portable multifunction device having a touch-sensitive display according to some embodiments.
FIG. 3 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface according to some embodiments.
FIG. 4 illustrates an exemplary user interface for a multifunction device having a touch-sensitive surface that is separate from a display according to some embodiments.
FIG. 5 is a block diagram of an operating environment of a handwriting input system according to some embodiments.
FIG. 6 is a block diagram of a multi-script handwriting recognition model according to some embodiments.
FIG. 7 is a flowchart of an exemplary process for training a multi-script handwriting recognition model according to some embodiments.
FIGS. 8A and 8B illustrate exemplary user interfaces illustrating real-time multi-script handwriting recognition and input on a portable multifunction device according to some embodiments.
FIGS. 9A and 9B are flowcharts of exemplary processes for providing real-time multi-script handwriting recognition and input on a portable multi-function device.
FIGS. 10A through 10C are flowcharts of exemplary processes for providing real-time stroke-order independent handwriting recognition and input on a portable multifunction device according to some embodiments.
FIGS. 11A through 11K illustrate exemplary user interfaces for selectively displaying recognition results of one category in a normal view of a candidate display area and selectively displaying recognition results of other categories in an extended view of the candidate display area, according to some embodiments.
FIGS. 12A and 12B are flowcharts of an exemplary process for selectively displaying recognition results of one category in a normal field of view of a candidate display area and selectively displaying recognition results of other categories in an extended field of view of the candidate display area, according to some embodiments.
FIGS. 13A through 13E illustrate exemplary user interfaces for entering emoji characters via handwriting input according to some embodiments.
FIG. 14 is a flowchart of an exemplary process for entering emoji characters via handwriting input according to some embodiments.
FIGS. 15A through 15K illustrate exemplary user interfaces for notifying a handwriting input module of how to divide the currently accumulated handwriting input into one or more recognition units using a pinch or expand gesture, according to some embodiments.
FIGS. 16A and 16B are flowcharts of an exemplary process for notifying a handwriting input module of how to divide the currently accumulated handwriting input into one or more recognition units using a pinch or expand gesture, according to some embodiments.
FIGS. 17A through 17H illustrate exemplary user interfaces for providing character-by-character deletion of a user's handwriting input according to some embodiments.
FIGS. 18A and 18B are flowcharts of an exemplary process for providing character-by-character deletion of a user's handwriting input according to some embodiments.
FIGS. 19A through 19F illustrate exemplary user interfaces for switching between vertical writing mode and horizontal writing mode according to some embodiments.
FIGS. 20A through 20C are flowcharts of exemplary processes for switching between vertical writing mode and horizontal writing mode according to some embodiments.
FIGS. 21A through 21H illustrate user interfaces for providing means for displaying and optionally deleting individual recognition units identified in a user's handwriting input, according to some embodiments.
FIGS. 22A and 22B are flowcharts of an exemplary process for providing means for displaying and optionally deleting individual recognition units identified in a user's handwriting input, according to some embodiments.
FIGS. 23A through 23L illustrate exemplary user interfaces for using a new handwriting input provided over an existing handwriting input in a handwriting input area as an implicit confirmation input for entering a recognition result displayed for the existing handwriting input, according to some embodiments.
FIGS. 24A and 24B are flowcharts of an exemplary process for using a new handwriting input provided over an existing handwriting input in a handwriting input area as an implicit confirmation input for entering a recognition result displayed for the existing handwriting input, according to some embodiments.
FIGS. 25A and 25B are flowcharts of an exemplary process for integrating time-derived stroke distribution information into a handwriting recognition model based on space-derived features without compromising stroke order and stroke direction independence of the handwriting recognition model, according to some embodiments.
FIG. 26 is a block diagram illustrating separate training and subsequent integration of spatially-derived features and temporally-derived features of an exemplary handwriting recognition system according to some embodiments.
Figure 27 is a block diagram illustrating an exemplary method for producing a stroke distribution profile of a character.
Identical drawing symbols throughout the drawings represent corresponding parts.

많은 전자 디바이스들은 문자 입력을 위한 소프트 키보드들을 갖는 그래픽 사용자 인터페이스들을 갖는다. 일부 전자 디바이스들 상에서, 사용자는 또한 디바이스들에 결합된 터치 감응 표면 또는 터치 감응 디스플레이 스크린 상에 필기를 통해 사용자가 문자들을 입력할 수 있게 하는 필기 입력 인터페이스를 설치하거나 또는 인에이블(enable)할 수 있다. 종래의 필기 인식 입력 방법들 및 사용자 인터페이스들은 여러 문제들 및 단점들을 갖고 있다. 예를 들어,Many electronic devices have graphical user interfaces with soft keyboards for entering text. On some electronic devices, a user may also install or enable a handwriting input interface that allows the user to enter text by writing on a touch-sensitive surface or touch-sensitive display screen coupled to the device. Conventional handwriting recognition input methods and user interfaces have several problems and drawbacks. For example,

일반적으로, 종래의 필기 입력 기능은 언어 단위로 또는 스크립트 단위로 가능하게 된다. 각각의 추가적인 입력 언어는 별도의 저장 공간 및 메모리를 차지하는 별도의 필기 인식 모델의 설치를 요구한다. 상이한 언어들에 대한 필기 인식 모델들을 조합함으로써의 시너지 효과는 거의 제공되지 않으며, 혼합 언어 또는 혼합 스크립트 필기 인식은 종래에는 복잡한 명확화 프로세스로 인해 매우 긴 시간이 걸렸다. Typically, conventional handwriting input capabilities are enabled on a language-by-language or script-by-script basis. Each additional input language requires installation of a separate handwriting recognition model that occupies separate storage space and memory. Combining handwriting recognition models for different languages rarely provides synergy effects, and mixed-language or mixed-script handwriting recognition has traditionally taken a very long time due to complex disambiguation processes.

또한, 종래의 필기 인식 시스템들은 문자 인식을 위한 언어-특정 또는 스크립트-특정 특성들에 지나치게 의존한다. 혼합 언어 필기 입력의 인식은 부족한 정확도를 가졌다. 게다가, 인식된 언어들의 이용 가능한 조합들은 매우 제한된다. 대부분의 시스템들은 사용자에게 각각의 디폴트가 아닌(non-default) 언어 또는 스크립트에서 필기 입력을 제공하기 전에 원하는 언어-특정 필기 인식기를 수동으로 특정하도록 요구하였다. In addition, conventional handwriting recognition systems rely too heavily on language-specific or script-specific features for character recognition. The recognition of mixed-language handwriting input has poor accuracy. Furthermore, the available combinations of recognized languages are very limited. Most systems require the user to manually specify the desired language-specific handwriting recognizer before providing handwriting input in each non-default language or script.

수많은 기존의 실시간 필기 인식 모델들은 획 단위(stroke-by-stroke) 레벨 상에서 시간 또는 시퀀스 정보를 요구하며, 이는 문자를 기입할 수 있는 방법의 높은 가변성(예컨대, 서체들 및 개인의 습관들로 인한 획들의 형상, 길이, 템포, 분할, 순서 및 방향에서의 높은 가변성)을 다룰 때 부정확한 인식 결과들을 생성한다. 일부 시스템들은 또한 사용자들에게 필기 입력을 제공할 때 (예컨대, 각 문자 입력의 크기, 시퀀스 및 시간프레임에 대한 고유한 가정들에 의한) 엄밀한 공간 및 시간 기준들을 준수하도록 요구한다. 이들 기준들로부터 벗어나면 수정하기 어려운 부정확한 인식 결과들이 야기되었다. Many existing real-time handwriting recognition models require temporal or sequence information at a stroke-by-stroke level, which leads to inaccurate recognition results when dealing with the high variability in the way characters can be written (e.g., high variability in the shape, length, tempo, segmentation, order and direction of strokes due to fonts and individual habits). Some systems also require users to adhere to strict spatial and temporal criteria when providing handwriting input (e.g., due to inherent assumptions about the size, sequence and time frame of each character input). Deviations from these criteria have led to inaccurate recognition results that are difficult to correct.

현재, 대부분의 실시간 필기 입력 인터페이스들은 사용자가 한 번에 수 개의 문자들만을 입력하는 것을 허용한다. 긴 어구들 또는 문장들의 입력은 짧은 세그먼트들로 분해되어 별도로 입력된다. 이러한 격식적인 입력은 구성(composition)의 흐름을 유지하기 위해 사용자에게 인지적 부담을 지울 뿐만 아니라, 사용자가 먼저 입력된 문자 또는 어구를 수정 또는 개정하는 것을 어렵게 하기도 한다. Currently, most real-time handwriting input interfaces allow users to input only a few characters at a time. Long phrases or sentences are inputted into short segments and entered separately. This formal input not only imposes a cognitive burden on the user to maintain the flow of the composition, but also makes it difficult for the user to edit or revise the previously entered characters or phrases.

하기에 설명되는 실시예들은 이러한 문제들 및 관련 문제들을 다룬다.The embodiments described below address these and related issues.

하기에서 도 1 내지 도 4는 예시적인 디바이스들의 설명을 제공한다. 도 5, 도 6, 도 26 및 도 27은 예시적인 필기 인식 및 입력 시스템들을 예시한다. 도 8a 및 도 8b, 도 11a 내지 도 11k, 도 13a 내지 도 13e, 도 15a 내지 도 15k, 도 17a 내지 도 17h, 도 19a 내지 도19f, 도 21a 내지 도 21h, 도 23a 내지 도 12l은 필기 인식 및 입력을 위한 예시적인 사용자 인터페이스들을 예시한다. 도 7, 도 9a 및 도 9b, 도 10a 내지 도 10c, 도 12a 및 도 12b, 도 14, 도 16a 및 도 16b, 도 18a 및 도 18b, 도 20a 내지 도 20c, 도 22a 및 도 22b, 도 24a 및 도 24b, 그리고 도 25는, 필기 인식 모델들을 훈련시키는 단계, 실시간 필기 인식 결과들을 제공하는 단계, 필기 입력을 입력 및 개정하기 위한 수단을 제공하는 단계, 및 인식 결과를 텍스트 입력으로서 입력하기 위한 수단을 제공하는 단계를 포함하는, 사용자 디바이스들 상에서 필기 인식 및 입력을 가능하게 하는 방법들을 예시하는 플로차트들이다. 도 8a 및 도 8b, 도 11a 내지 도 11k, 도 13a 내지 도 13e, 도 15a 내지 도 15k, 도 17a 내지 도 17h, 도 19a 내지 도19f, 도 21a 내지 도 21h, 도 23a 내지 도 12l에서의 사용자 인터페이스들은 도 7, 도 9a 및 도 9b, 도 10a 내지 도 10c, 도 12a 및 도 12b, 도 14, 도 16a 및 도 16b, 도 18a 및 도 18b, 도 20a 내지 도 20c, 도 22a 및 도 22b, 도 24a 및 도 24b, 그리고 도 25에서의 프로세스들을 예시하기 위해 사용된다.Below, FIGS. 1 through 4 provide descriptions of exemplary devices. FIGS. 5, 6, 26, and 27 illustrate exemplary handwriting recognition and input systems. FIGS. 8A and 8B, 11A through 11K, 13A through 13E, 15A through 15K, 17A through 17H, 19A through 19F, 21A through 21H, and 23A through 12L illustrate exemplary user interfaces for handwriting recognition and input. FIGS. 7, 9a and 9b, 10a-10c, 12a and 12b, 14, 16a and 16b, 18a and 18b, 20a-20c, 22a and 22b, 24a and 24b, and 25 are flowcharts illustrating methods for enabling handwriting recognition and input on user devices, including the steps of training handwriting recognition models, providing real-time handwriting recognition results, providing means for inputting and correcting handwriting input, and providing means for inputting the recognition results as text input. The user interfaces in FIGS. 8A and 8B, 11A through 11K, 13A through 13E, 15A through 15K, 17A through 17H, 19A through 19F, 21A through 21H, and 23A through 12L are used to illustrate the processes in FIGS. 7, 9A and 9B, 10A through 10C, 12A and 12B, 14, 16A and 16B, 18A and 18B, 20A through 20C, 22A and 22B, 24A and 24B, and 25.

예시적인 디바이스들Example devices

이제, 실시예들이 상세하게 참조될 것이며, 실시예들의 예들이 첨부 도면들에 도시된다. 하기의 상세한 설명에서, 많은 구체적인 상세사항들이 본 발명의 완전한 이해를 제공하기 위해 기술된다. 그러나, 본 발명이 이들 구체적인 상세사항들 없이 실시될 수 있다는 것은 당업자에게 자명할 것이다. 다른 예들에서, 잘 알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 실시예들의 양태들을 불필요하게 이해하기 어렵게 하지 않도록 하기 위해 상세히 설명되지 않았다.Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, circuits, and networks have not been described in detail so as not to unnecessarily obscure aspects of the embodiments.

용어들 "제1", "제2" 등이 본 명세서에서 다양한 요소들을 기술하는 데 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이들 용어들은 하나의 요소를 다른 요소로부터 구별하는 데에만 사용된다. 예를 들어, 본 발명의 범주로부터 벗어남이 없이, 제1 접촉이 제2 접촉으로 지칭될 수 있고, 유사하게, 제2 접촉이 제1 접촉으로 지칭될 수 있다. 제1 접촉 및 제2 접촉 둘 모두가 접촉들이지만, 그들이 동일한 접촉인 것은 아니다.It will also be appreciated that while the terms "first", "second", etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the present invention, a first contact could be referred to as a second contact, and similarly, a second contact could be referred to as a first contact. Although both the first contact and the second contact are contacts, they are not the same contacts.

본 명세서에서 본 발명의 설명에 사용되는 용어는 특정 실시예들을 기술하는 목적만을 위한 것이고, 본 발명을 제한하려는 의도는 아니다. 본 발명의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수의 형태들("a", "an" 및 "the")은 문맥상 명백히 다르게 나타나지 않는다면 복수의 형태들도 또한 포함하는 것으로 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 용어 "및/또는"은 열거되는 관련 항목들 중 하나 이상의 항목의 임의의 그리고 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 용어들 "포함한다(include)", "포함하는(including)", "포함한다(comprise)", 및/또는 "포함하는(comprising)"은, 본 명세서에서 사용될 때, 진술되는 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않음이 추가로 이해될 것이다.The terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in the description of the invention and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term "and/or," as used herein, refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms "include," "including," "comprise," and/or "comprising," when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.

본 명세서에서 사용되는 바와 같이, 용어 "~는 경우(if)"는 문맥에 따라 "~할 때(when)" 또는 "~ 시(upon)" 또는 "결정한 것에 응답하여(in response to determining)" 또는 "검출한 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "결정된 경우" 또는 "[진술된 상태 또는 이벤트가] 검출된 경우"는 문맥에 따라 "결정 시" 또는 "결정한 것에 응답하여" 또는 "[진술된 상태 또는 이벤트] 검출 시" 또는 "[진술된 상태 또는 이벤트를] 검출한 것에 응답하여"를 의미하는 것으로 해석될 수 있다.As used herein, the term "if" can be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting," depending on the context. Similarly, the phrase "if determined" or "if [a stated state or event] is detected" can be interpreted to mean "upon determining" or "in response to determining" or "upon detecting [a stated state or event]" or "in response to detecting [a stated state or event]," depending on the context.

전자 디바이스들, 그러한 디바이스들에 대한 사용자 인터페이스들, 및 그러한 디바이스들을 사용하는 관련 프로세스들의 실시예들이 기재된다. 일부 실시예들에서, 디바이스는 PDA 및/또는 음악 플레이어 기능들과 같은 다른 기능들을 또한 포함하는, 이동 전화기와 같은, 휴대용 통신 디바이스이다. 휴대용 다기능 디바이스들의 예시적인 실시예들은 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.(Apple Inc.)로부터의 아이폰(iPhone)(등록상표), 아이팟 터치(iPod Touch)(등록상표), 및 아이패드(iPad)(등록상표) 디바이스들을 제한 없이 포함한다. 터치 감응 표면들(예컨대, 터치 스크린 디스플레이들 및/또는 터치 패드들)을 갖는 랩톱들 또는 태블릿 컴퓨터들과 같은 다른 휴대용 전자 디바이스들이 또한 사용될 수 있다. 일부 실시예들에서, 디바이스는 휴대용 통신 디바이스가 아니라, 터치 감응 표면(예를 들어, 터치 스크린 디스플레이 및/또는 터치 패드)을 갖는 데스크톱 컴퓨터임이 또한 이해되어야 한다.Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communications device, such as a mobile telephone, that also includes other functionality, such as PDA and/or music player functionality. Exemplary embodiments of portable multifunction devices include, without limitation, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc. of Cupertino, Calif. Other portable electronic devices, such as laptops or tablet computers having touch-sensitive surfaces (e.g., touch screen displays and/or touch pads), may also be used. It should also be understood that in some embodiments, the device is a desktop computer having a touch-sensitive surface (e.g., a touch screen display and/or touch pad), rather than a portable communications device.

이하의 논의에서, 디스플레이 및 터치 감응 표면을 포함하는 전자 디바이스가 기재된다. 그러나, 전자 디바이스는 물리적 키보드, 마우스 및/또는 조이스틱과 같은, 하나 이상의 다른 물리적 사용자-인터페이스 디바이스들을 포함할 수 있다는 것이 이해되어야 한다.In the discussion below, an electronic device including a display and a touch-sensitive surface is described. However, it should be understood that the electronic device may include one or more other physical user-interface devices, such as a physical keyboard, mouse, and/or joystick.

디바이스는 전형적으로, 드로잉 애플리케이션, 프레젠테이션 애플리케이션, 워드 프로세싱 애플리케이션, 웹사이트 제작 애플리케이션, 디스크 저작 애플리케이션, 스프레드시트 애플리케이션, 게임 애플리케이션, 전화 애플리케이션, 화상 회의 애플리케이션, 이메일 애플리케이션, 인스턴트 메시징 애플리케이션, 운동 지원 애플리케이션, 사진 관리 애플리케이션, 디지털 카메라 애플리케이션, 디지털 비디오 카메라 애플리케이션, 웹 브라우징 애플리케이션, 디지털 음악 플레이어 애플리케이션, 및/또는 디지털 비디오 플레이어 애플리케이션 중 하나 이상과 같은 다양한 애플리케이션들을 지원한다.A device typically supports a variety of applications, such as one or more of a drawing application, a presentation application, a word processing application, a website creation application, a disk authoring application, a spreadsheet application, a gaming application, a telephony application, a video conferencing application, an email application, an instant messaging application, a fitness assistance application, a photo management application, a digital camera application, a digital video camera application, a web browsing application, a digital music player application, and/or a digital video player application.

디바이스 상에서 실행될 수 있는 다양한 애플리케이션들은 터치 감응 표면과 같은 적어도 하나의 일반적인 물리적 사용자-인터페이스 디바이스를 사용할 수 있다. 터치 감응 표면의 하나 이상의 기능들뿐만 아니라 디바이스 상에 디스플레이되는 대응 정보는 조정될 수 있고/있거나 하나의 애플리케이션으로부터 다음의 애플리케이션으로 그리고/또는 개별 애플리케이션 내에서 변화될 수 있다. 이러한 방식으로, 디바이스의 (터치 감응 표면과 같은) 일반적인 물리적 아키텍처는 사용자에게 직관적이고 명료한 사용자 인터페이스들로 다양한 애플리케이션들을 지원할 수 있다.The various applications that may be executed on the device may utilize at least one common physical user-interface device, such as a touch-sensitive surface. One or more functions of the touch-sensitive surface, as well as corresponding information displayed on the device, may be adjusted and/or varied from one application to the next and/or within an individual application. In this manner, the common physical architecture of the device (such as the touch-sensitive surface) may support the various applications with user interfaces that are intuitive and clear to the user.

이제, 터치 감응 디스플레이들을 갖는 휴대용 디바이스들의 실시예들에 주목한다. 도 1은 일부 실시예들에 따른 터치 감응 디스플레이들(112)을 갖는 휴대용 다기능 디바이스(100)를 도시한 블록도이다. 터치 감응 디스플레이(112)는 때때로 편의상 "터치 스크린"으로 불리며, 또한 터치 감응 디스플레이 시스템으로서 알려지거나 불릴 수 있다. 디바이스(100)는 메모리(102)(하나 이상의 컴퓨터 판독가능 저장 매체를 포함할 수 있음), 메모리 제어기(122), 하나 이상의 프로세싱 유닛(CPU)들(120), 주변기기 인터페이스(118), RF 회로(108), 오디오 회로(110), 스피커(111), 마이크로폰(113), 입력/출력(I/O) 서브시스템(106), 다른 입력 또는 제어 디바이스들(116) 및 외부 포트(124)를 포함할 수 있다. 디바이스(100)는 하나 이상의 광 센서들(164)을 포함할 수 있다. 이들 컴포넌트들은 하나 이상의 통신 버스들 또는 신호 라인들(103)을 통해 통신할 수 있다.Now, we turn to embodiments of portable devices having touch-sensitive displays. FIG. 1 is a block diagram illustrating a portable multifunction device (100) having touch-sensitive displays (112) according to some embodiments. The touch-sensitive display (112) is sometimes conveniently referred to as a “touch screen” and may also be known or referred to as a touch-sensitive display system. The device (100) may include memory (102) (which may include one or more computer-readable storage media), a memory controller (122), one or more processing units (CPUs) (120), a peripheral interface (118), RF circuitry (108), audio circuitry (110), a speaker (111), a microphone (113), an input/output (I/O) subsystem (106), other input or control devices (116), and an external port (124). The device (100) may include one or more light sensors (164). These components may communicate via one or more communication buses or signal lines (103).

디바이스(100)는 휴대용 다기능 디바이스의 일례일 뿐이고, 디바이스(100)는 도시된 것보다 더 많거나 더 적은 컴포넌트들을 가질 수 있거나, 둘 이상의 컴포넌트들을 조합할 수 있거나, 컴포넌트들의 상이한 구성 또는 배열을 가질 수 있음이 이해되어야 한다. 도 1에 도시된 다양한 컴포넌트들은 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로(application specific integrated circuit)들을 비롯한, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어 둘 모두의 조합으로 구현될 수 있다.It should be understood that the device (100) is only one example of a portable multi-function device, and that the device (100) may have more or fewer components than those illustrated, may combine two or more components, or may have different configurations or arrangements of the components. The various components illustrated in FIG. 1 may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing and/or application specific integrated circuits.

메모리(102)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 하나 이상의 자기 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 메모리 디바이스들과 같은 비휘발성 메모리를 또한 포함할 수 있다. CPU(120) 및 주변기기 인터페이스(118)와 같은 디바이스(100)의 다른 컴포넌트들에 의한 메모리(102)로의 액세스는 메모리 제어기(122)에 의해 제어될 수 있다.The memory (102) may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Access to the memory (102) by other components of the device (100), such as the CPU (120) and the peripheral interface (118), may be controlled by the memory controller (122).

주변기기 인터페이스(118)는 디바이스의 입력 및 출력 주변기기들을 CPU(120) 및 메모리(102)에 결합하는 데 사용될 수 있다. 하나 이상의 프로세서들(120)은 디바이스(100)에 대한 다양한 기능들을 수행하고 데이터를 처리하기 위해 메모리(102) 내에 저장된 다양한 소프트웨어 프로그램들 및/또는 명령어들의 세트들을 구동하거나 실행시킨다.A peripheral interface (118) may be used to couple input and output peripherals of the device to the CPU (120) and memory (102). One or more processors (120) drive or execute various software programs and/or sets of instructions stored within the memory (102) to perform various functions for the device (100) and process data.

일부 실시예들에서, 주변기기 인터페이스(118), CPU(120) 및 메모리 제어기(122)는 칩(104)과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예들에서, 그들은 별개의 칩들 상에서 구현될 수 있다In some embodiments, the peripheral interface (118), CPU (120) and memory controller (122) may be implemented on a single chip, such as chip (104). In some other embodiments, they may be implemented on separate chips.

RF(radio frequency) 회로(108)는 전자기 신호들로도 불리는 RF 신호들을 수신 및 전송한다. RF 회로(108)는 전기 신호들을 전자기 신호들로/로부터 변환하고, 전자기 신호들을 통해 통신 네트워크들 및 다른 통신 디바이스들과 통신한다.The RF (radio frequency) circuit (108) receives and transmits RF signals, also called electromagnetic signals. The RF circuit (108) converts electrical signals to and from electromagnetic signals, and communicates with communication networks and other communication devices via the electromagnetic signals.

오디오 회로(110), 스피커(111) 및 마이크로폰(113)은 사용자와 디바이스(100) 사이의 오디오 인터페이스를 제공한다. 오디오 회로(110)는 주변기기 인터페이스(118)로부터 오디오 데이터를 수신하고, 그 오디오 데이터를 전기 신호로 변환하고, 그 전기 신호를 스피커(111)로 송신한다. 스피커(111)는 전기 신호를 사람이 들을 수 있는 음파로 변환한다. 오디오 회로(110)는 또한 마이크로폰(113)에 의해 음파로부터 변환된 전기 신호를 수신한다. 오디오 회로(110)는 전기 신호를 오디오 데이터로 변환하고, 프로세싱을 위해 오디오 데이터를 주변기기 인터페이스(118)로 송신한다. 오디오 데이터는 주변기기 인터페이스(118)에 의해 메모리(102) 및/또는 RF 회로(108)로부터 검색되고/되거나 이로 송신될 수 있다. 일부 실시예 실시예들에서, 오디오 회로(110)는 또한 헤드셋 잭(예컨대, 도 2의 212)을 포함한다.The audio circuit (110), the speaker (111), and the microphone (113) provide an audio interface between a user and the device (100). The audio circuit (110) receives audio data from the peripheral interface (118), converts the audio data into an electrical signal, and transmits the electrical signal to the speaker (111). The speaker (111) converts the electrical signal into audible sound waves. The audio circuit (110) also receives the electrical signal converted from the sound waves by the microphone (113). The audio circuit (110) converts the electrical signal into audio data, and transmits the audio data to the peripheral interface (118) for processing. The audio data may be retrieved from and/or transmitted to the memory (102) and/or the RF circuit (108) by the peripheral interface (118). In some embodiments, the audio circuit (110) also includes a headset jack (e.g., 212 of FIG. 2 ).

I/O 서브시스템(106)은 터치 스크린(112) 및 다른 입력 제어 디바이스들(116)과 같은, 디바이스(100) 상의 입력/출력 주변기기들을 주변기기 인터페이스(118)에 결합시킨다. I/O 서브시스템(106)은 디스플레이 제어기(156), 및 다른 입력 또는 제어 디바이스들을 위한 하나 이상의 입력 제어기들(160)을 포함할 수 있다. 하나 이상의 입력 제어기들(160)은 다른 입력 또는 제어 디바이스(116)들로부터/로 전기 신호들을 수신/전송한다. 다른 입력 제어 디바이스들(116)은 물리적 버튼들(예컨대, 푸시 버튼들, 로커 버튼(rocker button)들 등), 다이얼들, 슬라이더 스위치들, 조이스틱들, 클릭 휠들 등을 포함할 수 있다. 일부 대안적인 실시예들에서, 입력 제어기(들)(160)은 키보드, 적외선 포트, USB 포트, 및 마우스와 같은 포인터 디바이스 중 임의의 것에 결합될 수 있다(또는 어느 것에도 결합되지 않을 수 있다). 하나 이상의 버튼들(예컨대, 도 2의 208)은 스피커(111) 및/또는 마이크로폰(113)의 음량 제어를 위한 업/다운 버튼을 포함할 수 있다. 하나 이상의 버튼들은 푸시 버튼(예컨대, 도 2의 206)을 포함할 수 있다.The I/O subsystem (106) couples input/output peripherals on the device (100), such as a touch screen (112) and other input control devices (116), to the peripheral interface (118). The I/O subsystem (106) may include a display controller (156), and one or more input controllers (160) for other input or control devices. The one or more input controllers (160) receive/transmit electrical signals from/to other input or control devices (116). The other input control devices (116) may include physical buttons (e.g., push buttons, rocker buttons, etc.), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, the input controller(s) (160) may be coupled to any (or none) of a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. One or more buttons (e.g., 208 of FIG. 2) may include up/down buttons for controlling the volume of the speaker (111) and/or microphone (113). One or more buttons may include a push button (e.g., 206 of FIG. 2).

터치 감응 디스플레이(112)는 디바이스와 사용자 사이의 입력 인터페이스 및 출력 인터페이스를 제공한다. 디스플레이 제어기(156)는 터치 스크린(112)으로부터/으로 전기 신호들을 수신 및/또는 전송한다. 터치 스크린(112)은 사용자에게 시각적 출력을 디스플레이한다. 시각적 출력은 그래픽, 텍스트, 아이콘들, 비디오 및 이들의 임의의 조합(총칭하여 "그래픽"으로 지칭함)을 포함할 수 있다. 일부 실시예들에서, 시각적 출력 중 일부 또는 모두는 사용자-인터페이스 객체들에 대응할 수 있다.The touch-sensitive display (112) provides an input interface and an output interface between the device and a user. The display controller (156) receives and/or transmits electrical signals from/to the touch screen (112). The touch screen (112) displays visual output to the user. The visual output may include graphics, text, icons, videos, and any combination thereof (collectively referred to as “graphics”). In some embodiments, some or all of the visual output may correspond to user-interface objects.

터치 스크린(112)은 햅틱 및/또는 촉각 접촉에 기초하는 사용자로부터의 입력을 수용하는 터치 감응 표면, 센서 또는 센서들의 세트를 갖는다. 터치 스크린(112) 및 디스플레이 제어기(156)는 (메모리(102) 내의 임의의 연관된 모듈들 및/또는 명령어들의 세트들과 함께) 터치 스크린(112) 상의 접촉(및 접촉의 임의의 이동 또는 중단)을 검출하고, 검출된 접촉을 터치 스크린(112) 상에 디스플레이된 사용자-인터페이스 객체들(예를 들어, 하나 이상의 소프트 키들, 아이콘들, 웹 페이지들 또는 이미지들)과의 상호작용으로 변환한다. 예시적인 실시예에서, 터치 스크린(112)과 사용자 사이의 접촉 지점은 사용자의 손가락에 대응한다.The touch screen (112) has a touch-sensitive surface, sensor, or set of sensors that accepts input from a user based on haptic and/or tactile contact. The touch screen (112) and the display controller (156) (along with any associated modules and/or sets of instructions in the memory (102)) detect contact (and any movement or interruption of the contact) on the touch screen (112) and translate the detected contact into interaction with user-interface objects displayed on the touch screen (112) (e.g., one or more soft keys, icons, web pages, or images). In an exemplary embodiment, the point of contact between the touch screen (112) and the user corresponds to the user's finger.

터치 스크린(112)은 LCD(액정 디스플레이) 기술, LPD(발광 중합체 디스플레이) 기술, 또는 LED(발광 다이오드) 기술을 이용할 수 있지만, 다른 디스플레이 기술들이 다른 실시예들에서 이용될 수 있다. 터치 스크린(112) 및 디스플레이 제어기(156)는 터치 스크린(112)과의 하나 이상의 접촉 지점들을 결정하기 위해 정전용량, 저항, 적외선 및 표면 음향파 기술들뿐만 아니라 다른 근접 센서 어레이들 또는 다른 요소들을 포함하지만 이들로 제한되지는 않는, 현재 공지되어 있거나 추후에 개발될 복수의 터치 감지 기술 중 임의의 것을 이용하여, 접촉 및 그의 임의의 이동 또는 중단을 검출할 수 있다. 예시적인 실시예에서, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이폰(등록상표), 아이팟 터치(등록상표), 및 아이패드(등록상표)에서 발견되는 것과 같은 투영형 상호 정전용량식 감지 기술(projected mutual capacitance sensing technology)이 이용된다.The touch screen (112) may utilize LCD (Liquid Crystal Display) technology, LPD (Light Emitting Polymer Display) technology, or LED (Light Emitting Diode) technology, although other display technologies may be utilized in other embodiments. The touch screen (112) and display controller (156) may detect contact and any movement or cessation thereof using any of a number of touch sensing technologies now known or later developed, including but not limited to capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements, to determine one or more points of contact with the touch screen (112). In an exemplary embodiment, projected mutual capacitance sensing technology is utilized, such as found in the iPhone®, iPod touch®, and iPad® from Apple Inc. of Cupertino, Calif.

터치 스크린(112)은 100 dpi를 초과하는 비디오 해상도를 가질 수 있다. 일부 실시예 실시예들에서, 터치 스크린은 대략 160 dpi의 비디오 해상도를 갖는다. 사용자는 스타일러스, 손가락 등과 같은 임의의 적합한 객체 또는 부속물을 사용하여 터치 스크린(112)과 접촉할 수 있다. 일부 실시예들에서, 사용자 인터페이스는 손가락-기반 접촉 및 제스처를 주로 이용하여 작업하도록 설계되는데, 이는 터치 스크린 상에서의 손가락의 더 넓은 접촉 면적으로 인해 스타일러스-기반 입력보다 덜 정밀할 수 있다. 일부 실시예들에서, 디바이스는 대략적인 손가락-기반 입력을 사용자가 원하는 행동들을 수행하기 위한 정밀한 포인터/커서 위치 또는 커맨드(command)로 변환한다. 필기 입력은 손가락-기반 접촉 또는 스타일러스-기반 접촉의 위치 및 이동을 통해 터치 스크린(112) 상에서 제공될 수 있다. 일부 실시예들에서, 터치 스크린(112)은 손가락-기반 입력 또는 스타일러스-기반 입력을 현재의 필기 입력으로의 즉각적인 시각적 피드백으로서 렌더링하고, 필기 기구(예컨대, 펜)를 이용하여 기입 표면(예컨대, 종이 한장) 상의 실제 기입의 시각적 효과를 제공한다.The touch screen (112) may have a video resolution greater than 100 dpi. In some embodiments, the touch screen has a video resolution of approximately 160 dpi. A user may contact the touch screen (112) using any suitable object or appendage, such as a stylus, a finger, etc. In some embodiments, the user interface is designed to work primarily with finger-based contacts and gestures, which may be less precise than stylus-based input due to the larger contact area of a finger on the touch screen. In some embodiments, the device converts rough finger-based inputs into precise pointer/cursor positions or commands for the user to perform desired actions. Handwriting input may be provided on the touch screen (112) via the positioning and movement of finger-based or stylus-based contacts. In some embodiments, the touch screen (112) renders finger-based or stylus-based input as immediate visual feedback of the current handwriting input, providing the visual effect of actual writing on a writing surface (e.g., a sheet of paper) using a writing instrument (e.g., a pen).

일부 실시예 실시예들에서, 터치 스크린 이외에, 디바이스(100)는 특정한 기능들을 활성화하거나 비활성화하기 위한 터치패드(도시되지 않음)를 포함할 수 있다. 일부 실시예들에서, 터치패드는 터치 스크린과는 다르게 시각적 출력을 디스플레이하지 않는 디바이스의 터치 감응 영역이다. 터치패드는 터치 스크린(112)과는 별개인 터치 감응 표면 또는 터치 스크린에 의해 형성되는 터치 감응 표면의 연장부일 수 있다.In some embodiments, in addition to the touch screen, the device (100) may include a touchpad (not shown) for activating or deactivating certain functions. In some embodiments, the touchpad is a touch-sensitive area of the device that, unlike the touch screen, does not display visual output. The touchpad may be a touch-sensitive surface separate from the touch screen (112) or an extension of a touch-sensitive surface formed by the touch screen.

디바이스(100)는 또한 다양한 컴포넌트들에 전력을 공급하기 위한 전력 시스템(162)을 포함한다. 전력 시스템(162)은 전력 관리 시스템, 하나 이상의 전원들(예컨대, 배터리, 교류 전류(alternating current: AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시기(예컨대, 발광 다이오드(LED)), 및 휴대용 디바이스들 내에서의 전력의 생성, 관리 및 분배와 연관된 임의의 다른 컴포넌트들을 포함할 수 있다.The device (100) also includes a power system (162) for supplying power to the various components. The power system (162) may include a power management system, one or more power sources (e.g., a battery, alternating current (AC)), a recharging system, a power fault detection circuit, a power converter or inverter, a power status indicator (e.g., a light emitting diode (LED)), and any other components associated with generating, managing, and distributing power within portable devices.

디바이스(100)는 또한 하나 이상의 광 센서들(164)을 포함할 수 있다. 도 1은 I/O 서브시스템(106) 내의 광 센서 제어기(158)에 결합된 광 센서를 도시한다. 광 센서(164)는 전하-결합 소자(charge-coupled device, CCD) 또는 상보성 금속-산화물 반도체(complementary metal-oxide semiconductor, CMOS) 포토트랜지스터들을 포함할 수 있다. 광 센서(164)는 하나 이상의 렌즈를 통해 투영된 주변환경으로부터의 광을 수신하고, 그 광을 이미지를 나타내는 데이터로 변환한다. 광 센서(164)는, 이미징 모듈(143)(카메라 모듈로도 칭해짐)과 함께, 정지 이미지들 또는 비디오를 캡처할 수 있다.The device (100) may also include one or more light sensors (164). FIG. 1 illustrates a light sensor coupled to a light sensor controller (158) within the I/O subsystem (106). The light sensor (164) may include charge-coupled device (CCD) or complementary metal-oxide semiconductor (CMOS) phototransistors. The light sensor (164) receives light from the surrounding environment projected through one or more lenses and converts the light into data representing an image. The light sensor (164), in conjunction with an imaging module (143) (also referred to as a camera module), may capture still images or video.

디바이스(100)는 또한 하나 이상의 근접 센서들(166)을 포함할 수 있다. 도 1은 주변기기 인터페이스(118)에 결합된 근접 센서(166)를 도시한다. 대안적으로, 근접 센서(166)는 I/O 서브시스템(106) 내의 입력 제어기(160)에 결합될 수 있다. 일부 실시예들에서, 근접 센서는 다기능 디바이스가 사용자의 귀 근처에 위치될 때(예를 들어, 사용자가 전화 통화를 하고 있을 때), 터치 스크린(112)을 오프 상태로 하고 디스에이블(disable)시킨다.The device (100) may also include one or more proximity sensors (166). FIG. 1 illustrates a proximity sensor (166) coupled to a peripheral interface (118). Alternatively, the proximity sensor (166) may be coupled to an input controller (160) within the I/O subsystem (106). In some embodiments, the proximity sensor turns off and disables the touch screen (112) when the multifunction device is positioned near a user's ear (e.g., when the user is on a phone call).

디바이스(100)는 또한 하나 이상의 가속도계들(168)을 포함할 수 있다. 도 1은 주변기기 인터페이스(118)에 결합된 가속도계(168)를 도시한다. 대안적으로, 가속도계(168)는 I/O 서브시스템(106) 내의 입력 제어기(160)에 결합될 수 있다. 일부 실시예들에서, 하나 이상의 가속도계들로부터 수신된 데이터의 분석에 기초하여 터치 스크린 디스플레이 상에 세로보기(portrait view) 또는 가로보기(landscape view)로 정보가 디스플레이된다. 디바이스(100)는 가속도계(들)(168)에 더하여 자력계(도시되지 않음), 및 디바이스(100)의 위치 및 배향(예를 들어, 세로 또는 가로)에 관한 정보를 획득하기 위한 GPS(또는 GLONASS 또는 다른 글로벌 내비게이션 시스템) 수신기(도시되지 않음)를 선택적으로 포함한다.The device (100) may also include one or more accelerometers (168). FIG. 1 illustrates an accelerometer (168) coupled to a peripheral interface (118). Alternatively, the accelerometer (168) may be coupled to an input controller (160) within the I/O subsystem (106). In some embodiments, information is displayed on the touch screen display in either a portrait view or a landscape view based on analysis of data received from the one or more accelerometers. In addition to the accelerometer(s) (168), the device (100) optionally includes a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for obtaining information regarding the position and orientation (e.g., portrait or landscape) of the device (100).

일부 실시예들에서, 메모리(102) 내에 저장된 소프트웨어 컴포넌트들은 운영 체제(126), 통신 모듈(또는 명령어들의 세트)(128), 접촉/모션 모듈(또는 명령어들의 세트)(130), 그래픽 모듈(또는 명령어들의 세트)(132), 텍스트 입력 모듈(또는 명령어들의 세트)(134), 위성 위치확인 시스템(GPS) 모듈(또는 명령어들의 세트)(135), 및 애플리케이션들(또는 명령어들의 세트)(136)을 포함한다. 또한, 일부 실시예들에서, 메모리(102)는 도 1 및 도 3에 도시된 바와 같이 필기 입력 모듈(157)를 저장한다. 필기 입력 모듈(157)은 필기 인식 모델을 포함하고, 디바이스(100)(또는 디바이스(300))의 사용자에게 필기 인식 및 입력 기능을 제공한다. 필기 입력 모듈(157)의 더욱 상세한 사항들은 도 5 내지 도 27 및 그의 수반된 설명들과 관련하여 제공된다.In some embodiments, the software components stored in the memory (102) include an operating system (126), a communications module (or set of instructions) (128), a contact/motion module (or set of instructions) (130), a graphics module (or set of instructions) (132), a text input module (or set of instructions) (134), a global positioning system (GPS) module (or set of instructions) (135), and applications (or set of instructions) (136). Additionally, in some embodiments, the memory (102) stores a handwriting input module (157), as illustrated in FIGS. 1 and 3 . The handwriting input module (157) includes a handwriting recognition model and provides handwriting recognition and input capabilities to a user of the device (100) (or device (300)). Further details of the handwriting input module (157) are provided in connection with FIGS. 5-27 and their accompanying descriptions.

운영 체제(126)(예컨대, 다윈(Darwin), RTXC, 리눅스(LINUX), 유닉스(UNIX), OS X, 윈도우(WINDOWS), 또는 VxWorks와 같은 내장형 운영 체제)는 일반적인 시스템 태스크들(예컨대, 메모리 관리, 저장 디바이스 제어, 전력 관리 등)을 제어 및 관리하기 위한 다양한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다.An operating system (126) (e.g., Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks) includes various software components and/or drivers to control and manage general system tasks (e.g., memory management, storage device control, power management, etc.) and facilitate communication between various hardware and software components.

통신 모듈(128)은 하나 이상의 외부 포트들(124)을 통한 다른 디바이스들과의 통신을 용이하게 하고, 또한 RF 회로(108) 및/또는 외부 포트(124)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(124)(예컨대, 범용 직렬 버스(Universal Serial Bus, USB), 파이어와이어(FIREWIRE) 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통해 간접적으로 결합하도록 구성된다.The communications module (128) facilitates communication with other devices via one or more external ports (124), and also includes various software components for processing data received by the RF circuitry (108) and/or the external port (124). The external port (124) (e.g., Universal Serial Bus (USB), FIREWIRE, etc.) is configured to couple directly to other devices or indirectly via a network (e.g., the Internet, wireless LAN, etc.).

접촉/모션 모듈(130)은 터치 스크린(112)(디스플레이 제어기(156)와 함께) 및 다른 터치 감응 디바이스들(예컨대, 터치패드 또는 물리적 클릭 휠)과의 접촉을 검출할 수 있다. 접촉/모션 모듈(130)은 접촉이 발생했는지를 판정하는 것(예컨대, 손가락-다운 이벤트(finger-down event)를 검출하는 것), 접촉의 이동이 있는지를 판정하고 터치 감응 표면을 가로지르는 이동을 추적하는 것(예컨대, 하나 이상의 손가락-드래그 이벤트(finger-dragging event)들을 검출하는 것), 및 접촉이 중지되었는지를 판정하는 것(예컨대, 손가락-업 이벤트(finger-up event) 또는 접촉 중단을 검출하는 것)과 같은, 접촉의 검출에 관련된 다양한 동작들을 수행하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 접촉/모션 모듈(130)은 터치 감응 표면으로부터 접촉 데이터를 수신한다. 일련의 접촉 데이터에 의해 나타나는 접촉 지점의 이동을 판정하는 것은 접촉 지점의 속력(크기), 속도(크기 및 방향) 및/또는 가속도(크기 및/또는 방향의 변화)를 판정하는 것을 포함할 수 있다. 이들 동작들은 단일 접촉들(예컨대, 하나의 손가락 접촉들)에 또는 다수의 동시 접촉들(예컨대, "멀티터치"/다수의 손가락 접촉들)에 적용될 수 있다. 일부 실시예들에서, 접촉/모션 모듈(130) 및 디스플레이 제어기(156)는 터치패드 상의 접촉을 검출한다.The contact/motion module (130) can detect contact with the touch screen (112) (along with the display controller (156)) and other touch-sensitive devices (e.g., a touchpad or physical click wheel). The contact/motion module (130) includes various software components to perform various operations associated with detecting contact, such as determining whether contact has occurred (e.g., detecting a finger-down event), determining whether there has been movement of the contact and tracking the movement across the touch-sensitive surface (e.g., detecting one or more finger-dragging events), and determining whether contact has ceased (e.g., detecting a finger-up event or a break in contact). The contact/motion module (130) receives contact data from the touch-sensitive surface. Determining the movement of a contact point indicated by a series of contact data may include determining the speed (magnitude), velocity (magnitude and direction), and/or acceleration (change in magnitude and/or direction) of the contact point. These actions may be applied to single contacts (e.g., single finger contacts) or to multiple simultaneous contacts (e.g., “multitouch”/multiple finger contacts). In some embodiments, the contact/motion module (130) and the display controller (156) detect contact on the touchpad.

접촉/모션 모듈(130)은 사용자에 의한 제스처 입력을 검출할 수 있다. 터치 감응 표면 상의 상이한 제스처들은 상이한 접촉 패턴들을 갖는다. 따라서, 제스처는 특정 접촉 패턴을 검출함으로써 검출될 수 있다. 예를 들어, 손가락 탭 제스처(finger tap gesture)를 검출하는 것은 손가락-다운 이벤트를 검출한 다음에 손가락-다운 이벤트와 동일한 위치(또는 실질적으로 동일한 위치)(예를 들어, 아이콘의 위치)에서 손가락 업(들어올림) 이벤트를 검출하는 것을 포함한다. 다른 예로서, 터치 감응 표면 상에서 손가락 스와이프 제스처(finger swipe gesture)를 검출하는 것은 손가락-다운 이벤트를 검출한 다음에 하나 이상의 손가락-드래그 이벤트들을 검출하고, 그에 후속하여 손가락-업(들어올림) 이벤트를 검출하는 것을 포함한다.The contact/motion module (130) can detect a gesture input by a user. Different gestures on the touch-sensitive surface have different contact patterns. Accordingly, a gesture can be detected by detecting a particular contact pattern. For example, detecting a finger tap gesture includes detecting a finger-down event, followed by detecting a finger-up (lifting) event at the same location (or substantially the same location) as the finger-down event (e.g., at the location of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface includes detecting a finger-down event, followed by detecting one or more finger-drag events, followed by detecting a finger-up (lifting) event.

접촉/모션 모듈(130)은 필기 입력 모듈(157)에 의해, 터치 감응 디스플레이 스크린(112) 상에 디스플레이되는 필기 입력 인터페이스의 필기 입력 영역 내에(또는 도 3의 디스플레이(340) 상에 디스플레이되는 필기 입력 영역에 대응하는 터치 패드(355)의 영역 내에) 필기 획들의 입력을 등록하도록 선택적으로 활용된다. 일부 실시예들에서, 초기 손가락-다운 이벤트, 최종 손가락-업 이벤트, 그들 사이의 임의의 시간 동안 접촉과 연관된 위치들, 모션 경로 및 세기들이 필기 획으로서 기록된다. 그러한 정보에 기초하여, 필기 획들은 사용자 입력에 대한 피드백으로서, 디스플레이 상에 렌더링될 수 있다. 추가로, 접촉/모션 모듈(130)에 의해 등록된 필기 획들에 기초하여 하나 이상의 입력 이미지들이 생성될 수 있다.The contact/motion module (130) is optionally utilized by the handwriting input module (157) to register input of handwriting strokes within a handwriting input area of a handwriting input interface displayed on a touch-sensitive display screen (112) (or within an area of a touch pad (355) corresponding to a handwriting input area displayed on the display (340) of FIG. 3). In some embodiments, an initial finger-down event, a final finger-up event, and positions, motion paths, and intensities associated with the contact during any time therebetween are recorded as handwriting strokes. Based on such information, the handwriting strokes can be rendered on the display as feedback for the user input. Additionally, one or more input images can be generated based on the handwriting strokes registered by the contact/motion module (130).

그래픽 모듈(132)은 디스플레이되는 그래픽의 세기를 변경하기 위한 컴포넌트들을 포함하는, 터치 스크린(112) 또는 다른 디스플레이 상에서 그래픽을 렌더링 및 디스플레이하기 위한 다양한 공지된 소프트웨어 컴포넌트들을 포함한다. 본 명세서에서 사용되는 바와 같이, 용어 "그래픽"은 텍스트, 웹 페이지들, 아이콘들(예를 들어, 소프트 키들을 포함하는 사용자-인터페이스 객체들), 디지털 이미지들, 비디오들, 애니메이션들 등을 제한 없이 포함하는, 사용자에게 디스플레이될 수 있는 임의의 객체를 포함한다.The graphics module (132) includes various known software components for rendering and displaying graphics on the touch screen (112) or other display, including components for changing the intensity of the graphics being displayed. As used herein, the term "graphics" includes any object that can be displayed to a user, including without limitation text, web pages, icons (e.g., user-interface objects including soft keys), digital images, videos, animations, and the like.

일부 실시예들에서, 그래픽 모듈(132)은 사용될 그래픽을 나타내는 데이터를 저장한다. 각각의 그래픽에는 대응 코드가 배정될 수 있다. 그래픽 모듈(132)은, 필요한 경우 좌표 데이터 및 다른 그래픽 특성 데이터와 함께, 디스플레이될 그래픽을 특정하는 하나 이상의 코드들을 애플리케이션 등으로부터 수신하며, 이어서 스크린 이미지 데이터를 생성하여 디스플레이 제어기(156)로 출력한다.In some embodiments, the graphics module (132) stores data representing the graphics to be used. Each graphic may be assigned a corresponding code. The graphics module (132) receives one or more codes specifying the graphics to be displayed from an application or the like, along with coordinate data and other graphic characteristic data, if necessary, and then generates screen image data and outputs it to the display controller (156).

그래픽 모듈(132)의 컴포넌트일 수 있는 텍스트 입력 모듈(134)은 다양한 애플리케이션들(예컨대, 연락처(137), 이메일(140), IM(141), 브라우저(147), 및 텍스트 입력을 필요로 하는 임의의 다른 애플리케이션)에서 텍스트를 입력하기 위한 소프트 키보드들을 제공한다. 일부 실시예들에서, 필기 입력 모듈(157)은, 예컨대 키보드 선택 어포던스를 통하여, 텍스트 입력 모듈(134)의 사용자 인터페이스를 통해 선택적으로 호출된다. 일부 실시예들에서, 동일 또는 유사한 키보드 선택 어포던스가 또한 텍스트 입력 모듈(134)을 호출하기 위해 필기 입력 인터페이스에서 제공된다.A text input module (134), which may be a component of the graphics module (132), provides soft keyboards for entering text in various applications (e.g., Contacts (137), Email (140), IM (141), Browser (147), and any other application requiring text input). In some embodiments, the handwriting input module (157) is selectively invoked through the user interface of the text input module (134), such as via a keyboard selection affordance. In some embodiments, the same or a similar keyboard selection affordance is also provided in the handwriting input interface to invoke the text input module (134).

GPS 모듈(135)은 디바이스의 위치를 결정하고, 이 정보를 다양한 애플리케이션들에서의 사용을 위해 (예컨대, 위치-기반 다이얼링에서 사용하기 위한 전화(138)에, 사진/비디오 메타데이터로서 카메라(143)에, 그리고 날씨 위젯들, 지역 옐로우 페이지 위젯들 및 지도/내비게이션 위젯들과 같은 위치-기반 서비스들을 제공하는 애플리케이션들에) 제공한다.The GPS module (135) determines the location of the device and provides this information for use in various applications (e.g., to the phone (138) for use in location-based dialing, to the camera (143) as photo/video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and map/navigation widgets).

애플리케이션들(136)은 하기 모듈들(또는 명령어들의 세트들) 또는 이들의 서브세트 또는 수퍼세트를 포함할 수 있다: 연락처 모듈(137)(때때로 주소록 또는 연락처 목록이라 불림); 전화 모듈(138); 화상 회의 모듈(139); 이메일 클라이언트 모듈(140); 인스턴트 메시징(IM) 모듈(141); 운동 지원 모듈(142); 정지 및/또는 비디오 이미지들을 위한 카메라 모듈(143); 이미지 관리 모듈(144); 브라우저 모듈(147); 캘린더 모듈(148); 날씨 위젯(149-1), 주식 위젯(149-2), 계산기 위젯(149-3), 알람 시계 위젯(149-4), 사전 위젯(149-5), 및 사용자에 의해 획득되는 그 외의 위젯들, 그리고 사용자-생성 위젯들(149-6) 중 하나 이상을 포함할 수도 있는 위젯 모듈들(149); 사용자-생성 위젯들(149-6)을 작성하기 위한 위젯 생성기 모듈(150); 검색 모듈(151); 비디오 플레이어 모듈 및 음악 플레이어 모듈로 구성될 수 있는 비디오 및 음악 플레이어 모듈(152); 메모 모듈(153); 지도 모듈(154); 및/또는 온라인 비디오 모듈(155).The applications (136) may include the following modules (or sets of instructions) or a subset or superset thereof: a contacts module (137) (sometimes called an address book or contact list); a phone module (138); a video conferencing module (139); an email client module (140); an instant messaging (IM) module (141); a workout assistance module (142); a camera module (143) for still and/or video images; an image management module (144); a browser module (147); a calendar module (148); widget modules (149) that may include one or more of a weather widget (149-1), a stocks widget (149-2), a calculator widget (149-3), an alarm clock widget (149-4), a dictionary widget (149-5), and other widgets acquired by the user, and user-created widgets (149-6); a widget creator module (150) for creating user-created widgets (149-6); A search module (151); a video and music player module (152) which may consist of a video player module and a music player module; a memo module (153); a map module (154); and/or an online video module (155).

메모리(102) 내에 저장될 수 있는 다른 애플리케이션들(136)의 예들은 다른 워드 프로세싱 애플리케이션들, 다른 이미지 편집 애플리케이션들, 드로잉 애플리케이션들, 프레젠테이션 애플리케이션들, JAVA-인에이블드 애플리케이션들, 암호화, 디지털 권한 관리, 음성 인식 및 음성 복제를 포함한다.Examples of other applications (136) that may be stored within the memory (102) include other word processing applications, other image editing applications, drawing applications, presentation applications, JAVA-enabled applications, encryption, digital rights management, speech recognition and speech transcription.

터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 연락처 모듈(137)은, 주소록에 이름(들)을 추가; 주소록으로부터 이름(들)을 삭제; 전화 번호(들), 이메일 주소(들), 물리적 주소(들) 또는 그 외의 정보를 이름과 연관시킴; 이미지를 이름과 연관시킴; 이름들을 분류 및 정렬함; 전화 번호들 또는 이메일 주소들을 제공하여 전화(138), 화상 회의(139), 이메일(140), 또는 IM(141)에 의한 통신을 개시하고 그리고/또는 용이하게 함; 등을 비롯하여, (예컨대, 메모리(102) 또는 메모리(370) 내의 연락처 모듈(137)의 애플리케이션 내부 상태(192)에 저장된) 주소록 또는 연락처 목록을 관리하는 데 사용될 수도 있다.In conjunction with the touch screen (112), the display controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), and the text input module (134), the contact module (137) may also be used to manage an address book or list of contacts (e.g., stored in the application internal state (192) of the contact module (137) within the memory (102) or the memory (370), including: adding name(s) to the address book; deleting name(s) from the address book; associating phone number(s), email address(es), physical address(es), or other information with a name; associating an image with a name; categorizing and sorting names; initiating and/or facilitating communication by phone (138), video conferencing (139), email (140), or IM (141) by providing phone numbers or email addresses; etc.

RF 회로(108), 오디오 회로(110), 스피커(111), 마이크로폰(113), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 전화 모듈(138)은, 전화 번호에 대응하는 문자들의 시퀀스를 입력하고, 주소록(137) 내의 하나 이상의 전화 번호들에 액세스하고, 입력된 전화 번호를 수정하고, 각각의 전화 번호를 다이얼링하고, 대화를 하고, 대화가 완료된 때 접속해제하거나 끊는 데 사용될 수 있다. 전술된 바와 같이, 무선 통신은 복수의 통신 표준들, 프로토콜들 및 기술들 중 임의의 것을 이용할 수 있다.In conjunction with the RF circuitry (108), audio circuitry (110), speaker (111), microphone (113), touch screen (112), display controller (156), contact module (130), graphics module (132), handwriting input module (157), and text input module (134), the phone module (138) can be used to input a sequence of characters corresponding to a phone number, access one or more phone numbers in an address book (137), modify an input phone number, dial each phone number, engage in a conversation, and disconnect or hang up when the conversation is complete. As described above, the wireless communications can utilize any of a plurality of communication standards, protocols, and technologies.

RF 회로(108), 오디오 회로(110), 스피커(111), 마이크로폰(113), 터치스크린(112), 디스플레이 제어기(156), 광 센서(164), 광 센서 제어기(158), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), 연락처 목록(137) 및 전화 모듈(138)과 함께, 화상 회의 모듈(139)은 사용자 명령어들에 따라 사용자와 한 명 이상의 다른 참여자들 사이의 화상 회의를 개시, 시행 및 종료하도록 하는 실행가능 명령어들을 포함한다.Along with the RF circuitry (108), the audio circuitry (110), the speaker (111), the microphone (113), the touchscreen (112), the display controller (156), the light sensor (164), the light sensor controller (158), the contact module (130), the graphics module (132), the handwriting input module (157), the text input module (134), the contact list (137), and the phone module (138), the video conferencing module (139) includes executable instructions for initiating, conducting, and terminating a video conference between a user and one or more other participants in accordance with user instructions.

RF 회로(108), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 이메일 클라이언트 모듈(140)은 사용자 명령어들에 응답하여 이메일을 생성, 전송, 수신, 및 관리하도록 하는 실행가능 명령어들을 포함한다. 이미지 관리 모듈(144)과 함께, 이메일 클라이언트 모듈(140)은 카메라 모듈(143)로 촬영된 정지 또는 비디오 이미지들을 갖는 이메일을 생성 및 전송하는 것을 매우 용이하게 한다.In conjunction with the RF circuitry (108), touch screen (112), display controller (156), contact module (130), graphics module (132), handwriting input module (157), and text input module (134), the email client module (140) includes executable instructions to generate, send, receive, and manage emails in response to user commands. In conjunction with the image management module (144), the email client module (140) greatly facilitates generating and sending emails having still or video images captured by the camera module (143).

RF 회로(108), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 인스턴트 메시징 모듈(141)은, 인스턴트 메시지에 대응하는 문자들의 시퀀스를 입력하고, 이전에 입력된 문자들을 수정하고, (예를 들어, 전화-기반 인스턴트 메시지들을 위한 단문자 메시지 서비스(Short Message Service, SMS) 또는 멀티미디어 메시지 서비스(Multimedia Message Service, MMS) 프로토콜을 이용하거나 인터넷-기반 인스턴트 메시지들을 위한 XMPP, SIMPLE 또는 IMPS를 이용하여) 개별 인스턴트 메시지를 송신하고, 인스턴트 메시지들을 수신하고, 수신된 인스턴트 메시지들을 보도록 하는 실행가능 명령어들을 포함한다. 일부 실시예들에서, 송신되고/되거나 수신된 인스턴트 메시지들은 그래픽, 사진들, 오디오 파일들, 비디오 파일들, 및/또는 MMS 및/또는 강화된 메시징 서비스(Enhanced Messaging Service, EMS)에서 지원되는 바와 같은 다른 첨부물들을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "인스턴트 메시징"은 전화-기반 메시지들(예를 들어, SMS 또는 MMS를 이용하여 전송된 메시지들) 및 인터넷-기반 메시지들(예를 들어, XMPP, SIMPLE 또는 IMPS를 이용하여 전송된 메시지들) 둘 모두를 지칭한다.In conjunction with the RF circuitry (108), the touch screen (112), the display controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), and the text input module (134), the instant messaging module (141) includes executable instructions to input a sequence of characters corresponding to an instant message, to modify previously input characters, to send individual instant messages (e.g., using the Short Message Service (SMS) or Multimedia Message Service (MMS) protocols for phone-based instant messages, or XMPP, SIMPLE, or IMPS for Internet-based instant messages), to receive instant messages, and to view received instant messages. In some embodiments, the sent and/or received instant messages may include graphics, photographs, audio files, video files, and/or other attachments such as supported by MMS and/or Enhanced Messaging Service (EMS). As used herein, “instant messaging” refers to both phone-based messages (e.g., messages sent using SMS or MMS) and Internet-based messages (e.g., messages sent using XMPP, SIMPLE or IMPS).

RF 회로(108), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), GPS 모듈(135), 지도 모듈(154) 및 음악 플레이어 모듈(146)과 함께, 운동 지원 모듈(142)은, (예컨대, 시간, 거리 및/또는 칼로리 소모 목표들을 갖는) 운동들을 생성하고; 운동 센서들(스포츠 디바이스들)과 통신하고; 운동 센서 데이터를 수신하고; 운동을 모니터링하기 위해 사용되는 센서들을 교정하고; 운동을 위한 음악을 선택하고 플레이하고; 운동 데이터를 디스플레이하고, 저장하고 송신하도록 하는 실행가능 명령어들을 포함한다.In conjunction with the RF circuitry (108), the touch screen (112), the display controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), the text input module (134), the GPS module (135), the map module (154), and the music player module (146), the workout assistance module (142) includes executable instructions to generate workouts (e.g., having time, distance, and/or calorie burn goals); communicate with workout sensors (sports devices); receive workout sensor data; calibrate sensors used to monitor workouts; select and play music for workouts; and display, store, and transmit workout data.

터치 스크린(112), 디스플레이 제어기(156), 광 센서(들)(164), 광 센서 제어기(158), 접촉 모듈(130), 그래픽 모듈(132) 및 이미지 관리 모듈(144)과 함께, 카메라 모듈(143)은, 정지 이미지들 또는 비디오(비디오 스트림을 포함함)를 캡처하고 이들을 메모리(102) 내에 저장하거나, 정지 이미지 또는 비디오의 특성을 수정하거나, 또는 메모리(102)로부터 정지 이미지 또는 비디오를 삭제하도록 하는 실행가능 명령어들을 포함한다.The camera module (143), together with the touch screen (112), the display controller (156), the light sensor(s) (164), the light sensor controller (158), the contact module (130), the graphics module (132) and the image management module (144), includes executable instructions to capture still images or video (including a video stream) and store them in the memory (102), modify characteristics of the still image or video, or delete the still image or video from the memory (102).

터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134) 및 카메라 모듈(143)과 함께, 이미지 관리 모듈(144)은 정지 및/또는 비디오 이미지들을 배열하거나, 수정(예컨대, 편집)하거나, 또는 달리 조작하고, 라벨링하고, 삭제하고, (예컨대, 디지털 슬라이드 쇼 또는 앨범에서) 제시하고, 저장하도록 하는 실행가능 명령어들을 포함한다.In conjunction with the touch screen (112), display controller (156), contact module (130), graphics module (132), handwriting input module (157), text input module (134), and camera module (143), the image management module (144) includes executable instructions to arrange, modify (e.g., edit), or otherwise manipulate, label, delete, present (e.g., in a digital slide show or album), and store still and/or video images.

RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 브라우저 모듈(147)은, 사용자 명령어들에 따라 인터넷을 브라우징하도록 - 웹 페이지들 또는 그들의 일부분뿐만 아니라 웹 페이지들에 링크된 첨부물들 및 다른 파일들을 검색하고, 그에 링크하고, 수신하고, 디스플레이하는 것을 포함함 - 하는 실행가능 명령어들을 포함한다.In conjunction with the RF circuitry (108), the touch screen (112), the display system controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), and the text input module (134), the browser module (147) includes executable instructions for browsing the Internet in accordance with user commands, including retrieving, linking to, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.

RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), 이메일 클라이언트 모듈(140) 및 브라우저 모듈(147)과 함께, 캘린더 모듈(148)은, 사용자 명령어들에 따라 캘린더들 및 캘린더들과 연관된 데이터(예컨대, 캘린더 엔트리들, 할 일 목록들 등)를 생성하고, 디스플레이하고, 수정하고, 저장하도록 하는 실행가능 명령어들을 포함한다.In conjunction with the RF circuitry (108), the touch screen (112), the display system controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), the text input module (134), the email client module (140), and the browser module (147), the calendar module (148) includes executable instructions that cause calendars and data associated with the calendars (e.g., calendar entries, to-do lists, etc.) to be created, displayed, modified, and stored in response to user commands.

RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134) 및 브라우저 모듈(147)과 함께, 위젯 모듈들(149)은, 사용자에 의해 다운로드 및 사용될 수 있거나(예컨대, 날씨 위젯(149-1), 주식 위젯(149-2), 계산기 위젯(149-3), 알람 시계 위젯(149-4) 및 사전 위젯(149-5)), 또는 사용자에 의해 생성될 수 있는(예컨대, 사용자-생성 위젯(149-6)) 미니-애플리케이션들이다. 일부 실시예들에서, 위젯은 HTML(Hypertext Markup Language) 파일, CSS(Cascading Style Sheets) 파일 및 자바스크립트(JavaScript) 파일을 포함한다. 일부 실시예들에서, 위젯은 XML(Extensible Markup Language) 파일 및 자바스크립트 파일(예를 들어, 야후!(Yahoo!) 위젯들)을 포함한다.Along with the RF circuitry (108), the touch screen (112), the display system controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), the text input module (134), and the browser module (147), the widget modules (149) are mini-applications that can be downloaded and used by a user (e.g., a weather widget (149-1), a stock widget (149-2), a calculator widget (149-3), an alarm clock widget (149-4), and a dictionary widget (149-5)), or created by a user (e.g., a user-created widget (149-6)). In some embodiments, the widgets include Hypertext Markup Language (HTML) files, Cascading Style Sheets (CSS) files, and JavaScript files. In some embodiments, a widget includes an Extensible Markup Language (XML) file and a JavaScript file (e.g., Yahoo! widgets).

RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134) 및 브라우저 모듈(147)과 함께, 위젯 생성기 모듈(150)은, 사용자에 의해 위젯들을 생성(예를 들어, 웹 페이지의 사용자-특정 부분을 위젯으로 변경)하는 데 사용될 수 있다.In conjunction with the RF circuit (108), touch screen (112), display system controller (156), contact module (130), graphics module (132), handwriting input module (157), text input module (134), and browser module (147), the widget creator module (150) can be used by users to create widgets (e.g., change user-specific portions of a web page into widgets).

터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 검색 모듈(151)은 사용자 명령어들에 따라 하나 이상의 검색 기준들(예컨대, 하나 이상의 사용자-특정 검색어)에 일치하는 메모리(102) 내의 텍스트, 음악, 사운드, 이미지, 비디오, 및/또는 다른 파일들을 검색하도록 하는 실행가능 명령어들을 포함한다.In conjunction with the touch screen (112), the display system controller (156), the contact module (130), the graphics module (132), the handwriting input module (157), and the text input module (134), the search module (151) includes executable instructions that cause the memory (102) to search for text, music, sound, images, video, and/or other files that match one or more search criteria (e.g., one or more user-specific search terms) in accordance with user commands.

터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 오디오 회로(110), 스피커(111), RF 회로(108) 및 브라우저 모듈(147)과 함께, 비디오 및 음악 플레이어 모듈(152)은, 사용자가 MP3 또는 AAC 파일들과 같은 하나 이상의 파일 포맷들로 저장된 녹음된 음악 및 다른 사운드 파일들을 다운로드 및 재생할 수 있게 하는 실행가능 명령어들, 및 비디오들을 (예컨대, 터치 스크린(112) 상에서 또는 외부 포트(124)를 통해 외부의 접속된 디스플레이 상에서) 디스플레이하거나, 상영하거나, 또는 달리 재생하도록 하는 실행가능 명령어들을 포함한다. 일부 실시예들에서, 디바이스(100)는 아이팟(애플 인크.의 상표)과 같은 MP3 플레이어의 기능을 포함할 수 있다.In conjunction with the touch screen (112), the display system controller (156), the contact module (130), the graphics module (132), the audio circuitry (110), the speaker (111), the RF circuitry (108), and the browser module (147), the video and music player module (152) includes executable instructions that enable a user to download and play recorded music and other sound files stored in one or more file formats, such as MP3 or AAC files, and executable instructions that cause videos to be displayed, played, or otherwise played (e.g., on the touch screen (112) or on an externally connected display via the external port (124). In some embodiments, the device (100) may include the functionality of an MP3 player, such as an iPod (a trademark of Apple Inc.).

터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 메모 모듈(153)은 사용자 명령어들에 따라 메모들, 할 일 목록들 등을 생성 및 관리하도록 하는 실행가능 명령어들을 포함한다.In addition to the touch screen (112), display controller (156), contact module (130), graphics module (132), handwriting input module (157) and text input module (134), the memo module (153) includes executable commands to create and manage memos, to-do lists, etc. according to user commands.

RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), GPS 모듈(135) 및 브라우저 모듈(147)과 함께, 지도 모듈(154)은, 사용자 명령어들에 따라 지도들 및 지도들과 연관된 데이터(예컨대, 주행 방향; 특정한 위치에 또는 그 근처에 있는 상점들 및 다른 관심 포인트들에 관한 데이터; 및 다른 위치-기반 데이터)를 수신하고, 디스플레이하고, 수정하고, 저장하는 데 사용될 수 있다.In conjunction with the RF circuitry (108), touch screen (112), display system controller (156), contact module (130), graphics module (132), handwriting input module (157), text input module (134), GPS module (135), and browser module (147), the map module (154) can be used to receive, display, modify, and store maps and data associated with the maps (e.g., driving directions; data regarding stores and other points of interest at or near a particular location; and other location-based data) in accordance with user commands.

터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 오디오 회로(110), 스피커(111), RF 회로(108), 필기 입력 모듈(157), 텍스트 입력 모듈(134), 이메일 클라이언트 모듈(140) 및 브라우저 모듈(147)과 함께, 온라인 비디오 모듈(155)은, 사용자가 H.264와 같은 하나 이상의 파일 포맷들의 온라인 비디오들을 액세스하고, 브라우징하고, (예컨대, 스트리밍 및/또는 다운로드에 의해) 수신하고, (예컨대, 터치 스크린 상에서 또는 외부 포트(124)를 통해 외부의 접속된 디스플레이 상에서) 재생하고, 특정 온라인 비디오로의 링크를 갖는 이메일을 전송하고, 달리 관리할 수 있게 하는 명령어들을 포함한다. 일부 실시예들에서, 특정한 온라인 비디오로의 링크를 전송하기 위해 이메일 클라이언트 모듈(140)보다는 인스턴트 메시징 모듈(141)이 사용된다.In conjunction with the touch screen (112), the display system controller (156), the contact module (130), the graphics module (132), the audio circuitry (110), the speaker (111), the RF circuitry (108), the handwriting input module (157), the text input module (134), the email client module (140), and the browser module (147), the online video module (155) includes instructions that enable a user to access, browse, receive (e.g., by streaming and/or downloading), play (e.g., on the touch screen or on an externally connected display via the external port (124), send emails with links to particular online videos, and otherwise manage online videos in one or more file formats, such as H.264. In some embodiments, an instant messaging module (141) is used rather than the email client module (140) to send links to particular online videos.

상기 식별된 모듈들 및 애플리케이션들 각각은 상기 설명된 하나 이상의 기능들 및 본 출원에 설명되는 방법들(예컨대, 컴퓨터-구현 방법들 및 본 명세서에 설명되는 다른 정보 프로세싱 방법들)을 수행하기 위한 실행가능 명령어들의 세트에 대응한다. 이들 모듈들(즉, 명령어들의 세트들)은 별도의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없으며, 따라서 이들 모듈들의 다양한 서브세트들이 다양한 실시예들에서 조합되거나 달리 재배열될 수 있다. 일부 실시예들에서, 메모리(102)는 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한, 메모리(102)는 상기에 설명되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.Each of the modules and applications identified above corresponds to a set of executable instructions for performing one or more of the functions described above and the methods described herein (e.g., the computer-implemented methods and other information processing methods described herein). These modules (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. In some embodiments, the memory (102) may store a subset of the modules and data structures identified above. Additionally, the memory (102) may store additional modules and data structures not described above.

일부 실시예들에서, 디바이스(100)는 디바이스 상의 사전정의된 세트의 기능들의 동작이 터치 스크린 및/또는 터치패드를 통해 배타적으로 수행되는 디바이스이다. 터치 스크린 및/또는 터치패드를 디바이스(100)의 동작을 위한 주 입력 제어 디바이스로서 사용함으로써, 디바이스(100) 상의 (푸시 버튼들, 다이얼들 등과 같은) 물리적 입력 제어 디바이스들의 수가 감소될 수 있다.In some embodiments, the device (100) is a device in which operation of a predefined set of functions on the device is performed exclusively via a touch screen and/or a touchpad. By using the touch screen and/or the touchpad as the primary input control device for operation of the device (100), the number of physical input control devices (such as push buttons, dials, etc.) on the device (100) can be reduced.

도 2는 일부 실시예들에 따른 터치 스크린(112)을 갖는 휴대용 다기능 디바이스(100)를 도시한다. 터치 스크린은 사용자 인터페이스(UI)(200) 내에서 하나 이상의 그래픽들을 디스플레이할 수 있다. 이러한 실시예에서뿐만 아니라 하기에 설명되는 다른 실시예들에서, 사용자는, 예를 들어 하나 이상의 손가락들(202)(도면에서 축척대로 도시되지는 않음) 또는 하나 이상의 스타일러스들(203)(도면에서 축척대로 도시되지는 않음)을 이용하여, 그래픽들 상에서 제스처를 행함으로써 그래픽들 중 하나 이상을 선택할 수 있다. 일부 실시예들에서, 하나 이상의 그래픽들의 선택은 사용자가 하나 이상의 그래픽들과의 접촉을 중단할 때 발생한다. 일부 실시예들에서, 제스처는, 디바이스(100)와 접촉한 손가락의 하나 이상의 탭들, (좌측에서 우측으로, 우측에서 좌측으로, 상방으로 및/또는 하방으로의) 하나 이상의 스와이프들 및/또는 (우측에서 좌측으로, 좌측에서 우측으로, 상방으로 및/또는 하방으로의) 롤링을 포함할 수 있다. 일부 실시예들에서, 그래픽과의 부주의한 접촉이 그 그래픽을 선택하지 않을 수 있다. 예를 들어, 애플리케이션 아이콘 위를 훑는(sweep) 스와이프 제스처는, 선택에 대응하는 제스처가 탭일 때, 대응하는 애플리케이션을 선택하지 않을 수 있다.FIG. 2 illustrates a portable multifunction device (100) having a touch screen (112) according to some embodiments. The touch screen may display one or more graphics within a user interface (UI) (200). In this embodiment, as well as other embodiments described below, a user may select one or more of the graphics by making a gesture over the graphics, for example, using one or more fingers (202) (not drawn to scale in the drawing) or one or more styli (203) (not drawn to scale in the drawing). In some embodiments, the selection of the one or more graphics occurs when the user breaks contact with the one or more graphics. In some embodiments, the gesture may include one or more taps of a finger in contact with the device (100), one or more swipes (left to right, right to left, upward, and/or downward), and/or a roll (right to left, left to right, upward, and/or downward). In some embodiments, inadvertent contact with a graphic may not select that graphic. For example, a swipe gesture that sweeps over an application icon may not select the corresponding application when the corresponding gesture for selection is a tap.

디바이스(100)는 또한 "홈" 또는 메뉴 버튼(204)과 같은 하나 이상의 물리적 버튼들을 포함할 수 있다. 이전에 설명된 바와 같이, 메뉴 버튼(204)은 디바이스(100) 상에서 실행될 수 있는 애플리케이션들의 세트에서 임의의 애플리케이션(136)으로 내비게이션하기 위해 사용될 수 있다. 대안적으로, 일부 실시예들에서, 메뉴 버튼은 터치 스크린(112) 상에 디스플레이된 GUI에서 소프트 키로서 구현된다.The device (100) may also include one or more physical buttons, such as a “home” or menu button (204). As previously described, the menu button (204) may be used to navigate to any application (136) in the set of applications that may be run on the device (100). Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on the touch screen (112).

일 실시예에서, 디바이스(100)는 터치 스크린(112), 메뉴 버튼(204), 디바이스의 전원을 온/오프하고 디바이스를 잠그기 위한 푸시 버튼(206), 음량 조절 버튼(들)(208), 가입자 아이덴티티 모듈(SIM) 카드 슬롯(210), 헤드셋 잭(212), 및 도킹/충전 외부 포트(124)를 포함한다. 푸시 버튼(206)은 버튼을 누르고 사전정의된 시간 간격 동안 버튼을 누름 상태로 유지함으로써 디바이스에 대한 전원 온/오프를 변경하고; 버튼을 누르고 사전정의된 시간 간격이 경과하기 전에 버튼을 누름해제함으로써 디바이스를 잠그고; 그리고/또는 디바이스를 잠금해제하거나 또는 잠금해제 프로세스를 개시하는 데 사용될 수 있다. 대안적인 실시예에서, 디바이스(100)는 또한 마이크로폰(113)을 통해 일부 기능들의 활성화 또는 비활성화를 위한 구두 입력(verbal input)을 허용할 수 있다.In one embodiment, the device (100) includes a touch screen (112), a menu button (204), a push button (206) to power the device on/off and to lock the device, volume control button(s) (208), a subscriber identity module (SIM) card slot (210), a headset jack (212), and a docking/charging external port (124). The push button (206) may be used to toggle the device on/off by pressing the button and holding it pressed for a predefined time interval; to lock the device by pressing the button and releasing the button before the predefined time interval has elapsed; and/or to unlock the device or initiate an unlocking process. In an alternative embodiment, the device (100) may also accept verbal input via the microphone (113) to activate or deactivate certain features.

도 3은 일부 실시예들에 따른 디스플레이 및 터치 감응 표면을 갖는 예시적인 다기능 디바이스의 블록도이다. 디바이스(300)가 휴대용일 필요는 없다. 일부 실시예들에서, 디바이스(300)는 랩톱 컴퓨터, 데스크톱 컴퓨터, 태블릿 컴퓨터, 멀티미디어 플레이어 디바이스, 내비게이션 디바이스, (아이들의 학습 장난감과 같은) 교육용 디바이스, 게임 시스템, 전화 디바이스, 또는 제어 디바이스(예를 들어, 가정용 또는 산업용 제어기)이다. 디바이스(300)는 전형적으로 하나 이상의 프로세싱 유닛(CPU)들(310), 하나 이상의 네트워크 또는 다른 통신 인터페이스들(360), 메모리(370), 및 이들 컴포넌트들을 상호접속시키기 위한 하나 이상의 통신 버스들(320)을 포함한다. 통신 버스들(320)은 시스템 컴포넌트들을 상호접속시키고 이들 사이의 통신을 제어하는 회로(때때로, 칩셋으로 칭해짐)를 포함할 수 있다. 디바이스(300)는 전형적으로 터치 스크린 디스플레이인 디스플레이(340)를 포함하는 입력/출력(I/O) 인터페이스(330)를 포함한다. I/O 인터페이스(330)는 또한 키보드 및/또는 마우스(또는 다른 포인팅 디바이스)(350) 및 터치패드(355)를 포함할 수 있다. 메모리(370)는 고속 랜덤 액세스 메모리, 예를 들어 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스들을 포함하고; 비휘발성 메모리, 예를 들어 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스들을 포함할 수도 있다. 메모리(370)는 선택적으로 CPU(들)(310)로부터 원격에 위치된 하나 이상의 저장 디바이스들을 포함할 수 있다. 일부 실시예들에서, 메모리(370)는 휴대용 다기능 디바이스(100)(도 1)의 메모리(102)에 저장된 프로그램들, 모듈들 및 프로그램들과 유사한 데이터 구조들, 모듈들 및 데이터 구조들, 또는 그의 서브세트를 저장한다. 또한, 메모리(370)는 휴대용 다기능 디바이스(100)의 메모리(102)에 존재하지 않는 추가의 프로그램들, 모듈들, 및 데이터 구조들을 저장할 수 있다. 예를 들어, 디바이스(300)의 메모리(370)는 드로잉 모듈(380), 프레젠테이션 모듈(382), 워드 프로세싱 모듈(384), 웹사이트 제작 모듈(386), 디스크 저작 모듈(388), 및/또는 스프레드시트 모듈(390)을 저장할 수 있는 반면, 휴대용 다기능 디바이스(100)(도 1)의 메모리(102)는 이들 모듈들을 저장하지 않을 수 있다.FIG. 3 is a block diagram of an exemplary multifunction device having a display and a touch-sensitive surface according to some embodiments. The device (300) need not be portable. In some embodiments, the device (300) is a laptop computer, a desktop computer, a tablet computer, a multimedia player device, a navigation device, an educational device (such as a children's learning toy), a gaming system, a telephony device, or a control device (e.g., a household or industrial controller). The device (300) typically includes one or more processing units (CPUs) (310), one or more network or other communication interfaces (360), memory (370), and one or more communication buses (320) for interconnecting these components. The communication buses (320) may include circuitry (sometimes referred to as a chipset) for interconnecting the system components and controlling communication therebetween. The device (300) includes an input/output (I/O) interface (330) that typically includes a display (340), which is a touch screen display. The I/O interface (330) may also include a keyboard and/or mouse (or other pointing device) (350) and a touchpad (355). The memory (370) may include high-speed random access memory, such as DRAM, SRAM, DDR RAM, or other random access solid state memory devices; and may also include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. The memory (370) may optionally include one or more storage devices remotely located from the CPU(s) (310). In some embodiments, the memory (370) stores programs, modules, and data structures similar to the programs, modules, and data structures stored in the memory (102) of the portable multifunction device (100) (FIG. 1), or a subset thereof. Additionally, the memory (370) may store additional programs, modules, and data structures that are not present in the memory (102) of the portable multifunction device (100). For example, the memory (370) of the device (300) may store a drawing module (380), a presentation module (382), a word processing module (384), a website creation module (386), a disk authoring module (388), and/or a spreadsheet module (390), whereas the memory (102) of the portable multifunction device (100) (FIG. 1) may not store these modules.

도 3에서 상기 식별된 요소들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있다. 상기 식별된 모듈들 각각은 상기 설명된 기능을 수행하기 위한 명령어들의 세트에 대응한다. 상기 식별된 모듈들 또는 프로그램들(즉, 명령어들의 세트들)은 별도의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없으며, 따라서 이들 모듈들의 다양한 서브세트들이 다양한 실시예들에서 조합되거나 달리 재배열될 수 있다. 일부 실시예들에서, 메모리(370)는 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한, 메모리(370)는 상기에 설명되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.Each of the identified elements in FIG. 3 may be stored in one or more of the previously mentioned memory devices. Each of the identified modules corresponds to a set of instructions for performing the function described above. The identified modules or programs (i.e., sets of instructions) need not be implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise rearranged in various embodiments. In some embodiments, the memory (370) may store a subset of the identified modules and data structures. Additionally, the memory (370) may store additional modules and data structures not described above.

도 4는 디스플레이(450)(예컨대, 터치 스크린 디스플레이(112))로부터 분리된 터치 감응 표면(451)(예컨대, 태블릿 또는 터치패드(355), 도 3)을 갖는 디바이스(예컨대, 디바이스(300), 도 3) 상의 예시적인 사용자 인터페이스를 도시한다. 후속하는 많은 예들이 (터치 감응 표면과 디스플레이가 조합된) 터치 스크린 디스플레이(112) 상의 입력들을 참조하여 주어질 것이지만, 일부 실시예들에서, 디바이스는 도 4에 도시된 바와 같이 디스플레이와는 별개인 터치 감응 표면 상에서 입력들을 검출한다. 일부 실시예들에서, 터치 감응 표면(예컨대, 도 4에서 451)은 디스플레이(예컨대, 450) 상의 주축(예컨대, 도 4에서 453)에 대응하는 주축(예컨대, 도 4에서 452)을 갖는다. 이들 실시예들에 따르면, 디바이스는 디스플레이 상의 개별 위치들에 대응하는 위치들(예컨대, 도 4에서, 460은 468에 대응하고, 462는 470에 대응함)에서 터치 감응 표면(451)과의 접촉들(예컨대, 도 4에서 460 및 462)을 검출한다. 이러한 방식으로, 터치 감응 표면(예컨대, 도 4에서 451) 상에서 디바이스에 의해 검출된 사용자 입력들(예컨대, 접촉들(460, 462) 및 그 이동들)은 터치 감응 표면이 디스플레이와는 별개인 경우 디바이스에 의해 다기능 디바이스의 디스플레이(예컨대, 도 4에서 450) 상의 사용자 인터페이스를 조작하는 데 사용된다. 유사한 방법들이 본 명세서에 기술되는 다른 사용자 인터페이스들에 이용될 수 있다는 것이 이해되어야 한다.FIG. 4 illustrates an exemplary user interface on a device (e.g., device (300), FIG. 3) having a touch-sensitive surface (451) (e.g., a tablet or touchpad (355), FIG. 3) separate from a display (450) (e.g., a touch screen display (112)). While many of the examples that follow will be given with reference to inputs on the touch screen display (112) (which is a combination of the touch-sensitive surface and the display), in some embodiments, the device detects inputs on a touch-sensitive surface that is separate from the display, as illustrated in FIG. 4. In some embodiments, the touch-sensitive surface (e.g., 451 in FIG. 4) has a principal axis (e.g., 452 in FIG. 4) that corresponds to a principal axis (e.g., 453 in FIG. 4) on the display (e.g., 450). According to these embodiments, the device detects contacts (e.g., 460 and 462 in FIG. 4) with the touch-sensitive surface (451) at locations corresponding to individual locations on the display (e.g., 460 corresponds to 468 and 462 corresponds to 470 in FIG. 4 ). In this manner, user inputs (e.g., contacts (460, 462) and movements thereof) detected by the device on the touch-sensitive surface (e.g., 451 in FIG. 4) are used by the device to manipulate a user interface on the display of the multifunction device (e.g., 450 in FIG. 4) when the touch-sensitive surface is separate from the display. It should be appreciated that similar methods may be utilized for other user interfaces described herein.

이제, 다기능 디바이스(예컨대, 디바이스(100)) 상에서 구현될 수 있는 필기 입력 방법들 및 사용자 인터페이스들("UI")의 실시예들에 주목한다.Now, we turn to embodiments of handwriting input methods and user interfaces (“UI”) that may be implemented on a multifunction device (e.g., device (100)).

도 5는 일부 실시예들에 따라 디바이스 상에 필기 입력 능력들을 제공하기 위해 I/O 인터페이스 모듈(500)(예컨대, 도 3의 I/O 인터페이스(330) 또는 도 1의 I/O 서브시스템(106))과 상호작용하는 예시적인 필기 입력 모듈(157)을 도시하는 블록도이다. 도 5에 도시된 바와 같이, 필기 입력 모듈(157)은 입력 프로세싱 모듈(502), 필기 인식 모듈(504) 및 결과 생성 모듈(506)을 포함한다. 일부 실시예들에서, 입력 프로세싱 모듈(502)은 분할 모듈(508) 및 정규화 모듈(510)을 포함한다. 일부 실시예들에서, 결과 생성 모듈(506)은 부수 클러스터링 모듈(radical clustering module)(512) 및 하나 이상의 언어 모델들(514)을 포함한다.FIG. 5 is a block diagram illustrating an exemplary handwriting input module (157) that interacts with an I/O interface module (500) (e.g., the I/O interface (330) of FIG. 3 or the I/O subsystem (106) of FIG. 1 ) to provide handwriting input capabilities on the device according to some embodiments. As illustrated in FIG. 5 , the handwriting input module (157) includes an input processing module (502), a handwriting recognition module (504), and a result generation module (506). In some embodiments, the input processing module (502) includes a segmentation module (508) and a normalization module (510). In some embodiments, the result generation module (506) includes a radical clustering module (512) and one or more language models (514).

일부 실시예들에서, 입력 프로세싱 모듈(502)은 I/O 인터페이스 모듈(500)(예컨대, 도 3의 I/O 인터페이스(330) 또는 도 1의 I/O 서브시스템(106))과 통신하여 사용자로부터 필기 입력들을 수신한다. 도 1의 터치 감응 디스플레이 시스템(112) 및/또는 도 3의 터치패드(355)와 같은 임의의 적합한 수단을 통해 필기가 입력된다. 필기 입력들은 필기 입력 UI 내의 사전결정된 필기 입력 영역 내에서 사용자에 의해 제공되는 각 획을 표시하는 데이터를 포함한다. 일부 실시예들에서, 필기 입력의 각 획을 표시하는 데이터는, 필기 입력 영역 내에서 지속된 접촉(예컨대, 사용자의 손가락 또는 스타일러스와 디바이스의 터치 감응 표면 사이의 접촉)의 시작과 끝 위치들, 세기 프로파일, 및 모션 경로와 같은 데이터를 포함한다. 일부 실시예들에서, I/O 인터페이스 모듈(500)은, 연관된 시간 및 공간 정보를 갖는 필기 획들의 시퀀스들(516)을 입력 프로세싱 모듈(502)로 실시간으로 전달한다. 동시에, I/O 인터페이스 모듈은 또한 사용자의 입력에 대한 시각적 피드백으로서 필기 입력 사용자 인터페이스의 필기 입력 영역 내에서 필기 획들의 실시간 렌더링(518)을 제공한다.In some embodiments, the input processing module (502) receives handwriting inputs from a user by communicating with an I/O interface module (500) (e.g., the I/O interface (330) of FIG. 3 or the I/O subsystem (106) of FIG. 1). The handwriting is entered via any suitable means, such as the touch-sensitive display system (112) of FIG. 1 and/or the touchpad (355) of FIG. 3. The handwriting inputs include data representing each stroke provided by the user within a predetermined handwriting input area within the handwriting input UI. In some embodiments, the data representing each stroke of the handwriting input includes data such as start and end locations, intensity profiles, and motion paths of sustained contact (e.g., contact between the user's finger or stylus and the touch-sensitive surface of the device) within the handwriting input area. In some embodiments, the I/O interface module (500) transmits sequences of handwriting strokes (516) with associated temporal and spatial information to the input processing module (502) in real time. Concurrently, the I/O interface module also provides real-time rendering (518) of handwritten strokes within the handwriting input area of the handwriting input user interface as visual feedback for the user's input.

일부 실시예들에서, 각 필기 획을 표시하는 데이터가 입력 프로세싱 모듈(502)에 의해 수신됨에 따라, 다수의 연속 획들과 연관된 시간적 및 시퀀스 정보가 또한 기록된다. 예를 들어, 데이터는 선택적으로 전체 필기 입력의 기입 방향을 따라 획들의 형상, 크기, 개별 획 시퀀스 번호들을 갖는 개별 획들의 공간 포화도, 및 상대적인 공간 위치들 등을 보여주는 스택을 포함한다. 일부 실시예들에서, 입력 프로세싱 모듈(502)은 디바이스의 디스플레이(518)(예를 들어, 도 3의 디스플레이(340) 또는 도 1의 터치 감응 디스플레이(112)) 상에서 수신 획들을 렌더링하도록 하는 명령어들을 I/O 인터페이스 모듈들(500)로 다시 제공한다. 일부 실시예들에서, 수신 획들의 렌더링은 필기 기구(예컨대, 펜)를 이용한 기입 표면(예컨대, 종이 한장) 상에서의 기입의 실제 진행을 모방하는 시각적 효과를 제공하기 위해 애니메이션으로 만들어진다. 일부 실시예들에서, 사용자는 선택적으로 렌더링된 획들의 펜-끝 스타일(pen-tip style), 색, 텍스처(texture) 등을 특정하는 것이 허용된다.In some embodiments, as data representing each handwritten stroke is received by the input processing module (502), temporal and sequence information associated with the plurality of consecutive strokes is also recorded. For example, the data optionally includes a stack showing the shape of the strokes, the size of the strokes, the spatial saturation of the individual strokes with their individual stroke sequence numbers, and the relative spatial positions along the direction of writing of the overall handwriting input. In some embodiments, the input processing module (502) provides instructions back to the I/O interface modules (500) to cause the rendering of the received strokes on a display (518) of the device (e.g., the display (340) of FIG. 3 or the touch-sensitive display (112) of FIG. 1 ). In some embodiments, the rendering of the received strokes is animated to provide a visual effect that mimics the actual progression of writing on a writing surface (e.g., a sheet of paper) using a writing instrument (e.g., a pen). In some embodiments, the user is allowed to optionally specify the pen-tip style, color, texture, etc. of the rendered strokes.

일부 실시예들에서, 입력 프로세싱 모듈(502)은 필기 입력 영역에서 현재 누적된 획들을 프로세싱하여 그 획들을 하나 이상의 인식 유닛들에 배정한다. 일부 실시예들에서, 각 인식 유닛은 필기 인식 모델(504)에 의해 인식되어야 할 문자에 대응한다. 일부 실시예들에서, 각 인식 유닛은 필기 인식 모델(504)에 의해 인식되어야 할 출력 문자 또는 부수에 대응한다. 부수는 다수의 복합 표어 문자들에서 발견되는 반복 구성요소이다. 복합 표어 문자는 일반적인 레이아웃(예컨대, 좌우 레이아웃, 상하 레이아웃 등)에 따라 배열된 2개 이상의 부수들을 포함할 수 있다. 일 예에서, 단일의 한자 ""는 2개의 부수들, 즉, 왼쪽 부수 "口" 및 오른쪽 부수 "斤"를 사용하여 구성된다.In some embodiments, the input processing module (502) processes the currently accumulated strokes in the handwriting input area and assigns the strokes to one or more recognition units. In some embodiments, each recognition unit corresponds to a character to be recognized by the handwriting recognition model (504). In some embodiments, each recognition unit corresponds to an output character or radical to be recognized by the handwriting recognition model (504). A radical is a repeating element found in many compound sign characters. A compound sign character may include two or more radicals arranged according to a common layout (e.g., left-right layout, top-bottom layout, etc.). In one example, a single Chinese character " " is composed of two radicals, the left radical "口" and the right radical "斤".

일부 실시예들에서, 입력 프로세싱 모듈(502)은 분할 모듈에 의존하여 현재 누적된 필기 획들을 하나 이상의 인식 유닛들로 배정 또는 나눈다. 예를 들어, 필기 문자 ""에 대한 획들을 분할하는 경우, 분할 모듈(508)은 선택적으로 필기 입력의 좌측에 클러스터링된 획들을 (즉, 왼쪽 부수 "口"에 대한) 하나의 인식 유닛에 배정하고, 필기 입력의 우측에 클러스터링된 획들을 (즉, 오른쪽 부수 "斤"에 대한) 다른 인식 유닛에 배정한다. 대안적으로, 분할 모듈(508)은 또한 모든 획들을 (즉, 문자 ""에 대한) 단일 인식 유닛에 배정할 수 있다.In some embodiments, the input processing module (502) relies on the segmentation module to assign or divide the currently accumulated handwritten strokes into one or more recognition units. For example, the handwritten character " "When segmenting strokes for , the segmentation module (508) optionally assigns strokes clustered on the left side of the handwriting input (i.e., for the left radical "口") to one recognition unit, and strokes clustered on the right side of the handwriting input (i.e., for the right radical "斤") to another recognition unit. Alternatively, the segmentation module (508) may also segment all strokes (i.e., for the character " ") can be assigned to a single recognition unit.

일부 실시예들에서, 분할 모듈(508)은 현재 누적된 필기 입력(예컨대, 하나 이상의 필기 획들)을 여러 가지 상이한 방식으로 인식 유닛들의 그룹으로 분할하여 분할 격자(520)를 생성한다. 예를 들어, 총 9개의 획들이 필기 입력 영역에서 지금까지 누적되었다고 가정한다. 분할 격자(520)의 제1 분할 체인에 따르면, 획1, 획2, 획3이 제1 인식 유닛(522)으로 그룹화되고, 획4, 획5, 획6이 제2 인식 유닛(526)으로 그룹화된다. 분할 격자(520)의 제2 분할 체인에 따르면, 획1 내지 획9 모두가 하나의 인식 유닛(526)으로 그룹화된다.In some embodiments, the segmentation module (508) segments the currently accumulated handwriting input (e.g., one or more handwriting strokes) into groups of recognition units in various different ways to generate a segmentation grid (520). For example, assume that a total of nine strokes have been accumulated so far in the handwriting input area. According to a first segmentation chain of the segmentation grid (520), strokes 1, Stroke 2, and Stroke 3 are grouped into a first recognition unit (522), and strokes 4, Stroke 5, and Stroke 6 are grouped into a second recognition unit (526). According to a second segmentation chain of the segmentation grid (520), all of strokes 1 to 9 are grouped into one recognition unit (526).

일부 실시예들에서, 각 분할 체인은, 특정한 분할 체인이 현재 필기 입력의 정확한 분할일 가능성을 측정하기 위한 분할 점수가 주어진다. 일부 실시예들에서, 각 분할 체인의 분할 점수를 계산하기 위해 선택적으로 사용되는 인자들은, 획의 절대 및/또는 상대 크기, 다양한 방향들(예컨대, x, y, z 방향들)에서의 획의 상대 및/또는 절대 스팬(span), 획의 포화 레벨에서의 변동들 및/또는 그의 평균, 인접 획들에 대한 절대 및/또는 상대 거리들, 획들의 절대 및/또는 상대 위치들, 획들이 입력되는 순서 또는 시퀀스, 각 획의 지속기간, 각 획이 입력된 속도(또는 템포)에서의 변동들 및/또는 그의 평균, 획의 길이를 따른 각 획의 세기 프로파일 등을 포함한다. 일부 실시예들에서, 이들 인자들 중 하나 이상에 선택적으로 하나 이상의 기능들 또는 변환들이 적용되어 분할 격자(520)에서의 상이한 분할 체인들의 분할 점수들을 생성한다.In some embodiments, each segmentation chain is given a segmentation score that measures the likelihood that a particular segmentation chain is an accurate segmentation of the current handwriting input. In some embodiments, factors optionally used to compute the segmentation score of each segmentation chain include: absolute and/or relative size of the stroke, relative and/or absolute span of the stroke in various directions (e.g., x, y, z directions), variations in saturation level of the stroke and/or average thereof, absolute and/or relative distances to adjacent strokes, absolute and/or relative positions of the strokes, the order or sequence in which the strokes are entered, the duration of each stroke, variations in speed (or tempo) at which each stroke is entered and/or average thereof, intensity profile of each stroke along the length of the stroke, etc. In some embodiments, one or more functions or transformations are optionally applied to one or more of these factors to generate segmentation scores for different segmentation chains in the segmentation grid (520).

일부 실시예들에서, 분할 모듈(508)이 사용자로부터 수신된 현재의 필기 입력(516)을 분할한 후에, 분할 모듈(508)은 분할 격자(520)를 정규화 모듈(510)로 전달한다. 일부 실시예들에서, 정규화 모듈(510)은 분할 격자(520)에서 특정된 각 인식 유닛(예컨대, 인식 유닛들(522, 524, 526))에 대한 입력 이미지(예컨대, 입력 이미지들(528))를 생성한다. 일부 실시예들에서, 정규화 모듈은 입력 이미지에 대해 필요한 또는 원하는 정규화(예컨대, 스트레칭, 크로핑, 다운-샘플 또는 업-샘플링)를 수행하여, 입력 이미지가 필기 인식 모델(504)에 입력으로서 제공될 수 있도록 한다. 일부 실시예들에서, 각 입력 이미지(528)는 하나의 개별 인식 유닛에 배정된 획들을 포함하고, 필기 인식 모듈(504)에 의해 인식되어야 할 하나의 문자 또는 부수에 대응한다.In some embodiments, after the segmentation module (508) segments the current handwriting input (516) received from the user, the segmentation module (508) passes the segmentation grid (520) to the normalization module (510). In some embodiments, the normalization module (510) generates an input image (e.g., input images (528)) for each recognition unit specified in the segmentation grid (520) (e.g., recognition units (522, 524, 526)). In some embodiments, the normalization module performs any necessary or desired normalization (e.g., stretching, cropping, down-sampling, or up-sampling) on the input images so that the input images can be provided as input to the handwriting recognition model (504). In some embodiments, each input image (528) includes strokes assigned to one individual recognition unit and corresponds to one character or radical to be recognized by the handwriting recognition module (504).

일부 실시예들에서, 입력 프로세싱 모듈(502)에 의해 생성되는 입력 이미지들은 개별 획들과 연관된 임의의 시간 정보를 포함하지 않고, 공간 정보(예컨대, 입력 이미지에서의 픽셀들의 밀도 및 위치에 의해 표시되는 정보)만이 입력 이미지에 보존된다. 훈련 기입 샘플들의 공간 정보에 대해서만 전적으로 훈련된 필기 인식 모델은 공간 정보에 기초한 필기 인식만이 가능하다. 결과적으로, 필기 인식 모델은, 훈련 동안 그의 어휘(즉, 모든 출력 클래스들)에서의 모든 문자들에 대해 획 순서들 및 획 방향들의 모든 가능한 치환들을 철저하게 열거하지 않고서, 획 순서 및 획 방향에 독립적이다. 실제로, 일부 실시예들에서, 필기 인식 모듈(502)은 입력 이미지 내의 하나의 획에 속하는 픽셀과 다른 획에 속하는 픽셀을 구별하지 않는다.In some embodiments, the input images generated by the input processing module (502) do not contain any temporal information associated with individual strokes, and only spatial information (e.g., information represented by the density and location of pixels in the input image) is preserved in the input image. A handwriting recognition model trained solely on the spatial information of the training handwriting samples is capable of handwriting recognition based only on spatial information. As a result, the handwriting recognition model is independent of stroke order and stroke direction without exhaustively enumerating all possible permutations of stroke orders and stroke directions for all characters in its vocabulary (i.e., all output classes) during training. In fact, in some embodiments, the handwriting recognition module (502) does not distinguish between pixels belonging to one stroke in the input image and pixels belonging to another stroke.

(예컨대, 도 25a 내지 도 27에 대하여) 이후에 더욱 상세하게 설명되는 바와 같이, 일부 실시예들에서, 인식 모델의 획 순서 및 획 방향 독립성을 훼손시키지 않고서, 인식 정확도를 개선시키기 위해, 일부 시간-유도 획 분포 정보가 전적으로-공간적인 필기 인식 모델로 재도입된다.As will be described in more detail later (e.g., with respect to FIGS. 25a to 27), in some embodiments, some time-derived stroke distribution information is reintroduced into the entirely spatial handwriting recognition model to improve recognition accuracy without compromising the stroke order and stroke direction independence of the recognition model.

일부 실시예들에서, 하나의 인식 유닛에 대해 입력 프로세싱 모듈(502)에 의해 생성된 입력 이미지는 동일한 분할 체인에서의 임의의 다른 인식 유닛의 입력 이미지와 중첩하지 않는다. 일부 실시예들에서, 상이한 인식 유닛들에 대해 생성된 입력 이미지들은 약간 중첩할 수도 있다. 일부 실시예들에서, 입력 이미지들 간의 약간의 중첩은, 초서체로 기입되고 그리고/또는 이어지는(run-on) 문자들(예컨대, 하나의 획이 2개의 인접 문자들을 연결함)을 포함하는 필기 입력을 인식하기 위해 허용된다.In some embodiments, an input image generated by the input processing module (502) for a recognition unit does not overlap with an input image of any other recognition unit in the same segmentation chain. In some embodiments, input images generated for different recognition units may overlap slightly. In some embodiments, slight overlap between input images is allowed for recognizing handwriting input that is written in cursive and/or includes run-on characters (e.g., a single stroke connecting two adjacent characters).

일부 실시예들에서, 분할 전에 일부 정규화가 수행된다. 일부 실시예들에서, 분할 모듈(508) 및 정규화 모듈(510)의 기능들이 동일한 모듈 또는 2개 이상의 다른 모듈들에 의해 수행될 수 있다.In some embodiments, some normalization is performed prior to segmentation. In some embodiments, the functions of the segmentation module (508) and the normalization module (510) may be performed by the same module or by two or more different modules.

일부 실시예들에서, 각 인식 유닛의 입력 이미지(528)가 필기 인식 모델(504)로 입력으로서 제공됨에 따라, 필기 인식 모델(504)은, 인식 유닛이 필기 인식 모델(504)의 레퍼토리 또는 어휘(즉, 필기 인식 모듈(504)에 의해 인식가능한 모든 문자들 및 부수들의 목록)에서의 개별 출력 문자가 될 상이한 가능성으로 이루어진 출력을 생성한다. 이후에 더욱 상세하게 설명되는 바와 같이, 필기 인식 모델(504)은 다중 스크립트들(예컨대, 유니코드 표준에 의해 인코딩된 적어도 3개의 비중첩 스크립트들)에서의 많은 수의 문자들을 인식하도록 훈련되었다.In some embodiments, as the input image (528) of each recognition unit is provided as input to the handwriting recognition model (504), the handwriting recognition model (504) generates output consisting of different possibilities for the recognition unit to be an individual output character from the repertoire or vocabulary of the handwriting recognition model (504) (i.e., the list of all characters and radicals recognizable by the handwriting recognition module (504). As described in more detail below, the handwriting recognition model (504) is trained to recognize a large number of characters from multiple scripts (e.g., at least three non-overlapping scripts encoded by the Unicode standard).

비중첩 스크립트의 예에는 라틴어 스크립트, 한자, 아랍어 문자, 페르시아어, 키릴 문자, 및 이모지 캐릭터와 같은 인공 스크립트가 포함된다. 일부 실시예들에서, 필기 인식 모델(504)은 각 입력 이미지에 대한 (즉, 각 인식 유닛에 대한) 하나 이상의 출력 문자들을 생성하고, 문자 인식과 연관된 신뢰도 레벨에 기초하여 각 출력 문자에 대해 개별 인식 점수를 배정한다.Examples of non-overlapping scripts include artificial scripts such as Latin script, Chinese characters, Arabic characters, Persian, Cyrillic characters, and emoji characters. In some embodiments, the handwriting recognition model (504) generates one or more output characters for each input image (i.e., for each recognition unit) and assigns an individual recognition score to each output character based on a confidence level associated with the character recognition.

일부 실시예들에서, 필기 인식 모델(504)은 분할 격자(520)에 따라 후보 격자(530)를 생성하고, 여기서 분할 격자(520) 내의 (예컨대, 개별 인식 유닛(522, 524, 526)에 대응하는) 분할 체인에서의 각 원호(arc)는 후보 격자(530) 내에서 하나 이상의 후보 원호들(예컨대, 개별 출력 문자에 각각 대응하는 원호들(532, 534, 536, 538, 540))로 팽창된다. 후보 격자(530) 내의 각 후보 체인은, 후보 체인의 기저가 되는 분할 체인의 개별 분할 점수, 및 문자 체인에서의 출력 문자들과 연관된 인식 점수들에 따라 점수화된다.In some embodiments, the handwriting recognition model (504) generates a candidate grid (530) according to the segmentation grid (520), wherein each arc in a segmentation chain (e.g., corresponding to an individual recognition unit (522, 524, 526)) within the segmentation grid (520) is inflated into one or more candidate arcs (e.g., arcs (532, 534, 536, 538, 540) each corresponding to an individual output character) within the candidate grid (530). Each candidate chain within the candidate grid (530) is scored according to the individual segmentation scores of the segmentation chain underlying the candidate chain, and the recognition scores associated with the output characters in the character chain.

일부 실시예들에서, 필기 인식 모델(504)이 인식 유닛들의 입력 이미지들(528)로부터 출력 문자들을 생성한 후에, 후보 격자(530)는 결과 생성 모듈(506)로 전달되어 현재 누적된 필기 입력(516)에 대한 하나 이상의 인식 결과들을 생성한다.In some embodiments, after the handwriting recognition model (504) generates output characters from the input images (528) of the recognition units, the candidate grid (530) is passed to the result generation module (506) to generate one or more recognition results for the currently accumulated handwriting input (516).

일부 실시예들에서, 결과 생성 모듈(506)은 부수 클러스터링 모듈(512)을 활용하여 후보 체인에서의 하나 이상의 부수들을 복합 문자로 조합한다. 일부 실시예들에서, 결과 생성 모듈(506)은 하나 이상의 언어 모델들(514)을 사용하여, 후보 격자(530)에서의 문자 체인이 언어 모델들에 의해 표시되는 특정한 언어에서의 가능성 있는 시퀀스인지를 판정한다. 일부 실시예들에서, 결과 생성 모듈(506)은, 후보 격자(530)에서의 2개 이상의 원호들을 조합하거나 특정한 원호들을 제거함으로써 개정된 후보 격자(542)를 생성한다.In some embodiments, the result generation module (506) utilizes the radical clustering module (512) to combine one or more radicals in the candidate chain into a compound character. In some embodiments, the result generation module (506) uses one or more language models (514) to determine whether a chain of characters in the candidate lattice (530) is a likely sequence in a particular language represented by the language models. In some embodiments, the result generation module (506) generates a revised candidate lattice (542) by combining two or more arcs in the candidate lattice (530) or by removing certain arcs.

일부 실시예들에서, 결과 생성 모듈(506)은, 부수 클러스터링 모듈(512) 및 언어 모델들(514)에 의해 수정(예컨대, 증강 또는 축소)됨에 따라, 문자 시퀀스에서의 출력 문자들의 인식 점수들에 기초하여, 개정된 후보 격자(542)에서 여전히 남아 있는 각 문자 시퀀스(예컨대, 문자 시퀀스들(544, 546))에 대해 통합된 인식 점수를 생성한다. 일부 실시예들에서, 결과 생성 모듈(506)은 이들의 통합된 인식 점수들에 기초하여 개정된 후보 격자(542)에서 남아 있는 상이한 문자 시퀀스들의 순위를 매긴다.In some embodiments, the result generation module (506) generates an integrated recognition score for each character sequence (e.g., character sequences (544, 546)) that remains in the revised candidate grid (542) based on the recognition scores of the output characters in the character sequence as modified (e.g., augmented or reduced) by the ancillary clustering module (512) and the language models (514). In some embodiments, the result generation module (506) ranks the different character sequences that remain in the revised candidate grid (542) based on their integrated recognition scores.

일부 실시예들에서, 결과 생성 모듈(506)은 최상위(top-ranked) 문자 시퀀스들을 순위가 매겨진 인식 결과들(548)로서 I/O 인터페이스 모듈(500)로 전송하여 사용자에게 디스플레이한다. 일부 실시예들에서, I/O 인터페이스 모듈(500)은 수신된 인식 결과들(548)(예컨대, "" 및 "")을 필기 입력 인터페이스의 후보 디스플레이 영역에서 디스플레이한다. 일부 실시예들에서, I/O 인터페이스 모듈은 사용자를 위해 다수의 인식 결과들 (예컨대, "" 및 "")을 디스플레이하고, 사용자가 인식 결과를 선택하여 관련 애플리케이션에 대한 텍스트 입력으로서 입력할 수 있게 한다. 일부 실시예들에서, I/O 인터페이스 모듈은 인식 결과의 사용자 확인의 표시들 또는 기타 입력들에 응답하여 최상위 인식 결과(예컨대, "")를 자동으로 입력한다. 최상위 결과의 효과적인 자동 입력은 입력 인터페이스의 효율을 개선시킬 수 있고, 보다 양호한 사용자 경험을 제공한다.In some embodiments, the result generation module (506) transmits the top-ranked character sequences as ranked recognition results (548) to the I/O interface module (500) for display to the user. In some embodiments, the I/O interface module (500) outputs the received recognition results (548) (e.g., " " and " ") is displayed in the candidate display area of the handwriting input interface. In some embodiments, the I/O interface module displays a plurality of recognition results (e.g., " " and " ") and allows the user to select a recognition result and input it as text input to the relevant application. In some embodiments, the I/O interface module responds to user confirmation of a recognition result or other inputs by displaying the top recognition result (e.g., " ") is automatically entered. Effective automatic entry of top results can improve the efficiency of the input interface and provide a better user experience.

일부 실시예들에서, 결과 생성 모듈(506)은 다른 인자들을 사용하여 후보 체인들의 통합된 인식 점수들을 변경한다. 예를 들어, 일부 실시예들에서, 결과 생성 모듈(506)은 선택적으로 특정한 사용자 또는 수많은 사용자들에 대해 가장 빈번하게 사용된 문자들의 로그(log)를 유지한다. 가장 빈번하게 사용된 문자들 또는 문자 시퀀스들의 목록 중에서 특정한 후보 문자들 또는 문자 시퀀스들이 발견되면, 결과 생성 모듈(506)은 선택적으로 특정한 후보 문자들 또는 문자 시퀀스들의 통합된 인식 점수들을 올린다.In some embodiments, the result generation module (506) uses other factors to modify the integrated recognition scores of the candidate chains. For example, in some embodiments, the result generation module (506) optionally maintains a log of the most frequently used characters for a particular user or a number of users. When particular candidate characters or character sequences are found among the list of most frequently used characters or character sequences, the result generation module (506) optionally increases the integrated recognition scores of the particular candidate characters or character sequences.

일부 실시예들에서, 필기 입력 모듈(157)은 사용자에게 디스플레이되는 인식 결과들에 대해 실시간 업데이트들을 제공한다. 예를 들어, 일부 실시예들에서, 사용자에 의해 입력되는 각 추가적인 획에 대해, 입력 프로세싱 모듈(502)은 선택적으로 현재 누적된 필기 입력을 재분할하고, 필기 인식 모델(504)로 제공되는 입력 이미지들 및 분할 격자를 개정한다. 결국, 필기 인식 모델(504)은 선택적으로 결과 생성 모듈(506)로 제공되는 후보 격자를 개정한다. 결과적으로, 결과 생성 모듈(506)은 선택적으로 사용자에게 제시되는 인식 결과들을 업데이트한다. 본 명세서에서 사용되는 바와 같이, 실시간 필기 인식은 필기 인식 결과들이 사용자에게 즉각적으로 또는 단기간 내에 (예컨대, 수십 밀리초 내지 수 초 이내에) 제시되는 필기 인식을 지칭한다. 실시간 필기 인식은, 나중의 인출(retrieval)을 위해 저장되는 기록된 이미지로부터 현재 사용자 세션 후에 한 번에 하지 않고, 인식이 즉시 개시되고 필기 입력의 수신과 실질적으로 동시에 수행되는 (예컨대, 오프라인 광학 문자-인식(OCR) 애플리케이션들에서처럼) 오프라인 인식과는 다르다. 또한, 오프라인 문자 인식은 개별 획들 및 획 시퀀스들에 관한 임의의 시간 정보 없이 수행되므로, 이러한 정보의 혜택 없이 분할이 수행된다. 유사해 보이는 후보 문자들 사이의 추가 명확화도 또한 이러한 시간 정보의 혜택 없이 행해진다.In some embodiments, the handwriting input module (157) provides real-time updates to the recognition results displayed to the user. For example, in some embodiments, for each additional stroke input by the user, the input processing module (502) optionally re-segments the currently accumulated handwriting input and revises the input images and segmentation grid provided to the handwriting recognition model (504). In turn, the handwriting recognition model (504) optionally revises the candidate grid provided to the result generation module (506). As a result, the result generation module (506) optionally updates the recognition results presented to the user. As used herein, real-time handwriting recognition refers to handwriting recognition in which handwriting recognition results are presented to the user immediately or within a short period of time (e.g., within tens of milliseconds to several seconds). Real-time handwriting recognition differs from offline recognition (e.g., as in offline optical character recognition (OCR) applications) in that recognition is initiated immediately and performed substantially simultaneously with the receipt of handwriting input, rather than all at once after the current user session from a recorded image that is stored for later retrieval. Furthermore, offline character recognition is performed without any temporal information about individual strokes and stroke sequences, so that segmentation is performed without the benefit of such information. Further disambiguation between candidate characters that appear similar is also performed without the benefit of such temporal information.

일부 실시예들에서, 필기 인식 모델(504)은 콘볼루션 뉴럴 네트워크(convolutional neural network, CNN)로서 구현된다. 도 6은 다수의 비중첩 스크립트들에서의 문자들에 대한 기입 샘플들을 포함하는 멀티스크립트 훈련 코퍼스(604)에 대해 훈련된 예시적인 콘볼루션 뉴럴 네트워크(602)를 도시한다.In some embodiments, the handwriting recognition model (504) is implemented as a convolutional neural network (CNN). FIG. 6 illustrates an exemplary convolutional neural network (602) trained on a multi-script training corpus (604) containing writing samples for characters in multiple non-overlapping scripts.

도 6에 도시된 바와 같이, 콘볼루션 뉴럴 네트워크(602)는 입력 플레인(606) 및 출력 플레인(608)을 포함한다. 입력 플레인(606)과 출력 플레인(608) 사이에는 복수의 콘볼루션 층들(610)(예컨대, 첫 번째 콘볼루션 층(610a), 0개 이상의 중간 콘볼루션 층들(도시되지 않음), 및 마지막 콘볼루션 층(610n)을 포함함)이 존재한다. 각 콘볼루션 층(610)에 뒤이어 개별 서브-샘플링 층(612)(예컨대, 첫 번째 서브-샘플링 층(612a), 0개 이상의 중간 서브-샘플링 층들(도시되지 않음) 및 마지막 서브-샘플링 층(612n))이 있다. 콘볼루션 층들 및 서브-샘플링 층들 뒤에 그리고 출력 플레인(608) 직전에 은닉 층(614)이 존재한다. 은닉 층(614)은 출력 플레인(608) 전에 있는 마지막 층이다. 일부 실시예들에서, 산출 효율을 개선시키기 위해 각 콘볼루션 층(610) 앞에 커널 층(616)(예컨대, 첫 번째 커널 층(616a), 0개 이상의 중간 커널 층들(도시되지 않음) 및 마지막 커널 층(612n)을 포함함)이 삽입된다.As illustrated in FIG. 6, the convolutional neural network (602) includes an input plane (606) and an output plane (608). Between the input plane (606) and the output plane (608), there are a plurality of convolutional layers (610) (e.g., a first convolutional layer (610a), zero or more intermediate convolutional layers (not illustrated), and a last convolutional layer (610n)). Each convolutional layer (610) is followed by a separate sub-sampling layer (612) (e.g., a first sub-sampling layer (612a), zero or more intermediate sub-sampling layers (not illustrated), and a last sub-sampling layer (612n)). A hidden layer (614) is present after the convolutional layers and sub-sampling layers and just before the output plane (608). The hidden layer (614) is the last layer before the output plane (608). In some embodiments, a kernel layer (616) (e.g., including a first kernel layer (616a), zero or more intermediate kernel layers (not shown), and a last kernel layer (612n)) is inserted before each convolutional layer (610) to improve the throughput efficiency.

도 6에 도시된 바와 같이, 입력 플레인(606)은 필기 인식 유닛의 입력 이미지(614)(예컨대, 필기 문자 또는 부수)를 수신하고, 출력 플레인(608)은 인식 유닛이 개별 출력 클래스(예컨대, 뉴럴 네트워크가 인식하도록 구성되는 출력 문자 세트 중에서의 특정한 문자)에 속할 가능성을 나타내는 확률들의 세트를 출력한다. 전체적으로 뉴럴 네트워크의 출력 클래스들(또는 뉴럴 네트워크의 출력 문자 세트)은 또한 필기 인식 모델의 레퍼토리 또는 어휘라고도 지칭된다. 본 명세서에 설명되는 콘볼루션 뉴럴 네트워크는 수만의 문자들의 레퍼토리를 갖도록 훈련될 수 있다.As illustrated in FIG. 6, the input plane (606) receives an input image (614) of a handwriting recognition unit (e.g., a handwritten character or radical), and the output plane (608) outputs a set of probabilities indicating the likelihood that the recognition unit belongs to a particular output class (e.g., a particular character from a set of output characters that the neural network is configured to recognize). Collectively, the output classes of the neural network (or the set of output characters of the neural network) are also referred to as the repertoire or vocabulary of the handwriting recognition model. The convolutional neural network described herein can be trained to have a repertoire of tens of thousands of characters.

입력 이미지(614)가 뉴럴 네트워크의 상이한 층들을 통하여 프로세싱될 때, 입력 이미지(614)에 내장된 상이한 공간 특징부들이 콘볼루션 층들(610)에 의해 추출된다. 각 콘볼루션 층(610)은 또한 특징부 맵들의 세트라고도 지칭되고, 상이한 문자들에 대응하는 이미지들 사이를 구분하기 위해 입력 이미지(614)에서 특정한 특징부들을 선발하기 위한 필터들로서 작용한다. 서브-샘플링 층들(612)은 점점 더 큰 축척으로 특징부들이 입력 이미지(614)로부터 캡처되는 것을 보장한다. 일부 실시예들에서, 서브-샘플링 층들(612)은 최대-풀링 기법(max-pooling technique)을 이용하여 구현된다. 최대-풀링 층들은 더 큰 국부적 구역들에 걸쳐 위치 불변성을 생성하며, 각 방향을 따라 Kx 및 Ky의 인자에 의해 선행 콘볼루션 층의 출력 이미지를 다운 샘플링하는데, Kx 및 Ky는 최대-풀링 직사각형의 크기이다. 최대-풀링은 우수한 불변 특징부들을 선택함으로써 더 빠른 수렴 속도를 야기하며, 이는 일반화 성능들을 개선시킨다. 일부 실시예들에서, 서브-샘플링은 다른 방법들을 이용하여 달성된다.As the input image (614) is processed through different layers of the neural network, different spatial features embedded in the input image (614) are extracted by the convolutional layers (610). Each convolutional layer (610), also referred to as a set of feature maps, acts as filters to select specific features from the input image (614) to distinguish between images corresponding to different characters. The sub-sampling layers (612) ensure that the features are captured from the input image (614) at increasingly larger scales. In some embodiments, the sub-sampling layers (612) are implemented using a max-pooling technique. The max-pooling layers create positional invariance over larger local regions and down-sample the output image of the preceding convolutional layer by a factor of Kx and Ky along each direction, where Kx and Ky are the sizes of the max-pooling rectangle. Max-pooling leads to faster convergence by selecting good invariant features, which improves generalization performance. In some embodiments, sub-sampling is achieved using other methods.

일부 실시예들에서, 콘볼루션 층(610n) 및 서브-샘플링 층(612n)의 마지막 세트 뒤에 그리고 출력 플레인(608) 앞에, 완전-접속 층(fully-connected layer), 즉 은닉 층(614)이 존재한다. 완전-접속 은닉 층(614)은 마지막 서브-샘플링 층(612n)에서의 노드들과 출력 플레인(608)에서의 노드들을 완전히 접속시키는 다층 퍼셉트론(multi-layer perceptron)이다. 은닉 층(614)은, 로지스틱 회귀(logistic regression)가 출력 층(608)에서의 출력 문자들 중 하나에 도달하기 전에 그리고 그 도중에, 그 층으로부터 수신된 출력 이미지들을 차지한다.In some embodiments, after the last set of convolutional layers (610n) and sub-sampling layers (612n) and before the output plane (608), there is a fully-connected layer, i.e. a hidden layer (614). The fully-connected hidden layer (614) is a multi-layer perceptron that fully connects the nodes in the last sub-sampling layer (612n) and the nodes in the output plane (608). The hidden layer (614) takes in the output images received from that layer before and while the logistic regression reaches one of the output characters in the output layer (608).

콘볼루션 뉴럴 네트워크(602)의 훈련 동안, 훈련 코퍼스(604)에서의 알려진 출력 클래스들을 이용한 기입 샘플들에 대해 구분 오류들이 최소화되도록 콘볼루션 층들(610)에서의 특징부들 및 특징부들과 연관된 개별 가중치들뿐만 아니라 은닉 층(614)에서의 파라미터들과 연관된 가중치들이 조율된다. 일단 콘볼루션 뉴럴 네트워크(602)가 훈련되었고 네트워크에서의 상이한 층들에 대해 최적 세트의 파라미터들 및 연관된 가중치들이 확립되었다면, 콘볼루션 뉴럴 네트워크(602)를 사용하여, 훈련 코퍼스(604)의 부분이 아닌 새로운 기입 샘플들(618), 예를 들어 사용자로부터 수신된 실시간 필기 입력에 기초하여 생성되는 입력 이미지들을 인식한다.During training of the convolutional neural network (602), the features and the individual weights associated with the features in the convolutional layers (610) as well as the weights associated with the parameters in the hidden layer (614) are tuned such that classification errors are minimized for handwriting samples using known output classes in the training corpus (604). Once the convolutional neural network (602) is trained and an optimal set of parameters and associated weights for the different layers in the network are established, the convolutional neural network (602) is used to recognize new handwriting samples (618) that are not part of the training corpus (604), for example, input images generated based on real-time handwriting input received from a user.

본 명세서에 설명되는 바와 같이, 필기 입력 인터페이스의 콘볼루션 뉴럴 네트워크는 멀티스크립트 또는 혼합 스크립트 필기 인식을 가능하게 하기 위해 멀티스크립트 훈련 코퍼스를 사용하여 훈련된다. 일부 실시예들에서, 콘볼루션 뉴럴 네트워크는 30,000개 내지 60,000개 초과의 문자들(예컨대, 유니코드 표준에 의해 인코딩되는 모든 문자들)의 큰 레퍼토리를 인식하도록 훈련된다. 대부분의 최신의(state-of-the-art) 필기 인식 시스템들은 획 순서에 의존적인 은닉 마르코프 방법(HMM)들에 기초한다. 또한, 대부분의 기존의 필기 인식 모델들은 언어-특정적이며, 수십 개의 문자들(예컨대, 영어 알파벳, 그리스어 알파벳, 전부 10개의 숫자들 등의 문자) 내지 몇 천 개의 문자들 (예컨대, 대부분의 상용 한자의 세트)까지의 작은 레퍼토리를 포함한다. 이와 같이, 본 명세서에 설명되는 보편적인 인식기는 대부분의 기존의 시스템들보다 수십 배 더 많은 문자들을 취급할 수 있다.As described herein, the convolutional neural network of the handwriting input interface is trained using a multi-script training corpus to enable multi-script or mixed-script handwriting recognition. In some embodiments, the convolutional neural network is trained to recognize a large repertoire of 30,000 to 60,000 characters (e.g., all characters encoded by the Unicode standard). Most state-of-the-art handwriting recognition systems are based on stroke-order dependent Hidden Markov Models (HMMs). In addition, most existing handwriting recognition models are language-specific and contain small repertoires ranging from a few dozen characters (e.g., characters such as the English alphabet, the Greek alphabet, all ten numbers, etc.) to a few thousand characters (e.g., the set of most common Chinese characters). Thus, the universal recognizer described herein can handle dozens of times more characters than most existing systems.

몇몇 종래의 필기 시스템들은 여러 개의 개별적으로 훈련된 필기 인식 모델들을 포함할 수 있고, 각각의 필기 인식 모델은 특정한 언어 또는 문자들의 작은 세트에 대해 맞춤화되어 있다. 기입 샘플은 구분이 이루어질 때까지 상이한 인식 모델들을 거쳐 전파된다. 예를 들어, 필기 샘플은 일련의 연속된 언어-특정 또는 스크립트-특정 문자 인식 모델들로 제공될 수 있고, 필기 샘플이 제1 인식 모델에 의해 확실히 구분될 수 없는 경우, 그것은 다음 인식 모델로 제공되는데, 다음 인식 모델은 필기 샘플을 그 자신의 레퍼토리 내에서 구분하려고 시도한다. 구분을 위한 이 접근법은 시간 소모적이며, 메모리 요건은 이용될 필요가 있는 각각의 추가적인 인식 모델에 따라 빠르게 증가한다.Some conventional handwriting systems may include several individually trained handwriting recognition models, each tailored to a particular language or small set of characters. A writing sample is propagated through the different recognition models until a distinction is made. For example, a handwriting sample may be fed to a series of successive language-specific or script-specific character recognition models, and if the handwriting sample cannot be reliably distinguished by the first recognition model, it is fed to the next recognition model, which attempts to distinguish the handwriting sample within its own repertoire. This approach to distinction is time consuming, and the memory requirements grow rapidly with each additional recognition model that needs to be utilized.

다른 최신의 모델들은 사용자에게 선호 언어를 특정하도록 요구하며, 선택된 필기 인식 모델을 사용하여 현재의 입력을 구분한다. 이러한 구현예들은 사용하기 번잡하고 상당한 메모리를 소모할 뿐만 아니라 혼합 언어 입력을 인식하기 위해 사용될 수도 없다. 혼합 언어 또는 혼합 스크립트 입력을 입력하는 도중에 사용자에게 언어 기본 설정을 전환하도록 요구하는 것은 비현실적이다.Other recent models ask the user to specify a preferred language and then use the selected handwriting recognition model to distinguish the current input. These implementations are not only cumbersome to use and consume significant memory, but they cannot be used to recognize mixed-language input. It is impractical to ask the user to switch language preferences while entering mixed-language or mixed-script input.

본 명세서에서 설명되는 멀티스크립트 또는 보편적인 인식기는 종래의 인식 시스템들에 대한 상기 문제점들의 적어도 일부를 다룬다. 도 7은, 필기 인식 모듈이 후속하여 사용자의 필기 입력에 대한 실시간 다중 언어 및 멀티스크립트 필기 인식을 제공하기 위해 사용될 수 있도록, 대형 멀티스크립트 훈련 코퍼스를 사용하여 필기 인식 모듈(예컨대, 콘볼루션 뉴럴 네트워크)을 훈련시키기 위한 예시적인 프로세스(700)의 플로차트이다.The multi-script or universal recognizer described herein addresses at least some of the above problems with conventional recognition systems. FIG. 7 is a flowchart of an exemplary process (700) for training a handwriting recognition module (e.g., a convolutional neural network) using a large multi-script training corpus such that the handwriting recognition module can subsequently be used to provide real-time multilingual and multi-script handwriting recognition of a user's handwriting input.

일부 실시예들에서, 필기 인식 모델의 훈련이 서버 디바이스 상에서 수행된 후에, 훈련된 필기 인식 모델이 사용자 디바이스로 제공된다. 필기 인식 모델은 선택적으로 서버로부터의 추가 지원을 요구하지 않고서 사용자 디바이스 상에서 국부적으로 실시간 필기 인식을 수행한다. 일부 실시예들에서, 훈련 및 인식 둘 모두가 동일한 디바이스 상에서 제공된다. 예를 들어, 서버 디바이스는 사용자 디바이스로부터 사용자의 필기 입력을 수신하고, 필기 인식을 수행하고, 인식 결과들을 사용자 디바이스로 실시간으로 전송할 수 있다.In some embodiments, after training of the handwriting recognition model is performed on the server device, the trained handwriting recognition model is provided to the user device. The handwriting recognition model optionally performs real-time handwriting recognition locally on the user device without requiring additional support from the server. In some embodiments, both training and recognition are provided on the same device. For example, the server device may receive a user's handwriting input from the user device, perform handwriting recognition, and transmit the recognition results to the user device in real time.

예시적인 프로세스(700)에서, 하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서, 디바이스는 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들(예컨대, 획 순서 독립적인 특징부들)에 기초하여 멀티스크립트 필기 인식 모델을 훈련시킨다(702). 일부 실시예들에서, 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들은 획 순서 독립적이며 획 방향 독립적이다(704). 일부 실시예들에서, 멀티스크립트 필기 인식 모델의 훈련은 필기 샘플들에서의 개별 획들과 연관된 시간 정보에 관계없다(706). 구체적으로, 필기 샘플들의 이미지들은 사전결정된 크기로 정규화되고, 이미지들은 개별 획들이 이미지를 형성하도록 입력되는 순서에 대한 어떠한 정보도 포함하지 않는다. 게다가, 이미지들은 또한 개별 획들이 이미지를 형성하도록 입력되는 방향에 대한 어떠한 정보도 포함하지 않는다. 사실상, 훈련 동안, 이미지들이 개별 획들에 의해 어떻게 시간적으로 형성되는지에 상관없이 필기 이미지들로부터 특징부들이 추출된다. 따라서, 인식 동안, 개별 획들에 관련된 시간 정보가 필요하지 않다. 결과적으로, 인식은 필기 입력에서의 지연된, 비순서적인(out-of-order) 획들, 및 임의의 획 방향들에도 불구하고 확고하게 일관된 인식 결과들을 제공한다.In an exemplary process (700), in a device having one or more processors and memory, the device trains a multi-script handwriting recognition model based on spatially-derived features (e.g., stroke-order independent features) of a multi-script training corpus (702). In some embodiments, the spatially-derived features of the multi-script training corpus are stroke-order independent and stroke-direction independent (704). In some embodiments, the training of the multi-script handwriting recognition model is independent of temporal information associated with individual strokes in the handwriting samples (706). Specifically, the images of the handwriting samples are normalized to a predetermined size, and the images do not contain any information about the order in which the individual strokes are input to form the image. In addition, the images also do not contain any information about the direction in which the individual strokes are input to form the image. In effect, during training, features are extracted from the handwriting images without regard to how the images are temporally formed by the individual strokes. Thus, during recognition, no temporal information associated with the individual strokes is needed. As a result, recognition provides robust and consistent recognition results despite delayed, out-of-order strokes and arbitrary stroke directions in handwriting input.

일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 필기 샘플들을 포함한다. 도 6에 도시된 바와 같이, 멀티스크립트 훈련 코퍼스는 많은 사용자들로부터 수집된 필기 샘플들을 포함한다. 각 필기 샘플은 필기 인식 모델에서 표시되는 개별 스크립트의 하나의 문자에 대응한다. 필기 인식 모델을 적절히 훈련시키기 위해, 훈련 코퍼스는 필기 인식 모델에서 표시되는 스크립트들의 각 문자에 대한 많은 수의 기입 샘플들을 포함한다.In some embodiments, the multi-script training corpus includes handwriting samples corresponding to characters in at least three non-overlapping scripts. As illustrated in FIG. 6, the multi-script training corpus includes handwriting samples collected from many users. Each handwriting sample corresponds to one character in a separate script represented by the handwriting recognition model. In order to properly train the handwriting recognition model, the training corpus includes a large number of writing samples for each character in the scripts represented by the handwriting recognition model.

일부 실시예들에서, 적어도 3개의 비중첩 스크립트들은 한자들, 이모지 캐릭터들 및 라틴어 스크립트를 포함한다(708). 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 적어도 3개의 비중첩 스크립트들에 걸치는 30,000개의 문자들을 표시하는 적어도 30,000개의 출력 클래스들을 갖는다(710).In some embodiments, the at least three non-overlapping scripts include Chinese characters, emoji characters, and a Latin script (708). In some embodiments, the multi-script handwriting recognition model has at least 30,000 output classes representing 30,000 characters spanning the at least three non-overlapping scripts (710).

일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 유니코드 표준으로 인코딩된 모든 한자들(예컨대, 모든 CJK(중국어-일본어-한국어) 통일된 표의 문자(unified ideograph)들의 상당 부분 또는 전부)의 각 문자에 대한 개별 기입 샘플들을 포함한다. 유니코드 표준은 전체 약 74,000개의 CJK 통일된 표의 문자들을 정의한다. CJK 통일된 표의 문자들의 기본 블록(4E00-9FFF)은 중국어에서뿐만 아니라 일본어, 한국어 및 베트남어에서도 사용되는 20,941개의 기본 한자들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 CJK 통일된 표의 문자들의 기본 블록에서의 모든 문자들에 대한 기입 샘플들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 하나 이상의 복합 한자들을 구조적으로 구성하도록 사용될 수 있는 CJK 부수들에 대한 기입 샘플들을 추가로 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 CJK 통일된 표의 문자 확장들 중 하나 이상으로 인코딩된 한자들과 같이 덜 빈번하게 사용된 한자들에 대한 기입 샘플들을 추가로 포함한다.In some embodiments, the multi-script training corpus includes individual writing samples for each character in all of the Chinese characters encoded in the Unicode Standard (e.g., a significant portion or all of all CJK (Chinese-Japanese-Korean) unified ideographs). The Unicode Standard defines a total of about 74,000 CJK unified ideographs. The basic block of CJK unified ideographs (4E00-9FFF) includes 20,941 basic ideographs that are used in Chinese as well as Japanese, Korean, and Vietnamese. In some embodiments, the multi-script training corpus includes writing samples for all characters in the basic block of CJK unified ideographs. In some embodiments, the multi-script training corpus additionally includes writing samples for CJK radicals that can be used to structurally construct one or more compound ideographs. In some embodiments, the multi-script training corpus additionally includes writing samples for less frequently used Chinese characters, such as characters encoded in one or more of the CJK Unified Ideographic Extensions.

일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 유니코드 표준에 의해 인코딩된 라틴어 스크립트에서의 모든 문자들의 각 문자에 대한 개별 기입 샘플들을 추가로 포함한다. 기본 라틴어 스크립트에서의 문자들은, 라틴어 소문자 및 대문자 뿐만 아니라 표준 라틴어 키보드 상에서 일반적으로 사용되는 다양한 기본 심볼들 및 숫자들도 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 확장된 라틴어 스크립트 (예컨대, 기본 라틴어 문자들의 다양한 억양 형태들)에서의 문자들을 추가로 포함한다.In some embodiments, the multi-script training corpus additionally includes individual writing samples for each character in all characters in a Latin script encoded by the Unicode standard. The characters in the basic Latin script include not only the Latin lowercase and uppercase letters, but also various basic symbols and numbers commonly used on a standard Latin keyboard. In some embodiments, the multi-script training corpus additionally includes characters in an extended Latin script (e.g., various accent forms of the basic Latin letters).

일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 임의의 자연 인간 언어와 연관되지 않은 인공 스크립트의 각 문자에 대응하는 기입 샘플들을 포함한다. 예를 들어, 일부 실시예들에서, 이모지 캐릭터들의 세트가 이모지 스크립트에서 선택적으로 정의되고, 이모지 캐릭터들 각각에 대응하는 기입 샘플들이 멀티스크립트 훈련 코퍼스에 포함된다. 예를 들어, 손으로 그려진 하트 형상의 심볼이 훈련 코퍼스에서 이모지 캐릭터 "♥"에 대한 필기 샘플이다. 유사하게, 손으로 그려진 웃는 얼굴(예컨대, 뒤집힌 원호 위에 있는 2개의 점들)이 훈련 코퍼스에서 이모지 캐릭터 ""에 대한 필기 샘플이다. 그 외의 이모지 캐릭터들에는, 상이한 감정들(예컨대, 행복, 슬픔, 분노, 당황, 충격, 웃음, 울기, 좌절 등), 상이한 개체들 및 캐릭터들(예컨대, 고양이, 개, 토끼, 심장, 과일, 눈, 입술, 선물, 꽃, 촛불, 달, 별 등), 그리고 상이한 행동들(예컨대, 악수, 키스, 달리기, 댄스, 점프, 수면, 식사, 만남, 사랑, 좋아함, 투표 등) 등을 나타내는 아이콘들의 카테고리들이 포함된다. 일부 실시예들에서, 이모지 캐릭터에 대응하는 필기 샘플에서의 획들은 대응하는 이모지 캐릭터를 형성하는 실제 라인들의 간결화되고 그리고/또는 스타일화된(stylized) 라인들이다. 일부 실시예들에서, 각 디바이스 또는 애플리케이션은 동일한 이모지 캐릭터에 대한 상이한 설계를 이용할 수 있다. 예를 들어, 2명의 사용자들로부터 수신된 필기 입력들이 실질적으로 동일할지라도, 여성 사용자에게 제시되는 스마일상 이모지 캐릭터는 남성 사용자에게 제시되는 스마일상 이모지 캐릭터와는 다를 수 있다.In some embodiments, the multi-script training corpus includes writing samples corresponding to each character of an artificial script that is not associated with any natural human language. For example, in some embodiments, a set of emoji characters is optionally defined in the emoji script, and writing samples corresponding to each of the emoji characters are included in the multi-script training corpus. For example, a hand-drawn heart-shaped symbol is a handwriting sample for the emoji character "♥" in the training corpus. Similarly, a hand-drawn smiley face (e.g., two dots on an inverted arc) is a handwriting sample for the emoji character " " is a handwriting sample for . Other emoji characters include categories of icons representing different emotions (e.g., happy, sad, angry, embarrassed, shocked, laughing, crying, frustrated, etc.), different objects and characters (e.g., cat, dog, rabbit, heart, fruit, eye, lips, gift, flower, candle, moon, star, etc.), and different actions (e.g., handshake, kiss, run, dance, jump, sleep, eat, meet, love, like, vote, etc.). In some embodiments, the strokes in the handwriting sample corresponding to an emoji character are simplified and/or stylized lines of the actual lines forming the corresponding emoji character. In some embodiments, each device or application may utilize a different design for the same emoji character. For example, a smiley emoji character presented to a female user may be different than a smiley emoji character presented to a male user, even if the handwriting inputs received from two users are substantially identical.

일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 또한 다른 스크립트들, 예를 들어 그리스어 스크립트(예컨대, 그리스어 문자들 및 심볼들을 포함함), 키릴 문자 스크립트, 히브리어 스크립트, 및 유니코드 표준에 따라 인코딩된 하나 이상의 다른 스크립트들에서의 문자들에 대한 기입 샘플들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스에 포함된 적어도 3개의 비중첩 스크립트들은 한자들, 이모지 캐릭터들, 및 라틴어 스크립트에서의 문자들을 포함한다. 한자들, 이모지 캐릭터들, 및 라틴어 스크립트에서의 문자들은 당연히 비중첩 스크립트들이다. 많은 다른 스크립트들이 적어도 일부 문자들에 대해 서로 중첩할 수 있다. 예를 들어, 라틴어 스크립트에서의 일부 문자들(예컨대, A, Z)은 많은 다른 스크립트들(예컨대, 그리스어 및 키릴 문자)에서 발견될 수도 있다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 한자들, 아랍어 스크립트 및 라틴어 스크립트를 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 중첩 및/또는 비중첩 스크립트들의 다른 조합들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 유니코드 표준에 의해 인코딩된 모든 문자들에 대한 기입 샘플들을 포함한다.In some embodiments, the multi-script training corpus also includes writing samples for characters in other scripts, such as Greek script (e.g., including Greek letters and symbols), Cyrillic script, Hebrew script, and one or more other scripts encoded according to the Unicode standard. In some embodiments, the at least three non-overlapping scripts included in the multi-script training corpus include characters in Chinese characters, emoji characters, and Latin script. The Chinese characters, emoji characters, and characters in Latin script are, of course, non-overlapping scripts. Many other scripts may overlap with each other for at least some characters. For example, some characters in Latin script (e.g., A, Z) may also be found in many other scripts (e.g., Greek and Cyrillic). In some embodiments, the multi-script training corpus includes Chinese characters, Arabic script, and Latin script. In some embodiments, the multi-script training corpus includes other combinations of overlapping and/or non-overlapping scripts. In some embodiments, the multi-script training corpus contains writing samples for all characters encoded by the Unicode standard.

도 7에 도시된 바와 같이, 일부 실시예들에서, 멀티스크립트 필기 인식 모델을 훈련시키기 위해, 디바이스는 멀티스크립트 훈련 코퍼스의 필기 샘플들을 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 콘볼루션 뉴럴 네트워크로 제공한다(712). 디바이스는 콘볼루션 뉴럴 네트워크를 사용하여, 멀티스크립트 훈련 코퍼스에서 표시되는 적어도 3개의 비중첩 스크립트들의 문자들을 구분하기 위해 필기 샘플들의 공간-유도 특징부들(예컨대, 획-순서 독립적인 특징부들) 및 공간-유도 특징부들에 대한 개별 가중치들을 결정한다(714). 멀티스크립트 필기 인식 모델은, 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 필기 인식 모델이 멀티스크립트 훈련 코퍼스에서의 모든 샘플들을 사용하여 훈련된다는 점에서, 종래의 멀티스크립트 필기 인식 모델들과 다르다. 훈련 코퍼스의 작은 서브세트를 각각 취급하는 개별 서브-네트워크들(예컨대, 특정한 스크립트의 문자들 또는 특정한 언어에서 사용되는 문자들을 인식하기 위해 각각 훈련된 서브-네트워크들)에 의존하지 않고서, 멀티스크립트 훈련 코퍼스에서 표시되는 모든 문자들을 구별하기 위해 단일 콘볼루션 뉴럴 네트워크가 훈련된다. 또한, 단일 콘볼루션 뉴럴 네트워크는, 라틴어 스크립트 및 그리스어 스크립트(예컨대, 중첩 문자들 A, B, E, Z 등을 가짐)와 같은, 수 개의 중첩 스크립트들의 문자들보다는, 다수의 비중첩 스크립트들에 걸치는 많은 수의 문자들을 구별하기 위해 훈련된다.As illustrated in FIG. 7, in some embodiments, to train a multi-script handwriting recognition model, the device provides handwriting samples of a multi-script training corpus to a single convolutional neural network having a single input plane and a single output plane (712). The device uses the convolutional neural network to determine spatially-derived features (e.g., stroke-order independent features) of the handwriting samples and individual weights for the spatially-derived features to distinguish characters of at least three non-overlapping scripts represented in the multi-script training corpus (714). The multi-script handwriting recognition model differs from conventional multi-script handwriting recognition models in that a single handwriting recognition model having a single input plane and a single output plane is trained using all samples in the multi-script training corpus. Rather than relying on separate sub-networks each handling a small subset of the training corpus (e.g., sub-networks each trained to recognize characters in a particular script or characters used in a particular language), a single convolutional neural network is trained to distinguish all characters appearing in the multi-script training corpus. Furthermore, a single convolutional neural network is trained to distinguish a large number of characters spanning multiple non-overlapping scripts, rather than characters from several overlapping scripts, such as Latin and Greek scripts (e.g., having overlapping letters A, B, E, Z, etc.).

일부 실시예들에서, 디바이스는 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공한다(716). 일부 실시예들에서, 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 것은, 사용자가 계속해서 필기 입력의 추가 또는 개정을 제공함에 따라 사용자의 필기 입력에 대한 인식 출력을 연속적으로 개정하는 것을 포함한다. 일부 실시예들에서, 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 것은, 멀티스크립트 필기 인식 모델을 사용자 디바이스로 제공하는 것(718)을 추가로 포함하는데, 여기서 사용자 디바이스는 사용자로부터 필기 입력을 수신하고, 멀티스크립트 필기 인식 모델에 기초하여 필기 입력에 대한 필기 인식을 국부적으로 수행한다.In some embodiments, the device provides real-time handwriting recognition of the user's handwriting input using a multi-script handwriting recognition model trained on spatially-guided features of a multi-script training corpus (716). In some embodiments, providing real-time handwriting recognition of the user's handwriting input comprises continuously revising the recognition output of the user's handwriting input as the user continues to provide additions or revisions to the handwriting input. In some embodiments, providing real-time handwriting recognition of the user's handwriting input further comprises providing the multi-script handwriting recognition model to the user device (718), wherein the user device receives the handwriting input from the user and locally performs handwriting recognition of the handwriting input based on the multi-script handwriting recognition model.

일부 실시예들에서, 디바이스는 멀티스크립트 필기 인식 모델을 복수의 디바이스들의 개별 입력 언어들이 중첩되지 않는 복수의 디바이스들로 제공하고, 멀티스크립트 필기 인식 모델은 복수의 디바이스들의 각각 상에서 상기 각 사용자 디바이스와 연관된 상이한 언어의 필기 인식을 위해 사용된다. 예를 들어, 멀티스크립트 필기 인식 모델이 많은 상이한 스크립트들 및 언어들에서의 문자들을 인식하도록 훈련된 경우, 동일한 필기 인식 모델이 이들 입력 언어들 중 임의의 것에 대한 필기 입력을 제공하기 위해 전세계적으로 사용될 수 있다. 영어 및 히브리어로만 입력하기를 원하는 사용자를 위한 제1 디바이스는 중국어 및 이모지 캐릭터로만 입력하기를 원하는 다른 사용자를 위한 제2 디바이스와 동일한 필기 인식 모델을 사용하여 필기 입력 기능을 제공할 수 있다. 제1 디바이스의 사용자에게 (예컨대, 영어-특정 필기 인식 모델로 구현된) 영어 필기 입력 키보드 및 (예컨대, 히브리어-특정 필기 인식 모델로 구현된) 별도의 히브리어 필기 입력 키보드를 별도로 설치하도록 요구하는 대신에, 동일한 보편적인 멀티스크립트 필기 인식 모델이 제1 디바이스 상에 한 번 설치되고, 사용되어 영어와 히브리어 둘 모두 뿐만 아니라 두 언어들의 혼합 입력에 대한 필기 입력 기능도 제공할 수 있다. 게다가, 제2 사용자에게 (예컨대, 중국어-특정 필기 인식 모델로 구현된) 중국어 필기 입력 키보드 및 (예컨대, 이모지 필기 인식 모델로 구현된) 별도의 이모지 필기 입력 키보드를 설치하도록 요구하는 대신에, 동일한 보편적인 멀티스크립트 필기 인식 모델이 제2 디바이스 상에 한 번 설치되고, 사용되어 중국어와 이모지 둘 모두 뿐만 아니라 두 스크립트들의 혼합 입력에 대한 필기 입력 기능도 제공할 수 있다. 동일한 멀티스크립트 필기 모델을 사용하여 다중 스크립트들에 걸치는 큰 레퍼토리(예컨대, 거의 100개의 상이한 스크립트들로 인코딩된 문자들의 상당 부분 또는 전부)를 취급하는 것은, 사용자들 및 디바이스 공급자들의 일부에 대한 상당한 부담 없이 인식기의 유용성을 개선시킨다.In some embodiments, the device provides a multi-script handwriting recognition model to a plurality of devices where the individual input languages of the plurality of devices do not overlap, and the multi-script handwriting recognition model is used on each of the plurality of devices to recognize handwriting in a different language associated with each user device. For example, if the multi-script handwriting recognition model is trained to recognize characters in many different scripts and languages, the same handwriting recognition model can be used globally to provide handwriting input for any of those input languages. A first device for a user who wishes to input only in English and Hebrew may provide handwriting input capabilities using the same handwriting recognition model as a second device for another user who wishes to input only in Chinese and emoji characters. Instead of requiring a user of a first device to install separate English handwriting input keyboards (e.g., implemented with an English-specific handwriting recognition model) and separate Hebrew handwriting input keyboards (e.g., implemented with a Hebrew-specific handwriting recognition model), the same universal multi-script handwriting recognition model can be installed once on the first device and used to provide handwriting input capabilities for both English and Hebrew, as well as mixed input of the two languages. Furthermore, instead of requiring a second user to install a Chinese handwriting input keyboard (e.g., implemented with a Chinese-specific handwriting recognition model) and a separate emoji handwriting input keyboard (e.g., implemented with an emoji handwriting recognition model), the same universal multi-script handwriting recognition model can be installed once on the second device and used to provide handwriting input capabilities for both Chinese and emoji, as well as mixed input of the two scripts. Handling large repertoires across multiple scripts (e.g., a significant portion or all of the characters encoded in nearly 100 different scripts) using a single multi-script handwriting model improves the usability of the recognizer without significant burden on users and device vendors.

대형 멀티스크립트 훈련 코퍼스를 사용한 멀티스크립트 필기 인식 모델 훈련은 종래의 HMM-기반 필기 인식 시스템과는 다르며, 문자들의 개별 획들과 연관된 시간 정보에 의존하지 않는다. 또한, 멀티스크립트 인식 시스템에 대한 자원 및 메모리 요건은 멀티스크립트 인식 시스템에 의해 커버되는 심볼들 및 언어들의 증가에 따라 선형으로 증가하지 않는다. 예를 들어, 종래의 필기 시스템에서, 언어들의 수를 증가시키는 것은 다른 독립적으로 훈련된 모델을 추가하는 것을 의미하고, 메모리 요건은 필기 인식 시스템의 증가되는 능력을 수용하기 위해 적어도 2배가 될 것이다. 대조적으로, 멀티스크립트 모델이 멀티스크립트 훈련 코퍼스에 의해 훈련되는 경우, 언어 커버리지를 증가시키는 것은 필기 인식 모델을 추가적인 필기 샘플들로 다시 훈련시키는 것, 및 출력 플레인의 크기를 증가시키는 것을 요구하지만, 그 증가량은 매우 완만하다. 멀티스크립트 훈련 코퍼스가 n개의 상이한 언어들에 대응하는 필기 샘플들을 포함하며 멀티스크립트 필기 인식 모델이 크기 m의 메모리를 차지한다고 가정하면, 언어 커버리지를 N개의 언어들로 증가시킬 경우(N>n), 디바이스는 제2 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 기초하여 멀티스크립트 필기 인식 모델을 다시 훈련시키는데, 제2 멀티스크립트 훈련 코퍼스는 N개 상이한 언어들에 대응하는 제2 필기 샘플들을 포함한다. M/m의 변화는 1 내지 2의 범위 내에서 실질적으로 일정하게 유지되고, 여기서 N/n의 변화는 1 내지 100이다. 일단 멀티스크립트 필기 인식 모델이 다시 훈련되면, 디바이스는 다시 훈련된 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공할 수 있다.Training a multi-script handwriting recognition model using a large multi-script training corpus is different from conventional HMM-based handwriting recognition systems in that it does not rely on temporal information associated with individual strokes of characters. Furthermore, the resource and memory requirements for a multi-script recognition system do not increase linearly with the increase in the number of symbols and languages covered by the multi-script recognition system. For example, in a conventional handwriting system, increasing the number of languages would mean adding another independently trained model, and the memory requirement would at least double to accommodate the increased capability of the handwriting recognition system. In contrast, when a multi-script model is trained with a multi-script training corpus, increasing the language coverage requires retraining the handwriting recognition model with additional handwriting samples and increasing the size of the output plane, but the increase is very modest. Assuming that the multi-script training corpus contains handwriting samples corresponding to n different languages and the multi-script handwriting recognition model occupies a memory of size m , then when increasing the language coverage to N languages (N>n), the device retrains the multi-script handwriting recognition model based on spatially-guided features of a second multi-script training corpus, wherein the second multi-script training corpus contains second handwriting samples corresponding to N different languages. The variation of M / m is kept substantially constant within the range of 1 to 2, wherein the variation of N / n is from 1 to 100. Once the multi-script handwriting recognition model is retrained, the device can provide real-time handwriting recognition of a user's handwriting input using the retrained multi-script handwriting recognition model.

도 8a 및 도 8b는 휴대용 사용자 디바이스(예컨대, 디바이스(100)) 상에서의 실시간 멀티스크립트 필기 인식 및 입력을 제공하기 위한 예시적인 사용자 인터페이스들을 도시한다. 도 8a 및 도 8b에서, 필기 입력 인터페이스(802)가 사용자 디바이스의 터치 감응 디스플레이 스크린(예컨대, 터치 스크린(112)) 상에 디스플레이된다. 필기 입력 인터페이스(802)는 필기 입력 영역(804), 후보 디스플레이 영역(806), 및 텍스트 입력 영역(808)을 포함한다. 일부 실시예들에서, 필기 입력 인터페이스(802)는 복수의 제어 요소들을 추가로 포함하고, 여기서 그들 각각은 필기 입력 인터페이스로 하여금 사전결정된 기능을 수행하도록 하기 위해 호출될 수 있다. 도 8a에 도시된 바와 같이, 삭제 버튼, 스페이스 버튼, 캐리지 리턴(carriage return) 또는 엔터(Enter) 버튼, 키보드 전환 버튼이 필기 입력 인터페이스에 포함된다. 다른 제어 요소들이 가능하며, 선택적으로 필기 입력 인터페이스에서 제공되어 필기 입력 인터페이스(802)를 활용한 각각의 상이한 애플리케이션에 적합하게 할 수 있다. 필기 입력 인터페이스(802)의 상이한 컴포넌트의 레이아웃은 단지 예시적이며, 상이한 디바이스들 및 상이한 애플리케이션들에 따라 다를 수 있다.FIGS. 8A and 8B illustrate exemplary user interfaces for providing real-time multi-script handwriting recognition and input on a portable user device (e.g., device (100)). In FIGS. 8A and 8B , a handwriting input interface (802) is displayed on a touch-sensitive display screen (e.g., touch screen (112)) of the user device. The handwriting input interface (802) includes a handwriting input area (804), a candidate display area (806), and a text input area (808). In some embodiments, the handwriting input interface (802) further includes a plurality of control elements, each of which can be invoked to cause the handwriting input interface to perform a predetermined function. As illustrated in FIG. 8A , a delete button, a space button, a carriage return or Enter button, and a keyboard toggle button are included in the handwriting input interface. Other control elements are possible and may optionally be provided in the handwriting input interface to suit different applications utilizing the handwriting input interface (802). The layout of the different components of the handwriting input interface (802) is merely exemplary and may vary across different devices and across different applications.

일부 실시예들에서, 필기 입력 영역(804)은 사용자로부터 필기 입력을 수신하기 위한 터치 감응 영역이다. 터치 스크린 상에서 필기 입력 영역(804) 내에서의 지속된 접촉 및 그의 연관된 모션 경로가 필기 획으로서 등록된다. 일부 실시예들에서, 디바이스에 의해 등록된 필기 획은 지속된 접촉에 의해 추적되는 동일한 위치들에서 필기 입력 영역(804) 내에서 시각적으로 렌더링된다. 도 8a에 도시된 바와 같이, 사용자는 필기 입력 영역(804)에서, 일부 필기 한자들(예컨대, ""), 일부 필기 영어 문자들(예컨대, "Happy"), 및 손으로 그려진 이모지 캐릭터(예컨대, 스마일상)을 포함하는 다수의 필기 획들을 제공하였다. 필기 문자들은 필기 입력 영역(804)에서 다수의 라인들(예컨대, 2개의 라인들)로 분포된다.In some embodiments, the handwriting input area (804) is a touch-sensitive area for receiving handwriting input from a user. A sustained contact and its associated motion path within the handwriting input area (804) on the touch screen is registered as a handwriting stroke. In some embodiments, a handwriting stroke registered by the device is visually rendered within the handwriting input area (804) at the same locations traced by the sustained contact. As illustrated in FIG. 8A , a user may enter some handwritten characters (e.g., " "), some handwritten English characters (e.g., "Happy"), and hand-drawn emoji characters (e.g., a smiley face). The handwritten characters are distributed in a number of lines (e.g., two lines) in the handwriting input area (804).

일부 실시예들에서, 후보 디스플레이 영역(806)은 필기 입력 영역(804)에서 현재 누적된 필기 입력에 대한 하나 이상의 인식 결과들(예컨대, 810 및 812)을 디스플레이한다. 일반적으로, 최상위 인식 결과(예컨대, 810)는 후보 디스플레이 영역에서 첫 번째 위치에 디스플레이된다. 도 8a에 도시된 바와 같이, 본 명세서에 설명되는 필기 인식 모델은 한자들, 라틴어 스크립트 및 이모지 캐릭터들을 포함한 다수의 비중첩 스크립트들의 문자들을 인식할 수 있기 때문에, 인식 모델에 의해 제공되는 인식 결과(예컨대, 810)는 필기 입력에 의해 표시되는, 한자들, 영어 문자들 및 이모지 캐릭터를 정확하게 포함한다. 사용자는 인식 언어들을 선택하거나 또는 전환하기 위해 입력을 기입하는 도중에 정지하도록 요구되지 않는다.In some embodiments, the candidate display area (806) displays one or more recognition results (e.g., 810 and 812) for the currently accumulated handwriting input in the handwriting input area (804). Typically, the top-ranked recognition result (e.g., 810) is displayed first in the candidate display area. As illustrated in FIG. 8A , since the handwriting recognition model described herein can recognize characters of multiple non-overlapping scripts, including Chinese characters, Latin scripts, and emoji characters, the recognition result (e.g., 810) provided by the recognition model accurately includes the Chinese characters, English characters, and emoji characters represented by the handwriting input. The user is not required to pause while entering input to select or switch recognition languages.

일부 실시예들에서, 텍스트 입력 영역(808)은 필기 입력 인터페이스를 채용하고 있는 개별 애플리케이션으로 제공된 텍스트 입력을 디스플레이하는 영역이다. 도 8a에 도시된 바와 같이, 텍스트 입력 영역(808)은 메모 애플리케이션에 의해 사용되고, 텍스트 입력 영역(808) 내에 현재 나타낸 텍스트(예컨대, "America .")는 메모 애플리케이션으로 이미 제공된 텍스트 입력이다. 일부 실시예들에서, 커서(813)는 텍스트 입력 영역(808)에서의 현재 텍스트 입력 위치를 지시한다.In some embodiments, the text input area (808) is an area that displays text input provided by an individual application that employs a handwriting input interface. As illustrated in FIG. 8A , the text input area (808) is used by a memo application, and the text currently displayed within the text input area (808) (e.g., "America .") is a text input already provided by the memo application. In some embodiments, the cursor (813) indicates the current text input position in the text input area (808).

일부 실시예들에서, 사용자는, 예컨대, 명시적 선택 입력(예컨대, 디스플레이된 인식 결과 중 하나 상에서의 탭 제스처), 또는 암시적 확인 입력(예컨대, 필기 입력 영역에서의 더블 탭 제스처 또는 "엔터" 버튼 상에서의 탭 제스처)에 의해, 후보 디스플레이 영역(806)에서 디스플레이되는 특정한 인식 결과를 선택할 수 있다. 도 8b에 도시된 바와 같이, 사용자는 최상위 인식 결과(810)를 (도 8a의 인식 결과(810) 위에서의 접촉(814)에 의해 지시되는 바와 같이) 탭 제스처를 사용하여 명시적으로 선택하였다. 선택 입력에 응답하여, 인식 결과(810)의 텍스트는 텍스트 입력 영역(808)에서 커서(813)에 의해 지시되는 삽입 포인트에 삽입된다. 도 8b에 도시된 바와 같이, 일단 선택된 인식 결과(810)의 텍스트가 텍스트 입력 영역(808)으로 입력되면, 필기 입력 영역(804) 및 후보 디스플레이 영역(806)은 둘 모두 클리어된다. 필기 입력 영역(804)은 이제 새로운 필기 입력을 허용할 준비가 되어 있고, 후보 디스플레이 영역(806)은 이제 새로운 필기 입력에 대한 인식 결과들을 디스플레이하기 위해 사용될 수 있다. 일부 실시예들에서, 암시적 확인 입력은 사용자가 정지하고 최상위 인식 결과를 선택하도록 요구하지 않고 최상위 인식 결과가 텍스트 입력 영역(808)으로 입력되도록 한다. 잘 설계된 암시적 확인 입력은 텍스트 입력 속도를 개선시키며 텍스트 구성 동안 사용자에게 지워지는 인지적 부담을 저감시킨다.In some embodiments, a user may select a particular recognition result displayed in the candidate display area (806), for example, by an explicit selection input (e.g., a tap gesture on one of the displayed recognition results) or an implicit confirmation input (e.g., a double-tap gesture in the handwriting input area or a tap gesture on an “Enter” button). As illustrated in FIG. 8B , the user has explicitly selected the top-ranked recognition result (810) using a tap gesture (as indicated by the contact (814) over the recognition result (810) in FIG. 8A ). In response to the selection input, the text of the recognition result (810) is inserted into the text input area (808) at the insertion point indicated by the cursor (813). As illustrated in FIG. 8B , once the text of the selected recognition result (810) is entered into the text input area (808), both the handwriting input area (804) and the candidate display area (806) are cleared. The handwriting input area (804) is now ready to accept a new handwriting input, and the candidate display area (806) can now be used to display recognition results for the new handwriting input. In some embodiments, the implicit confirmation input allows the top recognition result to be entered into the text input area (808) without requiring the user to stop and select the top recognition result. A well-designed implicit confirmation input improves the speed of text entry and reduces the cognitive burden placed on the user during text composition.

일부 실시예들(도 8a 및 도 8b에 도시되지 않음)에서, 현재 필기 입력의 최상위 인식 결과는 선택적으로 텍스트 입력 영역(808)에서 잠정적으로 디스플레이된다. 텍스트 입력 영역(808)에 나타낸 잠정적인 텍스트 입력은, 예컨대, 잠정적인 텍스트 입력을 둘러싸는 잠정적인 입력 박스에 의해, 텍스트 입력 영역에서의 다른 텍스트 입력으로부터 시각적으로 구별된다. 잠정적인 입력 박스에 나타낸 텍스트는 아직 연관된 애플리케이션(예컨대, 메모 애플리케이션)으로 커밋(commit)되지 않거나 제공되지 않고, 예컨대, 현재 필기 입력의 사용자 개정에 응답하여, 최상위 인식 결과가 필기 입력 모듈에 의해 변경될 때, 자동으로 업데이트된다.In some embodiments (not shown in FIGS. 8A and 8B ), the top-ranked recognition result of the current handwriting input is optionally provisionally displayed in the text input area (808). The provisional text input shown in the text input area (808) is visually distinguished from other text inputs in the text input area, for example, by a provisional input box surrounding the provisional text input. The text shown in the provisional input box has not yet been committed or provided to an associated application (e.g., a memo application) and is automatically updated when the top-ranked recognition result changes, for example, in response to a user revision of the current handwriting input, by the handwriting input module.

도 9a 및 도 9b는 사용자 디바이스 상에서의 멀티스크립트 필기 인식을 제공하기 위한 예시적인 프로세스(900)의 플로차트들이다. 일부 실시예들에서, 도면 900에 도시된 바와 같이, 사용자 디바이스는 멀티스크립트 필기 인식 모델을 수신하는데(902), 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들(예컨대, 획-순서 및 획-방향 독립적인 특징부들)에 대해 훈련되었고, 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 필기 샘플들을 포함한다. 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 콘볼루션 뉴럴 네트워크이고(906), 멀티스크립트 훈련 코퍼스에서 표시되는 적어도 3개의 비중첩 스크립트들의 문자들을 구분하기 위해 공간-유도 특징부들 및 공간-유도 특징부들에 대한 개별 가중치들을 포함한다. 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 필기 입력에서 식별되는 하나 이상의 인식 유닛들의 개별 입력 이미지들에 기초하여 문자들을 인식하도록 구성되고(908), 인식을 위해 사용되는 개별 공간-유도 특징부들은 필기 입력에서의 개별 획 순서, 획 방향 및 획들의 연속성에 관계없다.FIGS. 9A and 9B are flowcharts of an exemplary process (900) for providing multi-script handwriting recognition on a user device. In some embodiments, as illustrated in FIG. 900, the user device receives a multi-script handwriting recognition model (902), wherein the multi-script recognition model has been trained on spatially-derived features (e.g., stroke-order and stroke-direction independent features) of a multi-script training corpus, wherein the multi-script training corpus includes handwriting samples corresponding to characters in at least three non-overlapping scripts. In some embodiments, the multi-script handwriting recognition model is a single convolutional neural network having a single input plane and a single output plane (906), and includes spatially-derived features and separate weights for the spatially-derived features to distinguish characters in the at least three non-overlapping scripts represented in the multi-script training corpus. In some embodiments, the multi-script handwriting recognition model is configured to recognize characters based on individual input images of one or more recognition units identified in the handwriting input (908), wherein individual spatially-derived features used for recognition are independent of individual stroke order, stroke direction, and continuity of strokes in the handwriting input.

일부 실시예들에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신하는데(908), 필기 입력은 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함한다. 예를 들어, 필기 입력은 손가락 또는 스타일러스와 사용자 디바이스에 결합된 터치 감응 표면 사이의 접촉의 위치 및 이동에 대한 개별 데이터를 포함한다. 필기 입력을 수신하는 것에 응답하여, 사용자 디바이스는 멀티스크립트 훈련 코퍼스(912)의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 사용자에게 실시간으로 제공한다(910).In some embodiments, the user device receives handwriting input from the user (908), the handwriting input comprising one or more handwriting strokes provided on a touch-sensitive surface coupled to the user device. For example, the handwriting input comprises discrete data regarding the location and movement of contact between a finger or stylus and the touch-sensitive surface coupled to the user device. In response to receiving the handwriting input, the user device provides to the user in real time (910) one or more handwriting recognition results based on a multi-script handwriting recognition model trained on spatially-derived features of a multi-script training corpus (912).

일부 실시예들에서, 실시간 필기 인식 결과들을 사용자에게 제공할 때, 사용자 디바이스는 사용자의 필기 입력을 하나 이상의 인식 유닛들로 분할하는데(914), 각 인식 유닛은 사용자에 의해 제공된 필기 획들 중 하나 이상을 포함한다. 일부 실시예들에서, 사용자 디바이스는, 사용자의 손가락 또는 스타일러스와 사용자 디바이스의 터치 감응 표면 사이의 접촉에 의해 만들어진 개별 획들의 형상, 위치 및 크기에 따라 사용자의 필기 입력을 분할한다. 일부 실시예들에서, 필기 입력의 분할은, 사용자의 손가락 또는 스타일러스와 사용자 디바이스의 터치 감응 표면 사이의 접촉에 의해 만들어진 개별 획들의 상대적 순서 및 상대적 위치를 추가로 고려한다. 일부 실시예들에서, 사용자의 필기 입력은 초서체로 되어 있고, 필기 입력에서의 각 연속 획은 인쇄 형태에서 인식된 문자에서의 다수의 획들에 대응할 수 있다. 일부 실시예들에서, 사용자의 필기 입력은 인쇄된 형태에서 다수의 인식된 문자들에 걸치는 연속 획을 포함할 수 있다. 일부 실시예들에서, 필기 입력의 분할은 개별 인식 유닛에 각각 대응하는 하나 이상의 입력 이미지들을 생성한다. 일부 실시예들에서, 입력 이미지들의 일부는 선택적으로 일부 중첩 픽셀들을 포함한다. 일부 실시예들에서, 입력 이미지들은 임의의 중첩 픽셀들을 포함하지 않는다. 일부 실시예들에서, 사용자 디바이스는 분할 격자를 생성하고, 분할 격자의 각 분할 체인은 현재 필기 입력을 분할하는 개별 방식을 표시한다. 일부 실시예들에서, 분할 체인에서의 각 원호는 현재 필기 입력에서의 획들의 개별 그룹에 대응한다.In some embodiments, when providing real-time handwriting recognition results to the user, the user device segments the user's handwriting input into one or more recognition units (914), each recognition unit including one or more of the handwriting strokes provided by the user. In some embodiments, the user device segments the user's handwriting input based on the shape, position, and size of the individual strokes made by contact between the user's finger or stylus and the touch-sensitive surface of the user device. In some embodiments, the segmentation of the handwriting input further takes into account the relative order and relative positions of the individual strokes made by contact between the user's finger or stylus and the touch-sensitive surface of the user device. In some embodiments, the user's handwriting input is in cursive, and each successive stroke in the handwriting input may correspond to multiple strokes in a character recognized in print form. In some embodiments, the user's handwriting input may include successive strokes spanning multiple recognized characters in print form. In some embodiments, the segmentation of the handwriting input generates one or more input images, each corresponding to a separate recognition unit. In some embodiments, some of the input images optionally include some overlapping pixels. In some embodiments, the input images do not include any overlapping pixels. In some embodiments, the user device generates a segmentation grid, and each segment chain of the segmentation grid represents a separate way to segment the current handwriting input. In some embodiments, each arc in the segmentation chain corresponds to a separate group of strokes in the current handwriting input.

도면 900에 도시된 바와 같이, 사용자 디바이스는 멀티스크립트 인식 모델에 대한 입력으로서 하나 이상의 인식 유닛들 각각의 개별 이미지를 제공한다(914). 하나 이상의 인식 유닛들 중 적어도 하나의 인식 유닛에 대해, 사용자 디바이스는 멀티스크립트 필기 인식 모델로부터, 제1 스크립트로부터의 적어도 제1 출력 문자, 및 제1 스크립트와는 상이한 제2 스크립트로부터의 적어도 제2 출력을 획득한다(916). 예를 들어, 동일한 입력 이미지는 멀티스크립트 인식 모델로 하여금 동일한 입력 이미지에 대한 인식 결과들로서 상이한 스크립트들로부터 2개 이상의 유사해 보이는 출력 문자들을 출력하도록 할 수 있다. 예를 들어, 라틴어 스크립트에서의 문자 "a" 및 그리스어 스크립트에서의 문자 "α"에 대한 필기 입력들은 종종 유사하다. 게다가, 라틴어 스크립트에서의 문자 "J" 및 한자에서의 문자 "丁"에 대한 필기 입력들은 종종 유사하다. 유사하게, 이모지 캐릭터 ""에 대한 필기 입력은 CJK 부수 "西"에 대한 필기 입력과 유사할 수도 있다. 일부 실시예들에서, 필기 입력의 시각적 외관이 인간 독자가 해독하더라도 어려울 것이기 때문에, 멀티스크립트 필기 인식 모델은 종종 사용자의 필기 입력에 대응할 것 같은 다수의 후보 인식 결과들을 생성한다. 일부 실시예들에서, 제1 스크립트는 CJK 기본 문자 블록이고, 제2 스크립트는 유니코드 표준에 의해 인코딩된 바와 같은 라틴어 스크립트이다. 일부 실시예들에서, 제1 스크립트는 CJK 기본 문자 블록이고, 제2 스크립트는 이모지 캐릭터들의 세트이다. 일부 실시예들에서, 제1 스크립트는 라틴어 스크립트이고, 제2 스크립트는 이모지 캐릭터들이다.As illustrated in drawing 900, the user device provides a separate image of each of the one or more recognition units as input to the multi-script recognition model (914). For at least one recognition unit of the one or more recognition units, the user device obtains from the multi-script handwriting recognition model at least a first output character from a first script and at least a second output from a second script different from the first script (916). For example, a same input image may cause the multi-script recognition model to output two or more similar-looking output characters from different scripts as recognition results for the same input image. For example, handwriting inputs for the letter "a" in Latin script and the letter "α" in Greek script are often similar. Additionally, handwriting inputs for the letter "J" in Latin script and the letter "丁" in Chinese script are often similar. Similarly, the emoji character " "The handwriting input for may be similar to the handwriting input for the CJK radical "西". In some embodiments, since the visual appearance of the handwriting input may be difficult for a human reader to decipher, the multi-script handwriting recognition model often generates multiple candidate recognition results that likely correspond to the user's handwriting input. In some embodiments, the first script is a CJK basic character block and the second script is a Latin script as encoded by the Unicode standard. In some embodiments, the first script is a CJK basic character block and the second script is a set of emoji characters. In some embodiments, the first script is a Latin script and the second script is emoji characters.

일부 실시예들에서, 사용자 디바이스는 사용자 디바이스의 필기 입력 인터페이스의 후보 디스플레이 영역에서 제1 출력 문자 및 제2 출력 문자 둘 모두를 디스플레이한다(918). 일부 실시예들에서, 사용자 디바이스는 제1 스크립트 및 제2 스크립트 중 어느 스크립트가 사용자 디바이스 상에 현재 설치된 소프트 키보드에서 사용되는 개별 스크립트인지에 기초하여 제1 출력 문자 및 제2 출력 문자 중 하나의 출력 문자를 선택적으로 디스플레이한다(920). 예를 들어, 필기 인식 모델이 현재 필기 입력에 대한 출력 문자들로서 한자 "入" 및 그리스어 문자 "λ"를 식별하였다고 가정하면, 사용자 디바이스는, 사용자가 사용자 디바이스 상에 중국어 소프트 키보드(예컨대, 핀인 입력 방법을 이용한 키보드)를 설치하였는지 또는 그리스어 입력 키보드를 설치하였는지 여부를 판정한다. 사용자 디바이스가 중국어 소프트 키보드만이 설치되었음을 판정하는 경우, 사용자 디바이스는 선택적으로 사용자에게 인식 결과로서 한자 "入"만을 디스플레이하고 그리스어 문자 "λ"를 디스플레이하지 않는다.In some embodiments, the user device displays both the first output character and the second output character in the candidate display area of the handwriting input interface of the user device (918). In some embodiments, the user device selectively displays one of the first output character and the second output character based on which of the first script and the second script is an individual script used in a soft keyboard currently installed on the user device (920). For example, assuming that the handwriting recognition model has identified the Chinese character "入" and the Greek character "λ" as output characters for the current handwriting input, the user device determines whether the user has installed a Chinese soft keyboard (e.g., a keyboard using the Pinyin input method) or a Greek input keyboard on the user device. If the user device determines that only the Chinese soft keyboard is installed, the user device selectively displays only the Chinese character "入" as the recognition result to the user and does not display the Greek character "λ".

일부 실시예들에서, 사용자 디바이스는 실시간 필기 인식 및 입력을 제공한다. 일부 실시예들에서, 사용자가 사용자에게 디스플레이되는 인식 결과의 명시적 또는 암시적 선택을 행하기 전에, 사용자 디바이스는 사용자에 의한 필기 입력의 계속된 추가 또는 개정에 응답하여 사용자의 필기 입력에 대한 하나 이상의 인식 결과들을 연속적으로 개정한다(922). 일부 실시예들에서, 사용자는, 하나 이상의 인식 결과들의 각 개정에 응답하여, 필기 입력 사용자 인터페이스의 후보 디스플레이 영역에서 사용자에게 개별 개정된 하나 이상의 인식 결과들을 디스플레이한다(924).In some embodiments, the user device provides real-time handwriting recognition and input. In some embodiments, prior to the user making an explicit or implicit selection of a recognition result to be displayed to the user, the user device sequentially revises (922) one or more recognition results for the user's handwriting input in response to continued additions or revisions to the handwriting input by the user. In some embodiments, the user, in response to each revision of the one or more recognition results, displays (924) the individually revised one or more recognition results to the user in a candidate display area of the handwriting input user interface.

일부 실시예들에서, 멀티스크립트 필기 인식 모델은, 한자들, 이모지 캐릭터들, 및 유니코드 표준에 따라 인코딩된 라틴어 스크립트를 포함하는 적어도 3개의 비중첩 스크립트들의 모든 문자들을 인식하도록 훈련된다(926). 일부 실시예들에서, 적어도 3개의 비중첩 스크립트들은 한자들, 아랍어 스크립트 및 라틴어 스크립트를 포함한다. 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 적어도 3개의 비중첩 스크립트들에 걸치는 적어도 30개의 문자들을 표시하는 적어도 30,000개의 출력 클래스들을 갖는다(928).In some embodiments, the multi-script handwriting recognition model is trained to recognize all characters in at least three non-overlapping scripts, including Chinese characters, emoji characters, and Latin script encoded according to the Unicode standard (926). In some embodiments, the at least three non-overlapping scripts include Chinese characters, Arabic script, and Latin script. In some embodiments, the multi-script handwriting recognition model has at least 30,000 output classes representing at least 30 characters spanning the at least three non-overlapping scripts (928).

일부 실시예들에서, 사용자 디바이스는 사용자가 하나 초과의 스크립트에서의 문자들을 포함하는 어구와 같은, 멀티스크립트 필기 입력을 입력할 수 있게 한다. 예를 들어, 사용자는, 인식 언어를 수동으로 전환하기 위해 기입 도중에 정지하지 않고, 연속적으로 기입할 수 있으며 하나 초과의 스크립트에서의 문자들을 포함하는 필기 인식 결과들을 수신할 수 있다. 예를 들어, 사용자는 사용자 디바이스의 필기 입력 영역에서 멀티스크립트 문장 "Hello means in Chinese."을 기입할 수 있는데, 한자들 ""을 기입하기 전에 입력 언어를 영어로부터 중국어로 전환해야 할 필요 없이 또는 영어 단어들 "in Chinese."을 기입할 때 입력 언어를 중국어로부터 영어로 다시 전환하지 않고 기입할 수 있다.In some embodiments, the user device allows the user to input multi-script handwriting input, such as a phrase that includes characters from more than one script. For example, the user may continuously write and receive handwriting recognition results that include characters from more than one script, without stopping mid-writing to manually switch recognition languages. For example, the user may input the multi-script sentence "Hello means You can write "in Chinese.", but Chinese characters " "You can type the English words "in Chinese." without having to switch the input language from English to Chinese before typing them, or without having to switch the input language from Chinese back to English when typing the English words "in Chinese."

본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 사용자의 입력에 대한 실시간 필기 인식을 제공하기 위해 사용된다. 일부 실시예들에서, 실시간 필기 인식은 사용자의 디바이스 상에서의 실시간 멀티스크립트 필기 입력 기능을 제공하기 위해 이용된다. 도 10a 내지 도 10c는 사용자 디바이스 상에서의 실시간 필기 인식 및 입력을 제공하기 위한 예시적인 프로세스(1000)의 플로차트들이다. 구체적으로, 실시간 필기 인식은 문자 레벨, 어구 레벨 및 문장 레벨에서 획 순서에 독립적이다.As described herein, a multi-script handwriting recognition model is used to provide real-time handwriting recognition of a user's input. In some embodiments, the real-time handwriting recognition is utilized to provide real-time multi-script handwriting input functionality on a user's device. FIGS. 10A-10C are flowcharts of an exemplary process (1000) for providing real-time handwriting recognition and input on a user's device. Specifically, the real-time handwriting recognition is stroke-order independent at the character level, phrase level, and sentence level.

일부 실시예들에서, 문자 레벨에서의 획 순서 독립적인 필기 인식은, 특정한 문자의 개별 획들이 사용자에 의해 제공된 시퀀스에 상관없이, 필기 인식 모델이 특정한 필기 문자에 대한 동일한 인식 결과를 제공하는 것을 요구한다. 예를 들어, 한자의 개별 획들은 전형적으로 특정한 순서로 기입된다. 중국어가 모국어인 사람은 종종 각 문자를 특정한 순서로 기입하도록 학교에서 훈련받긴 하지만, 많은 사용자들은 나중에 종래의 획 순서로부터 벗어난 개인화된 스타일들 및 획 시퀀스들을 채택하였다. 또한, 초서체 기입 스타일들은 대단히 개별화되고, 한자의 인쇄된 형태에서의 다수의 획들은 종종 꼬불꼬불 구부러지고 때로는 심지어 다음 문자와 연결되기도 하는 단일 스타일화된 획으로 병합된다. 획 순서 독립적인 인식 모델은 개별 획들과 연관된 시간 정보가 없는 기입 샘플들의 이미지들에 기초하여 훈련된다. 따라서, 인식은 획 순서 정보에 독립적이다. 예를 들어, 한자 "十"의 경우, 사용자가 수평 획을 먼저 기입했는지 또는 수직 획을 먼저 기입했는지에 상관없이 필기 인식 모델에 의해 동일한 인식 결과 "十"이 주어질 것이다.In some embodiments, character-level stroke-order independent handwriting recognition requires that a handwriting recognition model provides the same recognition result for a particular handwritten character, regardless of the sequence in which the individual strokes of the particular character are provided by the user. For example, individual strokes of Chinese characters are typically written in a particular order. Although native Chinese speakers are often trained in school to write each character in a particular order, many users later adopt personalized styles and stroke sequences that deviate from the traditional stroke order. In addition, cursive writing styles are highly individualized, and multiple strokes in the printed form of a Chinese character are often merged into a single stylized stroke that is meandering and sometimes even connected to the next character. A stroke-order independent recognition model is trained based on images of writing samples that do not have time information associated with the individual strokes. Thus, recognition is independent of stroke-order information. For example, for the Chinese character "十", the handwriting recognition model will provide the same recognition result "十" regardless of whether the user wrote the horizontal stroke first or the vertical stroke first.

도 10a에 도시된 바와 같이, 프로세스(1000)에서, 사용자 디바이스는 사용자로부터 복수의 필기 획들을 수신하는데(1002), 복수의 필기 획들은 필기 문자에 대응한다. 예를 들어, 문자 "十"에 대한 필기 입력은 전형적으로 실질적으로 수직의 필기 획과 교차하는 실질적으로 수평의 필기 획을 포함한다.As illustrated in FIG. 10A, in process (1000), the user device receives a plurality of handwritten strokes from the user (1002), the plurality of handwritten strokes corresponding to handwritten characters. For example, a handwritten input for the character “十” typically includes a substantially horizontal handwritten stroke intersecting with a substantially vertical handwritten stroke.

일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들에 기초하여 입력 이미지를 생성한다(1004). 일부 실시예들에서, 사용자 디바이스는 입력 이미지를 필기 인식 모델로 제공하여 필기 문자의 실시간 필기 인식을 수행하는데(1006), 여기서 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공한다. 그 후에, 사용자 디바이스는 복수의 필기 획들을 수신하는 것에 실시간으로, 복수의 필기 획들(예컨대, 수평 획 및 수직 획)이 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자(예컨대, 인쇄된 형태에서의 문자 "十")를 디스플레이한다(1008).In some embodiments, the user device generates an input image based on a plurality of handwritten strokes (1004). In some embodiments, the user device provides the input image to a handwriting recognition model to perform real-time handwriting recognition of the handwritten character (1006), wherein the handwriting recognition model provides stroke-order independent handwriting recognition. Thereafter, the user device, in real-time upon receiving the plurality of handwritten strokes, displays an identical first output character (e.g., the character "十" in printed form) regardless of the individual order in which the plurality of handwritten strokes (e.g., horizontal strokes and vertical strokes) were received from the user (1008).

일부 종래의 필기 인식 시스템은 적은 수의 문자들에서의 작은 획 순서 변동들을 허용하지만, 구체적으로 필기 인식 시스템의 훈련 시에 그러한 변동들을 포함시킴으로써 이루어진다. 이러한 종래의 필기 인식 시스템들은 한자들과 같은 많은 수의 복잡한 문자들에서의 임의의 획 순서 변동들을 수용하도록 확장 가능하지 않으며, 이는 심지어 적당한 복잡성의 문자도 이미 획 순서에서의 다수의 변동들을 일으킬 것이기 때문이다. 게다가, 특정한 문자들에 대한 허용 가능한 획 순서들의 더 많은 치환들을 단순히 포함시킴으로써도, 종래의 인식 시스템들은 여전히, 다수의 획들이 단일 획으로 조합되거나(예컨대, 극도의 초서체의 기입에서와 같이) 또는 하나의 획이 다수의 하위-획들로 분해되는(예컨대, 입력 획의 매우 거친 샘플링에 의해 캡처된 문자에서와 같이) 필기 입력들을 취급할 수 없게 될 것이다. 그리하여, 본 명세서에 설명되는 바와 같이 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 시스템은 종래의 인식 시스템들보다 이점을 제공한다.Some conventional handwriting recognition systems tolerate small stroke order variations in a small number of characters, but do so by specifically including such variations during the training of the handwriting recognition system. Such conventional handwriting recognition systems are not scalable to accommodate arbitrary stroke order variations in a large number of complex characters, such as Chinese characters, since even moderately complex characters will already have a large number of variations in stroke order. Furthermore, simply by including more permutations of allowable stroke order for specific characters, conventional recognition systems would still be unable to handle handwriting inputs in which multiple strokes are combined into a single stroke (e.g., as in extremely cursive writing) or in which a single stroke is broken into multiple sub-strokes (e.g., as in characters captured by very coarse sampling of input strokes). Thus, a multi-script handwriting system trained on spatially-derived features, as described herein, offers advantages over conventional recognition systems.

일부 실시예들에서, 각 필기 문자 내의 개별 획들과 연관된 시간 정보에 관계없이 획 순서 독립적인 필기 인식이 수행된다. 일부 실시예들에서, 개별 획들이 플랫 입력 이미지로 병합되기 전의 개별 획들의 공간 분포를 고려하는 획-분포 정보와 협력하여 획 순서 독립적인 필기 인식이 수행된다. 상기 설명된 획 순서 독립적인 필기 인식을 증강시키기 위해 시간-유도 획-분포 정보가 어떻게 사용되는지에 대한 더욱 상세한 내용들은 나중에 본 명세서에서(예컨대, 도 25a 내지 도 27에 관하여) 제공된다. 도 25a 내지 도 27에 관하여 설명되는 기법은 필기 인식 시스템의 획 순서 독립성을 손상시키지 않는다.In some embodiments, stroke-order independent handwriting recognition is performed regardless of temporal information associated with individual strokes within each handwritten character. In some embodiments, stroke-order independent handwriting recognition is performed in conjunction with stroke-distribution information that considers the spatial distribution of individual strokes before the individual strokes are merged into a flat input image. Further details on how temporal-derived stroke-distribution information is used to augment the stroke-order independent handwriting recognition described above are provided later herein (e.g., with respect to FIGS. 25A-27 ). The techniques described with respect to FIGS. 25A-27 do not compromise the stroke-order independence of the handwriting recognition system.

일부 실시예들에서, 필기 인식 모델은 획 방향 독립적인 필기 인식을 제공한다(1010). 일부 실시예들에서, 획 방향 독립적인 인식은, 사용자 디바이스가 복수의 필기 입력들을 수신하는 것에 응답하여, 복수의 필기 획들 각각이 사용자에 의해 제공된 개별 획 방향에 상관없이 동일한 제1 출력 문자를 디스플레이하는 것을 요구한다. 예를 들어, 사용자가 사용자 디바이스의 필기 입력 영역에서 한자 "十"을 기입한 경우, 필기 인식 모델은, 사용자가 수평 획을 좌측에서부터 우측으로 그렸는지 또는 우측에서부터 좌측으로 그렸는지에 상관없이, 동일한 인식 결과를 출력할 것이다. 유사하게, 필기 인식 모델은, 사용자가 수직 획을 하방 방향으로 그렸는지 또는 상방 방향으로 그렸는지에 상관없이, 동일한 인식 결과를 출력할 것이다. 다른 예에서, 많은 한자들은 구조적으로 2개 이상의 부수들로 이루어진다. 몇몇 한자들은 각각 왼쪽 부수 및 오른쪽 부수를 포함하고, 사람들은 관습적으로 왼쪽 부수를 먼저 기입하고 그 다음에 오른쪽 부수를 기입한다. 일부 실시예들에서, 사용자가 필기 문자를 완성할 때 결과적인 필기 입력이 오른쪽 부수의 왼쪽에 왼쪽 부수를 나타내는 한, 필기 인식 모델은, 사용자가 오른쪽 부수를 먼저 기입했는지 왼쪽 부수를 먼저 기입했는지에 상관없이 동일한 인식 결과를 제공할 것이다. 유사하게, 몇몇 한자들은 각각 위 부수 및 아래 부수를 포함하고, 사람들은 관습적으로 위 부수를 먼저 기입하고 그 다음에 아래 부수를 기입한다. 일부 실시예들에서, 결과적인 필기 입력이 아래 부수의 위에 위 부수를 나타내는 한, 필기 인식 모델은, 사용자가 위 부수를 먼저 기입했는지 아래 부수를 먼저 기입했는지에 상관없이 동일한 인식 결과를 제공할 것이다. 다시 말하면, 필기 인식 모델은 필기 문자의 아이덴티티를 결정하기 위해 사용자가 필기 문자의 개별 획들을 제공하는 방향들에 의존하지 않는다.In some embodiments, the handwriting recognition model provides stroke direction independent handwriting recognition (1010). In some embodiments, stroke direction independent recognition requires that, in response to the user device receiving multiple handwriting inputs, each of the multiple handwriting strokes displays the same first output character regardless of the individual stroke direction provided by the user. For example, if a user writes the Chinese character "十" in a handwriting input area of the user device, the handwriting recognition model will output the same recognition result regardless of whether the user draws the horizontal stroke from left to right or from right to left. Similarly, the handwriting recognition model will output the same recognition result regardless of whether the user draws the vertical stroke in a downward direction or an upward direction. In another example, many Chinese characters are structurally composed of two or more radicals. Some Chinese characters each include a left radical and a right radical, and people traditionally write the left radical first and then the right radical. In some embodiments, as long as the resulting handwriting input indicates the left radical to the left of the right radical when the user completes the handwritten character, the handwriting recognition model will provide the same recognition result regardless of whether the user wrote the right radical first or the left radical first. Similarly, some Chinese characters each include an upper radical and a lower radical, and people customarily write the upper radical first and then the lower radical. In some embodiments, as long as the resulting handwriting input indicates the upper radical above the lower radical, the handwriting recognition model will provide the same recognition result regardless of whether the user wrote the upper radical first or the lower radical first. In other words, the handwriting recognition model does not rely on the directions in which the user provides individual strokes of the handwritten character to determine the identity of the handwritten character.

일부 실시예들에서, 필기 인식 모델은 인식 유닛이 사용자에 의해 제공된 하위-획들의 수에 상관없이, 인식 유닛의 이미지에 기초하여 필기 인식을 제공한다. 다시 말하면, 일부 실시예들에서, 필기 인식 모델은 획수 독립적인 필기 인식을 제공한다(1014). 일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들을 수신하는 것에 응답하여, 입력 이미지에서의 연속 획을 형성하기 위해 얼마나 많은 필기 획들이 사용되는지에 상관없이 동일한 제1 출력 문자를 디스플레이한다. 예를 들어, 사용자가 필기 입력 영역에서 한자 "+"를 기입한 경우, 필기 인식 모델은, 사용자가 문자 "十"의 형상을 구성하기 위해 4개의 획들(예컨대, 열십자 모양의 문자를 구성하기 위한 2개의 짧은 수평 획들과 2개의 짧은 수직 획들)을 제공하였는지, 또는 2개의 획들(예컨대, L 모양의 획과 7 모양의 획, 또는 수평 획과 수직 획)을 제공하였는지, 또는 임의의 다른 수의 획들(예컨대, 수백 개의 극히 짧은 획들 또는 점들)을 제공하였는지에 상관없이, 동일한 인식 결과를 출력한다.In some embodiments, the handwriting recognition model provides handwriting recognition based on an image of the recognition unit, regardless of the number of sub-strokes provided by the user. In other words, in some embodiments, the handwriting recognition model provides stroke-independent handwriting recognition (1014). In some embodiments, the user device, in response to receiving a plurality of handwritten strokes, displays the same first output character regardless of how many handwritten strokes are used to form a continuous stroke in the input image. For example, if a user inputs a Chinese character "+" in a handwriting input area, the handwriting recognition model outputs the same recognition result regardless of whether the user provided four strokes to form the shape of the character "十" (e.g., two short horizontal strokes and two short vertical strokes to form a cross-shaped character), or two strokes (e.g., an L-shaped stroke and a 7-shaped stroke, or a horizontal stroke and a vertical stroke), or any other number of strokes (e.g., hundreds of extremely short strokes or dots).

일부 실시예들에서, 필기 인식 모델은 각 단일 문자가 기입된 순서, 방향 및 획수에 상관없이 동일한 문자를 인식할 수 있을 뿐만 아니라, 다수의 문자들의 획들이 사용자에 의해 제공된 시간 순서에 상관없이 다수의 문자들을 인식할 수도 있다.In some embodiments, the handwriting recognition model can recognize the same character regardless of the order, direction, and number of strokes in which each single character is written, as well as recognize multiple characters regardless of the chronological order in which the strokes of the multiple characters are provided by the user.

일부 실시예들에서, 사용자 디바이스는 제1 복수의 필기 획들을 수신하였을 뿐만 아니라 사용자로부터 제2 복수의 필기 획들도 수신하였는데(1016), 여기서 제2 복수의 필기 획들은 제2 필기 문자에 대응한다. 일부 실시예들에서, 사용자 디바이스는 제2 복수의 필기 획들에 기초하여 제2 입력 이미지를 생성한다(1018). 일부 실시예들에서, 사용자 디바이스는 제2 입력 이미지를 필기 인식 모델로 제공하여 제2 필기 문자의 실시간 인식을 수행한다(1020). 일부 실시예들에서, 사용자 디바이스는 제2 복수의 필기 획들을 수신하는 것에 실시간으로, 제2 복수의 필기 획들에 대응하는 제2 출력 문자를 디스플레이한다(1022). 일부 실시예들에서, 제1 출력 문자 및 제2 출력 문자는 제1 복수의 필기 획들 및 제2 복수의 필기 획들이 사용자에 의해 제공된 개별 순서에 관계없이 공간 시퀀스에서 동시에 디스플레이된다. 예를 들어, 사용자가 사용자 디바이스의 필기 입력 영역에서 2개의 한자들(예컨대, "十" 및 "八")을 기입한 경우, 필기 입력 영역에서 현재 누적된 필기 입력이 문자 "八"에 대한 획들의 왼쪽에 문자 "十"에 대한 획들을 나타내는 한, 사용자 디바이스는, 사용자가 문자 "十"의 획들을 먼저 기입했는지 또는 문자 "八"의 획들을 먼저 기입했는지에 상관없이, 인식 결과 "十八"을 디스플레이할 것이다. 사실상, 사용자가 문자 "十"에 대한 획들의 일부(예컨대, 수직 획) 전에 문자 "八"에 대한 획들의 일부(예컨대, 왼쪽으로 기울어진 획)를 기입하였더라도, 필기 입력 영역에서 필기 입력의 결과적인 이미지가 문자 "八"에 대한 획들 모두의 왼쪽에 문자 "十"에 대한 모든 획들을 나타내는 한, 사용자 디바이스는 2개의 필기 문자들의 공간 시퀀스에서 인식 결과"十八"을 나타낼 것이다.In some embodiments, the user device receives a first plurality of handwritten strokes as well as a second plurality of handwritten strokes from the user (1016), wherein the second plurality of handwritten strokes correspond to a second handwritten character. In some embodiments, the user device generates a second input image based on the second plurality of handwritten strokes (1018). In some embodiments, the user device provides the second input image to a handwriting recognition model to perform real-time recognition of the second handwritten character (1020). In some embodiments, the user device displays, in real-time upon receiving the second plurality of handwritten strokes, a second output character corresponding to the second plurality of handwritten strokes (1022). In some embodiments, the first output character and the second output character are displayed simultaneously in a spatial sequence, regardless of the individual order in which the first plurality of handwritten strokes and the second plurality of handwritten strokes were provided by the user. For example, if a user has written two Chinese characters (e.g., "十" and "八") in a handwriting input area of a user device, as long as the current accumulated handwriting input in the handwriting input area represents strokes for the character "十" to the left of the strokes for the character "八", the user device will display the recognition result "十八" regardless of whether the user wrote the strokes of the character "十" first or the strokes of the character "八" first. In fact, even if the user wrote some of the strokes for the character "八" (e.g., the left-slanted stroke) before some of the strokes for the character "十" (e.g., the vertical stroke), as long as the resulting image of the handwriting input in the handwriting input area represents all of the strokes for the character "十" to the left of all of the strokes for the character "八", the user device will display the recognition result "十八" in the spatial sequence of the two handwritten characters.

다시 말하면, 도 10b에 도시된 바와 같이, 일부 실시예들에서, 제1 출력 문자 및 제2 출력 문자의 공간 시퀀스는 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향(예컨대, 좌측에서부터 우측으로)을 따른 제1 복수의 필기 획들 및 제2 복수의 획들의 공간 분포에 대응한다(1024). 일부 실시예들에서, 제2 복수의 필기 획들은 시간적으로 제1 복수의 필기 획들 후에 수신되고, 제2 출력 문자는 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향(예컨대, 좌측에서부터 우측으로)을 따른 공간 시퀀스에서 제1 출력 문자보다 앞선다(1026).In other words, as illustrated in FIG. 10B , in some embodiments, the spatial sequence of the first output character and the second output character corresponds to a spatial distribution of the first plurality of handwritten strokes and the second plurality of strokes along a default writing direction of the handwriting input interface of the user device (e.g., from left to right) (1024). In some embodiments, the second plurality of handwritten strokes are received temporally after the first plurality of handwritten strokes, and the second output character precedes the first output character in the spatial sequence along the default writing direction of the handwriting input interface of the user device (e.g., from left to right) (1026).

일부 실시예들에서, 필기 인식 모델은 문장 대 문장 레벨에서 획 순서 독립적인 인식을 제공한다. 예를 들어, 필기 문자 "十"이 제1 필기 문장 내에 있고 필기 문자 "八"이 제2 필기 문장 내에 있으며, 2개의 필기 문자들이 필기 입력 영역에서 하나 이상의 다른 필기 문자들 및/또는 단어들에 의해 분리되어 있더라도, 필기 인식 모델은 여전히 공간 시퀀스"十…八"로 2개의 문자들을 나타내는 인식 결과를 제공할 것이다. 2개의 인식된 문자들의 인식 결과 및 공간 시퀀스는 2개의 문자들의 획들이 사용자에 의해 제공된 시간 순서에 상관없이 동일하게 유지되는데, 다만, 사용자가 필기 입력을 완료할 때 2개의 문자들에 대한 인식 유닛들은 공간적으로 시퀀스 "十…八"로 배열된다. 일부 실시예들에서, 제1 필기 문자(예컨대, "十")는 제1 필기 문장 (예컨대, " 十 is a number.")의 부분으로서 사용자에 의해 제공되며, 제2 필기 문자(예컨대, "八")는 제2 필기 문장(예컨대, "八 is another number.")의 부분으로서 사용자에 의해 제공되고, 제1 필기 문장 및 제2 필기 문장은 사용자 디바이스의 필기 입력 영역에서 동시에 디스플레이된다. 일부 실시예들에서, 인식 결과 (예컨대, "十 is a number. 八. is another number.")가 정확한 인식 결과라고 사용자가 확인할 때, 2개의 문장들이 사용자 디바이스의 텍스트 입력 영역으로 입력될 것이고, 필기 입력 영역은 사용자가 또 다른 필기 입력을 입력하도록 클리어될 것이다.In some embodiments, the handwriting recognition model provides stroke-order independent recognition at a sentence-to-sentence level. For example, even if a handwritten character "十" is in a first handwritten sentence and a handwritten character "八" is in a second handwritten sentence, and the two handwritten characters are separated by one or more other handwritten characters and/or words in the handwriting input area, the handwriting recognition model will still provide a recognition result representing the two characters as a spatial sequence "十…八". The recognition result and the spatial sequence of the two recognized characters remain the same regardless of the temporal order in which the strokes of the two characters are provided by the user, except that when the user completes the handwriting input, the recognition units for the two characters are spatially arranged as the sequence "十…八". In some embodiments, a first handwritten character (e.g., "十") is provided by the user as part of a first handwritten sentence (e.g., "十 is a number."), a second handwritten character (e.g., "八") is provided by the user as part of a second handwritten sentence (e.g., "八 is another number."), and the first handwritten sentence and the second handwritten sentence are displayed simultaneously in a handwriting input area of the user device. In some embodiments, when the user confirms that the recognition result (e.g., "十 is a number. 八. is another number.") is an accurate recognition result, the two sentences will be input into a text input area of the user device, and the handwriting input area will be cleared to allow the user to input another handwriting input.

일부 실시예들에서, 필기 인식 모델이 문자 레벨에서뿐만 아니라 어구 레벨 및 문장 레벨에서도 획 순서 독립적이기 때문에, 사용자는 후속 문자들이 기입된 후에 이전에 미완성된 문자에 대한 수정을 행할 수 있다. 예를 들어, 사용자가 필기 입력 영역에서 하나 이상의 후속 문자들을 기입하려고 이동하기 전에 문자에 대한 특정한 획을 기입하는 것을 잊어 버린 경우, 사용자는 정확한 인식 결과를 수신하기 위해 특정한 문자에서의 올바른 위치에 누락된 획을 나중에 여전히 쓸 수 있다.In some embodiments, since the handwriting recognition model is stroke-order independent not only at the character level but also at the phrase level and sentence level, the user can make corrections to a previously incomplete character after subsequent characters have been entered. For example, if the user forgets to enter a particular stroke for a character before moving to enter one or more subsequent characters in the handwriting input area, the user can still later enter the missing stroke at the correct location for the particular character to receive an accurate recognition result.

종래의 획 순서 독립적인 인식 시스템들(예컨대, HMM-기반 인식 시스템)에서, 일단 문자가 기입되면, 그것은 커밋되고, 사용자는 더 이상 그것을 변경할 수 없다. 사용자가 임의의 변경을 원하는 경우, 사용자는 문자 및 모든 후속 문자들을 삭제하여 처음부터 다시 시작해야 한다. 몇몇 종래의 인식 시스템들에서, 사용자는 짧은 사전결정된 시간 윈도우 내에서 필기 문자를 완성하도록 요구되고, 사전결정된 시간 윈도우의 외측에서 입력된 임의의 획들은 시간 윈도우 동안 제공된 다른 획들과 동일한 인식 유닛에 포함되지 않을 것이다. 그러한 종래의 시스템들은 사용하기 어렵고 사용자에게 큰 좌절을 야기한다. 획 순서 독립적인 시스템은 그러한 단점들을 겪지 않으며, 사용자는 사용자가 적합하다고 생각되는 임의의 순서 및 임의의 시간 프레임으로 문자를 완성할 수 있다. 사용자는 또한, 후속하여 필기 입력 인터페이스에서 하나 이상의 문자들을 기입한 후에 먼저 기입된 문자를 수정(예컨대, 하나 이상의 획들을 추가)할 수 있다. 일부 실시예들에서, 사용자는 또한 (예컨대, 도 21a 내지 도 22b에 관하여 나중에 기술되는 방법들을 이용하여) 먼저 기입된 문자를 개별적으로 삭제하고, 필기 입력 인터페이스에서 동일한 위치에 그것을 재기입할 수 있다.In conventional stroke-order-independent recognition systems (e.g., HMM-based recognition systems), once a character is entered, it is committed and the user can no longer change it. If the user wants to make any changes, the user must delete the character and all subsequent characters and start over. In some conventional recognition systems, the user is required to complete the handwritten character within a short, predetermined time window, and any strokes entered outside the predetermined time window will not be included in the same recognition unit as other strokes entered during the time window. Such conventional systems are difficult to use and cause great frustration to the user. A stroke-order-independent system does not suffer from such drawbacks, and the user can complete the character in any order and in any time frame that the user deems appropriate. The user can also modify the previously entered character (e.g., add one or more strokes) after entering one or more characters in the handwriting input interface subsequently. In some embodiments, the user may also delete a previously written character individually (e.g., using the methods described later with respect to FIGS. 21A-22B ) and re-write it in the same location in the handwriting input interface.

도 10b 및 도 10c에 도시된 바와 같이, 제2 복수의 필기 획들은 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향을 따라 제1 복수의 필기 획들을 공간적으로 뒤따르고, 제2 출력 문자는 필기 입력 인터페이스의 후보 디스플레이 영역에서 디폴트 기입 방향을 따른 공간 시퀀스에서 제1 출력 문자를 뒤따른다(1028). 사용자 디바이스는 제1 필기 문자(즉, 제1 복수의 필기 획들에 의해 형성된 필기 문자)를 개정하기 위해 사용자로부터 제3 필기 획을 수신하는데(1030), 제3 필기 획은 시간적으로 제1 복수의 필기 획들 및 제2 복수의 필기 획들 후에 수신된다. 예를 들어, 사용자는 필기 입력 영역에서 좌측에서부터 우측으로의 공간 시퀀스로 2개의 문자들(예컨대, "")을 기입하였다. 제1 복수의 획들은 필기 문자 "八"을 형성한다. 사용자가 사실은 문자 ""를 기입하려고 하였으나 하나의 획을 누락하였음에 주의한다. 제2 복수의 획들은 필기 문자 ""를 형성한다. 사용자가 "" 대신에 ""를 기입하기를 원함을 나중에 알아차린 경우, 사용자는 간단히 문자 "八"에 대한 획들 아래에 수직 획을 하나 더 쓸 수 있고, 사용자 디바이스는 수직 획을 제1 인식 유닛(예컨대, "八"에 대한 인식 유닛)에 배정할 것이다. 사용자 디바이스는 제1 인식 유닛에 대한 새로운 출력 문자(예컨대, "八")를 출력할 것이고, 여기서 새로운 출력 문자는 인식 결과에서 이전의 출력 문자 (예컨대, "八")를 대신할 것이다. 도 10c에 도시된 바와 같이, 사용자 디바이스는, 제3 필기 획을 수신하는 것에 응답하여, 제1 복수의 필기 획들에 대한 제3 필기 획의 상대적인 근접성에 기초하여 제1 복수의 필기 획들과 동일한 인식 유닛에 제3 필기 획을 배정한다(1032). 일부 실시예들에서, 사용자 디바이스는 제1 복수의 필기 획들 및 제3 필기 획에 기초하여 개정된 입력 이미지를 생성한다(1034). 사용자 디바이스는 개정된 입력 이미지를 필기 인식 모델로 제공하여 개정된 필기 문자의 실시간 인식을 수행한다(1036). 일부 실시예들에서, 사용자 디바이스는 제3 필기 입력을 수신하는 것에 응답하여, 개정된 입력 이미지에 대응하는 제3 출력 문자를 디스플레이하는데(1040), 여기서 제3 출력 문자는 제1 출력 문자를 대신하고 디폴트 기입 방향을 따른 공간 시퀀스에서 제2 출력 문자와 동시에 디스플레이된다.As illustrated in FIGS. 10b and 10c , the second plurality of handwritten strokes spatially follow the first plurality of handwritten strokes along a default writing direction of a handwriting input interface of the user device, and the second output character follows the first output character in a spatial sequence along the default writing direction in a candidate display area of the handwriting input interface (1028). The user device receives a third handwritten stroke from the user to revise the first handwritten character (i.e., the handwritten character formed by the first plurality of handwritten strokes) (1030), wherein the third handwritten stroke is received temporally after the first plurality of handwritten strokes and the second plurality of handwritten strokes. For example, the user may write two characters (e.g., " ") was entered. The first multiple strokes form the handwritten character "八". The user actually entered the character " " I tried to write " but I missed one stroke. The second multiple strokes are the handwritten characters " " is formed. The user " " Instead " ", the user can simply write one more vertical stroke beneath the strokes for the character "八", and the user device will assign the vertical stroke to the first recognition unit (e.g., the recognition unit for "八"). The user device will output a new output character (e.g., "八") for the first recognition unit, where the new output character will replace the previous output character (e.g., "八") in the recognition result. As illustrated in FIG. 10C , in response to receiving the third handwritten stroke, the user device assigns the third handwritten stroke to the same recognition unit as the first plurality of handwritten strokes based on the relative proximity of the third handwritten stroke to the first plurality of handwritten strokes (1032). In some embodiments, the user device generates a revised input image based on the first plurality of handwritten strokes and the third handwritten stroke (1034). The user device provides the revised input image to the handwriting recognition model to generate a real-time representation of the revised handwritten character. Perform recognition (1036). In some embodiments, in response to receiving the third handwriting input, the user device displays (1040) a third output character corresponding to the revised input image, wherein the third output character replaces the first output character and is displayed concurrently with the second output character in a spatial sequence along the default writing direction.

일부 실시예들에서, 필기 인식 모듈은 좌측에서부터 우측으로의 디폴트 기입 방향으로 기입된 필기 입력을 인식한다. 예를 들어, 사용자는 문자들을 좌측에서부터 우측으로 그리고 하나 이상의 행들로 기입할 수 있다. 필기 입력에 응답하여, 필기 입력 모듈은 문자들을 좌측에서부터 우측으로의 공간 시퀀스로 그리고 필요에 따라 하나 이상의 행들로 포함하는 인식 결과들을 제시한다. 사용자가 인식 결과를 선택하는 경우, 선택된 인식 결과는 사용자 디바이스의 텍스트 입력 영역으로 입력된다. 일부 실시예들에서, 디폴트 기입 방향은 위에서부터 아래로 이다. 일부 실시예들에서, 디폴트 기입 방향은 우측에서부터 좌측으로 이다. 일부 실시예들에서, 사용자는 선택적으로, 인식 결과가 선택되고 필기 입력 영역이 클리어된 후에 디폴트 기입 방향을 대안적인 기입 방향으로 변경시킨다.In some embodiments, the handwriting recognition module recognizes handwriting input written in a default writing direction from left to right. For example, a user may write characters from left to right and in one or more rows. In response to the handwriting input, the handwriting input module presents recognition results including the characters in a spatial sequence from left to right and, optionally, in one or more rows. When the user selects a recognition result, the selected recognition result is input into a text input area of the user device. In some embodiments, the default writing direction is from top to bottom. In some embodiments, the default writing direction is from right to left. In some embodiments, the user optionally changes the default writing direction to an alternative writing direction after a recognition result is selected and the handwriting input area is cleared.

일부 실시예들에서, 필기 입력 모듈은 사용자가 필기 입력 영역에서 다중-문자 필기 입력을 입력할 수 있게 하고, 필기 입력으로부터 한 번에 모든 인식 유닛보다는 한 번에 하나의 인식 유닛에서의 획들의 삭제를 허용한다. 일부 실시예들에서, 필기 입력 모듈은 필기 입력으로부터 한 번에 하나의 획 삭제를 허용한다. 일부 실시예들에서, 인식 유닛의 삭제는, 현재 필기 입력을 생성하기 위해 인식 유닛들 또는 획들이 입력된 순서에 상관없이, 디폴트 기입 방향에 반대되는 방향으로 하나씩 진행한다. 일부 실시예들에서, 획들의 삭제는, 획이 각 인식 유닛 내에 입력된 역순서로 하나씩 진행하고, 하나의 인식 유닛에서의 획들이 모두 삭제되었을 때, 획들의 삭제는 디폴트 기입 방향에 반대되는 방향으로 다음 인식 유닛으로 진행한다.In some embodiments, the handwriting input module allows a user to enter multi-character handwriting input in a handwriting input area, and allows deletion of strokes from the handwriting input one recognition unit at a time, rather than all recognition units at a time. In some embodiments, the handwriting input module allows deletion of strokes from the handwriting input one at a time. In some embodiments, the deletion of recognition units proceeds one by one in a direction opposite to the default writing direction, regardless of the order in which the recognition units or strokes were entered to generate the current handwriting input. In some embodiments, the deletion of strokes proceeds one by one in the reverse order in which the strokes were entered within each recognition unit, and when all strokes in a recognition unit have been deleted, the deletion of strokes proceeds to the next recognition unit in a direction opposite to the default writing direction.

일부 실시예들에서, 제3 출력 문자 및 제2 출력 문자가 필기 입력 인터페이스의 후보 디스플레이 영역에서 후보 인식 결과로서 동시에 디스플레이되는 동안, 사용자 디바이스는 사용자로부터 삭제 입력을 수신한다. 삭제 입력에 응답하여, 사용자 디바이스는, 후보 디스플레이 영역에 디스플레이된 인식 결과에서 제3 출력 문자를 유지하면서, 인식 결과로부터 제2 출력 문자를 삭제한다.In some embodiments, while the third output character and the second output character are simultaneously displayed as candidate recognition results in the candidate display area of the handwriting input interface, the user device receives a delete input from the user. In response to the delete input, the user device deletes the second output character from the recognition result while maintaining the third output character in the recognition result displayed in the candidate display area.

일부 실시예들에서, 도 10c에 도시된 바와 같이, 사용자 디바이스는 상기 필기 획 각각이 사용자에 의해 제공됨에 따라 제1 복수의 필기 획들, 제2 복수의 필기 획들, 및 제3 필기 획을 실시간으로 렌더링한다(1042). 일부 실시예들에서, 사용자 디바이스는, 사용자로부터 삭제 입력을 수신하는 것에 응답하여, 필기 입력 영역에서 제1 복수의 필기 획들 및 제3 필기 획(예컨대, 개정된 제1 필기 문자에 함께 대응함)의 개별 렌더링들을 유지하면서, 필기 입력 영역으로부터 제2 복수의 필기 입력들(예컨대, 제2 필기 문자에 대응함)의 개별 렌더링을 삭제한다(1044). 예를 들어, 사용자가 문자 시퀀스 ""에서 누락된 수직 획을 제공한 후에, 사용자가 삭제 입력을 입력하는 경우, 문자 ""에 대한 인식 유닛에서의 획들은 필기 입력 영역으로부터 제거되고, 문자 ""는 사용자 디바이스의 후보 디스플레이 영역에서 인식 결과 ""로부터 제거된다. 삭제 후에, 문자 ""에 대한 획들은 필기 입력 영역에 남아 있고, 한편 인식 결과는 문자 ""만을 나타낸다.In some embodiments, as illustrated in FIG. 10C , the user device renders in real time (1042) the first plurality of handwritten strokes, the second plurality of handwritten strokes, and the third handwritten stroke as each of the handwritten strokes is provided by the user. In some embodiments, the user device, in response to receiving a delete input from the user, deletes (1044) the individual rendering of the second plurality of handwritten inputs (e.g., corresponding to the second handwritten character) from the handwriting input area while retaining the individual renderings of the first plurality of handwritten strokes and the third handwritten stroke (e.g., corresponding to the revised first handwritten character) in the handwriting input area. For example, the user may input the character sequence " "After providing a missing vertical stroke in , if the user types a delete input, the character " "Strokes in the recognition unit for are removed from the handwriting input area, and the character " "Recognition results in the candidate display area of the user device" " is removed from. After deletion, the character " "The strokes remain in the handwriting input area, while the recognition result is the character " " represents only.

일부 실시예들에서, 필기 문자는 다획 한자이다. 일부 실시예들에서, 제1 복수의 필기 입력은 초서체로 제공된다. 일부 실시예들에서, 제1 복수의 필기 입력은 초서체로 제공되고, 필기 문자는 다획 한자이다. 일부 실시예들에서, 필기 문자들은 초서체로 아랍어로 기입된다. 일부 실시예들에서, 필기 문자들은 초서체로 다른 스크립트들로 기입된다.In some embodiments, the handwritten characters are multi-stroke Chinese characters. In some embodiments, the first plurality of handwritten inputs are provided in cursive script. In some embodiments, the first plurality of handwritten inputs are provided in cursive script and the handwritten characters are multi-stroke Chinese characters. In some embodiments, the handwritten characters are written in Arabic in cursive script. In some embodiments, the handwritten characters are written in other scripts in cursive script.

일부 실시예들에서, 사용자 디바이스는 필기 문자 입력을 위한 허용 가능한 치수들의 세트에 대해 개별 사전결정된 제약들을 확립하고, 개별 사전결정된 제약들에 기초하여 현재 누적된 복수의 필기 획들을 복수의 인식 유닛들로 분할하는데, 여기서 인식 유닛들 각각으로부터 필기 인식 모델로 제공되는 개별 입력 이미지가 생성되고, 대응하는 출력 문자로서 인식된다.In some embodiments, the user device establishes individual predetermined constraints for a set of allowable dimensions for handwritten character input, and divides the currently accumulated plurality of handwritten strokes into a plurality of recognition units based on the individual predetermined constraints, wherein an individual input image is generated from each of the recognition units, which is provided to a handwriting recognition model and recognized as a corresponding output character.

일부 실시예들에서, 사용자 디바이스는 현재 누적된 복수의 필기 획들을 분할한 후에 사용자로부터 추가적인 필기 획을 수신한다. 사용자 디바이스는 복수의 인식 유닛들에 대한 추가적인 필기 획의 공간 위치에 기초하여 복수의 인식 유닛들의 개별 인식 유닛에 추가적인 필기 획을 배정한다.In some embodiments, the user device receives an additional handwritten stroke from the user after segmenting the currently accumulated plurality of handwritten strokes. The user device assigns the additional handwritten stroke to an individual recognition unit of the plurality of recognition units based on a spatial location of the additional handwritten stroke with respect to the plurality of recognition units.

이제, 사용자 디바이스 상에 필기 인식 및 입력을 제공하기 위한 예시적인 사용자 인터페이스들에 주목한다. 일부 실시예들에서, 예시적인 사용자 인터페이스들은, 사용자의 필기 입력의 실시간, 획 순서 독립적인 필기 인식을 제공하는 멀티스크립트 필기 인식 모델에 기초하여 사용자 디바이스 상에서 제공된다. 일부 실시예들에서, 예시적인 사용자 인터페이스들은, 필기 입력 영역(804), 후보 디스플레이 영역(804), 및 텍스트 입력 영역(808)을 포함하는 예시적인 필기 입력 인터페이스(802)(예컨대, 도 8a 및 도 8b에 도시됨)의 사용자 인터페이스들이다. 일부 실시예들에서, 예시적인 필기 입력 인터페이스(802)는 또한 복수의 제어 요소들(1102), 예를 들어 삭제 버튼, 스페이스 바, 엔터 버튼, 키보드 전환 버튼 등을 포함한다. 하기에 설명되는 추가적인 기능들을 가능하게 하기 위해 하나 이상의 다른 영역들 및/또는 요소들이 필기 입력 인터페이스(802)에서 제공될 수 있다.Now, we turn to exemplary user interfaces for providing handwriting recognition and input on a user device. In some embodiments, the exemplary user interfaces are provided on the user device based on a multi-script handwriting recognition model that provides real-time, stroke-order independent handwriting recognition of a user's handwriting input. In some embodiments, the exemplary user interfaces are user interfaces of an exemplary handwriting input interface (802) (e.g., as illustrated in FIGS. 8A and 8B ) that includes a handwriting input area (804), a candidate display area (804), and a text input area (808). In some embodiments, the exemplary handwriting input interface (802) also includes a plurality of control elements (1102), such as a delete button, a space bar, an enter button, a keyboard toggle button, and the like. One or more other areas and/or elements may be provided in the handwriting input interface (802) to enable additional functionality as described below.

본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 많은 상이한 스크립트들 및 언어들에서의 수만의 문자들의 매우 큰 레퍼토리를 가질 수 있다. 결과적으로, 필기 입력에 대해, 인식 모델은 사용자에 의해 의도된 문자라는 상당히 양호한 가능성을 모두가 갖는 많은 수의 출력 문자들을 식별할 가능성이 매우 크다. 제한된 디스플레이 영역을 갖는 사용자 디바이스 상에서, 사용자 요청 시에 이용 가능한 다른 결과들을 유지하면서, 초기에 인식 결과들의 서브세트만을 제공하는 것이 유리하다.As described herein, a multi-script handwriting recognition model can have a very large repertoire of tens of thousands of characters in many different scripts and languages. As a result, for handwriting input, the recognition model is very likely to identify a large number of output characters that all have a fairly good chance of being the characters intended by the user. On a user device with a limited display area, it is advantageous to initially present only a subset of the recognition results while keeping other results available upon user request.

도 11a 내지 도 11g는, 나머지 인식 결과들을 디스플레이하기 위해 후보 디스플레이 영역의 확장 시야를 호출하기 위한 어포던스와 함께, 후보 디스플레이 영역의 정상 시야에서 인식 결과들의 서브세트를 디스플레이하기 위한 예시적인 사용자 인터페이스들을 도시한다. 또한, 후보 디스플레이 영역의 확장 시야 내에서, 인식 결과들은 상이한 카테고리들로 나눠지고, 확장 시야에서 상이한 탭처리된(tabbed) 페이지들 상에 디스플레이된다.Figures 11a-11g illustrate exemplary user interfaces for displaying a subset of recognition results in the normal field of view of a candidate display region, along with an affordance for invoking an extended field of view of the candidate display region to display the remaining recognition results. Additionally, within the extended field of view of the candidate display region, the recognition results are divided into different categories and displayed on different tabbed pages in the extended field of view.

도 11a는 예시적인 필기 입력 인터페이스(802)를 도시한다. 필기 입력 인터페이스는 필기 입력 영역(804), 후보 디스플레이 영역(806), 및 텍스트 입력 영역(808)을 포함한다. 하나 이상의 제어 요소들(1102)이 또한 필기 입력 인터페이스(1002)에 포함된다.FIG. 11A illustrates an exemplary handwriting input interface (802). The handwriting input interface includes a handwriting input area (804), a candidate display area (806), and a text input area (808). One or more control elements (1102) are also included in the handwriting input interface (1002).

도 11a에 도시된 바와 같이, 후보 디스플레이 영역(806)은 선택적으로 하나 이상의 인식 결과들을 디스플레이하기 위한 영역, 및 후보 디스플레이 영역(806)의 확장 버전을 호출하기 위한 어포던스(1104)(예컨대, 팽창 아이콘)를 포함한다.As illustrated in FIG. 11a, the candidate display area (806) optionally includes an area for displaying one or more recognition results, and an affordance (1104) for invoking an expanded version of the candidate display area (806) (e.g., an expand icon).

도 11a 내지 도 11c는, 사용자가 필기 입력 영역(804)에서 하나 이상의 필기 획들(예컨대, 획들(1106, 1108, 1110))을 제공함에 따라, 사용자 디바이스가 필기 입력 영역(804)에서 현재 누적된 획들에 대응하는 인식 결과들의 개별 세트를 식별하고 디스플레이하는 것을 도시한다. 도 11b에 도시된 바와 같이, 사용자가 제1 획(1106)을 입력한 후에, 사용자 디바이스는 3개의 인식 결과들(1112, 1114, 1116)(예컨대, 문자들 "/", "1", 및 ",")을 식별하고 디스플레이한다. 일부 실시예들에서, 각 문자와 연관된 인식 신뢰도에 따른 순서로 적은 수의 후보 문자들이 후보 디스플레이 영역(806)에서 디스플레이된다.FIGS. 11A-11C illustrate that as a user provides one or more handwritten strokes (e.g., strokes (1106, 1108, 1110)) in a handwriting input area (804), the user device identifies and displays a separate set of recognition results corresponding to the currently accumulated strokes in the handwriting input area (804). As illustrated in FIG. 11B , after the user inputs a first stroke (1106), the user device identifies and displays three recognition results (1112, 1114, 1116) (e.g., characters "/", "1", and ","). In some embodiments, a small number of candidate characters are displayed in the candidate display area (806) in an order of recognition confidence associated with each character.

일부 실시예들에서, 최상위 후보 결과(예컨대, "/")가 텍스트 입력 영역(808)에서, 예컨대, 박스(1118) 내에 잠정적으로 디스플레이된다. 사용자는 선택적으로 최상위 후보가 의도된 입력임을 간단한 확인 입력에 의해(예컨대, "엔터" 키를 누름으로써, 또는 필기 입력 영역에서 더블-탭 제스처를 제공함으로써) 확인할 수 있다.In some embodiments, the top candidate result (e.g., "/") is provisionally displayed in the text input area (808), for example, within a box (1118). The user may optionally confirm that the top candidate is the intended input by a simple confirmation input (e.g., by pressing the "Enter" key or providing a double-tap gesture in the handwriting input area).

도 11c는, 사용자가 임의의 후보 인식 결과를 선택하기 전에, 사용자가 필기 입력 영역(804)에서 획들(1108, 1100)을 2개 더 입력함에 따라, 추가적인 획들이 초기 획(1106)을 갖는 필기 입력 영역(804)에서 렌더링되고, 후보 결과들이 현재 누적된 필기 입력들로부터 식별되는 인식 유닛(들)에 변경들을 반영하도록 업데이트되는 것을 도시한다. 도 11c에 도시된 바와 같이, 3개의 획들에 기초하여, 사용자 디바이스는 단일 인식 유닛을 식별하였다. 단일 인식 유닛에 기초하여, 사용자 디바이스는 다수의 인식 결과들(1118 내지 1124)을 식별하고 디스플레이하였다. 일부 실시예들에서, 후보 디스플레이 영역(806)에서 현재 디스플레이된 인식 결과들 중 하나 이상(예컨대, 1118 및 1122)은 각각 현재 필기 입력에 대해 다수의 유사해 보이는 후보 문자들 중에서 선택된 대표 후보 문자이다.FIG. 11C illustrates that as the user inputs two more strokes (1108, 1100) in the handwriting input area (804) before selecting any candidate recognition result, the additional strokes are rendered in the handwriting input area (804) having the initial stroke (1106) and the candidate results are updated to reflect changes to the recognition unit(s) identified from the currently accumulated handwriting inputs. As illustrated in FIG. 11C , based on the three strokes, the user device identified a single recognition unit. Based on the single recognition unit, the user device identified and displayed multiple recognition results (1118-1124). In some embodiments, one or more of the recognition results currently displayed in the candidate display area (806) (e.g., 1118 and 1122) are each a representative candidate character selected from a plurality of similar-looking candidate characters for the current handwriting input.

도 11c 및 도 11d에 도시된 바와 같이, 사용자가 (예컨대, 어포던스(1104) 위에서의 접촉(1126)을 갖는 탭 제스처를 이용하여) 어포던스(1104)를 선택할 경우, 후보 디스플레이 영역은 정상 시야(예컨대, 도 11c에 도시됨)로부터 확장 시야(예컨대, 도 11d에 도시됨)로 변경된다. 일부 실시예들에서, 확장 시야는 현재 필기 입력에 대해 식별된 모든 인식 결과들(예컨대, 후보 문자들)을 나타낸다.As illustrated in FIGS. 11C and 11D , when a user selects an affordance (1104) (e.g., using a tap gesture with contact (1126) over the affordance (1104)), the candidate display area changes from the normal field of view (e.g., illustrated in FIG. 11C ) to an extended field of view (e.g., illustrated in FIG. 11D ). In some embodiments, the extended field of view represents all recognition results (e.g., candidate characters) identified for the current handwriting input.

일부 실시예들에서, 후보 디스플레이 영역(806)의 초기에 디스플레이된 정상 시야는 개별 스크립트 또는 언어에서 사용되는 대부분의 상용 문자들만을 나타내는 반면에, 확장 시야는 스크립트 또는 언어에서 드물게 사용되는 문자들을 포함하여, 모든 후보 문자들을 나타낸다. 후보 디스플레이 영역의 확장 시야는 상이한 방식들로 설계될 수 있다. 도 11d 내지 도 11g는 일부 실시예들에 따른, 확장된 후보 디스플레이 영역의 예시적인 설계를 도시한다.In some embodiments, the initially displayed normal field of view of the candidate display area (806) shows only most common characters used in an individual script or language, while the extended field of view shows all candidate characters, including characters that are rarely used in the script or language. The extended field of view of the candidate display area can be designed in different ways. FIGS. 11D-11G illustrate exemplary designs of an extended candidate display area, according to some embodiments.

도 11d에 도시된 바와 같이, 일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)은 후보 문자들의 개별 카테고리를 각각 제시하는 하나 이상의 탭처리된 페이지들(예컨대, 페이지들(1130, 1132, 1134, 1136))을 포함한다. 도 11d에 도시된 탭처리된 설계는 사용자가 문자들의 원하는 카테고리를 신속하게 찾은 후에, 그 또는 그녀가 대응하는 탭처리된 페이지 내에 입력하려고 한 문자를 찾을 수 있게 한다.As illustrated in FIG. 11d , in some embodiments, the expanded candidate display area (1128) includes one or more tabbed pages (e.g., pages 1130, 1132, 1134, 1136) each presenting a separate category of candidate characters. The tabbed design illustrated in FIG. 11d allows a user to quickly find a desired category of characters, and then locate the character he or she intended to enter within the corresponding tabbed page.

도 11d에서, 제1 탭처리된 페이지(1130)는 상용 문자들 뿐만 아니라 희귀 문자들 둘 모두를 포함하여, 현재 누적된 필기 입력에 대해 식별된 모든 후보 문자들을 디스플레이한다. 도 11d에 도시된 바와 같이, 탭처리된 페이지(1130)는 도 11c의 초기 후보 디스플레이 영역(806)에 나타낸 문자들 전부, 및 초기 후보 디스플레이 영역(806)에 포함되지 않은 다수의 추가적인 문자들(예컨대, "", "β", "巾", 등)을 포함한다.In FIG. 11d , the first tabbed page (1130) displays all candidate characters identified for the current accumulated handwriting input, including both common characters as well as rare characters. As illustrated in FIG. 11d , the tabbed page (1130) displays all of the characters shown in the initial candidate display area (806) of FIG. 11c , as well as a number of additional characters not included in the initial candidate display area (806), such as " ", "β", "巾", etc.)

일부 실시예들에서, 초기 후보 디스플레이 영역(806)에 디스플레이된 문자들은 스크립트와 연관된 상용 문자들의 세트(예컨대, 유니코드 표준에 따라 인코딩된 바와 같은, CJK 스크립트의 기본 블록에서의 모든 문자들)로부터의 문자들만을 포함한다. 일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)에 디스플레이된 문자들은 스크립트와 연관된 희귀 문자들의 세트(예컨대, 유니코드 표준에 따라 인코딩된 바와 같은, CJK 스크립트의 확장 블록에서의 모든 문자들)를 추가로 포함한다. 일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)은 사용자에 의해 흔히 사용되지 않는 다른 스크립트들, 예컨대, 그리스어 스크립트, 아랍어 스크립트, 및/또는 이모지 스크립트로부터의 후보 문자들을 추가로 포함한다.In some embodiments, the characters displayed in the initial candidate display area (806) include only characters from a set of common characters associated with the script (e.g., all characters in the basic block of the CJK script, as encoded according to the Unicode standard). In some embodiments, the characters displayed in the extended candidate display area (1128) additionally include a set of rare characters associated with the script (e.g., all characters in the extended block of the CJK script, as encoded according to the Unicode standard). In some embodiments, the extended candidate display area (1128) additionally includes candidate characters from other scripts that are not commonly used by users, such as Greek script, Arabic script, and/or emoji script.

일부 실시예들에서, 도 11d에 도시된 바와 같이, 확장된 후보 디스플레이 영역(1128)은 개별 탭처리된 페이지들(1130, 1132, 1134, 1138)을 포함하는데, 그들 각각은 후보 문자들의 개별 카테고리(예컨대, 각각, 모든 문자들, 희귀 문자들, 라틴어 스크립트로부터의 문자들, 및 이모지 스크립트로부터의 문자들)에 대응한다. 도 11e 내지 도 11g는, 사용자가 상이한 탭처리된 페이지들 각각을 선택하여 대응하는 카테고리에서의 후보 문자들을 드러내 보일 수 있는 것을 도시한다. 도 11e는 현재 필기 입력에 대응하는 희귀 문자들(예컨대, CJK 스크립트의 확장 블록으로부터의 문자들)만을 도시한다. 도 11f는 현재 필기 입력에 대응하는 라틴어 및 그리스어 문자들만을 도시한다. 도 11g는 현재 필기 입력에 대응하는 이모지 캐릭터들만을 도시한다.In some embodiments, as illustrated in FIG. 11d , the expanded candidate display area (1128) includes individual tabbed pages (1130, 1132, 1134, 1138), each of which corresponds to a respective category of candidate characters (e.g., all characters, rare characters, characters from the Latin script, and characters from the emoji script, respectively). FIGS. 11e-11g illustrate that a user can select each of the different tabbed pages to reveal candidate characters in the corresponding category. FIG. 11e illustrates only the rare characters corresponding to the current handwriting input (e.g., characters from the extended block of the CJK script). FIG. 11f illustrates only the Latin and Greek characters corresponding to the current handwriting input. FIG. 11g illustrates only the emoji characters corresponding to the current handwriting input.

일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)은 개별 기준에 기초하여(예컨대, 표음식 철자에 기초하여, 획들의 수에 기초하여, 그리고 부수들에 기초하여 등) 개별 탭처리된 페이지에서의 후보 문자들을 정렬하기 위해 하나 이상의 어포던스들을 추가로 포함한다. 인식 신뢰도 점수들 이외의 기준에 따라 각 카테고리에서의 후보 문자들을 정렬하는 능력은 사용자에게 텍스트 입력에 대한 원하는 후보 문자를 신속하게 찾는 추가적인 능력을 제공한다.In some embodiments, the extended candidate display area (1128) further includes one or more affordances for sorting candidate characters on individual tabbed pages based on individual criteria (e.g., based on phonetic spelling, based on number of strokes, based on radicals, etc.). The ability to sort candidate characters in each category based on criteria other than recognition confidence scores provides the user with an additional ability to quickly find a desired candidate character for text input.

도 11h 내지 도 11k는, 일부 실시예들에서, 유사해 보이는 후보 문자들이 그룹화될 수 있고, 유사해 보이는 후보 문자들의 각 그룹으로부터의 대표 문자만이 초기 후보 디스플레이 영역(806)에서 제시되는 것을 도시한다. 본 명세서에 설명되는 멀티스크립트 인식 모델은 주어진 필기 입력에 대해 거의 동등하게 양호한 많은 후보 문자들을 생성할 수 있기 때문에, 인식 모델은 하나의 후보를 다른 유사해 보이는 후보를 희생하면서 항상 제거할 수 있는 것은 아니다. 제한된 디스플레이 영역을 갖는 디바이스 상에서, 갑자기 많은 수의 유사해 보이는 후보들을 디스플레이하는 것은 사용자가 정확한 문자를 선발하는 데 도움이 되지 않는데, 이는 미세한 구별이 쉽게 볼 수 없고, 사용자가 원하는 문자를 볼 수 있더라도, 손가락 또는 스타일러스를 사용하여 매우 밀집된 디스플레이로부터 그것을 선택하는 것은 어려울 수 있기 때문이다.FIGS. 11H-11K illustrate that in some embodiments, similar-looking candidate characters can be grouped, and only a representative character from each group of similar-looking candidate characters is presented in the initial candidate display area (806). Since the multi-script recognition model described herein can generate many candidate characters that are roughly equally good for a given handwriting input, the recognition model cannot always eliminate one candidate at the expense of other similar-looking candidates. On a device with a limited display area, suddenly displaying a large number of similar-looking candidates does not help the user select the correct character, because fine distinctions may not be readily visible, and even if the user can see the desired character, it may be difficult to select it from a very dense display using a finger or stylus.

일부 실시예들에서, 상기 문제들을 다루기 위해, 사용자 디바이스는 서로에 대해 큰 유사성을 갖는 후보 문자들을 (예컨대, 유사해 보이는 문자들의 사전 또는 용어 색인, 또는 몇몇 이미지-기반 기준들에 따라) 식별하고, 그들을 개별 그룹으로 그룹화한다. 일부 실시예들에서, 주어진 필기 입력에 대한 후보 문자들의 세트로부터 유사해 보이는 문자들의 하나 이상의 그룹들이 식별될 수 있다. 일부 실시예들에서, 사용자 디바이스는 동일한 그룹에서의 복수의 유사해 보이는 후보 문자들 중에서 대표 후보 문자를 식별하였고, 초기 후보 디스플레이 영역(806)에서 대표 후보만을 디스플레이한다. 상용 문자가 임의의 다른 후보 문자들과 충분히 유사해 보이지 않는 경우, 그것은 그 자체로 디스플레이된다. 일부 실시예들에서, 도 11h에 도시된 바와 같이, 각 그룹의 대표 후보 문자(예컨대, 후보 문자들(1118, 1122), "" 및 "T")는 임의의 그룹에 속하지 않는 후보 문자(예컨대, 후보 문자들(1120, 1124), "乃" 및 "J")와는 상이한 방식으로(예컨대, 볼드로 표시된 박스로) 디스플레이된다. 일부 실시예들에서, 그룹의 대표 문자를 선정하기 위한 기준은 그룹에서의 후보 문자들의 상대적인 사용 빈도에 기초한다. 일부 실시예들에서, 다른 기준들이 이용될 수도 있다.In some embodiments, to address the above issues, the user device identifies candidate characters that have a high degree of similarity to each other (e.g., according to a dictionary or glossary of similar-looking characters, or according to some image-based criteria) and groups them into separate groups. In some embodiments, one or more groups of similar-looking characters can be identified from a set of candidate characters for a given handwriting input. In some embodiments, the user device identifies a representative candidate character among multiple similar-looking candidate characters in a same group and displays only the representative candidate in the initial candidate display area (806). If a common character does not appear sufficiently similar to any of the other candidate characters, it is displayed by itself. In some embodiments, as illustrated in FIG. 11h , the representative candidate character for each group (e.g., candidate characters 1118 , 1122 ), " " and "T") are displayed in a different manner (e.g., as bold boxes) than candidate characters that do not belong to any group (e.g., candidate characters (1120, 1124), "乃" and "J"). In some embodiments, the criteria for selecting a representative character for a group is based on the relative usage frequencies of the candidate characters in the group. In some embodiments, other criteria may be used.

일부 실시예들에서, 일단 대표 문자(들)가 사용자에게 디스플레이되면, 사용자는 선택적으로 팽창 시야(expanded view)에서 유사해 보이는 후보 문자들을 나타내기 위해 후보 디스플레이 영역(806)을 팽창시킬 수 있다. 일부 실시예들에서, 특정한 대표 문자의 선택은 선택된 대표 문자와 동일한 그룹에서 그들 후보 문자들만의 팽창 시야를 야기할 수 있다.In some embodiments, once the representative character(s) are displayed to the user, the user may optionally expand the candidate display area (806) to reveal similarly appearing candidate characters in an expanded view. In some embodiments, selection of a particular representative character may result in an expanded view of only those candidate characters in the same group as the selected representative character.

유사해 보이는 후보들의 팽창 시야를 제공하기 위한 다양한 설계들이 가능하다. 도 11h 내지 도 11k는 대표 후보 문자(예컨대, 대표 문자(1118)) 위에서 검출되는 사전결정된 제스처(예컨대, 팽창 제스처)에 의해 대표 후보 문자의 팽창 시야가 호출되는 하나의 실시예를 도시한다. 팽창 시야를 호출하기 위한 사전결정된 제스처(예컨대, 팽창 제스처)는 텍스트 입력에 대한 대표 문자를 선택하기 위한 사전결정된 제스처(예컨대, 탭 제스처)와는 다르다.Various designs are possible for providing expanded views of candidates that appear similar. FIGS. 11h-11k illustrate one embodiment where an expanded view of a representative candidate character is invoked by a predetermined gesture (e.g., an expanded gesture) detected over the representative candidate character (e.g., representative character (1118)). The predetermined gesture (e.g., the expanded gesture) for invoking the expanded view is different from the predetermined gesture (e.g., a tap gesture) for selecting the representative character for text input.

도 11h 및 도 11i에 도시된 바와 같이, 사용자가 제1 대표 문자(1118) 위에서 (예컨대, 서로로부터 멀리 이동하는 2개의 접촉들(1138, 1140)에 의해 나타내는 바와 같이) 팽창 제스처를 제공할 때, 대표 문자(1118)를 디스플레이하는 영역이 팽창되고, 동일한 팽창된 그룹 내에 있지 않은 다른 후보 문자들(예컨대, "乃")과 비교해서 확대된 시야(예컨대, 각각 확대된 박스들(1142, 1144, 1146)에서) 3개의 유사해 보이는 후보 문자들(예컨대, "", "" 및 "巾")이 제시된다.As illustrated in FIGS. 11h and 11i , when a user provides an expand gesture over a first representative character (1118) (e.g., as indicated by two contacts (1138, 1140) moving away from each other), the area displaying the representative character (1118) is expanded and three similar-looking candidate characters (e.g., "乃") are displayed in an expanded field of view (e.g., in expanded boxes (1142, 1144, 1146) respectively) compared to other candidate characters (e.g., "乃") that are not within the same expanded group. ", " " and "巾") are presented.

도 11i에 도시된 바와 같이, 확대된 시야에서 제시될 때, 3개의 유사해 보이는 후보 문자들(예컨대, "", "" 및 "巾")의 미세한 구별들이 사용자에 의해 보다 쉽게 보여질 수 있다. 3개의 후보 문자들 중 하나가 의도된 문자 입력인 경우, 사용자는, 예컨대 그 후보 문자가 디스플레이된 영역을 터치함으로써 후보 문자를 선택할 수 있다. 도 11j 및 도 11k에 도시된 바와 같이, 사용자는 팽창 시야에서 박스(1144)에 나타낸 제2 문자(예컨대, "")를 (접촉(1148)에 의해) 선택하였다. 응답으로, 선택된 문자(예컨대, "")는 커서에 의해 지시되는 삽입 위치에서 텍스트 입력 영역(808)으로 입력된다. 도 11k에 도시된 바와 같이, 일단 문자가 선택되면, 필기 입력 영역(804)에서의 필기 입력 및 후보 디스플레이 영역(806)(또는 후보 디스플레이 영역의 확장 시야)에서의 후보 문자들은 후속 필기 입력을 위해 클리어된다.As shown in Figure 11i, when presented in an enlarged view, three similar-looking candidate characters (e.g., " ", " " and "巾") can be more easily seen by the user. If one of the three candidate characters is the intended character input, the user can select the candidate character, for example, by touching the area where the candidate character is displayed. As illustrated in FIGS. 11J and 11K , the user can select the second character (e.g., " ) shown in box (1144) in the expanded field of view. ") was selected (by contact (1148)). In response, the selected character (e.g., " ") is entered into the text input area (808) at the insertion location indicated by the cursor. As illustrated in FIG. 11k, once a character is selected, the handwriting input in the handwriting input area (804) and the candidate characters in the candidate display area (806) (or the extended field of view of the candidate display area) are cleared for subsequent handwriting input.

일부 실시예들에서, 사용자가 제1 대표 후보 문자의 팽창 시야(1142)에서 원하는 후보 문자를 보지 못한 경우, 사용자는 선택적으로 동일한 제스처를 이용하여, 후보 디스플레이 영역(806)에서 디스플레이된 다른 대표 문자들을 팽창시킬 수 있다. 일부 실시예들에서, 후보 디스플레이 영역(806)에서의 다른 대표 문자를 팽창시키는 것은 자동으로 현재 제시된 팽창 시야를 정상 시야로 복원시킨다. 일부 실시예들에서, 사용자는 선택적으로 축소 제스처를 이용하여 현재의 팽창 시야를 정상 시야로 복원시킨다. 일부 실시예들에서, 사용자는 후보 디스플레이 영역(806)을 (예컨대, 좌측으로 또는 우측으로) 스크롤하여, 후보 디스플레이 영역(806)에서 보이지 않는 다른 후보 문자들을 드러내 보일 수 있다.In some embodiments, if the user does not see the desired candidate character in the expanded field of view (1142) of the first representative candidate character, the user may optionally use the same gesture to expand other representative characters displayed in the candidate display area (806). In some embodiments, expanding other representative characters in the candidate display area (806) automatically restores the currently presented expanded field of view to the normal field of view. In some embodiments, the user may optionally use the collapse gesture to restore the current expanded field of view to the normal field of view. In some embodiments, the user may scroll the candidate display area (806) (e.g., to the left or right) to reveal other candidate characters that are not visible in the candidate display area (806).

도 12a 및 도 12b는, 초기 후보 디스플레이 영역에서 인식 결과들의 제1 서브세트가 제시되는 반면에, 사용자에 의해 특정적으로 호출될 때까지 시야에서 숨겨져 있는 확장된 후보 디스플레이 영역에서 인식 결과들의 제2 서브세트가 제시되는 예시적인 프로세스(1200)의 플로차트들이다. 예시적인 프로세스(1200)에서, 디바이스는 필기 입력에 대한 복수의 필기 인식 결과들로부터, 사전결정된 임계치를 초과하는 시각적 유사성 레벨을 갖는 인식 결과들의 서브세트를 식별한다. 그 후에, 사용자 디바이스는 인식 결과들의 서브세트로부터 대표 인식 결과를 선택하고, 선택된 대표 인식 결과를 디스플레이의 후보 디스플레이 영역에서 디스플레이한다. 프로세스(1200)는 도 11a 내지 도 11k에서 예시되어 있다.FIGS. 12A and 12B are flowcharts of an exemplary process (1200) in which a first subset of recognition results are presented in an initial candidate display area, while a second subset of recognition results are presented in an extended candidate display area that is hidden from view until specifically invoked by a user. In the exemplary process (1200), the device identifies, from a plurality of handwriting recognition results for a handwriting input, a subset of recognition results having a level of visual similarity exceeding a predetermined threshold. The user device then selects a representative recognition result from the subset of recognition results and displays the selected representative recognition result in a candidate display area of the display. The process (1200) is illustrated in FIGS. 11A through 11K.

도 12a에 도시된 바와 같이, 예시적인 프로세스(1200)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(1202). 필기 입력은 필기 입력 인터페이스(예컨대, 도 11c의 802)의 필기 입력 영역(예컨대, 도 11c의 806)에서 제공되는 하나 이상의 필기 획들 (예컨대, 도 11c의 1106, 1108, 1110)을 포함한다. 사용자 디바이스는, 필기 인식 모델에 기초하여, 필기 입력에 대한 복수의 출력 문자들(예컨대, 탭처리된 페이지(1130)에 나타낸 문자들, 도 11c)을 식별한다(1204). 사용자 디바이스는 사전결정된 분류 기준에 기초하여 복수의 출력 문자들을 2개 이상의 카테고리들로 나눈다(1206). 일부 실시예들에서, 사전결정된 분류 기준은 개별 문자가 상용 문자인지 또는 희귀 문자인지를 결정한다(1208).As illustrated in FIG. 12A , in an exemplary process (1200), a user device receives a handwriting input from a user (1202). The handwriting input includes one or more handwriting strokes (e.g., 1106, 1108, 1110 of FIG. 11C ) provided in a handwriting input area (e.g., 806 of FIG. 11C ) of a handwriting input interface (e.g., 802 of FIG. 11C ). The user device identifies (1204) a plurality of output characters for the handwriting input (e.g., characters shown in the tabbed page (1130) of FIG. 11C ) based on a handwriting recognition model. The user device divides the plurality of output characters into two or more categories based on predetermined classification criteria (1206). In some embodiments, the predetermined classification criteria determines whether an individual character is a common character or a rare character (1208).

일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역(예컨대, 도 11c에 도시된 바와 같은 806)의 초기 시야에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들(예컨대, 상용 문자들)을 디스플레이하는데(1210), 후보 디스플레이 영역의 초기 시야에는 후보 디스플레이 영역의 확장 시야(예컨대, 도 11d의 1128)를 호출하기 위한 어포던스(예컨대, 도 11c의 1104)가 동시에 제공된다.In some embodiments, the user device displays (1210) individual output characters (e.g., common characters) within a first category of two or more categories in an initial view of a candidate display area of the handwriting input interface (e.g., 806 as illustrated in FIG. 11c ), wherein the initial view of the candidate display area is simultaneously provided with an affordance (e.g., 1104 of FIG. 11c ) for invoking an extended view of the candidate display area (e.g., 1128 of FIG. 11d ).

일부 실시예들에서, 사용자 디바이스는, 예컨대 도 11c에 도시된 바와 같이, 확장 시야를 호출하기 위한 어포던스를 선택하는 사용자 입력을 수신한다(1212). 사용자 입력에 응답하여, 사용자 디바이스는, 예컨대 도 11d에 도시된 바와 같이, 후보 디스플레이 영역의 확장 시야에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들 및 후보 디스플레이 영역의 초기 시야에서 사전에 디스플레이되지 않은 적어도 제2 카테고리 내의 개별 출력 문자들을 디스플레이한다(1214).In some embodiments, the user device receives user input selecting an affordance for invoking an expanded field of view (1212), such as illustrated in FIG. 11c. In response to the user input, the user device displays, in the expanded field of view of the candidate display area, individual output characters within a first category of the two or more categories and individual output characters within at least a second category that were not previously displayed in the initial field of view of the candidate display area (1214), such as illustrated in FIG.

일부 실시예들에서, 제1 카테고리 내의 개별 문자들은 상용 문자들의 사전에서 발견되는 문자들이고, 제2 카테고리 내의 개별 문자들은 희귀 문자들의 사전에서 발견되는 문자들이다. 일부 실시예들에서, 상용 문자들의 사전 및 희귀 문자들의 사전은 사용자 디바이스와 연관된 사용 이력에 기초하여 동적으로 조정 또는 업데이트된다.In some embodiments, the individual characters in the first category are characters found in a dictionary of common characters, and the individual characters in the second category are characters found in a dictionary of rare characters. In some embodiments, the dictionary of common characters and the dictionary of rare characters are dynamically adjusted or updated based on the usage history associated with the user device.

일부 실시예들에서, 사용자 디바이스는 복수의 출력 문자들로부터, 사전결정된 유사성 기준에 따라 (예컨대, 유사한 문자들의 사전에 기초하여 또는 일부 공간-유도 특징부들에 기초하여) 시각적으로 서로 유사한 문자들의 그룹을 식별한다(1216). 일부 실시예들에서, 사용자 디바이스는 시각적으로 유사한 문자들의 그룹으로부터, 사전결정된 선택 기준에 기초하여 (예컨대, 이력적 사용 빈도에 기초하여) 대표 문자를 선택한다. 일부 실시예들에서, 사전결정된 선택 기준은 그룹에서의 문자들의 상대적인 사용 빈도에 기초한다. 일부 실시예들에서, 사전결정된 선택 기준은 디바이스와 연관된 선호 입력 언어에 기초한다. 일부 실시예들에서, 대표 후보는 각 후보가 사용자에 의한 의도된 입력일 가능성을 나타내는 다른 인자들에 기초하여 선택된다. 이들 인자들은, 예를 들어, 후보 문자가 사용자의 디바이스 상에 현재 설치된 소프트 키보드에 대한 스크립트에 속하는지, 또는 후보 문자가 사용자 또는 사용자 디바이스와 연관된 특정한 언어에서의 대부분의 상용 문자들의 세트 중에 있는지 등을 포함한다.In some embodiments, the user device identifies (1216) a group of visually similar characters from a plurality of output characters based on a predetermined similarity criterion (e.g., based on a dictionary of similar characters or based on some spatially-derived features). In some embodiments, the user device selects a representative character from the group of visually similar characters based on a predetermined selection criterion (e.g., based on historical frequency of use). In some embodiments, the predetermined selection criterion is based on the relative frequency of use of the characters in the group. In some embodiments, the predetermined selection criterion is based on a preferred input language associated with the device. In some embodiments, the representative candidates are selected based on other factors that indicate the likelihood that each candidate is intended input by the user. These factors include, for example, whether the candidate character belongs to a script for a soft keyboard currently installed on the user's device, or whether the candidate character is among a set of most common characters in a particular language associated with the user or the user device.

일부 실시예들에서, 사용자 디바이스는 후보 디스플레이 영역(예컨대, 도 11h의 806)의 초기 시야에서, 시각적으로 유사한 문자들의 그룹에서의 다른 문자들(예컨대, "", "巾") 대신에 대표 문자 (예컨대, "")를 디스플레이한다(1220). 일부 실시예들에서, 각 후보 문자가 그룹의 대표 문자인지 또는 어떠한 그룹 내에도 있지 않은 일반 후보 문자인지를 나타내기 위해 후보 디스플레이 영역의 초기 시야에서 시각적 표시들(예컨대, 선택적인 시각적 강조, 특별한 배경)이 제공된다. 일부 실시예들에서, 예컨대, 도 11h에 도시된 바와 같이, 사용자 디바이스는, 사용자로부터, 후보 디스플레이 영역의 초기 시야에서 디스플레이되는 대표 문자로 안내되는 사전결정된 팽창 입력(예컨대, 팽창 제스처)을 수신한다(1222). 일부 실시예들에서, 예컨대, 도 11i에 도시된 바와 같이, 사용자 디바이스는, 사전결정된 팽창 입력의 수신에 응답하여, 시각적으로 유사한 문자들의 그룹에서의 대표 문자의 확대 시야 및 하나 이상의 다른 문자들의 개별 확대 시야를 동시에 디스플레이한다(1224).In some embodiments, the user device selects, in an initial view of the candidate display area (e.g., 806 of FIG. 11h ), other characters in a group of visually similar characters (e.g., " ", "巾") instead of representative characters (e.g., " ") is displayed (1220). In some embodiments, visual cues (e.g., optional visual highlight, special background) are provided in the initial view of the candidate display area to indicate whether each candidate character is the representative character of the group or a generic candidate character not in any group. In some embodiments, as illustrated in FIG. 11h , the user device receives (1222) a predetermined expansion input (e.g., an expansion gesture) from the user that directs the representative character to be displayed in the initial view of the candidate display area. In some embodiments, as illustrated in FIG. 11i , the user device, in response to receiving the predetermined expansion input, simultaneously displays an expanded view of the representative character in the group of visually similar characters and an individual expanded view of one or more other characters (1224).

일부 실시예들에서, 사전결정된 팽창 입력은 후보 디스플레이 영역에서 디스플레이되는 대표 문자 위에서 검출되는 팽창 제스처이다. 일부 실시예들에서, 사전결정된 팽창 입력은 후보 디스플레이 영역에서 디스플레이되는 대표 문자 위에서 검출되고 사전결정된 임계 시간보다 더 길게 지속되는 접촉이다. 일부 실시예들에서, 그룹을 팽창시키기 위한 지속된 접촉은 텍스트 입력에 대한 대표 문자를 선택하는 탭 제스처보다 더 긴 임계 지속기간을 갖는다.In some embodiments, the predetermined expansion input is an expansion gesture detected over a representative character displayed in the candidate display area. In some embodiments, the predetermined expansion input is a contact detected over a representative character displayed in the candidate display area and sustained for longer than a predetermined threshold time. In some embodiments, a sustained contact to expand a group has a longer threshold duration than a tap gesture to select a representative character for text input.

일부 실시예들에서, 각 대표 문자는 그의 유사해 보이는 후보 문자들의 그룹의 확장 시야를 호출하기 위한 개별 어포던스(예컨대, 개별 팽창 버튼)와 동시에 디스플레이된다. 일부 실시예들에서, 사전결정된 팽창 입력은 대표 문자와 연관된 개별 어포던스의 선택이다.In some embodiments, each representative character is displayed simultaneously with an individual affordance (e.g., an individual expand button) for invoking an expanded view of a group of candidate characters that appear similar to it. In some embodiments, the predetermined expand input is selection of an individual affordance associated with the representative character.

본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 멀티스크립트 필기 인식 모델의 레퍼토리는 이모지 스크립트를 포함한다. 필기 입력 인식 모듈은 사용자의 필기 입력에 기초하여 이모지 캐릭터를 인식할 수 있다. 일부 실시예들에서, 필기 인식 모듈은, 필기로부터 직접 식별되는 이모지 캐릭터들, 및 식별된 이모지 캐릭터를 표시하는 자연 인간 언어에서의 문자 또는 단어 둘 모두를 제시한다. 일부 실시예들에서, 필기 입력 모듈은, 사용자의 필기 입력에 기초하여 자연 인간 언어에서의 문자 또는 단어를 인식하고, 인식된 문자 또는 단어, 및 인식된 문자 또는 단어에 대응하는 이모지 캐릭터 둘 모두를 제시한다. 다시 말하면, 필기 입력 모듈은 필기 입력 인터페이스로부터 이모지 키보드로 전환하지 않고 이모지 캐릭터를 입력하기 위한 방식들을 제공한다. 추가적으로, 필기 입력 모듈은 또한 손으로 이모지 캐릭터를 그림으로써, 정규 자연 언어 문자들 및 단어들을 입력하는 방식을 제공한다. 도 13a 내지 도 13e는 이모지 캐릭터들 및 정규 자연 언어 문자들을 입력하는 이러한 상이한 방식들을 도시하는 예시적인 사용자 인터페이스들을 제공한다.As described herein, in some embodiments, the repertoire of the multi-script handwriting recognition model includes emoji scripts. The handwriting input recognition module can recognize emoji characters based on the user's handwriting input. In some embodiments, the handwriting recognition module presents both emoji characters identified directly from the handwriting, and characters or words in natural human language representing the identified emoji characters. In some embodiments, the handwriting input module recognizes characters or words in natural human language based on the user's handwriting input, and presents both the recognized characters or words, and emoji characters corresponding to the recognized characters or words. In other words, the handwriting input module provides ways to input emoji characters without switching from the handwriting input interface to the emoji keyboard. Additionally, the handwriting input module also provides ways to input regular natural language characters and words by drawing the emoji character by hand. Figures 13A-13E provide exemplary user interfaces illustrating these different ways to input emoji characters and regular natural language characters.

도 13a는 채팅 애플리케이션 하에서 호출된 예시적인 필기 입력 인터페이스(802)를 도시한다. 필기 입력 인터페이스(802)는 필기 입력 영역(804), 후보 디스플레이 영역(806), 및 텍스트 입력 영역(808)을 포함한다. 일부 실시예들에서, 일단 사용자가 텍스트 입력 영역(808)에서의 텍스트 구성에 만족하면, 사용자는 텍스트 구성을 현재 채팅 세션의 다른 참여자로 전송하도록 선정할 수 있다. 채팅 세션의 대화 이력은 대화 패널(1302)에 나타내진다. 이러한 예에서, 사용자는 대화 패널(1302)에 디스플레이된 채팅 메시지(1304) (예컨대, "Happy Birthday ")를 수신하였다.FIG. 13A illustrates an exemplary handwriting input interface (802) invoked under a chat application. The handwriting input interface (802) includes a handwriting input area (804), a candidate display area (806), and a text input area (808). In some embodiments, once the user is satisfied with the text composition in the text input area (808), the user may elect to transmit the text composition to other participants in the current chat session. The conversation history of the chat session is presented in the conversation panel (1302). In this example, the user may enter a chat message (1304) (e.g., "Happy Birthday") displayed in the conversation panel (1302). ") was received.

도 13b에 도시된 바와 같이, 사용자는 필기 입력 영역(804)에서 영어 단어 "Thanks"에 대한 필기 입력(1306)을 제공하였다. 필기 입력(1306)에 응답하여, 사용자 디바이스는 다수의 후보 인식 결과들(예컨대, 인식 결과들(1308, 1310, 1312))을 식별하였다. 최상위 인식 결과(1303)가 텍스트 입력 영역(808)으로 박스(1314) 내에서 잠정적으로 입력되었다.As illustrated in FIG. 13b, a user provided a handwriting input (1306) for the English word "Thanks" in the handwriting input area (804). In response to the handwriting input (1306), the user device identified a number of candidate recognition results (e.g., recognition results (1308, 1310, 1312)). The top recognition result (1303) was provisionally entered into the text input area (808) within a box (1314).

도 13c에 도시된 바와 같이, 사용자가 필기 입력 영역(806)에서 필기 단어 "Thanks"를 입력한 후에, 사용자는 이어서 필기 입력 영역(806)에서 획들(1316)을 갖는 스타일화된 느낌표(예컨대, 둥근 원을 아래에 갖는 기다란 원)를 그린다. 사용자 디바이스는, 추가적인 획들(1316)이 필기 입력 영역(806)에서 누적된 필기 획들(1306)로부터 이전에 인식된 다른 인식 유닛들과는 별도의 인식 유닛을 형성하는 것을 인식한다. 새롭게 입력된 인식 유닛(즉, 획들(1316)에 의해 형성된 인식 유닛)에 기초하여, 사용자 디바이스는 필기 인식 모델을 사용하여 이모지 캐릭터(예컨대, 스타일화된 "!")를 식별한다. 이러한 인식된 이모지 캐릭터에 기초하여, 사용자 디바이스는 후보 디스플레이 영역(806)에서 제1 인식 결과(1318)(예컨대, 스타일화된 "!"를 갖는 "Thanks!")를 제시한다. 추가적으로, 사용자 디바이스는 또한 새롭게 입력된 인식 유닛과 시각적으로 유사한 숫자 "8"도 또한 식별한다. 이러한 인식된 숫자에 기초하여, 사용자 디바이스는 후보 디스플레이 영역(806)에서 제2 인식 결과(1322)(예컨대, "Thanks 8")를 제시한다. 추가적으로, 식별된 이모지 캐릭터(예컨대, 스타일화된 "!")에 기초하여, 사용자 디바이스는 또한 이모지 캐릭터에 대응하는 정규 문자(예컨대, 정규 문자 "!")를 식별한다. 이러한 간접적으로 식별된 정규 문자에 기초하여, 사용자 디바이스는 후보 디스플레이 영역(806)에서 제3 인식 결과(1320)(예컨대, 정규 문자 "!"를 갖는 "Thanks!")를 제시한다. 이 시점에서, 사용자는 후보 인식 결과들(1318, 1320, 1322) 중 임의의 하나를 선택하여 그것을 텍스트 입력 영역(808)으로 입력할 수 있다.As illustrated in FIG. 13C , after the user inputs the handwritten word "Thanks" in the handwriting input area (806), the user then draws a stylized exclamation mark (e.g., an elongated circle with a round circle underneath) with strokes (1316) in the handwriting input area (806). The user device recognizes that the additional strokes (1316) form a recognition unit separate from other recognition units previously recognized from the accumulated handwritten strokes (1306) in the handwriting input area (806). Based on the newly input recognition unit (i.e., the recognition unit formed by the strokes (1316)), the user device identifies an emoji character (e.g., a stylized "!") using a handwriting recognition model. Based on the recognized emoji character, the user device presents a first recognition result (1318) (e.g., "Thanks!" with a stylized "!") in the candidate display area (806). Additionally, the user device also identifies a digit "8" that is visually similar to the newly input recognition unit. Based on this recognized digit, the user device presents a second recognition result (1322) (e.g., "Thanks 8") in the candidate display area (806). Additionally, based on the identified emoji character (e.g., the stylized "!"), the user device also identifies a regular character corresponding to the emoji character (e.g., the regular character "!"). Based on this indirectly identified regular character, the user device presents a third recognition result (1320) (e.g., "Thanks!" with the regular character "!") in the candidate display area (806). At this point, the user can select any one of the candidate recognition results (1318, 1320, 1322) and input it into the text input area (808).

도 13d에 도시된 바와 같이, 사용자는 계속해서 필기 입력 영역(806)에서 추가적인 필기 획들(1324)을 제공한다. 이번에, 사용자는 스타일화된 느낌표에 뒤이어 하트 심볼을 그렸다. 새로운 필기 획들(1324)에 응답하여, 사용자 디바이스는 새롭게 제공된 필기 획들(1324)이 또 다른 새로운 인식 유닛을 형성하는 것을 인식한다. 새로운 인식 유닛에 기초하여, 사용자 디바이스는 새로운 인식 유닛에 대한 후보 문자들로서 이모지 캐릭터 "♥", 및 대안적으로 숫자 "0"를 식별한다. 새로운 인식 유닛으로부터 인식된 이러한 새로운 후보 문자들에 기초하여, 사용자 디바이스는 2개의 업데이트된 후보 인식 결과들(1326, 1330)(예컨대, "Thanks !♥" 및 "Thanks 80")을 제시한다. 일부 실시예들에서, 사용자 디바이스는 식별된 이모지 캐릭터(예컨대, "♥")에 대응하는 정규 문자(들) 또는 단어(들)(예컨대, "Love")를 추가로 식별한다. 인식된 이모지 캐릭터에 대한 식별된 정규 문자(들) 또는 단어(들)에 기초하여, 사용자 디바이스는 인식된 이모지 캐릭터(들)가 대응하는 정규 문자(들) 또는 단어(들)로 대신된 제3 인식 결과(1328)를 제시한다. 도 13d에 도시된 바와 같이, 인식 결과(1328)에서, 이모지 캐릭터 "!"는 일반 느낌표 "!"로 대신되고, 이모지 캐릭터 "♥"는 정규 문자들 또는 단어 "Love"로 대신되었다.As illustrated in FIG. 13D , the user continues to provide additional handwritten strokes (1324) in the handwriting input area (806). This time, the user has drawn a heart symbol followed by a stylized exclamation mark. In response to the new handwritten strokes (1324), the user device recognizes that the newly provided handwritten strokes (1324) form another new recognition unit. Based on the new recognition unit, the user device identifies the emoji character "♥", and alternatively the number "0", as candidate characters for the new recognition unit. Based on these new candidate characters recognized from the new recognition unit, the user device presents two updated candidate recognition results (1326, 1330) (e.g., "Thanks !♥" and "Thanks 80"). In some embodiments, the user device additionally identifies regular character(s) or word(s) (e.g., "Love") corresponding to the identified emoji character (e.g., "♥"). Based on the identified regular character(s) or word(s) for the recognized emoji character, the user device presents a third recognition result (1328) in which the recognized emoji character(s) are replaced with the corresponding regular character(s) or word(s). As illustrated in FIG. 13d , in the recognition result (1328), the emoji character “!” is replaced with a general exclamation mark “!”, and the emoji character “♥” is replaced with regular characters or the word “Love”.

도 13e에 도시된 바와 같이, 사용자는 후보 인식 결과들 중 하나(예컨대, 혼합 스크립트 텍스트 "Thanks!♥"를 나타내는 후보 결과(1326))를 선택하였고, 선택된 인식 결과의 텍스트가 텍스트 입력 영역(808)으로 입력되고, 후속하여 채팅 세션의 다른 참여자에게 전송된다. 메시지 버블(1332)은 대화 패널(1302)에서의 메시지의 텍스트를 나타낸다.As illustrated in FIG. 13e, a user selects one of the candidate recognition results (e.g., a candidate result (1326) representing the mixed script text "Thanks!♥"), and the text of the selected recognition result is entered into the text input area (808) and subsequently transmitted to other participants in the chat session. The message bubble (1332) represents the text of the message in the conversation panel (1302).

도 14는 사용자가 필기 입력을 사용하여 이모지 캐릭터를 입력하는 예시적인 프로세스(1400)의 플로차트이다. 도 13a 내지 도 13e는 일부 실시예들에 따른 예시적인 프로세스(1400)를 도시한다.FIG. 14 is a flowchart of an exemplary process (1400) in which a user inputs an emoji character using handwriting input. FIGS. 13A through 13E illustrate an exemplary process (1400) according to some embodiments.

프로세스(1400)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(1402). 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 인식 모델에 기초하여, 필기 입력으로부터의 복수의 출력 문자들을 인식한다(1404). 일부 실시예들에서, 출력 문자들은 자연 인간 언어의 스크립트로부터의 적어도 제1 이모지 캐릭터(예컨대, 도 13d의 스타일화된 느낌표 "!" 또는 이모지 캐릭터 "♥") 및 적어도 제1 문자(예컨대, 도 13d의 단어 "Thanks"로부터의 문자)를 포함한다. 일부 실시예들에서, 예컨대, 도 13d에 도시된 바와 같이, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 자연 인간 언어의 스크립트로부터의 제1 이모지 캐릭터(예컨대, 도 13d의 스타일화된 느낌표 "!" 또는 이모지 캐릭터 "♥") 및 제1 문자(예컨대, 도 13d의 단어 "Thanks"로부터의 문자)를 포함하는 인식 결과(예컨대, 도 13d의 결과(1326))를 디스플레이한다(1406).In process (1400), the user device receives handwriting input from the user (1402). The handwriting input includes a plurality of handwriting strokes provided in a handwriting input area of a handwriting input interface. In some embodiments, the user device recognizes a plurality of output characters from the handwriting input based on a handwriting recognition model (1404). In some embodiments, the output characters include at least a first emoji character from a script of a natural human language (e.g., a stylized exclamation mark "!" or emoji character "♥" of FIG. 13D ) and at least a first character (e.g., a character from the word "Thanks" of FIG. 13D ). In some embodiments, for example, as illustrated in FIG. 13D , the user device displays (1406) a recognition result (e.g., result (1326) of FIG. 13D ) that includes a first emoji character from a script of natural human language (e.g., a stylized exclamation mark “!” or emoji character “♥” of FIG. 13D ) and a first character (e.g., a character from the word “Thanks” of FIG. 13D ).

일부 실시예들에서, 필기 인식 모델에 기초하여, 사용자 디바이스는 선택적으로, 필기 입력으로부터 적어도 제1 의미적 단위(예컨대, 단어 "thanks")를 인식하는데(1408), 여기서 제1 의미적 단위는 개별 인간 언어에서의 개별 의미적 뜻을 전달할 수 있는 개별 문자, 단어 또는 어구를 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력으로부터 인식되는 제1 의미적 단위(예컨대, 단어 "Thanks")와 연관된 제2 이모지 캐릭터(예컨대, "악수" 이모지 캐릭터)를 식별한다(1410). 일부 실시예들에서, 사용자 디바이스는, 필기 입력 인터페이스의 후보 디스플레이 영역에서, 제1 의미적 단위(예컨대, 단어 "Thanks")로부터 식별되는 적어도 제2 이모지 캐릭터를 포함하는 제2 인식 결과(예컨대, "악수" 이모지 캐릭터에 뒤이은 "!" 및 "♥" 이모지 캐릭터들을 나타내는 인식 결과)를 디스플레이한다(1412). 일부 실시예들에서, 제2 인식 결과를 디스플레이하는 것은 제2 인식 결과를, 적어도 제1 의미적 단위(예컨대, 단어 "Thanks")를 포함하는 제3 인식 결과(예컨대, 인식 결과 "Thanks!♥")와 동시에 디스플레이하는 것을 추가로 포함한다.In some embodiments, based on the handwriting recognition model, the user device optionally recognizes (1408) at least a first semantic unit (e.g., the word "thanks") from the handwriting input, wherein the first semantic unit comprises an individual character, word, or phrase that can convey an individual semantic meaning in a particular human language. In some embodiments, the user device identifies (1410) a second emoji character (e.g., a "handshake" emoji character) associated with the first semantic unit (e.g., the word "Thanks") recognized from the handwriting input. In some embodiments, the user device displays (1412) a second recognition result in a candidate display area of the handwriting input interface that includes at least the second emoji character identified from the first semantic unit (e.g., the word "Thanks") (e.g., a recognition result representing the "handshake" emoji character followed by "!" and "♥" emoji characters). In some embodiments, displaying the second recognition result further comprises displaying the second recognition result simultaneously with a third recognition result (e.g., the recognition result "Thanks!♥") that includes at least the first semantic unit (e.g., the word "Thanks").

일부 실시예들에서, 사용자는 후보 디스플레이 영역에서 디스플레이되는 제1 인식 결과를 선택하는 사용자 입력을 수신한다. 일부 실시예들에서, 사용자 디바이스는, 사용자 입력에 응답하여, 필기 입력 인터페이스의 텍스트 입력 영역에서 선택된 제1 인식 결과의 텍스트를 입력하고, 여기서 텍스트는 적어도 자연 인간 언어의 스크립트로부터의 제1 이모지 캐릭터 및 제1 문자를 포함한다. 다시 말하면, 사용자는 자연 언어 키보드와 이모지 캐릭터 키보드 사이의 전환 없이, 필기 입력 영역에서 단일 필기 입력(비록 다수의 획들을 포함하는 필기 입력일지라도)을 사용하여 혼합 스크립트 텍스트 입력을 입력할 수 있다.In some embodiments, the user receives user input selecting a first recognition result to be displayed in the candidate display area. In some embodiments, the user device, in response to the user input, enters text of the selected first recognition result in a text input area of the handwriting input interface, wherein the text includes at least a first emoji character and a first character from a script of a natural human language. In other words, the user can input mixed-script text input using a single handwriting input (even if the handwriting input includes multiple strokes) in the handwriting input area without switching between a natural language keyboard and an emoji character keyboard.

일부 실시예들에서, 필기 인식 모델은 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 기입 샘플들을 포함하는 멀티스크립트 훈련 코퍼스에 대해 훈련되었고, 3개의 비중첩 스크립트들은 이모지 캐릭터들, 한자들, 및 라틴어 스크립트의 세트를 포함한다.In some embodiments, the handwriting recognition model is trained on a multi-script training corpus including writing samples corresponding to characters in at least three non-overlapping scripts, the three non-overlapping scripts including a set of emoji characters, Chinese characters, and a Latin script.

일부 실시예들에서, 사용자 디바이스는 필기 입력으로부터 직접 인식되는 제1 이모지 캐릭터(예컨대, "♥" 이모지 캐릭터)에 대응하는 제2 의미적 단위(예컨대, 단어 "Love")를 식별한다(1414). 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서, 제1 이모지 캐릭터(예컨대, "♥" 이모지 캐릭터)로부터 식별되는 적어도 제2 의미적 단위(예컨대, 단어 "Love")를 포함하는 제4 인식 결과(예컨대, 도 13d의 1328)를 디스플레이한다(1416). 일부 실시예들에서, 도 13d에 도시된 바와 같이, 사용자 디바이스는 후보 디스플레이 영역에서 제4 인식 결과(예컨대, 결과(1328) "Thanks! Love")를, 제1 인식 결과(예컨대, 결과 "Thanks♥!")와 동시에 디스플레이한다.In some embodiments, the user device identifies (1414) a second semantic unit (e.g., the word "Love") corresponding to a first emoji character (e.g., the "♥" emoji character) recognized directly from the handwriting input. In some embodiments, the user device displays (1416) a fourth recognition result (e.g., 1328 of FIG. 13D ) in the candidate display area of the handwriting input interface that includes at least the second semantic unit (e.g., the word "Love") identified from the first emoji character (e.g., the "♥" emoji character). In some embodiments, as illustrated in FIG. 13D , the user device displays the fourth recognition result (e.g., result (1328) "Thanks! Love") in the candidate display area simultaneously with the first recognition result (e.g., result "Thanks♥!").

일부 실시예들에서, 사용자 디바이스는 사용자가 이모지 캐릭터를 그림으로써 정규 텍스트를 입력할 수 있게 한다. 예를 들어, 사용자가 단어 "elephant"를 철자하는 방식을 모를 경우, 사용자는 선택적으로 필기 입력 영역에서 "elephant"에 대한 스타일화된 이모지 캐릭터를 그리고, 사용자 디바이스가 필기 입력을 "elephant"에 대한 이모지 캐릭터로서 정확하게 인식할 수 있는 경우, 사용자 디바이스는 선택적으로 또한 후보 디스플레이 영역에서 디스플레이된 인식 결과들 중 하나로서 일반 텍스트의 단어 "elephant"를 제시한다. 다른 예에서, 사용자는 한자 "猫"를 기입하는 대신에, 필기 입력 영역에서 스타일화된 고양이를 그릴 수 있다. 사용자 디바이스가 사용자에 의해 제공된 필기 입력에 기초하여 "고양이"에 대한 이모지 캐릭터를 식별하면, 사용자 디바이스는 선택적으로 또한 후보 인식 결과들에서 "고양이"에 대한 이모지 캐릭터와 함께, 중국어로 "고양이"를 의미하는 한자 "猫"를 제시한다. 인식된 이모지 캐릭터에 대한 일반 텍스트를 제시함으로써, 사용자 디바이스는 잘 알려진 이모지 캐릭터와 통상 연관된 수 개의 스타일화된 획들을 사용하여 복잡한 문자들 또는 단어들을 입력하는 대안적인 방식을 제공한다. 일부 실시예들에서, 사용자 디바이스는 이모지 캐릭터들을, 하나 이상의 바람직한 스크립트들 또는 언어들(예컨대, 영어 또는 중국어)에서의 그들의 대응하는 일반 텍스트(예컨대, 문자들, 단어들, 어구들, 심볼들 등)와 링크시키는 사전을 저장한다.In some embodiments, the user device allows the user to input regular text by drawing an emoji character. For example, if the user does not know how to spell the word "elephant," the user may optionally draw a stylized emoji character for "elephant" in the handwriting input area, and if the user device can accurately recognize the handwriting input as an emoji character for "elephant," the user device optionally also presents the word "elephant" in plain text as one of the recognition results displayed in the candidate display area. In another example, instead of writing the Chinese character "猫," the user may draw a stylized cat in the handwriting input area. If the user device identifies an emoji character for "cat" based on the handwriting input provided by the user, the user device optionally also presents the Chinese character "猫" for "cat" in the candidate recognition results along with the emoji character for "cat." By presenting plain text for recognized emoji characters, the user device provides an alternative way to input complex characters or words using a few stylized strokes commonly associated with well-known emoji characters. In some embodiments, the user device stores a dictionary that links emoji characters to their corresponding plain text (e.g., characters, words, phrases, symbols, etc.) in one or more preferred scripts or languages (e.g., English or Chinese).

일부 실시예들에서, 사용자 디바이스는 필기 입력으로부터 생성된 이미지에 대한 이모지 캐릭터의 시각적 유사성에 기초하여 이모지 캐릭터를 인식한다. 일부 실시예들에서, 필기 입력으로부터 이모지 캐릭터들의 인식을 가능하게 하기 위해, 사용자 디바이스 상에서 사용되는 필기 인식 모델은, 자연 인간 언어의 스크립트의 문자들에 대응하는 필기 샘플들 및 또한 인공적으로 설계된 이모지 캐릭터들의 세트에 대응하는 필기 샘플들 둘 모두를 포함하는 훈련 코퍼스를 사용하여 훈련된다. 일부 실시예들에서, 동일한 의미적 개념에 관련된 이모지 캐릭터들은, 상이한 자연 언어들의 텍스트로 혼합된 입력에서 사용될 때 상이한 외관을 가질 수 있다. 예를 들어, "Love"의 의미적 개념에 대한 이모지 캐릭터는 하나의 자연 언어(예컨대, 일본어)의 일반 텍스트로 제시될 때 "하트" 이모지 캐릭터이며 다른 자연 언어(예컨대, 영어 또는 프랑스어)의 일반 텍스트로 제시될 때 "키스" 이모지 캐릭터일 수 있다.In some embodiments, the user device recognizes an emoji character based on the visual similarity of the emoji character to an image generated from the handwriting input. In some embodiments, to enable recognition of emoji characters from the handwriting input, the handwriting recognition model used on the user device is trained using a training corpus that includes both handwriting samples corresponding to characters of a natural human language script and also handwriting samples corresponding to a set of artificially designed emoji characters. In some embodiments, emoji characters associated with the same semantic concept may have different appearances when used in mixed input with text from different natural languages. For example, an emoji character for the semantic concept of "Love" may be a "heart" emoji character when presented in plain text in one natural language (e.g., Japanese) and a "kiss" emoji character when presented in plain text in another natural language (e.g., English or French).

본 명세서에 설명되는 바와 같이, 다문자 필기 입력의 인식을 수행할 때, 필기 입력 모듈은 필기 입력 영역에서 현재 누적된 필기 입력의 분할을 수행하고, 누적된 획들을 하나 이상의 인식 유닛들로 나눈다. 필기 입력을 분할하는 방식을 결정하기 위해 사용되는 파라미터들 중 하나는 획들이 필기 입력 영역에서 클러스터링되는 방식 및 획들의 상이한 클러스터들 간의 거리일 수 있다. 지금까지 사람들은 상이한 서체들을 갖는다. 몇몇 사람들은 획들 또는 동일한 문자의 상이한 부분들 사이에 큰 거리를 두고 매우 듬성듬성 기입하는 경향이 있는 반면에, 다른 사람들은 획들 또는 상이한 문자들 사이에 매우 작은 거리를 두고 매우 빽빽하게 기입하는 경향이 있다. 심지어 동일한 사용자의 경우에도, 불완전한 계획으로 인해, 필기 문자는 균형잡힌 외관으로부터 벗어날 수 있고, 상이한 방식들로 한쪽으로 치우치거나, 늘어나 있거나, 또는 압착될 수 있다. 본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 획 순서 독립적인 인식을 제공하므로, 사용자는 문자들 또는 문자들의 부분들을 비순서적으로 기입할 수 있다. 결과적으로, 문자들 간에 필기 입력에서의 공간 균일성 및 균형을 획득하기 어려울 수 있다.As described herein, when performing recognition of multi-character handwriting input, the handwriting input module performs segmentation of the currently accumulated handwriting input in the handwriting input area and divides the accumulated strokes into one or more recognition units. One of the parameters used to determine how to segment the handwriting input may be the way in which strokes are clustered in the handwriting input area and the distance between different clusters of strokes. People have different fonts. Some people tend to write very sparsely with a large distance between strokes or different parts of the same character, while others tend to write very densely with a very small distance between strokes or different characters. Even for the same user, due to imperfect planning, the handwriting characters may deviate from a balanced appearance and may be lopsided, stretched, or compressed in different ways. As described herein, the multi-script handwriting recognition model provides stroke order-independent recognition, so that the user can write characters or parts of characters out of order. As a result, it may be difficult to achieve spatial uniformity and balance between characters in handwriting input.

일부 실시예들에서, 본 명세서에 설명되는 필기 입력 모델은 사용자가 2개의 인접 인식 유닛들을 단일 인식 유닛으로 병합할지 또는 단일 인식 유닛을 2개의 별도의 인식 유닛들로 나눌지를 필기 입력 모듈에 통지하는 방식을 제공한다. 사용자의 도움으로, 필기 입력 모듈은 초기 분할을 개정할 수 있고, 사용자에 의해 의도된 결과를 생성할 수 있다.In some embodiments, the handwriting input model described herein provides a way for a user to inform the handwriting input module whether to merge two adjacent recognition units into a single recognition unit or to split the single recognition unit into two separate recognition units. With the user's assistance, the handwriting input module can revise the initial segmentation and produce the result intended by the user.

도 15a 내지 도 15j는 사용자가 사전결정된 핀치 및 팽창 제스처들을 제공하여 사용자 디바이스에 의해 식별된 인식 유닛들을 수정하는 일부 예시적인 사용자 인터페이스들 및 프로세스들을 도시한다.Figures 15a through 15j illustrate some exemplary user interfaces and processes through which a user provides predetermined pinch and expand gestures to modify recognition units identified by a user device.

도 15a 및 도 15b에 도시된 바와 같이, 사용자는 필기 입력 인터페이스(802)의 필기 입력 영역(806)에서 복수의 필기 획들(1502)(예컨대, 3개의 획들)을 입력하였다. 사용자 디바이스는 현재 누적된 필기 획들(1502)에 기초하여 단일 인식 유닛을 식별하였고, 후보 디스플레이 영역(806)에서 3개의 후보 문자들(1504, 1506, 1508)(예컨대, 각각 "巾", "中", 및 "")을 제시하였다.As illustrated in FIGS. 15A and 15B , a user inputs multiple handwritten strokes (1502) (e.g., three strokes) in a handwritten input area (806) of a handwritten input interface (802). The user device identifies a single recognition unit based on the currently accumulated handwritten strokes (1502) and displays three candidate characters (1504, 1506, 1508) (e.g., “巾”, “中”, and “ ") was presented.

도 15c는 필기 입력 영역(606)에서 초기 필기 획들(1502)의 오른쪽에 수 개의 추가적인 획들(1510)을 추가로 입력하였다. 사용자 디바이스는 획들(1502) 및 획들(1510)이 2개의 별도의 인식 유닛들로서 간주되어야 한다고 (예컨대, 복수의 획들(1502, 1510)의 치수들 및 공간 분포들에 기초하여) 결정한다. 인식 유닛들의 나눔에 기초하여, 사용자 디바이스는 제1 및 제2 인식 유닛들의 입력 이미지들을 필기 인식 모델로 제공하고, 후보 문자들의 2개의 세트들을 획득한다. 그 후에, 사용자 디바이스는 인식된 문자들의 상이한 조합들에 기초하여 복수의 인식 결과들(예컨대, 1512, 1514, 1516, 1518)을 생성한다. 각 인식 결과는 제1 인식 유닛에 대한 인식된 문자, 및 제2 인식 유닛에 대한 인식된 문자를 포함한다. 도 15c에 도시된 바와 같이, 복수의 인식 결과들(1512, 1514, 1516, 1518) 각각은 2개의 인식된 문자들을 포함한다.FIG. 15c shows that several additional strokes (1510) are additionally entered to the right of the initial handwritten strokes (1502) in the handwriting input area (606). The user device determines (e.g., based on the dimensions and spatial distributions of the plurality of strokes (1502, 1510)) that the strokes (1502) and the strokes (1510) should be considered as two separate recognition units. Based on the division of the recognition units, the user device provides the input images of the first and second recognition units to the handwriting recognition model, and obtains two sets of candidate characters. Thereafter, the user device generates a plurality of recognition results (e.g., 1512, 1514, 1516, 1518) based on different combinations of the recognized characters. Each recognition result includes a recognized character for the first recognition unit and a recognized character for the second recognition unit. As illustrated in FIG. 15c, each of the plurality of recognition results (1512, 1514, 1516, 1518) includes two recognized characters.

이러한 예에서, 사용자가 사실은 단일 문자로서 인식될 필기 입력을 의도하였지만, 무심코 필기 문자(예컨대, "帽")의 왼쪽 부분(예컨대, 왼쪽 부수 "巾")과 오른쪽 부분(예컨대, 오른쪽 부수 "冒") 사이에 너무 큰 공간을 두었다고 가정한다. 후보 디스플레이 영역(806)에 제시된 결과들(예컨대, 1512, 1514, 1516, 1518)을 보면, 사용자는 사용자 디바이스가 현재 필기 입력을 2개의 인식 유닛들로 틀리게 분할하였음을 알아차릴 것이다.In this example, assume that the user actually intended the handwriting input to be recognized as a single character, but inadvertently placed too much space between the left portion (e.g., the left radical "巾") and the right portion (e.g., the right radical "冒") of the handwriting character (e.g., "帽"). Upon viewing the results presented in the candidate display area (806) (e.g., 1512, 1514, 1516, 1518), the user will notice that the user device incorrectly segmented the current handwriting input into two recognition units.

분할은 객관적인 표준에 기초할 수 있지만, 사용자가 현재 필기 입력을 삭제하고 다시 왼쪽 부분과 오른쪽 부분 사이에 더 작은 거리를 두고 전체 문자를 재기입하는 것은 바람직하지 않을 것이다.Segmentation may be based on objective criteria, but it would be undesirable for the user to delete the current handwriting input and re-enter the entire character with a smaller distance between the left and right portions.

그 대신에, 도 15d에 도시된 바와 같이, 사용자는 필기 입력 모듈에 의해 식별된 2개의 인식 유닛들이 단일 인식 유닛으로서 병합되어야 함을 필기 입력 모듈에 지시하기 위해 필기 획들(1502, 1510)의 2개의 클러스터들 위에서 핀치 제스처를 이용한다. 핀치 제스처는 터치 감응 표면 상에서 서로를 향해 이동되는 2개의 접촉들(1520, 1522)에 의해 지시된다.Instead, as illustrated in FIG. 15d , the user uses a pinch gesture over two clusters of handwritten strokes (1502, 1510) to instruct the handwriting input module that the two recognition units identified by the handwriting input module should be merged into a single recognition unit. The pinch gesture is indicated by two contacts (1520, 1522) moving toward each other on the touch-sensitive surface.

도 15e는, 사용자의 핀치 제스처에 응답하여, 사용자 디바이스가 현재 누적된 필기 입력(예컨대, 획들(1502, 1510))의 분할을 개정하고 필기 획들을 단일 인식 유닛으로 병합하였음을 도시한다. 도 15e에 도시된 바와 같이, 사용자 디바이스는 개정된 인식 유닛에 기초한 입력 이미지를 필기 인식 모델로 제공하고, 개정된 인식 유닛에 대한 3개의 새로운 후보 문자들(1524, 1526, 1528)(예컨대, "帽", "", 및 "搢")을 획득하였다. 일부 실시예들에서, 도 15e에 도시된 바와 같이, 사용자 디바이스는 선택적으로 필기 획들의 왼쪽 클러스터와 오른쪽 클러스터 사이의 거리가 감소되도록 필기 입력 영역(806) 내의 필기 입력의 렌더링을 조정한다. 일부 실시예들에서, 사용자 디바이스는 핀치 제스처에 응답하여 필기 입력 영역(608)에 나타낸 필기 입력의 렌더링을 변경하지 않는다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역(806)에서 검출된 (하나의 단일 접촉에 대조적으로) 2개의 동시 접촉들에 기초하여 입력 획으로부터 핀치 제스처를 구별한다.FIG. 15e illustrates that, in response to the user's pinch gesture, the user device revises the segmentation of the currently accumulated handwriting input (e.g., strokes (1502, 1510)) and merges the handwriting strokes into a single recognition unit. As illustrated in FIG. 15e, the user device provides an input image based on the revised recognition unit to the handwriting recognition model, and generates three new candidate characters (1524, 1526, 1528) for the revised recognition unit (e.g., "帽", " ", and "搢") were acquired. In some embodiments, as illustrated in FIG. 15E , the user device optionally adjusts the rendering of the handwriting input within the handwriting input area (806) to reduce the distance between the left cluster and the right cluster of handwriting strokes. In some embodiments, the user device does not change the rendering of the handwriting input displayed in the handwriting input area (608) in response to the pinch gesture. In some embodiments, the user device distinguishes a pinch gesture from an input stroke based on two simultaneous contacts (as opposed to one single contact) detected in the handwriting input area (806).

도 15f에 도시된 바와 같이, 사용자는 이전에 입력된 필기 입력(즉, 문자 "帽"에 대한 획들)의 오른쪽에 획들(1530)을 2개 더 입력하였다. 사용자 디바이스는 새롭게 입력된 획들(1530)이 새로운 인식 유닛임을 결정하고, 새롭게 식별된 인식 유닛에 대한 후보 문자(예컨대, "子")를 인식한다. 그 후에, 사용자 디바이스는 새롭게 식별된 문자(예컨대, "子")를 먼저 식별된 인식 유닛에 대한 후보 문자들과 조합하고, 후보 디스플레이 영역(806)에서 다수의 상이한 인식 결과들 (예컨대, 결과들(1532, 1534))을 제시한다.As illustrated in FIG. 15f, the user inputs two additional strokes (1530) to the right of the previously input handwriting input (i.e., the strokes for the character “帽”). The user device determines that the newly input strokes (1530) are a new recognition unit, and recognizes a candidate character (e.g., “子”) for the newly identified recognition unit. Thereafter, the user device combines the newly identified character (e.g., “子”) with the candidate characters for the previously identified recognition unit, and presents a number of different recognition results (e.g., results (1532, 1534)) in the candidate display area (806).

도 15g에 도시된 바와 같이, 필기 획들(1530)에 뒤이어서, 사용자는 계속해서 획들(1530)의 오른쪽에 획들(1536)을 더(예컨대, 획들을 3개 더) 기입한다. 획들(1530)과 획들(1536) 사이의 수평 거리가 매우 작기 때문에, 사용자 디바이스는 획들(1530) 및 획들(1536)이 동일한 인식 유닛에 속한다고 결정하고, 획들(1530, 1536)에 의해 형성된 입력 이미지를 필기 인식 모델로 제공한다. 필기 인식 모델은 개정된 인식 유닛에 대한 3개의 상이한 후보 문자들을 식별하고, 현재 누적된 필기 입력에 대한 2개의 개정된 인식 결과들(1538, 1540)을 생성한다.As illustrated in FIG. 15g, following the handwritten strokes (1530), the user continues to write more strokes (1536) to the right of the strokes (1530) (e.g., three more strokes). Since the horizontal distance between the strokes (1530) and the strokes (1536) is very small, the user device determines that the strokes (1530) and the strokes (1536) belong to the same recognition unit, and provides the input image formed by the strokes (1530, 1536) to the handwriting recognition model. The handwriting recognition model identifies three different candidate characters for the revised recognition unit, and generates two revised recognition results (1538, 1540) for the currently accumulated handwriting input.

이러한 예에서, 마지막 2개 세트의 획들(1530, 1536)이 사실은 2개의 별도의 문자들(예컨대, "子" 및 "±")로서 의도되었다고 가정한다. 사용자 디바이스가 2개 세트들의 획들(1530, 1536)을 단일 인식 유닛으로 틀리게 조합하였음을 사용자가 알아낸 후에, 사용자는 2개 세트의 획들(1530, 1536)이 2개의 별도의 인식 유닛들로 나눠져야 함을 사용자 디바이스에 통지하기 위해 팽창 제스처를 제공하도록 진행한다. 도 15h에 도시된 바와 같이, 사용자는 획들(1530, 1536) 주위에 2개의 접촉들(1542, 1544)을 취한 후에, 2개의 접촉들을 일반적으로 수평 방향으로 (즉, 디폴트 기입 방향을 따라) 서로로부터 멀리 이동시킨다.In this example, assume that the last two sets of strokes (1530, 1536) were in fact intended as two separate characters (e.g., "子" and "±"). After the user determines that the user device has erroneously combined the two sets of strokes (1530, 1536) into a single recognition unit, the user proceeds to provide an expansion gesture to notify the user device that the two sets of strokes (1530, 1536) should be split into two separate recognition units. As illustrated in FIG. 15h , the user makes two contacts (1542, 1544) around the strokes (1530, 1536), and then moves the two contacts away from each other, generally in a horizontal direction (i.e., along the default writing direction).

도 15i는, 사용자의 팽창 제스처에 응답하여, 사용자 디바이스가 현재 누적된 필기 입력의 이전의 분할을 개정하고 획들(1530) 및 획들(1536)을 2개의 연속 인식 유닛들로 배정한 것을 도시한다. 2개의 별도의 인식 유닛들에 대해 생성된 입력 이미지들에 기초하여, 사용자 디바이스는 획들(1530)에 기초한 제1 인식 유닛에 대한 하나 이상의 후보 문자들, 및 획들(1536)에 기초한 제2 인식 유닛에 대한 하나 이상의 후보 문자들을 식별한다. 그 후에, 사용자 디바이스는 인식된 문자들의 상이한 조합들에 기초하여 2개의 새로운 인식 결과들(1546, 1548)을 생성한다. 일부 실시예들에서, 사용자 디바이스는 선택적으로 획들(1536, 1536)의 렌더링을 수정하여 이전에 식별된 인식 유닛의 나눔을 반영한다.FIG. 15i illustrates that, in response to the user's expansion gesture, the user device revises a previous segmentation of the currently accumulated handwriting input and assigns strokes (1530) and strokes (1536) into two consecutive recognition units. Based on the input images generated for the two separate recognition units, the user device identifies one or more candidate characters for a first recognition unit based on the strokes (1530) and one or more candidate characters for a second recognition unit based on the strokes (1536). The user device then generates two new recognition results (1546, 1548) based on different combinations of the recognized characters. In some embodiments, the user device optionally modifies the rendering of the strokes (1536, 1536) to reflect the division of the previously identified recognition units.

도 15j 및 도 15k에 도시된 바와 같이, 사용자는 후보 디스플레이 영역(806)에 디스플레이된 후보 인식 결과들 중 하나를 (접촉(1550)에 의해 지시되는 바와 같이) 선택하였고, 선택된 인식 결과(예컨대, 결과(1548))는 사용자 인터페이스의 텍스트 입력 영역(808)에서 입력되었다. 선택된 인식 결과가 텍스트 입력 영역(808)으로 입력된 후에, 후보 디스플레이 영역(806) 및 필기 입력 영역(804)은 둘 모두 클리어되고 후속 사용자 입력을 디스플레이할 준비를 한다.As illustrated in FIGS. 15j and 15k , a user has selected one of the candidate recognition results displayed in the candidate display area (806) (as indicated by the contact (1550)), and the selected recognition result (e.g., result (1548)) has been entered into the text input area (808) of the user interface. After the selected recognition result has been entered into the text input area (808), both the candidate display area (806) and the handwriting input area (804) are cleared and ready to display subsequent user input.

도 16a 및 도 16b는 사용자가 사전결정된 제스처 (예컨대, 핀치 제스처 및/또는 팽창 제스처)를 이용하여 현재 필기 입력의 기존의 분할을 분할하거나 또는 개정하는 방식을 필기 입력 모듈에 통지하는 예시적인 프로세스(1600)의 플로차트들이다. 도 15j 및 도 15k는 일부 실시예들에 따른 예시적인 프로세스(1600)의 예시를 제공한다.FIGS. 16A and 16B are flowcharts of an exemplary process (1600) in which a user notifies a handwriting input module of how to segment or revise an existing segment of a current handwriting input using a predetermined gesture (e.g., a pinch gesture and/or an expand gesture). FIGS. 15J and 15K provide examples of an exemplary process (1600) according to some embodiments.

일부 실시예들에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(1602). 필기 입력은 디바이스에 결합된 터치 감응 표면에서 제공되는 복수의 필기 획들을 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 필기 입력 영역(예컨대, 도 15a 내지 도 15k의 필기 입력 영역(806))에서 복수의 필기 획들을 실시간으로 렌더링한다(1604). 예컨대, 도 15d 및 도 15h에 도시된 바와 같이, 사용자 디바이스는 복수의 필기 획들에 대한 핀치 제스처 입력 및 팽창 제스처 입력 중 하나를 수신한다.In some embodiments, the user device receives handwriting input from the user (1602). The handwriting input comprises a plurality of handwriting strokes provided on a touch-sensitive surface coupled to the device. In some embodiments, the user device renders the plurality of handwriting strokes in real time (1604) in a handwriting input area of a handwriting input interface (e.g., handwriting input area (806) of FIGS. 15A-15K ). For example, as illustrated in FIGS. 15D and 15H , the user device receives one of a pinch gesture input and an expand gesture input for the plurality of handwriting strokes.

일부 실시예들에서, 예컨대, 도 15c 내지 도 15e에 도시된 바와 같이, 사용자 디바이스는, 핀치 제스처 입력을 수신할 시에, 복수의 필기 획들을 단일 인식 유닛으로서 처리함으로써 복수의 필기 획들에 기초하여 제1 인식 결과를 생성한다(1606).In some embodiments, for example, as illustrated in FIGS. 15C to 15E , upon receiving a pinch gesture input, the user device generates a first recognition result based on the plurality of handwritten strokes by processing the plurality of handwritten strokes as a single recognition unit (1606).

일부 실시예들에서, 예컨대, 도 15g 내지 도 15i에 도시된 바와 같이, 사용자 디바이스는, 팽창 제스처 입력을 수신할 시에, 복수의 필기 획들을 팽창 제스처 입력에 의해 떼어내진 2개의 별도의 인식 유닛들로서 처리함으로써 복수의 필기 획들에 기초하여 제2 인식 결과를 생성한다(1608).In some embodiments, for example, as illustrated in FIGS. 15g-15i , upon receiving an expansion gesture input, the user device generates a second recognition result based on the plurality of handwritten strokes by processing the plurality of handwritten strokes as two separate recognition units separated by the expansion gesture input (1608).

일부 실시예들에서, 예컨대, 도 15e 및 도 15i에 도시된 바와 같이, 사용자 디바이스는, 제1 인식 결과 및 제2 인식 결과의 개별 인식 결과를 생성할 시에, 필기 입력 인터페이스의 후보 디스플레이 영역에서 생성된 인식 결과를 디스플레이한다.In some embodiments, for example, as illustrated in FIGS. 15E and 15I , the user device, when generating individual recognition results of the first recognition result and the second recognition result, displays the generated recognition results in the candidate display area of the handwriting input interface.

일부 실시예들에서, 핀치 제스처 입력은 터치 감응 표면 상에 복수의 필기 획들에 의해 점유되는 영역에서 서로를 향해 모여드는 2개의 동시 접촉들을 포함한다. 일부 실시예들에서, 팽창 제스처 입력은 터치 감응 표면 상에 복수의 필기 획들에 의해 점유되는 영역에서 서로로부터 떠나는 2개의 동시 접촉들을 포함한다.In some embodiments, a pinch gesture input comprises two simultaneous contacts moving toward each other in an area occupied by multiple handwritten strokes on the touch-sensitive surface. In some embodiments, an expand gesture input comprises two simultaneous contacts moving away from each other in an area occupied by multiple handwritten strokes on the touch-sensitive surface.

일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들로부터 2개의 인접 인식 유닛들을 식별한다(예컨대, 1614). 예컨대, 도 15c에 도시된 바와 같이, 사용자 디바이스는, 후보 디스플레이 영역에서, 2개의 인접 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 초기 인식 결과(예컨대, 도 15c의 결과들(1512, 1514, 1516, 1518))를 디스플레이한다(1616). 일부 실시예들에서, 핀치 제스처에 응답하여 제1 인식 결과(예컨대, 도 15e의 결과(1524, 1526, 또는 1528))를 디스플레이할 때, 사용자 디바이스는 후보 디스플레이 영역에서 초기 인식 결과를 제1 인식 결과로 대신한다(1618). 일부 실시예들에서, 도 15d에 도시된 바와 같이, 사용자 디바이스는 초기 인식 결과가 후보 디스플레이 영역에서 디스플레이되는 동안 핀치 제스처 입력을 수신한다(1620). 일부 실시예들에서, 예컨대, 도 15e에 도시된 바와 같이, 사용자 디바이스는, 핀치 제스처 입력에 응답하여, 필기 입력 영역에서 2개의 인접 인식 유닛들 사이의 거리를 감소시키도록 복수의 필기 획들을 리렌더링한다(1622).In some embodiments, the user device identifies two adjacent recognition units from the plurality of handwritten strokes (e.g., 1614). For example, as illustrated in FIG. 15C , the user device displays (1616) an initial recognition result in the candidate display area that includes individual characters recognized from the two adjacent recognition units (e.g., results (1512, 1514, 1516, 1518) of FIG. 15C ). In some embodiments, when displaying a first recognition result (e.g., results (1524, 1526, or 1528) of FIG. 15E ) in response to the pinch gesture, the user device replaces the initial recognition result with the first recognition result in the candidate display area (1618). In some embodiments, as illustrated in FIG. 15D , the user device receives (1620) a pinch gesture input while the initial recognition result is displayed in the candidate display area. In some embodiments, for example, as illustrated in FIG. 15E , the user device, in response to a pinch gesture input, re-renders a plurality of handwritten strokes (1622) to reduce a distance between two adjacent recognition units in the handwriting input area.

일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들로부터 단일 인식 유닛을 식별한다(1624). 사용자 디바이스는 후보 디스플레이 영역에서, 단일 인식 유닛으로부터 인식되는 문자(예컨대, "" "祉")를 포함하는 초기 인식 결과(예컨대, 도 15g의 결과(1538 또는 1540))를 디스플레이한다(1626). 일부 실시예들에서, 예컨대, 도 15h 및 도 15i에 도시된 바와 같이, 팽창 제스처에 응답하여 제2 인식 결과(예컨대, 도 15i의 결과(1546 또는 1548))를 디스플레이할 때, 사용자 디바이스는 후보 디스플레이 영역에서 초기 인식 결과(예컨대, 결과(1538 또는 1540))를 제2 인식 결과(예컨대, 결과(1546 또는 1548))로 대신한다(1628). 일부 실시예들에서, 도 15h에 도시된 바와 같이, 사용자 디바이스는 초기 인식 결과가 후보 디스플레이 영역에서 디스플레이되는 동안 팽창 제스처 입력을 수신한다(1630). 일부 실시예들에서, 도 15h 및 도 15i에 도시된 바와 같이, 사용자 디바이스는, 팽창 제스처 입력에 응답하여, 필기 입력 영역에서 제1 인식 유닛에 배정되는 획들의 제1 서브세트와 제2 인식 유닛에 배정되는 필기 획들의 제2 서브세트 사이의 거리를 증가시키도록 복수의 필기 획들을 리렌더링한다(1632).In some embodiments, the user device identifies a single recognition unit from a plurality of handwritten strokes (1624). The user device displays, in the candidate display area, a character recognized from the single recognition unit (e.g., " ""祉" is displayed (1626) an initial recognition result (e.g., result (1538 or 1540) of FIG. 15g) including the word "祉". In some embodiments, when displaying a second recognition result (e.g., result (1546 or 1548) of FIG. 15i) in response to the expansion gesture, as illustrated in FIGS. 15h and 15i , the user device replaces the initial recognition result (e.g., result (1538 or 1540)) with the second recognition result (e.g., result (1546 or 1548)) in the candidate display area (1628). In some embodiments, as illustrated in FIG. 15h , the user device receives an expansion gesture input (1630) while the initial recognition result is displayed in the candidate display area. In some embodiments, as illustrated in FIGS. 15h and 15i , the user device, in response to the expansion gesture input, displays a first recognition result in the handwriting input area. Re-render a plurality of handwritten strokes to increase the distance between a first subset of strokes assigned to a unit and a second subset of handwritten strokes assigned to a second recognition unit (1632).

일부 실시예들에서, 사용자는 선택적으로, 사용자가 획들을 제공하고 표준 분할 프로세스에 기초한 정확한 분할을 하기에는 획들이 너무 퍼져 있을 수 있음을 알아차린 직후에, 복수의 획들을 단일 인식 유닛으로서 처리하는 것을 사용자 디바이스에 통지하기 위해 핀치 제스처를 제공한다. 사용자 디바이스는 핀치 제스처 시에 존재하는 2개의 동시 접촉들에 기초하여 정규 획으로부터 핀치 제스처를 구별할 수 있다. 유사하게, 일부 실시예들에서, 사용자는 선택적으로, 사용자가 획들을 제공하고 표준 분할 프로세스에 기초한 정확한 분할을 하기에는 획들이 너무 함께 가까이 있을 수 있음을 알아차린 직후에, 복수의 획들을 2개의 별도의 인식 유닛들로서 처리하는 것을 사용자 디바이스에 통지하기 위해 팽창 제스처를 제공한다. 사용자 디바이스는 핀치 제스처 시에 존재하는 2개의 동시 접촉들에 기초하여 정규 획으로부터 팽창 제스처를 구별할 수 있다.In some embodiments, the user optionally provides a pinch gesture to notify the user device to treat the multiple strokes as a single recognition unit, immediately after the user provides the strokes and notices that the strokes may be too spread out for accurate segmentation based on standard segmentation processes. The user device can distinguish a pinch gesture from a regular stroke based on two simultaneous contacts present during the pinch gesture. Similarly, in some embodiments, the user optionally provides a dilate gesture to notify the user device to treat the multiple strokes as two separate recognition units, immediately after the user provides the strokes and notices that the strokes may be too close together for accurate segmentation based on standard segmentation processes. The user device can distinguish a dilate gesture from a regular stroke based on two simultaneous contacts present during the pinch gesture.

일부 실시예들에서, 핀치 또는 팽창 제스처의 이동 방향은 선택적으로 제스처 하에서 획들을 분할하는 방식에 대한 추가적인 안내를 제공하기 위해 사용된다. 예를 들어, 필기 입력 영역에 대해 멀티라인 필기 입력이 가능하게 된 경우, 수직 방향으로 이동하는 2개의 접촉들을 갖는 핀치 제스처는 2개의 인접 라인들에서 식별되는 2개의 인식 유닛들을 단일 인식 유닛으로 (예컨대, 위 부수 및 아래 부수로서) 병합하는 것을 필기 입력 모듈에 통지할 수 있다. 유사하게, 수직 방향으로 이동하는 2개의 접촉들을 갖는 팽창 제스처는 2개의 인접 라인들에서 단일 인식 유닛을 2개의 인식 유닛들로 나누는 것을 필기 입력 모듈에 통지할 수 있다. 일부 실시예들에서, 핀치 및 팽창 제스처들은 또한 문자 입력의 하위 부분에서의 분할 안내, 예컨대, 복합 문자의 상이한 부분들(예컨대, 위, 아래, 왼쪽 또는 오른쪽 부분들)에 있어서, 복합 문자(,등)에서 2개의 하위 구성요소들을 병합하거나 또는 단일 구성요소를 나누는 것을 제공할 수 있다. 이것은, 사용자들이 손으로 복잡한 복합 문자를 기입할 때 정확한 비율들 및 균형을 잃는 경향이 있기 때문에, 복잡한 복합 한자들을 인식하는 데 특히 도움이 된다. 필기 입력의 완료 후에, 예컨대, 핀치 및 팽창 제스처들에 의해, 필기 입력의 비율들 및 균형을 조정할 수 있는 것은, 정확한 비율들 및 균형으로 되도록 여러 가지 시도를 하지 않고도 사용자가 정확한 문자를 입력하는 데 특히 도움이 된다.In some embodiments, the direction of movement of the pinch or expand gesture is optionally used to provide additional guidance as to how to segment strokes under the gesture. For example, if multi-line handwriting input is enabled for the handwriting input area, a pinch gesture with two contacts moving in a vertical direction may notify the handwriting input module to merge two recognition units identified in two adjacent lines into a single recognition unit (e.g., as an upper radical and a lower radical). Similarly, an expand gesture with two contacts moving in a vertical direction may notify the handwriting input module to split a single recognition unit into two recognition units in two adjacent lines. In some embodiments, the pinch and expand gestures may also provide guidance for segmenting sub-portions of a character input, such as different portions of a compound character (e.g., the upper, lower, left, or right portions). , etc.) can be provided to merge two sub-components or split a single component. This is particularly helpful in recognizing complex compound Chinese characters, since users tend to lose their correct proportions and balance when they input complex compound characters by hand. Being able to adjust the proportions and balance of the handwriting input, for example, by pinch and expand gestures, after the handwriting input is completed is particularly helpful in allowing the user to input the correct character without having to make multiple attempts to get the proportions and balance correct.

본 명세서에 설명되는 바와 같이, 필기 입력 모듈은 사용자가 다문자 필기 입력을 입력할 수 있게 하고, 필기 입력 영역에서 다수의 문자들에 걸쳐서, 그리고 심지어는 다수의 어구들, 문장들, 및/또는 라인들에 걸쳐서도, 문자 내에서 다문자 필기 입력에 대한 비순서적인 획들을 허용한다. 일부 실시예들에서, 필기 입력 모듈은 또한 필기 입력 영역에서 문자 단위 삭제를 제공하는데, 여기서 문자 삭제의 순서는 각 문자에 대한 획들이 필기 입력 영역에서 제공된 시기에 관계없이 그리고 역기입 방향(reverse writing direction)이다. 일부 실시예들에서, 필기 입력 영역에서의 각 인식 유닛(예컨대, 문자 또는 부수)의 삭제는 선택적으로 획 단위로 수행되는데, 여기서 획들은 획들이 인식 유닛 내에 제공된 역시간 순서(reverse temporal order)로 삭제된다. 도 17a 내지 도 17h는 사용자로부터의 삭제 입력에 응답하고 다문자 필기 입력에서 문자 단위 삭제를 제공하기 위한 예시적인 사용자 인터페이스들을 도시한다.As described herein, the handwriting input module allows a user to input multi-character handwriting input, and allows non-sequential strokes for multi-character handwriting input within a character, across multiple characters, and even across multiple phrases, sentences, and/or lines in the handwriting input area. In some embodiments, the handwriting input module also provides for character-by-character deletion in the handwriting input area, wherein the order of the character deletions is independent of when the strokes for each character were provided in the handwriting input area and in the reverse writing direction. In some embodiments, the deletion of each recognition unit (e.g., a character or radical) in the handwriting input area is optionally performed stroke-by-stroke, wherein the strokes are deleted in the reverse temporal order in which the strokes were provided within the recognition unit. FIGS. 17A-17H illustrate exemplary user interfaces for responding to a deletion input from a user and providing character-by-character deletion in multi-character handwriting input.

도 17a에 도시된 바와 같이, 사용자는 필기 입력 사용자 인터페이스(802)의 필기 입력 영역(804)에서 복수의 필기 획들(1702)을 제공하였다. 현재 누적된 획들(1702)에 기초하여, 사용자 디바이스는 후보 디스플레이 영역(806)에서 3개의 인식 결과들(예컨대, 결과들(1704, 1706, 1708))을 제시한다. 도 17b에 도시된 바와 같이, 사용자는 필기 입력 영역(806)에서 추가적인 복수의 획들(1710)을 제공하였다. 사용자 디바이스는 3개의 새로운 출력 문자들을 인식하고, 3개의 이전 인식 결과들(1704, 1706, 1708)을 3개의 새로운 인식 결과들(1712, 1714, 1716)로 대신한다. 일부 실시예들에서, 도 17b에 도시된 바와 같이, 사용자 디바이스가 현재 필기 입력(예컨대, 획들(1702) 및 획들(1710))으로부터 2개의 별도의 인식 유닛들을 식별하였더라도, 획들(1710)의 클러스터는 필기 인식 모듈의 레퍼토리에서의 임의의 알려진 문자들에 잘 대응하지 않는다. 결과적으로, 획들(1710)을 포함하는 인식 유닛에 대해 식별된 후보 문자들(예컨대, "", "凶")은 전부 사전결정된 임계치 미만의 인식 신뢰도를 갖는다. 일부 실시예들에서, 사용자 디바이스는 후보 디스플레이 영역(806)에서 제1 인식 유닛에 대한 후보 문자(예컨대, "日")만을 포함하고 제2 인식 유닛에 대한 어떠한 후보 문자도 포함하지 않는 부분 인식 결과(예컨대, 결과(1712))를 제시한다. 일부 실시예들에서, 사용자 디바이스는, 인식 신뢰도가 사전결정된 임계치를 통과하였는지의 여부에 상관없이, 인식 결과들 둘 모두에 대한 후보 문자를 포함하는 전체 인식 결과(예컨대, 결과(1714 또는 1716))를 추가로 디스플레이한다. 부분 인식 결과를 제공하는 것은 필기 입력의 어느 부분이 개정될 필요가 있음을 사용자에게 통지한다. 추가적으로, 사용자는 또한 필기 입력의 정확하게 인식된 부분을 먼저 입력한 후에, 정확하게 인식되지 않은 부분을 재기입하도록 선정할 수 있다.As illustrated in FIG. 17a, a user has provided a plurality of handwritten strokes (1702) in a handwriting input area (804) of a handwriting input user interface (802). Based on the currently accumulated strokes (1702), the user device presents three recognition results (e.g., results (1704, 1706, 1708)) in a candidate display area (806). As illustrated in FIG. 17b, the user has provided an additional plurality of strokes (1710) in the handwriting input area (806). The user device recognizes the three new output characters and replaces the three previous recognition results (1704, 1706, 1708) with the three new recognition results (1712, 1714, 1716). In some embodiments, even if the user device has identified two separate recognition units from the current handwriting input (e.g., strokes (1702) and strokes (1710)), as illustrated in FIG. 17b , the cluster of strokes (1710) does not correspond well to any known characters in the repertoire of the handwriting recognition module. As a result, the candidate characters identified for the recognition unit that includes strokes (1710) (e.g., " ", "凶") all have recognition confidences below a predetermined threshold. In some embodiments, the user device presents a partial recognition result (e.g., result (1712)) that includes only the candidate character for the first recognition unit (e.g., "日") and no candidate character for the second recognition unit in the candidate display area (806). In some embodiments, the user device additionally displays a full recognition result (e.g., result (1714 or 1716)) that includes the candidate characters for both recognition results, regardless of whether the recognition confidences pass the predetermined threshold. Providing a partial recognition result notifies the user that some portion of the handwriting input needs to be revised. Additionally, the user may also elect to first input the accurately recognized portion of the handwriting input and then re-enter the incorrectly recognized portion.

도 17c는 사용자가 계속해서 획들(1710)의 왼쪽에 추가적인 필기 획(1718)을 제공하였음을 도시한다. 획(1718)의 상대적인 위치 및 거리에 기초하여, 사용자 디바이스는 새롭게 추가된 획이 필기 획들(1702)의 클러스터와 동일한 인식 유닛에 속한다고 결정한다. 개정된 인식 유닛들에 기초하여, 제1 인식 유닛에 대한 새로운 문자(예컨대, "")를 인식하고, 새로운 인식 결과들(1720, 1722, 1724)의 세트를 생성한다. 또 다시, 획들(1710)에 대해 식별된 후보 문자들 중 어느 것도 사전결정된 신뢰도 임계치를 충족하지 않기 때문에, 제1 인식 결과(1720)는 부분 인식 결과이다.FIG. 17c illustrates that the user has continued to provide an additional handwritten stroke (1718) to the left of the strokes (1710). Based on the relative position and distance of the stroke (1718), the user device determines that the newly added stroke belongs to the same recognition unit as the cluster of handwritten strokes (1702). Based on the revised recognition units, a new character (e.g., " ") and generates a set of new recognition results (1720, 1722, 1724). Again, since none of the candidate characters identified for the strokes (1710) meet the predetermined confidence threshold, the first recognition result (1720) is a partial recognition result.

도 17d는 사용자가 이제 획들(1702)과 획들(1710) 사이에 복수의 새로운 획들(1726)을 입력하였음을 도시한다. 사용자 디바이스는 새롭게 입력된 획들(1726)을 획들(1710)과 동일한 인식 유닛에 배정한다. 이제, 사용자는 2개의 한자들(예컨대, "")에 대한 모든 필기 획들의 입력을 완료하였고, 정확한 인식 결과(1728)가 후보 디스플레이 영역(806)에 나타내진다.FIG. 17d illustrates that the user has now input a plurality of new strokes (1726) between strokes (1702) and strokes (1710). The user device assigns the newly input strokes (1726) to the same recognition unit as strokes (1710). Now, the user has input two Chinese characters (e.g., " ") has completed the input of all handwriting strokes, and the accurate recognition result (1728) is displayed in the candidate display area (806).

도 27e는 사용자가, 예컨대 삭제 버튼(1732) 상에서의 가벼운 접촉(1730)을 취함으로써, 삭제 입력의 초기 부분을 입력하였음을 도시한다. 사용자가 삭제 버튼(1732)과의 접촉을 유지하는 경우, 사용자는 현재의 필기 입력을 문자 단위로 (또는 인식 유닛 단위로) 삭제할 수 있다. 삭제는 동시에 모든 필기 입력에 대해 수행되지는 않는다.FIG. 27e illustrates that a user has entered an initial portion of a delete input, for example, by making light contact (1730) on a delete button (1732). If the user maintains contact with the delete button (1732), the user can delete the current handwriting input character by character (or recognition unit by recognition unit). Deletion is not performed on all handwriting input at the same time.

일부 실시예들에서, 도 17e에 도시된 바와 같이, 사용자의 손가락이 처음 터치 감응 스크린 상의 삭제 버튼(1732)을 터치할 때, 디폴트 기입 방향에서(예컨대, 좌측에서부터 우측으로) 마지막 인식 유닛(예컨대, 문자 ""에 대한 인식 유닛)은 필기 입력 영역(804) 내에 동시에 디스플레이되는 다른 인식 유닛(들)에 비해 시각적으로 강조된다(예컨대, 경계선(1734) 또는 밝게 된 배경 등으로 강조된다).In some embodiments, as illustrated in FIG. 17e, when the user's finger initially touches the delete button (1732) on the touch-sensitive screen, the last recognition unit (e.g., the character ") in the default writing direction (e.g., from left to right) is "Recognition unit) is visually highlighted (e.g., highlighted by a border (1734) or a brightened background, etc.) relative to other recognition unit(s) displayed simultaneously within the handwriting input area (804).

일부 실시예들에서, 도 17f에 도시된 바와 같이, 사용자가 삭제 버튼(1732) 상에서의 접촉(1730)을 임계 지속기간보다 오래 유지하였음을 사용자 디바이스가 검출할 때, 사용자 디바이스는 필기 입력 영역(806)으로부터 (예컨대, 박스(1734) 내의) 강조된 인식 유닛을 제거한다. 추가적으로, 도 17f에 도시된 바와 같이, 사용자 디바이스는 또한 삭제된 인식 유닛에 기초하여 생성된 임의의 출력 문자들을 삭제하도록 후보 디스플레이 영역(608)에 나타낸 인식 결과들을 개정한다.In some embodiments, when the user device detects that the user has maintained contact (1730) on the delete button (1732) for longer than a threshold duration, as illustrated in FIG. 17F , the user device removes the highlighted recognition unit (e.g., within the box (1734)) from the handwriting input area (806). Additionally, as illustrated in FIG. 17F , the user device also revises the recognition results displayed in the candidate display area (608) to delete any output characters generated based on the deleted recognition unit.

도 17f는, 필기 입력 영역(806)에서의 마지막 인식 유닛(예컨대, 문자 "腦"에 대한 인식 유닛)이 삭제된 후에 사용자가 계속해서 삭제 버튼(1732) 상에서의 접촉(1730)을 유지하는 경우, 삭제된 인식 유닛에 대해 인접 인식 유닛(예컨대, 문자 ""에 대한 인식 유닛)이 삭제될 다음 인식 유닛이 됨을 추가로 도시한다. 도 17f에 도시된 바와 같이, 나머지 인식 유닛은 (예컨대, 박스(1736) 내에서) 시각적으로 강조되었고, 삭제될 준비가 된다. 일부 실시예들에서, 인식 유닛의 시각적 강조는 사용자가 계속해서 삭제 버튼과의 접촉을 유지하는 경우 삭제되게 될 인식 유닛의 미리보기를 제공한다. 사용자가 임계 지속기간에 도달하기 전에 삭제 버튼과의 접촉을 중단하는 경우, 시각적 강조가 마지막 인식 유닛으로부터 제거되고, 인식 유닛은 삭제되지 않는다. 당업자가 인식하는 바와 같이, 접촉의 지속기간은 인식 유닛이 삭제될 때마다 재설정된다. 추가적으로, 일부 실시예들에서, 접촉 세기(예컨대, 사용자가 터치 감응 스크린과의 접촉(1730)을 가한 압력)는 선택적으로 현재 강조된 인식 유닛을 삭제하려는 사용자의 의도를 확인하기 위해 임계 지속기간을 조정하도록 사용된다. 도 17f 및 도 17g는, 사용자가 임계 지속기간에 도달하기 전에 삭제 버튼(1732) 상에서의 접촉(1730)을 중단하였으며 문자 ""에 대한 인식 유닛이 필기 입력 영역(806)에서 보존됨을 도시한다. 도 17g 및 도 17h에 도시된 바와 같이, 사용자가 인식 유닛에 대한 제1 인식 결과(예컨대, 결과(1738))를 (예컨대, 접촉(1740)에 의해 지시되는 바와 같이) 선택했을 때, 제1 인식 결과(1738)의 텍스트가 텍스트 입력 영역(808)으로 입력된다.FIG. 17f shows that when the user continues to maintain contact (1730) on the delete button (1732) after the last recognition unit (e.g., the recognition unit for the character "腦") in the handwriting input area (806) is deleted, an adjacent recognition unit (e.g., the recognition unit for the character "腦") to the deleted recognition unit is deleted. " recognition unit) to be deleted. As illustrated in FIG. 17F , the remaining recognition units are visually highlighted (e.g., within box (1736)) and ready to be deleted. In some embodiments, the visual highlighting of the recognition unit provides a preview of the recognition unit that will be deleted if the user continues to maintain contact with the delete button. If the user discontinues contact with the delete button before the threshold duration is reached, the visual highlight is removed from the last recognition unit, and the recognition unit is not deleted. As will be appreciated by those skilled in the art, the duration of contact is reset each time a recognition unit is deleted. Additionally, in some embodiments, the intensity of the contact (e.g., the pressure with which the user makes contact (1730) with the touch-sensitive screen) is optionally used to adjust the threshold duration to confirm the user's intent to delete the currently highlighted recognition unit. FIGS. 17F and 17G illustrate an example where the user discontinues contact (1730) on the delete button (1732) before the threshold duration is reached, and the character " "is preserved in the handwriting input area (806). As illustrated in FIGS. 17g and 17h, when the user selects a first recognition result (e.g., result (1738)) for the recognition unit (e.g., as indicated by contact (1740)), the text of the first recognition result (1738) is input into the text input area (808).

도 18a 및 도 18b는 사용자 디바이스가 다문자 필기 입력에서 문자 단위 삭제를 제공하는 예시적인 프로세스(1800)의 플로차트들이다. 일부 실시예들에서, 필기 입력의 삭제는 필기 입력으로부터 인식된 문자들이 확인되어 사용자 인터페이스의 텍스트 입력 영역으로 입력되기 전에 수행된다. 일부 실시예들에서, 필기 입력에서의 문자들의 삭제는 필기 입력으로부터 식별된 인식 유닛들의 역공간 순서(reverse spatial order)에 따라 진행하고, 인식 유닛들이 형성된 시간적 시퀀스와는 관계없다. 도 17a 내지 도 17h는 일부 실시예들에 따른 예시적인 프로세스(1800)를 도시한다.FIGS. 18A and 18B are flowcharts of an exemplary process (1800) by which a user device provides character-by-character deletion from multi-character handwriting input. In some embodiments, the deletion of the handwriting input is performed before characters recognized from the handwriting input are identified and entered into a text input area of the user interface. In some embodiments, the deletion of characters from the handwriting input proceeds in the reverse spatial order of the recognition units identified from the handwriting input, and is independent of the temporal sequence in which the recognition units were formed. FIGS. 17A through 17H illustrate an exemplary process (1800) according to some embodiments.

도 18a에 도시된 바와 같이, 예시적인 프로세스(1800)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신하는데(1802), 필기 입력은 필기 입력 인터페이스의 필기 입력 영역(예컨대, 도 17d의 영역(804))에서 제공되는 복수의 필기 획들을 포함한다. 사용자 디바이스는 복수의 필기 획들로부터 복수의 인식 유닛들을 식별하는데(1804), 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함한다. 예를 들어, 도 17d에 도시된 바와 같이, 제1 인식 유닛은 획들(1702, 1718)을 포함하고, 제2 인식 유닛은 획들(1710, 1726)을 포함한다. 사용자 디바이스는 복수의 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 다문자 인식 결과(예컨대, 도 17d의 결과(1728))를 생성한다(1806). 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 다문자 인식 결과(예컨대, 도 17d의 결과(1728))를 디스플레이한다. 일부 실시예들에서, 예컨대, 도 17e에 도시된 바와 같이, 다문자 인식 결과가 후보 디스플레이 영역에서 디스플레이되는 동안, 사용자 디바이스는 사용자로부터 삭제 입력(예컨대, 삭제 버튼(1732) 상에서의 접촉(1730))을 수신한다(1810). 일부 실시예들에서, 예컨대, 도 17e 및 도 17f에 도시된 바와 같이, 삭제 입력을 수신하는 것에 응답하여, 사용자 디바이스는 후보 디스플레이 영역(예컨대, 후보 디스플레이 영역(806))에서 디스플레이되는 다문자 인식 결과(예컨대, 결과(1728))로부터 최후 문자(예컨대, 공간 시퀀스 ""의 최후에 나타나는 문자 "")를 제거한다(1812).As illustrated in FIG. 18a , in an exemplary process (1800), a user device receives a handwriting input from a user (1802), wherein the handwriting input comprises a plurality of handwritten strokes provided in a handwriting input area of a handwriting input interface (e.g., area (804) of FIG. 17d ). The user device identifies a plurality of recognition units from the plurality of handwritten strokes (1804), each recognition unit comprising a distinct subset of the plurality of handwritten strokes. For example, as illustrated in FIG. 17d , a first recognition unit comprises strokes (1702, 1718), and a second recognition unit comprises strokes (1710, 1726). The user device generates a multi-character recognition result (e.g., result (1728) of FIG. 17d ) comprising individual characters recognized from the plurality of recognition units (1806). In some embodiments, the user device displays a multi-character recognition result (e.g., result (1728) of FIG. 17d ) in a candidate display area of the handwriting input interface. In some embodiments, for example, as illustrated in FIG. 17e , while the multi-character recognition result is displayed in the candidate display area, the user device receives (1810) a delete input (e.g., contact (1730) on a delete button (1732)) from the user. In some embodiments, for example, as illustrated in FIGS. 17e and 17f , in response to receiving the delete input, the user device displays a last character (e.g., a space sequence " "The last character that appears in " ") is removed (1812).

일부 실시예들에서, 예컨대, 도 17a 내지 도 17d에 도시된 바와 같이, 사용자 디바이스는 복수의 필기 획들이 사용자에 의해 제공됨에 따라 필기 입력 인터페이스의 필기 입력 영역에서 복수의 필기 획들을 실시간으로 렌더링한다(1814). 일부 실시예들에서, 삭제 입력을 수신하는 것에 응답하여, 사용자 디바이스는, 필기 입력 영역(예컨대, 도 17e의 필기 입력 영역(804))으로부터, 필기 입력 영역에서 복수의 인식 유닛들에 의해 형성되는 공간 시퀀스에서의 최후 인식 유닛(예컨대, 획들(1726, 1710)을 포함하는 인식 유닛)에 대응하는 복수의 필기 획들의 개별 서브세트를 제거한다(1816). 최후 인식 유닛은 다문자 인식 결과(예컨대, 도 17e의 결과(1728))에서의 최후 문자(예컨대, 문자 "")에 대응한다.In some embodiments, for example, as illustrated in FIGS. 17A-17D , the user device renders in real time a plurality of handwritten strokes in a handwriting input area of a handwriting input interface as the plurality of handwritten strokes are provided by the user (1814). In some embodiments, in response to receiving a delete input, the user device removes (1816) from the handwriting input area (e.g., the handwriting input area (804) of FIG. 17E ) a discrete subset of the plurality of handwritten strokes corresponding to a last recognition unit (e.g., a recognition unit comprising strokes (1726, 1710)) in a spatial sequence formed by the plurality of recognition units in the handwriting input area. The last recognition unit is the last character (e.g., the character " ) in the multi-character recognition result (e.g., the result (1728) of FIG. 17E ). ") corresponds to.

일부 실시예들에서, 최후 인식 유닛은 사용자에 의해 제공되는 복수의 필기 획들 중에서 시간적으로 최종의 필기 획을 포함하지 않는다(1818). 예를 들어, 사용자가 그 또는 그녀가 획들(1726, 1710)을 제공한 후에 획(1718)을 제공한 경우, 획들(1726, 1710)을 포함하는 최후 인식 유닛은 여전히 먼저 삭제될 것이다.In some embodiments, the last recognition unit does not include the temporally last handwritten stroke among the multiple handwritten strokes provided by the user (1818). For example, if the user provided the stroke (1718) after he or she provided the strokes (1726, 1710), the last recognition unit including the strokes (1726, 1710) will still be deleted first.

일부 실시예들에서, 예컨대, 도 17e에 도시된 바와 같이, 삭제 입력의 초기 부분을 수신하는 것에 응답하여, 사용자 디바이스는 필기 입력 영역에서 식별되는 다른 인식 유닛들로부터 최후 인식 유닛을 시각적으로 구별한다(1820). 일부 실시예들에서, 삭제 입력의 초기 부분은 필기 입력 인터페이스에서 삭제 버튼 상에서 검출되는 초기 접촉이고, 초기 접촉이 사전결정된 임계량의 시간보다 오래 지속될 때 삭제 입력이 검출된다(1822).In some embodiments, for example, as illustrated in FIG. 17E , in response to receiving an initial portion of a delete input, the user device visually distinguishes a last recognition unit from other recognition units identified in the handwriting input area (1820). In some embodiments, the initial portion of the delete input is an initial contact detected on a delete button in the handwriting input interface, and the delete input is detected when the initial contact lasts longer than a predetermined threshold amount of time (1822).

일부 실시예들에서, 최후 인식 유닛은 필기 한자에 대응한다. 일부 실시예들에서, 필기 입력은 초서체로 기입된다. 일부 실시예들에서, 필기 입력은 초서체로 기입된 다수의 한자들에 대응한다. 일부 실시예들에서, 필기 획들 중 적어도 하나는 복수의 인식 유닛들 중 2개의 인접 인식 유닛들로 나눠진다. 예를 들어, 때때로, 사용자는 다수의 문자들과 연결되는 긴 획을 사용할 수도 있으며, 그러한 경우에, 필기 입력 모듈의 분할 모듈은 선택적으로 긴 획을 여러 개의 인식 유닛들로 나눈다. 필기 입력의 삭제가 문자 단위로 (또는 인식 유닛 단위로) 수행될 때, 긴 획의 세그먼트(예컨대, 대응하는 인식 유닛 내의 세그먼트)만이 한 번에 삭제된다.In some embodiments, the last recognition unit corresponds to a handwritten Chinese character. In some embodiments, the handwriting input is written in cursive script. In some embodiments, the handwriting input corresponds to multiple Chinese characters written in cursive script. In some embodiments, at least one of the handwritten strokes is divided into two adjacent recognition units among the plurality of recognition units. For example, sometimes, a user may use a long stroke that is connected to multiple characters, and in such a case, the segmentation module of the handwriting input module optionally divides the long stroke into multiple recognition units. When deletion of the handwriting input is performed on a character-by-character basis (or a recognition unit-by-recognition unit basis), only a segment of the long stroke (e.g., a segment within the corresponding recognition unit) is deleted at a time.

일부 실시예들에서, 삭제 입력은 필기 입력 인터페이스에서 제공되는 삭제 버튼 상의 지속된 접촉이고, 복수의 필기 획들의 개별 서브세트를 제거하는 것은, 필기 획들의 서브세트가 사용자에 의해 제공된 역시간 순서에서 획 단위로, 필기 입력 영역으로부터 최후 인식 유닛에서의 필기 획들의 서브세트를 제거하는 것을 추가로 포함한다(1824).In some embodiments, the delete input is a sustained contact on a delete button provided in a handwriting input interface, and removing an individual subset of the plurality of handwriting strokes further comprises removing the subset of handwriting strokes from the handwriting input area at a last recognition unit, stroke by stroke, in a reverse chronological order provided by the user (1824).

일부 실시예들에서, 예컨대, 도 17b 및 도 17c에 도시된 바와 같이, 사용자 디바이스는 복수의 인식 유닛들로부터 인식되는 개별 문자들의 서브세트를 포함하는 부분 인식 결과를 생성하는데(1826), 여기서 개별 문자들의 서브세트 각각은 사전결정된 신뢰도 임계치를 충족한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 부분 인식 결과(예컨대, 도 17b의 결과(1712) 및 도 17c의 결과(1720))를 다문자 인식 결과(예컨대, 결과들(1714, 1722))와 동시에 디스플레이한다(1828).In some embodiments, for example, as illustrated in FIGS. 17B and 17C , the user device generates (1826) a partial recognition result comprising a subset of individual characters recognized from the plurality of recognition units, wherein each of the subsets of individual characters satisfies a predetermined confidence threshold. In some embodiments, the user device displays (1828) the partial recognition result (e.g., result (1712) of FIG. 17B and result (1720) of FIG. 17C ) concurrently with the multi-character recognition result (e.g., results (1714, 1722)) in a candidate display area of the handwriting input interface.

일부 실시예들에서, 부분 인식 결과는 적어도 다문자 인식 결과에서의 최후 문자를 포함하지 않는다. 일부 실시예들에서, 부분 인식 결과는 적어도 다문자 인식 결과에서의 초기 문자를 포함하지 않는다. 일부 실시예들에서, 부분 인식 결과는 적어도 다문자 인식 결과에서의 중간 문자를 포함하지 않는다.In some embodiments, the partial recognition result does not include at least the last character in the multi-character recognition result. In some embodiments, the partial recognition result does not include at least the initial character in the multi-character recognition result. In some embodiments, the partial recognition result does not include at least the middle character in the multi-character recognition result.

일부 실시예들에서, 삭제의 최소 단위는 부수이며, 부수가 필기 입력 영역에 여전히 남아 있는 필기 입력들에서의 마지막 인식 유닛이 될 때마다 필기 입력들은 한 번에 하나의 부수가 삭제되었다.In some embodiments, the minimum unit of deletion is a radical, and handwriting inputs are deleted one radical at a time whenever the radical becomes the last recognition unit in the handwriting inputs still remaining in the handwriting input area.

본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 사용자 디바이스는 수평 기입 모드 및 수직 기입 모드 둘 모두를 제공한다. 일부 실시예들에서, 사용자 디바이스는 사용자가 수평 기입 모드에서 좌측에서 우측으로의 기입 방향 및 우측에서 좌측으로의 방향 둘 모두 또는 그 중 하나로 텍스트를 입력할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 사용자가 수직 기입 모드에서 하향식 기입 방향 및 상향식 방향 둘 모두 또는 그 중 하나로 텍스트를 입력할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 현재 필기 입력들에 대한 개별 기입 모드 및/또는 기입 방향을 호출하기 위해 사용자 인터페이스 상에 다양한 어포던스들(예컨대, 기입 모드 또는 기입 방향 버튼)을 제공한다. 일부 실시예들에서, 텍스트 입력 영역에서의 텍스트 입력 방향은 디폴트로 필기 입력 방향에서의 필기 입력 방향과 동일하다. 일부 실시예들에서, 사용자 디바이스는 사용자가 텍스트 입력 영역에서의 입력 방향 및 필기 입력 영역에서의 기입 방향을 수동으로 설정할 수 있게 한다. 일부 실시예들에서, 후보 디스플레이 영역에서의 텍스트 디스플레이 방향은 디폴트로 필기 입력 영역에서의 필기 입력 방향과 동일하다. 일부 실시예들에서, 사용자 디바이스는 사용자가 필기 입력 영역에서의 필기 입력 방향과는 관계없이 텍스트 입력 영역에서의 텍스트 디스플레이 방향을 수동으로 설정할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 기입 모드 및/또는 기입 방향을 대응하는 디바이스 배향과 연관시키고, 디바이스 배향의 변화는 기입 모드 및/또는 기입 방향에서의 변화를 자동으로 유발시킨다. 일부 실시예들에서, 기입 방향의 변화는 텍스트 입력 영역으로 입력될 최상위 인식 결과의 입력을 자동으로 야기한다.As described herein, in some embodiments, the user device provides both a horizontal writing mode and a vertical writing mode. In some embodiments, the user device allows the user to enter text in both, or either, a left-to-right writing direction and a right-to-left writing direction in the horizontal writing mode. In some embodiments, the user device allows the user to enter text in both, or either, a top-down writing direction and a bottom-up writing direction in the vertical writing mode. In some embodiments, the user device provides various affordances (e.g., writing mode or writing direction buttons) on the user interface to invoke individual writing modes and/or writing directions for current handwriting inputs. In some embodiments, the text input direction in the text input area is the same as the handwriting input direction in the handwriting input direction by default. In some embodiments, the user device allows the user to manually set the input direction in the text input area and the writing direction in the handwriting input area. In some embodiments, the text display direction in the candidate display area is the same as the handwriting input direction in the handwriting input area by default. In some embodiments, the user device allows the user to manually set the text display direction in the text input area independent of the handwriting input direction in the handwriting input area. In some embodiments, the user device associates a writing mode and/or a writing direction of the handwriting input interface with a corresponding device orientation, and a change in the device orientation automatically causes a change in the writing mode and/or writing direction. In some embodiments, a change in the writing direction automatically causes the entry of a top-level recognition result to be input into the text input area.

도 19a 내지 도 19f는 수평 입력 모드 및 수직 입력 모드 둘 모두를 제공하는 사용자 디바이스의 예시적인 사용자 인터페이스들을 도시한다.Figures 19a through 19f illustrate exemplary user interfaces of a user device providing both a horizontal input mode and a vertical input mode.

도 19a는 수평 입력 모드에서의 사용자 디바이스를 도시한다. 일부 실시예들에서, 도 19a에 도시된 바와 같이, 수평 입력 모드는 사용자 디바이스가 가로 배향으로 있을 때 제공된다. 일부 실시예들에서, 수평 입력 모드는 선택적으로 디바이스가 세로 배향으로 동작될 때와 연관되어 제공된다. 상이한 애플리케이션들에서, 디바이스 배향과 기입 모드 간의 연관은 상이할 수 있다.FIG. 19A illustrates a user device in a horizontal input mode. In some embodiments, as illustrated in FIG. 19A, the horizontal input mode is provided when the user device is in a landscape orientation. In some embodiments, the horizontal input mode is optionally provided in association with when the device is operated in a portrait orientation. In different applications, the association between device orientation and writing mode may be different.

수평 입력 모드에서, 사용자는 필기 문자들을 수평 기입 방향(예컨대, 좌측에서 우측으로 진행하는 디폴트 기입 방향 또는 우측에서 좌측으로 진행하는 디폴트 기입 방향을 가짐)으로 제공할 수 있다. 수평 입력 모드에서, 사용자 디바이스는 필기 입력을 수평 기입 방향을 따라 하나 이상의 인식 유닛들로 분할하는 것을 수행한다.In the horizontal input mode, the user can provide handwritten characters in a horizontal writing direction (e.g., having a default writing direction that runs from left to right or a default writing direction that runs from right to left). In the horizontal input mode, the user device performs a process of segmenting the handwritten input into one or more recognition units along the horizontal writing direction.

일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 단일 라인 입력만을 허용한다. 일부 실시예들에서, 도 19a에 도시된 바와 같이, 사용자 디바이스는 필기 입력 영역에서 멀티라인 입력(2개 라인들의 입력)을 허용한다. 도 19a에서, 사용자는 필기 입력 영역(806)에서 복수의 필기 획들을 여러 행들로 제공하였다. 사용자가 복수의 필기 획들을 제공한 시퀀스 그리고 복수의 필기 획들의 상대적인 위치들 및 복수의 필기 획들 간의 거리들에 기초하여, 사용자 디바이스는 사용자가 2개 라인들의 문자들을 입력하였음을 판정한다. 필기 입력을 2개의 별도의 라인들로 분할한 후에, 디바이스는 각 라인 내의 인식 유닛(들)을 판정한다.In some embodiments, the user device allows only a single line input in the handwriting input area. In some embodiments, as illustrated in FIG. 19A , the user device allows multi-line input (input of two lines) in the handwriting input area. In FIG. 19A , the user has provided multiple handwritten strokes in multiple rows in the handwriting input area (806). Based on the sequence in which the user provided the multiple handwritten strokes and the relative positions of the multiple handwritten strokes and the distances between the multiple handwritten strokes, the user device determines that the user has input two lines of characters. After splitting the handwriting input into two separate lines, the device determines the recognition unit(s) within each line.

도 19a에 도시된 바와 같이, 사용자 디바이스는 현재 필기 입력(1902)에서 식별된 각 인식 유닛에 대한 개별 문자를 인식하였고, 다수의 인식 결과들(1904 및 1906)을 생성하였다. 도 19a에 추가로 도시된 바와 같이, 일부 실시예들에서, 인식 유닛들의 특정한 세트(예컨대, 초기 획에 의해 형성된 인식 유닛)에 대한 출력 문자(예컨대, 문자 "I")가 약한 경우, 사용자 디바이스는 선택적으로 충분한 인식 신뢰도를 갖는 출력 문자들만을 나타내는 부분 인식 결과(예컨대, 결과(1906))를 생성한다. 일부 실시예들에서, 사용자는 부분 인식 결과(1906)로부터, 정확한 인식 결과를 생성하기 위해 제1 획이 인식 모델에 대해 개정되거나 또는 개별적으로 삭제 또는 재기입될 수 있음을 알아차릴 수 있다. 이러한 특정한 예에서, 제1 인식 유닛(1904)이 제1 인식 유닛에 대한 원하는 인식 결과를 나타내기 때문에 제1 인식 유닛의 편집은 필요하지 않다.As illustrated in FIG. 19A , the user device has recognized individual characters for each recognition unit identified in the current handwriting input (1902) and generated multiple recognition results (1904 and 1906). As further illustrated in FIG. 19A , in some embodiments, if an output character (e.g., the character “I”) for a particular set of recognition units (e.g., the recognition unit formed by the initial stroke) is weak, the user device optionally generates a partial recognition result (e.g., result (1906)) that represents only those output characters having sufficient recognition confidence. In some embodiments, the user may notice from the partial recognition result (1906) that the first stroke may be revised for the recognition model or may be individually deleted or rewritten to generate an accurate recognition result. In this particular example, no editing of the first recognition unit (1904) is necessary because the first recognition unit represents the desired recognition result for the first recognition unit.

이러한 예에서, 도 19a 및 도 19b에 도시된 바와 같이, 사용자는 디바이스를 (예컨대, 도 19b에 도시된) 세로 배향으로 회전시켰다. 도 19b에 도시된 바와 같이, 디바이스 배향의 변화에 응답하여, 필기 입력 인터페이스는 수평 입력 모드로부터 수직 입력 모드로 변경된다. 수직 입력 모드에서, 필기 입력 영역(804), 후보 디스플레이 영역(806) 및 텍스트 입력 영역(808)의 레이아웃은 수평 입력 모드에서 나타낸 것과는 상이할 수 있다. 수평 및 수직 입력 모드들의 특정한 레이아웃은 상이한 디바이스 형상들 및 애플리케이션 요구들에 적합하도록 다양할 수 있다. 일부 실시예들에서, 디바이스 배향의 회전 및 입력 모드의 변화에 의하면, 사용자 디바이스는 최상위 결과(예컨대, 결과(1904))를 텍스트 입력(1910)으로서 텍스트 입력 영역(808)으로 자동으로 입력한다. 커서(1912)의 배향 및 위치도 또한 입력 모드 및 기입 방향의 변화를 반영한다.In this example, as illustrated in FIGS. 19A and 19B , the user rotates the device to a portrait orientation (e.g., as illustrated in FIG. 19B ). As illustrated in FIG. 19B , in response to the change in device orientation, the handwriting input interface changes from a horizontal input mode to a vertical input mode. In the vertical input mode, the layout of the handwriting input area (804), the candidate display area (806), and the text input area (808) may be different than that illustrated in the horizontal input mode. The particular layouts of the horizontal and vertical input modes may vary to suit different device geometries and application requirements. In some embodiments, with the rotation of the device orientation and the change in input mode, the user device automatically inputs the top result (e.g., result (1904)) as a text input (1910) into the text input area (808). The orientation and position of the cursor (1912) also reflect the change in input mode and direction of entry.

일부 실시예들에서, 입력 모드의 변화는 선택적으로 사용자가 특정한 입력 모드 선택 어포던스(1908)를 터치함으로써 유발된다. 일부 실시예들에서, 입력 모드 선택 어포던스는, 현재 기입 모드, 현재 기입 방향, 및/또는 현재 단락 방향을 또한 나타내는 그래픽 사용자 인터페이스 요소이다. 일부 실시예들에서, 입력 모드 선택 어포던스는 필기 입력 인터페이스(802)에 의해 제공되는 모든 이용 가능한 입력 모드들 및 기입 방향들에 걸쳐 순환할 수 있다. 도 19a에 도시된 바와 같이, 어포던스(1908)는, 현재 입력 모드가 수평 입력 모드이며, 기입 방향이 좌측에서 우측으로 이고, 단락 방향이 위에서 아래로 임을 나타낸다. 도 19b에서, 어포던스(1908)는, 현재 입력 모드가 수직 입력 모드이며, 기입 방향이 위에서 아래로 이고, 단락 방향이 우측에서 좌측으로 임을 나타낸다. 다양한 실시예들에 따라, 기입 방향 및 단락 방향의 다른 조합들이 가능하다.In some embodiments, a change in input mode is optionally triggered by the user touching a particular input mode selection affordance (1908). In some embodiments, the input mode selection affordance is a graphical user interface element that also indicates a current writing mode, a current writing direction, and/or a current paragraph direction. In some embodiments, the input mode selection affordance can cycle through all available input modes and writing directions provided by the handwriting input interface (802). As illustrated in FIG. 19A , the affordance (1908) indicates that the current input mode is a horizontal input mode, that the writing direction is left to right, and that the paragraph direction is top to bottom. In FIG. 19B , the affordance (1908) indicates that the current input mode is a vertical input mode, that the writing direction is top to bottom, and that the paragraph direction is right to left. According to various embodiments, other combinations of writing directions and paragraph directions are possible.

도 19c에 도시된 바와 같이, 사용자는 수직 입력 모드에서의 필기 입력 영역(804)에서 복수의 새로운 획들(1914)(예컨대, 2개의 한자들 ""에 대한 필기 획들)을 입력하였다. 필기 입력은 수직 기입 방향으로 기입된다. 사용자 디바이스는 필기 입력을 수직 방향으로 2개의 인식 유닛들로 분할하고, 각각이 수직 방향으로 레이아웃된 2개의 인식된 문자들을 포함하는 2개의 인식 결과들(1916, 1918)을 디스플레이한다.As illustrated in Figure 19c, the user may input a plurality of new strokes (1914) (e.g., two Chinese characters ") in the handwriting input area (804) in the vertical input mode. "Handwriting strokes for" are entered. The handwriting input is entered in a vertical writing direction. The user device divides the handwriting input into two recognition units in the vertical direction and displays two recognition results (1916, 1918), each of which includes two recognized characters laid out in the vertical direction.

도 19c 및 도 19d는, 사용자가 디스플레이된 인식 결과(예컨대, 결과(1916))를 선택할 때, 선택된 인식 결과가 텍스트 입력 영역(808)으로 수직 방향으로 입력됨을 도시한다.FIGS. 19c and 19d illustrate that when a user selects a displayed recognition result (e.g., result (1916)), the selected recognition result is input vertically into the text input area (808).

도 19e 및 도 19f는, 사용자가 추가적인 라인들의 필기 입력(1920)을 수직 기입 방향으로 입력하였음을 도시한다. 라인들은 전통적인 중국어 기입의 단락 방향에 따라 좌측에서 우측으로 계속된다. 일부 실시예들에서, 후보 디스플레이 영역(806)은 또한 필기 입력 영역에 대한 것과 동일한 기입 방향 및 단락 방향에서 인식 결과들(예컨대, 결과들(1922, 1924))을 나타낸다. 일부 실시예들에서, 사용자 디바이스와 연관된 주 언어, 또는 사용자 디바이스 상에 설치된 소프트 키보드의 언어(예컨대, 아랍어, 중국어, 일본어, 영어 등)에 따라 다른 기입 방향 및 단락 방향이 디폴트로 제공될 수 있다.Figures 19E and 19F illustrate that the user has entered additional lines of handwriting input (1920) in a vertical writing direction. The lines continue from left to right following the paragraph direction of traditional Chinese writing. In some embodiments, the candidate display area (806) also presents recognition results (e.g., results (1922, 1924)) in the same writing direction and paragraph direction as for the handwriting input area. In some embodiments, different writing directions and paragraph directions may be provided by default depending on the primary language associated with the user device, or the language of a soft keyboard installed on the user device (e.g., Arabic, Chinese, Japanese, English, etc.).

도 19e 및 도 19f는 또한, 사용자가 인식 결과(예컨대, 결과(1922))를 선택했을 때, 선택된 인식 결과의 텍스트가 텍스트 입력 영역(808)으로 입력됨을 도시한다. 따라서, 도 19f에 도시된 바와 같이, 텍스트 입력 영역(808)에서의 현재 텍스트 입력은 좌측에서 우측으로의 기입 방향으로 수평 모드에서 기입된 텍스트, 및 하향식 기입 방향으로 수직 모드에서 기입된 텍스트 둘 모두를 포함한다. 수평 텍스트에 대한 단락 방향은 하향식이며, 한편 수직 텍스트에 대한 단락 방향은 우측에서 좌측으로 이다.FIGS. 19E and 19F also illustrate that when a user selects a recognition result (e.g., result (1922)), the text of the selected recognition result is entered into the text input area (808). Accordingly, as illustrated in FIG. 19F, the current text input in the text input area (808) includes both text entered in a horizontal mode in a left-to-right writing direction, and text entered in a vertical mode in a top-down writing direction. The paragraph direction for the horizontal text is top-down, while the paragraph direction for the vertical text is right-to-left.

일부 실시예들에서, 사용자 디바이스는 사용자가 필기 입력 영역(804), 후보 디스플레이 영역(806) 및 텍스트 입력 영역(808) 각각에 대한 바람직한 기입 방향들, 단락 방향들을 별도로 확립할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 사용자가, 각 디바이스 배향과 연관되는, 필기 입력 영역(804), 후보 디스플레이 영역(806) 및 텍스트 입력 영역(808) 각각에 대한 바람직한 기입 방향 및 단락 방향을 확립할 수 있게 한다.In some embodiments, the user device allows the user to separately establish preferred writing directions and paragraph directions for each of the handwriting input area (804), the candidate display area (806), and the text input area (808). In some embodiments, the user device allows the user to establish preferred writing directions and paragraph directions for each of the handwriting input area (804), the candidate display area (806), and the text input area (808), associated with each device orientation.

도 20a 내지 도 20c는 사용자 인터페이스의 텍스트 입력 방향 및 필기 입력 방향을 변경하기 위한 예시적인 프로세스(2000)의 플로차트들이다. 도 19a 내지 도 19f는 일부 실시예들에 따른 프로세스(2000)를 도시한다.FIGS. 20A through 20C are flowcharts of an exemplary process (2000) for changing a text input direction and a handwriting input direction of a user interface. FIGS. 19A through 19F illustrate a process (2000) according to some embodiments.

일부 실시예들에서, 사용자 디바이스는 디바이스의 배향을 결정한다(2002). 디바이스의 배향 및 디바이스 배향의 변화들은 사용자 디바이스 내의 가속도계 및/또는 다른 배향 감지 요소에 의해 검출될 수 있다. 일부 실시예들에서, 사용자 디바이스는 제1 배향으로 있는 디바이스에 따라서 수평 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공한다(2004). 수평 입력 모드에서 입력되는 필기 입력의 개별 라인은 수평 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할된다. 일부 실시예들에서, 디바이스는 제2 배향으로 있는 디바이스에 따라서 수직 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공한다(2006). 수직 입력 모드에서 입력되는 필기 입력의 개별 라인은 수직 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할된다.In some embodiments, the user device determines an orientation of the device (2002). The orientation of the device and changes in device orientation may be detected by an accelerometer and/or other orientation-sensitive element within the user device. In some embodiments, the user device provides a handwriting input interface on the device in a horizontal input mode with the device in a first orientation (2004). Individual lines of handwriting input entered in the horizontal input mode are segmented into one or more individual recognition units along a horizontal writing direction. In some embodiments, the device provides a handwriting input interface on the device in a vertical input mode with the device in a second orientation (2006). Individual lines of handwriting input entered in the vertical input mode are segmented into one or more individual recognition units along a vertical writing direction.

일부 실시예들에서, 수평 입력 모드에서 동작하는 동안(2008): 디바이스는 제1 배향으로부터 제2 배향으로의 디바이스 배향의 변화를 검출한다(2010). 일부 실시예들에서, 디바이스 배향의 변화에 응답하여, 디바이스는 수평 입력 모드로부터 수직 입력 모드로 전환한다(2012). 이것은, 예를 들어 도 19a 및 도 19b에서 예시되어 있다. 일부 실시예들에서, 수직 입력 모드에서 동작하는 동안(2014): 사용자 디바이스는 제2 배향으로부터 제1 배향으로의 디바이스 배향의 변화를 검출한다(2016). 일부 실시예들에서, 디바이스 배향의 변화에 응답하여, 사용자 디바이스는 수직 입력 모드로부터 수평 입력 모드로 전환한다(2018). 일부 실시예들에서, 디바이스 배향과 입력 모드 간의 연관은 상기 설명된 것의 반대될 수 있다.In some embodiments, while operating in a horizontal input mode (2008): the device detects a change in device orientation from a first orientation to a second orientation (2010). In some embodiments, in response to the change in device orientation, the device switches from the horizontal input mode to a vertical input mode (2012). This is illustrated, for example, in FIGS. 19A and 19B . In some embodiments, while operating in a vertical input mode (2014): the user device detects a change in device orientation from a second orientation to a first orientation (2016). In some embodiments, in response to the change in device orientation, the user device switches from the vertical input mode to the horizontal input mode (2018). In some embodiments, the association between device orientation and input mode can be the opposite of what is described above.

일부 실시예들에서, 수평 입력 모드에서 동작하는 동안(2020): 사용자 디바이스는 사용자로부터 제1 다단어 필기 입력을 수신한다(2022). 제1 다단어 필기 입력에 응답하여, 사용자 디바이스는 수평 기입 방향을 따라서 필기 입력 인터페이스의 후보 디스플레이 영역에서 제1 다단어 인식 결과를 제시한다(2024). 이것은, 예를 들어 도 19a에서 예시되어 있다. 일부 실시예들에서, 수직 입력 모드에서 동작하는 동안(2026): 사용자 디바이스는 사용자로부터 제2 다단어 필기 입력을 수신한다(2028). 제2 다단어 필기 입력에 응답하여, 사용자 디바이스는 수직 기입 방향을 따라서 후보 디스플레이 영역에서 제2 다단어 인식 결과를 제시한다(2030). 이것은, 예를 들어 도 19c 및 도 19e에서 예시되어 있다.In some embodiments, while operating in a horizontal input mode (2020): the user device receives a first multi-word handwriting input from the user (2022). In response to the first multi-word handwriting input, the user device presents a first multi-word recognition result in a candidate display area of the handwriting input interface along the horizontal writing direction (2024). This is illustrated, for example, in FIG. 19A . In some embodiments, while operating in a vertical input mode (2026): the user device receives a second multi-word handwriting input from the user (2028). In response to the second multi-word handwriting input, the user device presents a second multi-word recognition result in a candidate display area along the vertical writing direction (2030). This is illustrated, for example, in FIGS. 19C and 19E .

일부 실시예들에서, 예컨대, 도 19a 및 도 19b에 도시된 바와 같이, 사용자 디바이스는 제1 다단어 인식 결과를 선택하는 제1 사용자 입력을 수신하는데(2032), 여기서 선택은 입력 방향을 변경하기 위한 입력(예컨대, 디바이스의 회전 또는 어포던스(1908)의 선택)으로 암시적으로 이루어진다. 예컨대, 도 19c 또는 도 19e에 도시된 바와 같이, 사용자 디바이스는 제2 다단어 인식 결과를 선택하는 제2 사용자 입력을 수신한다(2034). 사용자 디바이스는 필기 입력 인터페이스의 텍스트 입력 영역에서 제1 다단어 인식 결과 및 제2 다단어 인식 결과의 개별 텍스트를 동시에 디스플레이하는데(2036), 여기서 제1 다단어 인식 결과의 개별 텍스트는 수평 기입 방향을 따라서 디스플레이되고, 제2 다단어 인식 결과의 개별 텍스트는 수직 기입 방향을 따라서 디스플레이된다. 이것은, 예를 들어 도 19f의 텍스트 입력 영역(808)에서 예시되어 있다.In some embodiments, for example, as illustrated in FIGS. 19A and 19B , the user device receives a first user input selecting a first multi-word recognition result (2032), where the selection is implicitly made by an input for changing an input direction (e.g., rotation of the device or selection of an affordance (1908)). For example, as illustrated in FIGS. 19C or 19E , the user device receives a second user input selecting a second multi-word recognition result (2034). The user device simultaneously displays individual texts of the first multi-word recognition result and the second multi-word recognition result in a text input area of the handwriting input interface (2036), where the individual texts of the first multi-word recognition result are displayed along a horizontal writing direction and the individual texts of the second multi-word recognition result are displayed along a vertical writing direction. This is illustrated, for example, in the text input area (808) of FIG. 19F .

일부 실시예들에서, 필기 입력 영역은 수평 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 하향식 단락 방향(default top-down paragraph direction)을 갖는다. 일부 실시예들에서, 수평 기입 방향은 좌측에서부터 우측으로 이다. 일부 실시예들에서, 수평 기입 방향은 우측에서부터 좌측으로 이다. 일부 실시예들에서, 필기 입력 영역은 수직 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 좌측에서 우측으로의 단락 방향(default left-to-right paragraph direction)을 갖는다. 일부 실시예들에서, 필기 입력 영역은 수직 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 우측에서 좌측으로의 단락 방향을 갖는다. 일부 실시예들에서, 수직 기입 방향은 위에서부터 아래로 이다. 일부 실시예들에서, 제1 배향은 디폴트로 가로 배향이고, 제2 배향은 디폴트로 세로 배향이다. 일부 실시예들에서, 사용자 디바이스는 디바이스 배향에 상관없이, 수평 입력 모드와 수직 입력 모드 사이에서 수동으로 전환하기 위해 필기 입력 인터페이스에서 개별 어포던스를 제공한다. 일부 실시예들에서, 사용자 디바이스는 2개의 대안적인 기입 방향들 사이에서 수동으로 전환하기 위해 필기 입력 인터페이스에서 개별 어포던스를 제공한다. 일부 실시예들에서, 사용자 디바이스는 2개의 대안적인 단락 방향들 사이에서 수동으로 전환하기 위해 필기 입력 인터페이스에서 개별 어포던스를 제공한다. 일부 실시예들에서, 어포던스는, 하나 이상 연속 호출했을 때, 입력 및 단락 방향들의 각각의 이용 가능한 조합에 걸쳐 순환하는 토글 버튼이다.In some embodiments, the handwriting input area allows multiple lines of handwriting input in a horizontal writing direction and has a default top-down paragraph direction. In some embodiments, the horizontal writing direction is left-to-right. In some embodiments, the horizontal writing direction is right-to-left. In some embodiments, the handwriting input area allows multiple lines of handwriting input in a vertical writing direction and has a default left-to-right paragraph direction. In some embodiments, the handwriting input area allows multiple lines of handwriting input in a vertical writing direction and has a default right-to-left paragraph direction. In some embodiments, the vertical writing direction is top-to-down. In some embodiments, the first orientation is landscape by default and the second orientation is portrait by default. In some embodiments, the user device provides a separate affordance in the handwriting input interface to manually switch between a horizontal input mode and a vertical input mode, regardless of the device orientation. In some embodiments, the user device provides a separate affordance in the handwriting input interface for manually switching between two alternative writing orientations. In some embodiments, the user device provides a separate affordance in the handwriting input interface for manually switching between two alternative paragraph orientations. In some embodiments, the affordance is a toggle button that, when invoked one or more times consecutively, cycles through each of the available combinations of input and paragraph orientations.

일부 실시예들에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(2038). 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함한다. 필기 입력에 응답하여, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 인식 결과들을 디스플레이한다(2040). 하나 이상의 인식 결과들이 후보 디스플레이 영역에서 디스플레이되는 동안, 사용자 디바이스는 현재 필기 입력 모드로부터 대안적인 필기 입력 모드로 전환하기 위한 사용자 입력을 검출한다(2042). 사용자 입력에 응답하여(2044): 사용자 디바이스는 현재 필기 입력 모드로부터 대안적인 필기 입력 모드로 전환한다(2046). 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역으로부터 필기 입력을 클리어한다(2048). 일부 실시예들에서, 사용자 디바이스는 후보 디스플레이 영역에서 디스플레이되는 하나 이상의 인식 결과들 중 최상위 인식 결과를 필기 입력 인터페이스의 텍스트 입력 영역에 자동으로 입력한다(2050). 이것은, 예를 들어 도 19a 및 도 19b에서 예시되어 있는데, 여기서 현재 필기 입력 모드는 수평 입력 모드이며 대안적인 필기 입력 모드는 수직 입력 모드이다. 일부 실시예들에서, 현재 필기 입력 모드는 수직 입력 모드이며 대안적인 필기 입력 모드는 수평 입력 모드이다. 일부 실시예들에서, 현재 필기 입력 모드 및 대안적인 필기 입력 모드는 임의의 2개의 상이한 필기 입력 방향들 또는 단락 방향들이 제공되는 모드들이다. 일부 실시예들에서, 사용자 입력은 현재 배향으로부터 다른 배향으로의 디바이스의 회전이다(2052). 일부 실시예들에서, 사용자 입력은 현재 필기 입력 모드를 대안적인 필기 입력 모드로 수동으로 전환하기 위한 어포던스의 호출이다.In some embodiments, the user device receives handwriting input from the user (2038). The handwriting input includes a plurality of handwriting strokes provided in a handwriting input area of the handwriting input interface. In response to the handwriting input, the user device displays one or more recognition results in a candidate display area of the handwriting input interface (2040). While the one or more recognition results are displayed in the candidate display area, the user device detects user input to switch from the current handwriting input mode to an alternative handwriting input mode (2042). In response to the user input (2044): the user device switches from the current handwriting input mode to the alternative handwriting input mode (2046). In some embodiments, the user device clears the handwriting input from the handwriting input area (2048). In some embodiments, the user device automatically inputs a top-ranked recognition result from the one or more recognition results displayed in the candidate display area into a text input area of the handwriting input interface (2050). This is illustrated, for example, in FIGS. 19A and 19B , where the current handwriting input mode is a horizontal input mode and the alternative handwriting input mode is a vertical input mode. In some embodiments, the current handwriting input mode is a vertical input mode and the alternative handwriting input mode is a horizontal input mode. In some embodiments, the current handwriting input mode and the alternative handwriting input mode are modes in which any two different handwriting input orientations or paragraph orientations are provided. In some embodiments, the user input is a rotation of the device from the current orientation to the other orientation (2052). In some embodiments, the user input is an invocation of an affordance to manually switch the current handwriting input mode to the alternative handwriting input mode.

본 명세서에 설명되는 바와 같이, 필기 입력 모듈은 사용자가 필기 획들 및/또는 문자들을 임의의 시간 순서로 입력할 수 있게 한다. 따라서, 다문자 필기 입력에서 개별 필기 문자를 삭제하고, 삭제된 문자와 동일 또는 상이한 필기 문자를 동일한 위치에서 재기입하는 것이 유리한데, 이것은 사용자가 전체 필기 입력을 삭제할 필요 없이 긴 필기 입력을 개정하는 데 도움이 될 것이기 때문이다.As described herein, the handwriting input module allows a user to input handwriting strokes and/or characters in any chronological order. Therefore, it is advantageous to delete individual handwriting characters in a multi-character handwriting input and re-enter handwriting characters that are identical or different from the deleted characters at the same location, as this will help the user revise a long handwriting input without having to delete the entire handwriting input.

도 20a 내지 도 20h는 필기 입력 영역에서 현재 누적된 복수의 필기 획들에서 식별된 인식 유닛을 시각적으로 강조하고 그리고/또는 삭제하기 위한 예시적인 사용자 인터페이스들을 도시한다. 사용자가 복수의 입력들에서 식별된 다수의 인식 유닛들 중 임의의 하나를 개별적으로 선택하고, 보고, 그리고 삭제할 수 있게 하는 것은, 사용자 디바이스에 의해 다문자 및 심지어 멀티라인 필기 입력이 허용될 때 특히 유용하다. 사용자가 필기 입력들의 시작 또는 중간에서 특정한 인식 유닛을 삭제할 수 있게 하는 것은, 사용자가 바람직하지 않은 인식 유닛 후에 위치된 모든 인식 유닛들을 삭제하도록 요구하지 않고서, 사용자가 긴 입력을 수정할 수 있게 한다.FIGS. 20A-20H illustrate exemplary user interfaces for visually highlighting and/or deleting a recognition unit identified in a currently accumulated plurality of handwriting strokes in a handwriting input area. Allowing a user to individually select, view, and delete any one of a plurality of recognition units identified in a plurality of inputs is particularly useful when multi-character and even multi-line handwriting input is allowed by the user device. Allowing a user to delete a particular recognition unit at the beginning or middle of a handwriting input allows the user to edit a long input without requiring the user to delete all recognition units positioned after an undesirable recognition unit.

도 21a 내지 도 21c에 도시된 바와 같이, 사용자는 필기 입력 사용자 인터페이스(802)의 필기 입력 영역(804)에서 복수의 필기 획들(예컨대, 획들(2102, 2104, 2106))을 제공하였다. 사용자가 계속해서 추가적인 획들을 필기 입력 영역(804)으로 제공하는 동안, 사용자 디바이스는 필기 입력 영역에서 현재 누적된 필기 입력으로부터 식별된 인식 유닛들을 업데이트하고, 업데이트된 인식 유닛들로부터 인식된 출력 문자들에 따라 인식 결과들을 개정한다. 도 20c에 도시된 바와 같이, 사용자 디바이스는 현재 필기 입력으로부터 2개의 인식 유닛들을 식별하였고, 각각이 2개의 한자들을 포함하는 3개의 인식 결과들(예컨대, 2108, 2010, 2112)을 제시하였다.As illustrated in FIGS. 21A to 21C , a user has provided a plurality of handwritten strokes (e.g., strokes (2102, 2104, 2106)) in a handwriting input area (804) of a handwriting input user interface (802). While the user continues to provide additional strokes into the handwriting input area (804), the user device updates recognition units identified from the current accumulated handwriting input in the handwriting input area, and revises recognition results according to output characters recognized from the updated recognition units. As illustrated in FIG. 20C , the user device has identified two recognition units from the current handwriting input, and has presented three recognition results (e.g., 2108, 2010, 2112), each of which includes two Chinese characters.

이러한 예에서, 사용자가 2개의 필기 문자들을 기입한 후에, 사용자는 제1 인식 유닛이 틀리게 기입되어 있음을 알아차리고, 그 결과, 사용자 디바이스는 원하는 인식 결과를 후보 디스플레이 영역에서 식별하지 못했고 제시하지 못했다.In this example, after the user has entered two handwritten characters, the user notices that the first recognition unit is entered incorrectly, and as a result, the user device fails to identify and present the desired recognition result in the candidate display area.

일부 실시예들에서, 사용자가 터치 감응 디스플레이 상에서 탭 제스처(예컨대, 동일한 위치에서 접촉에 뒤이은 즉각적인 들어올림)를 제공할 때, 사용자 디바이스는 탭 제스처를 입력으로서 해석하여, 필기 입력 영역에서 현재 식별된 개별 인식 유닛들의 시각적 강조를 야기한다. 일부 실시예들에서, 또 다른 사전결정된 제스처(예컨대, 필기 입력 영역 위에서 여러 손가락 문지름 제스처)가 사용되어, 사용자 디바이스가 필기 입력 영역(804)에서 개별 인식 유닛들을 강조하도록 한다. 탭 제스처는 필기 획으로부터 구별하기가 비교적 쉽기 때문에 때때로 바람직한데, 이는 통상 필기 입력 영역(804) 내에서의 접촉의 이동을 갖고 그리고 더 긴 지속기간의 지속된 접촉을 수반한다. 멀티터치 제스처(multi-touch gesture)는 필기 획으로부터 구별하기가 비교적 쉽기 때문에 때때로 바람직한데, 이는 통상 필기 입력 영역(804) 내에서의 단일 접촉을 수반한다. 일부 실시예들에서, 사용자 디바이스는 사용자에 의해 (예컨대, 접촉(2114)을 통해) 호출될 수 있는 어포던스(2112)를 사용자 인터페이스에서 제공하여, 개별 인식 유닛들이 (예컨대, 박스들(2108, 2110)에 의해 도시된 바와 같이) 시각적으로 강조되도록 한다. 일부 실시예들에서, 어포던스는 그러한 어포던스를 수용하기에 충분한 스크린 공간이 있을 때 바람직하다. 일부 실시예들에서, 어포던스는 사용자에 의해 다수 연속 호출될 수 있는데, 이는 사용자 디바이스가 분할 격자에서의 상이한 분할 체인에 따라 식별된 인식 유닛(들)을 시각적으로 강조하도록 하고 모든 분할 체인들이 나타내어졌을 때 강조가 해제되도록 한다.In some embodiments, when a user provides a tap gesture (e.g., a touch followed by an immediate lift at the same location) on the touch-sensitive display, the user device interprets the tap gesture as an input, causing visual highlighting of individual recognition units currently identified in the handwriting input area. In some embodiments, another predetermined gesture (e.g., a multi-finger swipe gesture over the handwriting input area) is used to cause the user device to highlight individual recognition units in the handwriting input area (804). A tap gesture is sometimes desirable because it is relatively easy to distinguish from a handwriting stroke, which typically involves movement of contact within the handwriting input area (804) and sustained contact of a longer duration. A multi-touch gesture is sometimes desirable because it is relatively easy to distinguish from a handwriting stroke, which typically involves a single contact within the handwriting input area (804). In some embodiments, the user device provides an affordance (2112) in the user interface that can be invoked by the user (e.g., via contact (2114)) to visually highlight individual recognition units (e.g., as illustrated by boxes (2108, 2110)). In some embodiments, the affordance is desirable when there is sufficient screen space to accommodate such an affordance. In some embodiments, the affordance can be invoked multiple times in succession by the user, causing the user device to visually highlight the recognition unit(s) identified along different segmentation chains in the segmentation grid and de-highlight them when all segmentation chains are revealed.

도 21d에 도시된 바와 같이, 사용자가 필기 입력 영역(804)에서의 개별 인식 유닛들을 강조하기 위해 필요한 제스처를 제공하였을 때, 사용자 디바이스는 각각의 강조된 인식 유닛 위에서의 개별 삭제 어포던스(예컨대, 작은 삭제 버튼들(2116, 2118))를 추가로 디스플레이한다. 도 21e 및 도 21f는, 사용자가 개별 인식 유닛의 삭제 어포던스(예컨대, 박스(2118) 내의 제1 인식 유닛에 대한 삭제 버튼(2116))를 (예컨대, 접촉(2120)을 통해) 터치할 때, (예컨대, 박스(2118) 내의) 개별 인식 유닛이 필기 입력 영역(804)으로부터 제거되는 것을 도시한다. 이러한 특정한 예에서, 삭제된 인식 유닛은 시간적으로 마지막 입력된 인식 유닛이 아니며, 그것은 기입 방향을 따라 공간적으로 마지막 인식 유닛도 아니다. 다시 말하면, 사용자는 언제 그리고 어디서 인식 유닛이 필기 입력 영역에 제공되었는지에 상관없이 임의의 인식 유닛을 삭제할 수 있다. 도 21f는, 필기 입력 영역에서의 제1 인식 유닛의 삭제에 응답하여, 사용자 디바이스가 후보 디스플레이 영역(806)에서 디스플레이된 인식 결과들을 또한 업데이트하는 것을 도시한다. 도 21f에 도시된 바와 같이, 사용자 디바이스는 또한 삭제된 인식 유닛에 대응하는 후보 문자를 인식 결과들로부터 삭제하였다. 결과적으로, 새로운 인식 결과(2120)가 후보 디스플레이 영역(806)에 나타나 있다.As illustrated in FIG. 21d , when the user provides a gesture necessary to highlight individual recognition units in the handwriting input area (804), the user device additionally displays individual delete affordances (e.g., small delete buttons (2116, 2118)) above each highlighted recognition unit. FIGS. 21e and 21f illustrate that when the user touches (e.g., via contact (2120)) the delete affordance of an individual recognition unit (e.g., the delete button (2116) for the first recognition unit within box (2118)), the individual recognition unit (e.g., within box (2118)) is removed from the handwriting input area (804). In this particular example, the deleted recognition unit is not the last recognition unit entered temporally, nor is it the last recognition unit spatially along the writing direction. In other words, the user can delete any recognition unit regardless of when and where the recognition unit was provided in the handwriting input area. FIG. 21f illustrates that, in response to the deletion of the first recognition unit in the handwriting input area, the user device also updates the recognition results displayed in the candidate display area (806). As illustrated in FIG. 21f, the user device also deleted the candidate character corresponding to the deleted recognition unit from the recognition results. As a result, a new recognition result (2120) appears in the candidate display area (806).

도 21g 및 도 21h에 도시된 바와 같이, 제1 인식 유닛이 필기 입력 인터페이스(804)로부터 제거된 후에, 사용자는 삭제된 인식 유닛에 의해 이전에 점유되었던 영역에 복수의 새로운 필기 획들(2122)을 제공하였다. 사용자 디바이스는 필기 입력 영역(804)에서 현재 누적된 필기 입력을 재분할하였다. 필기 입력으로부터 식별된 인식 유닛들에 기초하여, 사용자 디바이스는 후보 디스플레이 영역(806)에서 인식 결과들(예컨대, 결과들(2124, 2126))을 다시 생성하였다. 도 21g 및 도 21h는, 사용자가 인식 결과들 중 하나(예컨대, 결과(2124))를 (예컨대, 접촉(2128)을 통해) 선택하고, 선택된 인식 결과의 텍스트가 텍스트 입력 영역(808)으로 입력됨을 도시한다.As illustrated in FIGS. 21g and 21h , after the first recognition unit is removed from the handwriting input interface (804), the user has provided a plurality of new handwriting strokes (2122) in the area previously occupied by the deleted recognition unit. The user device has re-segmented the currently accumulated handwriting input in the handwriting input area (804). Based on the recognition units identified from the handwriting input, the user device has re-generated recognition results (e.g., results (2124), 2126)) in the candidate display area (806). FIGS. 21g and 21h illustrate that the user selects one of the recognition results (e.g., result (2124)) (e.g., via contact (2128)) and inputs text of the selected recognition result into the text input area (808).

도 22a 및 도 22b는, 인식 유닛들이 형성된 시간 순서에 상관없이, 현재 필기 입력에서 식별된 개별 인식 유닛들이 시각적으로 제시되고 개별적으로 삭제될 수 있는 예시적인 프로세스(2200)에 대한 플로차트들이다. 도 21a 내지 도 21h는 일부 실시예들에 따른 프로세스(2200)를 도시한다.Figures 22A and 22B are flowcharts for an exemplary process (2200) by which individual recognition units identified in a current handwriting input are visually presented and can be individually deleted, regardless of the time order in which the recognition units were formed. Figures 21A through 21H illustrate a process (2200) according to some embodiments.

예시적인 프로세스(2200)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(2202). 필기 입력은 디바이스에 결합된 터치 감응 표면 상에서 제공되는 복수의 필기 획들을 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 필기 입력 영역(예컨대, 필기 입력 영역(804))에서 복수의 필기 획들을 렌더링한다(2204). 일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들을 2개 이상의 인식 유닛들로 분할하는데(2206), 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함한다.In an exemplary process (2200), a user device receives handwriting input from a user (2202). The handwriting input comprises a plurality of handwriting strokes provided on a touch-sensitive surface coupled to the device. In some embodiments, the user device renders the plurality of handwriting strokes in a handwriting input area of a handwriting input interface (e.g., handwriting input area (804)) (2204). In some embodiments, the user device segments the plurality of handwriting strokes into two or more recognition units (2206), each recognition unit comprising a distinct subset of the plurality of handwriting strokes.

일부 실시예들에서, 사용자 디바이스는 사용자로부터 편집 요청을 수신한다(2208). 일부 실시예들에서, 편집 요청은 필기 입력 인터페이스에서 제공되는 사전결정된 어포던스(예컨대, 도 21d의 어포던스(2112)) 위에서 검출되는 접촉이다(2210). 일부 실시예들에서, 편집 요청은 필기 입력 인터페이스에서의 사전결정된 영역 위에서 검출되는 탭 제스처이다(2212). 일부 실시예들에서, 사전결정된 영역은 필기 입력 인터페이스의 필기 입력 영역 내에 있다. 일부 실시예들에서, 사전결정된 영역은 필기 입력 인터페이스의 필기 입력 영역의 외측에 있다. 일부 실시예들에서, 필기 입력 영역의 외측에서의 또 다른 사전결정된 제스처(예컨대, 크로스 제스처(cross gesture), 수평 스와이프 제스처, 수직 스와이프 제스처, 비스듬한 스와이프 제스처)가 편집 요청으로서 사용될 수 있다. 필기 입력 영역 외측에서의 제스처들은 그것이 필기 입력 영역 외측에서 제공되기 때문에 필기 획으로부터 쉽게 구별될 수 있다.In some embodiments, the user device receives an edit request from the user (2208). In some embodiments, the edit request is a contact detected over a predetermined affordance provided in the handwriting input interface (e.g., affordance 2112 of FIG. 21D ) (2210). In some embodiments, the edit request is a tap gesture detected over a predetermined area in the handwriting input interface (2212). In some embodiments, the predetermined area is within the handwriting input area of the handwriting input interface. In some embodiments, the predetermined area is outside the handwriting input area of the handwriting input interface. In some embodiments, another predetermined gesture outside the handwriting input area (e.g., a cross gesture, a horizontal swipe gesture, a vertical swipe gesture, an oblique swipe gesture) can be used as the edit request. Gestures outside the handwriting input area can be easily distinguished from handwritten strokes because they are provided outside the handwriting input area.

일부 실시예들에서, 편집 요청에 응답하여, 사용자 디바이스는 필기 입력 영역에서 2개 이상의 인식 유닛들을, 예컨대, 도 21d의 박스들(2108, 2110)을 사용하여, 시각적으로 구별한다(2214). 일부 실시예들에서, 2개 이상의 인식 유닛들을 시각적으로 구별하는 것은 필기 입력 영역에서 2개 이상의 인식 유닛들 사이의 개별 경계들을 강조하는 것을 추가로 포함한다(2216). 다양한 실시예들에서, 현재 필기 입력에서 식별된 인식 유닛들을 시각적으로 구별하는 상이한 방식들이 이용될 수 있다.In some embodiments, in response to an edit request, the user device visually distinguishes (2214) two or more recognition units in the handwriting input area, for example, using boxes (2108, 2110) of FIG. 21D . In some embodiments, visually distinguishing the two or more recognition units further comprises highlighting individual boundaries between the two or more recognition units in the handwriting input area (2216). In various embodiments, different ways of visually distinguishing recognition units identified in the current handwriting input may be utilized.

일부 실시예들에서, 사용자 디바이스는 필기 입력 영역으로부터 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단을 제공한다(2218). 일부 실시예들에서, 예컨대, 도 21d의 삭제 버튼들(2116, 2118)에 의해 도시된 바와 같이, 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단은 각 인식 유닛에 근접하여 디스플레이되는 개별 삭제 버튼이다. 일부 실시예들에서, 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단은 각 인식 유닛에 대한 사전결정된 삭제 제스처 입력을 검출하기 위한 수단이다. 일부 실시예들에서, 사용자 디바이스는 강조된 인식 유닛들에 대한 개별 삭제 어포던스를 눈에 보이게 디스플레이하지 않는다. 대신에, 일부 실시예들에서, 사용자는 삭제 제스처를 사용하여 삭제 제스처 아래의 개별 인식 유닛을 삭제하는 것이 허용된다. 일부 실시예들에서, 사용자 디바이스가 시각적으로 강조된 방식으로 인식 유닛들을 디스플레이하고 있기 때문에, 사용자 디바이스는 필기 입력 영역에서 추가적인 필기 획들을 허용하지 않는다. 대신에, 시각적으로 강조된 인식 유닛 위에서 검출되는 사전결정된 제스처 또는 임의의 제스처는 사용자 디바이스가 필기 입력 영역으로부터 인식 유닛을 제거하도록 할 것이고, 그에 따라 후보 디스플레이 영역에서 디스플레이된 인식 결과들을 개정하도록 할 것이다. 일부 실시예들에서, 탭 제스처는 사용자 디바이스가 필기 인식 영역에서 식별되는 개별 인식 유닛들을 시각적으로 강조하도록 하고, 이어서 사용자는 삭제 버튼을 사용하여 개별 인식 유닛들을 역기입 방향으로 하나씩 삭제할 수 있다.In some embodiments, the user device provides means for individually deleting each of the two or more recognition units from the handwriting input area (2218). In some embodiments, the means for individually deleting each of the two or more recognition units is an individual delete button displayed proximate each recognition unit, as illustrated by, for example, the delete buttons (2116, 2118) of FIG. 21D . In some embodiments, the means for individually deleting each of the two or more recognition units is means for detecting a predetermined delete gesture input for each recognition unit. In some embodiments, the user device does not visibly display an individual delete affordance for the highlighted recognition units. Instead, in some embodiments, the user is permitted to use the delete gesture to delete the individual recognition unit under the delete gesture. In some embodiments, because the user device is displaying the recognition units in a visually highlighted manner, the user device does not allow additional handwriting strokes in the handwriting input area. Instead, a predetermined or arbitrary gesture detected over a visually highlighted recognition unit will cause the user device to remove the recognition unit from the handwriting input area, thereby revising the recognition results displayed in the candidate display area. In some embodiments, a tap gesture causes the user device to visually highlight individual recognition units identified in the handwriting recognition area, and the user can then use a delete button to delete the individual recognition units, one by one, in the reverse writing direction.

일부 실시예들에서, 예컨대, 도 21e에 도시된 바와 같이, 사용자 디바이스는 사용자로부터 그리고 제공된 수단을 통하여, 필기 입력 영역으로부터 2개 이상의 인식 유닛들 중 제1 인식 유닛을 개별적으로 삭제하기 위한 삭제 입력을 수신한다(2224). 예컨대, 도 21f에 도시된 바와 같이, 사용자 디바이스는, 삭제 입력에 응답하여, 필기 입력 영역으로부터 제1 인식 유닛에서의 필기 획들의 개별 서브세트를 제거한다(2226). 일부 실시예들에서, 제1 인식 유닛은 2개 이상의 인식 유닛들 중에서 공간적으로 초기 인식 유닛이다. 일부 실시예들에서, 예컨대, 도 21e 및 도 21f에 도시된 바와 같이, 제1 인식 유닛은 2개 이상의 인식 유닛들 중에서 공간적으로 중간 인식 유닛이다. 일부 실시예들에서, 제1 인식 유닛은 2개 이상의 인식 유닛들 중에서 공간적으로 최후 인식 유닛이다.In some embodiments, for example, as illustrated in FIG. 21e , the user device receives a delete input from the user and via provided means to individually delete a first recognition unit of the two or more recognition units from the handwriting input area (2224). For example, as illustrated in FIG. 21f , the user device, in response to the delete input, removes (2226) a respective subset of handwritten strokes in the first recognition unit from the handwriting input area. In some embodiments, the first recognition unit is a spatially initial recognition unit of the two or more recognition units. In some embodiments, for example, as illustrated in FIGS. 21e and 21f , the first recognition unit is a spatially intermediate recognition unit of the two or more recognition units. In some embodiments, the first recognition unit is a spatially final recognition unit of the two or more recognition units.

일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들로부터 분할 격자를 생성하는데(2228), 분할 격자는 복수의 필기 획들로부터 식별되는 인식 유닛들의 개별 세트를 각각 표시하는 복수의 대안적인 분할 체인들을 포함한다. 예를 들어, 도 21g는 인식 결과들(2024, 2026)을 도시하는데, 여기서 인식 결과(2024)는 2개의 인식 유닛들을 갖는 하나의 분할 체인으로부터 생성되고, 인식 결과(2026)는 3개의 인식 유닛들을 갖는 다른 분할 체인으로부터 생성된다. 일부 실시예들에서, 사용자 디바이스는 사용자로부터 2개 이상의 연속 편집 요청들을 수신한다(2230). 예를 들어, 2개 이상의 연속 편집 요청은 도 21g의 어포던스(2112) 상에서의 여러 번의 연속 탭들일 수 있다. 일부 실시예들에서, 2개 이상의 연속 편집 요청들 각각에 응답하여, 사용자 디바이스는 필기 입력 영역에서 인식 유닛들의 개별 세트를 복수의 대안적인 분할 체인들 중 다른 분할 체인으로부터 시각적으로 구별한다(2232). 예를 들어, 제1 탭 제스처에 응답하여, 필기 입력 영역(804)에서 (예컨대, 각각 문자들 "帽" 및 "子"에 대한) 2개의 인식 유닛들이 강조되고, 제2 탭 제스처에 응답하여, (예컨대, 각각 문자들 "巾", "冒", 및 "子"에 대한) 3개의 인식 유닛들이 강조된다. 일부 실시예들에서, 제3 탭 제스처에 응답하여, 모든 인식 유닛들로부터 시각적 강조가 선택적으로 제거되고, 필기 입력 영역이 정상 상태로 되돌아와서 추가적인 획들을 허용할 준비를 한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 현재 표시되는 인식 유닛들의 개별 세트 각각을 개별적으로 삭제하기 위한 수단을 제공한다(2234). 일부 실시예들에서, 이 수단은 각각의 강조된 인식 유닛에 대한 개별 삭제 버튼이다. 일부 실시예들에서, 이 수단은 각각의 강조된 인식 유닛 위에서의 사전결정된 삭제 제스처를 검출하고 그리고 사전결정된 삭제 제스처 하에서 강조된 인식 유닛을 삭제하는 기능을 호출하기 위한 수단이다.In some embodiments, the user device generates a segmentation grid (2228) from the plurality of handwritten strokes, wherein the segmentation grid includes a plurality of alternative segmentation chains, each of which represents a distinct set of recognition units identified from the plurality of handwritten strokes. For example, FIG. 21G illustrates recognition results (2024, 2026), where the recognition result (2024) is generated from one segmentation chain having two recognition units, and the recognition result (2026) is generated from another segmentation chain having three recognition units. In some embodiments, the user device receives two or more consecutive edit requests from the user (2230). For example, the two or more consecutive edit requests may be multiple consecutive taps on the affordance (2112) of FIG. 21G. In some embodiments, in response to each of the two or more consecutive edit requests, the user device visually distinguishes the distinct set of recognition units in the handwriting input area from other segmentation chains among the plurality of alternative segmentation chains (2232). For example, in response to a first tap gesture, two recognition units (e.g., for the characters "帽" and "子", respectively) are highlighted in the handwriting input area (804), and in response to a second tap gesture, three recognition units (e.g., for the characters "巾", "冒", and "子", respectively) are highlighted. In some embodiments, in response to a third tap gesture, the visual highlighting is selectively removed from all of the recognition units, and the handwriting input area returns to a normal state and ready to accept additional strokes. In some embodiments, the user device provides means for individually deleting each of the individual sets of recognition units currently displayed in the handwriting input area (2234). In some embodiments, the means is an individual delete button for each highlighted recognition unit. In some embodiments, the means is means for detecting a predetermined delete gesture over each highlighted recognition unit and invoking a function for deleting the highlighted recognition unit under the predetermined delete gesture.

본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 연속 입력 모드를 제공한다. 필기 입력 영역의 영역이 휴대용 사용자 디바이스 상에서 제한되기 때문에, 사용자에 의해 제공된 필기 입력들을 저장(cache)하는 방식을 제공하고 사용자가 이전에 제공된 필기 입력들을 커밋하지 않고 스크린 공간을 재사용할 수 있게 하는 것이 때때로 바람직하다. 일부 실시예들에서, 사용자 디바이스는 스크롤링 필기 입력 영역을 제공하는데, 여기서 사용자가 필기 입력 영역의 최후에 충분히 가까워지면 입력 영역은 점차적으로 소정량 (예컨대, 한 번에 하나의 인식 유닛) 만큼 시프트한다. 일부 실시예들에서, 필기 입력 영역에서의 기존의 인식 유닛들을 시프트하는 것이 사용자의 기입 프로세스를 방해하고 어쩌면 인식 유닛들의 정확한 분할을 방해할 수 있기 때문에, 인식 유닛들을 동적으로 시프트하지 않고 입력 영역의 이전에 사용된 구역을 재활용하는 것이 때때로 유리하다. 일부 실시예들에서, 사용자가 텍스트 입력 영역으로 아직 입력되지 않은 필기 입력에 의해 점유되는 영역을 재사용할 때, 필기 입력 영역에 대한 최상위 인식 결과가 텍스트 입력 영역으로 자동으로 입력되어서, 사용자가 최상위 인식 결과를 명시적으로 선택하지 않고서 계속해서 새로운 필기 입력을 제공할 수 있게 한다.As described herein, in some embodiments, the user device provides a continuous input mode in the handwriting input area. Since the area of the handwriting input area is limited on a portable user device, it is sometimes desirable to provide a way to cache handwriting inputs provided by the user and to allow the user to reuse screen space without committing previously provided handwriting inputs. In some embodiments, the user device provides a scrolling handwriting input area, where the input area gradually shifts by a predetermined amount (e.g., one recognition unit at a time) as the user gets close enough to the end of the handwriting input area. In some embodiments, it is sometimes advantageous to reuse previously used areas of the input area without dynamically shifting recognition units, since shifting existing recognition units in the handwriting input area can interfere with the user's writing process and possibly prevent accurate segmentation of the recognition units. In some embodiments, when the user reuses an area occupied by a handwriting input that has not yet been entered into the text input area, the top recognition result for the handwriting input area is automatically entered into the text input area, allowing the user to continue to provide new handwriting input without explicitly selecting the top recognition result.

일부 종래의 시스템들에서, 사용자는 필기 입력 영역에 여전히 나타나 있는 기존의 필기 입력 위에 기입하는 것이 허용된다. 그러한 시스템들에서는, 새로운 획이 이전 인식 유닛의 부분인지 또는 새로운 인식 유닛의 부분인지 여부를 판정하기 위해 시간 정보가 사용된다. 그러한 시간 정보 의존적인 시스템들은 사용자가 필기 입력을 제공하는 속도 및 템포에 대한 엄격한 요건들을 두는데, 이는 수많은 사용자들에 의해 충족되기 어렵다. 추가적으로, 그 필기 입력의 시각적 렌더링은 사용자가 해독하기 어려운 혼란 상태가 될 수 있다. 따라서, 그 기입 프로세스는 사용자에게 불만스럽고 혼란스러울 수 있어, 불쾌한 사용자 경험이 된다.In some conventional systems, a user is allowed to write over existing handwriting input that is still visible in the handwriting input area. In such systems, timing information is used to determine whether a new stroke is part of a previous recognition unit or a new recognition unit. Such timing-dependent systems place strict requirements on the speed and tempo at which the user provides the handwriting input, which are difficult for many users to meet. Additionally, the visual rendering of the handwriting input can be confusing and difficult for the user to decipher. Thus, the writing process can be frustrating and confusing to the user, resulting in an unpleasant user experience.

본 명세서에 설명되는 바와 같이, 사용자가 이전에 기입된 인식 유닛에 의해 점유되는 영역을 재사용하고 필기 입력 영역에서 계속해서 기입할 수 있을 때를 지시하기 위해 페이딩 프로세스가 사용된다. 일부 실시예들에서, 페이딩 프로세스는 임계량의 시간 동안 필기 입력 영역에서 제공된 각 인식 유닛의 시인성을 점차적으로 감소시켜서, 새로운 획들이 그 위에 기입될 때, 기존의 텍스트가 새로운 획들과 시각적으로 경쟁하지 않게 한다. 일부 실시예들에서, 페이딩된 인식 유닛 위에 기입하는 것은, 사용자가 기입을 중지하고 최상위 인식 결과에 대한 선택 입력을 명시적으로 제공하도록 요구하지 않고서, 자동으로 인식 유닛에 대한 최상위 인식 결과가 텍스트 입력 영역으로 입력되도록 한다. 최상위 인식 결과의 이러한 암시적 및 자동 확인은 필기 입력 인터페이스의 효율적 입력 및 속도를 개선시키고, 현재 텍스트 구성의 생각 흐름을 유지하기 위해 사용자에게 주어지는 인지적 부담을 감소시킨다. 일부 실시예들에서, 페이딩된 인식 유닛 위에 기입하는 것은 최상위 검색 결과의 자동 선택을 야기하지 않는다. 그 대신에, 페이딩된 인식 유닛들이 필기 입력 스택에 저장되고, 현재 필기 입력으로서 새로운 필기 입력과 조합된다. 사용자는 선택을 행하기 전에 필기 입력 스택에 누적된 모든 인식 유닛들에 기초하여 생성된 인식 결과들을 볼 수 있다.As described herein, a fading process is used to indicate when a user can reuse an area occupied by a previously written recognition unit and continue writing in the handwriting input area. In some embodiments, the fading process gradually reduces the visibility of each recognition unit provided in the handwriting input area over a threshold amount of time so that existing text does not visually compete with new strokes as new strokes are written over it. In some embodiments, writing over a faded recognition unit automatically causes the top-ranked recognition result for the recognition unit to be entered into the text input area without requiring the user to stop writing and explicitly provide a selection input for the top-ranked recognition result. This implicit and automatic confirmation of the top-ranked recognition result improves the efficiency and speed of the handwriting input interface and reduces the cognitive burden placed on the user to maintain the flow of thought of the current text composition. In some embodiments, writing over a faded recognition unit does not cause automatic selection of the top-ranked search result. Instead, the faded recognition units are stored in the handwriting input stack and combined with the new handwriting input as the current handwriting input. The user can view recognition results generated based on all recognition units accumulated in the handwriting input stack before making a selection.

도 23a 내지 도 23j는, 예컨대 사전결정된 시간량 후에 필기 입력 영역의 상이한 구역에 제공된 인식 유닛들이 그들의 개별 구역들로부터 점차적으로 페이드아웃되고, 특정한 구역에서 페이드아웃이 발생한 후에 사용자가 그 구역에서 새로운 필기 획들을 제공하는 것이 허용되는 예시적인 사용자 인터페이스들 및 프로세스들을 도시한다.FIGS. 23A through 23J illustrate exemplary user interfaces and processes in which recognition units provided in different zones of a handwriting input area are gradually faded out from their individual zones after a predetermined amount of time, for example, and a user is permitted to provide new handwriting strokes in a particular zone after the fade-out has occurred in that zone.

도 23a에 도시된 바와 같이, 사용자는 필기 입력 영역(804)에서 복수의 필기 획들(2302)(예컨대, 대문자 "I"에 대한 3개의 필기 획들)을 제공하였다. 필기 획들(2302)은 사용자 디바이스에 의해 인식 유닛으로서 식별된다. 일부 실시예들에서, 필기 입력 영역(804)에 현재 나타낸 필기 입력은 사용자 디바이스의 필기 입력 스택에서의 제1 층에 저장된다. 식별된 인식 유닛에 기초하여 생성된 다수의 인식 결과들이 후보 디스플레이 영역(804)에서 제공된다.As illustrated in FIG. 23A, a user has provided a plurality of handwritten strokes (2302) (e.g., three handwritten strokes for a capital letter “I”) in a handwriting input area (804). The handwritten strokes (2302) are identified by the user device as recognition units. In some embodiments, the handwriting input currently displayed in the handwriting input area (804) is stored in a first layer of a handwriting input stack of the user device. A plurality of recognition results generated based on the identified recognition units are provided in the candidate display area (804).

도 23b는, 사용자가 계속해서 획들(2304)의 오른쪽에 하나 이상의 획들(2302)을 기입할 때, 제1 인식 유닛에서의 필기 획들(2302)이 필기 입력 영역(804)에서 점차적으로 페이드아웃하기 시작하는 것을 도시한다. 일부 실시예들에서, 제1 인식 유닛의 시각적 렌더링의 점차적 페이딩 또는 소멸을 모방하는 애니메이션이 디스플레이된다. 예를 들어, 애니메이션은 화이트보드로부터 증발하는 잉크의 시각적 효과를 생성할 수 있다. 일부 실시예들에서, 인식 유닛의 페이딩은 전체 인식 유닛에 걸쳐서 균일하지 않다. 일부 실시예들에서, 인식 유닛의 페이딩은 시간 경과에 따라 증가하고, 결국 인식 유닛은 필기 영역에서 전혀 보이게 않게 된다. 그러나, 인식 유닛이 필기 입력 영역(804)에서 더 이상 보이지 않더라도, 일부 실시예들에서, 보이지 않는 인식 유닛이 필기 입력 스택의 상단에 남아 있고, 그 인식 유닛으로부터 생성된 인식 결과들이 후보 디스플레이 영역에서 계속해서 디스플레이된다. 일부 실시예들에서, 페이딩된 인식 유닛은 새로운 필기 입력이 그 위에 기입될 때까지 시야에서 완전히 제거되지는 않는다.FIG. 23B illustrates that as the user continues to write one or more strokes (2302) to the right of the strokes (2304), the handwritten strokes (2302) in the first recognition unit begin to gradually fade out in the handwriting input area (804). In some embodiments, an animation is displayed that mimics the gradual fading or disappearance of the visual rendering of the first recognition unit. For example, the animation may create the visual effect of ink evaporating from a whiteboard. In some embodiments, the fading of the recognition unit is not uniform across the entire recognition unit. In some embodiments, the fading of the recognition unit increases over time, eventually causing the recognition unit to become completely invisible in the handwriting input area. However, even if the recognition unit is no longer visible in the handwriting input area (804), in some embodiments, the invisible recognition unit remains at the top of the handwriting input stack, and recognition results generated from that recognition unit continue to be displayed in the candidate display area. In some embodiments, the faded recognition unit is not completely removed from view until new handwriting input is written over it.

일부 실시예들에서, 사용자 디바이스는 페이딩 애니메이션의 시작 시에 즉각적으로 페이딩된 인식 유닛에 의해 점유되는 구역 위에 새로운 필기 입력이 제공될 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 페이딩이 소정 단계로 (예컨대, 전혀 짐작이 가지 않는 레벨로 또는 인식이 그 구역에서 전혀 보이지 않을 때까지) 진행한 후에만 페이딩된 인식 유닛에 의해 점유되는 구역 위에 새로운 필기 입력이 제공될 수 있게 한다.In some embodiments, the user device enables new handwriting input to be provided over the area occupied by the faded recognition unit immediately upon the start of the fading animation. In some embodiments, the user device enables new handwriting input to be provided over the area occupied by the faded recognition unit only after the fading has progressed to a predetermined level (e.g., to a level that is completely imperceptible or until recognition is completely invisible in the area).

도 23c는 제1 인식 유닛(즉, 획들(2302))이 그의 페이딩 프로세스를 완료한 (예컨대, 잉크 색이 매우 약한 레벨에서 안정화되었거나 또는 보이지 않게 된) 것을 도시한다. 사용자 디바이스는 사용자에 의해 제공된 추가적인 필기 획들로부터 추가적인 인식 유닛들(예컨대, 필기 문자들 "a" 및 "m"에 대한 인식 유닛들)을 식별하였고, 후보 디스플레이 영역(806)에서 제시되는 인식 결과들을 업데이트하였다.FIG. 23c illustrates that the first recognition unit (i.e., strokes (2302)) has completed its fading process (e.g., the ink color has stabilized at a very weak level or has become invisible). The user device has identified additional recognition units (e.g., recognition units for the handwritten characters "a" and "m") from additional handwritten strokes provided by the user and updated the recognition results presented in the candidate display area (806).

도 22d 내지 도 22f는, 시간이 지남에 따라, 사용자가 필기 입력 영역(804)에서 복수의 추가 필기 획들(예컨대, 2304, 2306)을 제공한 것을 도시한다. 동시에, 이전에 식별된 인식 유닛들이 점차적으로 필기 입력 영역(804)으로부터 페이딩되어 없어진다. 일부 실시예들에서, 인식 유닛이 식별된 후에 각 인식 유닛에 대해 그 자신의 페이딩 프로세스를 시작하는 것은 사전결정된 시간량이 걸린다. 일부 실시예들에서, 각 인식 유닛에 대한 페이딩 프로세스는 사용자가 그에 후속하여 제2 인식 유닛을 입력하기 시작할 때까지 시작하지 않는다. 도 23b 내지 도 23f에 도시된 바와 같이, 필기 입력이 초서체로 제공될 때, 단일 획(예컨대, 획(2304) 또는 획(2306))이 필기 입력 영역에서 다수의 인식 유닛들(예컨대, 단어 "am" 또는 "back"에서의 각 필기 문자에 대한 인식 유닛)에 걸쳐서 이어질 수 있다.FIGS. 22d-22f illustrate that, over time, the user provides a plurality of additional handwritten strokes (e.g., 2304, 2306) in the handwriting input area (804). At the same time, previously identified recognition units are gradually faded out of the handwriting input area (804). In some embodiments, it takes a predetermined amount of time for each recognition unit to begin its own fading process after the recognition unit is identified. In some embodiments, the fading process for each recognition unit does not begin until the user begins inputting a second recognition unit subsequently thereto. As illustrated in FIGS. 23b-23f , when the handwriting input is provided in cursive, a single stroke (e.g., stroke 2304 or stroke 2306) may span multiple recognition units (e.g., recognition units for each handwritten character in the word "am" or "back") in the handwriting input area.

도 22g는, 인식 유닛이 그의 페이딩 프로세스를 시작한 후에도, 사용자가 삭제 버튼(2310) 상에서의 (예컨대, 접촉(2308)에 뒤이은 즉각적인 들어올림에 의해 지시되는 바와 같이) 사전결정된 회복 입력, 예컨대, 탭 제스처에 의해 그것을 페이딩되지 않은 상태로 다시 되돌릴 수 있는 것을 도시한다. 인식 유닛들이 회복될 때, 그의 외관은 정상 시인성 레벨로 되돌아온다. 일부 실시예들에서, 페이딩된 인식 유닛들의 회복은 필기 입력 영역(804)에서 역기입 방향으로 문자 단위로 이루어진다. 일부 실시예들에서, 페이딩된 인식 유닛들의 회복은 필기 입력 영역(804)에서 단어 단위로 이루어진다. 도 23g에 도시된 바와 같이, 단어 "back"에 대응하는 인식 유닛들이 완전 페이딩된 상태로부터 전혀 페이딩되지 않은 상태로 회복되었다. 일부 실시예들에서, 페이딩 프로세스를 시작하기 위한 클록은 인식 유닛이 페이딩되지 않은 상태로 회복될 때 인식 유닛마다 재설정된다.FIG. 22g illustrates that even after a recognition unit has started its fading process, the user can return it to its unfaded state by a predetermined recovery input, e.g., a tap gesture, on the delete button (2310) (e.g., as indicated by an immediate lift following contact (2308). When the recognition units are restored, their appearance returns to their normal visibility level. In some embodiments, the recovery of faded recognition units is character-by-character in the reverse direction in the handwriting input area (804). In some embodiments, the recovery of faded recognition units is word-by-word in the handwriting input area (804). As illustrated in FIG. 23g, the recognition units corresponding to the word "back" have been restored from a fully faded state to a not-faded state at all. In some embodiments, the clock for initiating the fading process is reset for each recognition unit when the recognition unit is restored to an unfaded state.

도 22h는, 삭제 버튼 상에서의 지속된 접촉이 디폴트 기입 방향에서의 마지막 인식 유닛(예컨대, 단어 "back"에서의 문자 "k"에 대한 인식 유닛)이 필기 입력 영역(804)으로부터 삭제되도록 하는 것을 도시한다. 삭제 입력이 계속해서 유지됨에 따라, 더 많은 인식 유닛들(예컨대, 단어 "back"에서의 문자들 "c", "a", "b"에 대한 인식 유닛들)이 역기입 방향에서 하나씩 삭제된다. 일부 실시예들에서, 인식 유닛의 삭제는 단어 단위이고, 필기 입력 영역(804)으로부터 삭제되는 필기 단어 "back"의 모든 문자들이 동시에 제거된다. 도 22h는 또한, 필기 단어 "back"에서의 문자 "b"에 대한 인식 유닛의 삭제 후에 접촉(2308)이 삭제 버튼(2310) 상에 유지됨에 따라, 이전에 페이딩된 인식 유닛 "m"이 역시 회복되는 것을 도시한다.FIG. 22h illustrates that a sustained contact on the delete button causes the last recognition unit in the default writing direction (e.g., the recognition unit for the letter "k" in the word "back") to be deleted from the handwriting input area (804). As the delete input continues to be maintained, more recognition units (e.g., the recognition units for the letters "c", "a", and "b" in the word "back") are deleted one by one in the reverse writing direction. In some embodiments, the deletion of recognition units is word-by-word, such that all letters of the handwritten word "back" are removed simultaneously from the handwriting input area (804). FIG. 22h also illustrates that as the contact (2308) is maintained on the delete button (2310) after the deletion of the recognition unit for the letter "b" in the handwritten word "back", the previously faded recognition unit "m" is also restored.

도 23i는, 필기 단어 "am"에서의 회복된 인식 유닛 "m"의 삭제가 발생하기 전에 삭제 입력이 중단되면, 회복된 인식 유닛이 점차적으로 또 다시 페이딩되는 것을 도시한다. 일부 실시예들에서, 각 인식 유닛의 상태(예컨대, 하나 이상의 페이딩된 상태들 및 페이딩되지 않은 상태의 세트로부터 선택된 상태)가 필기 입력 스택에서 유지되고 업데이트된다.FIG. 23i illustrates that if the deletion input is interrupted before deletion of the recovered recognition unit "m" in the handwritten word "am" occurs, the recovered recognition unit gradually fades again. In some embodiments, the state of each recognition unit (e.g., a state selected from a set of one or more faded states and a non-faded state) is maintained and updated in the handwriting input stack.

도 23j는, 사용자가 필기 입력 영역에서의 페이딩된 인식 유닛(예컨대, 문자 "I"에 대한 인식 유닛)에 의해 점유되는 영역 위에 하나 이상의 획들(2312)을 제공했을 때, 일부 실시예들에서, 도 23i 및 도 23j에 도시된 바와 같이, 획들(2312) 이전에 이루어진 필기 입력에 대한 최상위 인식 결과(예컨대, 결과(2314))의 텍스트가 텍스트 입력 영역(808)으로 자동으로 입력되는 것을 도시한다. 도 23j에 도시된 바와 같이, 텍스트 "I am"은 더 이상 잠정적인 것으로 나타나 있지 않고 그 대신에 텍스트 입력 영역(808)에서 커밋되었다. 일부 실시예들에서, 일단 완전 또는 부분 페이딩된 필기 입력에 대해 텍스트 입력이 이루어지면, 필기 입력이 필기 입력 스택으로부터 제거된다. 새롭게 입력된 획들(예컨대, 획들(2312))이 필기 입력 스택에서 현재 입력으로 된다.FIG. 23J illustrates that when a user provides one or more strokes (2312) over an area occupied by a faded recognition unit (e.g., a recognition unit for the letter “I”) in the handwriting input area, in some embodiments, the text of the top-level recognition result (e.g., result (2314)) for the handwriting input made prior to the strokes (2312) is automatically entered into the text input area (808), as illustrated in FIGS. 23I and 23J . As illustrated in FIG. 23J , the text “I am” is no longer shown as provisional but instead is committed in the text input area (808). In some embodiments, once text entry is made for a fully or partially faded handwriting input, the handwriting input is removed from the handwriting input stack. The newly entered strokes (e.g., strokes (2312)) become the current input in the handwriting input stack.

도 23j에 도시된 바와 같이, 텍스트 "I am"은 더 이상 잠정적인 것으로 나타나 있지 않고 그 대신에 텍스트 입력 영역(808)에서 커밋되었다. 일부 실시예들에서, 일단 완전 또는 부분 페이딩된 필기 입력에 대해 텍스트 입력이 이루어지면, 필기 입력이 필기 입력 스택으로부터 제거된다. 새롭게 입력된 획들(예컨대, 획들(2312))이 필기 입력 스택에서 현재 입력으로 된다.As illustrated in FIG. 23j, the text "I am" is no longer shown as provisional but instead is committed in the text input area (808). In some embodiments, once text input is made for a fully or partially faded handwriting input, the handwriting input is removed from the handwriting input stack. The newly entered strokes (e.g., strokes (2312)) become the current input in the handwriting input stack.

일부 실시예들에서, 필기 입력 영역에서의 페이딩된 인식 유닛(예컨대, 문자 "I"에 대한 인식 유닛)에 의해 점유되는 영역 위에 획들(2312)이 제공될 때, 획들(2312) 이전에 이루어진 필기 입력에 대한 최상위 인식 결과(예컨대, 결과(2314))의 텍스트는 텍스트 입력 영역(808)으로 자동으로 입력되지 않는다. 그 대신에, 필기 입력 영역(804)에서의 현재 필기 입력(페이딩된 것과 페이딩되지 않은 것 둘 모두)이 클리어되고, 필기 입력 스택에 저장된다. 새로운 획들(2312)은 필기 입력 스택에서의 저장된 필기 입력에 추가된다. 사용자 디바이스는 필기 입력 스택에서 현재 누적된 필기 입력 전체에 기초하여 인식 결과들을 판정한다. 인식 결과들은 후보 디스플레이 영역에 디스플레이된다. 다시 말하면, 현재 누적된 필기 입력의 일부분만이 필기 입력 영역(804)에 나타나 있더라도, 인식 결과들은 필기 입력 스택에 저장된 전체 필기 입력(보이는 부분과 더 이상 보이지 않는 부분들 둘 모두)에 기초하여 생성된다.In some embodiments, when strokes (2312) are provided over an area occupied by a faded recognition unit (e.g., a recognition unit for the letter “I”) in the handwriting input area, the text of the top-level recognition result (e.g., result (2314)) for the handwriting input made prior to the strokes (2312) is not automatically entered into the text input area (808). Instead, the current handwriting input (both faded and non-faded) in the handwriting input area (804) is cleared and stored in the handwriting input stack. The new strokes (2312) are added to the stored handwriting input in the handwriting input stack. The user device determines recognition results based on the entire currently accumulated handwriting input in the handwriting input stack. The recognition results are displayed in the candidate display area. In other words, even if only a portion of the currently accumulated handwriting input appears in the handwriting input area (804), the recognition results are generated based on the entire handwriting input (both the visible portion and the portions that are no longer visible) stored in the handwriting input stack.

도 23k는, 사용자가 시간 경과에 따라 페이딩된 더 많은 획들(2316)을 필기 입력 영역(804)에서 입력한 것을 도시한다. 도 23l은, 페이딩된 획들(2312, 2316) 위에 기입된 새로운 획(2318)이, 페이딩된 획들(2312, 2316)에 대한 최상위 인식 결과(2320)의 텍스트가 텍스트 입력 영역(808)으로 입력되도록 한 것을 도시한다.FIG. 23K illustrates that the user has entered more faded strokes (2316) into the handwriting input area (804) over time. FIG. 23L illustrates that a new stroke (2318) has been written over the faded strokes (2312, 2316), causing the text of the top recognition result (2320) for the faded strokes (2312, 2316) to be entered into the text input area (808).

일부 실시예들에서, 사용자는 선택적으로 필기 입력을 다수의 라인들로 제공한다. 일부 실시예들에서, 멀티라인 입력이 가능할 때, 새로운 필기 입력을 위해 필기 입력 영역을 클리어하도록 동일한 페이딩 프로세스가 사용될 수 있다.In some embodiments, the user optionally provides handwriting input in multiple lines. In some embodiments, when multi-line input is possible, the same fading process may be used to clear the handwriting input area for new handwriting input.

도 24a 및 도 24b는 필기 입력 인터페이스의 필기 입력 영역에서 페이딩 프로세스를 제공하기 위한 예시적인 프로세스(2400)의 플로차트들이다. 도 23a 내지 도 23k는 일부 실시예들에 따른 프로세스(2400)를 도시한다.FIGS. 24A and 24B are flowcharts of an exemplary process (2400) for providing a fading process in a handwriting input area of a handwriting input interface. FIGS. 23A through 23K illustrate a process (2400) according to some embodiments.

일부 실시예들에서, 디바이스는 사용자로부터 제1 필기 입력을 수신한다(2402). 제1 필기 입력은 복수의 필기 획들을 포함하고, 복수의 필기 획들은 필기 입력 인터페이스의 필기 입력 영역과 연관된 개별 기입 방향을 따라 분포되는 다수의 인식 유닛들을 형성한다. 일부 실시예들에서, 사용자 디바이스는 필기 획이 사용자에 의해 제공됨에 따라 필기 입력 영역에서 복수의 필기 획들 각각을 렌더링한다(2404).In some embodiments, the device receives a first handwriting input from a user (2402). The first handwriting input includes a plurality of handwriting strokes, and the plurality of handwriting strokes form a plurality of recognition units distributed along respective writing directions associated with a handwriting input area of a handwriting input interface. In some embodiments, the user device renders each of the plurality of handwriting strokes in the handwriting input area as the handwriting strokes are provided by the user (2404).

일부 실시예들에서, 사용자 디바이스는 인식 유닛이 완전히 렌더링된 후에 다수의 인식 유닛들 각각에 대한 개별 페이딩 프로세스를 시작한다(2406). 일부 실시예들에서, 개별 페이딩 프로세스 동안, 제1 필기 입력에서의 인식 유닛의 렌더링이 페이딩되어 없어진다. 이것은 일부 실시예들에 따라 도 23a 내지 도 23f에서 예시되어 있다.In some embodiments, the user device initiates an individual fading process for each of the plurality of recognition units after the recognition unit is fully rendered (2406). In some embodiments, during the individual fading process, the rendering of the recognition unit in the first handwriting input is faded away. This is illustrated in FIGS. 23A through 23F according to some embodiments.

일부 실시예들에서, 예컨대, 도 23i 및 도 23j 그리고 도 23k 및 도 23l에 도시된 바와 같이, 사용자 디바이스는 필기 입력 영역 중에서 다수의 인식 유닛의 페이딩된 인식 유닛에 의해 점유되는 구역 위에서 사용자로부터 제2 필기 입력을 수신한다(2408). 일부 실시예들에서, 제2 필기 입력을 수신하는 것에 응답하여(2410): 사용자 디바이스는 필기 입력 영역에서 제2 필기 입력을 렌더링하고(2412), 필기 입력 영역으로부터 모든 페이딩된 인식 유닛들을 클리어한다(2414). 일부 실시예들에서, 인식 유닛이 그의 페이딩 프로세스를 시작하였는지의 여부에 상관없이, 제2 필기 입력 이전에 필기 입력 영역에서 입력된 모든 인식 유닛들이 필기 입력 영역으로부터 클리어된다. 이것은, 예를 들어 도 23i 및 도 23j 그리고 도 23k 및 도 23l에서 예시되어 있다.In some embodiments, for example, as illustrated in FIGS. 23I and 23J and FIGS. 23K and 23L , the user device receives a second handwriting input from the user over an area occupied by a faded recognition unit of a plurality of recognition units in the handwriting input area (2408). In some embodiments, in response to receiving the second handwriting input (2410): the user device renders the second handwriting input in the handwriting input area (2412) and clears all faded recognition units from the handwriting input area (2414). In some embodiments, all recognition units input in the handwriting input area prior to the second handwriting input are cleared from the handwriting input area, regardless of whether the recognition units have begun their fading process. This is illustrated, for example, in FIGS. 23I and 23J and FIGS. 23K and 23L .

일부 실시예들에서, 사용자 디바이스는 제1 필기 입력에 대한 하나 이상의 인식 결과들을 생성한다(2416). 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 인식 결과들을 디스플레이한다(2418). 일부 실시예들에서, 제2 필기 입력을 수신하는 것에 응답하여, 사용자 디바이스는 사용자 선택 없이, 자동으로, 후보 디스플레이 영역에서 디스플레이되는 최상위 인식 결과를 필기 입력 인터페이스의 텍스트 입력 영역에 입력한다(2420). 이것은, 예를 들어 도 23i 및 도 23j 그리고 도 23k 및 도 23l에서 예시되어 있다.In some embodiments, the user device generates one or more recognition results for the first handwriting input (2416). In some embodiments, the user device displays the one or more recognition results in a candidate display area of the handwriting input interface (2418). In some embodiments, in response to receiving the second handwriting input, the user device automatically, without user selection, enters the top recognition result displayed in the candidate display area into a text input area of the handwriting input interface (2420). This is illustrated, for example, in FIGS. 23I and 23J and FIGS. 23K and 23L.

일부 실시예들에서, 사용자 디바이스는 제1 필기 입력 및 제2 필기 입력을 포함하는 입력 스택을 저장한다(2422). 일부 실시예들에서, 사용자 디바이스는 연속된(a concatenation of) 제1 필기 입력 및 제2 필기 입력으로부터 인식되는 문자들의 개별 공간 시퀀스를 각각 포함하는 하나 이상의 다문자 인식 결과들을 생성한다(2424). 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 제2 필기 입력의 렌더링이 제1 필기 입력의 렌더링을 대신하는 동안, 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 다문자 인식 결과들을 디스플레이한다(2426).In some embodiments, the user device stores an input stack including the first handwriting input and the second handwriting input (2422). In some embodiments, the user device generates one or more multi-character recognition results each including a separate spatial sequence of characters recognized from a concatenation of the first handwriting input and the second handwriting input (2424). In some embodiments, the user device displays the one or more multi-character recognition results in a candidate display area of the handwriting input interface while rendering of the second handwriting input in the handwriting input area supersedes rendering of the first handwriting input (2426).

일부 실시예들에서, 각 인식 유닛에 대한 개별 페이딩 프로세스는 인식 유닛이 사용자에 의해 완성된 후 사전결정된 기간이 경과하였을 때 시작된다.In some embodiments, the individual fading process for each recognition unit is initiated a predetermined period of time after the recognition unit has been completed by the user.

일부 실시예들에서, 각 인식 유닛에 대한 페이딩 프로세스는 사용자가 인식 유닛 후의 다음 인식 유닛에 대한 획들을 입력하기 시작하였을 때 시작된다.In some embodiments, the fading process for each recognition unit begins when the user starts entering strokes for the next recognition unit after the recognition unit.

일부 실시예들에서, 각 인식 유닛에 대한 개별 페이딩 프로세스의 최후 상태는 인식 유닛에 대한 사전결정된 최소 시인성(predetermined minimum visibility)을 갖는 상태이다.In some embodiments, the final state of the individual fading process for each recognition unit is a state having a predetermined minimum visibility for the recognition unit.

일부 실시예들에서, 각 인식 유닛에 대한 개별 페이딩 프로세스의 최후 상태는 인식 유닛에 대한 제로 시인성(zero visibility)을 갖는 상태이다.In some embodiments, the final state of the individual fading process for each recognition unit is a state with zero visibility for the recognition unit.

일부 실시예들에서, 제1 필기 입력에서의 마지막 인식 유닛이 페이딩된 후에, 사용자 디바이스는 사용자로부터 사전결정된 회복 입력을 수신한다(2428). 사전결정된 회복 입력을 수신하는 것에 응답하여, 사용자 디바이스는 마지막 인식 유닛을 페이딩된 상태로부터 페이딩되지 않은 상태로 복귀시킨다(2430). 이것은, 예를 들어 도 23f 내지 도 23h에서 예시되어 있다. 일부 실시예들에서, 사전결정된 회복 입력은 필기 입력 인터페이스에서 제공되는 삭제 버튼 상에서 검출되는 초기 접촉이다. 일부 실시예들에서, 삭제 버튼 상에서 검출되는 지속된 접촉은 필기 입력 영역으로부터 마지막 인식 유닛을 삭제하고, 마지막에서 두 번째의 인식 유닛을 페이딩된 상태로부터 페이딩되지 않은 상태로 회복시킨다. 이것은, 예를 들어 도 23g 및 도 23h에서 예시되어 있다.In some embodiments, after the last recognition unit in the first handwriting input has faded, the user device receives a predetermined recovery input from the user (2428). In response to receiving the predetermined recovery input, the user device restores the last recognition unit from a faded state to an unfaded state (2430). This is illustrated, for example, in FIGS. 23F-23H. In some embodiments, the predetermined recovery input is an initial contact detected on a delete button provided in the handwriting input interface. In some embodiments, a sustained contact detected on the delete button deletes the last recognition unit from the handwriting input area and restores the penultimate recognition unit from a faded state to an unfaded state. This is illustrated, for example, in FIGS. 23G and 23H.

본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 필기 문자들의 획 순서 독립적이며 획 방향 독립적인 인식을 수행한다. 일부 실시예들에서, 인식 모델은 필기 인식 모델의 어휘에서의 상이한 문자들에 대응하는 기입 샘플들의 플랫 이미지들에 포함되는 공간-유도 특징부들에 대해서만 훈련된다. 기입 샘플의 이미지들이 이미지들에 포함되는 개별 획들에 관련된 임의의 시간 정보를 포함하지 않기 때문에, 결과적인 인식 모델은 획 순서 독립적이며 획 방향 독립적이다.As described herein, the multi-script handwriting recognition model performs stroke-order-independent and stroke-direction-independent recognition of handwritten characters. In some embodiments, the recognition model is trained only on spatially-derived features contained in flat images of writing samples corresponding to different characters in the vocabulary of the handwriting recognition model. Since the images of the writing samples do not contain any temporal information related to the individual strokes contained in the images, the resulting recognition model is stroke-order-independent and stroke-direction-independent.

상기 예시된 바와 같이, 획 순서 및 획 방향 독립적인 필기 인식은 문자들의 시간적 생성에 관련된 정보(예컨대, 문자들에서의 획들의 시간적 시퀀스들)에 의존하는 종래의 인식 시스템들에 비해 많은 이점들을 제공한다. 그러나, 실시간 필기 인식 시나리오들에서, 개별 획들에 관련된 시간 정보가 이용 가능하고, 이 정보를 이용하여 필기 인식 시스템의 인식 정확도를 개선시키는 것은 때때로 유익하다. 하기 내용은 시간-유도 획-분포 정보를 필기 인식 모델의 공간 특징부 추출로 통합하는 기법을 설명하는데, 여기서 시간-유도 획-분포 정보의 사용은 필기 인식 시스템의 획 순서 및/또는 획 방향 독립성을 손상시키지 않는다. 상이한 문자들에 관련된 획-분포 정보에 기초하여, 독특하게 상이한 세트의 획들로 생성되는 유사해 보이는 문자들 간의 명확화가 가능해진다.As exemplified above, stroke-order and stroke-direction independent handwriting recognition offers many advantages over conventional recognition systems that rely on information related to the temporal generation of characters (e.g., the temporal sequences of strokes in the characters). However, in real-time handwriting recognition scenarios, temporal information related to individual strokes is available, and it is sometimes beneficial to utilize this information to improve the recognition accuracy of the handwriting recognition system. The following describes a technique for integrating temporal-derived stroke-distribution information into spatial feature extraction of a handwriting recognition model, wherein the use of temporal-derived stroke-distribution information does not compromise the stroke-order and/or stroke-direction independence of the handwriting recognition system. Based on the stroke-distribution information related to different characters, disambiguation between similar-looking characters that are generated with uniquely different sets of strokes is enabled.

일부 실시예들에서, 필기 입력이 필기 인식 모델(예컨대, CNN)에 대한 입력 이미지(예컨대, 입력 비트맵 이미지)로 변환될 때, 개별 획들과 연관된 시간 정보가 분실된다. 예를 들어, 한자 ""의 경우, 문자를 기입하기 위해 8개의 획들(예컨대, 도 27의 라벨링된 #1 내지 #8)이 사용될 수 있다. 문자에 대한 획들의 시퀀스 및 방향은 문자와 연관된 몇몇 고유한 특징부들을 제공한다. 인식 시스템의 획 순서 및 획 방향 독립성을 손상시키지 않고서 획 순서 및 획 방향 정보를 캡처하는 순진한 방식은, 훈련 샘플들에서 획 순서 및 획 방향의 모든 가능한 치환들을 명시적으로 열거하는 것이다. 그러나 오직 적당한 복잡성의 문자에 대해서도, 이것은 10억 초과의 가능성에 이를 것이고, 이는 불가능하지는 않지만 실제로 구현하는 것이 어렵다. 본 명세서에 설명되는 바와 같이, 각 기입 샘플에 대해 획-분포 프로파일이 생성되는데, 이는 획 생성의 연대순 양태들(즉, 시간 정보) 외에서 추출한다. 기입 샘플들의 획-분포 프로파일들은, 후속하여 공간-유도 특징부들과 조합되는 시간-유도 특징부들의 세트를 (예컨대, 입력 비트맵 이미지들로부터) 추출하도록 훈련되어, 필기 인식 시스템의 획 순서 및 획 방향 독립성에 영향을 주지 않고 인식 정확도를 개선시킨다.In some embodiments, when handwriting input is converted into an input image (e.g., an input bitmap image) for a handwriting recognition model (e.g., a CNN), the temporal information associated with individual strokes is lost. For example, the Chinese character " ", eight strokes (e.g., labeled #1 to #8 in FIG. 27) can be used to write a character. The sequence and direction of the strokes for a character provide several unique features associated with the character. A naive way to capture stroke order and stroke direction information without compromising the stroke order and stroke direction independence of the recognition system is to explicitly enumerate all possible permutations of stroke order and stroke direction in the training samples. However, even for characters of only moderate complexity, this would amount to over a billion possibilities, which is difficult, if not impossible, to implement in practice. As described herein, a stroke-distribution profile is generated for each writing sample, which extracts from chronological aspects of stroke generation (i.e., temporal information). The stroke-distribution profiles of the writing samples are trained to extract a set of temporal features (e.g., from input bitmap images) that are subsequently combined with the spatial-derived features, without compromising the stroke order and stroke direction independence of the handwriting recognition system. and improve recognition accuracy.

본 명세서에 설명되는 바와 같이, 문자와 연관된 시간 정보는 각 필기 획을 특징화하기 위해 다양한 픽셀 분포들을 산출함으로써 추출된다. 문자의 매 필기 획은 주어진 방향 상으로 투영될 때 결정론적 패턴(또는 프로파일)을 일으킨다. 이러한 패턴 자체는 획을 분명하게 인식하기에 불충분할 수 있지만, 다른 유사한 패턴들과 조합될 때, 그것은 이러한 특정한 획에 고유한 소정 특성들을 캡처하기 위해 적절할 수 있다. 이러한 종류의 획 표현을 공간 특징부 추출(예컨대, CNN에서의 입력 이미지들에 기초한 특징부 추출)과 함께 통합하는 것은 결국, 필기 인식 모델의 레퍼토리에서의 유사해 보이는 문자들 사이에서 명확화하기 위해 유용할 수 있는 직교 정보(orthogonal information)를 제공한다.As described herein, temporal information associated with a character is extracted by producing various pixel distributions to characterize each handwritten stroke. Each handwritten stroke of a character gives rise to a deterministic pattern (or profile) when projected along a given direction. While this pattern alone may not be sufficient to clearly recognize a stroke, when combined with other similar patterns, it may be adequate to capture certain characteristics unique to that particular stroke. Integrating this kind of stroke representation with spatial feature extraction (e.g., feature extraction based on input images in a CNN) ultimately provides orthogonal information that may be useful for disambiguating between similar-looking characters in the repertoire of a handwriting recognition model.

도 25a 및 도 25b는 필기 인식 모델의 훈련 동안 필기 샘플들의 시간-유도 특징부들 및 공간-유도 특징부들을 통합하기 위한 예시적인 프로세스(2500)의 플로차트들이며, 여기서 결과적인 인식 모델은 획 순서 및 획 방향 독립적으로 유지된다. 일부 실시예들에서, 예시적인 프로세스(2500)는, 훈련된 인식 모델을 사용자 디바이스(예컨대, 휴대용 디바이스(100))로 제공하는 서버 디바이스 상에서 수행된다. 일부 실시예들에서, 서버 디바이스는 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행될 때 프로세스(2500)를 수행하기 위한 명령어들을 포함하는 메모리를 포함한다.FIGS. 25A and 25B are flowcharts of an exemplary process (2500) for integrating temporal and spatial features of handwriting samples during training of a handwriting recognition model, wherein the resulting recognition model remains stroke-order and stroke-direction independent. In some embodiments, the exemplary process (2500) is performed on a server device that provides the trained recognition model to a user device (e.g., the portable device (100)). In some embodiments, the server device includes one or more processors and a memory including instructions for performing the process (2500) when executed by the one or more processors.

예시적인 프로세스(2500)에서, 디바이스는, 필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부들의 세트를 별도로 훈련시키는데(2502), 여기서 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며, 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징짓는다.In an exemplary process (2500), the device separately trains a set of spatially-derived features and a set of temporally-derived features of a handwriting recognition model (2502), wherein the set of spatially-derived features is trained on a corpus of training images, each of which is an image of a handwriting sample for an individual character of an output character set, and the set of temporally-derived features is trained on a corpus of stroke-distribution profiles, each stroke-distribution profile numerically characterizing the spatial distribution of a plurality of strokes in a handwriting sample for an individual character of the output character set.

일부 실시예들에서, 공간-유도 특징부들의 세트를 별도로 훈련시키는 것은 입력 층, 출력 층, 그리고 첫 번째 콘볼루션 층, 마지막 콘볼루션 층, 첫 번째 콘볼루션 층과 마지막 콘볼루션 층 사이의 0개 이상의 중간 콘볼루션 층들, 및 마지막 콘볼루션 층과 출력 층 사이의 은닉 층을 포함하는 복수의 콘볼루션 층들을 갖는 콘볼루션 뉴럴 네트워크를 훈련시키는 것을 추가로 포함한다(2504). 예시적인 콘볼루션 네트워크(2602)가 도 26에 도시된다. 예시적인 콘볼루션 네트워크(2602)는 도 6에 도시된 콘볼루션 네트워크(602)와 실질적으로 동일한 방식으로 구현될 수 있다. 콘볼루션 네트워크(2602)는 입력 층(2606), 출력 층(2608), 첫 번째 콘볼루션 층(2610a), 0개 이상의 중간 콘볼루션 층들 및 마지막 콘볼루션 층(2610n)을 포함하는 복수의 콘볼루션 층들, 및 마지막 콘볼루션 층과 출력 층(2608) 사이의 은닉 층(2614)을 포함한다. 콘볼루션 네트워크(2602)는 또한 도 6에 도시된 배열에 따른 커널 층들(2616) 및 서브-샘플링 층들(2612)을 포함한다. 콘볼루션 네트워크의 훈련은 훈련 코퍼스(2604)에서의 기입 샘플들의 이미지들(2616)에 기초한다. 훈련 코퍼스에서의 훈련 샘플들에 대한 인식 오류들을 최소화함으로써 공간-유도 특징부들이 획득되고 상이한 특징부들과 연관된 개별 가중치들이 결정된다. 한번 훈련된 동일한 특징부들 및 가중치들이, 훈련 코퍼스에 존재하지 않는 새로운 필기 샘플들의 인식을 위해 사용된다.In some embodiments, training a set of spatially-guided features separately further comprises training a convolutional neural network having an input layer, an output layer, and a plurality of convolutional layers, including a first convolutional layer, a last convolutional layer, zero or more intermediate convolutional layers between the first convolutional layer and the last convolutional layer, and a hidden layer between the last convolutional layer and the output layer (2504). An exemplary convolutional network (2602) is illustrated in FIG. 26 . The exemplary convolutional network (2602) can be implemented in substantially the same manner as the convolutional network (602) illustrated in FIG. 6 . The convolutional network (2602) includes an input layer (2606), an output layer (2608), a first convolutional layer (2610a), a plurality of convolutional layers including zero or more intermediate convolutional layers and a last convolutional layer (2610n), and a hidden layer (2614) between the last convolutional layer and the output layer (2608). The convolutional network (2602) also includes kernel layers (2616) and sub-sampling layers (2612) according to the arrangement illustrated in FIG. 6. The training of the convolutional network is based on images (2616) of inscription samples in a training corpus (2604). Spatially-derived features are obtained by minimizing recognition errors for training samples in the training corpus, and individual weights associated with different features are determined. The same features and weights that have been trained once are used to recognize new handwriting samples that do not exist in the training corpus.

일부 실시예들에서, 시간-유도 특징부들의 세트를 별도로 훈련시키는 것은 복수의 획-분포 프로파일들을 통계적 모델로 제공하여, 출력 문자 세트의 개별 문자들을 구분하기 위해 복수의 시간-유도 파라미터들 및 복수의 시간-유도 파라미터들에 대한 개별 가중치들을 결정하는 것을 추가로 포함한다(2506). 일부 실시예들에서, 도 26에 도시된 바와 같이, 훈련 코퍼스(2622)에서의 각 기입 샘플로부터 획-분포 프로파일(2620)이 유도된다. 훈련 코퍼스(2622)는 선택적으로 코퍼스(2604)와 동일한 기입 샘플들을 포함하지만, 또한 각 기입 샘플에서의 획 생성과 연관된 시간 정보도 포함한다. 획-분포 프로파일들(2622)은 통계적 모델링 프로세스(2624)로 제공되는데, 통계적 모델링 프로세스 동안 통계적 모델링 방법(예컨대, CNN, K-최근접 이웃(K-Nearest Neighbor) 등)에 기초하여 인식 또는 구분 오류를 최소화함으로써 시간-유도 특징부들이 추출되고 상이한 특징부들에 대한 개별 가중치들이 결정된다. 도 26에 도시된 바와 같이, 시간 유도 특징부들의 세트 및 개별 가중치들이 특징 벡터들(예컨대, 특징 벡터들(2626) 또는 특징 벡터들(2628))의 세트로 변환되고, 콘볼루션 뉴럴 네트워크(2602)에서의 개별 층으로 주입된다. 따라서, 결과적인 네트워크는, 서로 직교하며 문자들의 인식에 함께 기여하는 공간-유도 파라미터들 및 시간-유도 파라미터들을 포함한다.In some embodiments, training the set of temporal-derived features separately further comprises providing the plurality of stroke-distribution profiles as a statistical model to determine the plurality of temporal-derived parameters and individual weights for the plurality of temporal-derived parameters to distinguish individual characters of the output character set (2506). In some embodiments, a stroke-distribution profile (2620) is derived from each writing sample in the training corpus (2622), as illustrated in FIG. 26 . The training corpus (2622) optionally includes the same writing samples as the corpus (2604), but also includes temporal information associated with the stroke generation in each writing sample. The stroke-distribution profiles (2622) are provided to a statistical modeling process (2624), during which time-derived features are extracted and individual weights for different features are determined by minimizing recognition or segmentation errors based on a statistical modeling method (e.g., CNN, K-Nearest Neighbor, etc.). As illustrated in FIG. 26, the set of time-derived features and the individual weights are converted into a set of feature vectors (e.g., feature vectors (2626) or feature vectors (2628)) and fed into individual layers in the convolutional neural network (2602). Thus, the resulting network includes spatial-derived parameters and temporal-derived parameters that are orthogonal to each other and jointly contribute to the recognition of characters.

일부 실시예들에서, 디바이스는 필기 인식 모델에서의 공간-유도 특징부들의 세트와 시간-유도 특징부들의 세트를 조합한다(2508). 일부 실시예들에서, 필기 인식 모델에서의 공간-유도 특징부들의 세트와 시간-유도 특징부들의 세트를 조합하는 것은, 복수의 공간-유도 파라미터들 및 복수의 시간-유도 파라미터들을 콘볼루션 뉴럴 네트워크의 콘볼루션 층들 중 하나의 콘볼루션 층 또는 은닉 층에 주입하는 것을 포함한다(2510). 일부 실시예들에서, 복수의 시간-유도 파라미터들 및 복수의 시간-유도 파라미터들에 대한 개별 가중치들은 필기 인식을 위해 콘볼루션 뉴럴 네트워크의 마지막 콘볼루션 층(예컨대, 도 26의 마지막 콘볼루션 층(2610n))에 주입된다. 일부 실시예들에서, 복수의 시간-유도 파라미터들 및 복수의 시간-유도 파라미터들에 대한 개별 가중치들은 필기 인식을 위해 콘볼루션 뉴럴 네트워크의 은닉 층(예컨대, 도 26의 은닉 층(2614))에 주입된다.In some embodiments, the device combines a set of spatial-derived features and a set of temporal-derived features in a handwriting recognition model (2508). In some embodiments, combining the set of spatial-derived features and the set of temporal-derived features in the handwriting recognition model comprises injecting a plurality of spatial-derived parameters and a plurality of temporal-derived parameters into a convolutional layer or a hidden layer of one of the convolutional layers of the convolutional neural network (2510). In some embodiments, individual weights for the plurality of temporal-derived parameters and the plurality of temporal-derived parameters are injected into a last convolutional layer of the convolutional neural network for handwriting recognition (e.g., the last convolutional layer (2610n) of FIG. 26 ). In some embodiments, multiple time-derived parameters and individual weights for the multiple time-derived parameters are injected into a hidden layer of a convolutional neural network (e.g., hidden layer (2614) of FIG. 26) for handwriting recognition.

일부 실시예들에서, 디바이스는 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공한다(2512).In some embodiments, the device provides real-time handwriting recognition of the user's handwriting input using a handwriting recognition model (2512).

일부 실시예들에서, 디바이스는 복수의 기입 샘플들로부터 획-분포 프로파일들의 코퍼스를 생성한다(2514). 일부 실시예들에서, 복수의 필기 샘플들 각각은 출력 문자 세트에서의 문자에 대응하고, 기입되었을 때 필기 샘플의 각 구성 획에 대한 개별 공간 정보를 별도로 보존한다(2516). 일부 실시예들에서, 획-분포 프로파일들의 코퍼스를 생성하기 위해, 디바이스는 하기 단계들을 수행한다(2518):In some embodiments, the device generates a corpus of stroke-distribution profiles from a plurality of writing samples (2514). In some embodiments, each of the plurality of writing samples corresponds to a character in the output character set and separately preserves individual spatial information for each constituent stroke of the writing sample when written (2516). In some embodiments, to generate the corpus of stroke-distribution profiles, the device performs the following steps (2518):

복수의 필기 샘플들 각각에 대해(2520): 디바이스는 필기 샘플에서의 구성 획들을 식별하고(2522); 필기 샘플의 식별된 획들 각각에 대해, 디바이스는 복수의 사전결정된 방향들 각각을 따라 개별 점유율을 계산하는데(2524), 점유율은 각 획 방향의 투영 스팬과 기입 샘플의 최대 투영 스팬 간의 비이고; 필기 샘플의 식별된 획들 각각에 대해, 디바이스는 또한 각 획 내의 픽셀들의 개별 개수와 기입 샘플 내의 픽셀들의 전체 개수 간의 비에 기초하여 각 획에 대한 개별 포화비를 계산한다(2526). 그 후에, 사용자 디바이스는, 기입 샘플의 획-분포 프로파일로서 필기 샘플에 대한 특징 벡터를 생성하는데(2528), 특징 벡터는 필기 샘플에서의 적어도 N개의 획들의 개별 점유율들 및 개별 포화비를 포함하고, N은 사전결정된 자연수이다. 일부 실시예들에서, N은 복수의 기입 샘플들 내의 임의의 단일 기입 샘플에서 관찰되는 최대 획수 미만이다.For each of the plurality of handwriting samples (2520): the device identifies constituent strokes in the handwriting sample (2522); for each of the identified strokes of the handwriting sample, the device calculates an individual occupancy along each of the plurality of predetermined directions (2524), the occupancy being a ratio between a projection span in each stroke direction and a maximum projection span of the writing sample; for each of the identified strokes of the handwriting sample, the device also calculates an individual saturation ratio for each stroke based on a ratio between the individual number of pixels in each stroke and the total number of pixels in the writing sample (2526). Thereafter, the user device generates a feature vector for the handwriting sample as a stroke-distribution profile of the handwriting sample (2528), the feature vector comprising individual occupancies and individual saturation ratios of at least N strokes in the handwriting sample, where N is a predetermined natural number. In some embodiments, N is less than a maximum number of strokes observed in any single writing sample in the plurality of writing samples.

일부 실시예들에서, 복수의 필기 샘플들 각각에 대해: 디바이스는 사전결정된 방향들 각각에서 식별된 획들의 개별 점유율들을 내림차순으로 정렬하고; 기입 샘플의 N개의 최상위 점유율들 및 포화비들만을 기입 샘플의 특징 벡터에 포함시킨다.In some embodiments, for each of the plurality of handwriting samples: the device sorts the individual occupancies of the identified strokes in each of the predetermined directions in descending order; and includes only the N highest occupancies and saturation ratios of the writing sample in the feature vector of the writing sample.

일부 실시예들에서, 복수의 사전결정된 방향들은 기입 샘플의 수평 방향, 수직 방향, 양의 45도 방향, 및 음의 45도 방향을 포함한다.In some embodiments, the plurality of predetermined directions include a horizontal direction, a vertical direction, a positive 45 degree direction, and a negative 45 degree direction of the writing sample.

일부 실시예들에서, 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하기 위해, 디바이스는 사용자의 필기 입력을 수신하고; 사용자의 필기 입력을 수신하는 것에 응답하여, 필기 입력의 수신과 사실상 동시에 사용자에게 필기 인식 출력을 제공한다.In some embodiments, to provide real-time handwriting recognition of a user's handwriting input using a handwriting recognition model, the device receives the user's handwriting input; and in response to receiving the user's handwriting input, provides handwriting recognition output to the user substantially simultaneously with the receipt of the handwriting input.

도 27에 도시된 문자 ""를 사용하여, 예시적인 목적을 위해 본 명세서에 예시적인 실시예가 기술된다. 일부 실시예들에서, 필기 문자의 각 입력 이미지가 선택적으로 정사각형 내로 정규화된다. 각 개별 필기 획(예컨대, 획(#1, #2,..., #8))의 스팬이 정사각형의 수평, 수직, +45도 대각선, 및 -45도 대각선 상으로 투영될 때 측정된다. 각 획 Si의 스팬들은 4개의 투영 방향들에 대해, 각각 xspan(i), yspan(i), cspan(i), 및 dspan(i)로서 기록된다. 추가적으로, 전체 이미지에 걸쳐서 관찰되는 최대 스팬들이 또한 기록된다. 문자의 최대 스팬들은 4개의 투영 방향들에 대해, 각각 xspan, yspan, cspan, 및 dspan으로서 기록된다. 예시적인 목적을 위해, 여기서는 4개의 투영 방향들이 선택적으로 고려되지만, 원칙적으로 투영들의 어떤 임의의 세트가 다양한 실시예들에서 사용될 수 있다. 4개의 투명 방향들에서 문자 ""의 획들 중 하나의 획(예컨대, 획(#4))의 최대 스팬들(예컨대, xspan, yspan, cspan, 및 dspan으로서 나타냄), 및 스팬들(예컨대, xspan(4), yspan(4), cspan(4), 및 dspan(4)로서 나타냄)이 도 27에 도시되어 있다.The character " shown in Fig. 27 ", for illustrative purposes, exemplary embodiments are described herein. In some embodiments, each input image of a handwritten character is optionally normalized to a square. The span of each individual handwritten stroke (e.g., strokes (#1, #2, ..., #8)) is measured as it is projected onto the horizontal, vertical, +45 degree diagonal, and -45 degree diagonal of the square. The spans of each stroke Si are recorded for the four projection directions, respectively, as xspan ( i ), yspan ( i ), cspan ( i ), and dspan ( i ). Additionally, the maximum spans observed over the entire image are also recorded. The maximum spans of the character are recorded for the four projection directions, respectively, as xspan , yspan , cspan , and dspan . For illustrative purposes, the four projection directions are optionally considered herein, but in principle any arbitrary number of projections may be used. The set can be used in various embodiments. The characters " in four transparent directions "The maximum spans (e.g., represented as xspan , yspan , cspan , and dspan ) of one of the strokes (e.g., stroke (#4)) and spans (e.g., represented as xspan ( 4 ), yspan ( 4 ), cspan ( 4 ), and dspan (4)) are illustrated in FIG. 27 .

일부 실시예들에서, 일단 상기 스팬들이 모든 획1 내지 획5에 대해 측정되었다면 - 여기서 5는 입력 이미지와 연관된 개별 필기 획들의 개수임 -, 각 투영 방향을 따른 개별 점유율이 산출된다. 예를 들어, 획 S i 에 대해 x-방향을 따른 개별 점유율 R x (i)는 R x (i) = xspan (i)/xspan로서 계산된다. 유사하게, 다른 투영 방향들을 따른 개별 점유율들이 하기와 같이 계산될 수 있다: R y (i) = yspan (i)/yspan, R c (i) = cspan (i)/cspan, R d (i) = dspan (i)/dspan.In some embodiments, once the spans have been measured for all strokes 1 through 5, where 5 is the number of individual handwritten strokes associated with the input image, an individual occupancy along each projection direction is computed. For example, for stroke S i , the individual occupancy R x ( i ) along the x -direction is computed as R x ( i ) = xspan ( i ) / xspan . Similarly, individual occupancies along other projection directions can be computed as: R y ( i ) = yspan ( i )/ yspan , R c ( i ) = cspan (i)/ cspan , R d ( i ) = dspan ( i ) /dspan .

일부 실시예들에서, 각 방향에서의 모든 획들의 점유율들은 별도로 내림차순으로 정렬되고, 그리하여 입력 이미지에서의 모든 획들의 개별 순위가 각 투영 방향에 대해 그 방향에서의 그들의 점유율들의 관점에서 획득된다. 각 투영 방향에서의 획들의 순위는 관련 투영 방향을 따른 각 획의 상대적 중요도를 반영한다. 이러한 상대적 중요도는 획이 기입 샘플에서 생성된 순서 및 방향에 상관없다. 따라서, 점유율들에 기초한 이러한 순위는 획 순서 및 획 방향 독립적인 시간-유도 정보이다.In some embodiments, the occupancies of all strokes in each direction are separately sorted in descending order, so that an individual ranking of all strokes in the input image is obtained in terms of their occupancies in that direction for each projection direction. The ranking of strokes in each projection direction reflects the relative importance of each stroke along the associated projection direction. This relative importance is independent of the order and direction in which the strokes are generated in the writing samples. Thus, this ranking based on occupancies is time-derived information that is independent of stroke order and stroke direction.

일부 실시예들에서, 각 획에, 전체 문자에 대한 그 획의 중요도를 나타내는 상대적 가중치가 주어진다. 일부 실시예들에서, 가중치는, 각 획에서의 픽셀들의 개수 대 문자에서의 픽셀들의 전체 개수의 비에 의해 측정된다. 이러한 비는 각 획과 연관된 포화비라고 지칭된다.In some embodiments, each stroke is given a relative weight indicating the importance of that stroke to the entire character. In some embodiments, the weight is measured by the ratio of the number of pixels in each stroke to the total number of pixels in the character. This ratio is referred to as the saturation ratio associated with each stroke.

일부 실시예들에서, 각 획의 포화비 및 점유율들에 기초하여, 각 획에 대해 특징 벡터가 생성될 수 있다. 각 문자에 대해, 5S개의 특징부들을 포함하는 특징 벡터들의 세트가 생성된다. 이러한 특징부들의 세트는 문자의 획-분포 프로파일이라고 지칭된다.In some embodiments, a feature vector may be generated for each stroke based on the saturation ratio and occupancy rates of each stroke. For each character, a set of feature vectors containing 5S feature segments is generated. This set of feature segments is referred to as the stroke-distribution profile of the character.

일부 실시예들에서, 각 문자의 획-분포 프로파일을 구성할 때 사전결정된 개수의 최상위 획들만이 사용된다. 일부 실시예들에서, 획들의 사전결정된 개수는 10이다. 최상위 10개의 획들에 기초하여, 50개의 획-유도 특징부들이 각 문자에 대해 생성될 수 있다. 일부 실시예들에서, 콘볼루션 뉴럴 네트워크의 마지막 콘볼루션 층에, 또는 후속 은닉 층에 이러한 특징부들이 주입된다.In some embodiments, only a predetermined number of top strokes are used when constructing the stroke-distribution profile of each character. In some embodiments, the predetermined number of strokes is 10. Based on the top 10 strokes, 50 stroke-derived features can be generated for each character. In some embodiments, these features are injected into the last convolutional layer of the convolutional neural network, or into subsequent hidden layers.

일부 실시예들에서, 실시간 인식 동안, 공간-유도 특징부들 및 시간-유도 특징부들 둘 모두로 훈련된 필기 인식 모드로 인식 유닛의 입력 이미지가 제공된다. 입력 이미지는 도 26에 도시된 필기 인식 모델의 각 층을 통하여 프로세싱된다. 입력 이미지의 프로세싱이 획-분포 프로파일 입력이 필요한 층(예컨대, 마지막 콘볼루션 층 또는 은닉 층)에 도달할 때, 인식 유닛의 획-분포 프로파일이 그 층으로 주입된다. 입력 이미지 및 획-분포 프로파일의 프로세싱은 출력 구분(예컨대, 하나 이상의 후보 문자들)이 출력 층(2608)에서 제공될 때까지 계속된다. 일부 실시예들에서, 모든 인식 유닛들의 획-분포 프로파일들이 산출되고, 인식 유닛들의 입력 이미지들과 함께, 입력으로서 필기 인식 모델로 제공된다. 일부 실시예들에서, 인식 유닛의 입력 이미지는 처음에 (시간-훈련된 특징부들의 혜택 없이) 필기 인식 모델을 경험한다. 2개 이상의 유사해 보이는 후보 문자들이 가까운 인식 신뢰도 값들로 식별될 때, 인식 유닛의 획-분포 프로파일들이 시간-유도 특징부들로 훈련된 층(예컨대, 마지막 콘볼루션 층 또는 은닉 층)에서 필기 인식 모델로 주입된다. 인식 유닛의 입력 이미지 및 획-분포 프로파일이 필기 인식 모델의 마지막 층들을 통과할 때, 2개 이상의 유사해 보이는 후보 문자들이 그들의 획-분포 프로파일들에서의 차이들로 인해 더 양호하게 구분될 수 있다. 따라서, 필기 인식 시스템의 획 순서 및 획 방향 독립성을 훼손시키지 않고서, 인식 정확도를 개선시키기 위해, 인식 유닛이 개별 필기 획들에 의해 형성되는 방식에 관련된 시간-유도 정보가 사용된다.In some embodiments, during real-time recognition, an input image of a recognition unit is provided in a handwriting recognition mode trained with both spatial-derived features and temporal-derived features. The input image is processed through each layer of the handwriting recognition model illustrated in FIG. 26. When the processing of the input image reaches a layer requiring stroke-distribution profile input (e.g., the last convolutional layer or the hidden layer), the stroke-distribution profile of the recognition unit is fed into that layer. The processing of the input image and the stroke-distribution profile continues until output segments (e.g., one or more candidate characters) are provided at the output layer (2608). In some embodiments, the stroke-distribution profiles of all the recognition units are computed and provided as input to the handwriting recognition model along with the input images of the recognition units. In some embodiments, the input image of the recognition unit initially experiences the handwriting recognition model (without the benefit of the temporal-trained features). When two or more similar-looking candidate characters are identified with close recognition confidence values, the stroke-distribution profiles of the recognition unit are fed into the handwriting recognition model in a layer trained with temporally-derived features (e.g., the last convolutional layer or the hidden layer). When the input image and stroke-distribution profile of the recognition unit pass through the last layers of the handwriting recognition model, two or more similar-looking candidate characters can be better distinguished due to the differences in their stroke-distribution profiles. Therefore, temporal-derived information related to how a recognition unit is formed by individual handwritten strokes is utilized to improve the recognition accuracy without compromising the stroke-order and stroke-direction independence of the handwriting recognition system.

전술한 설명은 설명의 목적을 위해, 특정 실시예들을 참조하여 기술되었다. 그러나, 상기의 예시적인 논의들은 본 발명을 망라하거나 개시된 정확한 형태들로 제한하려는 의도는 아니다. 많은 수정들 및 변형들이 상기 교시 내용들의 관점에서 가능하다. 실시예들은 본 발명의 원리들 및 그의 실제 응용들을 가장 잘 설명하기 위해 선택 및 설명되었고, 그에 의해 당업자가 본 발명 및 다양한 변형들을 갖는 다양한 실시예들을 고려되는 특정 용례에 적합한 것으로 가장 잘 활용하도록 할 수 있다.The foregoing description has been described with reference to specific embodiments for the purpose of explanation. However, the exemplary discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.

Claims (12)

필기인식을 제공하는 방법으로서,
디스플레이 및 터치-감응 표면을 갖는 전자 디바이스에서,
필기 입력을 수신하는 단계 - 상기 필기 입력은 상기 전자 디바이스에 결합된 상기 터치-감응 표면 상에서 제공된 복수의 필기 획들을 포함함 -;
필기 입력 인터페이스의 필기 입력 영역 내에 상기 복수의 필기 획들을 디스플레이하는 단계;
상기 복수의 필기 획들을 2개 이상의 인식 유닛들로 분할하는 단계 - 각 인식 유닛은 상기 복수의 필기 획들의 개별 서브세트를 포함함 -;
편집 요청을 수신하는 단계;
상기 편집 요청에 응답하여, 상기 필기 입력 영역에서 상기 2개 이상의 인식 유닛들 중 적어도 하나를 시각적으로 구별하는 단계;
상기 2개 이상의 인식 유닛들 중 상기 적어도 하나에 근접하여 개별 삭제 버튼을 디스플레이하는 단계;
상기 필기 입력 영역 내의 상기 2개 이상의 인식 유닛들 중 적어도 하나 상에서 사전결정된 삭제 제스처 입력을 검출하는 단계; 및
상기 사전결정된 삭제 제스처 입력을 검출하는 것에 응답하여, 상기 필기 입력 영역 내의 상기 2개 이상의 인식 유닛들 중 적어도 하나에 대응하는 상기 필기 획들의 개별 서브세트를 제거하는 단계를 포함하는, 방법.
As a method for providing handwriting recognition,
In an electronic device having a display and a touch-sensitive surface,
A step of receiving a handwriting input, wherein the handwriting input comprises a plurality of handwriting strokes provided on the touch-sensitive surface coupled to the electronic device;
A step of displaying the plurality of handwriting strokes within a handwriting input area of a handwriting input interface;
A step of dividing said plurality of handwritten strokes into two or more recognition units, each recognition unit comprising a distinct subset of said plurality of handwritten strokes;
Step of receiving an editing request;
In response to said editing request, a step of visually distinguishing at least one of said two or more recognition units in said handwriting input area;
A step of displaying an individual delete button in proximity to at least one of the two or more recognition units;
A step of detecting a predetermined deletion gesture input on at least one of the two or more recognition units within the handwriting input area; and
A method comprising: in response to detecting the predetermined delete gesture input, removing a discrete subset of the handwritten strokes corresponding to at least one of the two or more recognition units within the handwriting input area.
제1항에 있어서,
2개 이상의 인식 유닛들을 시각적으로 구별하는 것은 상기 필기 입력 영역에서 상기 2개 이상의 인식 유닛들 사이의 개별 경계들을 강조하는 것을 더 포함하는, 방법.
In the first paragraph,
A method wherein visually distinguishing two or more recognition units further comprises highlighting individual boundaries between the two or more recognition units in the handwriting input area.
제1항에 있어서,
편집 요청은 상기 필기 입력 인터페이스에서 디스플레이되는 사전결정된 어포던스 위에서 검출되는 접촉에 대응하는, 방법.
In the first paragraph,
A method wherein an edit request corresponds to a contact detected on a predetermined affordance displayed on the handwriting input interface.
제1항에 있어서,
편집 요청은 상기 필기 입력 인터페이스에서의 사전결정된 영역 위에서 검출되는 탭 제스처(tap gesture)에 대응하는, 방법.
In the first paragraph,
A method wherein an edit request corresponds to a tap gesture detected over a predetermined area in the handwriting input interface.
제4항에 있어서,
상기 사전결정된 영역은 상기 필기 입력 인터페이스의 상기 필기 입력 영역 내의 영역에 대응하는, 방법.
In paragraph 4,
A method wherein the above predetermined area corresponds to an area within the handwriting input area of the handwriting input interface.
제4항에 있어서,
상기 사전결정된 영역은 상기 필기 입력 인터페이스의 상기 필기 입력 영역의 외측의 영역에 대응하는, 방법.
In paragraph 4,
A method wherein the above predetermined area corresponds to an area outside the handwriting input area of the handwriting input interface.
제1항에 있어서,
상기 2개 이상의 인식 유닛들 중 적어도 하나는 상기 2개 이상의 인식 유닛들 중에서 공간적으로 초기의 인식 유닛에 대응하는, 방법.
In the first paragraph,
A method wherein at least one of the two or more recognition units spatially corresponds to an initial recognition unit among the two or more recognition units.
제1항에 있어서,
상기 2개 이상의 인식 유닛들 중 적어도 하나는 상기 2개 이상의 인식 유닛들 중에서 공간적으로 중간의 인식 유닛에 대응하는, 방법.
In the first paragraph,
A method, wherein at least one of the two or more recognition units corresponds to a spatially intermediate recognition unit among the two or more recognition units.
제1항에 있어서,
상기 복수의 필기 획들로부터 분할 격자(segmentation lattice)를 생성하는 단계 - 상기 분할 격자는 상기 복수의 필기 획들로부터 식별되는 인식 유닛들의 개별 세트를 각각 표시하는 복수의 대안적인 분할 체인(segmentation chain)들을 포함함 -;
2개 이상의 연속 편집 요청들을 수신하는 단계;
상기 2개 이상의 연속 편집 요청들 각각에 응답하여, 상기 필기 입력 영역에서 인식 유닛들의 상기 개별 세트를 상기 복수의 대안적인 분할 체인들 중 다른 분할 체인으로부터 시각적으로 구별하는 단계;
상기 필기 입력 영역에서 현재 표시되는 상기 인식 유닛들 중 적어도 하나 위에서 제2 사전결정된 삭제 제스처 입력을 검출하는 단계; 및
상기 제2 사전결정된 삭제 제스처 입력을 검출하는 것에 응답하여, 상기 필기 입력 영역에서 현재 표시되는 상기 인식 유닛들 중 적어도 하나에 대응하는 필기 획들의 개별 서브세트를 삭제하는 단계를 더 포함하는, 방법.
In the first paragraph,
A step of generating a segmentation lattice from said plurality of handwritten strokes, said segmentation lattice comprising a plurality of alternative segmentation chains, each of which represents a distinct set of recognition units identified from said plurality of handwritten strokes;
A step of receiving two or more consecutive editing requests;
In response to each of said two or more consecutive edit requests, visually distinguishing said individual set of recognition units in said handwriting input area from other segmentation chains among said plurality of alternative segmentation chains;
detecting a second predetermined deletion gesture input on at least one of the recognition units currently displayed in the handwriting input area; and
A method further comprising, in response to detecting the second predetermined delete gesture input, deleting a respective subset of handwritten strokes corresponding to at least one of the recognition units currently displayed in the handwriting input area.
디스플레이 및 터치-감응 표면을 갖는 디바이스의 하나 이상의 프로세서들에 의해 실행되도록 구성된 하나 이상의 프로그램들을 저장한 비일시적인 컴퓨터 판독가능 저장 매체로서,
상기 하나 이상의 프로그램들은 제1항 내지 제9항 중 어느 한 항의 필기인식을 제공하는 방법을 수행하기 위한 명령어들을 포함하는, 비일시적인 컴퓨터 판독가능 저장 매체.
A non-transitory computer-readable storage medium storing one or more programs configured to be executed by one or more processors of a device having a display and a touch-sensitive surface,
A non-transitory computer-readable storage medium comprising instructions for performing a method of providing handwriting recognition according to any one of claims 1 to 9, wherein said one or more programs are as follows.
필기인식을 제공하는 전자 디바이스로서,
디스플레이;
터치-감응 표면;
하나 이상의 프로세서들; 및
상기 하나 이상의 프로세서들에 의해 실행되도록 구성된 하나 이상의 프로그램들을 저장한 메모리를 포함하고,
상기 하나 이상의 프로그램들은 제1항 내지 제9항 중 어느 한 항의 필기인식을 제공하는 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스.
As an electronic device that provides handwriting recognition,
display;
touch-sensitive surface;
one or more processors; and
A memory storing one or more programs configured to be executed by said one or more processors,
An electronic device, wherein said one or more programs include instructions for performing a method of providing handwriting recognition according to any one of claims 1 to 9.
삭제delete
KR1020217043310A 2013-06-09 2014-05-30 Managing real-time handwriting recognition KR102771373B1 (en)

Applications Claiming Priority (20)

Application Number Priority Date Filing Date Title
US201361832921P 2013-06-09 2013-06-09
US201361832908P 2013-06-09 2013-06-09
US201361832934P 2013-06-09 2013-06-09
US201361832942P 2013-06-09 2013-06-09
US61/832,921 2013-06-09
US61/832,908 2013-06-09
US61/832,942 2013-06-09
US61/832,934 2013-06-09
US14/290,935 2014-05-29
US14/290,945 2014-05-29
US14/290,945 US9465985B2 (en) 2013-06-09 2014-05-29 Managing real-time handwriting recognition
US14/290,935 US9898187B2 (en) 2013-06-09 2014-05-29 Managing real-time handwriting recognition
US14/291,865 US9495620B2 (en) 2013-06-09 2014-05-30 Multi-script handwriting recognition using a universal recognizer
US14/291,722 2014-05-30
US14/291,722 US20140363082A1 (en) 2013-06-09 2014-05-30 Integrating stroke-distribution information into spatial feature extraction for automatic handwriting recognition
KR1020217005264A KR102347064B1 (en) 2013-06-09 2014-05-30 Managing real-time handwriting recognition
US14/291,865 2014-05-30
US14/292,138 2014-05-30
US14/292,138 US20140361983A1 (en) 2013-06-09 2014-05-30 Real-time stroke-order and stroke-direction independent handwriting recognition
PCT/US2014/040417 WO2014200736A1 (en) 2013-06-09 2014-05-30 Managing real - time handwriting recognition

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005264A Division KR102347064B1 (en) 2013-06-09 2014-05-30 Managing real-time handwriting recognition

Publications (2)

Publication Number Publication Date
KR20220003662A KR20220003662A (en) 2022-01-10
KR102771373B1 true KR102771373B1 (en) 2025-02-25

Family

ID=

Similar Documents

Publication Publication Date Title
US11816326B2 (en) Managing real-time handwriting recognition
JP7361156B2 (en) Managing real-time handwriting recognition
US9934430B2 (en) Multi-script handwriting recognition using a universal recognizer
TWI653545B (en) Method, system and non-transitory computer-readable media for real-time handwriting recognition
US20140363082A1 (en) Integrating stroke-distribution information into spatial feature extraction for automatic handwriting recognition
KR102771373B1 (en) Managing real-time handwriting recognition

Legal Events

Date Code Title Description
PA0104 Divisional application for international application

Comment text: Divisional Application for International Patent

Patent event code: PA01041R01D

Patent event date: 20211230

Application number text: 1020217005264

Filing date: 20210222

PA0201 Request for examination
PG1501 Laying open of application
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20240409

Patent event code: PE09021S01D

PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20241120