KR20160003112A - 실시간 필기 인식 관리 - Google Patents
실시간 필기 인식 관리 Download PDFInfo
- Publication number
- KR20160003112A KR20160003112A KR1020157033627A KR20157033627A KR20160003112A KR 20160003112 A KR20160003112 A KR 20160003112A KR 1020157033627 A KR1020157033627 A KR 1020157033627A KR 20157033627 A KR20157033627 A KR 20157033627A KR 20160003112 A KR20160003112 A KR 20160003112A
- Authority
- KR
- South Korea
- Prior art keywords
- handwriting
- recognition
- input
- user
- handwriting input
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 271
- 238000013515 script Methods 0.000 claims abstract description 254
- 238000012549 training Methods 0.000 claims description 114
- 230000004044 response Effects 0.000 claims description 86
- 230000008569 process Effects 0.000 claims description 76
- 238000005562 fading Methods 0.000 claims description 55
- 238000009826 distribution Methods 0.000 claims description 50
- 238000009877 rendering Methods 0.000 claims description 34
- 238000012217 deletion Methods 0.000 claims description 33
- 230000037430 deletion Effects 0.000 claims description 33
- 230000008451 emotion Effects 0.000 claims description 32
- 238000013527 convolutional neural network Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 19
- 230000011218 segmentation Effects 0.000 claims description 16
- 230000002996 emotional effect Effects 0.000 claims description 13
- 230000036961 partial effect Effects 0.000 claims description 12
- 230000002123 temporal effect Effects 0.000 claims description 12
- 230000001939 inductive effect Effects 0.000 claims description 11
- 239000013598 vector Substances 0.000 claims description 11
- 238000011084 recovery Methods 0.000 claims description 10
- 230000002085 persistent effect Effects 0.000 claims description 7
- 230000002441 reversible effect Effects 0.000 claims description 7
- 230000010365 information processing Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 3
- 239000000470 constituent Substances 0.000 claims description 2
- 238000013179 statistical model Methods 0.000 claims description 2
- 230000001052 transient effect Effects 0.000 claims 9
- 230000033001 locomotion Effects 0.000 description 27
- 238000000638 solvent extraction Methods 0.000 description 19
- 230000000007 visual effect Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000005070 sampling Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000003287 optical effect Effects 0.000 description 10
- 238000012790 confirmation Methods 0.000 description 8
- 238000005192 partition Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000010606 normalization Methods 0.000 description 7
- 241000282326 Felis catus Species 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000001965 increasing effect Effects 0.000 description 5
- 230000001149 cognitive effect Effects 0.000 description 4
- 150000001875 compounds Chemical class 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 241000406668 Loxodonta cyclotis Species 0.000 description 3
- 238000007792 addition Methods 0.000 description 3
- 239000002131 composite material Substances 0.000 description 3
- 230000001186 cumulative effect Effects 0.000 description 3
- 230000000881 depressing effect Effects 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012905 input function Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012015 optical character recognition Methods 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 241001422033 Thestylus Species 0.000 description 2
- 238000005352 clarification Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 206010011469 Crying Diseases 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003930 cognitive ability Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000001704 evaporation Methods 0.000 description 1
- 238000005429 filling process Methods 0.000 description 1
- 235000013305 food Nutrition 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000010408 sweeping Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G06K9/00859—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/226—Character recognition characterised by the type of writing of cursive writing
- G06V30/2264—Character recognition characterised by the type of writing of cursive writing using word shape
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
-
- G06K2209/01—
-
- G06K2209/011—
-
- G06K2209/013—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/28—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
- G06V30/287—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of Kanji, Hiragana or Katakana characters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/28—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet
- G06V30/293—Character recognition specially adapted to the type of the alphabet, e.g. Latin alphabet of characters other than Kanji, Hiragana or Katakana
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Character Discrimination (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
- Image Analysis (AREA)
- Character Input (AREA)
Abstract
사용자 디바이스 상에서 필기 입력 기능을 제공하기 위한 기법에 관련된 방법, 시스템, 및 컴퓨터 판독가능 매체가 제공된다. 필기 인식 모듈은 단일 필기 인식 모델을 사용하여 수만의 문자들을 인식할 수 있고 다수의 비중첩 스크립트들을 포함하는 레퍼토리(repertoire)를 갖도록 훈련된다. 필기 입력 모듈은 다문자 필기 입력을 위해 실시간, 획 순서 및 획 방향에 독립적인 필기 인식을 제공한다. 특히, 실시간, 획 순서 및 획 방향에 독립적인 필기 인식은 다문자 또는 문장 수준의 중국어 필기 인식을 위해 제공된다. 필기 입력 기능을 제공하기 위한 사용자 인터페이스들이 또한 개시되어 있다.
Description
본 발명은 컴퓨팅 디바이스 상에서 필기 입력 기능을 제공하는 것에 관한 것이며, 보다 구체적으로는, 컴퓨팅 디바이스 상에서 실시간, 멀티스크립트, 획 순서 독립적인 필기 인식 및 입력 기능을 제공하는 것에 관한 것이다.
필기 입력 방법은 터치 감응 표면들(예컨대, 터치 감응 디스플레이 스크린들 또는 터치 패드들)을 구비한 컴퓨팅 디바이스들에 대한 중요한 대안적인 입력 방법이다. 수많은 사용자들, 특히 일부 아시아 또는 아랍 국가들의 사용자들은 초서체로 쓰는 것에 익숙하고, 키보드로 타이핑하는 것에 대조적으로 손으로 쓰는 것을 편안하게 느낄 수도 있다.
한지(Hanzi) 및 간지(Kanji)(한자라고도 함)와 같은 소정 표어 기입 시스템(logographic writing system)들의 경우, 대응하는 표어 기입 시스템들의 문자들을 입력하기 위해 대안적인 음절 입력 방법들(예컨대, 핀인(Pinyin) 또는 가나(Kana))이 이용 가능할지라도, 그러한 음절 입력 방법들은 사용자가 표어 문자를 표음식으로 철자하는 방식을 알지 못하고 표어 문자의 부정확한 표음식 철자를 사용할 때 적절하지 않다. 따라서, 컴퓨팅 디바이스 상에서 필기 입력을 사용할 수 있는지는, 관련 표어 기입 시스템에 대해 단어들을 충분히 잘 발음할 수 없거나 전혀 발음할 수 없는 사용자들에게 중요해진다.
필기 입력 기능이 세계의 소정 지역들에서 일부 인기를 얻고 있지만, 개선이 여전히 필요하다. 특히, 사람의 필기는 (예컨대, 획 순서, 크기, 서체 등의 관점에서) 매우 다양하고, 고품질의 필기 인식 소프트웨어는 복잡하며 광범위한 훈련을 필요로 한다. 이와 같이, 제한된 메모리를 갖는 모바일 디바이스 상에서 효율적인 실시간 필기 인식을 제공하고 자원들을 산출하는 것이 과제로 되어 왔다.
또한, 오늘날의 다문화 세계에서는, 여러 국가들의 사용자들이 여러 언어를 사용하고, 종종 하나 초과의 스크립트로 기입(예컨대, 영어로 된 영화 제목을 언급하는 메시지를 중국어로 기입)하는 것이 필요할 수 있다. 그러나, 기입 도중에 인식 시스템을 원하는 스크립트 또는 언어로 수동으로 전환하는 것은 번잡하고 비효율적이다. 또한, 다중 스크립트들을 동시에 취급하기 위해 디바이스의 인식 능력을 확대시키는 것은 컴퓨터 자원들에 대한 요구 및 인식 시스템의 복잡도를 크게 증가시키기 때문에, 종래의 멀티스크립트 필기 인식 기법들의 유용성은 심각하게 제한되어 있다.
추가로, 종래의 필기 기법들은 인식 정확도를 달성하기 위해 언어 또는 스크립트-특정 특수성들에 크게 의존한다. 그러한 특수성들은 다른 언어들 또는 스크립트들에 대해 쉽게 호환성이 없다. 그리하여, 새로운 언어들 또는 스크립트들에 대한 필기 입력 능력들을 추가하는 것은 디바이스들 및 소프트웨어의 공급자들에 의해 가볍게 수행되지 않는 힘든 일이다. 결과적으로, 수많은 언어들의 사용자들은 그들의 전자 디바이스들에 대한 중요한 대안적인 입력 방법을 잃었다.
필기 입력을 제공하기 위한 종래의 사용자 인터페이스들은 사용자로부터 필기 입력을 허용하기 위한 영역 및 필기 인식 결과들을 디스플레이하기 위한 영역을 포함한다. 소형 폼 팩터를 갖는 휴대용 디바이스들에 대해, 일반적으로 효율, 정확도 및 사용자 경험을 개선시키기 위해 사용자 인터페이스의 현저한 개선이 여전히 필요하다.
본 명세서는 보편적인 인식기(universal recognizer)를 사용하여 멀티스크립트 필기 인식을 제공하기 위한 기법을 설명한다. 보편적인 인식기는 상이한 언어들 및 스크립트들로 문자들에 대한 기입 샘플들의 대형 멀티스크립트 코퍼스(large multi-script corpus)를 사용하여 훈련된다. 보편적인 인식기의 훈련은 언어 독립적이며, 스크립트 독립적이며, 획 순서 독립적이며, 그리고 획 방향 독립적이다. 그리하여, 동일한 인식기는 사용 동안 입력 언어들 사이의 수동 전환을 요구하지 않고 혼합 언어, 혼합 스크립트의 필기 입력을 인식할 수 있다. 추가로, 보편적인 인식기는 전세계의 상이한 지역들에서 사용되는 상이한 언어들 및 스크립트들에서의 필기 입력을 가능하게 하기 위해 모바일 디바이스들 상에서 독립형 모듈로서 전개되기에 충분히 경량이다.
또한, 보편적인 인식기는 획 순서 독립적이며 획 방향 독립적인 공간-유도 특징부(spatially-derived feature)들에 대해 훈련되고, 획 레벨(stroke-level)에서 어떠한 시간적인 또는 시퀀스 정보도 요구하지 않기 때문에, 보편적인 인식기는 종래의 시간-기반 인식 방법들(예컨대, 은닉 마르코프 방법(Hidden Markov Method, HMM)에 기초한 인식 방법)에 비해 수많은 추가적인 특징들 및 이점들을 제공한다. 예를 들어, 사용자는 하나 이상의 문자들, 어구들, 및 문장들의 획들을 임의의 순서로 입력하여 동일한 인식 결과들을 여전히 획득하는 것이 허용된다. 그리하여, 비순서적인 다문자 입력, 및 먼저 입력된 문자들의 비순서적인 수정들(예컨대, 추가 또는 고쳐 쓰기)이 이제 가능하다.
게다가, 보편적인 인식기는 실시간 필기 인식을 위해 사용되고, 여기서 보편적인 인식기에 의해 문자 인식이 수행되기 전에 필기 입력을 명확화 또는 분할(segment)하기 위해 각 획에 대한 시간 정보가 이용 가능하며 선택적으로 사용된다. 본 명세서에 설명되는 실시간, 획 순서 독립적인 인식은 종래의 오프라인 인식 방법들(예컨대, 광학적 문자 인식(OCR))과 상이하고, 종래의 오프라인 인식 방법들보다 더 양호한 성능을 제공할 수 있다. 또한, 본 명세서에 설명되는 보편적인 인식기는 인식 시스템에서의 상이한 변동들(예컨대, 속도, 템포, 획 순서, 획 방향, 획 연속성 등에서의 변동들)의 구별되는 특징들을 명시적으로 내장하지 않고서 개인적인 기입 습관들의 높은 가변성(예컨대, 속도, 템포, 획 순서, 획 방향, 획 연속성 등에서의 가변성)을 취급함으로써, 인식 시스템의 전체적인 복잡성을 저감시킬 수 있다.
본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 시간-유도 획 분포 정보가 선택적으로 보편적인 인식기로 재도입되어 동일한 입력 이미지에 대한 유사해 보이는 인식 출력들 사이를 명확화하고 인식 정확도를 높인다. 시간-유도 특징부(temporally-derived feature)들 및 공간-유도 특징부들이 별도의 훈련 프로세스를 통하여 획득되고 별도의 훈련이 완료된 후에 필기 인식 모델에서만 조합되기 때문에, 시간-유도 획 분포 정보의 재도입은 보편적인 인식기의 획 순서 및 획 방향 독립성을 손상시키지 않는다. 게다가, 시간-유도 획 분포 정보는, 유사해 보이는 문자들의 획 순서들의 차이들에 대한 명시적 지식에 의존하지 않고서, 유사해 보이는 문자들의 구별되는 시간 특성들을 캡처하도록 세심하게 설계된다.
필기 입력 기능을 제공하기 위한 사용자 인터페이스들이 또한 본 명세서에 설명된다.
일부 실시예들에서, 멀티스크립트 필기 인식을 제공하는 방법은, 멀티스크립트 훈련 코퍼스(multi-script training corpus)의 공간-유도 특징부들에 기초하여 멀티스크립트 필기 인식 모델을 훈련시키는 단계 - 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 및 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계를 포함한다.
일부 실시예들에서, 멀티스크립트 필기 인식을 제공하는 방법은, 멀티스크립트 필기 인식 모델을 수신하는 단계 - 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련되었고, 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함함 -; 및 필기 입력을 수신하는 것에 응답하여, 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 사용자에게 실시간으로 제공하는 단계를 포함한다.
일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 복수의 필기 획들을 수신하는 단계 - 복수의 필기 획들은 필기 문자에 대응함 -; 복수의 필기 획들에 기초하여 입력 이미지를 생성하는 단계; 입력 이미지를 필기 인식 모델로 제공하여 필기 문자의 실시간 인식을 수행하는 단계 - 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공함 -; 및 복수의 필기 획들을 수신하는 것에 실시간으로, 복수의 필기 획들이 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자를 디스플레이하는 단계를 포함한다.
일부 실시예들에서, 본 방법은, 사용자로부터 제2 복수의 필기 획들을 수신하는 단계 - 제2 복수의 필기 획들은 제2 필기 문자에 대응함 -; 제2 복수의 필기 획들에 기초하여 제2 입력 이미지를 생성하는 단계; 제2 입력 이미지를 필기 인식 모델로 제공하여 제2 필기 문자의 실시간 인식을 수행하는 단계; 및 제2 복수의 필기 획들을 수신하는 것에 실시간으로, 제2 복수의 필기 획들에 대응하는 제2 출력 문자를 디스플레이하는 단계를 추가로 포함하고, 제1 출력 문자 및 제2 출력 문자는 제1 복수의 필기 입력들 및 제2 복수의 필기 입력들이 사용자에 의해 제공된 개별 순서에 관계없이 공간 시퀀스에서 동시에 디스플레이된다.
일부 실시예들에서, 제2 복수의 필기 획들은 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향을 따라 제1 복수의 필기 획들을 공간적으로 뒤따르고, 제2 출력 문자는 디폴트 기입 방향을 따른 공간 시퀀스에서 제1 출력 문자를 뒤따르고, 본 방법은, 필기 문자를 개정하기 위해 사용자로부터 제3 필기 획을 수신하는 단계 - 제3 필기 획은 시간적으로 제1 복수의 필기 획들 및 제2 복수의 필기 획들 후에 수신됨 -; 제3 필기 획을 수신하는 것에 응답하여, 제1 복수의 필기 획들에 대한 제3 필기 획의 상대적인 근접성에 기초하여 제1 복수의 필기 획들과 동일한 인식 유닛에 필기 획을 배정하는 단계; 제1 복수의 필기 획들 및 제3 필기 획에 기초하여 개정된 입력 이미지를 생성하는 단계; 개정된 입력 이미지를 필기 인식 모델로 제공하여 개정된 필기 문자의 실시간 인식을 수행하는 단계; 및 제3 필기 입력을 수신하는 것에 응답하여, 개정된 입력 이미지에 대응하는 제3 출력 문자를 디스플레이하는 단계 - 제3 출력 문자는 제1 출력 문자를 대신하고 디폴트 기입 방향을 따른 공간 시퀀스에서 제2 출력 문자와 동시에 디스플레이됨 - 를 추가로 포함한다.
일부 실시예들에서, 본 방법은, 제3 출력 문자 및 제2 출력 문자가 필기 입력 인터페이스의 후보 디스플레이 영역에서 인식 결과로서 동시에 디스플레이되는 동안, 사용자로부터 삭제 입력(deletion input)을 수신하는 단계; 및 삭제 입력에 응답하여, 인식 결과에서 제3 출력 문자를 유지하면서, 인식 결과로부터 제2 출력 문자를 삭제하는 단계를 추가로 포함한다.
일부 실시예들에서, 상기 필기 획 각각이 사용자에 의해 제공됨에 따라 필기 입력 인터페이스의 필기 입력 영역에서 제1 복수의 필기 획들, 제2 복수의 필기 획들, 및 제3 필기 획을 실시간으로 렌더링하는 단계; 및 삭제 입력을 수신하는 것에 응답하여, 필기 입력 영역에서 제1 복수의 필기 획들 및 제3 필기 획의 개별 렌더링들을 유지하면서, 필기 입력 영역으로부터 제2 복수의 필기 획들의 개별 렌더링을 삭제하는 단계.
일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 하나 이상의 필기 획들을 포함함 -; 필기 인식 모델에 기초하여, 필기 입력에 대한 복수의 출력 문자들을 식별하는 단계; 사전결정된 분류 기준에 기초하여 복수의 출력 문자들을 2개 이상의 카테고리들로 나누는 단계; 필기 입력 인터페이스의 후보 디스플레이 영역의 초기 시야(initial view)에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들을 디스플레이하는 단계 - 후보 디스플레이 영역의 초기 시야는 후보 디스플레이 영역의 확장 시야(extended view)를 호출하기 위한 어포던스(affordance)를 동시에 구비함 -; 확장 시야를 호출하기 위한 어포던스를 선택하는 사용자 입력을 수신하는 단계; 및 사용자 입력에 응답하여, 후보 디스플레이 영역의 확장 시야에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들 및 후보 디스플레이 영역의 초기 시야에서 사전에 디스플레이되지 않은 적어도 제2 카테고리 내의 개별 출력 문자들을 디스플레이하는 단계를 포함한다.
일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -; 필기 인식 모델에 기초하여, 필기 입력으로부터 복수의 출력 문자들을 인식하는 단계 - 출력 문자들은 자연 인간 언어의 스크립트로부터의 적어도 제1 이모지 캐릭터 및 적어도 제1 문자를 포함함 -; 및 필기 입력 인터페이스의 후보 디스플레이 영역에서 자연 인간 언어의 스크립트로부터의 제1 이모지 캐릭터 및 제1 문자를 포함하는 인식 결과를 디스플레이하는 단계를 포함한다.
일부 실시예들에서, 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 디바이스에 결합된 터치 감응 표면에서 제공되는 복수의 필기 획들을 포함함 -; 필기 입력 인터페이스의 필기 입력 영역에서 복수의 필기 획들을 실시간으로 렌더링하는 단계; 복수의 필기 획들에 대한 핀치 제스처 입력(pinch gesture input) 및 팽창 제스처 입력(expand gesture input) 중 하나를 수신하는 단계; 핀치 제스처 입력을 수신할 시에, 복수의 필기 획들을 단일 인식 유닛으로서 처리함으로써 복수의 필기 획들에 기초하여 제1 인식 결과를 생성하는 단계; 팽창 제스처 입력을 수신할 시에, 복수의 필기 획들을 팽창 제스처 입력에 의해 떼어내진 2개의 별도의 인식 유닛들로서 처리함으로써 복수의 필기 획들에 기초하여 제2 인식 결과를 생성하는 단계; 및 제1 인식 결과 및 제2 인식 결과의 개별 인식 결과를 생성할 시에, 필기 입력 인터페이스의 후보 디스플레이 영역에서 생성된 인식 결과를 디스플레이하는 단계를 포함한다.
일부 실시예들에서, 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -; 복수의 필기 획들로부터 복수의 인식 유닛들을 식별하는 단계 - 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함함 -; 복수의 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 다문자 인식 결과를 생성하는 단계; 필기 입력 인터페이스의 후보 디스플레이 영역에서 다문자 인식 결과를 디스플레이하는 단계; 다문자 인식 결과가 후보 디스플레이 영역에서 디스플레이되는 동안, 사용자로부터 삭제 입력을 수신하는 단계; 및 삭제 입력을 수신하는 것에 응답하여, 후보 디스플레이 영역에서 디스플레이되는 다문자 인식 결과로부터 최후 문자(end character)를 제거하는 단계를 포함한다.
일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 디바이스의 배향을 결정하는 단계; 제1 배향으로 있는 디바이스에 따른 수평 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공하는 단계 - 수평 입력 모드에서 입력되는 필기 입력의 개별 라인은 수평 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할됨 -; 및 제2 배향으로 있는 디바이스에 따른 수직 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공하는 단계 - 수직 입력 모드에서 입력되는 필기 입력의 개별 라인은 수직 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할됨 - 를 포함한다.
일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 필기 입력을 수신하는 단계 - 필기 입력은 디바이스에 결합된 터치 감응 표면 상에서 제공되는 복수의 필기 획들을 포함함 -; 필기 입력 인터페이스의 필기 입력 영역에서 복수의 필기 획들을 렌더링하는 단계; 복수의 필기 획들을 2개 이상의 인식 유닛들로 분할하는 단계 - 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함함 -; 사용자로부터 편집 요청(edit request)을 수신하는 단계; 편집 요청에 응답하여, 필기 입력 영역에서 2개 이상의 인식 유닛들을 시각적으로 구별하는 단계; 및 필기 입력 영역으로부터 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단을 제공하는 단계를 포함한다.
일부 실시예들에서, 실시간 필기 인식을 제공하는 방법은, 사용자로부터 제1 필기 입력을 수신하는 단계 - 제1 필기 입력은 복수의 필기 획들을 포함하고, 복수의 필기 획들은 필기 입력 인터페이스의 필기 입력 영역과 연관된 개별 기입 방향을 따라 분포되는 다수의 인식 유닛들을 형성함 -; 필기 획이 사용자에 의해 제공됨에 따라 필기 입력 영역에서 복수의 필기 획들 각각을 렌더링하는 단계; 인식 유닛이 완전히 렌더링된 후에 다수의 인식 유닛들 각각에 대한 개별 페이딩 프로세스(fading process)를 시작하는 단계 - 개별 페이딩 프로세스 동안, 제1 필기 입력에서의 인식 유닛의 렌더링이 점점 더 페이딩됨 -; 필기 입력 영역 중에서 다수의 인식 유닛의 페이딩된 인식 유닛에 의해 점유되는 구역 위에서 사용자로부터 제2 필기 입력을 수신하는 단계; 및 제2 필기 입력을 수신하는 것에 응답하여: 필기 입력 영역에서 제2 필기 입력을 렌더링하는 단계; 및 필기 입력 영역으로부터 페이딩된 인식 유닛들 모두를 클리어하는 단계를 포함한다.
일부 실시예들에서, 필기 인식을 제공하는 방법은, 필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부들의 세트를 별도로 훈련시키는 단계 - 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며, 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징지음 -; 필기 인식 모델에서의 공간-유도 특징부들의 세트와 시간-유도 특징부들의 세트를 조합하는 단계; 및 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계를 포함한다.
본 명세서에 설명되는 발명 대상의 하나 이상의 실시예들의 상세사항은 첨부 도면 및 하기 설명에서 기술된다. 발명 대상의 다른 특징, 양태, 및 이점은 본 명세서, 도면, 및 청구범위로부터 명백해질 것이다.
도 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은 문자의 획 분포 프로파일을 산출하기 위한 예시적인 방법을 예시하는 블록도이다.
도면 전체에 걸쳐서 동일한 도면 부호들은 대응하는 부분들을 지칭한다.
도 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은 문자의 획 분포 프로파일을 산출하기 위한 예시적인 방법을 예시하는 블록도이다.
도면 전체에 걸쳐서 동일한 도면 부호들은 대응하는 부분들을 지칭한다.
많은 전자 디바이스들은 문자 입력을 위한 소프트 키보드들을 갖는 그래픽 사용자 인터페이스들을 갖는다. 일부 전자 디바이스들 상에서, 사용자는 또한 디바이스들에 결합된 터치 감응 표면 또는 터치 감응 디스플레이 스크린 상에 필기를 통해 사용자가 문자들을 입력할 수 있게 하는 필기 입력 인터페이스를 설치하거나 또는 인에이블(enable)할 수 있다. 종래의 필기 인식 입력 방법들 및 사용자 인터페이스들은 여러 문제들 및 단점들을 갖고 있다. 예를 들어,
일반적으로, 종래의 필기 입력 기능은 언어 단위로 또는 스크립트 단위로 가능하게 된다. 각각의 추가적인 입력 언어는 별도의 저장 공간 및 메모리를 차지하는 별도의 필기 인식 모델의 설치를 요구한다. 상이한 언어들에 대한 필기 인식 모델들을 조합함으로써의 시너지 효과는 거의 제공되지 않으며, 혼합 언어 또는 혼합 스크립트 필기 인식은 종래에는 복잡한 명확화 프로세스로 인해 매우 긴 시간이 걸렸다.
또한, 종래의 필기 인식 시스템들은 문자 인식을 위한 언어-특정 또는 스크립트-특정 특성들에 지나치게 의존한다. 혼합 언어 필기 입력의 인식은 부족한 정확도를 가졌다. 게다가, 인식된 언어들의 이용 가능한 조합들은 매우 제한된다. 대부분의 시스템들은 사용자에게 각각의 디폴트가 아닌(non-default) 언어 또는 스크립트에서 필기 입력을 제공하기 전에 원하는 언어-특정 필기 인식기를 수동으로 특정하도록 요구하였다.
수많은 기존의 실시간 필기 인식 모델들은 획 단위(stroke-by-stroke) 레벨 상에서 시간 또는 시퀀스 정보를 요구하며, 이는 문자를 기입할 수 있는 방법의 높은 가변성(예컨대, 서체들 및 개인의 습관들로 인한 획들의 형상, 길이, 템포, 분할, 순서 및 방향에서의 높은 가변성)을 다룰 때 부정확한 인식 결과들을 생성한다. 일부 시스템들은 또한 사용자들에게 필기 입력을 제공할 때 (예컨대, 각 문자 입력의 크기, 시퀀스 및 시간프레임에 대한 고유한 가정들에 의한) 엄밀한 공간 및 시간 기준들을 준수하도록 요구한다. 이들 기준들로부터 벗어나면 수정하기 어려운 부정확한 인식 결과들이 야기되었다.
현재, 대부분의 실시간 필기 입력 인터페이스들은 사용자가 한 번에 수 개의 문자들만을 입력하는 것을 허용한다. 긴 어구들 또는 문장들의 입력은 짧은 세그먼트들로 분해되어 별도로 입력된다. 이러한 격식적인 입력은 구성(composition)의 흐름을 유지하기 위해 사용자에게 인지적 부담을 지울 뿐만 아니라, 사용자가 먼저 입력된 문자 또는 어구를 수정 또는 개정하는 것을 어렵게 하기도 한다.
하기에 설명되는 실시예들은 이러한 문제들 및 관련 문제들을 다룬다.
하기에서 도 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에서의 프로세스들을 예시하기 위해 사용된다.
예시적인 디바이스들
이제, 실시예들이 상세하게 참조될 것이며, 실시예들의 예들이 첨부 도면들에 도시된다. 하기의 상세한 설명에서, 많은 구체적인 상세사항들이 본 발명의 완전한 이해를 제공하기 위해 기술된다. 그러나, 본 발명이 이들 구체적인 상세사항들 없이 실시될 수 있다는 것은 당업자에게 자명할 것이다. 다른 예들에서, 잘 알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 실시예들의 양태들을 불필요하게 이해하기 어렵게 하지 않도록 하기 위해 상세히 설명되지 않았다.
용어들 "제1", "제2" 등이 본 명세서에서 다양한 요소들을 기술하는 데 사용될 수 있지만, 이들 요소들은 이들 용어들에 의해 제한되어서는 안 된다는 것이 또한 이해될 것이다. 이들 용어들은 하나의 요소를 다른 요소로부터 구별하는 데에만 사용된다. 예를 들어, 본 발명의 범주로부터 벗어남이 없이, 제1 접촉이 제2 접촉으로 지칭될 수 있고, 유사하게, 제2 접촉이 제1 접촉으로 지칭될 수 있다. 제1 접촉 및 제2 접촉 둘 모두가 접촉들이지만, 그들이 동일한 접촉인 것은 아니다.
본 명세서에서 본 발명의 설명에 사용되는 용어는 특정 실시예들을 기술하는 목적만을 위한 것이고, 본 발명을 제한하려는 의도는 아니다. 본 발명의 설명 및 첨부된 청구범위에 사용되는 바와 같이, 단수의 형태들("a", "an" 및 "the")은 문맥상 명백히 다르게 나타나지 않는다면 복수의 형태들도 또한 포함하는 것으로 의도된다. 또한, 본 명세서에서 사용되는 바와 같은 용어 "및/또는"은 열거되는 관련 항목들 중 하나 이상의 항목의 임의의 그리고 모든 가능한 조합들을 나타내고 그들을 포괄하는 것임이 이해될 것이다. 용어들 "포함한다(include)", "포함하는(including)", "포함한다(comprise)", 및/또는 "포함하는(comprising)"은, 본 명세서에서 사용될 때, 진술되는 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 정수들, 단계들, 동작들, 요소들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않음이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, 용어 "~는 경우(if)"는 문맥에 따라 "~할 때(when)" 또는 "~ 시(upon)" 또는 "결정한 것에 응답하여(in response to determining)" 또는 "검출한 것에 응답하여(in response to detecting)"를 의미하는 것으로 해석될 수 있다. 유사하게, 어구 "결정된 경우" 또는 "[진술된 상태 또는 이벤트가] 검출된 경우"는 문맥에 따라 "결정 시" 또는 "결정한 것에 응답하여" 또는 "[진술된 상태 또는 이벤트] 검출 시" 또는 "[진술된 상태 또는 이벤트를] 검출한 것에 응답하여"를 의미하는 것으로 해석될 수 있다.
전자 디바이스들, 그러한 디바이스들에 대한 사용자 인터페이스들, 및 그러한 디바이스들을 사용하는 관련 프로세스들의 실시예들이 기재된다. 일부 실시예들에서, 디바이스는 PDA 및/또는 음악 플레이어 기능들과 같은 다른 기능들을 또한 포함하는, 이동 전화기와 같은, 휴대용 통신 디바이스이다. 휴대용 다기능 디바이스들의 예시적인 실시예들은 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.(Apple Inc.)로부터의 아이폰(iPhone)(등록상표), 아이팟 터치(iPod Touch)(등록상표), 및 아이패드(iPad)(등록상표) 디바이스들을 제한 없이 포함한다. 터치 감응 표면들(예컨대, 터치 스크린 디스플레이들 및/또는 터치 패드들)을 갖는 랩톱들 또는 태블릿 컴퓨터들과 같은 다른 휴대용 전자 디바이스들이 또한 사용될 수 있다. 일부 실시예들에서, 디바이스는 휴대용 통신 디바이스가 아니라, 터치 감응 표면(예를 들어, 터치 스크린 디스플레이 및/또는 터치 패드)을 갖는 데스크톱 컴퓨터임이 또한 이해되어야 한다.
이하의 논의에서, 디스플레이 및 터치 감응 표면을 포함하는 전자 디바이스가 기재된다. 그러나, 전자 디바이스는 물리적 키보드, 마우스 및/또는 조이스틱과 같은, 하나 이상의 다른 물리적 사용자-인터페이스 디바이스들을 포함할 수 있다는 것이 이해되어야 한다.
디바이스는 전형적으로, 드로잉 애플리케이션, 프레젠테이션 애플리케이션, 워드 프로세싱 애플리케이션, 웹사이트 제작 애플리케이션, 디스크 저작 애플리케이션, 스프레드시트 애플리케이션, 게임 애플리케이션, 전화 애플리케이션, 화상 회의 애플리케이션, 이메일 애플리케이션, 인스턴트 메시징 애플리케이션, 운동 지원 애플리케이션, 사진 관리 애플리케이션, 디지털 카메라 애플리케이션, 디지털 비디오 카메라 애플리케이션, 웹 브라우징 애플리케이션, 디지털 음악 플레이어 애플리케이션, 및/또는 디지털 비디오 플레이어 애플리케이션 중 하나 이상과 같은 다양한 애플리케이션들을 지원한다.
디바이스 상에서 실행될 수 있는 다양한 애플리케이션들은 터치 감응 표면과 같은 적어도 하나의 일반적인 물리적 사용자-인터페이스 디바이스를 사용할 수 있다. 터치 감응 표면의 하나 이상의 기능들뿐만 아니라 디바이스 상에 디스플레이되는 대응 정보는 조정될 수 있고/있거나 하나의 애플리케이션으로부터 다음의 애플리케이션으로 그리고/또는 개별 애플리케이션 내에서 변화될 수 있다. 이러한 방식으로, 디바이스의 (터치 감응 표면과 같은) 일반적인 물리적 아키텍처는 사용자에게 직관적이고 명료한 사용자 인터페이스들로 다양한 애플리케이션들을 지원할 수 있다.
이제, 터치 감응 디스플레이들을 갖는 휴대용 디바이스들의 실시예들에 주목한다. 도 1은 일부 실시예들에 따른 터치 감응 디스플레이들(112)을 갖는 휴대용 다기능 디바이스(100)를 도시한 블록도이다. 터치 감응 디스플레이(112)는 때때로 편의상 "터치 스크린"으로 불리며, 또한 터치 감응 디스플레이 시스템으로서 알려지거나 불릴 수 있다. 디바이스(100)는 메모리(102)(하나 이상의 컴퓨터 판독가능 저장 매체를 포함할 수 있음), 메모리 제어기(122), 하나 이상의 프로세싱 유닛(CPU)들(120), 주변기기 인터페이스(118), RF 회로(108), 오디오 회로(110), 스피커(111), 마이크로폰(113), 입력/출력(I/O) 서브시스템(106), 다른 입력 또는 제어 디바이스들(116) 및 외부 포트(124)를 포함할 수 있다. 디바이스(100)는 하나 이상의 광 센서들(164)을 포함할 수 있다. 이들 컴포넌트들은 하나 이상의 통신 버스들 또는 신호 라인들(103)을 통해 통신할 수 있다.
디바이스(100)는 휴대용 다기능 디바이스의 일례일 뿐이고, 디바이스(100)는 도시된 것보다 더 많거나 더 적은 컴포넌트들을 가질 수 있거나, 둘 이상의 컴포넌트들을 조합할 수 있거나, 컴포넌트들의 상이한 구성 또는 배열을 가질 수 있음이 이해되어야 한다. 도 1에 도시된 다양한 컴포넌트들은 하나 이상의 신호 프로세싱 및/또는 주문형 집적 회로(application specific integrated circuit)들을 비롯한, 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어 둘 모두의 조합으로 구현될 수 있다.
메모리(102)는 고속 랜덤 액세스 메모리를 포함할 수 있고, 하나 이상의 자기 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 또는 다른 비휘발성 솔리드-스테이트 메모리 디바이스들과 같은 비휘발성 메모리를 또한 포함할 수 있다. CPU(120) 및 주변기기 인터페이스(118)와 같은 디바이스(100)의 다른 컴포넌트들에 의한 메모리(102)로의 액세스는 메모리 제어기(122)에 의해 제어될 수 있다.
주변기기 인터페이스(118)는 디바이스의 입력 및 출력 주변기기들을 CPU(120) 및 메모리(102)에 결합하는 데 사용될 수 있다. 하나 이상의 프로세서들(120)은 디바이스(100)에 대한 다양한 기능들을 수행하고 데이터를 처리하기 위해 메모리(102) 내에 저장된 다양한 소프트웨어 프로그램들 및/또는 명령어들의 세트들을 구동하거나 실행시킨다.
일부 실시예들에서, 주변기기 인터페이스(118), CPU(120) 및 메모리 제어기(122)는 칩(104)과 같은 단일 칩 상에서 구현될 수 있다. 일부 다른 실시예들에서, 그들은 별개의 칩들 상에서 구현될 수 있다
RF(radio frequency) 회로(108)는 전자기 신호들로도 불리는 RF 신호들을 수신 및 전송한다. RF 회로(108)는 전기 신호들을 전자기 신호들로/로부터 변환하고, 전자기 신호들을 통해 통신 네트워크들 및 다른 통신 디바이스들과 통신한다.
오디오 회로(110), 스피커(111) 및 마이크로폰(113)은 사용자와 디바이스(100) 사이의 오디오 인터페이스를 제공한다. 오디오 회로(110)는 주변기기 인터페이스(118)로부터 오디오 데이터를 수신하고, 그 오디오 데이터를 전기 신호로 변환하고, 그 전기 신호를 스피커(111)로 송신한다. 스피커(111)는 전기 신호를 사람이 들을 수 있는 음파로 변환한다. 오디오 회로(110)는 또한 마이크로폰(113)에 의해 음파로부터 변환된 전기 신호를 수신한다. 오디오 회로(110)는 전기 신호를 오디오 데이터로 변환하고, 프로세싱을 위해 오디오 데이터를 주변기기 인터페이스(118)로 송신한다. 오디오 데이터는 주변기기 인터페이스(118)에 의해 메모리(102) 및/또는 RF 회로(108)로부터 검색되고/되거나 이로 송신될 수 있다. 일부 실시예 실시예들에서, 오디오 회로(110)는 또한 헤드셋 잭(예컨대, 도 2의 212)을 포함한다.
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)을 포함할 수 있다.
터치 감응 디스플레이(112)는 디바이스와 사용자 사이의 입력 인터페이스 및 출력 인터페이스를 제공한다. 디스플레이 제어기(156)는 터치 스크린(112)으로부터/으로 전기 신호들을 수신 및/또는 전송한다. 터치 스크린(112)은 사용자에게 시각적 출력을 디스플레이한다. 시각적 출력은 그래픽, 텍스트, 아이콘들, 비디오 및 이들의 임의의 조합(총칭하여 "그래픽"으로 지칭함)을 포함할 수 있다. 일부 실시예들에서, 시각적 출력 중 일부 또는 모두는 사용자-인터페이스 객체들에 대응할 수 있다.
터치 스크린(112)은 햅틱 및/또는 촉각 접촉에 기초하는 사용자로부터의 입력을 수용하는 터치 감응 표면, 센서 또는 센서들의 세트를 갖는다. 터치 스크린(112) 및 디스플레이 제어기(156)는 (메모리(102) 내의 임의의 연관된 모듈들 및/또는 명령어들의 세트들과 함께) 터치 스크린(112) 상의 접촉(및 접촉의 임의의 이동 또는 중단)을 검출하고, 검출된 접촉을 터치 스크린(112) 상에 디스플레이된 사용자-인터페이스 객체들(예를 들어, 하나 이상의 소프트 키들, 아이콘들, 웹 페이지들 또는 이미지들)과의 상호작용으로 변환한다. 예시적인 실시예에서, 터치 스크린(112)과 사용자 사이의 접촉 지점은 사용자의 손가락에 대응한다.
터치 스크린(112)은 LCD(액정 디스플레이) 기술, LPD(발광 중합체 디스플레이) 기술, 또는 LED(발광 다이오드) 기술을 이용할 수 있지만, 다른 디스플레이 기술들이 다른 실시예들에서 이용될 수 있다. 터치 스크린(112) 및 디스플레이 제어기(156)는 터치 스크린(112)과의 하나 이상의 접촉 지점들을 결정하기 위해 정전용량, 저항, 적외선 및 표면 음향파 기술들뿐만 아니라 다른 근접 센서 어레이들 또는 다른 요소들을 포함하지만 이들로 제한되지는 않는, 현재 공지되어 있거나 추후에 개발될 복수의 터치 감지 기술 중 임의의 것을 이용하여, 접촉 및 그의 임의의 이동 또는 중단을 검출할 수 있다. 예시적인 실시예에서, 미국 캘리포니아주 쿠퍼티노 소재의 애플 인크.로부터의 아이폰(등록상표), 아이팟 터치(등록상표), 및 아이패드(등록상표)에서 발견되는 것과 같은 투영형 상호 정전용량식 감지 기술(projected mutual capacitance sensing technology)이 이용된다.
터치 스크린(112)은 100 dpi를 초과하는 비디오 해상도를 가질 수 있다. 일부 실시예 실시예들에서, 터치 스크린은 대략 160 dpi의 비디오 해상도를 갖는다. 사용자는 스타일러스, 손가락 등과 같은 임의의 적합한 객체 또는 부속물을 사용하여 터치 스크린(112)과 접촉할 수 있다. 일부 실시예들에서, 사용자 인터페이스는 손가락-기반 접촉 및 제스처를 주로 이용하여 작업하도록 설계되는데, 이는 터치 스크린 상에서의 손가락의 더 넓은 접촉 면적으로 인해 스타일러스-기반 입력보다 덜 정밀할 수 있다. 일부 실시예들에서, 디바이스는 대략적인 손가락-기반 입력을 사용자가 원하는 행동들을 수행하기 위한 정밀한 포인터/커서 위치 또는 커맨드(command)로 변환한다. 필기 입력은 손가락-기반 접촉 또는 스타일러스-기반 접촉의 위치 및 이동을 통해 터치 스크린(112) 상에서 제공될 수 있다. 일부 실시예들에서, 터치 스크린(112)은 손가락-기반 입력 또는 스타일러스-기반 입력을 현재의 필기 입력으로의 즉각적인 시각적 피드백으로서 렌더링하고, 필기 기구(예컨대, 펜)를 이용하여 기입 표면(예컨대, 종이 한장) 상의 실제 기입의 시각적 효과를 제공한다.
일부 실시예 실시예들에서, 터치 스크린 이외에, 디바이스(100)는 특정한 기능들을 활성화하거나 비활성화하기 위한 터치패드(도시되지 않음)를 포함할 수 있다. 일부 실시예들에서, 터치패드는 터치 스크린과는 다르게 시각적 출력을 디스플레이하지 않는 디바이스의 터치 감응 영역이다. 터치패드는 터치 스크린(112)과는 별개인 터치 감응 표면 또는 터치 스크린에 의해 형성되는 터치 감응 표면의 연장부일 수 있다.
디바이스(100)는 또한 다양한 컴포넌트들에 전력을 공급하기 위한 전력 시스템(162)을 포함한다. 전력 시스템(162)은 전력 관리 시스템, 하나 이상의 전원들(예컨대, 배터리, 교류 전류(alternating current: AC)), 재충전 시스템, 전력 고장 검출 회로, 전력 변환기 또는 인버터, 전력 상태 표시기(예컨대, 발광 다이오드(LED)), 및 휴대용 디바이스들 내에서의 전력의 생성, 관리 및 분배와 연관된 임의의 다른 컴포넌트들을 포함할 수 있다.
디바이스(100)는 또한 하나 이상의 광 센서들(164)을 포함할 수 있다. 도 1은 I/O 서브시스템(106) 내의 광 센서 제어기(158)에 결합된 광 센서를 도시한다. 광 센서(164)는 전하-결합 소자(charge-coupled device, CCD) 또는 상보성 금속-산화물 반도체(complementary metal-oxide semiconductor, CMOS) 포토트랜지스터들을 포함할 수 있다. 광 센서(164)는 하나 이상의 렌즈를 통해 투영된 주변환경으로부터의 광을 수신하고, 그 광을 이미지를 나타내는 데이터로 변환한다. 광 센서(164)는, 이미징 모듈(143)(카메라 모듈로도 칭해짐)과 함께, 정지 이미지들 또는 비디오를 캡처할 수 있다.
디바이스(100)는 또한 하나 이상의 근접 센서들(166)을 포함할 수 있다. 도 1은 주변기기 인터페이스(118)에 결합된 근접 센서(166)를 도시한다. 대안적으로, 근접 센서(166)는 I/O 서브시스템(106) 내의 입력 제어기(160)에 결합될 수 있다. 일부 실시예들에서, 근접 센서는 다기능 디바이스가 사용자의 귀 근처에 위치될 때(예를 들어, 사용자가 전화 통화를 하고 있을 때), 터치 스크린(112)을 오프 상태로 하고 디스에이블(disable)시킨다.
디바이스(100)는 또한 하나 이상의 가속도계들(168)을 포함할 수 있다. 도 1은 주변기기 인터페이스(118)에 결합된 가속도계(168)를 도시한다. 대안적으로, 가속도계(168)는 I/O 서브시스템(106) 내의 입력 제어기(160)에 결합될 수 있다. 일부 실시예들에서, 하나 이상의 가속도계들로부터 수신된 데이터의 분석에 기초하여 터치 스크린 디스플레이 상에 세로보기(portrait view) 또는 가로보기(landscape view)로 정보가 디스플레이된다. 디바이스(100)는 가속도계(들)(168)에 더하여 자력계(도시되지 않음), 및 디바이스(100)의 위치 및 배향(예를 들어, 세로 또는 가로)에 관한 정보를 획득하기 위한 GPS(또는 GLONASS 또는 다른 글로벌 내비게이션 시스템) 수신기(도시되지 않음)를 선택적으로 포함한다.
일부 실시예들에서, 메모리(102) 내에 저장된 소프트웨어 컴포넌트들은 운영 체제(126), 통신 모듈(또는 명령어들의 세트)(128), 접촉/모션 모듈(또는 명령어들의 세트)(130), 그래픽 모듈(또는 명령어들의 세트)(132), 텍스트 입력 모듈(또는 명령어들의 세트)(134), 위성 위치확인 시스템(GPS) 모듈(또는 명령어들의 세트)(135), 및 애플리케이션들(또는 명령어들의 세트)(136)을 포함한다. 또한, 일부 실시예들에서, 메모리(102)는 도 1 및 도 3에 도시된 바와 같이 필기 입력 모듈(157)를 저장한다. 필기 입력 모듈(157)은 필기 인식 모델을 포함하고, 디바이스(100)(또는 디바이스(300))의 사용자에게 필기 인식 및 입력 기능을 제공한다. 필기 입력 모듈(157)의 더욱 상세한 사항들은 도 5 내지 도 27 및 그의 수반된 설명들과 관련하여 제공된다.
운영 체제(126)(예컨대, 다윈(Darwin), RTXC, 리눅스(LINUX), 유닉스(UNIX), OS X, 윈도우(WINDOWS), 또는 VxWorks와 같은 내장형 운영 체제)는 일반적인 시스템 태스크들(예컨대, 메모리 관리, 저장 디바이스 제어, 전력 관리 등)을 제어 및 관리하기 위한 다양한 소프트웨어 컴포넌트들 및/또는 드라이버들을 포함하고, 다양한 하드웨어 및 소프트웨어 컴포넌트들 사이의 통신을 용이하게 한다.
통신 모듈(128)은 하나 이상의 외부 포트들(124)을 통한 다른 디바이스들과의 통신을 용이하게 하고, 또한 RF 회로(108) 및/또는 외부 포트(124)에 의해 수신되는 데이터를 처리하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 외부 포트(124)(예컨대, 범용 직렬 버스(Universal Serial Bus, USB), 파이어와이어(FIREWIRE) 등)는 다른 디바이스들에 직접적으로 또는 네트워크(예컨대, 인터넷, 무선 LAN 등)를 통해 간접적으로 결합하도록 구성된다.
접촉/모션 모듈(130)은 터치 스크린(112)(디스플레이 제어기(156)와 함께) 및 다른 터치 감응 디바이스들(예컨대, 터치패드 또는 물리적 클릭 휠)과의 접촉을 검출할 수 있다. 접촉/모션 모듈(130)은 접촉이 발생했는지를 판정하는 것(예컨대, 손가락-다운 이벤트(finger-down event)를 검출하는 것), 접촉의 이동이 있는지를 판정하고 터치 감응 표면을 가로지르는 이동을 추적하는 것(예컨대, 하나 이상의 손가락-드래그 이벤트(finger-dragging event)들을 검출하는 것), 및 접촉이 중지되었는지를 판정하는 것(예컨대, 손가락-업 이벤트(finger-up event) 또는 접촉 중단을 검출하는 것)과 같은, 접촉의 검출에 관련된 다양한 동작들을 수행하기 위한 다양한 소프트웨어 컴포넌트들을 포함한다. 접촉/모션 모듈(130)은 터치 감응 표면으로부터 접촉 데이터를 수신한다. 일련의 접촉 데이터에 의해 나타나는 접촉 지점의 이동을 판정하는 것은 접촉 지점의 속력(크기), 속도(크기 및 방향) 및/또는 가속도(크기 및/또는 방향의 변화)를 판정하는 것을 포함할 수 있다. 이들 동작들은 단일 접촉들(예컨대, 하나의 손가락 접촉들)에 또는 다수의 동시 접촉들(예컨대, "멀티터치"/다수의 손가락 접촉들)에 적용될 수 있다. 일부 실시예들에서, 접촉/모션 모듈(130) 및 디스플레이 제어기(156)는 터치패드 상의 접촉을 검출한다.
접촉/모션 모듈(130)은 사용자에 의한 제스처 입력을 검출할 수 있다. 터치 감응 표면 상의 상이한 제스처들은 상이한 접촉 패턴들을 갖는다. 따라서, 제스처는 특정 접촉 패턴을 검출함으로써 검출될 수 있다. 예를 들어, 손가락 탭 제스처(finger tap gesture)를 검출하는 것은 손가락-다운 이벤트를 검출한 다음에 손가락-다운 이벤트와 동일한 위치(또는 실질적으로 동일한 위치)(예를 들어, 아이콘의 위치)에서 손가락 업(들어올림) 이벤트를 검출하는 것을 포함한다. 다른 예로서, 터치 감응 표면 상에서 손가락 스와이프 제스처(finger swipe gesture)를 검출하는 것은 손가락-다운 이벤트를 검출한 다음에 하나 이상의 손가락-드래그 이벤트들을 검출하고, 그에 후속하여 손가락-업(들어올림) 이벤트를 검출하는 것을 포함한다.
접촉/모션 모듈(130)은 필기 입력 모듈(157)에 의해, 터치 감응 디스플레이 스크린(112) 상에 디스플레이되는 필기 입력 인터페이스의 필기 입력 영역 내에(또는 도 3의 디스플레이(340) 상에 디스플레이되는 필기 입력 영역에 대응하는 터치 패드(355)의 영역 내에) 필기 획들의 입력을 등록하도록 선택적으로 활용된다. 일부 실시예들에서, 초기 손가락-다운 이벤트, 최종 손가락-업 이벤트, 그들 사이의 임의의 시간 동안 접촉과 연관된 위치들, 모션 경로 및 세기들이 필기 획으로서 기록된다. 그러한 정보에 기초하여, 필기 획들은 사용자 입력에 대한 피드백으로서, 디스플레이 상에 렌더링될 수 있다. 추가로, 접촉/모션 모듈(130)에 의해 등록된 필기 획들에 기초하여 하나 이상의 입력 이미지들이 생성될 수 있다.
그래픽 모듈(132)은 디스플레이되는 그래픽의 세기를 변경하기 위한 컴포넌트들을 포함하는, 터치 스크린(112) 또는 다른 디스플레이 상에서 그래픽을 렌더링 및 디스플레이하기 위한 다양한 공지된 소프트웨어 컴포넌트들을 포함한다. 본 명세서에서 사용되는 바와 같이, 용어 "그래픽"은 텍스트, 웹 페이지들, 아이콘들(예를 들어, 소프트 키들을 포함하는 사용자-인터페이스 객체들), 디지털 이미지들, 비디오들, 애니메이션들 등을 제한 없이 포함하는, 사용자에게 디스플레이될 수 있는 임의의 객체를 포함한다.
일부 실시예들에서, 그래픽 모듈(132)은 사용될 그래픽을 나타내는 데이터를 저장한다. 각각의 그래픽에는 대응 코드가 배정될 수 있다. 그래픽 모듈(132)은, 필요한 경우 좌표 데이터 및 다른 그래픽 특성 데이터와 함께, 디스플레이될 그래픽을 특정하는 하나 이상의 코드들을 애플리케이션 등으로부터 수신하며, 이어서 스크린 이미지 데이터를 생성하여 디스플레이 제어기(156)로 출력한다.
그래픽 모듈(132)의 컴포넌트일 수 있는 텍스트 입력 모듈(134)은 다양한 애플리케이션들(예컨대, 연락처(137), 이메일(140), IM(141), 브라우저(147), 및 텍스트 입력을 필요로 하는 임의의 다른 애플리케이션)에서 텍스트를 입력하기 위한 소프트 키보드들을 제공한다. 일부 실시예들에서, 필기 입력 모듈(157)은, 예컨대 키보드 선택 어포던스를 통하여, 텍스트 입력 모듈(134)의 사용자 인터페이스를 통해 선택적으로 호출된다. 일부 실시예들에서, 동일 또는 유사한 키보드 선택 어포던스가 또한 텍스트 입력 모듈(134)을 호출하기 위해 필기 입력 인터페이스에서 제공된다.
GPS 모듈(135)은 디바이스의 위치를 결정하고, 이 정보를 다양한 애플리케이션들에서의 사용을 위해 (예컨대, 위치-기반 다이얼링에서 사용하기 위한 전화(138)에, 사진/비디오 메타데이터로서 카메라(143)에, 그리고 날씨 위젯들, 지역 옐로우 페이지 위젯들 및 지도/내비게이션 위젯들과 같은 위치-기반 서비스들을 제공하는 애플리케이션들에) 제공한다.
애플리케이션들(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).
메모리(102) 내에 저장될 수 있는 다른 애플리케이션들(136)의 예들은 다른 워드 프로세싱 애플리케이션들, 다른 이미지 편집 애플리케이션들, 드로잉 애플리케이션들, 프레젠테이션 애플리케이션들, JAVA-인에이블드 애플리케이션들, 암호화, 디지털 권한 관리, 음성 인식 및 음성 복제를 포함한다.
터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 연락처 모듈(137)은, 주소록에 이름(들)을 추가; 주소록으로부터 이름(들)을 삭제; 전화 번호(들), 이메일 주소(들), 물리적 주소(들) 또는 그 외의 정보를 이름과 연관시킴; 이미지를 이름과 연관시킴; 이름들을 분류 및 정렬함; 전화 번호들 또는 이메일 주소들을 제공하여 전화(138), 화상 회의(139), 이메일(140), 또는 IM(141)에 의한 통신을 개시하고 그리고/또는 용이하게 함; 등을 비롯하여, (예컨대, 메모리(102) 또는 메모리(370) 내의 연락처 모듈(137)의 애플리케이션 내부 상태(192)에 저장된) 주소록 또는 연락처 목록을 관리하는 데 사용될 수도 있다.
RF 회로(108), 오디오 회로(110), 스피커(111), 마이크로폰(113), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 전화 모듈(138)은, 전화 번호에 대응하는 문자들의 시퀀스를 입력하고, 주소록(137) 내의 하나 이상의 전화 번호들에 액세스하고, 입력된 전화 번호를 수정하고, 각각의 전화 번호를 다이얼링하고, 대화를 하고, 대화가 완료된 때 접속해제하거나 끊는 데 사용될 수 있다. 전술된 바와 같이, 무선 통신은 복수의 통신 표준들, 프로토콜들 및 기술들 중 임의의 것을 이용할 수 있다.
RF 회로(108), 오디오 회로(110), 스피커(111), 마이크로폰(113), 터치스크린(112), 디스플레이 제어기(156), 광 센서(164), 광 센서 제어기(158), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), 연락처 목록(137) 및 전화 모듈(138)과 함께, 화상 회의 모듈(139)은 사용자 명령어들에 따라 사용자와 한 명 이상의 다른 참여자들 사이의 화상 회의를 개시, 시행 및 종료하도록 하는 실행가능 명령어들을 포함한다.
RF 회로(108), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 이메일 클라이언트 모듈(140)은 사용자 명령어들에 응답하여 이메일을 생성, 전송, 수신, 및 관리하도록 하는 실행가능 명령어들을 포함한다. 이미지 관리 모듈(144)과 함께, 이메일 클라이언트 모듈(140)은 카메라 모듈(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를 이용하여 전송된 메시지들) 둘 모두를 지칭한다.
RF 회로(108), 터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), GPS 모듈(135), 지도 모듈(154) 및 음악 플레이어 모듈(146)과 함께, 운동 지원 모듈(142)은, (예컨대, 시간, 거리 및/또는 칼로리 소모 목표들을 갖는) 운동들을 생성하고; 운동 센서들(스포츠 디바이스들)과 통신하고; 운동 센서 데이터를 수신하고; 운동을 모니터링하기 위해 사용되는 센서들을 교정하고; 운동을 위한 음악을 선택하고 플레이하고; 운동 데이터를 디스플레이하고, 저장하고 송신하도록 하는 실행가능 명령어들을 포함한다.
터치 스크린(112), 디스플레이 제어기(156), 광 센서(들)(164), 광 센서 제어기(158), 접촉 모듈(130), 그래픽 모듈(132) 및 이미지 관리 모듈(144)과 함께, 카메라 모듈(143)은, 정지 이미지들 또는 비디오(비디오 스트림을 포함함)를 캡처하고 이들을 메모리(102) 내에 저장하거나, 정지 이미지 또는 비디오의 특성을 수정하거나, 또는 메모리(102)로부터 정지 이미지 또는 비디오를 삭제하도록 하는 실행가능 명령어들을 포함한다.
터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134) 및 카메라 모듈(143)과 함께, 이미지 관리 모듈(144)은 정지 및/또는 비디오 이미지들을 배열하거나, 수정(예컨대, 편집)하거나, 또는 달리 조작하고, 라벨링하고, 삭제하고, (예컨대, 디지털 슬라이드 쇼 또는 앨범에서) 제시하고, 저장하도록 하는 실행가능 명령어들을 포함한다.
RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 브라우저 모듈(147)은, 사용자 명령어들에 따라 인터넷을 브라우징하도록 - 웹 페이지들 또는 그들의 일부분뿐만 아니라 웹 페이지들에 링크된 첨부물들 및 다른 파일들을 검색하고, 그에 링크하고, 수신하고, 디스플레이하는 것을 포함함 - 하는 실행가능 명령어들을 포함한다.
RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), 이메일 클라이언트 모듈(140) 및 브라우저 모듈(147)과 함께, 캘린더 모듈(148)은, 사용자 명령어들에 따라 캘린더들 및 캘린더들과 연관된 데이터(예컨대, 캘린더 엔트리들, 할 일 목록들 등)를 생성하고, 디스플레이하고, 수정하고, 저장하도록 하는 실행가능 명령어들을 포함한다.
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!) 위젯들)을 포함한다.
RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134) 및 브라우저 모듈(147)과 함께, 위젯 생성기 모듈(150)은, 사용자에 의해 위젯들을 생성(예를 들어, 웹 페이지의 사용자-특정 부분을 위젯으로 변경)하는 데 사용될 수 있다.
터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 검색 모듈(151)은 사용자 명령어들에 따라 하나 이상의 검색 기준들(예컨대, 하나 이상의 사용자-특정 검색어)에 일치하는 메모리(102) 내의 텍스트, 음악, 사운드, 이미지, 비디오, 및/또는 다른 파일들을 검색하도록 하는 실행가능 명령어들을 포함한다.
터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 오디오 회로(110), 스피커(111), RF 회로(108) 및 브라우저 모듈(147)과 함께, 비디오 및 음악 플레이어 모듈(152)은, 사용자가 MP3 또는 AAC 파일들과 같은 하나 이상의 파일 포맷들로 저장된 녹음된 음악 및 다른 사운드 파일들을 다운로드 및 재생할 수 있게 하는 실행가능 명령어들, 및 비디오들을 (예컨대, 터치 스크린(112) 상에서 또는 외부 포트(124)를 통해 외부의 접속된 디스플레이 상에서) 디스플레이하거나, 상영하거나, 또는 달리 재생하도록 하는 실행가능 명령어들을 포함한다. 일부 실시예들에서, 디바이스(100)는 아이팟(애플 인크.의 상표)과 같은 MP3 플레이어의 기능을 포함할 수 있다.
터치 스크린(112), 디스플레이 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157) 및 텍스트 입력 모듈(134)과 함께, 메모 모듈(153)은 사용자 명령어들에 따라 메모들, 할 일 목록들 등을 생성 및 관리하도록 하는 실행가능 명령어들을 포함한다.
RF 회로(108), 터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 필기 입력 모듈(157), 텍스트 입력 모듈(134), GPS 모듈(135) 및 브라우저 모듈(147)과 함께, 지도 모듈(154)은, 사용자 명령어들에 따라 지도들 및 지도들과 연관된 데이터(예컨대, 주행 방향; 특정한 위치에 또는 그 근처에 있는 상점들 및 다른 관심 포인트들에 관한 데이터; 및 다른 위치-기반 데이터)를 수신하고, 디스플레이하고, 수정하고, 저장하는 데 사용될 수 있다.
터치 스크린(112), 디스플레이 시스템 제어기(156), 접촉 모듈(130), 그래픽 모듈(132), 오디오 회로(110), 스피커(111), RF 회로(108), 필기 입력 모듈(157), 텍스트 입력 모듈(134), 이메일 클라이언트 모듈(140) 및 브라우저 모듈(147)과 함께, 온라인 비디오 모듈(155)은, 사용자가 H.264와 같은 하나 이상의 파일 포맷들의 온라인 비디오들을 액세스하고, 브라우징하고, (예컨대, 스트리밍 및/또는 다운로드에 의해) 수신하고, (예컨대, 터치 스크린 상에서 또는 외부 포트(124)를 통해 외부의 접속된 디스플레이 상에서) 재생하고, 특정 온라인 비디오로의 링크를 갖는 이메일을 전송하고, 달리 관리할 수 있게 하는 명령어들을 포함한다. 일부 실시예들에서, 특정한 온라인 비디오로의 링크를 전송하기 위해 이메일 클라이언트 모듈(140)보다는 인스턴트 메시징 모듈(141)이 사용된다.
상기 식별된 모듈들 및 애플리케이션들 각각은 상기 설명된 하나 이상의 기능들 및 본 출원에 설명되는 방법들(예컨대, 컴퓨터-구현 방법들 및 본 명세서에 설명되는 다른 정보 프로세싱 방법들)을 수행하기 위한 실행가능 명령어들의 세트에 대응한다. 이들 모듈들(즉, 명령어들의 세트들)은 별도의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없으며, 따라서 이들 모듈들의 다양한 서브세트들이 다양한 실시예들에서 조합되거나 달리 재배열될 수 있다. 일부 실시예들에서, 메모리(102)는 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한, 메모리(102)는 상기에 설명되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.
일부 실시예들에서, 디바이스(100)는 디바이스 상의 사전정의된 세트의 기능들의 동작이 터치 스크린 및/또는 터치패드를 통해 배타적으로 수행되는 디바이스이다. 터치 스크린 및/또는 터치패드를 디바이스(100)의 동작을 위한 주 입력 제어 디바이스로서 사용함으로써, 디바이스(100) 상의 (푸시 버튼들, 다이얼들 등과 같은) 물리적 입력 제어 디바이스들의 수가 감소될 수 있다.
도 2는 일부 실시예들에 따른 터치 스크린(112)을 갖는 휴대용 다기능 디바이스(100)를 도시한다. 터치 스크린은 사용자 인터페이스(UI)(200) 내에서 하나 이상의 그래픽들을 디스플레이할 수 있다. 이러한 실시예에서뿐만 아니라 하기에 설명되는 다른 실시예들에서, 사용자는, 예를 들어 하나 이상의 손가락들(202)(도면에서 축척대로 도시되지는 않음) 또는 하나 이상의 스타일러스들(203)(도면에서 축척대로 도시되지는 않음)을 이용하여, 그래픽들 상에서 제스처를 행함으로써 그래픽들 중 하나 이상을 선택할 수 있다. 일부 실시예들에서, 하나 이상의 그래픽들의 선택은 사용자가 하나 이상의 그래픽들과의 접촉을 중단할 때 발생한다. 일부 실시예들에서, 제스처는, 디바이스(100)와 접촉한 손가락의 하나 이상의 탭들, (좌측에서 우측으로, 우측에서 좌측으로, 상방으로 및/또는 하방으로의) 하나 이상의 스와이프들 및/또는 (우측에서 좌측으로, 좌측에서 우측으로, 상방으로 및/또는 하방으로의) 롤링을 포함할 수 있다. 일부 실시예들에서, 그래픽과의 부주의한 접촉이 그 그래픽을 선택하지 않을 수 있다. 예를 들어, 애플리케이션 아이콘 위를 훑는(sweep) 스와이프 제스처는, 선택에 대응하는 제스처가 탭일 때, 대응하는 애플리케이션을 선택하지 않을 수 있다.
디바이스(100)는 또한 "홈" 또는 메뉴 버튼(204)과 같은 하나 이상의 물리적 버튼들을 포함할 수 있다. 이전에 설명된 바와 같이, 메뉴 버튼(204)은 디바이스(100) 상에서 실행될 수 있는 애플리케이션들의 세트에서 임의의 애플리케이션(136)으로 내비게이션하기 위해 사용될 수 있다. 대안적으로, 일부 실시예들에서, 메뉴 버튼은 터치 스크린(112) 상에 디스플레이된 GUI에서 소프트 키로서 구현된다.
일 실시예에서, 디바이스(100)는 터치 스크린(112), 메뉴 버튼(204), 디바이스의 전원을 온/오프하고 디바이스를 잠그기 위한 푸시 버튼(206), 음량 조절 버튼(들)(208), 가입자 아이덴티티 모듈(SIM) 카드 슬롯(210), 헤드셋 잭(212), 및 도킹/충전 외부 포트(124)를 포함한다. 푸시 버튼(206)은 버튼을 누르고 사전정의된 시간 간격 동안 버튼을 누름 상태로 유지함으로써 디바이스에 대한 전원 온/오프를 변경하고; 버튼을 누르고 사전정의된 시간 간격이 경과하기 전에 버튼을 누름해제함으로써 디바이스를 잠그고; 그리고/또는 디바이스를 잠금해제하거나 또는 잠금해제 프로세스를 개시하는 데 사용될 수 있다. 대안적인 실시예에서, 디바이스(100)는 또한 마이크로폰(113)을 통해 일부 기능들의 활성화 또는 비활성화를 위한 구두 입력(verbal input)을 허용할 수 있다.
도 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)는 이들 모듈들을 저장하지 않을 수 있다.
도 3에서 상기 식별된 요소들 각각은 이전에 언급된 메모리 디바이스들 중 하나 이상에 저장될 수 있다. 상기 식별된 모듈들 각각은 상기 설명된 기능을 수행하기 위한 명령어들의 세트에 대응한다. 상기 식별된 모듈들 또는 프로그램들(즉, 명령어들의 세트들)은 별도의 소프트웨어 프로그램들, 절차들 또는 모듈들로서 구현될 필요는 없으며, 따라서 이들 모듈들의 다양한 서브세트들이 다양한 실시예들에서 조합되거나 달리 재배열될 수 있다. 일부 실시예들에서, 메모리(370)는 상기 식별된 모듈들 및 데이터 구조들의 서브세트를 저장할 수 있다. 또한, 메모리(370)는 상기에 설명되지 않은 추가적인 모듈들 및 데이터 구조들을 저장할 수 있다.
도 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) 상의 사용자 인터페이스를 조작하는 데 사용된다. 유사한 방법들이 본 명세서에 기술되는 다른 사용자 인터페이스들에 이용될 수 있다는 것이 이해되어야 한다.
이제, 다기능 디바이스(예컨대, 디바이스(100)) 상에서 구현될 수 있는 필기 입력 방법들 및 사용자 인터페이스들("UI")의 실시예들에 주목한다.
도 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)을 포함한다.
일부 실시예들에서, 입력 프로세싱 모듈(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)을 제공한다.
일부 실시예들에서, 각 필기 획을 표시하는 데이터가 입력 프로세싱 모듈(502)에 의해 수신됨에 따라, 다수의 연속 획들과 연관된 시간적 및 시퀀스 정보가 또한 기록된다. 예를 들어, 데이터는 선택적으로 전체 필기 입력의 기입 방향을 따라 획들의 형상, 크기, 개별 획 시퀀스 번호들을 갖는 개별 획들의 공간 포화도, 및 상대적인 공간 위치들 등을 보여주는 스택을 포함한다. 일부 실시예들에서, 입력 프로세싱 모듈(502)은 디바이스의 디스플레이(518)(예를 들어, 도 3의 디스플레이(340) 또는 도 1의 터치 감응 디스플레이(112)) 상에서 수신 획들을 렌더링하도록 하는 명령어들을 I/O 인터페이스 모듈들(500)로 다시 제공한다. 일부 실시예들에서, 수신 획들의 렌더링은 필기 기구(예컨대, 펜)를 이용한 기입 표면(예컨대, 종이 한장) 상에서의 기입의 실제 진행을 모방하는 시각적 효과를 제공하기 위해 애니메이션으로 만들어진다. 일부 실시예들에서, 사용자는 선택적으로 렌더링된 획들의 펜-끝 스타일(pen-tip style), 색, 텍스처(texture) 등을 특정하는 것이 허용된다.
일부 실시예들에서, 입력 프로세싱 모듈(502)은 필기 입력 영역에서 현재 누적된 획들을 프로세싱하여 그 획들을 하나 이상의 인식 유닛들에 배정한다. 일부 실시예들에서, 각 인식 유닛은 필기 인식 모델(504)에 의해 인식되어야 할 문자에 대응한다. 일부 실시예들에서, 각 인식 유닛은 필기 인식 모델(504)에 의해 인식되어야 할 출력 문자 또는 부수에 대응한다. 부수는 다수의 복합 표어 문자들에서 발견되는 반복 구성요소이다. 복합 표어 문자는 일반적인 레이아웃(예컨대, 좌우 레이아웃, 상하 레이아웃 등)에 따라 배열된 2개 이상의 부수들을 포함할 수 있다. 일 예에서, 단일의 한자 ""는 2개의 부수들, 즉, 왼쪽 부수 "口" 및 오른쪽 부수 "斤"를 사용하여 구성된다.
일부 실시예들에서, 입력 프로세싱 모듈(502)은 분할 모듈에 의존하여 현재 누적된 필기 획들을 하나 이상의 인식 유닛들로 배정 또는 나눈다. 예를 들어, 필기 문자 ""에 대한 획들을 분할하는 경우, 분할 모듈(508)은 선택적으로 필기 입력의 좌측에 클러스터링된 획들을 (즉, 왼쪽 부수 "口"에 대한) 하나의 인식 유닛에 배정하고, 필기 입력의 우측에 클러스터링된 획들을 (즉, 오른쪽 부수 "斤"에 대한) 다른 인식 유닛에 배정한다. 대안적으로, 분할 모듈(508)은 또한 모든 획들을 (즉, 문자 ""에 대한) 단일 인식 유닛에 배정할 수 있다.
일부 실시예들에서, 분할 모듈(508)은 현재 누적된 필기 입력(예컨대, 하나 이상의 필기 획들)을 여러 가지 상이한 방식으로 인식 유닛들의 그룹으로 분할하여 분할 격자(520)를 생성한다. 예를 들어, 총 9개의 획들이 필기 입력 영역에서 지금까지 누적되었다고 가정한다. 분할 격자(520)의 제1 분할 체인에 따르면, 획1, 획2, 획3이 제1 인식 유닛(522)으로 그룹화되고, 획4, 획5, 획6이 제2 인식 유닛(526)으로 그룹화된다. 분할 격자(520)의 제2 분할 체인에 따르면, 획1 내지 획9 모두가 하나의 인식 유닛(526)으로 그룹화된다.
일부 실시예들에서, 각 분할 체인은, 특정한 분할 체인이 현재 필기 입력의 정확한 분할일 가능성을 측정하기 위한 분할 점수가 주어진다. 일부 실시예들에서, 각 분할 체인의 분할 점수를 계산하기 위해 선택적으로 사용되는 인자들은, 획의 절대 및/또는 상대 크기, 다양한 방향들(예컨대, x, y, z 방향들)에서의 획의 상대 및/또는 절대 스팬(span), 획의 포화 레벨에서의 변동들 및/또는 그의 평균, 인접 획들에 대한 절대 및/또는 상대 거리들, 획들의 절대 및/또는 상대 위치들, 획들이 입력되는 순서 또는 시퀀스, 각 획의 지속기간, 각 획이 입력된 속도(또는 템포)에서의 변동들 및/또는 그의 평균, 획의 길이를 따른 각 획의 세기 프로파일 등을 포함한다. 일부 실시예들에서, 이들 인자들 중 하나 이상에 선택적으로 하나 이상의 기능들 또는 변환들이 적용되어 분할 격자(520)에서의 상이한 분할 체인들의 분할 점수들을 생성한다.
일부 실시예들에서, 분할 모듈(508)이 사용자로부터 수신된 현재의 필기 입력(516)을 분할한 후에, 분할 모듈(508)은 분할 격자(520)를 정규화 모듈(510)로 전달한다. 일부 실시예들에서, 정규화 모듈(510)은 분할 격자(520)에서 특정된 각 인식 유닛(예컨대, 인식 유닛들(522, 524, 526))에 대한 입력 이미지(예컨대, 입력 이미지들(528))를 생성한다. 일부 실시예들에서, 정규화 모듈은 입력 이미지에 대해 필요한 또는 원하는 정규화(예컨대, 스트레칭, 크로핑, 다운-샘플 또는 업-샘플링)를 수행하여, 입력 이미지가 필기 인식 모델(504)에 입력으로서 제공될 수 있도록 한다. 일부 실시예들에서, 각 입력 이미지(528)는 하나의 개별 인식 유닛에 배정된 획들을 포함하고, 필기 인식 모듈(504)에 의해 인식되어야 할 하나의 문자 또는 부수에 대응한다.
일부 실시예들에서, 입력 프로세싱 모듈(502)에 의해 생성되는 입력 이미지들은 개별 획들과 연관된 임의의 시간 정보를 포함하지 않고, 공간 정보(예컨대, 입력 이미지에서의 픽셀들의 밀도 및 위치에 의해 표시되는 정보)만이 입력 이미지에 보존된다. 훈련 기입 샘플들의 공간 정보에 대해서만 전적으로 훈련된 필기 인식 모델은 공간 정보에 기초한 필기 인식만이 가능하다. 결과적으로, 필기 인식 모델은, 훈련 동안 그의 어휘(즉, 모든 출력 클래스들)에서의 모든 문자들에 대해 획 순서들 및 획 방향들의 모든 가능한 치환들을 철저하게 열거하지 않고서, 획 순서 및 획 방향에 독립적이다. 실제로, 일부 실시예들에서, 필기 인식 모듈(502)은 입력 이미지 내의 하나의 획에 속하는 픽셀과 다른 획에 속하는 픽셀을 구별하지 않는다.
(예컨대, 도 25a 내지 도 27에 대하여) 이후에 더욱 상세하게 설명되는 바와 같이, 일부 실시예들에서, 인식 모델의 획 순서 및 획 방향 독립성을 훼손시키지 않고서, 인식 정확도를 개선시키기 위해, 일부 시간-유도 획 분포 정보가 전적으로-공간적인 필기 인식 모델로 재도입된다.
일부 실시예들에서, 하나의 인식 유닛에 대해 입력 프로세싱 모듈(502)에 의해 생성된 입력 이미지는 동일한 분할 체인에서의 임의의 다른 인식 유닛의 입력 이미지와 중첩하지 않는다. 일부 실시예들에서, 상이한 인식 유닛들에 대해 생성된 입력 이미지들은 약간 중첩할 수도 있다. 일부 실시예들에서, 입력 이미지들 간의 약간의 중첩은, 초서체로 기입되고 그리고/또는 이어지는(run-on) 문자들(예컨대, 하나의 획이 2개의 인접 문자들을 연결함)을 포함하는 필기 입력을 인식하기 위해 허용된다.
일부 실시예들에서, 분할 전에 일부 정규화가 수행된다. 일부 실시예들에서, 분할 모듈(508) 및 정규화 모듈(510)의 기능들이 동일한 모듈 또는 2개 이상의 다른 모듈들에 의해 수행될 수 있다.
일부 실시예들에서, 각 인식 유닛의 입력 이미지(528)가 필기 인식 모델(504)로 입력으로서 제공됨에 따라, 필기 인식 모델(504)은, 인식 유닛이 필기 인식 모델(504)의 레퍼토리 또는 어휘(즉, 필기 인식 모듈(504)에 의해 인식가능한 모든 문자들 및 부수들의 목록)에서의 개별 출력 문자가 될 상이한 가능성으로 이루어진 출력을 생성한다. 이후에 더욱 상세하게 설명되는 바와 같이, 필기 인식 모델(504)은 다중 스크립트들(예컨대, 유니코드 표준에 의해 인코딩된 적어도 3개의 비중첩 스크립트들)에서의 많은 수의 문자들을 인식하도록 훈련되었다.
비중첩 스크립트의 예에는 라틴어 스크립트, 한자, 아랍어 문자, 페르시아어, 키릴 문자, 및 이모지 캐릭터와 같은 인공 스크립트가 포함된다. 일부 실시예들에서, 필기 인식 모델(504)은 각 입력 이미지에 대한 (즉, 각 인식 유닛에 대한) 하나 이상의 출력 문자들을 생성하고, 문자 인식과 연관된 신뢰도 레벨에 기초하여 각 출력 문자에 대해 개별 인식 점수를 배정한다.
일부 실시예들에서, 필기 인식 모델(504)은 분할 격자(520)에 따라 후보 격자(530)를 생성하고, 여기서 분할 격자(520) 내의 (예컨대, 개별 인식 유닛(522, 524, 526)에 대응하는) 분할 체인에서의 각 원호(arc)는 후보 격자(530) 내에서 하나 이상의 후보 원호들(예컨대, 개별 출력 문자에 각각 대응하는 원호들(532, 534, 536, 538, 540))로 팽창된다. 후보 격자(530) 내의 각 후보 체인은, 후보 체인의 기저가 되는 분할 체인의 개별 분할 점수, 및 문자 체인에서의 출력 문자들과 연관된 인식 점수들에 따라 점수화된다.
일부 실시예들에서, 필기 인식 모델(504)이 인식 유닛들의 입력 이미지들(528)로부터 출력 문자들을 생성한 후에, 후보 격자(530)는 결과 생성 모듈(506)로 전달되어 현재 누적된 필기 입력(516)에 대한 하나 이상의 인식 결과들을 생성한다.
일부 실시예들에서, 결과 생성 모듈(506)은 부수 클러스터링 모듈(512)을 활용하여 후보 체인에서의 하나 이상의 부수들을 복합 문자로 조합한다. 일부 실시예들에서, 결과 생성 모듈(506)은 하나 이상의 언어 모델들(514)을 사용하여, 후보 격자(530)에서의 문자 체인이 언어 모델들에 의해 표시되는 특정한 언어에서의 가능성 있는 시퀀스인지를 판정한다. 일부 실시예들에서, 결과 생성 모듈(506)은, 후보 격자(530)에서의 2개 이상의 원호들을 조합하거나 특정한 원호들을 제거함으로써 개정된 후보 격자(542)를 생성한다.
일부 실시예들에서, 결과 생성 모듈(506)은, 부수 클러스터링 모듈(512) 및 언어 모델들(514)에 의해 수정(예컨대, 증강 또는 축소)됨에 따라, 문자 시퀀스에서의 출력 문자들의 인식 점수들에 기초하여, 개정된 후보 격자(542)에서 여전히 남아 있는 각 문자 시퀀스(예컨대, 문자 시퀀스들(544, 546))에 대해 통합된 인식 점수를 생성한다. 일부 실시예들에서, 결과 생성 모듈(506)은 이들의 통합된 인식 점수들에 기초하여 개정된 후보 격자(542)에서 남아 있는 상이한 문자 시퀀스들의 순위를 매긴다.
일부 실시예들에서, 결과 생성 모듈(506)은 최상위(top-ranked) 문자 시퀀스들을 순위가 매겨진 인식 결과들(548)로서 I/O 인터페이스 모듈(500)로 전송하여 사용자에게 디스플레이한다. 일부 실시예들에서, I/O 인터페이스 모듈(500)은 수신된 인식 결과들(548)(예컨대, "" 및 "")을 필기 입력 인터페이스의 후보 디스플레이 영역에서 디스플레이한다. 일부 실시예들에서, I/O 인터페이스 모듈은 사용자를 위해 다수의 인식 결과들 (예컨대, "" 및 "")을 디스플레이하고, 사용자가 인식 결과를 선택하여 관련 애플리케이션에 대한 텍스트 입력으로서 입력할 수 있게 한다. 일부 실시예들에서, I/O 인터페이스 모듈은 인식 결과의 사용자 확인의 표시들 또는 기타 입력들에 응답하여 최상위 인식 결과(예컨대, "")를 자동으로 입력한다. 최상위 결과의 효과적인 자동 입력은 입력 인터페이스의 효율을 개선시킬 수 있고, 보다 양호한 사용자 경험을 제공한다.
일부 실시예들에서, 결과 생성 모듈(506)은 다른 인자들을 사용하여 후보 체인들의 통합된 인식 점수들을 변경한다. 예를 들어, 일부 실시예들에서, 결과 생성 모듈(506)은 선택적으로 특정한 사용자 또는 수많은 사용자들에 대해 가장 빈번하게 사용된 문자들의 로그(log)를 유지한다. 가장 빈번하게 사용된 문자들 또는 문자 시퀀스들의 목록 중에서 특정한 후보 문자들 또는 문자 시퀀스들이 발견되면, 결과 생성 모듈(506)은 선택적으로 특정한 후보 문자들 또는 문자 시퀀스들의 통합된 인식 점수들을 올린다.
일부 실시예들에서, 필기 입력 모듈(157)은 사용자에게 디스플레이되는 인식 결과들에 대해 실시간 업데이트들을 제공한다. 예를 들어, 일부 실시예들에서, 사용자에 의해 입력되는 각 추가적인 획에 대해, 입력 프로세싱 모듈(502)은 선택적으로 현재 누적된 필기 입력을 재분할하고, 필기 인식 모델(504)로 제공되는 입력 이미지들 및 분할 격자를 개정한다. 결국, 필기 인식 모델(504)은 선택적으로 결과 생성 모듈(506)로 제공되는 후보 격자를 개정한다. 결과적으로, 결과 생성 모듈(506)은 선택적으로 사용자에게 제시되는 인식 결과들을 업데이트한다. 본 명세서에서 사용되는 바와 같이, 실시간 필기 인식은 필기 인식 결과들이 사용자에게 즉각적으로 또는 단기간 내에 (예컨대, 수십 밀리초 내지 수 초 이내에) 제시되는 필기 인식을 지칭한다. 실시간 필기 인식은, 나중의 인출(retrieval)을 위해 저장되는 기록된 이미지로부터 현재 사용자 세션 후에 한 번에 하지 않고, 인식이 즉시 개시되고 필기 입력의 수신과 실질적으로 동시에 수행되는 (예컨대, 오프라인 광학 문자-인식(OCR) 애플리케이션들에서처럼) 오프라인 인식과는 다르다. 또한, 오프라인 문자 인식은 개별 획들 및 획 시퀀스들에 관한 임의의 시간 정보 없이 수행되므로, 이러한 정보의 혜택 없이 분할이 수행된다. 유사해 보이는 후보 문자들 사이의 추가 명확화도 또한 이러한 시간 정보의 혜택 없이 행해진다.
일부 실시예들에서, 필기 인식 모델(504)은 콘볼루션 뉴럴 네트워크(convolutional neural network, CNN)로서 구현된다. 도 6은 다수의 비중첩 스크립트들에서의 문자들에 대한 기입 샘플들을 포함하는 멀티스크립트 훈련 코퍼스(604)에 대해 훈련된 예시적인 콘볼루션 뉴럴 네트워크(602)를 도시한다.
도 6에 도시된 바와 같이, 콘볼루션 뉴럴 네트워크(602)는 입력 플레인(606) 및 출력 플레인(608)을 포함한다. 입력 플레인(606)과 출력 플레인(608) 사이에는 복수의 콘볼루션 층들(610)(예컨대, 첫 번째 콘볼루션 층(610a), 0개 이상의 중간 콘볼루션 층들(도시되지 않음), 및 마지막 콘볼루션 층(610n)을 포함함)이 존재한다. 각 콘볼루션 층(610)에 뒤이어 개별 서브-샘플링 층(612)(예컨대, 첫 번째 서브-샘플링 층(612a), 0개 이상의 중간 서브-샘플링 층들(도시되지 않음) 및 마지막 서브-샘플링 층(612n))이 있다. 콘볼루션 층들 및 서브-샘플링 층들 뒤에 그리고 출력 플레인(608) 직전에 은닉 층(614)이 존재한다. 은닉 층(614)은 출력 플레인(608) 전에 있는 마지막 층이다. 일부 실시예들에서, 산출 효율을 개선시키기 위해 각 콘볼루션 층(610) 앞에 커널 층(616)(예컨대, 첫 번째 커널 층(616a), 0개 이상의 중간 커널 층들(도시되지 않음) 및 마지막 커널 층(612n)을 포함함)이 삽입된다.
도 6에 도시된 바와 같이, 입력 플레인(606)은 필기 인식 유닛의 입력 이미지(614)(예컨대, 필기 문자 또는 부수)를 수신하고, 출력 플레인(608)은 인식 유닛이 개별 출력 클래스(예컨대, 뉴럴 네트워크가 인식하도록 구성되는 출력 문자 세트 중에서의 특정한 문자)에 속할 가능성을 나타내는 확률들의 세트를 출력한다. 전체적으로 뉴럴 네트워크의 출력 클래스들(또는 뉴럴 네트워크의 출력 문자 세트)은 또한 필기 인식 모델의 레퍼토리 또는 어휘라고도 지칭된다. 본 명세서에 설명되는 콘볼루션 뉴럴 네트워크는 수만의 문자들의 레퍼토리를 갖도록 훈련될 수 있다.
입력 이미지(614)가 뉴럴 네트워크의 상이한 층들을 통하여 프로세싱될 때, 입력 이미지(614)에 내장된 상이한 공간 특징부들이 콘볼루션 층들(610)에 의해 추출된다. 각 콘볼루션 층(610)은 또한 특징부 맵들의 세트라고도 지칭되고, 상이한 문자들에 대응하는 이미지들 사이를 구분하기 위해 입력 이미지(614)에서 특정한 특징부들을 선발하기 위한 필터들로서 작용한다. 서브-샘플링 층들(612)은 점점 더 큰 축척으로 특징부들이 입력 이미지(614)로부터 캡처되는 것을 보장한다. 일부 실시예들에서, 서브-샘플링 층들(612)은 최대-풀링 기법(max-pooling technique)을 이용하여 구현된다. 최대-풀링 층들은 더 큰 국부적 구역들에 걸쳐 위치 불변성을 생성하며, 각 방향을 따라 Kx 및 Ky의 인자에 의해 선행 콘볼루션 층의 출력 이미지를 다운 샘플링하는데, Kx 및 Ky는 최대-풀링 직사각형의 크기이다. 최대-풀링은 우수한 불변 특징부들을 선택함으로써 더 빠른 수렴 속도를 야기하며, 이는 일반화 성능들을 개선시킨다. 일부 실시예들에서, 서브-샘플링은 다른 방법들을 이용하여 달성된다.
일부 실시예들에서, 콘볼루션 층(610n) 및 서브-샘플링 층(612n)의 마지막 세트 뒤에 그리고 출력 플레인(608) 앞에, 완전-접속 층(fully-connected layer), 즉 은닉 층(614)이 존재한다. 완전-접속 은닉 층(614)은 마지막 서브-샘플링 층(612n)에서의 노드들과 출력 플레인(608)에서의 노드들을 완전히 접속시키는 다층 퍼셉트론(multi-layer perceptron)이다. 은닉 층(614)은, 로지스틱 회귀(logistic regression)가 출력 층(608)에서의 출력 문자들 중 하나에 도달하기 전에 그리고 그 도중에, 그 층으로부터 수신된 출력 이미지들을 차지한다.
콘볼루션 뉴럴 네트워크(602)의 훈련 동안, 훈련 코퍼스(604)에서의 알려진 출력 클래스들을 이용한 기입 샘플들에 대해 구분 오류들이 최소화되도록 콘볼루션 층들(610)에서의 특징부들 및 특징부들과 연관된 개별 가중치들뿐만 아니라 은닉 층(614)에서의 파라미터들과 연관된 가중치들이 조율된다. 일단 콘볼루션 뉴럴 네트워크(602)가 훈련되었고 네트워크에서의 상이한 층들에 대해 최적 세트의 파라미터들 및 연관된 가중치들이 확립되었다면, 콘볼루션 뉴럴 네트워크(602)를 사용하여, 훈련 코퍼스(604)의 부분이 아닌 새로운 기입 샘플들(618), 예를 들어 사용자로부터 수신된 실시간 필기 입력에 기초하여 생성되는 입력 이미지들을 인식한다.
본 명세서에 설명되는 바와 같이, 필기 입력 인터페이스의 콘볼루션 뉴럴 네트워크는 멀티스크립트 또는 혼합 스크립트 필기 인식을 가능하게 하기 위해 멀티스크립트 훈련 코퍼스를 사용하여 훈련된다. 일부 실시예들에서, 콘볼루션 뉴럴 네트워크는 30,000개 내지 60,000개 초과의 문자들(예컨대, 유니코드 표준에 의해 인코딩되는 모든 문자들)의 큰 레퍼토리를 인식하도록 훈련된다. 대부분의 최신의(state-of-the-art) 필기 인식 시스템들은 획 순서에 의존적인 은닉 마르코프 방법(HMM)들에 기초한다. 또한, 대부분의 기존의 필기 인식 모델들은 언어-특정적이며, 수십 개의 문자들(예컨대, 영어 알파벳, 그리스어 알파벳, 전부 10개의 숫자들 등의 문자) 내지 몇 천 개의 문자들 (예컨대, 대부분의 상용 한자의 세트)까지의 작은 레퍼토리를 포함한다. 이와 같이, 본 명세서에 설명되는 보편적인 인식기는 대부분의 기존의 시스템들보다 수십 배 더 많은 문자들을 취급할 수 있다.
몇몇 종래의 필기 시스템들은 여러 개의 개별적으로 훈련된 필기 인식 모델들을 포함할 수 있고, 각각의 필기 인식 모델은 특정한 언어 또는 문자들의 작은 세트에 대해 맞춤화되어 있다. 기입 샘플은 구분이 이루어질 때까지 상이한 인식 모델들을 거쳐 전파된다. 예를 들어, 필기 샘플은 일련의 연속된 언어-특정 또는 스크립트-특정 문자 인식 모델들로 제공될 수 있고, 필기 샘플이 제1 인식 모델에 의해 확실히 구분될 수 없는 경우, 그것은 다음 인식 모델로 제공되는데, 다음 인식 모델은 필기 샘플을 그 자신의 레퍼토리 내에서 구분하려고 시도한다. 구분을 위한 이 접근법은 시간 소모적이며, 메모리 요건은 이용될 필요가 있는 각각의 추가적인 인식 모델에 따라 빠르게 증가한다.
다른 최신의 모델들은 사용자에게 선호 언어를 특정하도록 요구하며, 선택된 필기 인식 모델을 사용하여 현재의 입력을 구분한다. 이러한 구현예들은 사용하기 번잡하고 상당한 메모리를 소모할 뿐만 아니라 혼합 언어 입력을 인식하기 위해 사용될 수도 없다. 혼합 언어 또는 혼합 스크립트 입력을 입력하는 도중에 사용자에게 언어 기본 설정을 전환하도록 요구하는 것은 비현실적이다.
본 명세서에서 설명되는 멀티스크립트 또는 보편적인 인식기는 종래의 인식 시스템들에 대한 상기 문제점들의 적어도 일부를 다룬다. 도 7은, 필기 인식 모듈이 후속하여 사용자의 필기 입력에 대한 실시간 다중 언어 및 멀티스크립트 필기 인식을 제공하기 위해 사용될 수 있도록, 대형 멀티스크립트 훈련 코퍼스를 사용하여 필기 인식 모듈(예컨대, 콘볼루션 뉴럴 네트워크)을 훈련시키기 위한 예시적인 프로세스(700)의 플로차트이다.
일부 실시예들에서, 필기 인식 모델의 훈련이 서버 디바이스 상에서 수행된 후에, 훈련된 필기 인식 모델이 사용자 디바이스로 제공된다. 필기 인식 모델은 선택적으로 서버로부터의 추가 지원을 요구하지 않고서 사용자 디바이스 상에서 국부적으로 실시간 필기 인식을 수행한다. 일부 실시예들에서, 훈련 및 인식 둘 모두가 동일한 디바이스 상에서 제공된다. 예를 들어, 서버 디바이스는 사용자 디바이스로부터 사용자의 필기 입력을 수신하고, 필기 인식을 수행하고, 인식 결과들을 사용자 디바이스로 실시간으로 전송할 수 있다.
예시적인 프로세스(700)에서, 하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서, 디바이스는 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들(예컨대, 획 순서 독립적인 특징부들)에 기초하여 멀티스크립트 필기 인식 모델을 훈련시킨다(702). 일부 실시예들에서, 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들은 획 순서 독립적이며 획 방향 독립적이다(704). 일부 실시예들에서, 멀티스크립트 필기 인식 모델의 훈련은 필기 샘플들에서의 개별 획들과 연관된 시간 정보에 관계없다(706). 구체적으로, 필기 샘플들의 이미지들은 사전결정된 크기로 정규화되고, 이미지들은 개별 획들이 이미지를 형성하도록 입력되는 순서에 대한 어떠한 정보도 포함하지 않는다. 게다가, 이미지들은 또한 개별 획들이 이미지를 형성하도록 입력되는 방향에 대한 어떠한 정보도 포함하지 않는다. 사실상, 훈련 동안, 이미지들이 개별 획들에 의해 어떻게 시간적으로 형성되는지에 상관없이 필기 이미지들로부터 특징부들이 추출된다. 따라서, 인식 동안, 개별 획들에 관련된 시간 정보가 필요하지 않다. 결과적으로, 인식은 필기 입력에서의 지연된, 비순서적인(out-of-order) 획들, 및 임의의 획 방향들에도 불구하고 확고하게 일관된 인식 결과들을 제공한다.
일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 필기 샘플들을 포함한다. 도 6에 도시된 바와 같이, 멀티스크립트 훈련 코퍼스는 많은 사용자들로부터 수집된 필기 샘플들을 포함한다. 각 필기 샘플은 필기 인식 모델에서 표시되는 개별 스크립트의 하나의 문자에 대응한다. 필기 인식 모델을 적절히 훈련시키기 위해, 훈련 코퍼스는 필기 인식 모델에서 표시되는 스크립트들의 각 문자에 대한 많은 수의 기입 샘플들을 포함한다.
일부 실시예들에서, 적어도 3개의 비중첩 스크립트들은 한자들, 이모지 캐릭터들 및 라틴어 스크립트를 포함한다(708). 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 적어도 3개의 비중첩 스크립트들에 걸치는 30,000개의 문자들을 표시하는 적어도 30,000개의 출력 클래스들을 갖는다(710).
일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 유니코드 표준으로 인코딩된 모든 한자들(예컨대, 모든 CJK(중국어-일본어-한국어) 통일된 표의 문자(unified ideograph)들의 상당 부분 또는 전부)의 각 문자에 대한 개별 기입 샘플들을 포함한다. 유니코드 표준은 전체 약 74,000개의 CJK 통일된 표의 문자들을 정의한다. CJK 통일된 표의 문자들의 기본 블록(4E00-9FFF)은 중국어에서뿐만 아니라 일본어, 한국어 및 베트남어에서도 사용되는 20,941개의 기본 한자들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 CJK 통일된 표의 문자들의 기본 블록에서의 모든 문자들에 대한 기입 샘플들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 하나 이상의 복합 한자들을 구조적으로 구성하도록 사용될 수 있는 CJK 부수들에 대한 기입 샘플들을 추가로 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 CJK 통일된 표의 문자 확장들 중 하나 이상으로 인코딩된 한자들과 같이 덜 빈번하게 사용된 한자들에 대한 기입 샘플들을 추가로 포함한다.
일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 유니코드 표준에 의해 인코딩된 라틴어 스크립트에서의 모든 문자들의 각 문자에 대한 개별 기입 샘플들을 추가로 포함한다. 기본 라틴어 스크립트에서의 문자들은, 라틴어 소문자 및 대문자 뿐만 아니라 표준 라틴어 키보드 상에서 일반적으로 사용되는 다양한 기본 심볼들 및 숫자들도 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 확장된 라틴어 스크립트 (예컨대, 기본 라틴어 문자들의 다양한 억양 형태들)에서의 문자들을 추가로 포함한다.
일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 임의의 자연 인간 언어와 연관되지 않은 인공 스크립트의 각 문자에 대응하는 기입 샘플들을 포함한다. 예를 들어, 일부 실시예들에서, 이모지 캐릭터들의 세트가 이모지 스크립트에서 선택적으로 정의되고, 이모지 캐릭터들 각각에 대응하는 기입 샘플들이 멀티스크립트 훈련 코퍼스에 포함된다. 예를 들어, 손으로 그려진 하트 형상의 심볼이 훈련 코퍼스에서 이모지 캐릭터 "♥"에 대한 필기 샘플이다. 유사하게, 손으로 그려진 웃는 얼굴(예컨대, 뒤집힌 원호 위에 있는 2개의 점들)이 훈련 코퍼스에서 이모지 캐릭터 ""에 대한 필기 샘플이다. 그 외의 이모지 캐릭터들에는, 상이한 감정들(예컨대, 행복, 슬픔, 분노, 당황, 충격, 웃음, 울기, 좌절 등), 상이한 개체들 및 캐릭터들(예컨대, 고양이, 개, 토끼, 심장, 과일, 눈, 입술, 선물, 꽃, 촛불, 달, 별 등), 그리고 상이한 행동들(예컨대, 악수, 키스, 달리기, 댄스, 점프, 수면, 식사, 만남, 사랑, 좋아함, 투표 등) 등을 나타내는 아이콘들의 카테고리들이 포함된다. 일부 실시예들에서, 이모지 캐릭터에 대응하는 필기 샘플에서의 획들은 대응하는 이모지 캐릭터를 형성하는 실제 라인들의 간결화되고 그리고/또는 스타일화된(stylized) 라인들이다. 일부 실시예들에서, 각 디바이스 또는 애플리케이션은 동일한 이모지 캐릭터에 대한 상이한 설계를 이용할 수 있다. 예를 들어, 2명의 사용자들로부터 수신된 필기 입력들이 실질적으로 동일할지라도, 여성 사용자에게 제시되는 스마일상 이모지 캐릭터는 남성 사용자에게 제시되는 스마일상 이모지 캐릭터와는 다를 수 있다.
일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 또한 다른 스크립트들, 예를 들어 그리스어 스크립트(예컨대, 그리스어 문자들 및 심볼들을 포함함), 키릴 문자 스크립트, 히브리어 스크립트, 및 유니코드 표준에 따라 인코딩된 하나 이상의 다른 스크립트들에서의 문자들에 대한 기입 샘플들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스에 포함된 적어도 3개의 비중첩 스크립트들은 한자들, 이모지 캐릭터들, 및 라틴어 스크립트에서의 문자들을 포함한다. 한자들, 이모지 캐릭터들, 및 라틴어 스크립트에서의 문자들은 당연히 비중첩 스크립트들이다. 많은 다른 스크립트들이 적어도 일부 문자들에 대해 서로 중첩할 수 있다. 예를 들어, 라틴어 스크립트에서의 일부 문자들(예컨대, A, Z)은 많은 다른 스크립트들(예컨대, 그리스어 및 키릴 문자)에서 발견될 수도 있다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 한자들, 아랍어 스크립트 및 라틴어 스크립트를 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 중첩 및/또는 비중첩 스크립트들의 다른 조합들을 포함한다. 일부 실시예들에서, 멀티스크립트 훈련 코퍼스는 유니코드 표준에 의해 인코딩된 모든 문자들에 대한 기입 샘플들을 포함한다.
도 7에 도시된 바와 같이, 일부 실시예들에서, 멀티스크립트 필기 인식 모델을 훈련시키기 위해, 디바이스는 멀티스크립트 훈련 코퍼스의 필기 샘플들을 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 콘볼루션 뉴럴 네트워크로 제공한다(712). 디바이스는 콘볼루션 뉴럴 네트워크를 사용하여, 멀티스크립트 훈련 코퍼스에서 표시되는 적어도 3개의 비중첩 스크립트들의 문자들을 구분하기 위해 필기 샘플들의 공간-유도 특징부들(예컨대, 획-순서 독립적인 특징부들) 및 공간-유도 특징부들에 대한 개별 가중치들을 결정한다(714). 멀티스크립트 필기 인식 모델은, 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 필기 인식 모델이 멀티스크립트 훈련 코퍼스에서의 모든 샘플들을 사용하여 훈련된다는 점에서, 종래의 멀티스크립트 필기 인식 모델들과 다르다. 훈련 코퍼스의 작은 서브세트를 각각 취급하는 개별 서브-네트워크들(예컨대, 특정한 스크립트의 문자들 또는 특정한 언어에서 사용되는 문자들을 인식하기 위해 각각 훈련된 서브-네트워크들)에 의존하지 않고서, 멀티스크립트 훈련 코퍼스에서 표시되는 모든 문자들을 구별하기 위해 단일 콘볼루션 뉴럴 네트워크가 훈련된다. 또한, 단일 콘볼루션 뉴럴 네트워크는, 라틴어 스크립트 및 그리스어 스크립트(예컨대, 중첩 문자들 A, B, E, Z 등을 가짐)와 같은, 수 개의 중첩 스크립트들의 문자들보다는, 다수의 비중첩 스크립트들에 걸치는 많은 수의 문자들을 구별하기 위해 훈련된다.
일부 실시예들에서, 디바이스는 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공한다(716). 일부 실시예들에서, 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 것은, 사용자가 계속해서 필기 입력의 추가 또는 개정을 제공함에 따라 사용자의 필기 입력에 대한 인식 출력을 연속적으로 개정하는 것을 포함한다. 일부 실시예들에서, 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 것은, 멀티스크립트 필기 인식 모델을 사용자 디바이스로 제공하는 것(718)을 추가로 포함하는데, 여기서 사용자 디바이스는 사용자로부터 필기 입력을 수신하고, 멀티스크립트 필기 인식 모델에 기초하여 필기 입력에 대한 필기 인식을 국부적으로 수행한다.
일부 실시예들에서, 디바이스는 멀티스크립트 필기 인식 모델을 복수의 디바이스들의 개별 입력 언어들이 중첩되지 않는 복수의 디바이스들로 제공하고, 멀티스크립트 필기 인식 모델은 복수의 디바이스들의 각각 상에서 상기 각 사용자 디바이스와 연관된 상이한 언어의 필기 인식을 위해 사용된다. 예를 들어, 멀티스크립트 필기 인식 모델이 많은 상이한 스크립트들 및 언어들에서의 문자들을 인식하도록 훈련된 경우, 동일한 필기 인식 모델이 이들 입력 언어들 중 임의의 것에 대한 필기 입력을 제공하기 위해 전세계적으로 사용될 수 있다. 영어 및 히브리어로만 입력하기를 원하는 사용자를 위한 제1 디바이스는 중국어 및 이모지 캐릭터로만 입력하기를 원하는 다른 사용자를 위한 제2 디바이스와 동일한 필기 인식 모델을 사용하여 필기 입력 기능을 제공할 수 있다. 제1 디바이스의 사용자에게 (예컨대, 영어-특정 필기 인식 모델로 구현된) 영어 필기 입력 키보드 및 (예컨대, 히브리어-특정 필기 인식 모델로 구현된) 별도의 히브리어 필기 입력 키보드를 별도로 설치하도록 요구하는 대신에, 동일한 보편적인 멀티스크립트 필기 인식 모델이 제1 디바이스 상에 한 번 설치되고, 사용되어 영어와 히브리어 둘 모두 뿐만 아니라 두 언어들의 혼합 입력에 대한 필기 입력 기능도 제공할 수 있다. 게다가, 제2 사용자에게 (예컨대, 중국어-특정 필기 인식 모델로 구현된) 중국어 필기 입력 키보드 및 (예컨대, 이모지 필기 인식 모델로 구현된) 별도의 이모지 필기 입력 키보드를 설치하도록 요구하는 대신에, 동일한 보편적인 멀티스크립트 필기 인식 모델이 제2 디바이스 상에 한 번 설치되고, 사용되어 중국어와 이모지 둘 모두 뿐만 아니라 두 스크립트들의 혼합 입력에 대한 필기 입력 기능도 제공할 수 있다. 동일한 멀티스크립트 필기 모델을 사용하여 다중 스크립트들에 걸치는 큰 레퍼토리(예컨대, 거의 100개의 상이한 스크립트들로 인코딩된 문자들의 상당 부분 또는 전부)를 취급하는 것은, 사용자들 및 디바이스 공급자들의 일부에 대한 상당한 부담 없이 인식기의 유용성을 개선시킨다.
대형 멀티스크립트 훈련 코퍼스를 사용한 멀티스크립트 필기 인식 모델 훈련은 종래의 HMM-기반 필기 인식 시스템과는 다르며, 문자들의 개별 획들과 연관된 시간 정보에 의존하지 않는다. 또한, 멀티스크립트 인식 시스템에 대한 자원 및 메모리 요건은 멀티스크립트 인식 시스템에 의해 커버되는 심볼들 및 언어들의 증가에 따라 선형으로 증가하지 않는다. 예를 들어, 종래의 필기 시스템에서, 언어들의 수를 증가시키는 것은 다른 독립적으로 훈련된 모델을 추가하는 것을 의미하고, 메모리 요건은 필기 인식 시스템의 증가되는 능력을 수용하기 위해 적어도 2배가 될 것이다. 대조적으로, 멀티스크립트 모델이 멀티스크립트 훈련 코퍼스에 의해 훈련되는 경우, 언어 커버리지를 증가시키는 것은 필기 인식 모델을 추가적인 필기 샘플들로 다시 훈련시키는 것, 및 출력 플레인의 크기를 증가시키는 것을 요구하지만, 그 증가량은 매우 완만하다. 멀티스크립트 훈련 코퍼스가 n개의 상이한 언어들에 대응하는 필기 샘플들을 포함하며 멀티스크립트 필기 인식 모델이 크기 m의 메모리를 차지한다고 가정하면, 언어 커버리지를 N개의 언어들로 증가시킬 경우(N>n), 디바이스는 제2 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 기초하여 멀티스크립트 필기 인식 모델을 다시 훈련시키는데, 제2 멀티스크립트 훈련 코퍼스는 N개 상이한 언어들에 대응하는 제2 필기 샘플들을 포함한다. M/m의 변화는 1 내지 2의 범위 내에서 실질적으로 일정하게 유지되고, 여기서 N/n의 변화는 1 내지 100이다. 일단 멀티스크립트 필기 인식 모델이 다시 훈련되면, 디바이스는 다시 훈련된 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공할 수 있다.
도 8a 및 도 8b는 휴대용 사용자 디바이스(예컨대, 디바이스(100)) 상에서의 실시간 멀티스크립트 필기 인식 및 입력을 제공하기 위한 예시적인 사용자 인터페이스들을 도시한다. 도 8a 및 도 8b에서, 필기 입력 인터페이스(802)가 사용자 디바이스의 터치 감응 디스플레이 스크린(예컨대, 터치 스크린(112)) 상에 디스플레이된다. 필기 입력 인터페이스(802)는 필기 입력 영역(804), 후보 디스플레이 영역(806), 및 텍스트 입력 영역(808)을 포함한다. 일부 실시예들에서, 필기 입력 인터페이스(802)는 복수의 제어 요소들을 추가로 포함하고, 여기서 그들 각각은 필기 입력 인터페이스로 하여금 사전결정된 기능을 수행하도록 하기 위해 호출될 수 있다. 도 8a에 도시된 바와 같이, 삭제 버튼, 스페이스 버튼, 캐리지 리턴(carriage return) 또는 엔터(Enter) 버튼, 키보드 전환 버튼이 필기 입력 인터페이스에 포함된다. 다른 제어 요소들이 가능하며, 선택적으로 필기 입력 인터페이스에서 제공되어 필기 입력 인터페이스(802)를 활용한 각각의 상이한 애플리케이션에 적합하게 할 수 있다. 필기 입력 인터페이스(802)의 상이한 컴포넌트의 레이아웃은 단지 예시적이며, 상이한 디바이스들 및 상이한 애플리케이션들에 따라 다를 수 있다.
일부 실시예들에서, 필기 입력 영역(804)은 사용자로부터 필기 입력을 수신하기 위한 터치 감응 영역이다. 터치 스크린 상에서 필기 입력 영역(804) 내에서의 지속된 접촉 및 그의 연관된 모션 경로가 필기 획으로서 등록된다. 일부 실시예들에서, 디바이스에 의해 등록된 필기 획은 지속된 접촉에 의해 추적되는 동일한 위치들에서 필기 입력 영역(804) 내에서 시각적으로 렌더링된다. 도 8a에 도시된 바와 같이, 사용자는 필기 입력 영역(804)에서, 일부 필기 한자들(예컨대, ""), 일부 필기 영어 문자들(예컨대, "Happy"), 및 손으로 그려진 이모지 캐릭터(예컨대, 스마일상)을 포함하는 다수의 필기 획들을 제공하였다. 필기 문자들은 필기 입력 영역(804)에서 다수의 라인들(예컨대, 2개의 라인들)로 분포된다.
일부 실시예들에서, 후보 디스플레이 영역(806)은 필기 입력 영역(804)에서 현재 누적된 필기 입력에 대한 하나 이상의 인식 결과들(예컨대, 810 및 812)을 디스플레이한다. 일반적으로, 최상위 인식 결과(예컨대, 810)는 후보 디스플레이 영역에서 첫 번째 위치에 디스플레이된다. 도 8a에 도시된 바와 같이, 본 명세서에 설명되는 필기 인식 모델은 한자들, 라틴어 스크립트 및 이모지 캐릭터들을 포함한 다수의 비중첩 스크립트들의 문자들을 인식할 수 있기 때문에, 인식 모델에 의해 제공되는 인식 결과(예컨대, 810)는 필기 입력에 의해 표시되는, 한자들, 영어 문자들 및 이모지 캐릭터를 정확하게 포함한다. 사용자는 인식 언어들을 선택하거나 또는 전환하기 위해 입력을 기입하는 도중에 정지하도록 요구되지 않는다.
일부 실시예들에서, 텍스트 입력 영역(808)은 필기 입력 인터페이스를 채용하고 있는 개별 애플리케이션으로 제공된 텍스트 입력을 디스플레이하는 영역이다. 도 8a에 도시된 바와 같이, 텍스트 입력 영역(808)은 메모 애플리케이션에 의해 사용되고, 텍스트 입력 영역(808) 내에 현재 나타낸 텍스트(예컨대, "America .")는 메모 애플리케이션으로 이미 제공된 텍스트 입력이다. 일부 실시예들에서, 커서(813)는 텍스트 입력 영역(808)에서의 현재 텍스트 입력 위치를 지시한다.
일부 실시예들에서, 사용자는, 예컨대, 명시적 선택 입력(예컨대, 디스플레이된 인식 결과 중 하나 상에서의 탭 제스처), 또는 암시적 확인 입력(예컨대, 필기 입력 영역에서의 더블 탭 제스처 또는 "엔터" 버튼 상에서의 탭 제스처)에 의해, 후보 디스플레이 영역(806)에서 디스플레이되는 특정한 인식 결과를 선택할 수 있다. 도 8b에 도시된 바와 같이, 사용자는 최상위 인식 결과(810)를 (도 8a의 인식 결과(810) 위에서의 접촉(814)에 의해 지시되는 바와 같이) 탭 제스처를 사용하여 명시적으로 선택하였다. 선택 입력에 응답하여, 인식 결과(810)의 텍스트는 텍스트 입력 영역(808)에서 커서(813)에 의해 지시되는 삽입 포인트에 삽입된다. 도 8b에 도시된 바와 같이, 일단 선택된 인식 결과(810)의 텍스트가 텍스트 입력 영역(808)으로 입력되면, 필기 입력 영역(804) 및 후보 디스플레이 영역(806)은 둘 모두 클리어된다. 필기 입력 영역(804)은 이제 새로운 필기 입력을 허용할 준비가 되어 있고, 후보 디스플레이 영역(806)은 이제 새로운 필기 입력에 대한 인식 결과들을 디스플레이하기 위해 사용될 수 있다. 일부 실시예들에서, 암시적 확인 입력은 사용자가 정지하고 최상위 인식 결과를 선택하도록 요구하지 않고 최상위 인식 결과가 텍스트 입력 영역(808)으로 입력되도록 한다. 잘 설계된 암시적 확인 입력은 텍스트 입력 속도를 개선시키며 텍스트 구성 동안 사용자에게 지워지는 인지적 부담을 저감시킨다.
일부 실시예들(도 8a 및 도 8b에 도시되지 않음)에서, 현재 필기 입력의 최상위 인식 결과는 선택적으로 텍스트 입력 영역(808)에서 잠정적으로 디스플레이된다. 텍스트 입력 영역(808)에 나타낸 잠정적인 텍스트 입력은, 예컨대, 잠정적인 텍스트 입력을 둘러싸는 잠정적인 입력 박스에 의해, 텍스트 입력 영역에서의 다른 텍스트 입력으로부터 시각적으로 구별된다. 잠정적인 입력 박스에 나타낸 텍스트는 아직 연관된 애플리케이션(예컨대, 메모 애플리케이션)으로 커밋(commit)되지 않거나 제공되지 않고, 예컨대, 현재 필기 입력의 사용자 개정에 응답하여, 최상위 인식 결과가 필기 입력 모듈에 의해 변경될 때, 자동으로 업데이트된다.
도 9a 및 도 9b는 사용자 디바이스 상에서의 멀티스크립트 필기 인식을 제공하기 위한 예시적인 프로세스(900)의 플로차트들이다. 일부 실시예들에서, 도면 900에 도시된 바와 같이, 사용자 디바이스는 멀티스크립트 필기 인식 모델을 수신하는데(902), 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들(예컨대, 획-순서 및 획-방향 독립적인 특징부들)에 대해 훈련되었고, 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 필기 샘플들을 포함한다. 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 콘볼루션 뉴럴 네트워크이고(906), 멀티스크립트 훈련 코퍼스에서 표시되는 적어도 3개의 비중첩 스크립트들의 문자들을 구분하기 위해 공간-유도 특징부들 및 공간-유도 특징부들에 대한 개별 가중치들을 포함한다. 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 필기 입력에서 식별되는 하나 이상의 인식 유닛들의 개별 입력 이미지들에 기초하여 문자들을 인식하도록 구성되고(908), 인식을 위해 사용되는 개별 공간-유도 특징부들은 필기 입력에서의 개별 획 순서, 획 방향 및 획들의 연속성에 관계없다.
일부 실시예들에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신하는데(908), 필기 입력은 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함한다. 예를 들어, 필기 입력은 손가락 또는 스타일러스와 사용자 디바이스에 결합된 터치 감응 표면 사이의 접촉의 위치 및 이동에 대한 개별 데이터를 포함한다. 필기 입력을 수신하는 것에 응답하여, 사용자 디바이스는 멀티스크립트 훈련 코퍼스(912)의 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 사용자에게 실시간으로 제공한다(910).
일부 실시예들에서, 실시간 필기 인식 결과들을 사용자에게 제공할 때, 사용자 디바이스는 사용자의 필기 입력을 하나 이상의 인식 유닛들로 분할하는데(914), 각 인식 유닛은 사용자에 의해 제공된 필기 획들 중 하나 이상을 포함한다. 일부 실시예들에서, 사용자 디바이스는, 사용자의 손가락 또는 스타일러스와 사용자 디바이스의 터치 감응 표면 사이의 접촉에 의해 만들어진 개별 획들의 형상, 위치 및 크기에 따라 사용자의 필기 입력을 분할한다. 일부 실시예들에서, 필기 입력의 분할은, 사용자의 손가락 또는 스타일러스와 사용자 디바이스의 터치 감응 표면 사이의 접촉에 의해 만들어진 개별 획들의 상대적 순서 및 상대적 위치를 추가로 고려한다. 일부 실시예들에서, 사용자의 필기 입력은 초서체로 되어 있고, 필기 입력에서의 각 연속 획은 인쇄 형태에서 인식된 문자에서의 다수의 획들에 대응할 수 있다. 일부 실시예들에서, 사용자의 필기 입력은 인쇄된 형태에서 다수의 인식된 문자들에 걸치는 연속 획을 포함할 수 있다. 일부 실시예들에서, 필기 입력의 분할은 개별 인식 유닛에 각각 대응하는 하나 이상의 입력 이미지들을 생성한다. 일부 실시예들에서, 입력 이미지들의 일부는 선택적으로 일부 중첩 픽셀들을 포함한다. 일부 실시예들에서, 입력 이미지들은 임의의 중첩 픽셀들을 포함하지 않는다. 일부 실시예들에서, 사용자 디바이스는 분할 격자를 생성하고, 분할 격자의 각 분할 체인은 현재 필기 입력을 분할하는 개별 방식을 표시한다. 일부 실시예들에서, 분할 체인에서의 각 원호는 현재 필기 입력에서의 획들의 개별 그룹에 대응한다.
도면 900에 도시된 바와 같이, 사용자 디바이스는 멀티스크립트 인식 모델에 대한 입력으로서 하나 이상의 인식 유닛들 각각의 개별 이미지를 제공한다(914). 하나 이상의 인식 유닛들 중 적어도 하나의 인식 유닛에 대해, 사용자 디바이스는 멀티스크립트 필기 인식 모델로부터, 제1 스크립트로부터의 적어도 제1 출력 문자, 및 제1 스크립트와는 상이한 제2 스크립트로부터의 적어도 제2 출력을 획득한다(916). 예를 들어, 동일한 입력 이미지는 멀티스크립트 인식 모델로 하여금 동일한 입력 이미지에 대한 인식 결과들로서 상이한 스크립트들로부터 2개 이상의 유사해 보이는 출력 문자들을 출력하도록 할 수 있다. 예를 들어, 라틴어 스크립트에서의 문자 "a" 및 그리스어 스크립트에서의 문자 "α"에 대한 필기 입력들은 종종 유사하다. 게다가, 라틴어 스크립트에서의 문자 "J" 및 한자에서의 문자 "丁"에 대한 필기 입력들은 종종 유사하다. 유사하게, 이모지 캐릭터 ""에 대한 필기 입력은 CJK 부수 "西"에 대한 필기 입력과 유사할 수도 있다. 일부 실시예들에서, 필기 입력의 시각적 외관이 인간 독자가 해독하더라도 어려울 것이기 때문에, 멀티스크립트 필기 인식 모델은 종종 사용자의 필기 입력에 대응할 것 같은 다수의 후보 인식 결과들을 생성한다. 일부 실시예들에서, 제1 스크립트는 CJK 기본 문자 블록이고, 제2 스크립트는 유니코드 표준에 의해 인코딩된 바와 같은 라틴어 스크립트이다. 일부 실시예들에서, 제1 스크립트는 CJK 기본 문자 블록이고, 제2 스크립트는 이모지 캐릭터들의 세트이다. 일부 실시예들에서, 제1 스크립트는 라틴어 스크립트이고, 제2 스크립트는 이모지 캐릭터들이다.
일부 실시예들에서, 사용자 디바이스는 사용자 디바이스의 필기 입력 인터페이스의 후보 디스플레이 영역에서 제1 출력 문자 및 제2 출력 문자 둘 모두를 디스플레이한다(918). 일부 실시예들에서, 사용자 디바이스는 제1 스크립트 및 제2 스크립트 중 어느 스크립트가 사용자 디바이스 상에 현재 설치된 소프트 키보드에서 사용되는 개별 스크립트인지에 기초하여 제1 출력 문자 및 제2 출력 문자 중 하나의 출력 문자를 선택적으로 디스플레이한다(920). 예를 들어, 필기 인식 모델이 현재 필기 입력에 대한 출력 문자들로서 한자 "入" 및 그리스어 문자 "λ"를 식별하였다고 가정하면, 사용자 디바이스는, 사용자가 사용자 디바이스 상에 중국어 소프트 키보드(예컨대, 핀인 입력 방법을 이용한 키보드)를 설치하였는지 또는 그리스어 입력 키보드를 설치하였는지 여부를 판정한다. 사용자 디바이스가 중국어 소프트 키보드만이 설치되었음을 판정하는 경우, 사용자 디바이스는 선택적으로 사용자에게 인식 결과로서 한자 "入"만을 디스플레이하고 그리스어 문자 "λ"를 디스플레이하지 않는다.
일부 실시예들에서, 사용자 디바이스는 실시간 필기 인식 및 입력을 제공한다. 일부 실시예들에서, 사용자가 사용자에게 디스플레이되는 인식 결과의 명시적 또는 암시적 선택을 행하기 전에, 사용자 디바이스는 사용자에 의한 필기 입력의 계속된 추가 또는 개정에 응답하여 사용자의 필기 입력에 대한 하나 이상의 인식 결과들을 연속적으로 개정한다(922). 일부 실시예들에서, 사용자는, 하나 이상의 인식 결과들의 각 개정에 응답하여, 필기 입력 사용자 인터페이스의 후보 디스플레이 영역에서 사용자에게 개별 개정된 하나 이상의 인식 결과들을 디스플레이한다(924).
일부 실시예들에서, 멀티스크립트 필기 인식 모델은, 한자들, 이모지 캐릭터들, 및 유니코드 표준에 따라 인코딩된 라틴어 스크립트를 포함하는 적어도 3개의 비중첩 스크립트들의 모든 문자들을 인식하도록 훈련된다(926). 일부 실시예들에서, 적어도 3개의 비중첩 스크립트들은 한자들, 아랍어 스크립트 및 라틴어 스크립트를 포함한다. 일부 실시예들에서, 멀티스크립트 필기 인식 모델은 적어도 3개의 비중첩 스크립트들에 걸치는 적어도 30개의 문자들을 표시하는 적어도 30,000개의 출력 클래스들을 갖는다(928).
일부 실시예들에서, 사용자 디바이스는 사용자가 하나 초과의 스크립트에서의 문자들을 포함하는 어구와 같은, 멀티스크립트 필기 입력을 입력할 수 있게 한다. 예를 들어, 사용자는, 인식 언어를 수동으로 전환하기 위해 기입 도중에 정지하지 않고, 연속적으로 기입할 수 있으며 하나 초과의 스크립트에서의 문자들을 포함하는 필기 인식 결과들을 수신할 수 있다. 예를 들어, 사용자는 사용자 디바이스의 필기 입력 영역에서 멀티스크립트 문장 "Hello means in Chinese."을 기입할 수 있는데, 한자들 ""을 기입하기 전에 입력 언어를 영어로부터 중국어로 전환해야 할 필요 없이 또는 영어 단어들 "in Chinese."을 기입할 때 입력 언어를 중국어로부터 영어로 다시 전환하지 않고 기입할 수 있다.
본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 사용자의 입력에 대한 실시간 필기 인식을 제공하기 위해 사용된다. 일부 실시예들에서, 실시간 필기 인식은 사용자의 디바이스 상에서의 실시간 멀티스크립트 필기 입력 기능을 제공하기 위해 이용된다. 도 10a 내지 도 10c는 사용자 디바이스 상에서의 실시간 필기 인식 및 입력을 제공하기 위한 예시적인 프로세스(1000)의 플로차트들이다. 구체적으로, 실시간 필기 인식은 문자 레벨, 어구 레벨 및 문장 레벨에서 획 순서에 독립적이다.
일부 실시예들에서, 문자 레벨에서의 획 순서 독립적인 필기 인식은, 특정한 문자의 개별 획들이 사용자에 의해 제공된 시퀀스에 상관없이, 필기 인식 모델이 특정한 필기 문자에 대한 동일한 인식 결과를 제공하는 것을 요구한다. 예를 들어, 한자의 개별 획들은 전형적으로 특정한 순서로 기입된다. 중국어가 모국어인 사람은 종종 각 문자를 특정한 순서로 기입하도록 학교에서 훈련받긴 하지만, 많은 사용자들은 나중에 종래의 획 순서로부터 벗어난 개인화된 스타일들 및 획 시퀀스들을 채택하였다. 또한, 초서체 기입 스타일들은 대단히 개별화되고, 한자의 인쇄된 형태에서의 다수의 획들은 종종 꼬불꼬불 구부러지고 때로는 심지어 다음 문자와 연결되기도 하는 단일 스타일화된 획으로 병합된다. 획 순서 독립적인 인식 모델은 개별 획들과 연관된 시간 정보가 없는 기입 샘플들의 이미지들에 기초하여 훈련된다. 따라서, 인식은 획 순서 정보에 독립적이다. 예를 들어, 한자 "十"의 경우, 사용자가 수평 획을 먼저 기입했는지 또는 수직 획을 먼저 기입했는지에 상관없이 필기 인식 모델에 의해 동일한 인식 결과 "十"이 주어질 것이다.
도 10a에 도시된 바와 같이, 프로세스(1000)에서, 사용자 디바이스는 사용자로부터 복수의 필기 획들을 수신하는데(1002), 복수의 필기 획들은 필기 문자에 대응한다. 예를 들어, 문자 "十"에 대한 필기 입력은 전형적으로 실질적으로 수직의 필기 획과 교차하는 실질적으로 수평의 필기 획을 포함한다.
일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들에 기초하여 입력 이미지를 생성한다(1004). 일부 실시예들에서, 사용자 디바이스는 입력 이미지를 필기 인식 모델로 제공하여 필기 문자의 실시간 필기 인식을 수행하는데(1006), 여기서 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공한다. 그 후에, 사용자 디바이스는 복수의 필기 획들을 수신하는 것에 실시간으로, 복수의 필기 획들(예컨대, 수평 획 및 수직 획)이 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자(예컨대, 인쇄된 형태에서의 문자 "十")를 디스플레이한다(1008).
일부 종래의 필기 인식 시스템은 적은 수의 문자들에서의 작은 획 순서 변동들을 허용하지만, 구체적으로 필기 인식 시스템의 훈련 시에 그러한 변동들을 포함시킴으로써 이루어진다. 이러한 종래의 필기 인식 시스템들은 한자들과 같은 많은 수의 복잡한 문자들에서의 임의의 획 순서 변동들을 수용하도록 확장 가능하지 않으며, 이는 심지어 적당한 복잡성의 문자도 이미 획 순서에서의 다수의 변동들을 일으킬 것이기 때문이다. 게다가, 특정한 문자들에 대한 허용 가능한 획 순서들의 더 많은 치환들을 단순히 포함시킴으로써도, 종래의 인식 시스템들은 여전히, 다수의 획들이 단일 획으로 조합되거나(예컨대, 극도의 초서체의 기입에서와 같이) 또는 하나의 획이 다수의 하위-획들로 분해되는(예컨대, 입력 획의 매우 거친 샘플링에 의해 캡처된 문자에서와 같이) 필기 입력들을 취급할 수 없게 될 것이다. 그리하여, 본 명세서에 설명되는 바와 같이 공간-유도 특징부들에 대해 훈련된 멀티스크립트 필기 시스템은 종래의 인식 시스템들보다 이점을 제공한다.
일부 실시예들에서, 각 필기 문자 내의 개별 획들과 연관된 시간 정보에 관계없이 획 순서 독립적인 필기 인식이 수행된다. 일부 실시예들에서, 개별 획들이 플랫 입력 이미지로 병합되기 전의 개별 획들의 공간 분포를 고려하는 획-분포 정보와 협력하여 획 순서 독립적인 필기 인식이 수행된다. 상기 설명된 획 순서 독립적인 필기 인식을 증강시키기 위해 시간-유도 획-분포 정보가 어떻게 사용되는지에 대한 더욱 상세한 내용들은 나중에 본 명세서에서(예컨대, 도 25a 내지 도 27에 관하여) 제공된다. 도 25a 내지 도 27에 관하여 설명되는 기법은 필기 인식 시스템의 획 순서 독립성을 손상시키지 않는다.
일부 실시예들에서, 필기 인식 모델은 획 방향 독립적인 필기 인식을 제공한다(1010). 일부 실시예들에서, 획 방향 독립적인 인식은, 사용자 디바이스가 복수의 필기 입력들을 수신하는 것에 응답하여, 복수의 필기 획들 각각이 사용자에 의해 제공된 개별 획 방향에 상관없이 동일한 제1 출력 문자를 디스플레이하는 것을 요구한다. 예를 들어, 사용자가 사용자 디바이스의 필기 입력 영역에서 한자 "十"을 기입한 경우, 필기 인식 모델은, 사용자가 수평 획을 좌측에서부터 우측으로 그렸는지 또는 우측에서부터 좌측으로 그렸는지에 상관없이, 동일한 인식 결과를 출력할 것이다. 유사하게, 필기 인식 모델은, 사용자가 수직 획을 하방 방향으로 그렸는지 또는 상방 방향으로 그렸는지에 상관없이, 동일한 인식 결과를 출력할 것이다. 다른 예에서, 많은 한자들은 구조적으로 2개 이상의 부수들로 이루어진다. 몇몇 한자들은 각각 왼쪽 부수 및 오른쪽 부수를 포함하고, 사람들은 관습적으로 왼쪽 부수를 먼저 기입하고 그 다음에 오른쪽 부수를 기입한다. 일부 실시예들에서, 사용자가 필기 문자를 완성할 때 결과적인 필기 입력이 오른쪽 부수의 왼쪽에 왼쪽 부수를 나타내는 한, 필기 인식 모델은, 사용자가 오른쪽 부수를 먼저 기입했는지 왼쪽 부수를 먼저 기입했는지에 상관없이 동일한 인식 결과를 제공할 것이다. 유사하게, 몇몇 한자들은 각각 위 부수 및 아래 부수를 포함하고, 사람들은 관습적으로 위 부수를 먼저 기입하고 그 다음에 아래 부수를 기입한다. 일부 실시예들에서, 결과적인 필기 입력이 아래 부수의 위에 위 부수를 나타내는 한, 필기 인식 모델은, 사용자가 위 부수를 먼저 기입했는지 아래 부수를 먼저 기입했는지에 상관없이 동일한 인식 결과를 제공할 것이다. 다시 말하면, 필기 인식 모델은 필기 문자의 아이덴티티를 결정하기 위해 사용자가 필기 문자의 개별 획들을 제공하는 방향들에 의존하지 않는다.
일부 실시예들에서, 필기 인식 모델은 인식 유닛이 사용자에 의해 제공된 하위-획들의 수에 상관없이, 인식 유닛의 이미지에 기초하여 필기 인식을 제공한다. 다시 말하면, 일부 실시예들에서, 필기 인식 모델은 획수 독립적인 필기 인식을 제공한다(1014). 일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들을 수신하는 것에 응답하여, 입력 이미지에서의 연속 획을 형성하기 위해 얼마나 많은 필기 획들이 사용되는지에 상관없이 동일한 제1 출력 문자를 디스플레이한다. 예를 들어, 사용자가 필기 입력 영역에서 한자 "+"를 기입한 경우, 필기 인식 모델은, 사용자가 문자 "十"의 형상을 구성하기 위해 4개의 획들(예컨대, 열십자 모양의 문자를 구성하기 위한 2개의 짧은 수평 획들과 2개의 짧은 수직 획들)을 제공하였는지, 또는 2개의 획들(예컨대, L 모양의 획과 7 모양의 획, 또는 수평 획과 수직 획)을 제공하였는지, 또는 임의의 다른 수의 획들(예컨대, 수백 개의 극히 짧은 획들 또는 점들)을 제공하였는지에 상관없이, 동일한 인식 결과를 출력한다.
일부 실시예들에서, 필기 인식 모델은 각 단일 문자가 기입된 순서, 방향 및 획수에 상관없이 동일한 문자를 인식할 수 있을 뿐만 아니라, 다수의 문자들의 획들이 사용자에 의해 제공된 시간 순서에 상관없이 다수의 문자들을 인식할 수도 있다.
일부 실시예들에서, 사용자 디바이스는 제1 복수의 필기 획들을 수신하였을 뿐만 아니라 사용자로부터 제2 복수의 필기 획들도 수신하였는데(1016), 여기서 제2 복수의 필기 획들은 제2 필기 문자에 대응한다. 일부 실시예들에서, 사용자 디바이스는 제2 복수의 필기 획들에 기초하여 제2 입력 이미지를 생성한다(1018). 일부 실시예들에서, 사용자 디바이스는 제2 입력 이미지를 필기 인식 모델로 제공하여 제2 필기 문자의 실시간 인식을 수행한다(1020). 일부 실시예들에서, 사용자 디바이스는 제2 복수의 필기 획들을 수신하는 것에 실시간으로, 제2 복수의 필기 획들에 대응하는 제2 출력 문자를 디스플레이한다(1022). 일부 실시예들에서, 제1 출력 문자 및 제2 출력 문자는 제1 복수의 필기 획들 및 제2 복수의 필기 획들이 사용자에 의해 제공된 개별 순서에 관계없이 공간 시퀀스에서 동시에 디스플레이된다. 예를 들어, 사용자가 사용자 디바이스의 필기 입력 영역에서 2개의 한자들(예컨대, "十" 및 "八")을 기입한 경우, 필기 입력 영역에서 현재 누적된 필기 입력이 문자 "八"에 대한 획들의 왼쪽에 문자 "十"에 대한 획들을 나타내는 한, 사용자 디바이스는, 사용자가 문자 "十"의 획들을 먼저 기입했는지 또는 문자 "八"의 획들을 먼저 기입했는지에 상관없이, 인식 결과 "十八"을 디스플레이할 것이다. 사실상, 사용자가 문자 "十"에 대한 획들의 일부(예컨대, 수직 획) 전에 문자 "八"에 대한 획들의 일부(예컨대, 왼쪽으로 기울어진 획)를 기입하였더라도, 필기 입력 영역에서 필기 입력의 결과적인 이미지가 문자 "八"에 대한 획들 모두의 왼쪽에 문자 "十"에 대한 모든 획들을 나타내는 한, 사용자 디바이스는 2개의 필기 문자들의 공간 시퀀스에서 인식 결과"十八"을 나타낼 것이다.
다시 말하면, 도 10b에 도시된 바와 같이, 일부 실시예들에서, 제1 출력 문자 및 제2 출력 문자의 공간 시퀀스는 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향(예컨대, 좌측에서부터 우측으로)을 따른 제1 복수의 필기 획들 및 제2 복수의 획들의 공간 분포에 대응한다(1024). 일부 실시예들에서, 제2 복수의 필기 획들은 시간적으로 제1 복수의 필기 획들 후에 수신되고, 제2 출력 문자는 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향(예컨대, 좌측에서부터 우측으로)을 따른 공간 시퀀스에서 제1 출력 문자보다 앞선다(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개의 문장들이 사용자 디바이스의 텍스트 입력 영역으로 입력될 것이고, 필기 입력 영역은 사용자가 또 다른 필기 입력을 입력하도록 클리어될 것이다.
일부 실시예들에서, 필기 인식 모델이 문자 레벨에서뿐만 아니라 어구 레벨 및 문장 레벨에서도 획 순서 독립적이기 때문에, 사용자는 후속 문자들이 기입된 후에 이전에 미완성된 문자에 대한 수정을 행할 수 있다. 예를 들어, 사용자가 필기 입력 영역에서 하나 이상의 후속 문자들을 기입하려고 이동하기 전에 문자에 대한 특정한 획을 기입하는 것을 잊어 버린 경우, 사용자는 정확한 인식 결과를 수신하기 위해 특정한 문자에서의 올바른 위치에 누락된 획을 나중에 여전히 쓸 수 있다.
종래의 획 순서 독립적인 인식 시스템들(예컨대, HMM-기반 인식 시스템)에서, 일단 문자가 기입되면, 그것은 커밋되고, 사용자는 더 이상 그것을 변경할 수 없다. 사용자가 임의의 변경을 원하는 경우, 사용자는 문자 및 모든 후속 문자들을 삭제하여 처음부터 다시 시작해야 한다. 몇몇 종래의 인식 시스템들에서, 사용자는 짧은 사전결정된 시간 윈도우 내에서 필기 문자를 완성하도록 요구되고, 사전결정된 시간 윈도우의 외측에서 입력된 임의의 획들은 시간 윈도우 동안 제공된 다른 획들과 동일한 인식 유닛에 포함되지 않을 것이다. 그러한 종래의 시스템들은 사용하기 어렵고 사용자에게 큰 좌절을 야기한다. 획 순서 독립적인 시스템은 그러한 단점들을 겪지 않으며, 사용자는 사용자가 적합하다고 생각되는 임의의 순서 및 임의의 시간 프레임으로 문자를 완성할 수 있다. 사용자는 또한, 후속하여 필기 입력 인터페이스에서 하나 이상의 문자들을 기입한 후에 먼저 기입된 문자를 수정(예컨대, 하나 이상의 획들을 추가)할 수 있다. 일부 실시예들에서, 사용자는 또한 (예컨대, 도 21a 내지 도 22b에 관하여 나중에 기술되는 방법들을 이용하여) 먼저 기입된 문자를 개별적으로 삭제하고, 필기 입력 인터페이스에서 동일한 위치에 그것을 재기입할 수 있다.
도 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 출력 문자와 동시에 디스플레이된다.
일부 실시예들에서, 필기 인식 모듈은 좌측에서부터 우측으로의 디폴트 기입 방향으로 기입된 필기 입력을 인식한다. 예를 들어, 사용자는 문자들을 좌측에서부터 우측으로 그리고 하나 이상의 행들로 기입할 수 있다. 필기 입력에 응답하여, 필기 입력 모듈은 문자들을 좌측에서부터 우측으로의 공간 시퀀스로 그리고 필요에 따라 하나 이상의 행들로 포함하는 인식 결과들을 제시한다. 사용자가 인식 결과를 선택하는 경우, 선택된 인식 결과는 사용자 디바이스의 텍스트 입력 영역으로 입력된다. 일부 실시예들에서, 디폴트 기입 방향은 위에서부터 아래로 이다. 일부 실시예들에서, 디폴트 기입 방향은 우측에서부터 좌측으로 이다. 일부 실시예들에서, 사용자는 선택적으로, 인식 결과가 선택되고 필기 입력 영역이 클리어된 후에 디폴트 기입 방향을 대안적인 기입 방향으로 변경시킨다.
일부 실시예들에서, 필기 입력 모듈은 사용자가 필기 입력 영역에서 다중-문자 필기 입력을 입력할 수 있게 하고, 필기 입력으로부터 한 번에 모든 인식 유닛보다는 한 번에 하나의 인식 유닛에서의 획들의 삭제를 허용한다. 일부 실시예들에서, 필기 입력 모듈은 필기 입력으로부터 한 번에 하나의 획 삭제를 허용한다. 일부 실시예들에서, 인식 유닛의 삭제는, 현재 필기 입력을 생성하기 위해 인식 유닛들 또는 획들이 입력된 순서에 상관없이, 디폴트 기입 방향에 반대되는 방향으로 하나씩 진행한다. 일부 실시예들에서, 획들의 삭제는, 획이 각 인식 유닛 내에 입력된 역순서로 하나씩 진행하고, 하나의 인식 유닛에서의 획들이 모두 삭제되었을 때, 획들의 삭제는 디폴트 기입 방향에 반대되는 방향으로 다음 인식 유닛으로 진행한다.
일부 실시예들에서, 제3 출력 문자 및 제2 출력 문자가 필기 입력 인터페이스의 후보 디스플레이 영역에서 후보 인식 결과로서 동시에 디스플레이되는 동안, 사용자 디바이스는 사용자로부터 삭제 입력을 수신한다. 삭제 입력에 응답하여, 사용자 디바이스는, 후보 디스플레이 영역에 디스플레이된 인식 결과에서 제3 출력 문자를 유지하면서, 인식 결과로부터 제2 출력 문자를 삭제한다.
일부 실시예들에서, 도 10c에 도시된 바와 같이, 사용자 디바이스는 상기 필기 획 각각이 사용자에 의해 제공됨에 따라 제1 복수의 필기 획들, 제2 복수의 필기 획들, 및 제3 필기 획을 실시간으로 렌더링한다(1042). 일부 실시예들에서, 사용자 디바이스는, 사용자로부터 삭제 입력을 수신하는 것에 응답하여, 필기 입력 영역에서 제1 복수의 필기 획들 및 제3 필기 획(예컨대, 개정된 제1 필기 문자에 함께 대응함)의 개별 렌더링들을 유지하면서, 필기 입력 영역으로부터 제2 복수의 필기 입력들(예컨대, 제2 필기 문자에 대응함)의 개별 렌더링을 삭제한다(1044). 예를 들어, 사용자가 문자 시퀀스 ""에서 누락된 수직 획을 제공한 후에, 사용자가 삭제 입력을 입력하는 경우, 문자 ""에 대한 인식 유닛에서의 획들은 필기 입력 영역으로부터 제거되고, 문자 ""는 사용자 디바이스의 후보 디스플레이 영역에서 인식 결과 ""로부터 제거된다. 삭제 후에, 문자 ""에 대한 획들은 필기 입력 영역에 남아 있고, 한편 인식 결과는 문자 ""만을 나타낸다.
일부 실시예들에서, 필기 문자는 다획 한자이다. 일부 실시예들에서, 제1 복수의 필기 입력은 초서체로 제공된다. 일부 실시예들에서, 제1 복수의 필기 입력은 초서체로 제공되고, 필기 문자는 다획 한자이다. 일부 실시예들에서, 필기 문자들은 초서체로 아랍어로 기입된다. 일부 실시예들에서, 필기 문자들은 초서체로 다른 스크립트들로 기입된다.
일부 실시예들에서, 사용자 디바이스는 필기 문자 입력을 위한 허용 가능한 치수들의 세트에 대해 개별 사전결정된 제약들을 확립하고, 개별 사전결정된 제약들에 기초하여 현재 누적된 복수의 필기 획들을 복수의 인식 유닛들로 분할하는데, 여기서 인식 유닛들 각각으로부터 필기 인식 모델로 제공되는 개별 입력 이미지가 생성되고, 대응하는 출력 문자로서 인식된다.
일부 실시예들에서, 사용자 디바이스는 현재 누적된 복수의 필기 획들을 분할한 후에 사용자로부터 추가적인 필기 획을 수신한다. 사용자 디바이스는 복수의 인식 유닛들에 대한 추가적인 필기 획의 공간 위치에 기초하여 복수의 인식 유닛들의 개별 인식 유닛에 추가적인 필기 획을 배정한다.
이제, 사용자 디바이스 상에 필기 인식 및 입력을 제공하기 위한 예시적인 사용자 인터페이스들에 주목한다. 일부 실시예들에서, 예시적인 사용자 인터페이스들은, 사용자의 필기 입력의 실시간, 획 순서 독립적인 필기 인식을 제공하는 멀티스크립트 필기 인식 모델에 기초하여 사용자 디바이스 상에서 제공된다. 일부 실시예들에서, 예시적인 사용자 인터페이스들은, 필기 입력 영역(804), 후보 디스플레이 영역(804), 및 텍스트 입력 영역(808)을 포함하는 예시적인 필기 입력 인터페이스(802)(예컨대, 도 8a 및 도 8b에 도시됨)의 사용자 인터페이스들이다. 일부 실시예들에서, 예시적인 필기 입력 인터페이스(802)는 또한 복수의 제어 요소들(1102), 예를 들어 삭제 버튼, 스페이스 바, 엔터 버튼, 키보드 전환 버튼 등을 포함한다. 하기에 설명되는 추가적인 기능들을 가능하게 하기 위해 하나 이상의 다른 영역들 및/또는 요소들이 필기 입력 인터페이스(802)에서 제공될 수 있다.
본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 많은 상이한 스크립트들 및 언어들에서의 수만의 문자들의 매우 큰 레퍼토리를 가질 수 있다. 결과적으로, 필기 입력에 대해, 인식 모델은 사용자에 의해 의도된 문자라는 상당히 양호한 가능성을 모두가 갖는 많은 수의 출력 문자들을 식별할 가능성이 매우 크다. 제한된 디스플레이 영역을 갖는 사용자 디바이스 상에서, 사용자 요청 시에 이용 가능한 다른 결과들을 유지하면서, 초기에 인식 결과들의 서브세트만을 제공하는 것이 유리하다.
도 11a 내지 도 11g는, 나머지 인식 결과들을 디스플레이하기 위해 후보 디스플레이 영역의 확장 시야를 호출하기 위한 어포던스와 함께, 후보 디스플레이 영역의 정상 시야에서 인식 결과들의 서브세트를 디스플레이하기 위한 예시적인 사용자 인터페이스들을 도시한다. 또한, 후보 디스플레이 영역의 확장 시야 내에서, 인식 결과들은 상이한 카테고리들로 나눠지고, 확장 시야에서 상이한 탭처리된(tabbed) 페이지들 상에 디스플레이된다.
도 11a는 예시적인 필기 입력 인터페이스(802)를 도시한다. 필기 입력 인터페이스는 필기 입력 영역(804), 후보 디스플레이 영역(806), 및 텍스트 입력 영역(808)을 포함한다. 하나 이상의 제어 요소들(1102)이 또한 필기 입력 인터페이스(1002)에 포함된다.
도 11a에 도시된 바와 같이, 후보 디스플레이 영역(806)은 선택적으로 하나 이상의 인식 결과들을 디스플레이하기 위한 영역, 및 후보 디스플레이 영역(806)의 확장 버전을 호출하기 위한 어포던스(1104)(예컨대, 팽창 아이콘)를 포함한다.
도 11a 내지 도 11c는, 사용자가 필기 입력 영역(804)에서 하나 이상의 필기 획들(예컨대, 획들(1106, 1108, 1110))을 제공함에 따라, 사용자 디바이스가 필기 입력 영역(804)에서 현재 누적된 획들에 대응하는 인식 결과들의 개별 세트를 식별하고 디스플레이하는 것을 도시한다. 도 11b에 도시된 바와 같이, 사용자가 제1 획(1106)을 입력한 후에, 사용자 디바이스는 3개의 인식 결과들(1112, 1114, 1116)(예컨대, 문자들 "/", "1", 및 ",")을 식별하고 디스플레이한다. 일부 실시예들에서, 각 문자와 연관된 인식 신뢰도에 따른 순서로 적은 수의 후보 문자들이 후보 디스플레이 영역(806)에서 디스플레이된다.
일부 실시예들에서, 최상위 후보 결과(예컨대, "/")가 텍스트 입력 영역(808)에서, 예컨대, 박스(1118) 내에 잠정적으로 디스플레이된다. 사용자는 선택적으로 최상위 후보가 의도된 입력임을 간단한 확인 입력에 의해(예컨대, "엔터" 키를 누름으로써, 또는 필기 입력 영역에서 더블-탭 제스처를 제공함으로써) 확인할 수 있다.
도 11c는, 사용자가 임의의 후보 인식 결과를 선택하기 전에, 사용자가 필기 입력 영역(804)에서 획들(1108, 1100)을 2개 더 입력함에 따라, 추가적인 획들이 초기 획(1106)을 갖는 필기 입력 영역(804)에서 렌더링되고, 후보 결과들이 현재 누적된 필기 입력들로부터 식별되는 인식 유닛(들)에 변경들을 반영하도록 업데이트되는 것을 도시한다. 도 11c에 도시된 바와 같이, 3개의 획들에 기초하여, 사용자 디바이스는 단일 인식 유닛을 식별하였다. 단일 인식 유닛에 기초하여, 사용자 디바이스는 다수의 인식 결과들(1118 내지 1124)을 식별하고 디스플레이하였다. 일부 실시예들에서, 후보 디스플레이 영역(806)에서 현재 디스플레이된 인식 결과들 중 하나 이상(예컨대, 1118 및 1122)은 각각 현재 필기 입력에 대해 다수의 유사해 보이는 후보 문자들 중에서 선택된 대표 후보 문자이다.
도 11c 및 도 11d에 도시된 바와 같이, 사용자가 (예컨대, 어포던스(1104) 위에서의 접촉(1126)을 갖는 탭 제스처를 이용하여) 어포던스(1104)를 선택할 경우, 후보 디스플레이 영역은 정상 시야(예컨대, 도 11c에 도시됨)로부터 확장 시야(예컨대, 도 11d에 도시됨)로 변경된다. 일부 실시예들에서, 확장 시야는 현재 필기 입력에 대해 식별된 모든 인식 결과들(예컨대, 후보 문자들)을 나타낸다.
일부 실시예들에서, 후보 디스플레이 영역(806)의 초기에 디스플레이된 정상 시야는 개별 스크립트 또는 언어에서 사용되는 대부분의 상용 문자들만을 나타내는 반면에, 확장 시야는 스크립트 또는 언어에서 드물게 사용되는 문자들을 포함하여, 모든 후보 문자들을 나타낸다. 후보 디스플레이 영역의 확장 시야는 상이한 방식들로 설계될 수 있다. 도 11d 내지 도 11g는 일부 실시예들에 따른, 확장된 후보 디스플레이 영역의 예시적인 설계를 도시한다.
도 11d에 도시된 바와 같이, 일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)은 후보 문자들의 개별 카테고리를 각각 제시하는 하나 이상의 탭처리된 페이지들(예컨대, 페이지들(1130, 1132, 1134, 1136))을 포함한다. 도 11d에 도시된 탭처리된 설계는 사용자가 문자들의 원하는 카테고리를 신속하게 찾은 후에, 그 또는 그녀가 대응하는 탭처리된 페이지 내에 입력하려고 한 문자를 찾을 수 있게 한다.
도 11d에서, 제1 탭처리된 페이지(1130)는 상용 문자들 뿐만 아니라 희귀 문자들 둘 모두를 포함하여, 현재 누적된 필기 입력에 대해 식별된 모든 후보 문자들을 디스플레이한다. 도 11d에 도시된 바와 같이, 탭처리된 페이지(1130)는 도 11c의 초기 후보 디스플레이 영역(806)에 나타낸 문자들 전부, 및 초기 후보 디스플레이 영역(806)에 포함되지 않은 다수의 추가적인 문자들(예컨대, "", "β", "巾", 등)을 포함한다.
일부 실시예들에서, 초기 후보 디스플레이 영역(806)에 디스플레이된 문자들은 스크립트와 연관된 상용 문자들의 세트(예컨대, 유니코드 표준에 따라 인코딩된 바와 같은, CJK 스크립트의 기본 블록에서의 모든 문자들)로부터의 문자들만을 포함한다. 일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)에 디스플레이된 문자들은 스크립트와 연관된 희귀 문자들의 세트(예컨대, 유니코드 표준에 따라 인코딩된 바와 같은, CJK 스크립트의 확장 블록에서의 모든 문자들)를 추가로 포함한다. 일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)은 사용자에 의해 흔히 사용되지 않는 다른 스크립트들, 예컨대, 그리스어 스크립트, 아랍어 스크립트, 및/또는 이모지 스크립트로부터의 후보 문자들을 추가로 포함한다.
일부 실시예들에서, 도 11d에 도시된 바와 같이, 확장된 후보 디스플레이 영역(1128)은 개별 탭처리된 페이지들(1130, 1132, 1134, 1138)을 포함하는데, 그들 각각은 후보 문자들의 개별 카테고리(예컨대, 각각, 모든 문자들, 희귀 문자들, 라틴어 스크립트로부터의 문자들, 및 이모지 스크립트로부터의 문자들)에 대응한다. 도 11e 내지 도 11g는, 사용자가 상이한 탭처리된 페이지들 각각을 선택하여 대응하는 카테고리에서의 후보 문자들을 드러내 보일 수 있는 것을 도시한다. 도 11e는 현재 필기 입력에 대응하는 희귀 문자들(예컨대, CJK 스크립트의 확장 블록으로부터의 문자들)만을 도시한다. 도 11f는 현재 필기 입력에 대응하는 라틴어 및 그리스어 문자들만을 도시한다. 도 11g는 현재 필기 입력에 대응하는 이모지 캐릭터들만을 도시한다.
일부 실시예들에서, 확장된 후보 디스플레이 영역(1128)은 개별 기준에 기초하여(예컨대, 표음식 철자에 기초하여, 획들의 수에 기초하여, 그리고 부수들에 기초하여 등) 개별 탭처리된 페이지에서의 후보 문자들을 정렬하기 위해 하나 이상의 어포던스들을 추가로 포함한다. 인식 신뢰도 점수들 이외의 기준에 따라 각 카테고리에서의 후보 문자들을 정렬하는 능력은 사용자에게 텍스트 입력에 대한 원하는 후보 문자를 신속하게 찾는 추가적인 능력을 제공한다.
도 11h 내지 도 11k는, 일부 실시예들에서, 유사해 보이는 후보 문자들이 그룹화될 수 있고, 유사해 보이는 후보 문자들의 각 그룹으로부터의 대표 문자만이 초기 후보 디스플레이 영역(806)에서 제시되는 것을 도시한다. 본 명세서에 설명되는 멀티스크립트 인식 모델은 주어진 필기 입력에 대해 거의 동등하게 양호한 많은 후보 문자들을 생성할 수 있기 때문에, 인식 모델은 하나의 후보를 다른 유사해 보이는 후보를 희생하면서 항상 제거할 수 있는 것은 아니다. 제한된 디스플레이 영역을 갖는 디바이스 상에서, 갑자기 많은 수의 유사해 보이는 후보들을 디스플레이하는 것은 사용자가 정확한 문자를 선발하는 데 도움이 되지 않는데, 이는 미세한 구별이 쉽게 볼 수 없고, 사용자가 원하는 문자를 볼 수 있더라도, 손가락 또는 스타일러스를 사용하여 매우 밀집된 디스플레이로부터 그것을 선택하는 것은 어려울 수 있기 때문이다.
일부 실시예들에서, 상기 문제들을 다루기 위해, 사용자 디바이스는 서로에 대해 큰 유사성을 갖는 후보 문자들을 (예컨대, 유사해 보이는 문자들의 사전 또는 용어 색인, 또는 몇몇 이미지-기반 기준들에 따라) 식별하고, 그들을 개별 그룹으로 그룹화한다. 일부 실시예들에서, 주어진 필기 입력에 대한 후보 문자들의 세트로부터 유사해 보이는 문자들의 하나 이상의 그룹들이 식별될 수 있다. 일부 실시예들에서, 사용자 디바이스는 동일한 그룹에서의 복수의 유사해 보이는 후보 문자들 중에서 대표 후보 문자를 식별하였고, 초기 후보 디스플레이 영역(806)에서 대표 후보만을 디스플레이한다. 상용 문자가 임의의 다른 후보 문자들과 충분히 유사해 보이지 않는 경우, 그것은 그 자체로 디스플레이된다. 일부 실시예들에서, 도 11h에 도시된 바와 같이, 각 그룹의 대표 후보 문자(예컨대, 후보 문자들(1118, 1122), "" 및 "T")는 임의의 그룹에 속하지 않는 후보 문자(예컨대, 후보 문자들(1120, 1124), "乃" 및 "J")와는 상이한 방식으로(예컨대, 볼드로 표시된 박스로) 디스플레이된다. 일부 실시예들에서, 그룹의 대표 문자를 선정하기 위한 기준은 그룹에서의 후보 문자들의 상대적인 사용 빈도에 기초한다. 일부 실시예들에서, 다른 기준들이 이용될 수도 있다.
일부 실시예들에서, 일단 대표 문자(들)가 사용자에게 디스플레이되면, 사용자는 선택적으로 팽창 시야(expanded view)에서 유사해 보이는 후보 문자들을 나타내기 위해 후보 디스플레이 영역(806)을 팽창시킬 수 있다. 일부 실시예들에서, 특정한 대표 문자의 선택은 선택된 대표 문자와 동일한 그룹에서 그들 후보 문자들만의 팽창 시야를 야기할 수 있다.
유사해 보이는 후보들의 팽창 시야를 제공하기 위한 다양한 설계들이 가능하다. 도 11h 내지 도 11k는 대표 후보 문자(예컨대, 대표 문자(1118)) 위에서 검출되는 사전결정된 제스처(예컨대, 팽창 제스처)에 의해 대표 후보 문자의 팽창 시야가 호출되는 하나의 실시예를 도시한다. 팽창 시야를 호출하기 위한 사전결정된 제스처(예컨대, 팽창 제스처)는 텍스트 입력에 대한 대표 문자를 선택하기 위한 사전결정된 제스처(예컨대, 탭 제스처)와는 다르다.
도 11h 및 도 11i에 도시된 바와 같이, 사용자가 제1 대표 문자(1118) 위에서 (예컨대, 서로로부터 멀리 이동하는 2개의 접촉들(1138, 1140)에 의해 나타내는 바와 같이) 팽창 제스처를 제공할 때, 대표 문자(1118)를 디스플레이하는 영역이 팽창되고, 동일한 팽창된 그룹 내에 있지 않은 다른 후보 문자들(예컨대, "乃")과 비교해서 확대된 시야(예컨대, 각각 확대된 박스들(1142, 1144, 1146)에서) 3개의 유사해 보이는 후보 문자들(예컨대, "", "" 및 "巾")이 제시된다.
도 11i에 도시된 바와 같이, 확대된 시야에서 제시될 때, 3개의 유사해 보이는 후보 문자들(예컨대, "", "" 및 "巾")의 미세한 구별들이 사용자에 의해 보다 쉽게 보여질 수 있다. 3개의 후보 문자들 중 하나가 의도된 문자 입력인 경우, 사용자는, 예컨대 그 후보 문자가 디스플레이된 영역을 터치함으로써 후보 문자를 선택할 수 있다. 도 11j 및 도 11k에 도시된 바와 같이, 사용자는 팽창 시야에서 박스(1144)에 나타낸 제2 문자(예컨대, "")를 (접촉(1148)에 의해) 선택하였다. 응답으로, 선택된 문자(예컨대, "")는 커서에 의해 지시되는 삽입 위치에서 텍스트 입력 영역(808)으로 입력된다. 도 11k에 도시된 바와 같이, 일단 문자가 선택되면, 필기 입력 영역(804)에서의 필기 입력 및 후보 디스플레이 영역(806)(또는 후보 디스플레이 영역의 확장 시야)에서의 후보 문자들은 후속 필기 입력을 위해 클리어된다.
일부 실시예들에서, 사용자가 제1 대표 후보 문자의 팽창 시야(1142)에서 원하는 후보 문자를 보지 못한 경우, 사용자는 선택적으로 동일한 제스처를 이용하여, 후보 디스플레이 영역(806)에서 디스플레이된 다른 대표 문자들을 팽창시킬 수 있다. 일부 실시예들에서, 후보 디스플레이 영역(806)에서의 다른 대표 문자를 팽창시키는 것은 자동으로 현재 제시된 팽창 시야를 정상 시야로 복원시킨다. 일부 실시예들에서, 사용자는 선택적으로 축소 제스처를 이용하여 현재의 팽창 시야를 정상 시야로 복원시킨다. 일부 실시예들에서, 사용자는 후보 디스플레이 영역(806)을 (예컨대, 좌측으로 또는 우측으로) 스크롤하여, 후보 디스플레이 영역(806)에서 보이지 않는 다른 후보 문자들을 드러내 보일 수 있다.
도 12a 및 도 12b는, 초기 후보 디스플레이 영역에서 인식 결과들의 제1 서브세트가 제시되는 반면에, 사용자에 의해 특정적으로 호출될 때까지 시야에서 숨겨져 있는 확장된 후보 디스플레이 영역에서 인식 결과들의 제2 서브세트가 제시되는 예시적인 프로세스(1200)의 플로차트들이다. 예시적인 프로세스(1200)에서, 디바이스는 필기 입력에 대한 복수의 필기 인식 결과들로부터, 사전결정된 임계치를 초과하는 시각적 유사성 레벨을 갖는 인식 결과들의 서브세트를 식별한다. 그 후에, 사용자 디바이스는 인식 결과들의 서브세트로부터 대표 인식 결과를 선택하고, 선택된 대표 인식 결과를 디스플레이의 후보 디스플레이 영역에서 디스플레이한다. 프로세스(1200)는 도 11a 내지 도 11k에서 예시되어 있다.
도 12a에 도시된 바와 같이, 예시적인 프로세스(1200)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(1202). 필기 입력은 필기 입력 인터페이스(예컨대, 도 11c의 802)의 필기 입력 영역(예컨대, 도 11c의 806)에서 제공되는 하나 이상의 필기 획들 (예컨대, 도 11c의 1106, 1108, 1110)을 포함한다. 사용자 디바이스는, 필기 인식 모델에 기초하여, 필기 입력에 대한 복수의 출력 문자들(예컨대, 탭처리된 페이지(1130)에 나타낸 문자들, 도 11c)을 식별한다(1204). 사용자 디바이스는 사전결정된 분류 기준에 기초하여 복수의 출력 문자들을 2개 이상의 카테고리들로 나눈다(1206). 일부 실시예들에서, 사전결정된 분류 기준은 개별 문자가 상용 문자인지 또는 희귀 문자인지를 결정한다(1208).
일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역(예컨대, 도 11c에 도시된 바와 같은 806)의 초기 시야에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들(예컨대, 상용 문자들)을 디스플레이하는데(1210), 후보 디스플레이 영역의 초기 시야에는 후보 디스플레이 영역의 확장 시야(예컨대, 도 11d의 1128)를 호출하기 위한 어포던스(예컨대, 도 11c의 1104)가 동시에 제공된다.
일부 실시예들에서, 사용자 디바이스는, 예컨대 도 11c에 도시된 바와 같이, 확장 시야를 호출하기 위한 어포던스를 선택하는 사용자 입력을 수신한다(1212). 사용자 입력에 응답하여, 사용자 디바이스는, 예컨대 도 11d에 도시된 바와 같이, 후보 디스플레이 영역의 확장 시야에서, 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들 및 후보 디스플레이 영역의 초기 시야에서 사전에 디스플레이되지 않은 적어도 제2 카테고리 내의 개별 출력 문자들을 디스플레이한다(1214).
일부 실시예들에서, 제1 카테고리 내의 개별 문자들은 상용 문자들의 사전에서 발견되는 문자들이고, 제2 카테고리 내의 개별 문자들은 희귀 문자들의 사전에서 발견되는 문자들이다. 일부 실시예들에서, 상용 문자들의 사전 및 희귀 문자들의 사전은 사용자 디바이스와 연관된 사용 이력에 기초하여 동적으로 조정 또는 업데이트된다.
일부 실시예들에서, 사용자 디바이스는 복수의 출력 문자들로부터, 사전결정된 유사성 기준에 따라 (예컨대, 유사한 문자들의 사전에 기초하여 또는 일부 공간-유도 특징부들에 기초하여) 시각적으로 서로 유사한 문자들의 그룹을 식별한다(1216). 일부 실시예들에서, 사용자 디바이스는 시각적으로 유사한 문자들의 그룹으로부터, 사전결정된 선택 기준에 기초하여 (예컨대, 이력적 사용 빈도에 기초하여) 대표 문자를 선택한다. 일부 실시예들에서, 사전결정된 선택 기준은 그룹에서의 문자들의 상대적인 사용 빈도에 기초한다. 일부 실시예들에서, 사전결정된 선택 기준은 디바이스와 연관된 선호 입력 언어에 기초한다. 일부 실시예들에서, 대표 후보는 각 후보가 사용자에 의한 의도된 입력일 가능성을 나타내는 다른 인자들에 기초하여 선택된다. 이들 인자들은, 예를 들어, 후보 문자가 사용자의 디바이스 상에 현재 설치된 소프트 키보드에 대한 스크립트에 속하는지, 또는 후보 문자가 사용자 또는 사용자 디바이스와 연관된 특정한 언어에서의 대부분의 상용 문자들의 세트 중에 있는지 등을 포함한다.
일부 실시예들에서, 사용자 디바이스는 후보 디스플레이 영역(예컨대, 도 11h의 806)의 초기 시야에서, 시각적으로 유사한 문자들의 그룹에서의 다른 문자들(예컨대, "", "巾") 대신에 대표 문자 (예컨대, "")를 디스플레이한다(1220). 일부 실시예들에서, 각 후보 문자가 그룹의 대표 문자인지 또는 어떠한 그룹 내에도 있지 않은 일반 후보 문자인지를 나타내기 위해 후보 디스플레이 영역의 초기 시야에서 시각적 표시들(예컨대, 선택적인 시각적 강조, 특별한 배경)이 제공된다. 일부 실시예들에서, 예컨대, 도 11h에 도시된 바와 같이, 사용자 디바이스는, 사용자로부터, 후보 디스플레이 영역의 초기 시야에서 디스플레이되는 대표 문자로 안내되는 사전결정된 팽창 입력(예컨대, 팽창 제스처)을 수신한다(1222). 일부 실시예들에서, 예컨대, 도 11i에 도시된 바와 같이, 사용자 디바이스는, 사전결정된 팽창 입력의 수신에 응답하여, 시각적으로 유사한 문자들의 그룹에서의 대표 문자의 확대 시야 및 하나 이상의 다른 문자들의 개별 확대 시야를 동시에 디스플레이한다(1224).
일부 실시예들에서, 사전결정된 팽창 입력은 후보 디스플레이 영역에서 디스플레이되는 대표 문자 위에서 검출되는 팽창 제스처이다. 일부 실시예들에서, 사전결정된 팽창 입력은 후보 디스플레이 영역에서 디스플레이되는 대표 문자 위에서 검출되고 사전결정된 임계 시간보다 더 길게 지속되는 접촉이다. 일부 실시예들에서, 그룹을 팽창시키기 위한 지속된 접촉은 텍스트 입력에 대한 대표 문자를 선택하는 탭 제스처보다 더 긴 임계 지속기간을 갖는다.
일부 실시예들에서, 각 대표 문자는 그의 유사해 보이는 후보 문자들의 그룹의 확장 시야를 호출하기 위한 개별 어포던스(예컨대, 개별 팽창 버튼)와 동시에 디스플레이된다. 일부 실시예들에서, 사전결정된 팽창 입력은 대표 문자와 연관된 개별 어포던스의 선택이다.
본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 멀티스크립트 필기 인식 모델의 레퍼토리는 이모지 스크립트를 포함한다. 필기 입력 인식 모듈은 사용자의 필기 입력에 기초하여 이모지 캐릭터를 인식할 수 있다. 일부 실시예들에서, 필기 인식 모듈은, 필기로부터 직접 식별되는 이모지 캐릭터들, 및 식별된 이모지 캐릭터를 표시하는 자연 인간 언어에서의 문자 또는 단어 둘 모두를 제시한다. 일부 실시예들에서, 필기 입력 모듈은, 사용자의 필기 입력에 기초하여 자연 인간 언어에서의 문자 또는 단어를 인식하고, 인식된 문자 또는 단어, 및 인식된 문자 또는 단어에 대응하는 이모지 캐릭터 둘 모두를 제시한다. 다시 말하면, 필기 입력 모듈은 필기 입력 인터페이스로부터 이모지 키보드로 전환하지 않고 이모지 캐릭터를 입력하기 위한 방식들을 제공한다. 추가적으로, 필기 입력 모듈은 또한 손으로 이모지 캐릭터를 그림으로써, 정규 자연 언어 문자들 및 단어들을 입력하는 방식을 제공한다. 도 13a 내지 도 13e는 이모지 캐릭터들 및 정규 자연 언어 문자들을 입력하는 이러한 상이한 방식들을 도시하는 예시적인 사용자 인터페이스들을 제공한다.
도 13a는 채팅 애플리케이션 하에서 호출된 예시적인 필기 입력 인터페이스(802)를 도시한다. 필기 입력 인터페이스(802)는 필기 입력 영역(804), 후보 디스플레이 영역(806), 및 텍스트 입력 영역(808)을 포함한다. 일부 실시예들에서, 일단 사용자가 텍스트 입력 영역(808)에서의 텍스트 구성에 만족하면, 사용자는 텍스트 구성을 현재 채팅 세션의 다른 참여자로 전송하도록 선정할 수 있다. 채팅 세션의 대화 이력은 대화 패널(1302)에 나타내진다. 이러한 예에서, 사용자는 대화 패널(1302)에 디스플레이된 채팅 메시지(1304) (예컨대, "Happy Birthday ")를 수신하였다.
도 13b에 도시된 바와 같이, 사용자는 필기 입력 영역(804)에서 영어 단어 "Thanks"에 대한 필기 입력(1306)을 제공하였다. 필기 입력(1306)에 응답하여, 사용자 디바이스는 다수의 후보 인식 결과들(예컨대, 인식 결과들(1308, 1310, 1312))을 식별하였다. 최상위 인식 결과(1303)가 텍스트 입력 영역(808)으로 박스(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)으로 입력할 수 있다.
도 13d에 도시된 바와 같이, 사용자는 계속해서 필기 입력 영역(806)에서 추가적인 필기 획들(1324)을 제공한다. 이번에, 사용자는 스타일화된 느낌표에 뒤이어 하트 심볼을 그렸다. 새로운 필기 획들(1324)에 응답하여, 사용자 디바이스는 새롭게 제공된 필기 획들(1324)이 또 다른 새로운 인식 유닛을 형성하는 것을 인식한다. 새로운 인식 유닛에 기초하여, 사용자 디바이스는 새로운 인식 유닛에 대한 후보 문자들로서 이모지 캐릭터 "♥", 및 대안적으로 숫자 "0"를 식별한다. 새로운 인식 유닛으로부터 인식된 이러한 새로운 후보 문자들에 기초하여, 사용자 디바이스는 2개의 업데이트된 후보 인식 결과들(1326, 1330)(예컨대, "Thanks !♥" 및 "Thanks 80")을 제시한다. 일부 실시예들에서, 사용자 디바이스는 식별된 이모지 캐릭터(예컨대, "♥")에 대응하는 정규 문자(들) 또는 단어(들)(예컨대, "Love")를 추가로 식별한다. 인식된 이모지 캐릭터에 대한 식별된 정규 문자(들) 또는 단어(들)에 기초하여, 사용자 디바이스는 인식된 이모지 캐릭터(들)가 대응하는 정규 문자(들) 또는 단어(들)로 대신된 제3 인식 결과(1328)를 제시한다. 도 13d에 도시된 바와 같이, 인식 결과(1328)에서, 이모지 캐릭터 "!"는 일반 느낌표 "!"로 대신되고, 이모지 캐릭터 "♥"는 정규 문자들 또는 단어 "Love"로 대신되었다.
도 13e에 도시된 바와 같이, 사용자는 후보 인식 결과들 중 하나(예컨대, 혼합 스크립트 텍스트 "Thanks!♥"를 나타내는 후보 결과(1326))를 선택하였고, 선택된 인식 결과의 텍스트가 텍스트 입력 영역(808)으로 입력되고, 후속하여 채팅 세션의 다른 참여자에게 전송된다. 메시지 버블(1332)은 대화 패널(1302)에서의 메시지의 텍스트를 나타낸다.
도 14는 사용자가 필기 입력을 사용하여 이모지 캐릭터를 입력하는 예시적인 프로세스(1400)의 플로차트이다. 도 13a 내지 도 13e는 일부 실시예들에 따른 예시적인 프로세스(1400)를 도시한다.
프로세스(1400)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(1402). 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 인식 모델에 기초하여, 필기 입력으로부터의 복수의 출력 문자들을 인식한다(1404). 일부 실시예들에서, 출력 문자들은 자연 인간 언어의 스크립트로부터의 적어도 제1 이모지 캐릭터(예컨대, 도 13d의 스타일화된 느낌표 "!" 또는 이모지 캐릭터 "♥") 및 적어도 제1 문자(예컨대, 도 13d의 단어 "Thanks"로부터의 문자)를 포함한다. 일부 실시예들에서, 예컨대, 도 13d에 도시된 바와 같이, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 자연 인간 언어의 스크립트로부터의 제1 이모지 캐릭터(예컨대, 도 13d의 스타일화된 느낌표 "!" 또는 이모지 캐릭터 "♥") 및 제1 문자(예컨대, 도 13d의 단어 "Thanks"로부터의 문자)를 포함하는 인식 결과(예컨대, 도 13d의 결과(1326))를 디스플레이한다(1406).
일부 실시예들에서, 필기 인식 모델에 기초하여, 사용자 디바이스는 선택적으로, 필기 입력으로부터 적어도 제1 의미적 단위(예컨대, 단어 "thanks")를 인식하는데(1408), 여기서 제1 의미적 단위는 개별 인간 언어에서의 개별 의미적 뜻을 전달할 수 있는 개별 문자, 단어 또는 어구를 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력으로부터 인식되는 제1 의미적 단위(예컨대, 단어 "Thanks")와 연관된 제2 이모지 캐릭터(예컨대, "악수" 이모지 캐릭터)를 식별한다(1410). 일부 실시예들에서, 사용자 디바이스는, 필기 입력 인터페이스의 후보 디스플레이 영역에서, 제1 의미적 단위(예컨대, 단어 "Thanks")로부터 식별되는 적어도 제2 이모지 캐릭터를 포함하는 제2 인식 결과(예컨대, "악수" 이모지 캐릭터에 뒤이은 "!" 및 "♥" 이모지 캐릭터들을 나타내는 인식 결과)를 디스플레이한다(1412). 일부 실시예들에서, 제2 인식 결과를 디스플레이하는 것은 제2 인식 결과를, 적어도 제1 의미적 단위(예컨대, 단어 "Thanks")를 포함하는 제3 인식 결과(예컨대, 인식 결과 "Thanks!♥")와 동시에 디스플레이하는 것을 추가로 포함한다.
일부 실시예들에서, 사용자는 후보 디스플레이 영역에서 디스플레이되는 제1 인식 결과를 선택하는 사용자 입력을 수신한다. 일부 실시예들에서, 사용자 디바이스는, 사용자 입력에 응답하여, 필기 입력 인터페이스의 텍스트 입력 영역에서 선택된 제1 인식 결과의 텍스트를 입력하고, 여기서 텍스트는 적어도 자연 인간 언어의 스크립트로부터의 제1 이모지 캐릭터 및 제1 문자를 포함한다. 다시 말하면, 사용자는 자연 언어 키보드와 이모지 캐릭터 키보드 사이의 전환 없이, 필기 입력 영역에서 단일 필기 입력(비록 다수의 획들을 포함하는 필기 입력일지라도)을 사용하여 혼합 스크립트 텍스트 입력을 입력할 수 있다.
일부 실시예들에서, 필기 인식 모델은 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 기입 샘플들을 포함하는 멀티스크립트 훈련 코퍼스에 대해 훈련되었고, 3개의 비중첩 스크립트들은 이모지 캐릭터들, 한자들, 및 라틴어 스크립트의 세트를 포함한다.
일부 실시예들에서, 사용자 디바이스는 필기 입력으로부터 직접 인식되는 제1 이모지 캐릭터(예컨대, "♥" 이모지 캐릭터)에 대응하는 제2 의미적 단위(예컨대, 단어 "Love")를 식별한다(1414). 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서, 제1 이모지 캐릭터(예컨대, "♥" 이모지 캐릭터)로부터 식별되는 적어도 제2 의미적 단위(예컨대, 단어 "Love")를 포함하는 제4 인식 결과(예컨대, 도 13d의 1328)를 디스플레이한다(1416). 일부 실시예들에서, 도 13d에 도시된 바와 같이, 사용자 디바이스는 후보 디스플레이 영역에서 제4 인식 결과(예컨대, 결과(1328) "Thanks! Love")를, 제1 인식 결과(예컨대, 결과 "Thanks♥!")와 동시에 디스플레이한다.
일부 실시예들에서, 사용자 디바이스는 사용자가 이모지 캐릭터를 그림으로써 정규 텍스트를 입력할 수 있게 한다. 예를 들어, 사용자가 단어 "elephant"를 철자하는 방식을 모를 경우, 사용자는 선택적으로 필기 입력 영역에서 "elephant"에 대한 스타일화된 이모지 캐릭터를 그리고, 사용자 디바이스가 필기 입력을 "elephant"에 대한 이모지 캐릭터로서 정확하게 인식할 수 있는 경우, 사용자 디바이스는 선택적으로 또한 후보 디스플레이 영역에서 디스플레이된 인식 결과들 중 하나로서 일반 텍스트의 단어 "elephant"를 제시한다. 다른 예에서, 사용자는 한자 "猫"를 기입하는 대신에, 필기 입력 영역에서 스타일화된 고양이를 그릴 수 있다. 사용자 디바이스가 사용자에 의해 제공된 필기 입력에 기초하여 "고양이"에 대한 이모지 캐릭터를 식별하면, 사용자 디바이스는 선택적으로 또한 후보 인식 결과들에서 "고양이"에 대한 이모지 캐릭터와 함께, 중국어로 "고양이"를 의미하는 한자 "猫"를 제시한다. 인식된 이모지 캐릭터에 대한 일반 텍스트를 제시함으로써, 사용자 디바이스는 잘 알려진 이모지 캐릭터와 통상 연관된 수 개의 스타일화된 획들을 사용하여 복잡한 문자들 또는 단어들을 입력하는 대안적인 방식을 제공한다. 일부 실시예들에서, 사용자 디바이스는 이모지 캐릭터들을, 하나 이상의 바람직한 스크립트들 또는 언어들(예컨대, 영어 또는 중국어)에서의 그들의 대응하는 일반 텍스트(예컨대, 문자들, 단어들, 어구들, 심볼들 등)와 링크시키는 사전을 저장한다.
일부 실시예들에서, 사용자 디바이스는 필기 입력으로부터 생성된 이미지에 대한 이모지 캐릭터의 시각적 유사성에 기초하여 이모지 캐릭터를 인식한다. 일부 실시예들에서, 필기 입력으로부터 이모지 캐릭터들의 인식을 가능하게 하기 위해, 사용자 디바이스 상에서 사용되는 필기 인식 모델은, 자연 인간 언어의 스크립트의 문자들에 대응하는 필기 샘플들 및 또한 인공적으로 설계된 이모지 캐릭터들의 세트에 대응하는 필기 샘플들 둘 모두를 포함하는 훈련 코퍼스를 사용하여 훈련된다. 일부 실시예들에서, 동일한 의미적 개념에 관련된 이모지 캐릭터들은, 상이한 자연 언어들의 텍스트로 혼합된 입력에서 사용될 때 상이한 외관을 가질 수 있다. 예를 들어, "Love"의 의미적 개념에 대한 이모지 캐릭터는 하나의 자연 언어(예컨대, 일본어)의 일반 텍스트로 제시될 때 "하트" 이모지 캐릭터이며 다른 자연 언어(예컨대, 영어 또는 프랑스어)의 일반 텍스트로 제시될 때 "키스" 이모지 캐릭터일 수 있다.
본 명세서에 설명되는 바와 같이, 다문자 필기 입력의 인식을 수행할 때, 필기 입력 모듈은 필기 입력 영역에서 현재 누적된 필기 입력의 분할을 수행하고, 누적된 획들을 하나 이상의 인식 유닛들로 나눈다. 필기 입력을 분할하는 방식을 결정하기 위해 사용되는 파라미터들 중 하나는 획들이 필기 입력 영역에서 클러스터링되는 방식 및 획들의 상이한 클러스터들 간의 거리일 수 있다. 지금까지 사람들은 상이한 서체들을 갖는다. 몇몇 사람들은 획들 또는 동일한 문자의 상이한 부분들 사이에 큰 거리를 두고 매우 듬성듬성 기입하는 경향이 있는 반면에, 다른 사람들은 획들 또는 상이한 문자들 사이에 매우 작은 거리를 두고 매우 빽빽하게 기입하는 경향이 있다. 심지어 동일한 사용자의 경우에도, 불완전한 계획으로 인해, 필기 문자는 균형잡힌 외관으로부터 벗어날 수 있고, 상이한 방식들로 한쪽으로 치우치거나, 늘어나 있거나, 또는 압착될 수 있다. 본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 획 순서 독립적인 인식을 제공하므로, 사용자는 문자들 또는 문자들의 부분들을 비순서적으로 기입할 수 있다. 결과적으로, 문자들 간에 필기 입력에서의 공간 균일성 및 균형을 획득하기 어려울 수 있다.
일부 실시예들에서, 본 명세서에 설명되는 필기 입력 모델은 사용자가 2개의 인접 인식 유닛들을 단일 인식 유닛으로 병합할지 또는 단일 인식 유닛을 2개의 별도의 인식 유닛들로 나눌지를 필기 입력 모듈에 통지하는 방식을 제공한다. 사용자의 도움으로, 필기 입력 모듈은 초기 분할을 개정할 수 있고, 사용자에 의해 의도된 결과를 생성할 수 있다.
도 15a 내지 도 15j는 사용자가 사전결정된 핀치 및 팽창 제스처들을 제공하여 사용자 디바이스에 의해 식별된 인식 유닛들을 수정하는 일부 예시적인 사용자 인터페이스들 및 프로세스들을 도시한다.
도 15a 및 도 15b에 도시된 바와 같이, 사용자는 필기 입력 인터페이스(802)의 필기 입력 영역(806)에서 복수의 필기 획들(1502)(예컨대, 3개의 획들)을 입력하였다. 사용자 디바이스는 현재 누적된 필기 획들(1502)에 기초하여 단일 인식 유닛을 식별하였고, 후보 디스플레이 영역(806)에서 3개의 후보 문자들(1504, 1506, 1508)(예컨대, 각각 "巾", "中", 및 "")을 제시하였다.
도 15c는 필기 입력 영역(606)에서 초기 필기 획들(1502)의 오른쪽에 수 개의 추가적인 획들(1510)을 추가로 입력하였다. 사용자 디바이스는 획들(1502) 및 획들(1510)이 2개의 별도의 인식 유닛들로서 간주되어야 한다고 (예컨대, 복수의 획들(1502, 1510)의 치수들 및 공간 분포들에 기초하여) 결정한다. 인식 유닛들의 나눔에 기초하여, 사용자 디바이스는 제1 및 제2 인식 유닛들의 입력 이미지들을 필기 인식 모델로 제공하고, 후보 문자들의 2개의 세트들을 획득한다. 그 후에, 사용자 디바이스는 인식된 문자들의 상이한 조합들에 기초하여 복수의 인식 결과들(예컨대, 1512, 1514, 1516, 1518)을 생성한다. 각 인식 결과는 제1 인식 유닛에 대한 인식된 문자, 및 제2 인식 유닛에 대한 인식된 문자를 포함한다. 도 15c에 도시된 바와 같이, 복수의 인식 결과들(1512, 1514, 1516, 1518) 각각은 2개의 인식된 문자들을 포함한다.
이러한 예에서, 사용자가 사실은 단일 문자로서 인식될 필기 입력을 의도하였지만, 무심코 필기 문자(예컨대, "帽")의 왼쪽 부분(예컨대, 왼쪽 부수 "巾")과 오른쪽 부분(예컨대, 오른쪽 부수 "冒") 사이에 너무 큰 공간을 두었다고 가정한다. 후보 디스플레이 영역(806)에 제시된 결과들(예컨대, 1512, 1514, 1516, 1518)을 보면, 사용자는 사용자 디바이스가 현재 필기 입력을 2개의 인식 유닛들로 틀리게 분할하였음을 알아차릴 것이다.
분할은 객관적인 표준에 기초할 수 있지만, 사용자가 현재 필기 입력을 삭제하고 다시 왼쪽 부분과 오른쪽 부분 사이에 더 작은 거리를 두고 전체 문자를 재기입하는 것은 바람직하지 않을 것이다.
그 대신에, 도 15d에 도시된 바와 같이, 사용자는 필기 입력 모듈에 의해 식별된 2개의 인식 유닛들이 단일 인식 유닛으로서 병합되어야 함을 필기 입력 모듈에 지시하기 위해 필기 획들(1502, 1510)의 2개의 클러스터들 위에서 핀치 제스처를 이용한다. 핀치 제스처는 터치 감응 표면 상에서 서로를 향해 이동되는 2개의 접촉들(1520, 1522)에 의해 지시된다.
도 15e는, 사용자의 핀치 제스처에 응답하여, 사용자 디바이스가 현재 누적된 필기 입력(예컨대, 획들(1502, 1510))의 분할을 개정하고 필기 획들을 단일 인식 유닛으로 병합하였음을 도시한다. 도 15e에 도시된 바와 같이, 사용자 디바이스는 개정된 인식 유닛에 기초한 입력 이미지를 필기 인식 모델로 제공하고, 개정된 인식 유닛에 대한 3개의 새로운 후보 문자들(1524, 1526, 1528)(예컨대, "帽", "", 및 "搢")을 획득하였다. 일부 실시예들에서, 도 15e에 도시된 바와 같이, 사용자 디바이스는 선택적으로 필기 획들의 왼쪽 클러스터와 오른쪽 클러스터 사이의 거리가 감소되도록 필기 입력 영역(806) 내의 필기 입력의 렌더링을 조정한다. 일부 실시예들에서, 사용자 디바이스는 핀치 제스처에 응답하여 필기 입력 영역(608)에 나타낸 필기 입력의 렌더링을 변경하지 않는다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역(806)에서 검출된 (하나의 단일 접촉에 대조적으로) 2개의 동시 접촉들에 기초하여 입력 획으로부터 핀치 제스처를 구별한다.
도 15f에 도시된 바와 같이, 사용자는 이전에 입력된 필기 입력(즉, 문자 "帽"에 대한 획들)의 오른쪽에 획들(1530)을 2개 더 입력하였다. 사용자 디바이스는 새롭게 입력된 획들(1530)이 새로운 인식 유닛임을 결정하고, 새롭게 식별된 인식 유닛에 대한 후보 문자(예컨대, "子")를 인식한다. 그 후에, 사용자 디바이스는 새롭게 식별된 문자(예컨대, "子")를 먼저 식별된 인식 유닛에 대한 후보 문자들과 조합하고, 후보 디스플레이 영역(806)에서 다수의 상이한 인식 결과들 (예컨대, 결과들(1532, 1534))을 제시한다.
도 15g에 도시된 바와 같이, 필기 획들(1530)에 뒤이어서, 사용자는 계속해서 획들(1530)의 오른쪽에 획들(1536)을 더(예컨대, 획들을 3개 더) 기입한다. 획들(1530)과 획들(1536) 사이의 수평 거리가 매우 작기 때문에, 사용자 디바이스는 획들(1530) 및 획들(1536)이 동일한 인식 유닛에 속한다고 결정하고, 획들(1530, 1536)에 의해 형성된 입력 이미지를 필기 인식 모델로 제공한다. 필기 인식 모델은 개정된 인식 유닛에 대한 3개의 상이한 후보 문자들을 식별하고, 현재 누적된 필기 입력에 대한 2개의 개정된 인식 결과들(1538, 1540)을 생성한다.
이러한 예에서, 마지막 2개 세트의 획들(1530, 1536)이 사실은 2개의 별도의 문자들(예컨대, "子" 및 "±")로서 의도되었다고 가정한다. 사용자 디바이스가 2개 세트들의 획들(1530, 1536)을 단일 인식 유닛으로 틀리게 조합하였음을 사용자가 알아낸 후에, 사용자는 2개 세트의 획들(1530, 1536)이 2개의 별도의 인식 유닛들로 나눠져야 함을 사용자 디바이스에 통지하기 위해 팽창 제스처를 제공하도록 진행한다. 도 15h에 도시된 바와 같이, 사용자는 획들(1530, 1536) 주위에 2개의 접촉들(1542, 1544)을 취한 후에, 2개의 접촉들을 일반적으로 수평 방향으로 (즉, 디폴트 기입 방향을 따라) 서로로부터 멀리 이동시킨다.
도 15i는, 사용자의 팽창 제스처에 응답하여, 사용자 디바이스가 현재 누적된 필기 입력의 이전의 분할을 개정하고 획들(1530) 및 획들(1536)을 2개의 연속 인식 유닛들로 배정한 것을 도시한다. 2개의 별도의 인식 유닛들에 대해 생성된 입력 이미지들에 기초하여, 사용자 디바이스는 획들(1530)에 기초한 제1 인식 유닛에 대한 하나 이상의 후보 문자들, 및 획들(1536)에 기초한 제2 인식 유닛에 대한 하나 이상의 후보 문자들을 식별한다. 그 후에, 사용자 디바이스는 인식된 문자들의 상이한 조합들에 기초하여 2개의 새로운 인식 결과들(1546, 1548)을 생성한다. 일부 실시예들에서, 사용자 디바이스는 선택적으로 획들(1536, 1536)의 렌더링을 수정하여 이전에 식별된 인식 유닛의 나눔을 반영한다.
도 15j 및 도 15k에 도시된 바와 같이, 사용자는 후보 디스플레이 영역(806)에 디스플레이된 후보 인식 결과들 중 하나를 (접촉(1550)에 의해 지시되는 바와 같이) 선택하였고, 선택된 인식 결과(예컨대, 결과(1548))는 사용자 인터페이스의 텍스트 입력 영역(808)에서 입력되었다. 선택된 인식 결과가 텍스트 입력 영역(808)으로 입력된 후에, 후보 디스플레이 영역(806) 및 필기 입력 영역(804)은 둘 모두 클리어되고 후속 사용자 입력을 디스플레이할 준비를 한다.
도 16a 및 도 16b는 사용자가 사전결정된 제스처 (예컨대, 핀치 제스처 및/또는 팽창 제스처)를 이용하여 현재 필기 입력의 기존의 분할을 분할하거나 또는 개정하는 방식을 필기 입력 모듈에 통지하는 예시적인 프로세스(1600)의 플로차트들이다. 도 15j 및 도 15k는 일부 실시예들에 따른 예시적인 프로세스(1600)의 예시를 제공한다.
일부 실시예들에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(1602). 필기 입력은 디바이스에 결합된 터치 감응 표면에서 제공되는 복수의 필기 획들을 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 필기 입력 영역(예컨대, 도 15a 내지 도 15k의 필기 입력 영역(806))에서 복수의 필기 획들을 실시간으로 렌더링한다(1604). 예컨대, 도 15d 및 도 15h에 도시된 바와 같이, 사용자 디바이스는 복수의 필기 획들에 대한 핀치 제스처 입력 및 팽창 제스처 입력 중 하나를 수신한다.
일부 실시예들에서, 예컨대, 도 15c 내지 도 15e에 도시된 바와 같이, 사용자 디바이스는, 핀치 제스처 입력을 수신할 시에, 복수의 필기 획들을 단일 인식 유닛으로서 처리함으로써 복수의 필기 획들에 기초하여 제1 인식 결과를 생성한다(1606).
일부 실시예들에서, 예컨대, 도 15g 내지 도 15i에 도시된 바와 같이, 사용자 디바이스는, 팽창 제스처 입력을 수신할 시에, 복수의 필기 획들을 팽창 제스처 입력에 의해 떼어내진 2개의 별도의 인식 유닛들로서 처리함으로써 복수의 필기 획들에 기초하여 제2 인식 결과를 생성한다(1608).
일부 실시예들에서, 예컨대, 도 15e 및 도 15i에 도시된 바와 같이, 사용자 디바이스는, 제1 인식 결과 및 제2 인식 결과의 개별 인식 결과를 생성할 시에, 필기 입력 인터페이스의 후보 디스플레이 영역에서 생성된 인식 결과를 디스플레이한다.
일부 실시예들에서, 핀치 제스처 입력은 터치 감응 표면 상에 복수의 필기 획들에 의해 점유되는 영역에서 서로를 향해 모여드는 2개의 동시 접촉들을 포함한다. 일부 실시예들에서, 팽창 제스처 입력은 터치 감응 표면 상에 복수의 필기 획들에 의해 점유되는 영역에서 서로로부터 떠나는 2개의 동시 접촉들을 포함한다.
일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들로부터 2개의 인접 인식 유닛들을 식별한다(예컨대, 1614). 예컨대, 도 15c에 도시된 바와 같이, 사용자 디바이스는, 후보 디스플레이 영역에서, 2개의 인접 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 초기 인식 결과(예컨대, 도 15c의 결과들(1512, 1514, 1516, 1518))를 디스플레이한다(1616). 일부 실시예들에서, 핀치 제스처에 응답하여 제1 인식 결과(예컨대, 도 15e의 결과(1524, 1526, 또는 1528))를 디스플레이할 때, 사용자 디바이스는 후보 디스플레이 영역에서 초기 인식 결과를 제1 인식 결과로 대신한다(1618). 일부 실시예들에서, 도 15d에 도시된 바와 같이, 사용자 디바이스는 초기 인식 결과가 후보 디스플레이 영역에서 디스플레이되는 동안 핀치 제스처 입력을 수신한다(1620). 일부 실시예들에서, 예컨대, 도 15e에 도시된 바와 같이, 사용자 디바이스는, 핀치 제스처 입력에 응답하여, 필기 입력 영역에서 2개의 인접 인식 유닛들 사이의 거리를 감소시키도록 복수의 필기 획들을 리렌더링한다(1622).
일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들로부터 단일 인식 유닛을 식별한다(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).
일부 실시예들에서, 사용자는 선택적으로, 사용자가 획들을 제공하고 표준 분할 프로세스에 기초한 정확한 분할을 하기에는 획들이 너무 퍼져 있을 수 있음을 알아차린 직후에, 복수의 획들을 단일 인식 유닛으로서 처리하는 것을 사용자 디바이스에 통지하기 위해 핀치 제스처를 제공한다. 사용자 디바이스는 핀치 제스처 시에 존재하는 2개의 동시 접촉들에 기초하여 정규 획으로부터 핀치 제스처를 구별할 수 있다. 유사하게, 일부 실시예들에서, 사용자는 선택적으로, 사용자가 획들을 제공하고 표준 분할 프로세스에 기초한 정확한 분할을 하기에는 획들이 너무 함께 가까이 있을 수 있음을 알아차린 직후에, 복수의 획들을 2개의 별도의 인식 유닛들로서 처리하는 것을 사용자 디바이스에 통지하기 위해 팽창 제스처를 제공한다. 사용자 디바이스는 핀치 제스처 시에 존재하는 2개의 동시 접촉들에 기초하여 정규 획으로부터 팽창 제스처를 구별할 수 있다.
일부 실시예들에서, 핀치 또는 팽창 제스처의 이동 방향은 선택적으로 제스처 하에서 획들을 분할하는 방식에 대한 추가적인 안내를 제공하기 위해 사용된다. 예를 들어, 필기 입력 영역에 대해 멀티라인 필기 입력이 가능하게 된 경우, 수직 방향으로 이동하는 2개의 접촉들을 갖는 핀치 제스처는 2개의 인접 라인들에서 식별되는 2개의 인식 유닛들을 단일 인식 유닛으로 (예컨대, 위 부수 및 아래 부수로서) 병합하는 것을 필기 입력 모듈에 통지할 수 있다. 유사하게, 수직 방향으로 이동하는 2개의 접촉들을 갖는 팽창 제스처는 2개의 인접 라인들에서 단일 인식 유닛을 2개의 인식 유닛들로 나누는 것을 필기 입력 모듈에 통지할 수 있다. 일부 실시예들에서, 핀치 및 팽창 제스처들은 또한 문자 입력의 하위 부분에서의 분할 안내, 예컨대, 복합 문자의 상이한 부분들(예컨대, 위, 아래, 왼쪽 또는 오른쪽 부분들)에 있어서, 복합 문자(,등)에서 2개의 하위 구성요소들을 병합하거나 또는 단일 구성요소를 나누는 것을 제공할 수 있다. 이것은, 사용자들이 손으로 복잡한 복합 문자를 기입할 때 정확한 비율들 및 균형을 잃는 경향이 있기 때문에, 복잡한 복합 한자들을 인식하는 데 특히 도움이 된다. 필기 입력의 완료 후에, 예컨대, 핀치 및 팽창 제스처들에 의해, 필기 입력의 비율들 및 균형을 조정할 수 있는 것은, 정확한 비율들 및 균형으로 되도록 여러 가지 시도를 하지 않고도 사용자가 정확한 문자를 입력하는 데 특히 도움이 된다.
본 명세서에 설명되는 바와 같이, 필기 입력 모듈은 사용자가 다문자 필기 입력을 입력할 수 있게 하고, 필기 입력 영역에서 다수의 문자들에 걸쳐서, 그리고 심지어는 다수의 어구들, 문장들, 및/또는 라인들에 걸쳐서도, 문자 내에서 다문자 필기 입력에 대한 비순서적인 획들을 허용한다. 일부 실시예들에서, 필기 입력 모듈은 또한 필기 입력 영역에서 문자 단위 삭제를 제공하는데, 여기서 문자 삭제의 순서는 각 문자에 대한 획들이 필기 입력 영역에서 제공된 시기에 관계없이 그리고 역기입 방향(reverse writing direction)이다. 일부 실시예들에서, 필기 입력 영역에서의 각 인식 유닛(예컨대, 문자 또는 부수)의 삭제는 선택적으로 획 단위로 수행되는데, 여기서 획들은 획들이 인식 유닛 내에 제공된 역시간 순서(reverse temporal order)로 삭제된다. 도 17a 내지 도 17h는 사용자로부터의 삭제 입력에 응답하고 다문자 필기 입력에서 문자 단위 삭제를 제공하기 위한 예시적인 사용자 인터페이스들을 도시한다.
도 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))를 추가로 디스플레이한다. 부분 인식 결과를 제공하는 것은 필기 입력의 어느 부분이 개정될 필요가 있음을 사용자에게 통지한다. 추가적으로, 사용자는 또한 필기 입력의 정확하게 인식된 부분을 먼저 입력한 후에, 정확하게 인식되지 않은 부분을 재기입하도록 선정할 수 있다.
도 17c는 사용자가 계속해서 획들(1710)의 왼쪽에 추가적인 필기 획(1718)을 제공하였음을 도시한다. 획(1718)의 상대적인 위치 및 거리에 기초하여, 사용자 디바이스는 새롭게 추가된 획이 필기 획들(1702)의 클러스터와 동일한 인식 유닛에 속한다고 결정한다. 개정된 인식 유닛들에 기초하여, 제1 인식 유닛에 대한 새로운 문자(예컨대, "")를 인식하고, 새로운 인식 결과들(1720, 1722, 1724)의 세트를 생성한다. 또 다시, 획들(1710)에 대해 식별된 후보 문자들 중 어느 것도 사전결정된 신뢰도 임계치를 충족하지 않기 때문에, 제1 인식 결과(1720)는 부분 인식 결과이다.
도 17d는 사용자가 이제 획들(1702)과 획들(1710) 사이에 복수의 새로운 획들(1726)을 입력하였음을 도시한다. 사용자 디바이스는 새롭게 입력된 획들(1726)을 획들(1710)과 동일한 인식 유닛에 배정한다. 이제, 사용자는 2개의 한자들(예컨대, "")에 대한 모든 필기 획들의 입력을 완료하였고, 정확한 인식 결과(1728)가 후보 디스플레이 영역(806)에 나타내진다.
도 27e는 사용자가, 예컨대 삭제 버튼(1732) 상에서의 가벼운 접촉(1730)을 취함으로써, 삭제 입력의 초기 부분을 입력하였음을 도시한다. 사용자가 삭제 버튼(1732)과의 접촉을 유지하는 경우, 사용자는 현재의 필기 입력을 문자 단위로 (또는 인식 유닛 단위로) 삭제할 수 있다. 삭제는 동시에 모든 필기 입력에 대해 수행되지는 않는다.
일부 실시예들에서, 도 17e에 도시된 바와 같이, 사용자의 손가락이 처음 터치 감응 스크린 상의 삭제 버튼(1732)을 터치할 때, 디폴트 기입 방향에서(예컨대, 좌측에서부터 우측으로) 마지막 인식 유닛(예컨대, 문자 ""에 대한 인식 유닛)은 필기 입력 영역(804) 내에 동시에 디스플레이되는 다른 인식 유닛(들)에 비해 시각적으로 강조된다(예컨대, 경계선(1734) 또는 밝게 된 배경 등으로 강조된다).
일부 실시예들에서, 도 17f에 도시된 바와 같이, 사용자가 삭제 버튼(1732) 상에서의 접촉(1730)을 임계 지속기간보다 오래 유지하였음을 사용자 디바이스가 검출할 때, 사용자 디바이스는 필기 입력 영역(806)으로부터 (예컨대, 박스(1734) 내의) 강조된 인식 유닛을 제거한다. 추가적으로, 도 17f에 도시된 바와 같이, 사용자 디바이스는 또한 삭제된 인식 유닛에 기초하여 생성된 임의의 출력 문자들을 삭제하도록 후보 디스플레이 영역(608)에 나타낸 인식 결과들을 개정한다.
도 17f는, 필기 입력 영역(806)에서의 마지막 인식 유닛(예컨대, 문자 "腦"에 대한 인식 유닛)이 삭제된 후에 사용자가 계속해서 삭제 버튼(1732) 상에서의 접촉(1730)을 유지하는 경우, 삭제된 인식 유닛에 대해 인접 인식 유닛(예컨대, 문자 ""에 대한 인식 유닛)이 삭제될 다음 인식 유닛이 됨을 추가로 도시한다. 도 17f에 도시된 바와 같이, 나머지 인식 유닛은 (예컨대, 박스(1736) 내에서) 시각적으로 강조되었고, 삭제될 준비가 된다. 일부 실시예들에서, 인식 유닛의 시각적 강조는 사용자가 계속해서 삭제 버튼과의 접촉을 유지하는 경우 삭제되게 될 인식 유닛의 미리보기를 제공한다. 사용자가 임계 지속기간에 도달하기 전에 삭제 버튼과의 접촉을 중단하는 경우, 시각적 강조가 마지막 인식 유닛으로부터 제거되고, 인식 유닛은 삭제되지 않는다. 당업자가 인식하는 바와 같이, 접촉의 지속기간은 인식 유닛이 삭제될 때마다 재설정된다. 추가적으로, 일부 실시예들에서, 접촉 세기(예컨대, 사용자가 터치 감응 스크린과의 접촉(1730)을 가한 압력)는 선택적으로 현재 강조된 인식 유닛을 삭제하려는 사용자의 의도를 확인하기 위해 임계 지속기간을 조정하도록 사용된다. 도 17f 및 도 17g는, 사용자가 임계 지속기간에 도달하기 전에 삭제 버튼(1732) 상에서의 접촉(1730)을 중단하였으며 문자 ""에 대한 인식 유닛이 필기 입력 영역(806)에서 보존됨을 도시한다. 도 17g 및 도 17h에 도시된 바와 같이, 사용자가 인식 유닛에 대한 제1 인식 결과(예컨대, 결과(1738))를 (예컨대, 접촉(1740)에 의해 지시되는 바와 같이) 선택했을 때, 제1 인식 결과(1738)의 텍스트가 텍스트 입력 영역(808)으로 입력된다.
도 18a 및 도 18b는 사용자 디바이스가 다문자 필기 입력에서 문자 단위 삭제를 제공하는 예시적인 프로세스(1800)의 플로차트들이다. 일부 실시예들에서, 필기 입력의 삭제는 필기 입력으로부터 인식된 문자들이 확인되어 사용자 인터페이스의 텍스트 입력 영역으로 입력되기 전에 수행된다. 일부 실시예들에서, 필기 입력에서의 문자들의 삭제는 필기 입력으로부터 식별된 인식 유닛들의 역공간 순서(reverse spatial order)에 따라 진행하고, 인식 유닛들이 형성된 시간적 시퀀스와는 관계없다. 도 17a 내지 도 17h는 일부 실시예들에 따른 예시적인 프로세스(1800)를 도시한다.
도 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).
일부 실시예들에서, 예컨대, 도 17a 내지 도 17d에 도시된 바와 같이, 사용자 디바이스는 복수의 필기 획들이 사용자에 의해 제공됨에 따라 필기 입력 인터페이스의 필기 입력 영역에서 복수의 필기 획들을 실시간으로 렌더링한다(1814). 일부 실시예들에서, 삭제 입력을 수신하는 것에 응답하여, 사용자 디바이스는, 필기 입력 영역(예컨대, 도 17e의 필기 입력 영역(804))으로부터, 필기 입력 영역에서 복수의 인식 유닛들에 의해 형성되는 공간 시퀀스에서의 최후 인식 유닛(예컨대, 획들(1726, 1710)을 포함하는 인식 유닛)에 대응하는 복수의 필기 획들의 개별 서브세트를 제거한다(1816). 최후 인식 유닛은 다문자 인식 결과(예컨대, 도 17e의 결과(1728))에서의 최후 문자(예컨대, 문자 "")에 대응한다.
일부 실시예들에서, 최후 인식 유닛은 사용자에 의해 제공되는 복수의 필기 획들 중에서 시간적으로 최종의 필기 획을 포함하지 않는다(1818). 예를 들어, 사용자가 그 또는 그녀가 획들(1726, 1710)을 제공한 후에 획(1718)을 제공한 경우, 획들(1726, 1710)을 포함하는 최후 인식 유닛은 여전히 먼저 삭제될 것이다.
일부 실시예들에서, 예컨대, 도 17e에 도시된 바와 같이, 삭제 입력의 초기 부분을 수신하는 것에 응답하여, 사용자 디바이스는 필기 입력 영역에서 식별되는 다른 인식 유닛들로부터 최후 인식 유닛을 시각적으로 구별한다(1820). 일부 실시예들에서, 삭제 입력의 초기 부분은 필기 입력 인터페이스에서 삭제 버튼 상에서 검출되는 초기 접촉이고, 초기 접촉이 사전결정된 임계량의 시간보다 오래 지속될 때 삭제 입력이 검출된다(1822).
일부 실시예들에서, 최후 인식 유닛은 필기 한자에 대응한다. 일부 실시예들에서, 필기 입력은 초서체로 기입된다. 일부 실시예들에서, 필기 입력은 초서체로 기입된 다수의 한자들에 대응한다. 일부 실시예들에서, 필기 획들 중 적어도 하나는 복수의 인식 유닛들 중 2개의 인접 인식 유닛들로 나눠진다. 예를 들어, 때때로, 사용자는 다수의 문자들과 연결되는 긴 획을 사용할 수도 있으며, 그러한 경우에, 필기 입력 모듈의 분할 모듈은 선택적으로 긴 획을 여러 개의 인식 유닛들로 나눈다. 필기 입력의 삭제가 문자 단위로 (또는 인식 유닛 단위로) 수행될 때, 긴 획의 세그먼트(예컨대, 대응하는 인식 유닛 내의 세그먼트)만이 한 번에 삭제된다.
일부 실시예들에서, 삭제 입력은 필기 입력 인터페이스에서 제공되는 삭제 버튼 상의 지속된 접촉이고, 복수의 필기 획들의 개별 서브세트를 제거하는 것은, 필기 획들의 서브세트가 사용자에 의해 제공된 역시간 순서에서 획 단위로, 필기 입력 영역으로부터 최후 인식 유닛에서의 필기 획들의 서브세트를 제거하는 것을 추가로 포함한다(1824).
일부 실시예들에서, 예컨대, 도 17b 및 도 17c에 도시된 바와 같이, 사용자 디바이스는 복수의 인식 유닛들로부터 인식되는 개별 문자들의 서브세트를 포함하는 부분 인식 결과를 생성하는데(1826), 여기서 개별 문자들의 서브세트 각각은 사전결정된 신뢰도 임계치를 충족한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 부분 인식 결과(예컨대, 도 17b의 결과(1712) 및 도 17c의 결과(1720))를 다문자 인식 결과(예컨대, 결과들(1714, 1722))와 동시에 디스플레이한다(1828).
일부 실시예들에서, 부분 인식 결과는 적어도 다문자 인식 결과에서의 최후 문자를 포함하지 않는다. 일부 실시예들에서, 부분 인식 결과는 적어도 다문자 인식 결과에서의 초기 문자를 포함하지 않는다. 일부 실시예들에서, 부분 인식 결과는 적어도 다문자 인식 결과에서의 중간 문자를 포함하지 않는다.
일부 실시예들에서, 삭제의 최소 단위는 부수이며, 부수가 필기 입력 영역에 여전히 남아 있는 필기 입력들에서의 마지막 인식 유닛이 될 때마다 필기 입력들은 한 번에 하나의 부수가 삭제되었다.
본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 사용자 디바이스는 수평 기입 모드 및 수직 기입 모드 둘 모두를 제공한다. 일부 실시예들에서, 사용자 디바이스는 사용자가 수평 기입 모드에서 좌측에서 우측으로의 기입 방향 및 우측에서 좌측으로의 방향 둘 모두 또는 그 중 하나로 텍스트를 입력할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 사용자가 수직 기입 모드에서 하향식 기입 방향 및 상향식 방향 둘 모두 또는 그 중 하나로 텍스트를 입력할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 현재 필기 입력들에 대한 개별 기입 모드 및/또는 기입 방향을 호출하기 위해 사용자 인터페이스 상에 다양한 어포던스들(예컨대, 기입 모드 또는 기입 방향 버튼)을 제공한다. 일부 실시예들에서, 텍스트 입력 영역에서의 텍스트 입력 방향은 디폴트로 필기 입력 방향에서의 필기 입력 방향과 동일하다. 일부 실시예들에서, 사용자 디바이스는 사용자가 텍스트 입력 영역에서의 입력 방향 및 필기 입력 영역에서의 기입 방향을 수동으로 설정할 수 있게 한다. 일부 실시예들에서, 후보 디스플레이 영역에서의 텍스트 디스플레이 방향은 디폴트로 필기 입력 영역에서의 필기 입력 방향과 동일하다. 일부 실시예들에서, 사용자 디바이스는 사용자가 필기 입력 영역에서의 필기 입력 방향과는 관계없이 텍스트 입력 영역에서의 텍스트 디스플레이 방향을 수동으로 설정할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 기입 모드 및/또는 기입 방향을 대응하는 디바이스 배향과 연관시키고, 디바이스 배향의 변화는 기입 모드 및/또는 기입 방향에서의 변화를 자동으로 유발시킨다. 일부 실시예들에서, 기입 방향의 변화는 텍스트 입력 영역으로 입력될 최상위 인식 결과의 입력을 자동으로 야기한다.
도 19a 내지 도 19f는 수평 입력 모드 및 수직 입력 모드 둘 모두를 제공하는 사용자 디바이스의 예시적인 사용자 인터페이스들을 도시한다.
도 19a는 수평 입력 모드에서의 사용자 디바이스를 도시한다. 일부 실시예들에서, 도 19a에 도시된 바와 같이, 수평 입력 모드는 사용자 디바이스가 가로 배향으로 있을 때 제공된다. 일부 실시예들에서, 수평 입력 모드는 선택적으로 디바이스가 세로 배향으로 동작될 때와 연관되어 제공된다. 상이한 애플리케이션들에서, 디바이스 배향과 기입 모드 간의 연관은 상이할 수 있다.
수평 입력 모드에서, 사용자는 필기 문자들을 수평 기입 방향(예컨대, 좌측에서 우측으로 진행하는 디폴트 기입 방향 또는 우측에서 좌측으로 진행하는 디폴트 기입 방향을 가짐)으로 제공할 수 있다. 수평 입력 모드에서, 사용자 디바이스는 필기 입력을 수평 기입 방향을 따라 하나 이상의 인식 유닛들로 분할하는 것을 수행한다.
일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 단일 라인 입력만을 허용한다. 일부 실시예들에서, 도 19a에 도시된 바와 같이, 사용자 디바이스는 필기 입력 영역에서 멀티라인 입력(2개 라인들의 입력)을 허용한다. 도 19a에서, 사용자는 필기 입력 영역(806)에서 복수의 필기 획들을 여러 행들로 제공하였다. 사용자가 복수의 필기 획들을 제공한 시퀀스 그리고 복수의 필기 획들의 상대적인 위치들 및 복수의 필기 획들 간의 거리들에 기초하여, 사용자 디바이스는 사용자가 2개 라인들의 문자들을 입력하였음을 판정한다. 필기 입력을 2개의 별도의 라인들로 분할한 후에, 디바이스는 각 라인 내의 인식 유닛(들)을 판정한다.
도 19a에 도시된 바와 같이, 사용자 디바이스는 현재 필기 입력(1902)에서 식별된 각 인식 유닛에 대한 개별 문자를 인식하였고, 다수의 인식 결과들(1904 및 1906)을 생성하였다. 도 19a에 추가로 도시된 바와 같이, 일부 실시예들에서, 인식 유닛들의 특정한 세트(예컨대, 초기 획에 의해 형성된 인식 유닛)에 대한 출력 문자(예컨대, 문자 "I")가 약한 경우, 사용자 디바이스는 선택적으로 충분한 인식 신뢰도를 갖는 출력 문자들만을 나타내는 부분 인식 결과(예컨대, 결과(1906))를 생성한다. 일부 실시예들에서, 사용자는 부분 인식 결과(1906)로부터, 정확한 인식 결과를 생성하기 위해 제1 획이 인식 모델에 대해 개정되거나 또는 개별적으로 삭제 또는 재기입될 수 있음을 알아차릴 수 있다. 이러한 특정한 예에서, 제1 인식 유닛(1904)이 제1 인식 유닛에 대한 원하는 인식 결과를 나타내기 때문에 제1 인식 유닛의 편집은 필요하지 않다.
이러한 예에서, 도 19a 및 도 19b에 도시된 바와 같이, 사용자는 디바이스를 (예컨대, 도 19b에 도시된) 세로 배향으로 회전시켰다. 도 19b에 도시된 바와 같이, 디바이스 배향의 변화에 응답하여, 필기 입력 인터페이스는 수평 입력 모드로부터 수직 입력 모드로 변경된다. 수직 입력 모드에서, 필기 입력 영역(804), 후보 디스플레이 영역(806) 및 텍스트 입력 영역(808)의 레이아웃은 수평 입력 모드에서 나타낸 것과는 상이할 수 있다. 수평 및 수직 입력 모드들의 특정한 레이아웃은 상이한 디바이스 형상들 및 애플리케이션 요구들에 적합하도록 다양할 수 있다. 일부 실시예들에서, 디바이스 배향의 회전 및 입력 모드의 변화에 의하면, 사용자 디바이스는 최상위 결과(예컨대, 결과(1904))를 텍스트 입력(1910)으로서 텍스트 입력 영역(808)으로 자동으로 입력한다. 커서(1912)의 배향 및 위치도 또한 입력 모드 및 기입 방향의 변화를 반영한다.
일부 실시예들에서, 입력 모드의 변화는 선택적으로 사용자가 특정한 입력 모드 선택 어포던스(1908)를 터치함으로써 유발된다. 일부 실시예들에서, 입력 모드 선택 어포던스는, 현재 기입 모드, 현재 기입 방향, 및/또는 현재 단락 방향을 또한 나타내는 그래픽 사용자 인터페이스 요소이다. 일부 실시예들에서, 입력 모드 선택 어포던스는 필기 입력 인터페이스(802)에 의해 제공되는 모든 이용 가능한 입력 모드들 및 기입 방향들에 걸쳐 순환할 수 있다. 도 19a에 도시된 바와 같이, 어포던스(1908)는, 현재 입력 모드가 수평 입력 모드이며, 기입 방향이 좌측에서 우측으로 이고, 단락 방향이 위에서 아래로 임을 나타낸다. 도 19b에서, 어포던스(1908)는, 현재 입력 모드가 수직 입력 모드이며, 기입 방향이 위에서 아래로 이고, 단락 방향이 우측에서 좌측으로 임을 나타낸다. 다양한 실시예들에 따라, 기입 방향 및 단락 방향의 다른 조합들이 가능하다.
도 19c에 도시된 바와 같이, 사용자는 수직 입력 모드에서의 필기 입력 영역(804)에서 복수의 새로운 획들(1914)(예컨대, 2개의 한자들 ""에 대한 필기 획들)을 입력하였다. 필기 입력은 수직 기입 방향으로 기입된다. 사용자 디바이스는 필기 입력을 수직 방향으로 2개의 인식 유닛들로 분할하고, 각각이 수직 방향으로 레이아웃된 2개의 인식된 문자들을 포함하는 2개의 인식 결과들(1916, 1918)을 디스플레이한다.
도 19c 및 도 19d는, 사용자가 디스플레이된 인식 결과(예컨대, 결과(1916))를 선택할 때, 선택된 인식 결과가 텍스트 입력 영역(808)으로 수직 방향으로 입력됨을 도시한다.
도 19e 및 도 19f는, 사용자가 추가적인 라인들의 필기 입력(1920)을 수직 기입 방향으로 입력하였음을 도시한다. 라인들은 전통적인 중국어 기입의 단락 방향에 따라 좌측에서 우측으로 계속된다. 일부 실시예들에서, 후보 디스플레이 영역(806)은 또한 필기 입력 영역에 대한 것과 동일한 기입 방향 및 단락 방향에서 인식 결과들(예컨대, 결과들(1922, 1924))을 나타낸다. 일부 실시예들에서, 사용자 디바이스와 연관된 주 언어, 또는 사용자 디바이스 상에 설치된 소프트 키보드의 언어(예컨대, 아랍어, 중국어, 일본어, 영어 등)에 따라 다른 기입 방향 및 단락 방향이 디폴트로 제공될 수 있다.
도 19e 및 도 19f는 또한, 사용자가 인식 결과(예컨대, 결과(1922))를 선택했을 때, 선택된 인식 결과의 텍스트가 텍스트 입력 영역(808)으로 입력됨을 도시한다. 따라서, 도 19f에 도시된 바와 같이, 텍스트 입력 영역(808)에서의 현재 텍스트 입력은 좌측에서 우측으로의 기입 방향으로 수평 모드에서 기입된 텍스트, 및 하향식 기입 방향으로 수직 모드에서 기입된 텍스트 둘 모두를 포함한다. 수평 텍스트에 대한 단락 방향은 하향식이며, 한편 수직 텍스트에 대한 단락 방향은 우측에서 좌측으로 이다.
일부 실시예들에서, 사용자 디바이스는 사용자가 필기 입력 영역(804), 후보 디스플레이 영역(806) 및 텍스트 입력 영역(808) 각각에 대한 바람직한 기입 방향들, 단락 방향들을 별도로 확립할 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 사용자가, 각 디바이스 배향과 연관되는, 필기 입력 영역(804), 후보 디스플레이 영역(806) 및 텍스트 입력 영역(808) 각각에 대한 바람직한 기입 방향 및 단락 방향을 확립할 수 있게 한다.
도 20a 내지 도 20c는 사용자 인터페이스의 텍스트 입력 방향 및 필기 입력 방향을 변경하기 위한 예시적인 프로세스(2000)의 플로차트들이다. 도 19a 내지 도 19f는 일부 실시예들에 따른 프로세스(2000)를 도시한다.
일부 실시예들에서, 사용자 디바이스는 디바이스의 배향을 결정한다(2002). 디바이스의 배향 및 디바이스 배향의 변화들은 사용자 디바이스 내의 가속도계 및/또는 다른 배향 감지 요소에 의해 검출될 수 있다. 일부 실시예들에서, 사용자 디바이스는 제1 배향으로 있는 디바이스에 따라서 수평 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공한다(2004). 수평 입력 모드에서 입력되는 필기 입력의 개별 라인은 수평 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할된다. 일부 실시예들에서, 디바이스는 제2 배향으로 있는 디바이스에 따라서 수직 입력 모드에서 디바이스 상에 필기 입력 인터페이스를 제공한다(2006). 수직 입력 모드에서 입력되는 필기 입력의 개별 라인은 수직 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할된다.
일부 실시예들에서, 수평 입력 모드에서 동작하는 동안(2008): 디바이스는 제1 배향으로부터 제2 배향으로의 디바이스 배향의 변화를 검출한다(2010). 일부 실시예들에서, 디바이스 배향의 변화에 응답하여, 디바이스는 수평 입력 모드로부터 수직 입력 모드로 전환한다(2012). 이것은, 예를 들어 도 19a 및 도 19b에서 예시되어 있다. 일부 실시예들에서, 수직 입력 모드에서 동작하는 동안(2014): 사용자 디바이스는 제2 배향으로부터 제1 배향으로의 디바이스 배향의 변화를 검출한다(2016). 일부 실시예들에서, 디바이스 배향의 변화에 응답하여, 사용자 디바이스는 수직 입력 모드로부터 수평 입력 모드로 전환한다(2018). 일부 실시예들에서, 디바이스 배향과 입력 모드 간의 연관은 상기 설명된 것의 반대될 수 있다.
일부 실시예들에서, 수평 입력 모드에서 동작하는 동안(2020): 사용자 디바이스는 사용자로부터 제1 다단어 필기 입력을 수신한다(2022). 제1 다단어 필기 입력에 응답하여, 사용자 디바이스는 수평 기입 방향을 따라서 필기 입력 인터페이스의 후보 디스플레이 영역에서 제1 다단어 인식 결과를 제시한다(2024). 이것은, 예를 들어 도 19a에서 예시되어 있다. 일부 실시예들에서, 수직 입력 모드에서 동작하는 동안(2026): 사용자 디바이스는 사용자로부터 제2 다단어 필기 입력을 수신한다(2028). 제2 다단어 필기 입력에 응답하여, 사용자 디바이스는 수직 기입 방향을 따라서 후보 디스플레이 영역에서 제2 다단어 인식 결과를 제시한다(2030). 이것은, 예를 들어 도 19c 및 도 19e에서 예시되어 있다.
일부 실시예들에서, 예컨대, 도 19a 및 도 19b에 도시된 바와 같이, 사용자 디바이스는 제1 다단어 인식 결과를 선택하는 제1 사용자 입력을 수신하는데(2032), 여기서 선택은 입력 방향을 변경하기 위한 입력(예컨대, 디바이스의 회전 또는 어포던스(1908)의 선택)으로 암시적으로 이루어진다. 예컨대, 도 19c 또는 도 19e에 도시된 바와 같이, 사용자 디바이스는 제2 다단어 인식 결과를 선택하는 제2 사용자 입력을 수신한다(2034). 사용자 디바이스는 필기 입력 인터페이스의 텍스트 입력 영역에서 제1 다단어 인식 결과 및 제2 다단어 인식 결과의 개별 텍스트를 동시에 디스플레이하는데(2036), 여기서 제1 다단어 인식 결과의 개별 텍스트는 수평 기입 방향을 따라서 디스플레이되고, 제2 다단어 인식 결과의 개별 텍스트는 수직 기입 방향을 따라서 디스플레이된다. 이것은, 예를 들어 도 19f의 텍스트 입력 영역(808)에서 예시되어 있다.
일부 실시예들에서, 필기 입력 영역은 수평 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 하향식 단락 방향(default top-down paragraph direction)을 갖는다. 일부 실시예들에서, 수평 기입 방향은 좌측에서부터 우측으로 이다. 일부 실시예들에서, 수평 기입 방향은 우측에서부터 좌측으로 이다. 일부 실시예들에서, 필기 입력 영역은 수직 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 좌측에서 우측으로의 단락 방향(default left-to-right paragraph direction)을 갖는다. 일부 실시예들에서, 필기 입력 영역은 수직 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 우측에서 좌측으로의 단락 방향을 갖는다. 일부 실시예들에서, 수직 기입 방향은 위에서부터 아래로 이다. 일부 실시예들에서, 제1 배향은 디폴트로 가로 배향이고, 제2 배향은 디폴트로 세로 배향이다. 일부 실시예들에서, 사용자 디바이스는 디바이스 배향에 상관없이, 수평 입력 모드와 수직 입력 모드 사이에서 수동으로 전환하기 위해 필기 입력 인터페이스에서 개별 어포던스를 제공한다. 일부 실시예들에서, 사용자 디바이스는 2개의 대안적인 기입 방향들 사이에서 수동으로 전환하기 위해 필기 입력 인터페이스에서 개별 어포던스를 제공한다. 일부 실시예들에서, 사용자 디바이스는 2개의 대안적인 단락 방향들 사이에서 수동으로 전환하기 위해 필기 입력 인터페이스에서 개별 어포던스를 제공한다. 일부 실시예들에서, 어포던스는, 하나 이상 연속 호출했을 때, 입력 및 단락 방향들의 각각의 이용 가능한 조합에 걸쳐 순환하는 토글 버튼이다.
일부 실시예들에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(2038). 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함한다. 필기 입력에 응답하여, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 인식 결과들을 디스플레이한다(2040). 하나 이상의 인식 결과들이 후보 디스플레이 영역에서 디스플레이되는 동안, 사용자 디바이스는 현재 필기 입력 모드로부터 대안적인 필기 입력 모드로 전환하기 위한 사용자 입력을 검출한다(2042). 사용자 입력에 응답하여(2044): 사용자 디바이스는 현재 필기 입력 모드로부터 대안적인 필기 입력 모드로 전환한다(2046). 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역으로부터 필기 입력을 클리어한다(2048). 일부 실시예들에서, 사용자 디바이스는 후보 디스플레이 영역에서 디스플레이되는 하나 이상의 인식 결과들 중 최상위 인식 결과를 필기 입력 인터페이스의 텍스트 입력 영역에 자동으로 입력한다(2050). 이것은, 예를 들어 도 19a 및 도 19b에서 예시되어 있는데, 여기서 현재 필기 입력 모드는 수평 입력 모드이며 대안적인 필기 입력 모드는 수직 입력 모드이다. 일부 실시예들에서, 현재 필기 입력 모드는 수직 입력 모드이며 대안적인 필기 입력 모드는 수평 입력 모드이다. 일부 실시예들에서, 현재 필기 입력 모드 및 대안적인 필기 입력 모드는 임의의 2개의 상이한 필기 입력 방향들 또는 단락 방향들이 제공되는 모드들이다. 일부 실시예들에서, 사용자 입력은 현재 배향으로부터 다른 배향으로의 디바이스의 회전이다(2052). 일부 실시예들에서, 사용자 입력은 현재 필기 입력 모드를 대안적인 필기 입력 모드로 수동으로 전환하기 위한 어포던스의 호출이다.
본 명세서에 설명되는 바와 같이, 필기 입력 모듈은 사용자가 필기 획들 및/또는 문자들을 임의의 시간 순서로 입력할 수 있게 한다. 따라서, 다문자 필기 입력에서 개별 필기 문자를 삭제하고, 삭제된 문자와 동일 또는 상이한 필기 문자를 동일한 위치에서 재기입하는 것이 유리한데, 이것은 사용자가 전체 필기 입력을 삭제할 필요 없이 긴 필기 입력을 개정하는 데 도움이 될 것이기 때문이다.
도 20a 내지 도 20h는 필기 입력 영역에서 현재 누적된 복수의 필기 획들에서 식별된 인식 유닛을 시각적으로 강조하고 그리고/또는 삭제하기 위한 예시적인 사용자 인터페이스들을 도시한다. 사용자가 복수의 입력들에서 식별된 다수의 인식 유닛들 중 임의의 하나를 개별적으로 선택하고, 보고, 그리고 삭제할 수 있게 하는 것은, 사용자 디바이스에 의해 다문자 및 심지어 멀티라인 필기 입력이 허용될 때 특히 유용하다. 사용자가 필기 입력들의 시작 또는 중간에서 특정한 인식 유닛을 삭제할 수 있게 하는 것은, 사용자가 바람직하지 않은 인식 유닛 후에 위치된 모든 인식 유닛들을 삭제하도록 요구하지 않고서, 사용자가 긴 입력을 수정할 수 있게 한다.
도 21a 내지 도 21c에 도시된 바와 같이, 사용자는 필기 입력 사용자 인터페이스(802)의 필기 입력 영역(804)에서 복수의 필기 획들(예컨대, 획들(2102, 2104, 2106))을 제공하였다. 사용자가 계속해서 추가적인 획들을 필기 입력 영역(804)으로 제공하는 동안, 사용자 디바이스는 필기 입력 영역에서 현재 누적된 필기 입력으로부터 식별된 인식 유닛들을 업데이트하고, 업데이트된 인식 유닛들로부터 인식된 출력 문자들에 따라 인식 결과들을 개정한다. 도 20c에 도시된 바와 같이, 사용자 디바이스는 현재 필기 입력으로부터 2개의 인식 유닛들을 식별하였고, 각각이 2개의 한자들을 포함하는 3개의 인식 결과들(예컨대, 2108, 2010, 2112)을 제시하였다.
이러한 예에서, 사용자가 2개의 필기 문자들을 기입한 후에, 사용자는 제1 인식 유닛이 틀리게 기입되어 있음을 알아차리고, 그 결과, 사용자 디바이스는 원하는 인식 결과를 후보 디스플레이 영역에서 식별하지 못했고 제시하지 못했다.
일부 실시예들에서, 사용자가 터치 감응 디스플레이 상에서 탭 제스처(예컨대, 동일한 위치에서 접촉에 뒤이은 즉각적인 들어올림)를 제공할 때, 사용자 디바이스는 탭 제스처를 입력으로서 해석하여, 필기 입력 영역에서 현재 식별된 개별 인식 유닛들의 시각적 강조를 야기한다. 일부 실시예들에서, 또 다른 사전결정된 제스처(예컨대, 필기 입력 영역 위에서 여러 손가락 문지름 제스처)가 사용되어, 사용자 디바이스가 필기 입력 영역(804)에서 개별 인식 유닛들을 강조하도록 한다. 탭 제스처는 필기 획으로부터 구별하기가 비교적 쉽기 때문에 때때로 바람직한데, 이는 통상 필기 입력 영역(804) 내에서의 접촉의 이동을 갖고 그리고 더 긴 지속기간의 지속된 접촉을 수반한다. 멀티터치 제스처(multi-touch gesture)는 필기 획으로부터 구별하기가 비교적 쉽기 때문에 때때로 바람직한데, 이는 통상 필기 입력 영역(804) 내에서의 단일 접촉을 수반한다. 일부 실시예들에서, 사용자 디바이스는 사용자에 의해 (예컨대, 접촉(2114)을 통해) 호출될 수 있는 어포던스(2112)를 사용자 인터페이스에서 제공하여, 개별 인식 유닛들이 (예컨대, 박스들(2108, 2110)에 의해 도시된 바와 같이) 시각적으로 강조되도록 한다. 일부 실시예들에서, 어포던스는 그러한 어포던스를 수용하기에 충분한 스크린 공간이 있을 때 바람직하다. 일부 실시예들에서, 어포던스는 사용자에 의해 다수 연속 호출될 수 있는데, 이는 사용자 디바이스가 분할 격자에서의 상이한 분할 체인에 따라 식별된 인식 유닛(들)을 시각적으로 강조하도록 하고 모든 분할 체인들이 나타내어졌을 때 강조가 해제되도록 한다.
도 21d에 도시된 바와 같이, 사용자가 필기 입력 영역(804)에서의 개별 인식 유닛들을 강조하기 위해 필요한 제스처를 제공하였을 때, 사용자 디바이스는 각각의 강조된 인식 유닛 위에서의 개별 삭제 어포던스(예컨대, 작은 삭제 버튼들(2116, 2118))를 추가로 디스플레이한다. 도 21e 및 도 21f는, 사용자가 개별 인식 유닛의 삭제 어포던스(예컨대, 박스(2118) 내의 제1 인식 유닛에 대한 삭제 버튼(2116))를 (예컨대, 접촉(2120)을 통해) 터치할 때, (예컨대, 박스(2118) 내의) 개별 인식 유닛이 필기 입력 영역(804)으로부터 제거되는 것을 도시한다. 이러한 특정한 예에서, 삭제된 인식 유닛은 시간적으로 마지막 입력된 인식 유닛이 아니며, 그것은 기입 방향을 따라 공간적으로 마지막 인식 유닛도 아니다. 다시 말하면, 사용자는 언제 그리고 어디서 인식 유닛이 필기 입력 영역에 제공되었는지에 상관없이 임의의 인식 유닛을 삭제할 수 있다. 도 21f는, 필기 입력 영역에서의 제1 인식 유닛의 삭제에 응답하여, 사용자 디바이스가 후보 디스플레이 영역(806)에서 디스플레이된 인식 결과들을 또한 업데이트하는 것을 도시한다. 도 21f에 도시된 바와 같이, 사용자 디바이스는 또한 삭제된 인식 유닛에 대응하는 후보 문자를 인식 결과들로부터 삭제하였다. 결과적으로, 새로운 인식 결과(2120)가 후보 디스플레이 영역(806)에 나타나 있다.
도 21g 및 도 21h에 도시된 바와 같이, 제1 인식 유닛이 필기 입력 인터페이스(804)로부터 제거된 후에, 사용자는 삭제된 인식 유닛에 의해 이전에 점유되었던 영역에 복수의 새로운 필기 획들(2122)을 제공하였다. 사용자 디바이스는 필기 입력 영역(804)에서 현재 누적된 필기 입력을 재분할하였다. 필기 입력으로부터 식별된 인식 유닛들에 기초하여, 사용자 디바이스는 후보 디스플레이 영역(806)에서 인식 결과들(예컨대, 결과들(2124, 2126))을 다시 생성하였다. 도 21g 및 도 21h는, 사용자가 인식 결과들 중 하나(예컨대, 결과(2124))를 (예컨대, 접촉(2128)을 통해) 선택하고, 선택된 인식 결과의 텍스트가 텍스트 입력 영역(808)으로 입력됨을 도시한다.
도 22a 및 도 22b는, 인식 유닛들이 형성된 시간 순서에 상관없이, 현재 필기 입력에서 식별된 개별 인식 유닛들이 시각적으로 제시되고 개별적으로 삭제될 수 있는 예시적인 프로세스(2200)에 대한 플로차트들이다. 도 21a 내지 도 21h는 일부 실시예들에 따른 프로세스(2200)를 도시한다.
예시적인 프로세스(2200)에서, 사용자 디바이스는 사용자로부터 필기 입력을 수신한다(2202). 필기 입력은 디바이스에 결합된 터치 감응 표면 상에서 제공되는 복수의 필기 획들을 포함한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 필기 입력 영역(예컨대, 필기 입력 영역(804))에서 복수의 필기 획들을 렌더링한다(2204). 일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들을 2개 이상의 인식 유닛들로 분할하는데(2206), 각 인식 유닛은 복수의 필기 획들의 개별 서브세트를 포함한다.
일부 실시예들에서, 사용자 디바이스는 사용자로부터 편집 요청을 수신한다(2208). 일부 실시예들에서, 편집 요청은 필기 입력 인터페이스에서 제공되는 사전결정된 어포던스(예컨대, 도 21d의 어포던스(2112)) 위에서 검출되는 접촉이다(2210). 일부 실시예들에서, 편집 요청은 필기 입력 인터페이스에서의 사전결정된 영역 위에서 검출되는 탭 제스처이다(2212). 일부 실시예들에서, 사전결정된 영역은 필기 입력 인터페이스의 필기 입력 영역 내에 있다. 일부 실시예들에서, 사전결정된 영역은 필기 입력 인터페이스의 필기 입력 영역의 외측에 있다. 일부 실시예들에서, 필기 입력 영역의 외측에서의 또 다른 사전결정된 제스처(예컨대, 크로스 제스처(cross gesture), 수평 스와이프 제스처, 수직 스와이프 제스처, 비스듬한 스와이프 제스처)가 편집 요청으로서 사용될 수 있다. 필기 입력 영역 외측에서의 제스처들은 그것이 필기 입력 영역 외측에서 제공되기 때문에 필기 획으로부터 쉽게 구별될 수 있다.
일부 실시예들에서, 편집 요청에 응답하여, 사용자 디바이스는 필기 입력 영역에서 2개 이상의 인식 유닛들을, 예컨대, 도 21d의 박스들(2108, 2110)을 사용하여, 시각적으로 구별한다(2214). 일부 실시예들에서, 2개 이상의 인식 유닛들을 시각적으로 구별하는 것은 필기 입력 영역에서 2개 이상의 인식 유닛들 사이의 개별 경계들을 강조하는 것을 추가로 포함한다(2216). 다양한 실시예들에서, 현재 필기 입력에서 식별된 인식 유닛들을 시각적으로 구별하는 상이한 방식들이 이용될 수 있다.
일부 실시예들에서, 사용자 디바이스는 필기 입력 영역으로부터 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단을 제공한다(2218). 일부 실시예들에서, 예컨대, 도 21d의 삭제 버튼들(2116, 2118)에 의해 도시된 바와 같이, 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단은 각 인식 유닛에 근접하여 디스플레이되는 개별 삭제 버튼이다. 일부 실시예들에서, 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단은 각 인식 유닛에 대한 사전결정된 삭제 제스처 입력을 검출하기 위한 수단이다. 일부 실시예들에서, 사용자 디바이스는 강조된 인식 유닛들에 대한 개별 삭제 어포던스를 눈에 보이게 디스플레이하지 않는다. 대신에, 일부 실시예들에서, 사용자는 삭제 제스처를 사용하여 삭제 제스처 아래의 개별 인식 유닛을 삭제하는 것이 허용된다. 일부 실시예들에서, 사용자 디바이스가 시각적으로 강조된 방식으로 인식 유닛들을 디스플레이하고 있기 때문에, 사용자 디바이스는 필기 입력 영역에서 추가적인 필기 획들을 허용하지 않는다. 대신에, 시각적으로 강조된 인식 유닛 위에서 검출되는 사전결정된 제스처 또는 임의의 제스처는 사용자 디바이스가 필기 입력 영역으로부터 인식 유닛을 제거하도록 할 것이고, 그에 따라 후보 디스플레이 영역에서 디스플레이된 인식 결과들을 개정하도록 할 것이다. 일부 실시예들에서, 탭 제스처는 사용자 디바이스가 필기 인식 영역에서 식별되는 개별 인식 유닛들을 시각적으로 강조하도록 하고, 이어서 사용자는 삭제 버튼을 사용하여 개별 인식 유닛들을 역기입 방향으로 하나씩 삭제할 수 있다.
일부 실시예들에서, 예컨대, 도 21e에 도시된 바와 같이, 사용자 디바이스는 사용자로부터 그리고 제공된 수단을 통하여, 필기 입력 영역으로부터 2개 이상의 인식 유닛들 중 제1 인식 유닛을 개별적으로 삭제하기 위한 삭제 입력을 수신한다(2224). 예컨대, 도 21f에 도시된 바와 같이, 사용자 디바이스는, 삭제 입력에 응답하여, 필기 입력 영역으로부터 제1 인식 유닛에서의 필기 획들의 개별 서브세트를 제거한다(2226). 일부 실시예들에서, 제1 인식 유닛은 2개 이상의 인식 유닛들 중에서 공간적으로 초기 인식 유닛이다. 일부 실시예들에서, 예컨대, 도 21e 및 도 21f에 도시된 바와 같이, 제1 인식 유닛은 2개 이상의 인식 유닛들 중에서 공간적으로 중간 인식 유닛이다. 일부 실시예들에서, 제1 인식 유닛은 2개 이상의 인식 유닛들 중에서 공간적으로 최후 인식 유닛이다.
일부 실시예들에서, 사용자 디바이스는 복수의 필기 획들로부터 분할 격자를 생성하는데(2228), 분할 격자는 복수의 필기 획들로부터 식별되는 인식 유닛들의 개별 세트를 각각 표시하는 복수의 대안적인 분할 체인들을 포함한다. 예를 들어, 도 21g는 인식 결과들(2024, 2026)을 도시하는데, 여기서 인식 결과(2024)는 2개의 인식 유닛들을 갖는 하나의 분할 체인으로부터 생성되고, 인식 결과(2026)는 3개의 인식 유닛들을 갖는 다른 분할 체인으로부터 생성된다. 일부 실시예들에서, 사용자 디바이스는 사용자로부터 2개 이상의 연속 편집 요청들을 수신한다(2230). 예를 들어, 2개 이상의 연속 편집 요청은 도 21g의 어포던스(2112) 상에서의 여러 번의 연속 탭들일 수 있다. 일부 실시예들에서, 2개 이상의 연속 편집 요청들 각각에 응답하여, 사용자 디바이스는 필기 입력 영역에서 인식 유닛들의 개별 세트를 복수의 대안적인 분할 체인들 중 다른 분할 체인으로부터 시각적으로 구별한다(2232). 예를 들어, 제1 탭 제스처에 응답하여, 필기 입력 영역(804)에서 (예컨대, 각각 문자들 "帽" 및 "子"에 대한) 2개의 인식 유닛들이 강조되고, 제2 탭 제스처에 응답하여, (예컨대, 각각 문자들 "巾", "冒", 및 "子"에 대한) 3개의 인식 유닛들이 강조된다. 일부 실시예들에서, 제3 탭 제스처에 응답하여, 모든 인식 유닛들로부터 시각적 강조가 선택적으로 제거되고, 필기 입력 영역이 정상 상태로 되돌아와서 추가적인 획들을 허용할 준비를 한다. 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 현재 표시되는 인식 유닛들의 개별 세트 각각을 개별적으로 삭제하기 위한 수단을 제공한다(2234). 일부 실시예들에서, 이 수단은 각각의 강조된 인식 유닛에 대한 개별 삭제 버튼이다. 일부 실시예들에서, 이 수단은 각각의 강조된 인식 유닛 위에서의 사전결정된 삭제 제스처를 검출하고 그리고 사전결정된 삭제 제스처 하에서 강조된 인식 유닛을 삭제하는 기능을 호출하기 위한 수단이다.
본 명세서에 설명되는 바와 같이, 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 연속 입력 모드를 제공한다. 필기 입력 영역의 영역이 휴대용 사용자 디바이스 상에서 제한되기 때문에, 사용자에 의해 제공된 필기 입력들을 저장(cache)하는 방식을 제공하고 사용자가 이전에 제공된 필기 입력들을 커밋하지 않고 스크린 공간을 재사용할 수 있게 하는 것이 때때로 바람직하다. 일부 실시예들에서, 사용자 디바이스는 스크롤링 필기 입력 영역을 제공하는데, 여기서 사용자가 필기 입력 영역의 최후에 충분히 가까워지면 입력 영역은 점차적으로 소정량 (예컨대, 한 번에 하나의 인식 유닛) 만큼 시프트한다. 일부 실시예들에서, 필기 입력 영역에서의 기존의 인식 유닛들을 시프트하는 것이 사용자의 기입 프로세스를 방해하고 어쩌면 인식 유닛들의 정확한 분할을 방해할 수 있기 때문에, 인식 유닛들을 동적으로 시프트하지 않고 입력 영역의 이전에 사용된 구역을 재활용하는 것이 때때로 유리하다. 일부 실시예들에서, 사용자가 텍스트 입력 영역으로 아직 입력되지 않은 필기 입력에 의해 점유되는 영역을 재사용할 때, 필기 입력 영역에 대한 최상위 인식 결과가 텍스트 입력 영역으로 자동으로 입력되어서, 사용자가 최상위 인식 결과를 명시적으로 선택하지 않고서 계속해서 새로운 필기 입력을 제공할 수 있게 한다.
일부 종래의 시스템들에서, 사용자는 필기 입력 영역에 여전히 나타나 있는 기존의 필기 입력 위에 기입하는 것이 허용된다. 그러한 시스템들에서는, 새로운 획이 이전 인식 유닛의 부분인지 또는 새로운 인식 유닛의 부분인지 여부를 판정하기 위해 시간 정보가 사용된다. 그러한 시간 정보 의존적인 시스템들은 사용자가 필기 입력을 제공하는 속도 및 템포에 대한 엄격한 요건들을 두는데, 이는 수많은 사용자들에 의해 충족되기 어렵다. 추가적으로, 그 필기 입력의 시각적 렌더링은 사용자가 해독하기 어려운 혼란 상태가 될 수 있다. 따라서, 그 기입 프로세스는 사용자에게 불만스럽고 혼란스러울 수 있어, 불쾌한 사용자 경험이 된다.
본 명세서에 설명되는 바와 같이, 사용자가 이전에 기입된 인식 유닛에 의해 점유되는 영역을 재사용하고 필기 입력 영역에서 계속해서 기입할 수 있을 때를 지시하기 위해 페이딩 프로세스가 사용된다. 일부 실시예들에서, 페이딩 프로세스는 임계량의 시간 동안 필기 입력 영역에서 제공된 각 인식 유닛의 시인성을 점차적으로 감소시켜서, 새로운 획들이 그 위에 기입될 때, 기존의 텍스트가 새로운 획들과 시각적으로 경쟁하지 않게 한다. 일부 실시예들에서, 페이딩된 인식 유닛 위에 기입하는 것은, 사용자가 기입을 중지하고 최상위 인식 결과에 대한 선택 입력을 명시적으로 제공하도록 요구하지 않고서, 자동으로 인식 유닛에 대한 최상위 인식 결과가 텍스트 입력 영역으로 입력되도록 한다. 최상위 인식 결과의 이러한 암시적 및 자동 확인은 필기 입력 인터페이스의 효율적 입력 및 속도를 개선시키고, 현재 텍스트 구성의 생각 흐름을 유지하기 위해 사용자에게 주어지는 인지적 부담을 감소시킨다. 일부 실시예들에서, 페이딩된 인식 유닛 위에 기입하는 것은 최상위 검색 결과의 자동 선택을 야기하지 않는다. 그 대신에, 페이딩된 인식 유닛들이 필기 입력 스택에 저장되고, 현재 필기 입력으로서 새로운 필기 입력과 조합된다. 사용자는 선택을 행하기 전에 필기 입력 스택에 누적된 모든 인식 유닛들에 기초하여 생성된 인식 결과들을 볼 수 있다.
도 23a 내지 도 23j는, 예컨대 사전결정된 시간량 후에 필기 입력 영역의 상이한 구역에 제공된 인식 유닛들이 그들의 개별 구역들로부터 점차적으로 페이드아웃되고, 특정한 구역에서 페이드아웃이 발생한 후에 사용자가 그 구역에서 새로운 필기 획들을 제공하는 것이 허용되는 예시적인 사용자 인터페이스들 및 프로세스들을 도시한다.
도 23a에 도시된 바와 같이, 사용자는 필기 입력 영역(804)에서 복수의 필기 획들(2302)(예컨대, 대문자 "I"에 대한 3개의 필기 획들)을 제공하였다. 필기 획들(2302)은 사용자 디바이스에 의해 인식 유닛으로서 식별된다. 일부 실시예들에서, 필기 입력 영역(804)에 현재 나타낸 필기 입력은 사용자 디바이스의 필기 입력 스택에서의 제1 층에 저장된다. 식별된 인식 유닛에 기초하여 생성된 다수의 인식 결과들이 후보 디스플레이 영역(804)에서 제공된다.
도 23b는, 사용자가 계속해서 획들(2304)의 오른쪽에 하나 이상의 획들(2302)을 기입할 때, 제1 인식 유닛에서의 필기 획들(2302)이 필기 입력 영역(804)에서 점차적으로 페이드아웃하기 시작하는 것을 도시한다. 일부 실시예들에서, 제1 인식 유닛의 시각적 렌더링의 점차적 페이딩 또는 소멸을 모방하는 애니메이션이 디스플레이된다. 예를 들어, 애니메이션은 화이트보드로부터 증발하는 잉크의 시각적 효과를 생성할 수 있다. 일부 실시예들에서, 인식 유닛의 페이딩은 전체 인식 유닛에 걸쳐서 균일하지 않다. 일부 실시예들에서, 인식 유닛의 페이딩은 시간 경과에 따라 증가하고, 결국 인식 유닛은 필기 영역에서 전혀 보이게 않게 된다. 그러나, 인식 유닛이 필기 입력 영역(804)에서 더 이상 보이지 않더라도, 일부 실시예들에서, 보이지 않는 인식 유닛이 필기 입력 스택의 상단에 남아 있고, 그 인식 유닛으로부터 생성된 인식 결과들이 후보 디스플레이 영역에서 계속해서 디스플레이된다. 일부 실시예들에서, 페이딩된 인식 유닛은 새로운 필기 입력이 그 위에 기입될 때까지 시야에서 완전히 제거되지는 않는다.
일부 실시예들에서, 사용자 디바이스는 페이딩 애니메이션의 시작 시에 즉각적으로 페이딩된 인식 유닛에 의해 점유되는 구역 위에 새로운 필기 입력이 제공될 수 있게 한다. 일부 실시예들에서, 사용자 디바이스는 페이딩이 소정 단계로 (예컨대, 전혀 짐작이 가지 않는 레벨로 또는 인식이 그 구역에서 전혀 보이지 않을 때까지) 진행한 후에만 페이딩된 인식 유닛에 의해 점유되는 구역 위에 새로운 필기 입력이 제공될 수 있게 한다.
도 23c는 제1 인식 유닛(즉, 획들(2302))이 그의 페이딩 프로세스를 완료한 (예컨대, 잉크 색이 매우 약한 레벨에서 안정화되었거나 또는 보이지 않게 된) 것을 도시한다. 사용자 디바이스는 사용자에 의해 제공된 추가적인 필기 획들로부터 추가적인 인식 유닛들(예컨대, 필기 문자들 "a" 및 "m"에 대한 인식 유닛들)을 식별하였고, 후보 디스플레이 영역(806)에서 제시되는 인식 결과들을 업데이트하였다.
도 22d 내지 도 22f는, 시간이 지남에 따라, 사용자가 필기 입력 영역(804)에서 복수의 추가 필기 획들(예컨대, 2304, 2306)을 제공한 것을 도시한다. 동시에, 이전에 식별된 인식 유닛들이 점차적으로 필기 입력 영역(804)으로부터 페이딩되어 없어진다. 일부 실시예들에서, 인식 유닛이 식별된 후에 각 인식 유닛에 대해 그 자신의 페이딩 프로세스를 시작하는 것은 사전결정된 시간량이 걸린다. 일부 실시예들에서, 각 인식 유닛에 대한 페이딩 프로세스는 사용자가 그에 후속하여 제2 인식 유닛을 입력하기 시작할 때까지 시작하지 않는다. 도 23b 내지 도 23f에 도시된 바와 같이, 필기 입력이 초서체로 제공될 때, 단일 획(예컨대, 획(2304) 또는 획(2306))이 필기 입력 영역에서 다수의 인식 유닛들(예컨대, 단어 "am" 또는 "back"에서의 각 필기 문자에 대한 인식 유닛)에 걸쳐서 이어질 수 있다.
도 22g는, 인식 유닛이 그의 페이딩 프로세스를 시작한 후에도, 사용자가 삭제 버튼(2310) 상에서의 (예컨대, 접촉(2308)에 뒤이은 즉각적인 들어올림에 의해 지시되는 바와 같이) 사전결정된 회복 입력, 예컨대, 탭 제스처에 의해 그것을 페이딩되지 않은 상태로 다시 되돌릴 수 있는 것을 도시한다. 인식 유닛들이 회복될 때, 그의 외관은 정상 시인성 레벨로 되돌아온다. 일부 실시예들에서, 페이딩된 인식 유닛들의 회복은 필기 입력 영역(804)에서 역기입 방향으로 문자 단위로 이루어진다. 일부 실시예들에서, 페이딩된 인식 유닛들의 회복은 필기 입력 영역(804)에서 단어 단위로 이루어진다. 도 23g에 도시된 바와 같이, 단어 "back"에 대응하는 인식 유닛들이 완전 페이딩된 상태로부터 전혀 페이딩되지 않은 상태로 회복되었다. 일부 실시예들에서, 페이딩 프로세스를 시작하기 위한 클록은 인식 유닛이 페이딩되지 않은 상태로 회복될 때 인식 유닛마다 재설정된다.
도 22h는, 삭제 버튼 상에서의 지속된 접촉이 디폴트 기입 방향에서의 마지막 인식 유닛(예컨대, 단어 "back"에서의 문자 "k"에 대한 인식 유닛)이 필기 입력 영역(804)으로부터 삭제되도록 하는 것을 도시한다. 삭제 입력이 계속해서 유지됨에 따라, 더 많은 인식 유닛들(예컨대, 단어 "back"에서의 문자들 "c", "a", "b"에 대한 인식 유닛들)이 역기입 방향에서 하나씩 삭제된다. 일부 실시예들에서, 인식 유닛의 삭제는 단어 단위이고, 필기 입력 영역(804)으로부터 삭제되는 필기 단어 "back"의 모든 문자들이 동시에 제거된다. 도 22h는 또한, 필기 단어 "back"에서의 문자 "b"에 대한 인식 유닛의 삭제 후에 접촉(2308)이 삭제 버튼(2310) 상에 유지됨에 따라, 이전에 페이딩된 인식 유닛 "m"이 역시 회복되는 것을 도시한다.
도 23i는, 필기 단어 "am"에서의 회복된 인식 유닛 "m"의 삭제가 발생하기 전에 삭제 입력이 중단되면, 회복된 인식 유닛이 점차적으로 또 다시 페이딩되는 것을 도시한다. 일부 실시예들에서, 각 인식 유닛의 상태(예컨대, 하나 이상의 페이딩된 상태들 및 페이딩되지 않은 상태의 세트로부터 선택된 상태)가 필기 입력 스택에서 유지되고 업데이트된다.
도 23j는, 사용자가 필기 입력 영역에서의 페이딩된 인식 유닛(예컨대, 문자 "I"에 대한 인식 유닛)에 의해 점유되는 영역 위에 하나 이상의 획들(2312)을 제공했을 때, 일부 실시예들에서, 도 23i 및 도 23j에 도시된 바와 같이, 획들(2312) 이전에 이루어진 필기 입력에 대한 최상위 인식 결과(예컨대, 결과(2314))의 텍스트가 텍스트 입력 영역(808)으로 자동으로 입력되는 것을 도시한다. 도 23j에 도시된 바와 같이, 텍스트 "I am"은 더 이상 잠정적인 것으로 나타나 있지 않고 그 대신에 텍스트 입력 영역(808)에서 커밋되었다. 일부 실시예들에서, 일단 완전 또는 부분 페이딩된 필기 입력에 대해 텍스트 입력이 이루어지면, 필기 입력이 필기 입력 스택으로부터 제거된다. 새롭게 입력된 획들(예컨대, 획들(2312))이 필기 입력 스택에서 현재 입력으로 된다.
도 23j에 도시된 바와 같이, 텍스트 "I am"은 더 이상 잠정적인 것으로 나타나 있지 않고 그 대신에 텍스트 입력 영역(808)에서 커밋되었다. 일부 실시예들에서, 일단 완전 또는 부분 페이딩된 필기 입력에 대해 텍스트 입력이 이루어지면, 필기 입력이 필기 입력 스택으로부터 제거된다. 새롭게 입력된 획들(예컨대, 획들(2312))이 필기 입력 스택에서 현재 입력으로 된다.
일부 실시예들에서, 필기 입력 영역에서의 페이딩된 인식 유닛(예컨대, 문자 "I"에 대한 인식 유닛)에 의해 점유되는 영역 위에 획들(2312)이 제공될 때, 획들(2312) 이전에 이루어진 필기 입력에 대한 최상위 인식 결과(예컨대, 결과(2314))의 텍스트는 텍스트 입력 영역(808)으로 자동으로 입력되지 않는다. 그 대신에, 필기 입력 영역(804)에서의 현재 필기 입력(페이딩된 것과 페이딩되지 않은 것 둘 모두)이 클리어되고, 필기 입력 스택에 저장된다. 새로운 획들(2312)은 필기 입력 스택에서의 저장된 필기 입력에 추가된다. 사용자 디바이스는 필기 입력 스택에서 현재 누적된 필기 입력 전체에 기초하여 인식 결과들을 판정한다. 인식 결과들은 후보 디스플레이 영역에 디스플레이된다. 다시 말하면, 현재 누적된 필기 입력의 일부분만이 필기 입력 영역(804)에 나타나 있더라도, 인식 결과들은 필기 입력 스택에 저장된 전체 필기 입력(보이는 부분과 더 이상 보이지 않는 부분들 둘 모두)에 기초하여 생성된다.
도 23k는, 사용자가 시간 경과에 따라 페이딩된 더 많은 획들(2316)을 필기 입력 영역(804)에서 입력한 것을 도시한다. 도 23l은, 페이딩된 획들(2312, 2316) 위에 기입된 새로운 획(2318)이, 페이딩된 획들(2312, 2316)에 대한 최상위 인식 결과(2320)의 텍스트가 텍스트 입력 영역(808)으로 입력되도록 한 것을 도시한다.
일부 실시예들에서, 사용자는 선택적으로 필기 입력을 다수의 라인들로 제공한다. 일부 실시예들에서, 멀티라인 입력이 가능할 때, 새로운 필기 입력을 위해 필기 입력 영역을 클리어하도록 동일한 페이딩 프로세스가 사용될 수 있다.
도 24a 및 도 24b는 필기 입력 인터페이스의 필기 입력 영역에서 페이딩 프로세스를 제공하기 위한 예시적인 프로세스(2400)의 플로차트들이다. 도 23a 내지 도 23k는 일부 실시예들에 따른 프로세스(2400)를 도시한다.
일부 실시예들에서, 디바이스는 사용자로부터 제1 필기 입력을 수신한다(2402). 제1 필기 입력은 복수의 필기 획들을 포함하고, 복수의 필기 획들은 필기 입력 인터페이스의 필기 입력 영역과 연관된 개별 기입 방향을 따라 분포되는 다수의 인식 유닛들을 형성한다. 일부 실시예들에서, 사용자 디바이스는 필기 획이 사용자에 의해 제공됨에 따라 필기 입력 영역에서 복수의 필기 획들 각각을 렌더링한다(2404).
일부 실시예들에서, 사용자 디바이스는 인식 유닛이 완전히 렌더링된 후에 다수의 인식 유닛들 각각에 대한 개별 페이딩 프로세스를 시작한다(2406). 일부 실시예들에서, 개별 페이딩 프로세스 동안, 제1 필기 입력에서의 인식 유닛의 렌더링이 페이딩되어 없어진다. 이것은 일부 실시예들에 따라 도 23a 내지 도 23f에서 예시되어 있다.
일부 실시예들에서, 예컨대, 도 23i 및 도 23j 그리고 도 23k 및 도 23l에 도시된 바와 같이, 사용자 디바이스는 필기 입력 영역 중에서 다수의 인식 유닛의 페이딩된 인식 유닛에 의해 점유되는 구역 위에서 사용자로부터 제2 필기 입력을 수신한다(2408). 일부 실시예들에서, 제2 필기 입력을 수신하는 것에 응답하여(2410): 사용자 디바이스는 필기 입력 영역에서 제2 필기 입력을 렌더링하고(2412), 필기 입력 영역으로부터 모든 페이딩된 인식 유닛들을 클리어한다(2414). 일부 실시예들에서, 인식 유닛이 그의 페이딩 프로세스를 시작하였는지의 여부에 상관없이, 제2 필기 입력 이전에 필기 입력 영역에서 입력된 모든 인식 유닛들이 필기 입력 영역으로부터 클리어된다. 이것은, 예를 들어 도 23i 및 도 23j 그리고 도 23k 및 도 23l에서 예시되어 있다.
일부 실시예들에서, 사용자 디바이스는 제1 필기 입력에 대한 하나 이상의 인식 결과들을 생성한다(2416). 일부 실시예들에서, 사용자 디바이스는 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 인식 결과들을 디스플레이한다(2418). 일부 실시예들에서, 제2 필기 입력을 수신하는 것에 응답하여, 사용자 디바이스는 사용자 선택 없이, 자동으로, 후보 디스플레이 영역에서 디스플레이되는 최상위 인식 결과를 필기 입력 인터페이스의 텍스트 입력 영역에 입력한다(2420). 이것은, 예를 들어 도 23i 및 도 23j 그리고 도 23k 및 도 23l에서 예시되어 있다.
일부 실시예들에서, 사용자 디바이스는 제1 필기 입력 및 제2 필기 입력을 포함하는 입력 스택을 저장한다(2422). 일부 실시예들에서, 사용자 디바이스는 연속된(a concatenation of) 제1 필기 입력 및 제2 필기 입력으로부터 인식되는 문자들의 개별 공간 시퀀스를 각각 포함하는 하나 이상의 다문자 인식 결과들을 생성한다(2424). 일부 실시예들에서, 사용자 디바이스는 필기 입력 영역에서 제2 필기 입력의 렌더링이 제1 필기 입력의 렌더링을 대신하는 동안, 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 다문자 인식 결과들을 디스플레이한다(2426).
일부 실시예들에서, 각 인식 유닛에 대한 개별 페이딩 프로세스는 인식 유닛이 사용자에 의해 완성된 후 사전결정된 기간이 경과하였을 때 시작된다.
일부 실시예들에서, 각 인식 유닛에 대한 페이딩 프로세스는 사용자가 인식 유닛 후의 다음 인식 유닛에 대한 획들을 입력하기 시작하였을 때 시작된다.
일부 실시예들에서, 각 인식 유닛에 대한 개별 페이딩 프로세스의 최후 상태는 인식 유닛에 대한 사전결정된 최소 시인성(predetermined minimum visibility)을 갖는 상태이다.
일부 실시예들에서, 각 인식 유닛에 대한 개별 페이딩 프로세스의 최후 상태는 인식 유닛에 대한 제로 시인성(zero visibility)을 갖는 상태이다.
일부 실시예들에서, 제1 필기 입력에서의 마지막 인식 유닛이 페이딩된 후에, 사용자 디바이스는 사용자로부터 사전결정된 회복 입력을 수신한다(2428). 사전결정된 회복 입력을 수신하는 것에 응답하여, 사용자 디바이스는 마지막 인식 유닛을 페이딩된 상태로부터 페이딩되지 않은 상태로 복귀시킨다(2430). 이것은, 예를 들어 도 23f 내지 도 23h에서 예시되어 있다. 일부 실시예들에서, 사전결정된 회복 입력은 필기 입력 인터페이스에서 제공되는 삭제 버튼 상에서 검출되는 초기 접촉이다. 일부 실시예들에서, 삭제 버튼 상에서 검출되는 지속된 접촉은 필기 입력 영역으로부터 마지막 인식 유닛을 삭제하고, 마지막에서 두 번째의 인식 유닛을 페이딩된 상태로부터 페이딩되지 않은 상태로 회복시킨다. 이것은, 예를 들어 도 23g 및 도 23h에서 예시되어 있다.
본 명세서에 설명되는 바와 같이, 멀티스크립트 필기 인식 모델은 필기 문자들의 획 순서 독립적이며 획 방향 독립적인 인식을 수행한다. 일부 실시예들에서, 인식 모델은 필기 인식 모델의 어휘에서의 상이한 문자들에 대응하는 기입 샘플들의 플랫 이미지들에 포함되는 공간-유도 특징부들에 대해서만 훈련된다. 기입 샘플의 이미지들이 이미지들에 포함되는 개별 획들에 관련된 임의의 시간 정보를 포함하지 않기 때문에, 결과적인 인식 모델은 획 순서 독립적이며 획 방향 독립적이다.
상기 예시된 바와 같이, 획 순서 및 획 방향 독립적인 필기 인식은 문자들의 시간적 생성에 관련된 정보(예컨대, 문자들에서의 획들의 시간적 시퀀스들)에 의존하는 종래의 인식 시스템들에 비해 많은 이점들을 제공한다. 그러나, 실시간 필기 인식 시나리오들에서, 개별 획들에 관련된 시간 정보가 이용 가능하고, 이 정보를 이용하여 필기 인식 시스템의 인식 정확도를 개선시키는 것은 때때로 유익하다. 하기 내용은 시간-유도 획-분포 정보를 필기 인식 모델의 공간 특징부 추출로 통합하는 기법을 설명하는데, 여기서 시간-유도 획-분포 정보의 사용은 필기 인식 시스템의 획 순서 및/또는 획 방향 독립성을 손상시키지 않는다. 상이한 문자들에 관련된 획-분포 정보에 기초하여, 독특하게 상이한 세트의 획들로 생성되는 유사해 보이는 문자들 간의 명확화가 가능해진다.
일부 실시예들에서, 필기 입력이 필기 인식 모델(예컨대, CNN)에 대한 입력 이미지(예컨대, 입력 비트맵 이미지)로 변환될 때, 개별 획들과 연관된 시간 정보가 분실된다. 예를 들어, 한자 ""의 경우, 문자를 기입하기 위해 8개의 획들(예컨대, 도 27의 라벨링된 #1 내지 #8)이 사용될 수 있다. 문자에 대한 획들의 시퀀스 및 방향은 문자와 연관된 몇몇 고유한 특징부들을 제공한다. 인식 시스템의 획 순서 및 획 방향 독립성을 손상시키지 않고서 획 순서 및 획 방향 정보를 캡처하는 순진한 방식은, 훈련 샘플들에서 획 순서 및 획 방향의 모든 가능한 치환들을 명시적으로 열거하는 것이다. 그러나 오직 적당한 복잡성의 문자에 대해서도, 이것은 10억 초과의 가능성에 이를 것이고, 이는 불가능하지는 않지만 실제로 구현하는 것이 어렵다. 본 명세서에 설명되는 바와 같이, 각 기입 샘플에 대해 획-분포 프로파일이 생성되는데, 이는 획 생성의 연대순 양태들(즉, 시간 정보) 외에서 추출한다. 기입 샘플들의 획-분포 프로파일들은, 후속하여 공간-유도 특징부들과 조합되는 시간-유도 특징부들의 세트를 (예컨대, 입력 비트맵 이미지들로부터) 추출하도록 훈련되어, 필기 인식 시스템의 획 순서 및 획 방향 독립성에 영향을 주지 않고 인식 정확도를 개선시킨다.
본 명세서에 설명되는 바와 같이, 문자와 연관된 시간 정보는 각 필기 획을 특징화하기 위해 다양한 픽셀 분포들을 산출함으로써 추출된다. 문자의 매 필기 획은 주어진 방향 상으로 투영될 때 결정론적 패턴(또는 프로파일)을 일으킨다. 이러한 패턴 자체는 획을 분명하게 인식하기에 불충분할 수 있지만, 다른 유사한 패턴들과 조합될 때, 그것은 이러한 특정한 획에 고유한 소정 특성들을 캡처하기 위해 적절할 수 있다. 이러한 종류의 획 표현을 공간 특징부 추출(예컨대, CNN에서의 입력 이미지들에 기초한 특징부 추출)과 함께 통합하는 것은 결국, 필기 인식 모델의 레퍼토리에서의 유사해 보이는 문자들 사이에서 명확화하기 위해 유용할 수 있는 직교 정보(orthogonal information)를 제공한다.
도 25a 및 도 25b는 필기 인식 모델의 훈련 동안 필기 샘플들의 시간-유도 특징부들 및 공간-유도 특징부들을 통합하기 위한 예시적인 프로세스(2500)의 플로차트들이며, 여기서 결과적인 인식 모델은 획 순서 및 획 방향 독립적으로 유지된다. 일부 실시예들에서, 예시적인 프로세스(2500)는, 훈련된 인식 모델을 사용자 디바이스(예컨대, 휴대용 디바이스(100))로 제공하는 서버 디바이스 상에서 수행된다. 일부 실시예들에서, 서버 디바이스는 하나 이상의 프로세서들, 및 하나 이상의 프로세서들에 의해 실행될 때 프로세스(2500)를 수행하기 위한 명령어들을 포함하는 메모리를 포함한다.
예시적인 프로세스(2500)에서, 디바이스는, 필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부들의 세트를 별도로 훈련시키는데(2502), 여기서 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며, 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징짓는다.
일부 실시예들에서, 공간-유도 특징부들의 세트를 별도로 훈련시키는 것은 입력 층, 출력 층, 그리고 첫 번째 콘볼루션 층, 마지막 콘볼루션 층, 첫 번째 콘볼루션 층과 마지막 콘볼루션 층 사이의 0개 이상의 중간 콘볼루션 층들, 및 마지막 콘볼루션 층과 출력 층 사이의 은닉 층을 포함하는 복수의 콘볼루션 층들을 갖는 콘볼루션 뉴럴 네트워크를 훈련시키는 것을 추가로 포함한다(2504). 예시적인 콘볼루션 네트워크(2602)가 도 26에 도시된다. 예시적인 콘볼루션 네트워크(2602)는 도 6에 도시된 콘볼루션 네트워크(602)와 실질적으로 동일한 방식으로 구현될 수 있다. 콘볼루션 네트워크(2602)는 입력 층(2606), 출력 층(2608), 첫 번째 콘볼루션 층(2610a), 0개 이상의 중간 콘볼루션 층들 및 마지막 콘볼루션 층(2610n)을 포함하는 복수의 콘볼루션 층들, 및 마지막 콘볼루션 층과 출력 층(2608) 사이의 은닉 층(2614)을 포함한다. 콘볼루션 네트워크(2602)는 또한 도 6에 도시된 배열에 따른 커널 층들(2616) 및 서브-샘플링 층들(2612)을 포함한다. 콘볼루션 네트워크의 훈련은 훈련 코퍼스(2604)에서의 기입 샘플들의 이미지들(2616)에 기초한다. 훈련 코퍼스에서의 훈련 샘플들에 대한 인식 오류들을 최소화함으로써 공간-유도 특징부들이 획득되고 상이한 특징부들과 연관된 개별 가중치들이 결정된다. 한번 훈련된 동일한 특징부들 및 가중치들이, 훈련 코퍼스에 존재하지 않는 새로운 필기 샘플들의 인식을 위해 사용된다.
일부 실시예들에서, 시간-유도 특징부들의 세트를 별도로 훈련시키는 것은 복수의 획-분포 프로파일들을 통계적 모델로 제공하여, 출력 문자 세트의 개별 문자들을 구분하기 위해 복수의 시간-유도 파라미터들 및 복수의 시간-유도 파라미터들에 대한 개별 가중치들을 결정하는 것을 추가로 포함한다(2506). 일부 실시예들에서, 도 26에 도시된 바와 같이, 훈련 코퍼스(2622)에서의 각 기입 샘플로부터 획-분포 프로파일(2620)이 유도된다. 훈련 코퍼스(2622)는 선택적으로 코퍼스(2604)와 동일한 기입 샘플들을 포함하지만, 또한 각 기입 샘플에서의 획 생성과 연관된 시간 정보도 포함한다. 획-분포 프로파일들(2622)은 통계적 모델링 프로세스(2624)로 제공되는데, 통계적 모델링 프로세스 동안 통계적 모델링 방법(예컨대, CNN, K-최근접 이웃(K-Nearest Neighbor) 등)에 기초하여 인식 또는 구분 오류를 최소화함으로써 시간-유도 특징부들이 추출되고 상이한 특징부들에 대한 개별 가중치들이 결정된다. 도 26에 도시된 바와 같이, 시간 유도 특징부들의 세트 및 개별 가중치들이 특징 벡터들(예컨대, 특징 벡터들(2626) 또는 특징 벡터들(2628))의 세트로 변환되고, 콘볼루션 뉴럴 네트워크(2602)에서의 개별 층으로 주입된다. 따라서, 결과적인 네트워크는, 서로 직교하며 문자들의 인식에 함께 기여하는 공간-유도 파라미터들 및 시간-유도 파라미터들을 포함한다.
일부 실시예들에서, 디바이스는 필기 인식 모델에서의 공간-유도 특징부들의 세트와 시간-유도 특징부들의 세트를 조합한다(2508). 일부 실시예들에서, 필기 인식 모델에서의 공간-유도 특징부들의 세트와 시간-유도 특징부들의 세트를 조합하는 것은, 복수의 공간-유도 파라미터들 및 복수의 시간-유도 파라미터들을 콘볼루션 뉴럴 네트워크의 콘볼루션 층들 중 하나의 콘볼루션 층 또는 은닉 층에 주입하는 것을 포함한다(2510). 일부 실시예들에서, 복수의 시간-유도 파라미터들 및 복수의 시간-유도 파라미터들에 대한 개별 가중치들은 필기 인식을 위해 콘볼루션 뉴럴 네트워크의 마지막 콘볼루션 층(예컨대, 도 26의 마지막 콘볼루션 층(2610n))에 주입된다. 일부 실시예들에서, 복수의 시간-유도 파라미터들 및 복수의 시간-유도 파라미터들에 대한 개별 가중치들은 필기 인식을 위해 콘볼루션 뉴럴 네트워크의 은닉 층(예컨대, 도 26의 은닉 층(2614))에 주입된다.
일부 실시예들에서, 디바이스는 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공한다(2512).
일부 실시예들에서, 디바이스는 복수의 기입 샘플들로부터 획-분포 프로파일들의 코퍼스를 생성한다(2514). 일부 실시예들에서, 복수의 필기 샘플들 각각은 출력 문자 세트에서의 문자에 대응하고, 기입되었을 때 필기 샘플의 각 구성 획에 대한 개별 공간 정보를 별도로 보존한다(2516). 일부 실시예들에서, 획-분포 프로파일들의 코퍼스를 생성하기 위해, 디바이스는 하기 단계들을 수행한다(2518):
복수의 필기 샘플들 각각에 대해(2520): 디바이스는 필기 샘플에서의 구성 획들을 식별하고(2522); 필기 샘플의 식별된 획들 각각에 대해, 디바이스는 복수의 사전결정된 방향들 각각을 따라 개별 점유율을 계산하는데(2524), 점유율은 각 획 방향의 투영 스팬과 기입 샘플의 최대 투영 스팬 간의 비이고; 필기 샘플의 식별된 획들 각각에 대해, 디바이스는 또한 각 획 내의 픽셀들의 개별 개수와 기입 샘플 내의 픽셀들의 전체 개수 간의 비에 기초하여 각 획에 대한 개별 포화비를 계산한다(2526). 그 후에, 사용자 디바이스는, 기입 샘플의 획-분포 프로파일로서 필기 샘플에 대한 특징 벡터를 생성하는데(2528), 특징 벡터는 필기 샘플에서의 적어도 N개의 획들의 개별 점유율들 및 개별 포화비를 포함하고, N은 사전결정된 자연수이다. 일부 실시예들에서, N은 복수의 기입 샘플들 내의 임의의 단일 기입 샘플에서 관찰되는 최대 획수 미만이다.
일부 실시예들에서, 복수의 필기 샘플들 각각에 대해: 디바이스는 사전결정된 방향들 각각에서 식별된 획들의 개별 점유율들을 내림차순으로 정렬하고; 기입 샘플의 N개의 최상위 점유율들 및 포화비들만을 기입 샘플의 특징 벡터에 포함시킨다.
일부 실시예들에서, 복수의 사전결정된 방향들은 기입 샘플의 수평 방향, 수직 방향, 양의 45도 방향, 및 음의 45도 방향을 포함한다.
일부 실시예들에서, 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하기 위해, 디바이스는 사용자의 필기 입력을 수신하고; 사용자의 필기 입력을 수신하는 것에 응답하여, 필기 입력의 수신과 사실상 동시에 사용자에게 필기 인식 출력을 제공한다.
도 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에 도시되어 있다.
일부 실시예들에서, 일단 상기 스팬들이 모든 획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.
일부 실시예들에서, 각 방향에서의 모든 획들의 점유율들은 별도로 내림차순으로 정렬되고, 그리하여 입력 이미지에서의 모든 획들의 개별 순위가 각 투영 방향에 대해 그 방향에서의 그들의 점유율들의 관점에서 획득된다. 각 투영 방향에서의 획들의 순위는 관련 투영 방향을 따른 각 획의 상대적 중요도를 반영한다. 이러한 상대적 중요도는 획이 기입 샘플에서 생성된 순서 및 방향에 상관없다. 따라서, 점유율들에 기초한 이러한 순위는 획 순서 및 획 방향 독립적인 시간-유도 정보이다.
일부 실시예들에서, 각 획에, 전체 문자에 대한 그 획의 중요도를 나타내는 상대적 가중치가 주어진다. 일부 실시예들에서, 가중치는, 각 획에서의 픽셀들의 개수 대 문자에서의 픽셀들의 전체 개수의 비에 의해 측정된다. 이러한 비는 각 획과 연관된 포화비라고 지칭된다.
일부 실시예들에서, 각 획의 포화비 및 점유율들에 기초하여, 각 획에 대해 특징 벡터가 생성될 수 있다. 각 문자에 대해, 5S개의 특징부들을 포함하는 특징 벡터들의 세트가 생성된다. 이러한 특징부들의 세트는 문자의 획-분포 프로파일이라고 지칭된다.
일부 실시예들에서, 각 문자의 획-분포 프로파일을 구성할 때 사전결정된 개수의 최상위 획들만이 사용된다. 일부 실시예들에서, 획들의 사전결정된 개수는 10이다. 최상위 10개의 획들에 기초하여, 50개의 획-유도 특징부들이 각 문자에 대해 생성될 수 있다. 일부 실시예들에서, 콘볼루션 뉴럴 네트워크의 마지막 콘볼루션 층에, 또는 후속 은닉 층에 이러한 특징부들이 주입된다.
일부 실시예들에서, 실시간 인식 동안, 공간-유도 특징부들 및 시간-유도 특징부들 둘 모두로 훈련된 필기 인식 모드로 인식 유닛의 입력 이미지가 제공된다. 입력 이미지는 도 26에 도시된 필기 인식 모델의 각 층을 통하여 프로세싱된다. 입력 이미지의 프로세싱이 획-분포 프로파일 입력이 필요한 층(예컨대, 마지막 콘볼루션 층 또는 은닉 층)에 도달할 때, 인식 유닛의 획-분포 프로파일이 그 층으로 주입된다. 입력 이미지 및 획-분포 프로파일의 프로세싱은 출력 구분(예컨대, 하나 이상의 후보 문자들)이 출력 층(2608)에서 제공될 때까지 계속된다. 일부 실시예들에서, 모든 인식 유닛들의 획-분포 프로파일들이 산출되고, 인식 유닛들의 입력 이미지들과 함께, 입력으로서 필기 인식 모델로 제공된다. 일부 실시예들에서, 인식 유닛의 입력 이미지는 처음에 (시간-훈련된 특징부들의 혜택 없이) 필기 인식 모델을 경험한다. 2개 이상의 유사해 보이는 후보 문자들이 가까운 인식 신뢰도 값들로 식별될 때, 인식 유닛의 획-분포 프로파일들이 시간-유도 특징부들로 훈련된 층(예컨대, 마지막 콘볼루션 층 또는 은닉 층)에서 필기 인식 모델로 주입된다. 인식 유닛의 입력 이미지 및 획-분포 프로파일이 필기 인식 모델의 마지막 층들을 통과할 때, 2개 이상의 유사해 보이는 후보 문자들이 그들의 획-분포 프로파일들에서의 차이들로 인해 더 양호하게 구분될 수 있다. 따라서, 필기 인식 시스템의 획 순서 및 획 방향 독립성을 훼손시키지 않고서, 인식 정확도를 개선시키기 위해, 인식 유닛이 개별 필기 획들에 의해 형성되는 방식에 관련된 시간-유도 정보가 사용된다.
전술한 설명은 설명의 목적을 위해, 특정 실시예들을 참조하여 기술되었다. 그러나, 상기의 예시적인 논의들은 본 발명을 망라하거나 개시된 정확한 형태들로 제한하려는 의도는 아니다. 많은 수정들 및 변형들이 상기 교시 내용들의 관점에서 가능하다. 실시예들은 본 발명의 원리들 및 그의 실제 응용들을 가장 잘 설명하기 위해 선택 및 설명되었고, 그에 의해 당업자가 본 발명 및 다양한 변형들을 갖는 다양한 실시예들을 고려되는 특정 용례에 적합한 것으로 가장 잘 활용하도록 할 수 있다.
Claims (162)
- 멀티스크립트 필기 인식(multi-script handwriting recognition)을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
멀티스크립트 훈련 코퍼스(multi-script training corpus)의 공간-유도 특징부(spatially-derived feature)들에 기초하여 멀티스크립트 필기 인식 모델을 훈련시키는 단계 - 상기 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 및
상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들에 대해 훈련된 상기 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계를 포함하는, 방법. - 제1항에 있어서, 상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들은 획 순서 독립적이며 획 방향 독립적인, 방법.
- 제1항에 있어서, 상기 멀티스크립트 필기 인식 모델의 훈련은 상기 필기 샘플들에서의 개별 획들과 연관된 시간 정보에 관계없는, 방법.
- 제1항에 있어서, 상기 적어도 3개의 비중첩 스크립트들은 한자(Chinese character)들, 이모지 캐릭터(emoji character)들 및 라틴어 스크립트(Latin script)를 포함하는, 방법.
- 제1항에 있어서, 상기 적어도 3개의 비중첩 스크립트들은 한자들, 아랍어 스크립트(Arabic script) 및 라틴어 스크립트를 포함하는, 방법.
- 제1항에 있어서, 상기 적어도 3개의 비중첩 스크립트들은 유니코드 표준에 의해 정의되는 비중첩 스크립트들을 포함하는, 방법.
- 제1항에 있어서, 상기 멀티스크립트 필기 인식 모델을 훈련시키는 단계는,
상기 멀티스크립트 훈련 코퍼스의 상기 필기 샘플들을 단일 입력 플레인(single input plane) 및 단일 출력 플레인(single output plane)을 갖는 단일 콘볼루션 뉴럴 네트워크(single convolutional neural network)로 제공하는 단계; 및
상기 콘볼루션 뉴럴 네트워크를 사용하여, 상기 멀티스크립트 훈련 코퍼스에서 표시되는 상기 적어도 3개의 비중첩 스크립트들의 문자들을 구분하기 위해 상기 필기 샘플들의 공간-유도 특징부들 및 상기 공간-유도 특징부들에 대한 개별 가중치들을 결정하는 단계를 추가로 포함하는, 방법. - 제1항에 있어서, 상기 멀티스크립트 필기 인식 모델은 상기 적어도 3개의 비중첩 스크립트들에 걸치는 적어도 30,000개의 문자들을 표시하는 적어도 30,000개의 출력 클래스(output class)들을 갖는, 방법.
- 제1항에 있어서, 상기 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계는,
상기 멀티스크립트 필기 인식 모델을 사용자 디바이스로 제공하는 단계를 추가로 포함하고,
상기 사용자 디바이스는 상기 사용자로부터 복수의 필기 획들을 수신하고, 수신된 멀티스크립트 필기 인식 모델에 기초하여 상기 복수의 필기 획들로부터 식별되는 하나 이상의 인식 유닛들 상에서 필기 인식을 국부적으로 수행하는, 방법. - 제1항에 있어서, 상기 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계는,
상기 사용자에 의한 필기 입력의 계속된 추가 또는 개정에 응답하여 상기 사용자의 필기 입력에 대한 하나 이상의 인식 결과들을 연속적으로 개정하는 단계; 및
상기 하나 이상의 인식 결과들의 각 개정에 응답하여, 필기 입력 사용자 인터페이스의 후보 디스플레이 영역에서 상기 사용자에게 개별 개정된 하나 이상의 인식 결과들을 디스플레이하는 단계를 추가로 포함하는, 방법. - 제1항에 있어서,
상기 멀티스크립트 필기 인식 모델을 입력 언어들이 중첩되지 않는 복수의 디바이스들로 제공하는 단계를 추가로 포함하고,
상기 멀티스크립트 필기 인식 모델은 상기 복수의 디바이스들의 각각 상에서 상기 각 사용자 디바이스와 연관되는 상이한 입력 언어의 필기 인식을 위해 사용되는, 방법. - 제1항 내지 제11항의 특징부들의 임의의 조합을 포함하는, 방법.
- 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 기초하여 멀티스크립트 필기 인식 모델을 훈련시키는 동작 - 상기 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 및
상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들에 대해 훈련된 상기 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 동작을 포함하는, 비일시적인 컴퓨터 판독가능 매체. - 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제1항 내지 제11항 중 어느 한 항의 방법을 수행하게 하는, 비일시적인 컴퓨터 판독가능 매체. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 기초하여 멀티스크립트 필기 인식 모델을 훈련시키는 동작 - 상기 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -; 및
상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들에 대해 훈련된 상기 멀티스크립트 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 동작을 포함하는, 시스템. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제1항 내지 제11항 중 어느 한 항의 방법을 수행하게 하는, 시스템. - 멀티스크립트 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 사용자 디바이스에서,
멀티스크립트 필기 인식 모델을 수신하는 단계 - 상기 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련되었고, 상기 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -;
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 상기 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함함 -; 및
상기 필기 입력을 수신하는 동작에 응답하여, 상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들에 대해 훈련된 상기 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 상기 사용자에게 실시간으로 제공하는 단계를 포함하는, 방법. - 제17항에 있어서, 상기 실시간 필기 인식 결과들을 상기 사용자에게 제공하는 단계는,
상기 사용자의 필기 입력을 하나 이상의 인식 유닛들로 분할하는 단계 - 각 인식 유닛은 상기 사용자에 의해 제공된 상기 필기 획들 중 하나 이상을 포함함 -;
상기 멀티스크립트 필기 인식 모델에 대한 입력으로서 상기 하나 이상의 인식 유닛들 각각의 개별 이미지를 제공하는 단계; 및
상기 하나 이상의 인식 유닛들 중 적어도 하나의 인식 유닛에 대해, 상기 멀티스크립트 필기 인식 모델로부터, 제1 스크립트로부터의 적어도 제1 출력 문자, 및 상기 제1 스크립트와는 상이한 제2 스크립트로부터의 적어도 제2 출력 문자를 획득하는 단계를 추가로 포함하는, 방법. - 제18항에 있어서, 상기 실시간 필기 인식 결과들을 상기 사용자에게 제공하는 단계는,
상기 사용자 디바이스의 필기 입력 사용자 인터페이스의 후보 디스플레이 영역에서 상기 제1 출력 문자 및 상기 제2 출력 문자 둘 모두를 디스플레이하는 단계를 추가로 포함하는, 방법. - 제18항에 있어서, 상기 실시간 필기 인식 결과들을 상기 사용자에게 제공하는 단계는,
상기 제1 스크립트 또는 상기 제2 스크립트 중 어느 스크립트가 상기 사용자 디바이스 상에 현재 설치된 소프트 키보드에서 사용되는 개별 스크립트인지에 기초하여 상기 제1 출력 문자 및 상기 제2 출력 문자 중 하나의 출력 문자를 선택적으로 디스플레이하는 단계를 추가로 포함하는, 방법. - 제17항에 있어서, 상기 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계는,
상기 사용자에 의한 필기 입력의 계속된 추가 또는 개정에 응답하여 상기 사용자의 필기 입력에 대한 하나 이상의 인식 결과들을 연속적으로 개정하는 단계; 및
상기 하나 이상의 인식 결과들의 각 개정에 응답하여, 필기 입력 사용자 인터페이스의 후보 디스플레이 영역에서 상기 사용자에게 개별 개정된 하나 이상의 인식 결과들을 디스플레이하는 단계를 추가로 포함하는, 방법. - 제17항에 있어서, 상기 적어도 3개의 비중첩 스크립트들은 한자들, 이모지 캐릭터들 및 라틴어 스크립트를 포함하는, 방법.
- 제17항에 있어서, 상기 적어도 3개의 비중첩 스크립트들은 한자들, 아랍어 스크립트 및 라틴어 스크립트를 포함하는, 방법.
- 제17항에 있어서, 상기 멀티스크립트 필기 인식 모델은 단일 입력 플레인 및 단일 출력 플레인을 갖는 단일 콘볼루션 뉴럴 네트워크이고, 상기 멀티스크립트 훈련 코퍼스에서 표시되는 상기 적어도 3개의 비중첩 스크립트들의 문자들을 구분하기 위해 공간-유도 특징부들 및 상기 공간-유도 특징부들에 대한 개별 가중치들을 포함하는, 방법.
- 제17항에 있어서, 상기 멀티스크립트 필기 인식 모델은 적어도 3개의 비중첩 스크립트들에 걸치는 적어도 30,000개의 문자들을 표시하는 적어도 30,000개의 출력 클래스들을 갖는, 방법.
- 제17항에 있어서, 상기 멀티스크립트 필기 인식 모델은 상기 필기 입력에서 식별되는 하나 이상의 인식 유닛들의 개별 입력 이미지들에 기초하여 문자들을 인식하도록 구성되고, 인식을 위해 사용되는 개별 공간-유도 특징부들은 상기 필기 입력에서의 개별 획 순서, 획 방향, 및 획들의 연속성에 관계없는, 방법.
- 제17항 내지 제26항의 특징부들의 임의의 조합을 포함하는, 방법.
- 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
멀티스크립트 필기 인식 모델을 수신하는 동작 - 상기 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련되었고, 상기 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -;
사용자로부터 필기 입력을 수신하는 동작 - 상기 필기 입력은 상기 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함함 -; 및
상기 필기 입력을 수신하는 동작에 응답하여, 상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들에 대해 훈련된 상기 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 상기 사용자에게 실시간으로 제공하는 동작을 포함하는, 비일시적인 컴퓨터 판독가능 매체. - 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제17항 내지 제26항 중 어느 한 항의 방법을 수행하게 하는, 비일시적인 컴퓨터 판독가능 매체. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
멀티스크립트 필기 인식 모델을 수신하는 동작 - 상기 멀티스크립트 인식 모델은 멀티스크립트 훈련 코퍼스의 공간-유도 특징부들에 대해 훈련되었고, 상기 멀티스크립트 훈련 코퍼스는 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 개별 필기 샘플들을 포함함 -;
사용자로부터 필기 입력을 수신하는 동작 - 상기 필기 입력은 상기 사용자 디바이스에 결합된 터치 감응 표면 상에서 제공되는 하나 이상의 필기 획들을 포함함 -; 및
상기 필기 입력을 수신하는 동작에 응답하여, 상기 멀티스크립트 훈련 코퍼스의 상기 공간-유도 특징부들에 대해 훈련된 상기 멀티스크립트 필기 인식 모델에 기초한 하나 이상의 필기 인식 결과들을 상기 사용자에게 실시간으로 제공하는 동작을 포함하는, 시스템. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제17항 내지 제 26항 중 어느 한 항의 방법을 수행하게 하는, 시스템. - 실시간 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
사용자로부터 복수의 필기 획들을 수신하는 단계 - 상기 복수의 필기 획들은 필기 문자에 대응함 -;
상기 복수의 필기 획들에 기초하여 입력 이미지를 생성하는 단계;
상기 입력 이미지를 필기 인식 모델로 제공하여 상기 필기 문자의 실시간 인식을 수행하는 단계 - 상기 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공함 -; 및
상기 복수의 필기 획들을 수신하는 것에 실시간으로, 상기 복수의 필기 획들이 상기 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자를 디스플레이하는 단계를 포함하는, 방법. - 제32항에 있어서, 상기 필기 인식 모델은 획 방향 독립적인 필기 인식을 제공하고, 상기 동일한 제1 출력 문자를 디스플레이하는 단계는,
상기 복수의 필기 획들을 수신하는 것에 응답하여, 상기 복수의 필기 획들 각각이 상기 사용자에 의해 제공된 개별 획 방향에 상관없이 상기 동일한 제1 출력 문자를 디스플레이하는 단계를 추가로 포함하는, 방법. - 제32항에 있어서, 상기 필기 인식 모델은 획수 독립적인 필기 인식을 제공하고, 상기 동일한 제1 출력 문자를 디스플레이하는 단계는,
상기 복수의 필기 획들을 수신하는 것에 응답하여, 상기 입력 이미지에서의 연속 획을 형성하기 위해 얼마나 많은 필기 획들이 사용되는지에 상관없이 상기 동일한 제1 출력 문자를 디스플레이하는 단계를 추가로 포함하는, 방법. - 제32항에 있어서, 상기 필기 문자 내의 개별 획들과 연관된 시간 정보에 관계없이 획 순서 독립적인 필기 인식이 수행되는, 방법.
- 제32항에 있어서,
상기 사용자로부터 제2 복수의 필기 획들을 수신하는 단계 - 상기 제2 복수의 필기 획들은 제2 필기 문자에 대응함 -;
상기 제2 복수의 필기 획들에 기초하여 제2 입력 이미지를 생성하는 단계;
상기 제2 입력 이미지를 상기 필기 인식 모델로 제공하여 상기 제2 필기 문자의 실시간 인식을 수행하는 단계; 및
상기 제2 복수의 필기 획들을 수신하는 것에 실시간으로, 상기 제2 복수의 필기 획들에 대응하는 제2 출력 문자를 디스플레이하는 단계를 추가로 포함하고,
상기 제1 출력 문자 및 상기 제2 출력 문자는 상기 제1 복수의 필기 입력들 및 상기 제2 복수의 필기 입력들이 상기 사용자에 의해 제공된 개별 순서에 관계없이 공간 시퀀스에서 동시에 디스플레이되는, 방법. - 제36항에 있어서, 상기 제1 출력 문자 및 상기 제2 출력 문자의 상기 공간 시퀀스는 상기 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향을 따른 상기 제1 복수의 필기 획들 및 상기 제2 복수의 획들의 공간 분포에 대응하는, 방법.
- 제36항에 있어서, 상기 제1 필기 문자는 제1 필기 문장의 부분으로서 상기 사용자에 의해 제공되고, 상기 제2 필기 문자는 제2 필기 문장의 부분으로서 상기 사용자에 의해 제공되고, 상기 제1 필기 문장 및 상기 제2 필기 문장은 상기 사용자 디바이스의 필기 입력 영역에서 동시에 디스플레이되는, 방법.
- 제36항에 있어서, 상기 제2 복수의 필기 획들은 시간적으로 상기 제1 복수의 필기 획들 후에 수신되고, 상기 제2 출력 문자는 상기 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향을 따른 공간 시퀀스에서 상기 제1 출력 문자보다 앞서는, 방법.
- 제36항에 있어서, 상기 제2 복수의 필기 획들은 상기 사용자 디바이스의 필기 입력 인터페이스의 디폴트 기입 방향을 따라 상기 제1 복수의 필기 획들을 공간적으로 뒤따르고, 상기 제2 출력 문자는 상기 디폴트 기입 방향을 따른 공간 시퀀스에서 상기 제1 출력 문자를 뒤따르고, 상기 방법은,
상기 필기 문자를 개정하기 위해 상기 사용자로부터 제3 필기 획을 수신하는 단계 - 상기 제3 필기 획은 시간적으로 상기 제1 복수의 필기 획들 및 상기 제2 복수의 필기 획들 후에 수신됨 -;
상기 제3 필기 획을 수신하는 것에 응답하여, 상기 제1 복수의 필기 획들에 대한 상기 제3 필기 획의 상대적인 근접성에 기초하여 상기 제1 복수의 필기 획들과 동일한 인식 유닛에 상기 제3 필기 획을 배정하는 단계;
상기 제1 복수의 필기 획들 및 상기 제3 필기 획에 기초하여 개정된 입력 이미지를 생성하는 단계;
상기 개정된 입력 이미지를 상기 필기 인식 모델로 제공하여 개정된 필기 문자의 실시간 인식을 수행하는 단계; 및
제3 필기 입력을 수신하는 것에 응답하여, 상기 개정된 입력 이미지에 대응하는 제3 출력 문자를 디스플레이하는 단계 - 상기 제3 출력 문자는 상기 제1 출력 문자를 대신하고 상기 디폴트 기입 방향을 따른 공간 시퀀스에서 상기 제2 출력 문자와 동시에 디스플레이됨 - 를 추가로 포함하는, 방법. - 제40항에 있어서,
상기 제3 출력 문자 및 상기 제2 출력 문자가 상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 인식 결과로서 동시에 디스플레이되는 동안, 상기 사용자로부터 삭제 입력(deletion input)을 수신하는 단계; 및
상기 삭제 입력에 응답하여, 상기 인식 결과에서 상기 제3 출력 문자를 유지하면서, 상기 인식 결과로부터 상기 제2 출력 문자를 삭제하는 단계를 추가로 포함하는, 방법. - 제41항에 있어서,
상기 필기 획 각각이 상기 사용자에 의해 제공됨에 따라 상기 필기 입력 인터페이스의 필기 입력 영역에서 상기 제1 복수의 필기 획들, 상기 제2 복수의 필기 획들, 및 상기 제3 필기 획을 실시간으로 렌더링하는 단계; 및
상기 삭제 입력을 수신하는 것에 응답하여, 상기 필기 입력 영역에서 상기 제1 복수의 필기 획들 및 상기 제3 필기 획의 개별 렌더링들을 유지하면서, 상기 필기 입력 영역으로부터 상기 제2 복수의 필기 획들의 개별 렌더링을 삭제하는 단계를 추가로 포함하는, 방법. - 제32항에 있어서, 상기 필기 문자는 다획 한자인, 방법.
- 제32항에 있어서, 상기 제1 복수의 필기 획들은 초서체로 제공되는, 방법.
- 제32항에 있어서, 상기 제1 복수의 필기 획들은 초서체로 제공되고, 상기 필기 문자는 다획 한자인, 방법.
- 제40항에 있어서,
필기 문자 입력을 위한 허용 가능한 치수들의 세트에 대해 개별 사전결정된 제약들을 확립하는 단계; 및
상기 개별 사전결정된 제약들에 기초하여 현재 누적된 복수의 필기 획들을 복수의 인식 유닛들로 분할하는 단계를 추가로 포함하고,
상기 인식 유닛들 각각으로부터 상기 필기 인식 모델로 제공되는 개별 입력 이미지가 생성되고, 대응하는 출력 문자로서 인식되는, 방법. - 제46항에 있어서,
상기 현재 누적된 복수의 필기 획들을 상기 복수의 인식 유닛들로 분할한 후에 상기 사용자로부터 추가적인 필기 획을 수신하는 단계; 및
상기 복수의 인식 유닛들에 대한 상기 추가적인 필기 획의 공간 위치에 기초하여 상기 복수의 인식 유닛들의 개별 인식 유닛에 상기 추가적인 필기 획을 배정하는 단계를 추가로 포함하는, 방법. - 제32항 내지 제47항의 특징부들의 임의의 조합을 포함하는, 방법.
- 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
사용자로부터 복수의 필기 획들을 수신하는 동작 - 상기 복수의 필기 획들은 필기 문자에 대응함 -;
상기 복수의 필기 획들에 기초하여 입력 이미지를 생성하는 동작;
상기 입력 이미지를 필기 인식 모델로 제공하여 상기 필기 문자의 실시간 인식을 수행하는 동작 - 상기 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공함 -; 및
상기 복수의 필기 획들을 수신하는 것에 실시간으로, 상기 복수의 필기 획들이 상기 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자를 디스플레이하는 동작을 포함하는, 비일시적인 컴퓨터 판독가능 매체. - 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제32항 내지 제47항 중 어느 한 항의 방법을 수행하게 하는, 비일시적인 컴퓨터 판독가능 매체. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
사용자로부터 복수의 필기 획들을 수신하는 동작 - 상기 복수의 필기 획들은 필기 문자에 대응함 -;
상기 복수의 필기 획들에 기초하여 입력 이미지를 생성하는 동작;
상기 입력 이미지를 필기 인식 모델로 제공하여 상기 필기 문자의 실시간 인식을 수행하는 동작 - 상기 필기 인식 모델은 획 순서에 독립적인 필기 인식을 제공함 -; 및
상기 복수의 필기 획들을 수신하는 것에 실시간으로, 상기 복수의 필기 획들이 상기 사용자로부터 수신된 개별 순서에 상관없이 동일한 제1 출력 문자를 디스플레이하는 동작을 포함하는, 시스템. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제32항 내지 제47항 중 어느 한 항의 방법을 수행하게 하는, 시스템. - 실시간 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 하나 이상의 필기 획들을 포함함 -;
필기 인식 모델에 기초하여, 상기 필기 입력에 대한 복수의 출력 문자들을 식별하는 단계;
사전결정된 분류 기준에 기초하여 상기 복수의 출력 문자들을 2개 이상의 카테고리들로 나누는 단계;
상기 필기 입력 인터페이스의 후보 디스플레이 영역의 초기 시야(initial view)에서, 상기 2개 이상의 카테고리들 중 제1 카테고리 내의 개별 출력 문자들을 디스플레이하는 단계 - 상기 후보 디스플레이 영역의 상기 초기 시야는 상기 후보 디스플레이 영역의 확장 시야(extended view)를 호출하기 위한 어포던스(affordance)를 동시에 구비함 -;
상기 확장 시야를 호출하기 위한 상기 어포던스를 선택하는 사용자 입력을 수신하는 단계; 및
상기 사용자 입력에 응답하여, 상기 후보 디스플레이 영역의 상기 확장 시야에서, 상기 2개 이상의 카테고리들 중 상기 제1 카테고리 내의 개별 출력 문자들 및 상기 후보 디스플레이 영역의 상기 초기 시야에서 사전에 디스플레이되지 않은 적어도 제2 카테고리 내의 개별 출력 문자들을 디스플레이하는 단계를 포함하는, 방법. - 제53항에 있어서, 상기 사전결정된 분류 기준은 개별 문자가 상용 문자인지 또는 희귀 문자인지를 결정하는, 방법.
- 제53항에 있어서, 상기 제1 카테고리 내의 개별 문자들은 상용 문자들의 사전에서 발견되는 문자들이고, 상기 제2 카테고리 내의 개별 문자들은 희귀 문자들의 사전에서 발견되는 문자들인, 방법.
- 제55항에 있어서, 상기 상용 문자들의 사전 및 상기 희귀 문자들의 사전은 상기 디바이스와 연관된 사용 이력에 기초하여 동적으로 조정되는, 방법.
- 제53항에 있어서,
상기 복수의 출력 문자들로부터, 사전결정된 유사성 기준에 따라 시각적으로 서로 유사한 문자들의 그룹을 식별하는 단계;
시각적으로 유사한 문자들의 상기 그룹으로부터 사전결정된 선택 기준에 기초하여 대표 문자를 선택하는 단계; 및
상기 후보 디스플레이 영역의 상기 초기 시야에서 시각적으로 유사한 문자들의 상기 그룹에서의 다른 문자들 대신에 상기 대표 문자를 디스플레이하는 단계를 추가로 포함하는, 방법. - 제57항에 있어서,
상기 사용자로부터, 상기 후보 디스플레이 영역의 상기 초기 시야에서 디스플레이되는 상기 대표 문자로 안내되는 사전결정된 팽창 입력(predetermined expansion input)을 수신하는 단계; 및
상기 사전결정된 팽창 입력의 수신에 응답하여, 시각적으로 유사한 문자들의 상기 그룹에서의 상기 대표 문자의 확대 시야(magnified view) 및 하나 이상의 다른 문자들의 개별 확대 시야들을 동시에 디스플레이하는 단계를 추가로 포함하는, 방법. - 제58항에 있어서, 상기 사전결정된 팽창 입력은 상기 후보 디스플레이 영역에서 디스플레이되는 상기 대표 문자 위에서 검출되는 팽창 제스처(expand gesture)를 포함하는, 방법.
- 제58항에 있어서, 상기 사전결정된 팽창 입력은 상기 후보 디스플레이 영역에서 디스플레이되는 상기 대표 문자 위에서 검출되고 사전결정된 임계 시간보다 더 길게 지속되는 접촉을 포함하는, 방법.
- 제57항에 있어서, 상기 사전결정된 선택 기준은 상기 그룹에서의 문자들의 상대적인 사용 빈도에 기초하는, 방법.
- 제57항에 있어서, 상기 사전결정된 선택 기준은 상기 디바이스와 연관된 선호 입력 언어에 기초하는, 방법.
- 제53항 내지 제62항의 특징부들의 임의의 조합을 포함하는, 방법.
- 실시간 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -;
필기 인식 모델에 기초하여, 상기 필기 입력으로부터 복수의 출력 문자들을 인식하는 단계 - 상기 출력 문자들은 자연 인간 언어의 스크립트로부터의 적어도 제1 이모지 캐릭터 및 적어도 제1 문자를 포함함 -; 및
상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 상기 자연 인간 언어의 상기 스크립트로부터의 상기 제1 이모지 캐릭터 및 상기 제1 문자를 포함하는 인식 결과를 디스플레이하는 단계를 포함하는, 방법. - 제64항에 있어서,
상기 필기 인식 모델에 기초하여, 상기 필기 입력으로부터 적어도 제1 의미적 단위(first semantic unit)를 인식하는 단계 - 상기 제1 의미적 단위는 개별 인간 언어에서의 개별 의미적 뜻(semantic meaning)을 전달할 수 있는 개별 문자, 단어 또는 어구를 포함함 -;
상기 필기 입력으로부터 인식되는 상기 제1 의미적 단위와 연관된 제2 이모지 캐릭터를 식별하는 단계; 및
상기 필기 입력 인터페이스의 상기 후보 디스플레이 영역에서, 상기 제1 의미적 단위로부터 식별되는 적어도 상기 제2 이모지 캐릭터를 포함하는 제2 인식 결과를 디스플레이하는 단계를 추가로 포함하는, 방법. - 제65항에 있어서, 상기 제2 인식 결과를 디스플레이하는 단계는,
상기 제2 인식 결과를 적어도 상기 제1 의미적 단위를 포함하는 제3 인식 결과와 동시에 디스플레이하는 단계를 추가로 포함하는, 방법. - 제64항에 있어서,
상기 후보 디스플레이 영역에서 디스플레이되는 상기 제1 인식 결과를 선택하는 사용자 입력을 수신하는 단계; 및
상기 사용자 입력에 응답하여, 상기 필기 입력 인터페이스의 텍스트 입력 영역에서 선택된 제1 인식 결과의 텍스트를 입력하는 단계를 추가로 포함하고,
상기 텍스트는 적어도 상기 자연 인간 언어의 상기 스크립트로부터의 상기 제1 이모지 캐릭터 및 상기 제1 문자를 포함하는, 방법. - 제64항에 있어서, 상기 필기 인식 모델은 적어도 3개의 비중첩 스크립트들의 문자들에 대응하는 기입 샘플들을 포함하는 멀티스크립트 훈련 코퍼스에 대해 훈련되었고, 상기 3개의 비중첩 스크립트들은 이모지 캐릭터들, 한자들, 및 라틴어 스크립트의 세트를 포함하는, 방법.
- 제64항에 있어서,
상기 필기 입력으로부터 인식되는 상기 제1 이모지 캐릭터에 대응하는 제2 의미적 단위를 식별하는 단계; 및
상기 필기 입력 인터페이스의 상기 후보 디스플레이 영역에서, 상기 제1 이모지 캐릭터로부터 식별되는 적어도 상기 제2 의미적 단위를 포함하는 제4 인식 결과를 디스플레이하는 단계를 추가로 포함하는, 방법. - 제69항에 있어서, 상기 제4 인식 결과를 디스플레이하는 단계는,
상기 후보 디스플레이 영역에서 상기 제4 인식 결과를 상기 제1 인식 결과와 동시에 디스플레이하는 단계를 추가로 포함하는, 방법. - 제64항 내지 제70항의 특징부들의 임의의 조합을 포함하는, 방법.
- 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 상기 디바이스에 결합된 터치 감응 표면에서 제공되는 복수의 필기 획들을 포함함 -;
필기 입력 인터페이스의 필기 입력 영역에서 상기 복수의 필기 획들을 실시간으로 렌더링하는 단계;
상기 복수의 필기 획들에 대한 핀치 제스처 입력(pinch gesture input) 및 팽창 제스처 입력(expand gesture input) 중 하나를 수신하는 단계;
핀치 제스처 입력을 수신할 시에, 상기 복수의 필기 획들을 단일 인식 유닛으로서 처리함으로써 상기 복수의 필기 획들에 기초하여 제1 인식 결과를 생성하는 단계;
팽창 제스처 입력을 수신할 시에, 상기 복수의 필기 획들을 상기 팽창 제스처 입력에 의해 떼어내진 2개의 별도의 인식 유닛들로서 처리함으로써 상기 복수의 필기 획들에 기초하여 제2 인식 결과를 생성하는 단계; 및
상기 제1 인식 결과 및 상기 제2 인식 결과의 개별 인식 결과를 생성할 시에, 상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 생성된 인식 결과를 디스플레이하는 단계를 포함하는, 방법. - 제72항에 있어서, 상기 핀치 제스처 입력은 상기 터치 감응 표면 상에 상기 복수의 필기 획들에 의해 점유되는 영역에서 서로를 향해 모여드는 2개의 접촉들을 포함하는, 방법.
- 제72항에 있어서, 상기 팽창 제스처 입력은 상기 터치 감응 표면 상에 상기 복수의 필기 획들에 의해 점유되는 영역에서 서로로부터 떠나는 2개의 접촉들을 포함하는, 방법.
- 제72항에 있어서,
상기 복수의 필기 획들로부터 2개의 인접 인식 유닛들을 식별하는 단계;
상기 후보 디스플레이 영역에서,
상기 2개의 인접 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 초기 인식 결과를 디스플레이하는 단계; 및
상기 초기 인식 결과가 상기 후보 디스플레이 영역에서 디스플레이되는 동안 상기 핀치 제스처 입력을 수신하는 단계를 추가로 포함하는, 방법. - 제75항에 있어서, 상기 제1 인식 결과를 디스플레이하는 단계는 상기 후보 디스플레이 영역에서 상기 초기 인식 결과를 상기 제1 인식 결과로 대신하는 단계를 추가로 포함하는, 방법.
- 제75항에 있어서,
상기 핀치 제스처 입력에 응답하여, 상기 필기 입력 영역에서 상기 2개의 인접 인식 유닛들 사이의 거리를 감소시키도록 상기 복수의 필기 획들을 리렌더링(re-rendering)하는 단계를 추가로 포함하는, 방법. - 제72항에 있어서,
상기 복수의 필기 획들로부터 단일 인식 유닛을 식별하는 단계;
상기 후보 디스플레이 영역에서, 상기 단일 인식 유닛으로부터 인식되는 문자를 포함하는 초기 인식 결과를 디스플레이하는 단계; 및
상기 초기 인식 결과가 상기 후보 디스플레이 영역에서 디스플레이되는 동안 상기 팽창 제스처 입력을 수신하는 단계를 추가로 포함하는, 방법. - 제78항에 있어서, 상기 제2 인식 결과를 디스플레이하는 단계는 상기 후보 디스플레이 영역에서 상기 초기 인식 결과를 상기 제2 인식 결과로 대신하는 단계를 추가로 포함하는, 방법.
- 제79항에 있어서,
상기 팽창 제스처 입력에 응답하여, 상기 필기 입력 영역에서 제1 인식 유닛에 배정되는 획들의 제1 서브세트와 제2 인식 유닛에 배정되는 필기 획들의 제2 서브세트 사이의 거리를 증가시키도록 상기 복수의 필기 획들을 리렌더링하는 단계를 추가로 포함하는, 방법. - 제72항 내지 제80항의 특징부들의 임의의 조합을 포함하는, 방법.
- 필기 인식을 제공하는 방법으로서,
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -;
상기 복수의 필기 획들로부터 복수의 인식 유닛들을 식별하는 단계 - 각 인식 유닛은 상기 복수의 필기 획들의 개별 서브세트를 포함함 -;
상기 복수의 인식 유닛들로부터 인식되는 개별 문자들을 포함하는 다문자 인식 결과를 생성하는 단계;
상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 상기 다문자 인식 결과를 디스플레이하는 단계;
상기 다문자 인식 결과가 상기 후보 디스플레이 영역에서 디스플레이되는 동안, 상기 사용자로부터 삭제 입력을 수신하는 단계; 및
상기 삭제 입력을 수신하는 것에 응답하여, 상기 후보 디스플레이 영역에서 디스플레이되는 상기 다문자 인식 결과로부터 최후 문자(end character)를 제거하는 단계를 포함하는, 방법. - 제82항에 있어서,
상기 복수의 필기 획들이 상기 사용자에 의해 제공됨에 따라 상기 필기 입력 인터페이스의 상기 필기 입력 영역에서 상기 복수의 필기 획들을 실시간으로 렌더링하는 단계; 및
상기 삭제 입력을 수신하는 것에 응답하여, 상기 필기 입력 영역으로부터, 상기 필기 입력 영역에서 상기 복수의 인식 유닛들에 의해 형성되는 공간 시퀀스에서의 최후 인식 유닛에 대응하는 상기 복수의 필기 획들의 개별 서브세트를 제거하는 단계를 추가로 포함하고,
상기 최후 인식 유닛은 상기 다문자 인식 결과에서의 상기 최후 문자에 대응하는, 방법. - 제83항에 있어서, 상기 최후 인식 유닛은 상기 사용자에 의해 제공되는 상기 복수의 필기 획들 중에서 시간적으로 최종 필기 획을 포함하지 않는, 방법.
- 제83항에 있어서,
상기 삭제 입력의 초기 부분을 수신하는 것에 응답하여, 상기 필기 입력 영역에서 식별되는 다른 인식 유닛들로부터 상기 최후 인식 유닛을 시각적으로 구별하는 단계를 추가로 포함하는, 방법. - 제85항에 있어서, 상기 삭제 입력의 상기 초기 부분은 상기 필기 입력 인터페이스에서 삭제 버튼 상에서 검출되는 초기 접촉이고, 상기 초기 접촉이 사전결정된 임계량의 시간보다 오래 지속될 때 상기 삭제 입력이 검출되는, 방법.
- 제83항에 있어서, 상기 최후 인식 유닛은 필기 한자에 대응하는, 방법.
- 제83항에 있어서, 상기 필기 입력은 초서체로 기입되는, 방법.
- 제83항에 있어서, 상기 필기 입력은 초서체로 기입된 다수의 한자들에 대응하는, 방법.
- 제83항에 있어서, 상기 필기 획들 중 적어도 하나는 상기 복수의 인식 유닛들 중 2개의 인접 인식 유닛들로 나눠지는, 방법.
- 제83항에 있어서, 상기 삭제 입력은 상기 필기 입력 인터페이스에서 제공되는 삭제 버튼 상의 지속된 접촉이고, 상기 복수의 필기 획들의 개별 서브세트를 제거하는 단계는,
필기 획들의 상기 서브세트가 상기 사용자에 의해 제공된 역시간 순서(reverse temporal order)에서 획 단위(stroke-by-stroke)로, 상기 필기 입력 영역으로부터 상기 최후 인식 유닛에서의 필기 획들의 상기 서브세트를 제거하는 단계를 추가로 포함하는, 방법. - 제82항에 있어서,
상기 복수의 인식 유닛들로부터 인식되는 상기 개별 문자들의 서브세트를 포함하는 부분 인식 결과를 생성하는 단계 - 상기 개별 문자들의 서브세트 각각은 사전결정된 신뢰도 임계치를 충족함 -; 및
상기 필기 입력 인터페이스의 상기 후보 디스플레이 영역에서 상기 부분 인식 결과를 상기 다문자 인식 결과와 동시에 디스플레이하는 단계를 추가로 포함하는, 방법. - 제92항에 있어서, 상기 부분 인식 결과는 적어도 다문자 인식 결과에서의 상기 최후 문자를 포함하지 않는, 방법.
- 제92항에 있어서, 상기 부분 인식 결과는 적어도 다문자 인식 결과에서의 초기 문자를 포함하지 않는, 방법.
- 제92항에 있어서, 상기 부분 인식 결과는 적어도 다문자 인식 결과에서의 중간 문자를 포함하지 않는, 방법.
- 제82항 내지 제95항의 특징부들의 임의의 조합을 포함하는, 방법.
- 실시간 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
상기 디바이스의 배향을 결정하는 단계;
제1 배향으로 있는 상기 디바이스에 따른 수평 입력 모드에서 상기 디바이스 상에 필기 입력 인터페이스를 제공하는 단계 - 상기 수평 입력 모드에서 입력되는 필기 입력의 개별 라인은 수평 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할됨 -; 및
제2 배향으로 있는 상기 디바이스에 따른 수직 입력 모드에서 상기 디바이스 상에 상기 필기 입력 인터페이스를 제공하는 단계 - 상기 수직 입력 모드에서 입력되는 필기 입력의 개별 라인은 수직 기입 방향을 따라 하나 이상의 개별 인식 유닛들로 분할됨 - 를 포함하는, 방법. - 제97항에 있어서,
상기 수평 입력 모드에서 작동하는 동안:
상기 제1 배향으로부터 상기 제2 배향으로의 디바이스 배향의 변화를 검출하는 단계; 및
상기 디바이스 배향의 변화에 응답하여, 상기 수평 입력 모드로부터 상기 수직 입력 모드로 전환하는 단계를 추가로 포함하는, 방법. - 제97항에 있어서,
상기 수직 입력 모드에서 동작하는 동안:
상기 제2 배향으로부터 상기 제1 배향으로의 디바이스 배향의 변화를 검출하는 단계; 및
상기 디바이스 배향의 변화에 응답하여, 상기 수직 입력 모드로부터 상기 수평 입력 모드로 전환하는 단계를 추가로 포함하는, 방법. - 제97항에 있어서,
상기 수평 입력 모드에서 동작하는 동안:
상기 사용자로부터 제1 다단어 필기 입력(first multi-word handwriting input)을 수신하는 단계; 및
상기 제1 다단어 필기 입력에 응답하여, 상기 수평 기입 방향을 따라서 상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 제1 다단어 인식 결과를 제시하는 단계; 그리고
상기 수직 입력 모드에서 동작하는 동안:
상기 사용자로부터 제2 다단어 필기 입력을 수신하는 단계; 및
상기 제2 다단어 필기 입력에 응답하여, 상기 수직 기입 방향을 따라서 상기 후보 디스플레이 영역에서 제2 다단어 인식 결과를 제시하는 단계를 추가로 포함하는, 방법. - 제100항에 있어서,
상기 제1 다단어 인식 결과를 선택하는 제1 사용자 입력을 수신하는 단계;
상기 제2 다단어 인식 결과를 선택하는 제2 사용자 입력을 수신하는 단계; 및
상기 필기 입력 인터페이스의 텍스트 입력 영역에서 상기 제1 다단어 인식 결과 및 상기 제2 다단어 인식 결과의 개별 텍스트를 동시에 디스플레이하는 단계를 추가로 포함하고,
상기 제1 다단어 인식 결과의 개별 텍스트는 상기 수평 기입 방향에 따라서 디스플레이되고, 상기 제2 다단어 인식 결과의 개별 텍스트는 상기 수직 기입 방향에 따라서 디스플레이되는, 방법. - 제97항에 있어서, 상기 필기 입력 영역은 상기 수평 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 하향식 단락 방향(default top-down paragraph direction)을 갖는, 방법.
- 제97항에 있어서, 상기 수평 기입 방향은 좌측에서부터 우측으로 인, 방법.
- 제97항에 있어서, 상기 수평 기입 방향은 우측에서부터 좌측으로 인, 방법.
- 제97항에 있어서, 상기 필기 입력 영역은 상기 수직 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 좌측에서 우측으로의 단락 방향(default left-to-right paragraph direction)을 갖는, 방법.
- 제97항에 있어서, 상기 필기 입력 영역은 상기 수직 기입 방향에서의 필기 입력의 다수의 라인들을 허용하고 디폴트 우측에서 좌측으로의 단락 방향(default right-to-left paragraph direction)을 갖는, 방법.
- 제97항에 있어서, 상기 수직 기입 방향은 위에서부터 아래로 인, 방법.
- 제97항에 있어서, 상기 제1 배향은 디폴트로 가로 배향(landscape orientation)이고, 상기 제2 배향은 디폴트로 세로 배향(portrait orientation)인, 방법.
- 제97항에 있어서,
상기 디바이스 배향에 상관없이 상기 수평 입력 모드와 상기 수직 입력 모드 사이에서 수동으로 전환하기 위해 상기 필기 입력 인터페이스에서 개별 어포던스를 제공하는 단계를 추가로 포함하는, 방법. - 제97항에 있어서,
2개의 대안적인 기입 방향들 사이에서 수동으로 전환하기 위해 상기 필기 입력 인터페이스에서 개별 어포던스를 제공하는 단계를 추가로 포함하는, 방법. - 제97항에 있어서,
2개의 대안적인 단락 방향들 사이에서 수동으로 전환하기 위해 상기 필기 입력 인터페이스에서 개별 어포던스를 제공하는 단계를 추가로 포함하는, 방법. - 제97항에 있어서,
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 상기 필기 입력 인터페이스의 필기 입력 영역에서 제공되는 복수의 필기 획들을 포함함 -;
상기 필기 입력에 응답하여, 상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 하나 이상의 인식 결과들을 디스플레이하는 단계;
상기 하나 이상의 인식 결과들이 상기 후보 디스플레이 영역에서 디스플레이되는 동안, 현재 필기 입력 모드로부터 대안적인 필기 입력 모드로 전환하기 위한 사용자 입력을 검출하는 단계;
상기 사용자 입력에 응답하여:
상기 현재 필기 입력 모드로부터 상기 대안적인 필기 입력 모드로 전환하는 단계;
상기 필기 입력 영역으로부터 상기 필기 입력을 클리어하는 단계; 및
상기 후보 디스플레이 영역에서 디스플레이되는 상기 하나 이상의 인식 결과들 중 최상위 인식 결과를 상기 필기 입력 인터페이스의 텍스트 입력 영역에 자동으로 입력하는 단계를 추가로 포함하는, 방법. - 제112항에 있어서, 상기 사용자 입력은 현재 배향으로부터 다른 배향으로의 상기 디바이스의 회전인, 방법.
- 제112항에 있어서, 상기 사용자 입력은 상기 현재 필기 입력 모드를 상기 대안적인 필기 입력 모드로 수동으로 전환하기 위한 어포던스의 호출인, 방법.
- 제97항 내지 제114항의 특징부들의 임의의 조합을 포함하는, 방법.
- 실시간 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
사용자로부터 필기 입력을 수신하는 단계 - 상기 필기 입력은 상기 디바이스에 결합된 터치 감응 표면 상에서 제공되는 복수의 필기 획들을 포함함 -;
필기 입력 인터페이스의 필기 입력 영역에서 상기 복수의 필기 획들을 렌더링하는 단계;
상기 복수의 필기 획들을 2개 이상의 인식 유닛들로 분할하는 단계 - 각 인식 유닛은 상기 복수의 필기 획들의 개별 서브세트를 포함함 -;
상기 사용자로부터 편집 요청(edit request)을 수신하는 단계;
상기 편집 요청에 응답하여, 상기 필기 입력 영역에서 상기 2개 이상의 인식 유닛들을 시각적으로 구별하는 단계; 및
상기 필기 입력 영역으로부터 상기 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단을 제공하는 단계를 포함하는, 방법. - 제116항에 있어서, 상기 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단은 상기 각 인식 유닛에 근접하여 디스플레이되는 개별 삭제 버튼인, 방법.
- 제116항에 있어서, 상기 2개 이상의 인식 유닛들 각각을 개별적으로 삭제하기 위한 수단은 상기 각 인식 유닛에 대한 사전결정된 삭제 제스처 입력을 검출하기 위한 수단인, 방법.
- 제116항에 있어서, 상기 2개 이상의 인식 유닛들을 시각적으로 구별하는 단계는 상기 필기 입력 영역에서 상기 2개 이상의 인식 유닛들 사이의 개별 경계들을 강조하는 단계를 추가로 포함하는, 방법.
- 제116항에 있어서, 상기 편집 요청은 상기 필기 입력 인터페이스에서 제공되는 사전결정된 어포던스 위에서 검출되는 접촉인, 방법.
- 제116항에 있어서, 상기 편집 요청은 상기 필기 입력 인터페이스에서의 사전결정된 영역 위에서 검출되는 탭 제스처(tap gesture)인, 방법.
- 제121항에 있어서, 상기 사전결정된 영역은 상기 필기 입력 인터페이스의 상기 필기 입력 영역 내에 있는, 방법.
- 제121항에 있어서, 상기 사전결정된 영역은 상기 필기 입력 인터페이스의 상기 필기 입력 영역의 외측에 있는, 방법.
- 제116항에 있어서,
상기 사용자로부터 그리고 상기 제공된 수단을 통하여, 상기 필기 입력 영역으로부터 상기 2개 이상의 인식 유닛들 중 제1 인식 유닛을 개별적으로 삭제하기 위한 삭제 입력을 수신하는 단계; 및
상기 삭제 입력에 응답하여, 상기 필기 입력 영역으로부터 상기 제1 인식 유닛에서의 필기 획들의 상기 개별 서브세트를 제거하는 단계를 추가로 포함하는, 방법. - 제124항에 있어서, 상기 제1 인식 유닛은 상기 2개 이상의 인식 유닛들 중에서 공간적으로 초기 인식 유닛인, 방법.
- 제124항에 있어서, 상기 제1 인식 유닛은 상기 2개 이상의 인식 유닛들 중에서 공간적으로 중간 인식 유닛인, 방법.
- 제124항에 있어서,
상기 복수의 필기 획들로부터 분할 격자(segmentation lattice)를 생성하는 단계 - 상기 분할 격자는 상기 복수의 필기 획들로부터 식별되는 인식 유닛들의 개별 세트를 각각 표시하는 복수의 대안적인 분할 체인(segmentation chain)들을 포함함 -;
상기 사용자로부터 2개 이상의 연속 편집 요청들을 수신하는 단계;
상기 2개 이상의 연속 편집 요청들 각각에 응답하여, 상기 필기 입력 영역에서 인식 유닛들의 상기 개별 세트를 상기 복수의 대안적인 분할 체인들 중 다른 분할 체인으로부터 시각적으로 구별하는 단계; 및
상기 필기 입력 영역에서 현재 표시되는 인식 유닛들의 상기 개별 세트 각각을 개별적으로 삭제하기 위한 수단을 제공하는 단계를 추가로 포함하는, 방법. - 제116항 내지 제127항의 특징부들의 임의의 조합을 포함하는, 방법.
- 실시간 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
사용자로부터 제1 필기 입력을 수신하는 단계 - 상기 제1 필기 입력은 복수의 필기 획들을 포함하고, 상기 복수의 필기 획들은 필기 입력 인터페이스의 필기 입력 영역과 연관된 개별 기입 방향을 따라 분포되는 다수의 인식 유닛들을 형성함 -;
필기 획이 상기 사용자에 의해 제공됨에 따라 상기 필기 입력 영역에서 상기 복수의 필기 획들 각각을 렌더링하는 단계;
인식 유닛이 완전히 렌더링된 후에 상기 다수의 인식 유닛들 각각에 대한 개별 페이딩 프로세스(fading process)를 시작하는 단계 - 상기 개별 페이딩 프로세스 동안, 상기 제1 필기 입력에서의 상기 인식 유닛의 렌더링이 점점 더 페이딩됨 -;
상기 필기 입력 영역 중에서 상기 다수의 인식 유닛의 페이딩된 인식 유닛에 의해 점유되는 구역 위에서 상기 사용자로부터 제2 필기 입력을 수신하는 단계; 및
제2 필기 입력을 수신하는 것에 응답하여:
상기 필기 입력 영역에서 상기 제2 필기 입력을 렌더링하는 단계; 및
상기 필기 입력 영역으로부터 페이딩된 인식 유닛들 모두를 클리어하는 단계를 포함하는, 방법. - 제129항에 있어서,
상기 제1 필기 입력에 대한 하나 이상의 인식 결과들을 생성하는 단계;
상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 상기 하나 이상의 인식 결과들을 디스플레이하는 단계; 및
상기 제2 필기 입력을 수신하는 것에 응답하여, 사용자 선택 없이, 자동으로, 상기 후보 디스플레이 영역에서 디스플레이되는 최상위 인식 결과를 상기 필기 입력 인터페이스의 텍스트 입력 영역에 입력하는 단계를 추가로 포함하는, 방법. - 제129항에 있어서,
상기 제1 필기 입력 및 상기 제2 필기 입력을 포함하는 입력 스택(input stack)을 저장하는 단계;
연속된(a concatenation of) 상기 제1 필기 입력 및 상기 제2 필기 입력으로부터 인식되는 문자들의 개별 공간 시퀀스를 각각 포함하는 하나 이상의 다문자 인식 결과들을 생성하는 단계; 및
상기 필기 입력 영역에서 상기 제2 필기 입력의 렌더링이 상기 제1 필기 입력의 렌더링을 대신하는 동안, 상기 필기 입력 인터페이스의 후보 디스플레이 영역에서 상기 하나 이상의 다문자 인식 결과들을 디스플레이하는 단계를 추가로 포함하는, 방법. - 제129항에 있어서, 각 인식 유닛에 대한 상기 개별 페이딩 프로세스는 상기 인식 유닛이 상기 사용자에 의해 완성된 후 사전결정된 기간이 경과하였을 때 시작되는, 방법.
- 제129항에 있어서, 각 인식 유닛에 대한 상기 개별 페이딩 프로세스는 상기 사용자가 상기 인식 유닛 후의 다음 인식 유닛에 대한 획들을 입력하기 시작하였을 때 시작되는, 방법.
- 제129항에 있어서, 각 인식 유닛에 대한 상기 개별 페이딩 프로세스의 최후 상태는 상기 인식 유닛에 대한 사전결정된 최소 시인성(predetermined minimum visibility)을 갖는 상태인, 방법.
- 제129항에 있어서, 각 인식 유닛에 대한 상기 개별 페이딩 프로세스의 최후 상태는 상기 인식 유닛에 대한 제로 시인성(zero visibility)을 갖는 상태인, 방법.
- 제129항에 있어서,
상기 제1 필기 입력에서의 마지막 인식 유닛이 페이딩된 후에, 상기 사용자로부터 사전결정된 회복 입력을 수신하는 단계; 및
상기 사전결정된 회복 입력을 수신하는 것에 응답하여, 상기 마지막 인식 유닛을 상기 페이딩된 상태로부터 페이딩되지 않은 상태로 복귀시키는 단계를 추가로 포함하는, 방법. - 제136항에 있어서, 상기 사전결정된 회복 입력은 상기 필기 입력 인터페이스에서 제공되는 삭제 버튼 상에서 검출되는 초기 접촉인, 방법.
- 제136항에 있어서, 삭제 버튼 상에서 검출되는 지속된 접촉은 상기 필기 입력 영역으로부터 상기 마지막 인식 유닛을 삭제하고, 마지막에서 두 번째의 인식 유닛을 상기 페이딩된 상태로부터 상기 페이딩되지 않은 상태로 회복시키는, 방법.
- 제129항 내지 제138항의 특징부들의 임의의 조합을 포함하는, 방법.
- 필기 인식을 제공하는 방법으로서,
하나 이상의 프로세서들 및 메모리를 갖는 디바이스에서,
필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부(temporally-derived feature)들의 세트를 별도로 훈련시키는 단계 -
상기 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 상기 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며,
상기 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 상기 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징지음 -;
상기 필기 인식 모델에서의 상기 공간-유도 특징부들의 세트와 상기 시간-유도 특징부들의 세트를 조합하는 단계; 및
상기 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계를 포함하는, 방법. - 제140항에 있어서, 상기 공간-유도 특징부들의 세트를 별도로 훈련시키는 단계는,
입력 층, 출력 층, 그리고 첫 번째 콘볼루션 층, 마지막 콘볼루션 층, 상기 첫 번째 콘볼루션 층과 상기 마지막 콘볼루션 층 사이의 0개 이상의 중간 콘볼루션 층들, 및 상기 마지막 콘볼루션 층과 상기 출력 층 사이의 은닉 층을 포함하는 복수의 콘볼루션 층들을 갖는 콘볼루션 뉴럴 네트워크를 훈련시키는 단계를 추가로 포함하는, 방법. - 제141항에 있어서, 상기 시간-유도 특징부들의 세트를 별도로 훈련시키는 단계는,
상기 복수의 획-분포 프로파일들을 통계적 모델로 제공하여, 상기 출력 문자 세트의 개별 문자들을 구분하기 위해 복수의 시간-유도 파라미터들 및 상기 복수의 시간-유도 파라미터들에 대한 개별 가중치들을 결정하는 단계를 추가로 포함하는, 방법. - 제142항에 있어서, 상기 필기 인식 모델에서의 상기 공간-유도 특징부들의 세트와 상기 시간-유도 특징부들의 세트를 조합하는 단계는,
복수의 공간-유도 파라미터들 및 상기 복수의 시간-유도 파라미터들을
상기 콘볼루션 뉴럴 네트워크의 상기 콘볼루션 층들 중 하나의 콘볼루션 층 또는 은닉 층에 주입하는 단계를 포함하는, 방법. - 제143항에 있어서, 상기 복수의 시간-유도 파라미터들 및 상기 복수의 시간-유도 파라미터들에 대한 개별 가중치들은 필기 인식을 위해 상기 콘볼루션 뉴럴 네트워크의 상기 마지막 콘볼루션 층에 주입되는, 방법.
- 제143항에 있어서, 상기 복수의 시간-유도 파라미터들 및 상기 복수의 시간-유도 파라미터들에 대한 개별 가중치들은 콘볼루션 필기 인식의 상기 은닉 층에 주입되는, 방법.
- 제140항에 있어서,
복수의 기입 샘플들로부터 상기 획-분포 프로파일들의 코퍼스를 생성하는 단계를 추가로 포함하고,
상기 복수의 필기 샘플들 각각은 상기 출력 문자 세트에서의 문자에 대응하고, 기입되었을 때 필기 샘플의 각 구성 획에 대한 개별 공간 정보를 별도로 보존하고,
상기 획-분포 프로파일들의 코퍼스를 생성하는 단계는,
상기 복수의 필기 샘플들 각각에 대해:
상기 필기 샘플에서의 구성 획들을 식별하는 단계;
상기 필기 샘플의 식별된 획들 각각에 대해, 복수의 사전결정된 방향들 각각을 따라 개별 점유율을 계산하는 단계 - 상기 점유율은 상기 각 획 방향의 투영 스팬(projected span)과 상기 기입 샘플의 최대 투영 스팬 간의 비임 -;
상기 필기 샘플의 식별된 획들 각각에 대해, 상기 각 획 내의 픽셀들의 개별 개수와 상기 기입 샘플 내의 픽셀들의 전체 개수 간의 비에 기초하여 상기 각 획에 대한 개별 포화비를 계산하는 단계; 및
상기 기입 샘플의 상기 획-분포 프로파일로서 상기 필기 샘플에 대한 특징 벡터를 생성하는 단계 - 상기 특징 벡터는 상기 필기 샘플에서의 적어도 N개의 획들의 개별 점유율들 및 개별 포화비를 포함하고, N은 사전결정된 자연수임 - 를 추가로 포함하는, 방법. - 제146항에 있어서, N은 상기 복수의 기입 샘플들 내의 임의의 단일 기입 샘플에서 관찰되는 최대 획수 미만인, 방법.
- 제147항에 있어서, 상기 복수의 필기 샘플들 각각에 대해:
상기 사전결정된 방향들 각각에서 식별된 획들의 상기 개별 점유율들을 내림차순으로 정렬하는 단계; 및
기입 샘플의 N개의 최상위 점유율들 및 포화비들만을 상기 기입 샘플의 상기 특징 벡터에 포함시키는 단계를 추가로 포함하는, 방법. - 제146항에 있어서, 상기 복수의 사전결정된 방향들은 상기 기입 샘플의 수평 방향, 수직 방향, 양의 45도 방향, 및 음의 45도 방향을 포함하는, 방법.
- 제140항에 있어서, 상기 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 단계는,
상기 사용자의 필기 입력을 수신하는 단계; 및
상기 사용자의 필기 입력을 수신하는 것에 응답하여, 상기 필기 입력의 수신과 사실상 동시에 상기 사용자에게 필기 인식 출력을 제공하는 단계를 추가로 포함하는, 방법. - 제140항 내지 제150항의 특징부들의 임의의 조합을 포함하는, 방법.
- 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부들의 세트를 별도로 훈련시키는 동작 -
상기 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 상기 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며,
상기 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 상기 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징지음 -;
상기 필기 인식 모델에서의 상기 공간-유도 특징부들의 세트와 상기 시간-유도 특징부들의 세트를 조합하는 동작; 및
상기 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 동작을 포함하는, 비일시적인 컴퓨터 판독가능 매체. - 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제140항 내지 제150항 중 어느 한 항의 방법을 수행하게 하는, 비일시적인 컴퓨터 판독가능 매체. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 동작들을 수행하게 하며, 상기 동작들은,
필기 인식 모델의 공간-유도 특징부들의 세트 및 시간-유도 특징부들의 세트를 별도로 훈련시키는 동작 -
상기 공간-유도 특징부들의 세트는 훈련 이미지들의 코퍼스에 대해 훈련되고, 상기 이미지들 각각은 출력 문자 세트의 개별 문자에 대한 필기 샘플의 이미지이며,
상기 시간-유도 특징부들의 세트는 획-분포 프로파일들의 코퍼스에 대해 훈련되고, 각 획-분포 프로파일은 상기 출력 문자 세트의 개별 문자에 대한 필기 샘플에서의 복수의 획들의 공간 분포를 수치적으로 특징지음 -;
상기 필기 인식 모델에서의 상기 공간-유도 특징부들의 세트와 상기 시간-유도 특징부들의 세트를 조합하는 동작; 및
상기 필기 인식 모델을 사용하여 사용자의 필기 입력에 대한 실시간 필기 인식을 제공하는 동작을 포함하는, 시스템. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제140항 내지 제150항 중 어느 한 항의 방법을 수행하게 하는, 시스템. - 제1항 내지 제150항의 특징부들의 임의의 조합을 포함하는, 방법.
- 명령어들이 저장된 비일시적인 컴퓨터 판독가능 매체로서,
상기 명령어들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제1항 내지 제150항 중 어느 한 항의 방법을 수행하게 하는, 비일시적인 컴퓨터 판독가능 매체. - 시스템으로서,
하나 이상의 프로세서들; 및
명령어들이 저장된 메모리를 포함하고,
상기 명령어들은, 상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 프로세서들로 하여금 제1항 내지 제150항 중 어느 한 항의 방법을 수행하게 하는, 시스템. - 전자 디바이스로서,
디스플레이;
하나 이상의 프로세서들;
메모리; 및
하나 이상의 프로그램들을 포함하고,
상기 하나 이상의 프로그램들은 상기 메모리에 저장되고, 상기 하나 이상의 프로세서들에 의해 실행되도록 구성되고, 상기 하나 이상의 프로그램들은 제1항 내지 제150항 중 어느 한 항의 방법을 수행하기 위한 명령어들을 포함하는, 전자 디바이스. - 디스플레이, 메모리, 및 상기 메모리에 저장된 하나 이상의 프로그램들을 실행시키는 하나 이상의 프로세서들을 갖는 전자 디바이스 상의 그래픽 사용자 인터페이스로서, 제1항 내지 제150항 중 어느 한 항의 방법에 따라 디스플레이되는 사용자 인터페이스들을 포함하는, 그래픽 사용자 인터페이스.
- 전자 디바이스로서,
디스플레이; 및
제1항 내지 제150항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 전자 디바이스. - 디스플레이를 갖는 전자 디바이스에서 사용하기 위한 정보 프로세싱 장치로서,
제1항 내지 제150항 중 어느 한 항의 방법을 수행하기 위한 수단을 포함하는, 정보 프로세싱 장치.
Applications Claiming Priority (19)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361832921P | 2013-06-09 | 2013-06-09 | |
US201361832934P | 2013-06-09 | 2013-06-09 | |
US201361832908P | 2013-06-09 | 2013-06-09 | |
US201361832942P | 2013-06-09 | 2013-06-09 | |
US61/832,908 | 2013-06-09 | ||
US61/832,921 | 2013-06-09 | ||
US61/832,934 | 2013-06-09 | ||
US61/832,942 | 2013-06-09 | ||
US14/290,935 US9898187B2 (en) | 2013-06-09 | 2014-05-29 | Managing real-time handwriting recognition |
US14/290,945 US9465985B2 (en) | 2013-06-09 | 2014-05-29 | Managing real-time handwriting recognition |
US14/290,935 | 2014-05-29 | ||
US14/290,945 | 2014-05-29 | ||
PCT/US2014/040417 WO2014200736A1 (en) | 2013-06-09 | 2014-05-30 | Managing real - time handwriting recognition |
US14/292,138 | 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 |
US14/291,865 | 2014-05-30 | ||
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/292,138 US20140361983A1 (en) | 2013-06-09 | 2014-05-30 | Real-time stroke-order and stroke-direction independent handwriting recognition |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187024261A Division KR102005878B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160003112A true KR20160003112A (ko) | 2016-01-08 |
KR101892723B1 KR101892723B1 (ko) | 2018-08-29 |
Family
ID=52022661
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217043310A KR20220003662A (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020187024261A KR102005878B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020207016098A KR102221079B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020217005264A KR102347064B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020197021958A KR102121487B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020157033627A KR101892723B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
Family Applications Before (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217043310A KR20220003662A (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020187024261A KR102005878B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020207016098A KR102221079B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020217005264A KR102347064B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
KR1020197021958A KR102121487B1 (ko) | 2013-06-09 | 2014-05-30 | 실시간 필기 인식 관리 |
Country Status (5)
Country | Link |
---|---|
JP (8) | JP6154550B2 (ko) |
KR (6) | KR20220003662A (ko) |
CN (4) | CN105247540B (ko) |
HK (1) | HK1220276A1 (ko) |
WO (1) | WO2014200736A1 (ko) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180102148A (ko) * | 2016-04-20 | 2018-09-14 | 구글 엘엘씨 | 그래픽 키보드 내에서의 도형 심볼 검색 |
KR20180132493A (ko) * | 2017-06-02 | 2018-12-12 | 삼성전자주식회사 | 스와이프 입력에 기초하여 입력 문자를 판단하는 시스템 및 방법 |
KR20190063978A (ko) * | 2017-11-30 | 2019-06-10 | 굿모니터링 주식회사 | 비정형 데이터의 카테고리 자동분류 방법 |
KR101989960B1 (ko) | 2018-06-21 | 2019-06-17 | 가천대학교 산학협력단 | 복수 개의 기계학습 모델을 사용한 실시간 필기 인식 방법, 이를 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 실시간 필기 인식 시스템 |
KR20190105990A (ko) * | 2018-03-07 | 2019-09-18 | 주식회사 엘렉시 | 판서 분석 시스템 및 방법과 어플리케이션 |
KR20200013023A (ko) * | 2016-06-12 | 2020-02-05 | 애플 인크. | 스크린용 핸드라이팅 키보드 |
WO2021025290A1 (ko) * | 2019-08-06 | 2021-02-11 | 삼성전자 주식회사 | 필기 입력을 텍스트로 변환하는 방법 및 전자 장치 |
US11016658B2 (en) | 2013-06-09 | 2021-05-25 | Apple Inc. | Managing real-time handwriting recognition |
US11112968B2 (en) | 2007-01-05 | 2021-09-07 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US11188158B2 (en) | 2017-06-02 | 2021-11-30 | Samsung Electronics Co., Ltd. | System and method of determining input characters based on swipe input |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
KR102366052B1 (ko) * | 2021-05-28 | 2022-02-23 | (유)벨류이 | 지연시간 감소 처리를 이용한 필기 시스템 및 방법, 그리고 이를 위한 첩 스프레드 스펙트럼 기반 저 복잡도 거리측정 알고리즘 |
WO2022231112A1 (ko) * | 2021-04-28 | 2022-11-03 | 삼성전자 주식회사 | 필기 입력을 처리하는 전자 장치 및 이의 동작 방법 |
US11627799B2 (en) * | 2020-12-04 | 2023-04-18 | Keith McRobert | Slidable work surface |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10114544B2 (en) * | 2015-06-06 | 2018-10-30 | Apple Inc. | Systems and methods for generating and providing intelligent time to leave reminders |
US10013603B2 (en) * | 2016-01-20 | 2018-07-03 | Myscript | System and method for recognizing multiple object structure |
KR102482850B1 (ko) * | 2016-02-15 | 2022-12-29 | 삼성전자 주식회사 | 전자 장치 및 전자 장치의 필체 교정 기능 제공 방법 |
CN107220655A (zh) * | 2016-03-22 | 2017-09-29 | 华南理工大学 | 一种基于深度学习的手写、印刷文本的分类方法 |
JP6728993B2 (ja) * | 2016-05-31 | 2020-07-22 | 富士ゼロックス株式会社 | 筆記システム、情報処理装置、プログラム |
JP6611346B2 (ja) * | 2016-06-01 | 2019-11-27 | 日本電信電話株式会社 | 文字列認識装置、方法、及びプログラム |
CN106126092A (zh) * | 2016-06-20 | 2016-11-16 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
TWI633463B (zh) * | 2016-06-20 | 2018-08-21 | 鴻海精密工業股份有限公司 | 文字輸入法 |
US10325018B2 (en) | 2016-10-17 | 2019-06-18 | Google Llc | Techniques for scheduling language models and character recognition models for handwriting inputs |
CN106527875B (zh) * | 2016-10-25 | 2019-11-29 | 北京小米移动软件有限公司 | 电子记事方法及装置 |
US10984757B2 (en) | 2017-05-19 | 2021-04-20 | Semiconductor Energy Laboratory Co., Ltd. | Machine learning method, machine learning system, and display system |
US10481791B2 (en) * | 2017-06-07 | 2019-11-19 | Microsoft Technology Licensing, Llc | Magnified input panels |
US20190155895A1 (en) * | 2017-11-20 | 2019-05-23 | Google Llc | Electronic text pen systems and methods |
CN107861684A (zh) * | 2017-11-23 | 2018-03-30 | 广州视睿电子科技有限公司 | 书写识别方法、装置、存储介质及计算机设备 |
CN109992124B (zh) * | 2018-01-02 | 2024-05-31 | 北京搜狗科技发展有限公司 | 输入方法、装置和机器可读介质 |
CN108710882A (zh) * | 2018-05-11 | 2018-10-26 | 武汉科技大学 | 一种基于卷积神经网络的屏幕渲染文本识别方法 |
JP7298290B2 (ja) * | 2018-06-19 | 2023-06-27 | 株式会社リコー | 手書き入力表示装置、手書き入力表示方法およびプログラム |
US11270486B2 (en) * | 2018-07-02 | 2022-03-08 | Apple Inc. | Electronic drawing with handwriting recognition |
CN109446780B (zh) * | 2018-11-01 | 2020-11-27 | 北京知道创宇信息技术股份有限公司 | 一种身份认证方法、装置及其存储介质 |
CN109471587B (zh) * | 2018-11-13 | 2020-05-12 | 掌阅科技股份有限公司 | 基于Java虚拟机的手写内容的显示方法及电子设备 |
CN109858323A (zh) * | 2018-12-07 | 2019-06-07 | 广州光大教育软件科技股份有限公司 | 一种字符手写识别方法及系统 |
CN110009027B (zh) * | 2019-03-28 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 图像的比对方法、装置、存储介质及电子装置 |
CN110135530B (zh) * | 2019-05-16 | 2021-08-13 | 京东方科技集团股份有限公司 | 转换图像中汉字字体的方法及系统、计算机设备及介质 |
CN110362247A (zh) * | 2019-07-18 | 2019-10-22 | 江苏中威科技软件系统有限公司 | 一套在电子文件上放大签批的模式 |
CN112257820B (zh) * | 2019-07-22 | 2024-09-03 | 珠海金山办公软件有限公司 | 一种信息修正方法及装置 |
CN110942089B (zh) * | 2019-11-08 | 2023-10-10 | 东北大学 | 一种基于多级决策的击键识别方法 |
EP4130966A1 (en) | 2019-11-29 | 2023-02-08 | MyScript | Gesture stroke recognition in touch-based user interface input |
US20200251217A1 (en) * | 2019-12-12 | 2020-08-06 | Renee CASSUTO | Diagnosis Method Using Image Based Machine Learning Analysis of Handwriting |
CN111078073B (zh) * | 2019-12-17 | 2021-03-23 | 科大讯飞股份有限公司 | 一种笔迹放大的方法和相关装置 |
EP3839706B1 (fr) | 2019-12-20 | 2023-07-05 | The Swatch Group Research and Development Ltd | Procede et dispositif de determination de position d'un objet sur une surface donnee |
CN111355715B (zh) * | 2020-02-21 | 2021-06-04 | 腾讯科技(深圳)有限公司 | 待决议事件的处理方法、系统、装置、介质及电子设备 |
JP7540190B2 (ja) * | 2020-05-08 | 2024-08-27 | ブラザー工業株式会社 | 編集プログラム |
CN111736751B (zh) * | 2020-08-26 | 2021-03-26 | 深圳市千分一智能技术有限公司 | 笔画重绘方法、设备及可读存储介质 |
US11587346B2 (en) | 2020-12-10 | 2023-02-21 | Microsoft Technology Licensing, Llc | Detecting ink gestures based on spatial and image data processing |
US11531454B2 (en) | 2020-12-10 | 2022-12-20 | Microsoft Technology Licensing, Llc | Selecting content in ink documents using a hierarchical data structure |
KR20220088166A (ko) | 2020-12-18 | 2022-06-27 | 삼성전자주식회사 | 복수의 사용자 환경에서 필기 입력 인식 방법 및 장치 |
EP4057182A1 (en) * | 2021-03-09 | 2022-09-14 | Société BIC | Handwriting feedback |
JP2022148901A (ja) * | 2021-03-24 | 2022-10-06 | カシオ計算機株式会社 | 文字認識装置、文字認識方法およびプログラム |
KR20220135914A (ko) * | 2021-03-31 | 2022-10-07 | 삼성전자주식회사 | 학습 기반의 필기 입력을 처리하는 전자 장치, 그 동작 방법 및 저장매체 |
CN113190161A (zh) * | 2021-04-25 | 2021-07-30 | 无锡乐骐科技有限公司 | 一种基于卷积神经网络的电子书写练习方法 |
EP4258094A4 (en) * | 2021-04-28 | 2024-07-10 | Samsung Electronics Co Ltd | ELECTRONIC DEVICE FOR PROCESSING HANDWRITTEN INPUTS AND OPERATING METHODS THEREFOR |
CN113673415B (zh) * | 2021-08-18 | 2022-03-04 | 山东建筑大学 | 一种手写汉字身份鉴别方法及系统 |
EP4145264A1 (en) * | 2021-09-07 | 2023-03-08 | Ricoh Company, Ltd. | Display apparatus, carrier means, and display method |
CN113918030B (zh) * | 2021-09-30 | 2024-10-15 | 北京搜狗科技发展有限公司 | 一种手写输入方法、装置和用于手写输入的装置 |
JP2023058255A (ja) | 2021-10-13 | 2023-04-25 | 株式会社デンソー | 車両用電子キーシステム、車両用認証装置 |
KR102468713B1 (ko) * | 2022-07-07 | 2022-11-21 | 주식회사 에이치투케이 | 학습자의 한글 필기에 대한 인공지능 기반의 획순 인식 장치 및 방법 |
WO2024014655A1 (ko) * | 2022-07-14 | 2024-01-18 | 삼성전자 주식회사 | 획들에 의해 나타나는 문장을 식별하기 위한 전자 장치 및 방법 |
CN115291791B (zh) * | 2022-08-17 | 2024-08-06 | 维沃移动通信有限公司 | 文本识别方法、装置、电子设备及存储介质 |
KR20240065997A (ko) * | 2022-11-07 | 2024-05-14 | 삼성전자주식회사 | 필기 입력을 인식하는 방법 및 장치 |
CN116646911B (zh) * | 2023-07-27 | 2023-10-24 | 成都华普电器有限公司 | 应用于数字化电源并联模式的电流均流分配方法及系统 |
CN117037186B (zh) * | 2023-10-09 | 2024-01-30 | 山东维克特信息技术有限公司 | 一种患者数据管理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230912A1 (en) * | 2003-05-13 | 2004-11-18 | Microsoft Corporation | Multiple input language selection |
US20070005537A1 (en) * | 2005-06-02 | 2007-01-04 | Microsoft Corporation | Handwriting recognition using a comparative neural network |
US20100329562A1 (en) * | 2009-06-30 | 2010-12-30 | Feng Drake Zhu | Statistical Online Character Recognition |
US20130002553A1 (en) * | 2011-06-29 | 2013-01-03 | Nokia Corporation | Character entry apparatus and associated methods |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0614372B2 (ja) * | 1984-01-23 | 1994-02-23 | 日本電信電話株式会社 | 文字読取方法 |
JPS61272890A (ja) * | 1985-05-29 | 1986-12-03 | Canon Inc | 手書文字認識装置 |
DE69315990T2 (de) * | 1993-07-01 | 1998-07-02 | Ibm | Mustererkennung durch Erzeugung und Benutzung zonenweiser Merkmale und Anti-Merkmale |
JP3353954B2 (ja) * | 1993-08-13 | 2002-12-09 | ソニー株式会社 | 手書き入力表示方法および手書き入力表示装置 |
JPH07160827A (ja) * | 1993-12-09 | 1995-06-23 | Matsushita Electric Ind Co Ltd | 手書きストローク編集装置及び方法 |
JPH07200723A (ja) * | 1993-12-29 | 1995-08-04 | Canon Inc | 文字認識方法及び装置 |
JPH0855182A (ja) * | 1994-06-10 | 1996-02-27 | Nippon Steel Corp | 手書き文字入力装置 |
US5737443A (en) * | 1994-11-14 | 1998-04-07 | Motorola, Inc. | Method of joining handwritten input |
DE69523567T2 (de) * | 1994-11-14 | 2002-06-27 | Motorola, Inc. | Verfahren zur handschrift-eingangsaufteilung |
JP3333362B2 (ja) * | 1995-04-11 | 2002-10-15 | 株式会社日立製作所 | 文字入力装置 |
TW338815B (en) * | 1995-06-05 | 1998-08-21 | Motorola Inc | Method and apparatus for character recognition of handwritten input |
JP4115568B2 (ja) * | 1996-12-18 | 2008-07-09 | シャープ株式会社 | 文章入力装置 |
JPH10307675A (ja) * | 1997-05-01 | 1998-11-17 | Hitachi Ltd | 手書き文字認識方法及び装置 |
US6970599B2 (en) * | 2002-07-25 | 2005-11-29 | America Online, Inc. | Chinese character handwriting recognition system |
JP4663903B2 (ja) * | 2000-04-20 | 2011-04-06 | パナソニック株式会社 | 手書き文字認識装置及び手書き文字認識プログラム並びに手書き文字認識プログラムを記録したコンピュータ読み取り可能な記録媒体 |
WO2002037933A2 (en) * | 2000-11-08 | 2002-05-16 | New York University | System, process and software arrangement for recognizing handwritten characters |
US7286141B2 (en) * | 2001-08-31 | 2007-10-23 | Fuji Xerox Co., Ltd. | Systems and methods for generating and controlling temporary digital ink |
JP2003162687A (ja) * | 2001-11-28 | 2003-06-06 | Toshiba Corp | 手書き文字入力装置、手書き文字認識プログラム |
JP4212270B2 (ja) * | 2001-12-07 | 2009-01-21 | シャープ株式会社 | 文字入力装置、文字入力方法および文字を入力するためのプログラム |
US6986106B2 (en) * | 2002-05-13 | 2006-01-10 | Microsoft Corporation | Correction widget |
JP2004213269A (ja) * | 2002-12-27 | 2004-07-29 | Toshiba Corp | 文字入力装置 |
JP2005341387A (ja) * | 2004-05-28 | 2005-12-08 | Nokia Corp | リアルタイムコミュニケーションシステム、及びリアルタイムコミュニケーションに用いる送受信装置及び方法 |
JP2006323502A (ja) * | 2005-05-17 | 2006-11-30 | Canon Inc | 情報処理装置及びその制御方法、プログラム |
US7720316B2 (en) * | 2006-09-05 | 2010-05-18 | Microsoft Corporation | Constraint-based correction of handwriting recognition errors |
KR100859010B1 (ko) * | 2006-11-01 | 2008-09-18 | 노키아 코포레이션 | 필기 인식을 위한 장치 및 방법 |
CN101311887A (zh) * | 2007-05-21 | 2008-11-26 | 刘恩新 | 一种计算机手写输入系统及输入方法和编辑方法 |
CN101123044A (zh) * | 2007-09-13 | 2008-02-13 | 无敌科技(西安)有限公司 | 汉字书写学习方法 |
JP2009110092A (ja) * | 2007-10-26 | 2009-05-21 | Alps Electric Co Ltd | 入力処理装置 |
CN101178633A (zh) * | 2007-12-13 | 2008-05-14 | 深圳华为通信技术有限公司 | 一种手写屏错误纠正的方法、系统及装置 |
US8116569B2 (en) * | 2007-12-21 | 2012-02-14 | Microsoft Corporation | Inline handwriting recognition and correction |
US9355090B2 (en) * | 2008-05-30 | 2016-05-31 | Apple Inc. | Identification of candidate characters for text input |
CN101676838B (zh) * | 2008-09-16 | 2012-05-23 | 夏普株式会社 | 输入装置 |
US8584031B2 (en) * | 2008-11-19 | 2013-11-12 | Apple Inc. | Portable touch screen device, method, and graphical user interface for using emoji characters |
US20100166314A1 (en) * | 2008-12-30 | 2010-07-01 | Microsoft Corporation | Segment Sequence-Based Handwritten Expression Recognition |
JP2011065623A (ja) * | 2009-08-21 | 2011-03-31 | Sharp Corp | 情報検索装置、情報検索装置の制御方法 |
CN101893987A (zh) * | 2010-06-01 | 2010-11-24 | 华南理工大学 | 一种电子设备的手写输入方法 |
JP5581448B2 (ja) | 2010-08-24 | 2014-08-27 | ノキア コーポレイション | 重なった手書き文字のストロークを一つ又は複数のグループにグループ分けする方法及び装置 |
JP2012108871A (ja) | 2010-10-26 | 2012-06-07 | Nec Corp | 情報処理装置およびその手書き入力処理方法 |
WO2012071730A1 (en) * | 2010-12-02 | 2012-06-07 | Nokia Corporation | Method, apparatus, and computer program product for overlapped handwriting |
JP5550598B2 (ja) | 2011-03-31 | 2014-07-16 | パナソニック株式会社 | 手書き文字入力装置 |
JP5862659B2 (ja) | 2011-04-11 | 2016-02-16 | 日本電気株式会社 | 情報入力装置 |
CN102135838A (zh) * | 2011-05-05 | 2011-07-27 | 汉王科技股份有限公司 | 分区输入手写字符串的方法和系统 |
US8977059B2 (en) | 2011-06-03 | 2015-03-10 | Apple Inc. | Integrating feature extraction via local sequential embedding for automatic handwriting recognition |
EP3522075A1 (en) * | 2011-06-13 | 2019-08-07 | Google LLC | Character recognition for overlapping textual user input |
US8094941B1 (en) * | 2011-06-13 | 2012-01-10 | Google Inc. | Character recognition for overlapping textual user input |
JP5330478B2 (ja) * | 2011-10-14 | 2013-10-30 | 株式会社エヌ・ティ・ティ・ドコモ | 入力支援装置、プログラム及び絵文字の入力支援方法 |
JP2013089131A (ja) * | 2011-10-20 | 2013-05-13 | Kyocera Corp | 装置、方法及びプログラム |
CN102566933A (zh) * | 2011-12-31 | 2012-07-11 | 广东步步高电子工业有限公司 | 一种全屏手写有效区分命令手势和字符的方法 |
JP6102374B2 (ja) * | 2013-03-15 | 2017-03-29 | オムロン株式会社 | 読取文字訂正用のプログラムおよび文字読取装置 |
GB201704729D0 (en) | 2017-03-24 | 2017-05-10 | Lucite Int Uk Ltd | Method of producing methyl methacrylate or methacrylic acid |
-
2014
- 2014-05-30 CN CN201480030897.0A patent/CN105247540B/zh active Active
- 2014-05-30 JP JP2016518366A patent/JP6154550B2/ja active Active
- 2014-05-30 KR KR1020217043310A patent/KR20220003662A/ko not_active Application Discontinuation
- 2014-05-30 KR KR1020187024261A patent/KR102005878B1/ko active IP Right Grant
- 2014-05-30 KR KR1020207016098A patent/KR102221079B1/ko active IP Right Grant
- 2014-05-30 CN CN201811217821.5A patent/CN109614846A/zh active Pending
- 2014-05-30 KR KR1020217005264A patent/KR102347064B1/ko active IP Right Grant
- 2014-05-30 CN CN201811217768.9A patent/CN109614845B/zh active Active
- 2014-05-30 CN CN201811217822.XA patent/CN109614847B/zh active Active
- 2014-05-30 WO PCT/US2014/040417 patent/WO2014200736A1/en active Application Filing
- 2014-05-30 KR KR1020197021958A patent/KR102121487B1/ko active IP Right Grant
- 2014-05-30 KR KR1020157033627A patent/KR101892723B1/ko active IP Right Grant
-
2016
- 2016-07-12 HK HK16108185.0A patent/HK1220276A1/zh not_active IP Right Cessation
-
2017
- 2017-06-01 JP JP2017109294A patent/JP6559184B2/ja active Active
-
2019
- 2019-04-15 JP JP2019077312A patent/JP6802876B2/ja active Active
-
2020
- 2020-11-27 JP JP2020197242A patent/JP6903808B2/ja active Active
-
2021
- 2021-06-23 JP JP2021104255A patent/JP7011747B2/ja active Active
-
2022
- 2022-01-14 JP JP2022004546A patent/JP7078808B2/ja active Active
- 2022-05-19 JP JP2022082332A patent/JP7361156B2/ja active Active
-
2023
- 2023-10-02 JP JP2023171414A patent/JP2023182718A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040230912A1 (en) * | 2003-05-13 | 2004-11-18 | Microsoft Corporation | Multiple input language selection |
US20070005537A1 (en) * | 2005-06-02 | 2007-01-04 | Microsoft Corporation | Handwriting recognition using a comparative neural network |
US20100329562A1 (en) * | 2009-06-30 | 2010-12-30 | Feng Drake Zhu | Statistical Online Character Recognition |
US20130002553A1 (en) * | 2011-06-29 | 2013-01-03 | Nokia Corporation | Character entry apparatus and associated methods |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416141B2 (en) | 2007-01-05 | 2022-08-16 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US11112968B2 (en) | 2007-01-05 | 2021-09-07 | Apple Inc. | Method, system, and graphical user interface for providing word recommendations |
US11016658B2 (en) | 2013-06-09 | 2021-05-25 | Apple Inc. | Managing real-time handwriting recognition |
US11182069B2 (en) | 2013-06-09 | 2021-11-23 | Apple Inc. | Managing real-time handwriting recognition |
US11816326B2 (en) | 2013-06-09 | 2023-11-14 | Apple Inc. | Managing real-time handwriting recognition |
KR20180102148A (ko) * | 2016-04-20 | 2018-09-14 | 구글 엘엘씨 | 그래픽 키보드 내에서의 도형 심볼 검색 |
US11941243B2 (en) | 2016-06-12 | 2024-03-26 | Apple Inc. | Handwriting keyboard for screens |
KR20200013023A (ko) * | 2016-06-12 | 2020-02-05 | 애플 인크. | 스크린용 핸드라이팅 키보드 |
US10884617B2 (en) | 2016-06-12 | 2021-01-05 | Apple Inc. | Handwriting keyboard for screens |
KR20210023946A (ko) * | 2016-06-12 | 2021-03-04 | 애플 인크. | 스크린용 핸드라이팅 키보드 |
US12039109B2 (en) | 2017-06-02 | 2024-07-16 | Samsung Electronics Co., Ltd. | System and method of determining input characters based on swipe input |
KR20180132493A (ko) * | 2017-06-02 | 2018-12-12 | 삼성전자주식회사 | 스와이프 입력에 기초하여 입력 문자를 판단하는 시스템 및 방법 |
US11188158B2 (en) | 2017-06-02 | 2021-11-30 | Samsung Electronics Co., Ltd. | System and method of determining input characters based on swipe input |
KR20190063978A (ko) * | 2017-11-30 | 2019-06-10 | 굿모니터링 주식회사 | 비정형 데이터의 카테고리 자동분류 방법 |
KR20190105990A (ko) * | 2018-03-07 | 2019-09-18 | 주식회사 엘렉시 | 판서 분석 시스템 및 방법과 어플리케이션 |
KR101989960B1 (ko) | 2018-06-21 | 2019-06-17 | 가천대학교 산학협력단 | 복수 개의 기계학습 모델을 사용한 실시간 필기 인식 방법, 이를 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 실시간 필기 인식 시스템 |
US11194467B2 (en) | 2019-06-01 | 2021-12-07 | Apple Inc. | Keyboard management user interfaces |
US11620046B2 (en) | 2019-06-01 | 2023-04-04 | Apple Inc. | Keyboard management user interfaces |
US11842044B2 (en) | 2019-06-01 | 2023-12-12 | Apple Inc. | Keyboard management user interfaces |
WO2021025290A1 (ko) * | 2019-08-06 | 2021-02-11 | 삼성전자 주식회사 | 필기 입력을 텍스트로 변환하는 방법 및 전자 장치 |
US11627799B2 (en) * | 2020-12-04 | 2023-04-18 | Keith McRobert | Slidable work surface |
WO2022231112A1 (ko) * | 2021-04-28 | 2022-11-03 | 삼성전자 주식회사 | 필기 입력을 처리하는 전자 장치 및 이의 동작 방법 |
KR102366052B1 (ko) * | 2021-05-28 | 2022-02-23 | (유)벨류이 | 지연시간 감소 처리를 이용한 필기 시스템 및 방법, 그리고 이를 위한 첩 스프레드 스펙트럼 기반 저 복잡도 거리측정 알고리즘 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6903808B2 (ja) | リアルタイム手書き認識の管理 | |
US11182069B2 (en) | Managing real-time handwriting recognition | |
US9934430B2 (en) | Multi-script handwriting recognition using a universal recognizer | |
US20140363082A1 (en) | Integrating stroke-distribution information into spatial feature extraction for automatic handwriting recognition | |
US20140361983A1 (en) | Real-time stroke-order and stroke-direction independent handwriting recognition |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |