KR102326395B1 - 다수의 객체 입력을 인식하기 위한 시스템 및 그 방법 및 제품 - Google Patents

다수의 객체 입력을 인식하기 위한 시스템 및 그 방법 및 제품 Download PDF

Info

Publication number
KR102326395B1
KR102326395B1 KR1020187004041A KR20187004041A KR102326395B1 KR 102326395 B1 KR102326395 B1 KR 102326395B1 KR 1020187004041 A KR1020187004041 A KR 1020187004041A KR 20187004041 A KR20187004041 A KR 20187004041A KR 102326395 B1 KR102326395 B1 KR 102326395B1
Authority
KR
South Korea
Prior art keywords
elements
geometric
delete delete
pair
distance
Prior art date
Application number
KR1020187004041A
Other languages
English (en)
Other versions
KR20180064371A (ko
Inventor
세바스띠앙 오니스
Original Assignee
마이스크립트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이스크립트 filed Critical 마이스크립트
Publication of KR20180064371A publication Critical patent/KR20180064371A/ko
Application granted granted Critical
Publication of KR102326395B1 publication Critical patent/KR102326395B1/ko

Links

Images

Classifications

    • G06K9/00416
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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/04883Interaction 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
    • G06K9/00422
    • G06K9/2054
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Character Discrimination (AREA)

Abstract

컴퓨팅 디바이스로의 다수의 객체들의 입력의 인식을 위한 방법들, 시스템들, 및 컴퓨터 프로그램 제품들이 제공되고, 컴퓨팅 디바이스는 프로세서 및 프로세서의 제어 하에서 입력을 인식하기 위한 적어도 하나의 애플리케이션을 갖는다. 애플리케이션은, 입력의 복수의 엘리먼트들의 적어도 하나의 기하학적 피처를 결정하고, 결정된 적어도 하나의 기하학적 피처를 적어도 하나의 사전결정된 기하학적 임계와 비교하여 포지티브 또는 네거티브 결과를 결정하도록 구성된다. 비교가 네거티브 결과를 산출하면, 애플리케이션은 엘리먼트들을 입력의 인식에서 하나의 객체에 속하는 것으로서 간주한다. 비교가 포지티브 결과를 산출하면, 애플리케이션은 엘리먼트들을 입력의 인식에서 다수의 객체들에 속하는 것으로서 간주한다.

Description

다수의 객체 입력을 인식하기 위한 시스템 및 그 방법 및 제품
관련 출원들의 상호참조
본 출원은 2015 년 7 월 10 일자로 출원된 유럽 출원 제 15290183 호를 우선권으로 주장하는 2015 년 9 월 30 일자로 출원된 미국 특허출원 제 14/870,735 호를 우선권으로 주장하고, 이들의 전체 내용들은 본원에서 참조로서 포함된다.
기술 분야
본 발명은 일반적으로, 다수의 수기된 객체들의 입력을 인식할 수 있는 컴퓨팅 디바이스 인터페이스들의 분야에 관한 것이다.
일상 생활에 대한 컴퓨팅 디바이스들의 편재성은 계속해서 증가한다. 이들은 퍼스널 및 전문 데스크톱들, 랩톱들, 하이브리드 랩톱들, 태블릿 PC들, 이-북 리더들, 모바일 폰들, 스마트폰들, 웨어러블 컴퓨터들, 글로벌 위치 시스템 (GPS) 유닛들, 기업 휴대 단말기 (EDA) 들, 개인 휴대 단말기 (PDA) 들, 게임 콘솔들 등의 형태를 취한다.
컴퓨팅 디바이스들은 일반적으로, 적어도 하나의 프로세싱 엘리먼트, 예컨대 중앙 처리 장치 (CPU), 메모리의 일부 형태, 및 입력 및 출력 디바이스들로 이루어진다. 다양한 컴퓨팅 디바이스들 및 그 후속의 사용들은 다양한 입력 디바이스들을 필요로 한다. 하나의 이러한 입력 디바이스는 터치 감지면, 예컨대 사용자의 손가락 또는 펜 또는 스타일러스와 같은 도구와 터치 감지면 간의 접촉을 통해 사용자 입력이 수신되는 터치 스크린 또는 터치 패드이다. 다른 입력 디바이스는 입력 표면 위에 사용자에 의해 이루어진 제스처들을 감지하는 입력 표면이다. 입력의 이들 방법들 중 어느 하나는 일반적으로, 컴퓨팅 디바이스가 수기 인식 시스템들 또는 방법들을 사용하여 해석하는 텍스트, 기호들 등을 표현하도록 소위 디지털 잉크를 드로잉 또는 입력하기 위해 사용될 수도 있다. 컴퓨팅 디바이스들로의 수기 입력을 위한 다른 시스템들은, 아노트 AB., 립프로그 엔터프라이즈 사 및 라이브스크라이브 사에 의해 제공된 시스템들과 같은 컴퓨팅 디바이스에 의해 추적된 표면에 대한 그들의 움직임을 갖기 위해 페이퍼, 인코딩된 표면들 또는 디지털화 표면들과 상호작용하는 전자 또는 디지털 펜들을 포함한다.
사용된 입력 방법에 관계 없이, 수기 인식 시스템들 및 방법들은 통상적으로, 디지털 잉크 스트로크의 개시, 예컨대 터치 감지 표면과의 접촉이 먼저 이루어지는 경우 (펜-다운 이벤트); 스트로크의 종료, 예컨대 터치 감지 표면과의 접촉이 중단되는 경우 (펜-업 이벤트); 및 스트로크 개시와 종료 사이에 이루어진 임의의 움직임 (제스처들 또는 스트로크들) 을 결정하는 것을 수반한다. 이들 결정된 스트로크들은, 사전 프로세싱, 세분화, 인식, 및 해석을 포함하는 여러 스테이지들에서 대개 수행되는 입력을 해석하도록 프로세싱된다. 일반적으로, 사전 프로세싱 스테이지는 관련 없는 입력 데이터의 폐기 및 관련 있는 데이터로부터의 정규화, 샘플링, 및 노이즈 제거를 수반한다. 세분화 스테이지는 입력의 유형, 예를 들어 문자들, 단어들, 기호들, 객체들, 또는 형상들에 따라 인식되도록 입력 데이터를 개별의 엘리먼트들로 브레이크 다운하기 위한 상이한 방식들을 지정한다. 인식 스테이지는 일반적으로, 상이한 입력 세그먼트들을 특징으로 하는 피처 추출 스테이지, 및 가능한 인식 후보들과 세그먼트들을 연관시키는 분류 스테이지를 포함한다. 해석 스테이지는 일반적으로, 후보들과 연관된 엘리먼트들을 식별하는 것을 수반한다. 더 적은, 더 많은, 또는 상이한 스테이지들이 또한, 가능하다.
컴퓨팅 디바이스 또는 입력 표면의 유형은 또한, 이용된 수기 인식 시스템 또는 방법의 유형을 결정할 수 있다. 예를 들어, 입력 표면이 충분히 크면 (예컨대, 태블릿), 사용자는, 사용자가 페이퍼 상에 기입하는 것 처럼 입력 표면 상 또는 위의 어디든 입력을 수기할 수 있다. 그러나, 이것은, 인식될 별개의 엘리먼트들이 엘리먼트들의 상대적인 포지션들에 따라 관련될 수도 있고 또는 그들의 상대적인 포지션들과는 별도로 관련되지 않을 수도 있기 때문에, 인식 태스크에 복잡성을 추가한다.
예를 들어, 수기 인식에 대한 하나의 바람직한 사용은 수업들 또는 강의들과 같은 교육 세션들 동안, 수학 방정식들 또는 표현식들, 물리학 개념들, 화학 공식들, 음악 표기법 등의 캡처를 위한 필기에 있다. 즉, 학생은 여러 라인들 위에 다중 방정식들을 기입하여 교육자가 증명했거나 (또한, 디지털 잉크에 있을 수 있는) 또는 학생이 과제 또는 평가로서 해결하도록 요구되는 수학 문제의 작업을 표현하기를 원할 수도 있고, 또는 교육자는 컴퓨팅 디바이스에 의해 수동으로나 자동으로 학생에 의해 해결될 문제들의 세트를 정의하는 비-관련 방정식들의 리스트를 수반하는 학생들을 위한 워크시트를 준비하기를 원할 수도 있고, 또는 방정식들 또는 벡터/행렬의 시스템의 캡처가 요망될 수도 있다. 다수의 연결된 또는 비-연결된 표현식들의 엔트리에 대한 필요성은 또한, 기업 설정들에서, 예컨대 예산 설정 미팅들, 기술 조사 및 개발 세션들, 기술 기록 등 동안, 또는 개인 설정들, 예컨대 총량을 계산하기 위해 장보기 동안 여러 라인들에 걸쳐 긴 추가를 기입하는 소비자에서 발생할 수도 있다.
수기된 수학 방정식들의 인식을 위한 시스템들이 알려져 있다. 이들 시스템들은 알려진 수학적 기호들 및 관계식들을 포함하는 데이터베이스들/어휘집들에 대한 매칭을 통해 입력 방정식들의 엘리먼트들을 결정하는 것에 집중한다. 이들 시스템들은 일반적으로, 방정식들 그 자체들의 실제 콘텐트 또는 구조의 어떤 고려 없이 엘리먼트들을 인식한다. 다중 방정식들이 입력될 때와 같이, 수직 리스트에서 말하면, 인식이 의도된 별개의 방정식들의 엘리먼트들을 동일한 방정식에 속하는 것으로 간주할 수도 있는 것이 가능하고, 또는 적어도 인식 엘리먼트가 이에 대한 가설들을 형성하고 테스트할 것이다. 이것은 물론 인식 프로세싱 및 시간을 상당히 증가시키고, 인식 정확도를 감소시킨다.
일부 알려진 시스템들은 입력 방정식들의 계산들 또는 가능한 솔루션들을 제공하는 것과 관련되고, 따라서 콘텐트를 고려할 수도 있다. 그러나, 이들 시스템들은 입력된 다중 방정식들도 인식하지 않고, 차라리 이들은 수학 연산자들의 입력, 예컨대 등호 또는 결과 라인, 또는 사용자 제스처들을 인식하여 현재 입력된 방정식에 솔루션이 제공될 시기를 결정하므로, 다음 입력은 본질적으로 다른 별개의 방정식이거나 현재 방정식에 대한 편집이다, 예를 들어 유럽특허 제 0 676 065 호를 참조하자.
다른 알려진 시스템들은 방정식들을 수반하는, 행렬들과 같은 표로 나타낸 구조들 및 방정식들의 시스템들의 인식을 제공한다. 그러나, 이들 시스템들은 예를 들어, 행 및 열 내에서 브래킷들 또는 공간 정렬과 같은 인식을 위한 표시 엘리먼트들에 의존하고, 이와 같이 임의의 유형의 다수의 입력들을 수반하는 구조와 같은 다중 방정식들로 인식하지 않는다, 예를 들어 미국특허 제 7,447,360 호를 참조하자.
특정 지정 엘리먼트들 또는 제스처들의 입력에 의존하지 않고 충분한 인식 정확도를 보유하는 동안 방정식들 그 자체들의 인식에 대한 복잡성 또는 프로세싱 시간을 상당히 증가시키지 않는 방정식들 간의 링크들에 독립적인 다중 방정식 입력들을 인식하는 시스템이 요구된다.
본 방법, 시스템, 및 컴퓨터 프로그램 제품의 예들은 이하에서, 컴퓨팅 디바이스로의 다수의 객체들의 입력의 인식을 제공하는 것으로서 본원에 제공되고, 컴퓨팅 디바이스는 프로세서 및 프로세서의 제어 하에서 입력을 인식하기 위한 적어도 하나의 방법 또는 시스템을 갖는다.
개시된 방법, 시스템, 및 컴퓨터 프로그램 제품의 양태에서, 개시된 시스템 및 방법은 입력의 복수의 엘리먼트들의 적어도 하나의 기하학적 피처를 결정하고, 적어도 하나의 기하학적 피처들을 적어도 하나의 사전-결정된 기하학적 임계와 비교하여 포지티브 또는 네거티브 결과를 결정한다. 비교가 네거티브 결과를 산출하면, 개시된 방법 또는 시스템은 엘리먼트들을 입력의 인식에서 하나의 객체에 속하는 것으로서 간주한다. 비교가 포지티브 결과를 산출하면, 방법 또는 시스템은 엘리먼트들을 입력의 인식에서 다수의 객체들에 속하는 것으로서 간주한다.
적어도 하나의 기하학적 피처는 복수의 엘리먼트들의 엘리먼트들의 쌍들 간의 하나 이상의 거리들을 포함할 수도 있다. 하나 이상의 거리들은 엘리먼트들의 각각의 쌍의 각각의 엘리먼트의 콘텐트의 하나 이상의 팩터들 사이일 수도 있다. 하나 이상의 팩터들은 엘리먼트들의 각각의 쌍의 엘리먼트들에 공통인 팩터 및 각각의 엘리먼트를 포함하는 기하학적 경계 중 적어도 하나를 포함할 수도 있다.
공통 팩터가 하나 이상의 스트로크들의 무게중심이도록, 엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 적어도 하나의 사전-결정된 기하학적 임계는 무게중심 거리 임계이며, 비교는, 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 엘리먼트들의 쌍에 대해 결정된 무게중심 거리가 무게중심 거리 임계보다 큰 경우 포지티브 결과를 산출한다.
엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 엘리먼트들의 쌍에 대해 결정된 기하학적 경계 거리가 기하학적 경계 거리 임계보다 큰 경우 비교가 포지티브 결과를 산출하도록, 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계일 수도 있다.
비교는 엘리먼트들의 각각의 쌍에 대해 제 1 거리를 제 1 사전-결정된 거리 임계와 그리고 제 2 거리를 제 2 사전-결정된 거리 임계와 비교하는 것을 포함할 수도 있다. 이 경우에서, 비교는, 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 제 1 및 제 2 거리들이 개별의 제 1 및 제 2 사전-결정된 거리 임계들보다 큰 경우 엘리먼트들의 쌍에 대해 포지티브 결과를 산출한다. 엘리먼트들의 각각의 쌍에 대해, 제 1 거리는 엘리먼트들의 공통 팩터 간의 거리일 수도 있고, 제 2 거리는 엘리먼트들의 기하학적 경계 간의 거리일 수도 있어서, 제 1 사전-결정된 거리 임계는 공통 팩터 거리 임계이며, 제 2 사전-결정된 거리 임계는 기하학적 경계 임계이다.
엘리먼트들의 각각의 쌍의 엘리먼트들은 기하학적으로 인접할 수도 있고, 방법 또는 시스템은 복수의 엘리먼트들의 엘리먼트들의 입력의 위치적 및 시간적 순서 중 적어도 하나를 결정하도록 구성될 수도 있다.
적어도 하나의 기하학적 임계는 엘리먼트들의 입력의 결정된 시간적 순서를 고려하여 사전-결정될 수도 있다.
엘리먼트들의 쌍들 중 적어도 하나의 쌍에 대해, 방법 또는 시스템은, 각각이 적어도 하나의 쌍의 하나의 엘리먼트와 제 1 위치적 순서 관계를 갖는 제 1 엘리먼트 및 적어도 하나의 쌍의 다른 엘리먼트와 제 2 위치적 순서 관계를 갖는 제 2 엘리먼트를 포함하는 엘리먼트들의 쌍들 간의 기하학적 경계 거리들을 결정하며, 결정된 기하학적 경계 거리들의 최소 거리를 결정함으로써, 적어도 하나의 기하학적 피처를 결정하도록 구성될 수도 있다. 이 경우에서, 적어도 하나의 사전-결정된 기하학적 임계는, 비교가 결정된 최소 기하학적 경계 거리를 기하학적 경계 거리 임계와 비교하는 것을 포함하도록 기하학적 경계 거리 임계를 포함하며, 비교는, 적어도 하나의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 결정된 최소 기하학적 경계 거리가 기하학적 경계 거리 임계보다 큰 경우 포지티브 결과를 산출한다.
위치적 순서는 방향성일 수도 있고, 제 1 및 제 2 방향성 관계들은 각각 적어도 하나의 쌍의 엘리먼트들로부터의 제 1 및 제 2 방향들이다.
제 1 및 제 2 엘리먼트들의 쌍들은 제 2 엘리먼트의 기하학적 영역 내에 제 1 엘리먼트들을 포함할 수도 있다. 이 경우에서, 엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타내며, 기하학적 영역은 하나 이상의 수기된 스트로크들의 특징에 기초한다.
다수의 객체들은 하나 이상의 기하학적으로 분리된 수기된 수학 방정식들일 수도 있고, 엘리먼트들은 다수의 수학 방정식들 각각의 수기된 문자들, 기호들 및 연산자들이다.
개시된 방법 및 시스템의 다른 양태에서, 컴퓨팅 디바이스로의 다수의 객체들의 입력을 결정하기 위한 시스템으로서, 컴퓨팅 디바이스는 프로세서 및 프로세서의 제어 하에서 입력을 인식하기 위한 적어도 하나의 애플리케이션을 포함하고, 적어도 하나의 시스템 애플리케이션은 복수의 엘리먼트들의 입력을 수신하고, 복수의 엘리먼트들의 적어도 하나의 기하학적 피처를 결정하며, 결정된 적어도 하나의 기하학적 피처를 사전-결정된 기하학적 임계와 비교하여, 엘리먼트들이 하나의 객체에 또는 다수의 객체들에 속하는지를 결정하도록 구성될 수도 있다.
적어도 하나의 애플리케이션은 적어도 하나의 기하학적 피처로서, 복수의 엘리먼트들의 엘리먼트들의 쌍들 간의 하나 이상의 거리들을 계산하도록 구성될 수도 있다. 하나 이상의 거리들은 엘리먼트들의 각각의 쌍의 각각의 엘리먼트의 콘텐트의 하나 이상의 팩터들 사이일 수도 있다. 하나 이상의 팩터들은 엘리먼트들의 각각의 쌍의 엘리먼트들에 공통인 팩터 및 각각의 엘리먼트를 포함하는 기하학적 경계 중 적어도 하나를 포함할 수도 있다.
엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 공통 팩터는 하나 이상의 스트로크들의 무게중심일 수도 있으며, 적어도 하나의 사전-결정된 기하학적 임계는 무게중심 거리 임계일 수도 있으며, 적어도 하나의 애플리케이션은, 엘리먼트들의 쌍에 대해 결정된 무게중심 거리가 무게중심 거리 임계보다 큰 경우 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로 간주된다고 결정하도록 구성된다.
적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계일 수도 있고, 적어도 하나의 애플리케이션은, 엘리먼트들의 쌍에 대해 결정된 기하학적 경계 거리가 기하학적 경계 거리 임계보다 큰 경우 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로 간주된다고 구성될 수도 있다.
적어도 하나의 애플리케이션은 엘리먼트들의 각각의 쌍에 대해 제 1 거리를 제 1 사전-결정된 거리 임계와 그리고 제 2 거리를 제 2 사전-결정된 거리 임계와 비교하도록 구성될 수도 있다. 적어도 하나의 애플리케이션은, 제 1 및 제 2 거리들이 개별의 제 1 및 제 2 사전-결정된 거리 임계들보다 큰 경우 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주된다고 결정하도록 구성될 수도 있다.
엘리먼트들의 각각의 쌍에 대해, 제 1 거리는 엘리먼트들의 공통 팩터 간의 거리일 수도 있고, 제 2 거리는 엘리먼트들의 기하학적 경계 간의 거리일 수도 있고, 제 1 사전-결정된 거리 임계는 공통 팩터 거리 임계일 수도 있으며, 제 2 사전-결정된 거리 임계는 기하학적 경계 임계일 수도 있다. 엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 공통 팩터는 하나 이상의 스트로크들의 무게중심일 수도 있다.
적어도 하나의 애플리케이션은 복수의 엘리먼트들의 엘리먼트들의 입력의 위치적 및 시간적 순서 중 적어도 하나를 결정하도록 구성될 수도 있다. 적어도 하나의 기하학적 임계는 엘리먼트들의 입력의 결정된 시간적 순서를 고려하여 사전-결정될 수도 있다.
엘리먼트들의 쌍들 중 적어도 하나의 쌍에 대해, 적어도 하나의 애플리케이션은, 각각이 적어도 하나의 쌍의 하나의 엘리먼트와 제 1 위치적 순서 관계를 갖는 제 1 엘리먼트 및 적어도 하나의 쌍의 다른 엘리먼트와 제 2 위치적 순서 관계를 갖는 제 2 엘리먼트를 포함하는 엘리먼트들의 쌍들 간의 기하학적 경계 거리들을 결정하며, 결정된 기하학적 경계 거리들의 최소 거리를 결정함으로써, 적어도 하나의 기하학적 피처를 결정하도록 구성될 수도 있고, 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계를 포함할 수도 있고, 적어도 하나의 애플리케이션은, 결정된 최소 기하학적 경계 거리가 기하학적 경계 거리 임계보다 큰 경우 엘리먼트들의 적어도 하나의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주된다고 결정하도록 구성될 수도 있다.
위치적 순서는 방향성일 수도 있고, 제 1 및 제 2 방향성 관계들은 각각 적어도 하나의 쌍의 엘리먼트들로부터의 제 1 및 제 2 방향들이다. 제 1 및 제 2 엘리먼트들의 쌍들은 제 2 엘리먼트의 기하학적 영역 내에 제 1 엘리먼트들을 포함할 수도 있다. 엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 기하학적 영역은 하나 이상의 수기된 스트로크들의 특징에 기초할 수도 있다.
다수의 객체들은 하나 이상의 기하학적으로 분리된 수기된 수학 방정식들일 수도 있고, 엘리먼트들은 다수의 수학 방정식들 각각의 수기된 문자들, 기호들 및 연산자들이다.
개시된 방법 및 시스템의 다른 양태에서, 컴퓨터 판독가능 프로그램 코드가 수록되어 있는 비일시적 컴퓨터 판독가능 매체로서, 컴퓨터 판독가능 프로그램 코드는 컴퓨팅 디바이스로의 다수의 객체들의 입력을 인식하는 방법을 구현하기 위해 실행되도록 적응되고, 컴퓨팅 디바이스는 프로세서 및 프로세서의 제어 하에서 입력을 인식하기 위한 적어도 하나의 애플리케이션을 포함하고, 방법은, 애플리케이션으로, 입력의 복수의 엘리먼트들의 적어도 하나의 기하학적 피처를 결정하는 단계, 애플리케이션으로, 결정된 적어도 하나의 기하학적 피처들을 적어도 하나의 사전-결정된 기하학적 임계와 비교하여 포지티브 또는 네거티브 결과를 결정하는 단계, 이 비교가 네거티브 결과를 산출하면, 엘리먼트들을 입력의 인식에서 하나의 객체에 속하는 것으로서 간주하는 단계, 및 비교가 포지티브 결과를 산출하면, 엘리먼트들을 입력의 인식에서 다수의 객체들에 속하는 것으로서 간주하는 단계를 포함할 수도 있다.
적어도 하나의 기하학적 피처는 복수의 엘리먼트들의 엘리먼트들의 쌍들 간의 하나 이상의 거리들을 포함할 수도 있다. 하나 이상의 거리들은 엘리먼트들의 각각의 쌍의 각각의 엘리먼트의 콘텐트의 하나 이상의 팩터들 사이일 수도 있다. 하나 이상의 팩터들은 엘리먼트들의 각각의 쌍의 엘리먼트들에 공통인 팩터 및 각각의 엘리먼트를 포함하는 기하학적 경계 중 적어도 하나를 포함할 수도 있다.
엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 공통 팩터는 하나 이상의 스트로크들의 무게중심일 수도 있고, 적어도 하나의 사전-결정된 기하학적 임계는 무게중심 거리 임계일 수도 있으며, 비교는, 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 엘리먼트들의 쌍에 대해 결정된 무게중심 거리가 무게중심 거리 임계보다 큰 경우 포지티브 결과를 산출할 수도 있다. 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계일 수도 있고, 비교는, 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 엘리먼트들의 쌍에 대해 결정된 기하학적 경계 거리가 기하학적 경계 거리 임계보다 큰 경우 포지티브 결과를 산출할 수도 있다.
비교는 엘리먼트들의 각각의 쌍에 대해 제 1 거리를 제 1 사전-결정된 거리 임계와 그리고 제 2 거리를 제 2 사전-결정된 거리 임계와 비교하는 것을 포함할 수도 있다. 비교는, 엘리먼트들의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 제 1 및 제 2 거리들 양쪽 모두가 개별의 제 1 및 제 2 사전-결정된 거리 임계들보다 큰 경우 엘리먼트들의 쌍에 대해 포지티브 결과를 산출할 수도 있다.
엘리먼트들의 각각의 쌍에 대해, 제 1 거리는 엘리먼트들의 공통 팩터 간의 거리일 수도 있고, 제 2 거리는 엘리먼트들의 기하학적 경계 간의 거리일 수도 있고, 제 1 사전-결정된 거리 임계는 공통 팩터 거리 임계일 수도 있으며, 제 2 사전-결정된 거리 임계는 기하학적 경계 임계일 수도 있다.
엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 공통 팩터는 하나 이상의 스트로크들의 무게중심일 수도 있다. 엘리먼트들의 각각의 쌍의 엘리먼트들은 기하학적으로 인접할 수도 있다. 비일시적 컴퓨터 판독가능 매체는, 복수의 엘리먼트들의 엘리먼트들의 입력의 위치적 및 시간적 순서 중 적어도 하나를, 애플리케이션으로, 결정하는 것을 더 포함할 수도 있다.
적어도 하나의 기하학적 임계는 엘리먼트들의 입력의 결정된 시간적 순서를 고려하여 사전-결정될 수도 있다.
엘리먼트들의 쌍들 중 적어도 하나의 쌍에 대해, 적어도 하나의 기하학적 피처의 결정은, 애플리케이션으로, 각각이 적어도 하나의 쌍의 하나의 엘리먼트와 제 1 위치적 순서 관계를 갖는 제 1 엘리먼트 및 적어도 하나의 쌍의 다른 엘리먼트와 제 2 위치적 순서 관계를 갖는 제 2 엘리먼트를 포함하는 엘리먼트들의 쌍들 간의 기하학적 경계 거리들을 결정하는 것, 및 애플리케이션으로, 결정된 기하학적 경계 거리들의 최소 거리를 결정하는 것을 포함할 수도 있고, 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계를 포함할 수도 있고, 비교는 결정된 최소 기하학적 경계 거리를 기하학적 경계 거리 임계와 비교하는 것을 포함할 수도 있으며, 비교는, 적어도 하나의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 결정된 최소 기하학적 경계 거리가 기하학적 경계 거리 임계보다 큰 경우 포지티브 결과를 산출할 수도 있다.
위치적 순서는 방향성일 수도 있고, 제 1 및 제 2 방향성 관계들 각각은 적어도 하나의 쌍의 엘리먼트들로부터의 제 1 및 제 2 방향들이다. 제 1 및 제 2 엘리먼트들의 쌍들은 제 2 엘리먼트의 기하학적 영역 내에 제 1 엘리먼트들을 포함할 수도 있다.
엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타낼 수도 있고, 기하학적 영역은 하나 이상의 수기된 스트로크들의 특징에 기초한다.
다수의 객체들은 하나 이상의 기하학적으로 분리된 수기된 수학 방정식들일 수도 있고, 엘리먼트들은 다수의 수학 방정식들 각각의 수기된 문자들, 기호들 및 연산자들이다.
본 시스템 및 방법은 도면들과 함께 취해진, 그 예들의 다음의 상세한 설명들로부터 더 충분히 이해될 것이다. 도면들에서, 유사한 참조 부호들은 유사한 엘리먼트들을 도시한다. 도면들에서:
도 1 은 본 시스템 및 방법의 일 예에 따른 컴퓨팅 디바이스의 블록도를 나타낸다;
도 2 는 본 시스템 및 방법의 일 예에 따른 수기 인식을 위한 시스템의 블록도를 나타낸다;
도 3 은 본 시스템 및 방법의 일 예에 따른 도 2 의 수기 인식 시스템의 상세를 예시하는 블록도를 나타낸다;
도 4 는 본 시스템에 따라 수기된 수학 방정식들 입력의 예를 나타낸다;
도 5 는 본 시스템에 따라 수기된 수학 방정식들 입력의 예를 나타낸다;
도 6 은 본 시스템 및 방법에 따른 예시의 다수의 객체 입력을 나타낸다;
도 7 은 컴퓨팅 디바이스로의 다수의 객체 입력을 인식하는 본 시스템 및 방법의 일 예의 흐름도를 나타내다;
도 8 은 본 시스템에 따라 수기된 수학 방정식 입력의 예를 나타낸다;
도 9 는 시간-순서 디테일을 갖는 도 6 의 예시의 다수의 객체 입력을 나타낸다;
도 10a 내지 도 10c 는 본 시스템 및 방법에 따른 다수의 객체 입력을 인식하기 위한 본 시스템의 일 예를 나타낸다;
도 11a 내지 도 11d 는 본 시스템 및 방법에 따른 다수의 객체 입력을 인식하기 위한 본 시스템의 일 예를 나타낸다;
도 12a 및 도 12b 는 본 시스템 및 방법에 따른 도 11 의 방법 또는 시스템의 대안의 예를 나타낸다;
도 13 은 도 10 내지 도 12 의 예시의 방법들의 흐름도를 나타낸다;
도 14 는 도 13 의 흐름도의 일부의 흐름도를 나타낸다;
도 15 는 도 13 의 흐름도의 다른 일부의 흐름도를 나타낸다;
도 16 은 본 시스템에 따라 수기된 수학 방정식 입력의 다른 예를 나타낸다;
도 17 은 도 12 의 예들에 적용된 바와 같은 도 13 의 흐름도의 대안의 일부의 흐름도를 나타낸다.
다음의 상세한 설명에서, 다수의 특정 상세들은 관련 교시들의 전체 이해를 제공하기 위해 예들의 방식으로 설명된다. 그러나, 본 교시들이 이러한 상세들 없이 실시될 수도 있다는 것이 당업자에게 자명해야 한다. 다른 경우들에서, 잘 알려진 방법들, 절차들, 컴포넌트들, 및/또는 회로부는 본 교시들의 양태들을 불필요하게 모호하게 하는 것을 방지하기 위해, 상세 없이, 상대적으로 고-레벨로 설명되어 있다. 업, 다운, 위, 아래, 최저, 최고, 수평, 수직 등과 같은 방향성 피처들의 참조 및 논의는 인식될 입력이 이루어지는 입력 표면에 적용된 바와 같이 데카르트 좌표계에 대하여 이루어진다.
본원에 설명된 다양한 기술들은 일반적으로, 다수의 수기된 객체 인식에 관한 것이다. 본원에 설명된 시스템 및 방법은 사전-프로세싱 및 인식의 프로세스들을 통해 컴퓨팅 디바이스로의 사용자의 자연스러운 기입 또는 드로잉 스타일 입력을 인식하는데 사용될 수도 있다. 컴퓨팅 디바이스로의 사용자의 입력은 컴퓨팅 디바이스에 접속된, 디지털 펜 또는 마우스와 같은 입력 디바이스를 통해 또는 컴퓨팅 디바이스에 접속된 또는 컴퓨팅 디바이스의 터치 감지 스크린과 같은 입력 표면을 통해 이루어질 수 있다. 다양한 예들이 소위 온라인 인식 기법들을 사용하는 수기 입력의 인식에 대하여 설명되지만, 디지털 잉크보다는 이미지들이 인식되는 오프라인 인식 (ICR) 과 같은 인식을 위한 다른 형태들의 입력에 대해 응용이 가능하다는 것으로 이해된다.
도 1 은 예시의 컴퓨팅 디바이스 (100) 의 블록도를 나타낸다. 컴퓨팅 디바이스는 컴퓨터 데스크톱, 랩톱, 태블릿 PC, 이-북 리터, 모바일폰, 스마트폰, 웨어러블 컴퓨터, 디지털 시계, 대화식 화이트보드, 글로벌 위치 시스템 (GPS) 유닛, 엔터프라이즈 휴대 단말기 (EDA), 퍼스널 휴대 단말기 (PDA), 게임 콘솔 등일 수도 있다. 컴퓨팅 디바이스 (100) 는 적어도 하나의 프로세싱 엘리먼트, 메모리의 일부 형태 및 입력 및/또는 출력 (I/O) 디바이스들을 포함한다. 컴포넌트들은 입력들 및 출력들, 예컨대 커넥터들, 라인들, 버스들, 케이블들, 버퍼들, 전자기 링크들, 네트워크들, 모뎀들, 트랜스듀서들, IR 포트들, 안테나들, 또는 당업자에게 알려진 다른 것들을 통해 서로와 통신한다.
컴퓨팅 디바이스 (100) 는 이미지들, 텍스트, 및 비디오와 같은 컴퓨팅 디바이스로부터의 데이터를 출력하기 위한 적어도 하나의 디스플레이 (120) 를 갖는다. 디스플레이 (102) 는 LCD, 플라즈마, LED, iOLED, CRT, 또는 당업자에게 알려진 바와 같은 터치 감지식인 또는 터치 감지식이 아닌 임의의 다른 적합한 기술을 사용할 수도 있다. 디스플레이 (102) 의 적어도 일부는 적어도 하나의 입력 표면 (104) 과 함께-위치된다. 입력 표면 (104) 은 저항성, 표면 탄성파, 용량성, 적외선 그리드, 적외선 아크릴 프로젝션, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 또는 당업자에게 알려진 바와 같은 임의의 다른 적합한 기술과 같은 기술을 이용하여 사용자 입력을 수신할 수도 있다. 입력 표면 (104) 은 그 경계들을 명확하게 식별하는 영구적인 또는 비디오-생성된 보더에 의해 경계지어질 수도 있다.
입력 표면 (104) 에 추가하여, 컴퓨팅 디바이스 (100) 는 로컬 인터페이스를 통해 통신 가능하게 커플링되는 하나 이상의 추가적인 I/O 디바이스들 (또는 주변 장치들) 을 포함할 수도 있다. 추가적인 I/O 디바이스들은 입력 디바이스들, 예컨대 키보드, 마우스, 스캐너, 마이크로폰, 터치패드들, 바 코드 리더들, 레이저 리더들, 무선-주파수 디바이스 리더들, 또는 당업자에게 알려진 임의의 다른 적합한 기술을 포함할 수도 있다. 또한, I/O 디바이스들은 출력 디바이스들, 예컨대 프린터, 바 코드 프린터들, 또는 당업자에게 알려진 임의의 다른 적합한 기술을 포함할 수도 있다. 또한, I/O 디바이스들은 입력들 및 출력들 양쪽 모두를 통신하는 통신 디바이스들, 예컨대 변조기/복조기 (모뎀; 다른 디바이스, 시스템, 또는 네트워크에 액세스하기 위함), 무선 주파수 (RF) 또는 다른 트랜시버, 전화에 의한 인터페이스, 브리지, 라우터, 또는 당업자에게 알려진 임의의 다른 적합한 기술을 포함할 수도 있다. 로컬 인터페이스는 통신들을 가능하게 하는 추가의 엘리먼트들, 예컨대 단순함을 위해 생략되지만 당업자에게 알려져 있는 제어기들, 버퍼들 (캐시들), 드라이버들, 반복기들, 및 수신기들을 가질 수도 있다. 또한, 로컬 인터페이스는 다른 컴퓨터 컴포넌트들 간의 적합한 통신들을 가능하게 하도록 어드레스, 제어, 및/또는 데이터 접속들을 포함할 수도 있다.
컴퓨팅 디바이스 (100) 는 또한, 소프트웨어, 특히 메모리 (108) 에 저장된 소프트웨어를 실행하기 위한 하드웨어 디바이스인, 프로세서 (106) 를 포함한다. 프로세서는 임의의 맞춤형 (custom made) 또는 상용 가능한 범용 프로세서, 중앙 처리 장치 (CPU), (마이크로칩 또는 칩세트의 형태의) 반도체 기반 마이크로프로세서, 매크로프로세서, 마이크로제어기, 디지털 신호 프로세서 (DSP), 주문형 집적 회로 (ASIC), 필드 프로그래머블 게이트 어레이 (FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 상태 머신, 또는 당업자에게 알려진 소프트웨어 명령들을 실행하기 위해 설계된 이들의 임의의 조합일 수 있다. 적합한 상용 가능한 마이크로프로세서들의 예들은 다음과 같다: 휴렛-팩커드 사로부터의 PA-RISC 시리즈 마이크로프로세서, 인텔 사로부터의 80x86 또는 Pentium 시리즈들, IBM 으로부터의 PowerPC 마이크로프로세서, 선 마이크로시스템 사로부터의 Sparc 마이크로프로세서, 모토로라 사로부터의 68xxx 시리즈 마이크로프로세서, DSP 마이크로프로세서들, 또는 ARM 마이크로프로세서들.
메모리 (108) 는 휘발성 메모리 엘리먼트들 (예를 들어, 랜덤 액세스 메모리 (RAM, 예컨대 DRAM, SRAM, 또는 SDRAM)) 및 비휘발성 메모리 엘리먼트들 (예를 들어, ROM, EPROM, 플래시 PROM, EEPROM, 하드 드라이브, 자기 또는 광학 테이프, 메모리 레지스터들, CD-ROM, WORM, DVD, RAID (redundant array of inexpensive disks), 다른 직접 액세스 저장 디바이스 (DASD)) 중 어느 하나 또는 조합을 포함할 수 있다. 또한, 메모리 (108) 는 전자, 자기, 광학, 및/또는 다른 유형들의 저장 매체를 통합할 수도 있다. 메모리 (108) 는, 다양한 컴포넌트들이 서로로부터 멀리 놓이지만 또한 프로세서 (106) 에 의해 액세스될 수 있는 분산된 아키텍처를 가질 수 있다. 또한, 메모리 (108) 는, 컴퓨팅 디바이스 (100) 에 의해 원격으로 액세스 가능한, 서버 또는 클라우드-기반 시스템에서와 같이, 디바이스로부터 멀리 있을 수도 있다. 메모리 (108) 는 프로세서 (106) 에 커플링되고, 따라서 프로세서 (106) 는 메모리 (108) 로부터 정보를 판독하고 메모리에 정보를 기입할 수 있다. 대안에서, 메모리 (108) 는 프로세서에 통합될 수도 있다. 다른 예에서, 프로세서 (106) 및 메모리 (108) 는 단일의 ASIC 또는 다른 집적 회로 양쪽 모두에 상주할 수도 있다.
메모리 (108) 내의 소프트웨어는 운영 시스템 (110), 애플리케이션 (112) 및 수기 인식 (handwriting recognition; HWR) 시스템 (114) 을 포함하고, 이것은 각각 하나 이상의 별개의 컴퓨터 프로그램들을 포함하고, 이들 각각은 논리 함수들을 구현하기 위해 실행 가능한 명령들의 순서화된 리스팅을 갖는다. 운영 시스템 (110) 은 애플리케이션들 (112) 및 HWR 시스템 (114) 의 실행을 제어한다. 운영 시스템 (110) 은 임의의 전매 운영 시스템 또는 상용 가능한 운영 시스템, 예컨대 WEBOS, WINDOWS®, MAC 및 IPHONE OS®, LINUX, 및 ANDROID 일 수도 있다. 다른 운영 시스템들이 또한, 이용될 수도 있다는 것이 이해된다.
애플리케이션들 (112) 은 본원에 설명된 바와 같은 수기 인식, 상이한 기능들, 또는 양쪽 모두에 관련될 수도 있다. 애플리케이션들 (112) 은 제조 시에 컴퓨팅 디바이스 (100) 에 제공된 프로그램들을 포함하고, 제조 후에 컴퓨팅 디바이스 (100) 로 업로드 또는 다운로드된 프로그램들을 더 포함할 수도 있다. 일부 예들은 텍스트 편집기, 전화 걸기, 연락처 디렉토리, 인스턴트 메시징 기능, CAD (Computer-Aided Design) 프로그램, 이메일 프로그램, 워드 프로세싱 프로그램, 웹 브라우저 및 카메라를 포함한다.
지지 및 준수 능력들이 있는, HWR 시스템 (114) 은 소스 프로그램, 실행 가능한 프로그램 (객체 코드), 스크립트, 애플리케이션, 또는 수행될 명령들의 세트를 갖는 임의의 다른 엔티티일 수도 있다. 소스 프로그램의 경우, 프로그램은 운영 시스템과 접속되어 적절히 동작하도록, 메모리 내에 포함되거나 포함되지 않을 수도 있는, 컴플라이어, 어셈블러, 인터프리터, 등을 통해 트랜스레이트될 필요가 있다. 또한, 지원 및 컴플라이언스 능력들을 갖는 수기 인식 시스템은 (a) 데이터 및 방법들의 클래스들을 갖는, 객체 지향된 프로그래밍 언어; (b) 루틴들, 서브루틴들, 및/또는 함수들, 예를 들어 C, C++, Pascal, Basic, Fortran, Cobol, Perl, Java, Objective C, Swift, 및 Ada 에 제한되지 않는, 절차 프로그래밍 언어; 또는 (c) 예를 들어 Hope, Rex, Common Lisp, Scheme, Clojure, Racket, Erlang, OCaml, Haskell, Prolog, 및 F# 에 제한되지 않는 기능적 프로그래밍 언어들로서 기입될 수 있다. 대안으로, HWR 시스템 (114) 은 서버 또는 클라우드-기반 시스템과 같이 디바이스로부터 멀리 있는 수기 인식 시스템과 통신하기 위한 방법 또는 시스템일 수도 있지만, 컴퓨팅 디바이스 (100) 의 전술된 통신 I/O 디바이스들을 사용하여 통신 링크들을 통해 컴퓨팅 디바이스 (100) 에 의해 원격으로 액세스 가능하다.
입력 표면 (104) 상에 또는 이를 통해 입력된 스트로크들은 디지털 잉크로서 프로세서 (106) 에 의해 프로세싱된다. 사용자는 입력 표면과의 사용에 적합한 펜 또는 스타일러스와 같은 일부 기구 또는 손가락으로 스트로크를 입력할 수도 있다. 사용자는 또한, 입력 표면 (104) 부근에서 모션들을 감지하는 기술이 사용되고 있는 경우, 또는 마우스 또는 조이스틱과 같은 컴퓨팅 디바이스 (100) 의 주변 디바이스로 입력 표면 (104) 위에 제스처를 행함으로써 스트로크를 입력할 수도 있다. 스트로크는 적어도 스트로크 개시 로케이션, 스트로크 종료 로케이션, 및 스트로크 개시 및 종료 로케이션들을 연결하는 경로를 특징으로 한다. 상이한 사용자들이 동일한 객체, 예를 들어 문자, 형상, 또는 기호를, 약간의 변화들을 갖고, 자연스럽게 기입할 수도 있기 때문에, 본 시스템은, 각각의 객체가 정확한 또는 의도된 객체로서 인식되고 있는 동안 입력될 수도 있는 다양한 방식들을 수용한다.
도 2 는 HWR 시스템 (114) 의 일 예의 개략적 그림이다. HWR 시스템 (114) 은 사전프로세싱 (116), 인식 (118) 및 출력 (120) 과 같은 스테이지들을 포함한다. 사전프로세싱 스테이지 (116) 는 디지털 잉크를 프로세싱하여 인식 스테이지 (118) 동안 더 좋은 정확도를 달성하고 프로세싱 시간을 감소시킨다. 이 사전프로세싱은 비-스플라인 근사법 (B-spline approximation) 과 같은 사이즈 정규화 및/또는 방법들을 적용하여 입력을 평활화함으로써 스트로크 개시 및 종료 로케이션들을 연결하는 경로의 정규화를 포함할 수도 있다. 사전프로세싱된 스트로크들은 그 후, 인식 스테이지 (118) 로 패스되고, 이 스테이지는 스트로크들을 프로세싱하여 그것 때문에 형성된 객체들을 인식한다. 인식된 객체들은 그 후, 일반적으로 수기된 엘리먼트들/문자들의 조판된 버전으로서 디스플레이 (102) 로 출력 (120) 된다.
인식 스테이지 (118) 는 상이한 프로세싱 엘리먼트들 또는 엑스퍼트들을 포함할 수도 있다. 도 3 은 인식 스테이지 (118) 의 개략적 상세를 나타내는 도 2 의 예의 개략적 그림이다. 동적 프로그래밍을 통해 협력하여 출력 (120) 을 생성하는 3 개의 엑스퍼트들 (세분화 엑스퍼트 (122), 인식 엑스퍼트 (124), 및 언어 엑스퍼트 (126)) 이 예시된다.
세분화 엑스퍼트 (122) 는, 표현들, 예를 들어 수학 방정식들, 단어들, 또는 형상들의 그룹들을 형성하기 위해 입력 스트로크들을 개별의 엘리먼트 가설들, 예를 들어 알파벳 문자들 및 수학 연산자들, 텍스트 문자들, 개별의 형상들, 또는 서브 표현으로 세그먼트화하기 위한 상이한 방식들을 정의한다. 예를 들어, 세분화 엑스퍼트 (122) 는 세분화 그래프를 획득하도록 원래의 입력의 연속적인 스트로크들을 그룹화함으로써 엘리먼트 가설들을 형성할 수도 있고, 여기서 각각의 노드는 적어도 하나의 엘리먼트 가설에 대응하고 여기서 엘리먼트들 간의 인접성 제약들은 노드 접속들에 의해 핸들링된다.
인식 엑스퍼트 (124) 는 분류자 (128) 에 의해 추출된 피처들의 분류를 제공하고 세분화 그래프의 각각의 노드에 대한 가능성들 또는 인식 스코어들을 갖는 엘리먼트 후보들의 리스트를 출력한다. 이 인식 태스크를 어드레싱하기 위해 사용될 수 있는 많은 유형들의 분류자들, 지원 벡터 머신, 은닉 마르코프 모델, 또는 다중층 퍼셉트론 (Multicayer Perceptrons), 딥 (deep), 콘볼루션 또는 리커런트 (recurrent) 신경 네트워크와 같은 신경 네트워크들이 존재한다. 선택은 태스크에 대해 요망되는 복잡성, 정확도, 및 속도에 의존한다.
언어 엑스퍼트 (126) 는 언어 모델들 (예를 들어, 문법 또는 시맨틱들) 을 사용하여 세분화 그래프에서 상이한 경로들에 대한 언어학 의미를 생성한다. 엑스퍼트 (126) 는 언어학 정보 (130) 에 따라 다른 엑스퍼트들에 의해 제안된 후보들을 체크한다. 언어학 정보 (130) 는 어휘집, 정규 표현식들 등을 포함할 수 있다. 언어 엑스퍼트 (126) 는 최선의 인식 경로를 찾는 것을 목표로 한다. 일 예에서, 언어 엑스퍼트 (126) 는 언어학 정보 (130) 의 콘텐트를 나타내는 최종 상태 오토머톤 (결정론 FSA) 과 같은 언어 모델을 탐구함으로써 이것을 행한다. 어휘집 제약에 추가하여, 언어 엑스퍼트 (126) 는, 엘리먼트들의 소정 시퀀스가 지정된 언어에서 얼마나 빈번하게 나타나고 특정 사용자에 의해 사용되어, 세분화 그래프의 소정 경로의 해석의 언어학 가능성을 평가하는지에 대한 통계적 정보 모델링을 사용할 수도 있다.
본원에 설명된 시스템 및 방법은 다중 방정식들을 인식하기 위해 HWR 시스템 (114) 을 사용한다. 다중 방정식들은 하나 이상의 페이지들 상에서 여러 개의 방정식들의 레이아웃으로서 정의된다. 방정식들은 링크되고 (예를 들어, 설명의 상이한 단계들을 나타내는, 방정식들의 시퀀스 또는 시스템) 또는 링크되지 않을 수도 있다 (예를 들어, 주제에 대한 여러 개의 연습들).
도 4 는, 입력 표면 (104) 을 통해 입력되어 있는, 수기된 수학 방정식들 또는 표현식들 (401-404) 의 수직 리스트 (400) 의 일 예를 예시한다. 각각의 방정식은 별개의 라인들 (405-408) 상에 기입되어 있다 (이들 라인들은 사용자 입력을 가이드하기 위해 디스플레이 (102) 상에 실제로 디스플레이될 수도 있지만, 이것이 반드시 필요하지는 않다). 각각의 방정식은 다른 방정식들에 독립적이며, 완전한 비-링크된 연산들이다. 또한, 각각의 방정식은 상대적으로 단순하여, 단일 수 결과를 갖는 2 개의 수들의 나눗셈 또는 곱셈 연산들이다.
단지 제 1 수기된 방정식 (401) 이 존재했으면, 즉, 인식 스테이지 (118) 는 그 엑스퍼트들을 사용하여 다수의 가설들을 생성 및 테스트할 것이다. 방정식 (401) 내의 각각의 엘리먼트에 대한 후보들, 즉, '3', '5', '÷', '7', '=', 및 '5' 는 엘리먼트들의 인식된 조판된 버전들, 즉, '35 ÷ 7 = 5' 의 출력 (120) 을 제공하도록 고려되고 스코어링될 것이다. 가설들을 생성하기 위해, 각각의 엘리먼트의 개별의 세분화된 스트로크들의 다양한 연결 (concatenation) 들을 포함하는, 많은 후보들이 고려된다.
그러나, 소정의 수학 연산자들의 검출 또는 다중 방정식들이 존재한다는 명확한 인식 없이 후속의 수기된 방정식들 (402-404) 이 도 4 의 예에 존재하기 때문에, 인식 스테이지 (118) 는 제 1 방정식 (401) 내의 엘리먼트들에 대해서 뿐만 아니라 모든 4 개의 방정식들의 엘리먼트들에 대해 그 엑스퍼트들을 사용하여 다수의 가설들을 생성 및 테스트하도록 요구될 것이고, 이것은 프로세싱의 레벨을 증가시키고 가능한 인식 정확도에 영향을 준다. 수학적 또는 산술적 방정식들이 2-차원 (2D), 예를 들어 수평 및 수직이기 때문에, 이 여분의 프로세싱이 필요할 것이다. 이것은 텍스트와 상이하고, 여기서 텍스트의 각각의 라인은 실질적으로 1-차원 (1D), 예를 들어 수평적 (예를 들어, 언어 엑스퍼트에 의해 다뤄질 수 있는 위첨자 및 아래첨자 텍스트는 제외하고) 이므로, 단지 라인-간 가설들이 텍스트 인식 동안 생성 및 테스트된다 (예를 들어, 하이픈으로) 라인들 위에 분할되는 단어들의 존재. 따라서, 다수의 라인들이 존재하기 때문에 다중 방정식들이 존재한다고 가정할 수 없다. 예를 들어, 방정식 (401) 은 분자로서 '5', 분모로서 '7' 및 나누기 선으로서 '÷' 기호를 갖고 기입될 수 있다. 방정식 (401) 은 그 후, 그 형태로 하나 보다 많은 수직 라인을 차지할 것이다.
도 5 는 다중 방정식들 (502-504) 위의 초기 방정식 (501) 의 재-표현이 입력되는 다수의 수기된 방정식들의 수직 리스트 (500) 를 예시한다. 알 수 있는 바와 같이, 방정식들 (501-504) 각각은 수평으로 변위된 그리고 수직으로 변위된 엘리먼트들 양쪽 모두를 포함한다.
이것은 또한, 드로잉들, 기하학적 스케치들, 차트들, 그래프들, 다이어그램들, 테이블들, 회로들, 음악, 화학 식들 등과 같은 객체들의 2D 시스템의 임의의 수기된 입력에 적용하고, 여기서 다수의 객체들은 입력되고 별개로 인식될 필요가 있다. 따라서, 관련 없는 가설들을 생성하기 전에 다수의 2D 객체들의 존재를 검출하는 것은 인식 프로세싱 오버헤드 (예를 들어, 시간 및 메모리 리소스들) 을 감소시키고 (예를 들어, 의도되지 않지만 다르게는 엑스퍼트 모델들에 기초한 개연성 있는 후보들이 테스트되지 않은) 인식 정확도를 증가시키는 것을 돕는다.
다수의 입력 객체들을 검출하는 하나의 방법은, 객체의 입력의 끝을 나타내기 위해, 새로운 기입 영역을 생성하는 것, 새로운 객체/라인의 물리적 또는 가상 버튼을 탭핑하는 것, 소정의 수기된 제스처들 - 예를 들어, 하방 스트로크 - 을 입력하는 것 또는 다른 상호작용들 - 예를 들어 입력 표면 상의 탭과 같은 특정 사용자 액션을 요구하게 될 것이다. 그러나, 이러한 특정 사용자 액션들은, 이들이 자연스러운 수기에 포함되지 않기 때문에 사용자들에게 만족스러운 경험을 제공하지 않을 것이다. 다수의 2D 객체들의 인식 프로세스는, 시스템의 사용자들의 경험을 감소시키거나 또는 인식될 입력의 유형에 제약들을 가하는 방식으로 영향을 받지 않아야 한다. 예를 들어, 도 4 및 도 5 에서 등호 '=' 와 같은 방정식들에서의 수학 연산자 기호들의 인식은 다중 방정식의 입력을 검출하는데 사용될 수 있다. 그러나, 이 가정은 사용자들이 하나의 라인 상에서 다수의 등식들 - 예를 들어, (x + 1) (x + 2) = x2 + 2x + x + 2 = x2 + 3x + 2 - 을 사용하는 것 또는 연산자들로 방정식들을 시작하는 것 - 예를 들어 문제의 증명 또는 작업의 전개에서 제 1 엘리먼트로서 '=' 을 기입하거나 또는 이전 라인 상에 기입된 방정식에 연속하여 제 1 엘리먼트로서 '+' 을 기입하는 것을 제한할 것이다.
수직 리스트로서 입력된 다수의 2D 객체들의 검출을 위한 인식 스테이지 (118) 의 다른 예는 입력된 객체들의 엘리먼트들의 기하학적 피처들을 사용하여 수직으로 변위된 수기된 객체들 간의 비어 있는 수직적 공간 (즉, 수기된 스트로크들이 입력되지 않은 입력 표면 (104) 의 공간) 의 결정을 포함한다. 사전결정된 사이즈, 예를 들어 임계보다 큰 수직적 빈 공간이 검출된다. 이것은, 입력을 섹션들로 '커팅' 하여, 임계 위의 이들 커트를 방정식들과 같은 개별의 객체들 사이에 공간에 있는 것으로서 분류 또는 필터링하는 프로세스이다. 다수의 라인들 위의 모든 엘리먼트들은 동일한 방정식에 속하는 것으로서 인식 스테이지 (118) 의 엑스퍼트들에 의해 후속의 프로세싱에서 간주되지 않는다. 이것은 생성 및 테스트된 가설들의 수를 상당히 줄인다. 이 분류는 하나 이상의 기하학적 코스트들을 할당함으로써 수행된다. 임계는, 상당한 수의 긍정 오류들을 리턴하지 않고 다수의 객체 검출을 최적화하는 적합한 임계 레벨들을 결정하도록 필터링 프로세스를 최적화 또는 트레이닝하기 위해 필터링이 수행될 수 있도록 조정 가능한, (수직적) 기하학적 코스트(들)을 포함한다. 이 예는 수평 방향에서 유사하게 적용 가능하다.
도 6 은 입력 표면 (104) 상의 수직적으로 변위된 다수의 객체 입력 (600) 의 예를 예시하고, 도 7 은 다수의 객체 입력 (600) 을 인식하기 위한 예시의 방법 (700) 의 흐름도이다. 다수의 객체 입력 (600) 은 입력되어 있는 하나 이상의 수기된 스트로크들을 포함하는 박스들로서 예시된 다수의 엘리먼트들 (601-609) 을 포함한다. 이 박스들은 엘리먼트의 스트로크들의 세트 또는 각각의 스트로크의 범위 주위의 바운딩 박스들일 수도 있다. 엘리먼트들 (601-609) 각각은 다른 엘리먼트들 (601-609) 각각에 대하여 ('x' 방향으로서 지정된) 수평적 및/또는 ('y' 방향으로서 지정된) 수직적 변위를 갖고 기입되어 있다. 그러나, 엘리먼트들 (601-604) 은 일반적으로, 제 1 수평 그룹 (610) 으로 (즉, 점선의 수평 라인 (a) 을 따라) 기입되고, 엘리먼트들 (605-609) 은 일반적으로 제 2 수평 그룹 (611) 으로 (즉, 점선의 수평 라인 (a') 을 따라) 기입되며, 여기서 라인 a 는 라인 a' 로부터 수직으로 변위된다. 엘리먼트들의 제 1 그룹은 제 1 방정식을 나타낼 수도 있고, 엘리먼트들의 제 2 그룹은 제 2 방정식을 나타낼 수도 있다.
수기된 스트로크들의 입력이 수신되고 (단계 701), 엘리먼트들이 결정된다 (단계 702). 그 후, 엘리먼트들의 그룹들이 확립될 수 있는지가 결정된다 (단계 703). 그룹들이 확립될 수 없으면, 엘리먼트들은 모든 입력 스트로크들을 사용하여 가설들을 생성하도록 다음 스테이지로 전송된다 (단계 704). 엘리먼트들이 그룹화될 수 있으면, 각각의 그룹에 대하여 바운딩 박스가 확립된다 (단계 705). 도 6 에서, 제 1 바운딩 박스 (612) 는 엘리먼트들의 제 1 그룹 (610) 에 대하여 확립되고, 제 2 바운딩 박스 (613) 는 엘리먼트들의 제 2 그룹 (611) 에 대하여 확립된다. 더 많은 스트로크들이 수신되면 (단계 706), 이들 그룹화들 및 바운딩 박스들이 재평가 및 조정된다.
그 후, 인접한 그룹들이 있는지가 결정된다 (단계 707). 인접한 그룹들이 있으면, 애플리케이션에 따라 y 및/또는 x 방향들에서 인접한 바운딩 박스 에지들에서 '커트' 라인들이 확립된다 (단계 708). 도 6 에서, 잠재적인 제 1 수평 커트 라인 (b) 은 바운딩 박스 (612) 의 최하 (즉, y 방향에서의) 에지에 확립되고, 잠재적인 제 2 수평 커트 라인 (b') 은 바운딩 박스 (613) 의 최고 (즉, y 방향에서의) 에지에 확립된다. 인접한 커트 라인들 간의 거리의 기하학적 피처가 계산/측정되어, 픽셀 카운트에 의해 행해질 수 있는, 다음의 인식 스테이지에서 사용하기 위한 기하학적 코스트를 결정한다 (단계 709). 계산된 거리는 그 후, 사전결정된 임계 거리에 비교되고 (단계 710), 여기서 임계의 사전-결정은 입력 표면 (104) 의 픽셀 레졸루션을 고려하여 이루어질 수도 있다. 도 6 에서, 예를 들어 커트 라인들 (b 및 b') 간의 거리 (c) 는 2 개의 엘리먼트 그룹들 간의 빈 공간의 높이가, 엘리먼트 (603) 인 제 1 그룹 (610) 의 최하 엘리먼트와 엘리먼트 (607) 인 제 2 그룹 (611) 의 최고 엘리먼트 간의 거리인 2 개의 그룹들 간의 가장 가까운 수직 거리인 것을 나타낸다.
기하학적 코스트가 임계 위이면, 제 1 및 제 2 그룹들은 2 개의 별개의 2D 객체들, 예컨대 2 개의 방정식들을 나타내고, 다음의 인식 스테이지 가설들은 인접한 다수의 객체들의 엘리먼트들이 생성 또는 테스트되는 것 (단계 711) 을 수반하지 않는다. 이것은 인식을 단순화하고 인식 속도를 증가시킨다. 반면에, 기하학적 코스트가 임계 아래이면, 결정된 그룹들의 모든 엘리먼트들에 대한 가설들은 다음 인식 스테이지에 의해 생성 및 테스트되어야 한다 (단계 712).
도 7 에 도시된 예는 수기된 스트로크들이 입력될 때 수행될 수도 있는 반복 프로세스이다. 대안으로, 프로세스는, 단계들 (707-712) 의 기하학적 코스트 테스트로 론칭하기 전에, 단계 (706) 가 생략되고 단계들 (701-705) 이 모든 스트로크들에 대해 수행되도록 이전에 입력된 정보 상에서 수행될 수도 있다. 따라서, 다수의 엘리먼트 입력의 결정 및 엘리먼트들의 그룹화는, 엘리먼트들의 위치적 순서의 결정을 통해, 다수의 객체 인식 프로세스 전에 수행된다.
도 6 및 도 7 에서 설명된 임계의 설정은, 기하학적 코스트가 별개의 수직적으로 변위된 객체들을 결정하는데 단독으로 사용되어야 하는 경우 고 레벨의 신뢰도가 달성되도록 행해진다. 그러나, 기하학적 코스트 임계는 요구된 신뢰도의 레벨 및 수기된 입력의 애플리케이션 또는 유형에 따라 조정 가능한 것으로 이해된다. 예를 들어, 수학적 기호들의 수기된 입력, 단일 방정식에서 각각의 스트로크/엘리먼트의 사이즈 및 상대적 위치는 크게 변할 수 있다. 도 8 에서와 같이, 여러 엘리먼트들의 수직적 오버랩핑이 발생할 수 있고, 여러 라인들 위의 수직적 변위가 또한, 발생할 수 있다. 이러한 경우에서, 다중 방정식 입력의 표시자로서 수직적 기하학적 코스트를 단독으로 수락하기 위해 신뢰도 레벨은 더 높아야 한다. 기하학적 코스트 임계의 조정은, 소정 임계들이 애플리케이션 및 다른 팩터들, 예컨대 스트로크 사이즈, 스트로크들의 수 등에 기초하여 미리정의되는 룩업 테이블 또는 유사한 시스템을 통해 제공될 수도 있다.
전술된 예에서, 수직적으로 분리된 입력은 수평적으로 변위된 엘리먼트들의 그룹들을 확립함으로써 검색된다. 이들 그룹들은 먼저, 수평적으로 인접한 엘리먼트들이 더 이상 존재하지 않을 때까지 수평적으로 인접한 엘리먼트들 간의 수평적 빈 공간에 대한 검색을 수행함으로써 수행될 수도 있다. 이들 엘리먼트들은 그룹으로 간주되고, 그 경계에 대하여 바운딩 박스가 확립되어 x 및 y 방향들 양쪽 모두에서 모든 엘리먼트들을 포함한다. 이 그룹화는 수평적 거리 임계 또는 수평적 기하학적 코스트를 설정함으로써 재정의될 수도 있으므로, 큰 거리만큼 수평적으로 변위되는 엘리먼트들 또는 엘리먼트들의 그룹들은 함께 그룹화되지 않는다. 예를 들어, 수학 방정식들은 단일 방정식에서 큰 갭들을 갖도록 예상되지 않을 수도 있는 반면에, 드로잉 입력에서 드로잉 엘리먼트들 간의 큰 갭들은 기하학적 정보에 대해 의도될 수도 있다.
그룹화는 또한, 수직적으로 오버랩하는 수평적으로 변위된 엘리먼트들 - 예를 들어, 엘리먼트들 (601-604) - 에 대한 수평적 관계들 또는 기하학적 피처들과 같은 일반적인 포지션 상대성을 포함하는 수직적 관계 외의 위치 관계들에 기초하여 이루어질 수도 있다. 이 그룹화는 y-방향에서 중력의 가상 센터 또는 공통의 트렌드-라인을 공유하는 엘리먼트들에 기초할 수도 있다. 이것은 엘리먼트들의 공통의 또는 비-공통의 기하학적 피처들 (예를 들어, 바운딩 박스들의 에지들, 각각의 바운딩 박스의 y-방향 범위들의 평균 센터-라인들, 도 6 에서의 수평 라인들 (a 및 a'), 또는 엘리먼트들 그 자체들의 상이한 에지들) 또는 스트로크들 그 자체들의 공통의 기하학적 피처들 (예를 들어, 무게중심) 에 기초할 수 있다. 또한, 공통의 라인들 (a 와 a') 간의 수직 거리 (d) 가 수직 거리 (c) 대신에 또는 이에 추가하여 사용되어, 기하학적 코스트 또는 복수의 기하학적 코스트들을 확립할 수 있다.
인식 스테이지 (118) 의 위 단계들은, 수기된 입력을 개별의 객체들로 커팅하기 위한 가능성들의 수 (그리고 이에 따른 프로세싱 시간) 를 감소시키는 목적으로 임계에 기초한 '사전-프로세싱' 또는 '필터링' 으로서 고려될 수 있다. 따라서, 이 프로세스는 컴퓨터 디바이스 (100) 에 따라, 사전프로세싱 (116) 이나 인식 스테이지 (118) 에서 수행될 수도 있다. 이 필터링에 적용된 신뢰도는 수기된 입력의 애플리케이션 및 유형, 뿐만 아니라 원하는 레벨의 정확도에 의존한다. 또한, 이 필터링은 또한, 방정식들의 수직 리스트와 같은 다수의 객체들을 인식하기 위한 프로세스를 행하는 결정의 부분일 수도 있다. 인식 스테이지 (118) 는, 예를 들어 문법 및 언어 모델들을 사용하여 상이한 세분화 가설들을 생성 및 탐구하도록 다른 팩터들을 고려하여 보충될 수도 있다. 따라서, 임계는 최적화를 위한 기하학적 코스트보다 더 많이 감안할 수도 있다.
예를 들어, 임계는 스트로크들/엘리먼트들의 시간적 또는 시간-순서 엔트리를 감안할 수도 있다. 입력의 시간-순서를 고려함으로써, 필터링의 성공은 예를 들어 엘리먼트들의 그룹의 수평 입력에 이어서, 제 1 그룹으로부터 수직으로 변위된 하나 이상의 엘리먼트들의 제 2 그룹이 다중 방정식들과 같은 잠재적인 다수의 객체 엔트리를 나타낼 때 강화된다. 반면에, 엘리먼트들의 그룹의 수직 입력에 이어서, 제 1 그룹으로부터 수평으로 변위된 하나 이상의 엘리먼트들의 입력은 수직 함수들을 갖는 단일 방정식, 예를 들어 나누기들을 나타낼 수도 있다.
도 9 는 시간-순서를 사용하는 도 6 의 입력 (600) 을 예시한다. 엘리먼트들 (601-609) 은 시간-순서 (t1-t9) 로 각각 입력된다. 입력 타이밍의 결정은 당업자에게 알려져 있고, 운영 시스템 (110) 의 시스템 클록으로부터 결정된 바와 같이, 스트로크의 완료, 예를 들어 펜-업 (pen-up) 의 시간 스탬프를 모니터링 및 저장하는 것을 포함할 수도 있다. 이 시간-순서로부터, 시간 코스트는 인식 스테이지 (118) 의 다음 단계 동안 기하학적 코스트로 보충될 수 있다.
예를 들어, 엘리먼트 (604) 는 엘리먼트 (605) 로부터 수직으로 변위되고, 엘리먼트 (604) 는 엘리먼트 (605) 로부터 상대적으로 큰 수평 거리만큼 수평으로 변위된다. 유사한 수평 거리는 엘리먼트들 (601 및 604) 간에 존재하지만, 중개 엘리먼트들 (602 및 603) 이 존재한다. 이 상대적인 기하학적 정보 모두는, 엘리먼트 (605) 가 새로운 객체에 속하거나 또는 적어도 엘리먼트 그룹 (610) 에 속하지 않는지 여부를 결정하는데 사용될 수 있다. 그러나, 기하학적 코스트는, 시스템이 다중 방정식 검출을 확신하지 않도록 기하학적 코스트 임계 미만이지만 그 근처일 수도 있다. 시스템이 시간-순서 정보를 사용하여, 시간 (t5) 에서 엘리먼트 (605) 의 입력 직전에 엘리먼트 (604) 가 시간 (t4) 에서 입력되었다고 결정하면, 시간 코스트인, 시간-순서 차이는 기하학적 코스트를 기하학적 코스트 임계 위이도록 부스트하는데 사용될 수 있다. 기하학적 및 시간 코스트들이 비교되는 결합된 임계가 설정될 수 있다. 가중된 임계는 또한, 시간-순서에 기초하여 기하학적 코스트 임계에 상이한 가중치들을 적용하는데 사용될 수 있다.
다른 팩터들이 또한, 결합된 임계들의 설정 및/또는 임계(들)과의 비교를 위해 계산된 코스트들의 조정을 통해 다수의 객체 검출을 연마하는데 사용될 수 있다. 이들 팩터들은 엘리먼트들의 절대적 또는 상대적 로케이션들 (예를 들어, 인접한 엘리먼트들 간의 상대적 거리들 또는 무게중심의 결정) 을 포함하고, 이것은 시간-순서가 포지션-순서와 정렬되지 않는 경우 가장 유용할 수도 있다 (예를 들어, 도 9 에서, 엘리먼트 (604) 는 엘리먼트들 (602 및 603) 이전에 입력되었고, 이것은 종종 캡처되는 공식들 및 연산들의 유형들로 인해 수기된 방정식 입력에서 발생한다). 또한, 언어 엑스퍼트의 언어 모델(들)은, 소정 엘리먼트들의 입력 및 다른 엘리먼트들에 대한 그 상대적 배치가 단일 또는 다수의 객체들을 나타내는지를 결정하는데 사용될 수도 있고, 예를 들어, 수학적 또는 산술적 언어 모델은 다중 방정식들 보다는 나누기를 나타내는 것으로서 하나 이상의 인접한 엘리먼트들로부터 수직하게 변위된 긴 수평 엘리먼트 (예를 들어, 단일 스트로크) 를 해석할 수도 있다. 또한, 언어 모델(들) 단독으로 또는 이를 고려하여, 개별의 및 인접한/그룹화된 엘리먼트들에서 스트로크들의 수가 또한 고려될 수도 있다. 예를 들어, 상대적으로 작은 수의 스트로크들은 단일 객체의 입력을 나타낼 수도 있는 반면에, 상대적으로 큰 수의 스트로크들은 다수의 객체들을 나타낼 수도 있다.
수평적으로 변위된 엘리먼트들의 그룹화에 기초한 객체들의 수직 리스트의 전술된 인식은, 후속의 인식 프로세싱에서 인식을 위한 가설들을 생성하는 경우 모든 수직으로 분리된 객체들 간의 기하학적 관계를 고려하지 않는 것을 통해 프로세싱을 감소시키는 목적을 갖는다. 프로세싱 속도가 사용자 경험에 중요하지만, 인식의 정확도는 또한 중요하다. 통상적으로, 수기 인식 시스템들은 속도와 정확도 간에 타협하여, 정확도를 증가시키는 것은 통상적으로 프로세싱 시간을 증가시키고 프로세싱 시간을 감소시키는 것은 통상적으로 정확도를 감소시킨다. 효율적인 시스템을 제공하기 위해, 이들 팩터들 간의 균형을 찾을 필요가 있다. 대안으로, 다음의 예는 시간과 정확도 간의 더 좋은 균형을 제공하기 위해 다수의 기하학적 코스트들을 포함한다.
도 10a 내지 도 10c 는 수직적으로 변위된 다수의 객체 입력 (1000) 에 대한 예시의 인식 스테이지 (118) 에서의 단계들을 나타낸다. 도 11a 내지 도 11d 는 입력 (100) 의 다른 엘리먼트에 적용된 바와 같은 예시의 인식 스테이지에서의 단계들을 나타낸다. 도 12a 및 도 12b 는 도 11 의 엘리먼트들에 적용된 바와 같은 대안의 예시의 인식 시스템 및 방법에서의 단계들을 나타낸다.
입력 (1000) 은 하나 이상의 수기된 입력 스트로크들을 포함하는 박스들로서 예시된 다수의 엘리먼트들 (1001-1006) 을 포함한다. 이 박스들은 엘리먼트의 스트로크들의 세트 또는 각각의 스트로크의 범위 주위의 바운딩 박스들일 수도 있다. 엘리먼트들 (1001-1006) 각각은 다른 엘리먼트들 (1001-1006) 각각에 대하여 ('x' 방향으로서 지정된) 수평적 및/또는 ('y' 방향으로서 지정된) 수직적 변위를 갖고 기입되어 있다. 엘리먼트들 (1001-1006) 이 하나 이상의 수직적으로 변위된 객체들에 속하는지 여부를 인식하기 위해, 프로세스 (1300) 는 도 13 의 흐름도에서 예시된 바와 같이 수행된다.
이 프로세스는, 다수의 수기된 스트로크들의 입력을 나타내는 존재하는 엘리먼트들의 수 (n) (즉, 본 예에서 n=6) 의 결정으로 시작한다 (단계 1301). 이들 엘리먼트들의 y-방향에서의 엔트리의 위치적 또는 방향적 순서인 y-순서가 그 후, Y1 내지 Yn 으로서 결정된다 (단계 1302). 도 10a 에서 도시된 바와 같은 본 예에서, 엘리먼트들 (1001-1006) 은 각각, y-순서 Y1-Y6 를 갖도록 결정된다. 엘리먼트 (1001) 는 y-순서 Y1 을 갖고, 엘리먼트 (1006) 는 y-순서 Y6 을 갖는다. 그 후, 증분 파라미터 (i) 는 이후의 사용을 위해 1 로 설정된다 (단계 1303). 그 후, 2 개의 테스트들, 테스트 1 (단계 1304) 및 테스트 2 (단계 1305) 이 y-순서 엘리먼트들 상에서 수행된다. 도 13 에서, 테스트 1 및 2 는 병렬로 수행되는 것으로서 도시되지만, 이들은 임의의 순서에서 순차적으로 수행될 수도 있다. 이들 다수의 테스트들의 목적은 n 개의 엘리먼트들의 상이한 기하학적 관계들에 대한 상이한 기하학적 코스트들을 결정하고, 이들 코스트들을 상이한 임계들에 대해 테스트하여 다수의 객체들이 존재하는지 여부의 결정을 용이하게 하기 위한 것이며, 여기서 시스템에 의한 기하학적 코스트들의 결정은 상이한 속도 및 정확도 레벨들을 수반한다. 테스트 1 (1304) 은 도 14 의 흐름도를 참조하여 이후에 더 상세히 설명되고, 테스트 2 (1305) 는 도 15 의 흐름도를 참조하여 이후에 더 상세히 설명된다.
테스트 1 및 2 는 (예를 들어 단계 1303 에 의해 지정된 바와 같은, 제 1 엘리먼트, 예를 들어 Y1 으로 시작하는) 각각의 연속적인 y-순서 엘리먼트에 대해 반복적으로 수행된다. 테스트 1 및 2 의 기하학적 코스트 결정들은, '커트' 라인이 현재 y-순서 엘리먼트의 최하 (y-방향에서의) 에지에서, 즉 그 엘리먼트와 아래의 엘리먼트들 사이에 생성될지 여부에 관한 결정을 허용하기 위해 함께 고려되어 (단계 1306), 이에 의해 수직적으로 변위된 객체들 간의 경계를 정의한다 (단계 1307). 이 커트 라인 생성은, 가능하게는 동일한 객체에 속하는 것으로 고려된 엘리먼트들에 관하여 바운딩 박스를 정의하고, 이에 의해 상이한 기하학적 코스트들이 후속의 y-순서 반복에서 대응하는 신뢰도 임계들 아래에 있는 것으로 결정되는 엘리먼트들을 그룹화하는 것을 포함할 수도 있다. 일단 이 결정이 이루어지면, 파라미터 (i) 는 i+1 로 증분되고 (단계 1308), 프로세싱은 입력의 최종 엘리먼트가 테스트될 때까지 다음의 연속적인 엘리먼트에 대해 테스트 1 및 2 를 구현하도록 리턴한다.
테스트 1 은, (제 1) 기하학적 코스트가 (제 1) 사전-결정된 임계보다 더 큰지 여부를 결정하는 것을 수반한다. 도 14 에서 나타낸 바와 같이, 이것은, 테스트 되고 있는 y-순서 엘리먼트 (즉 Yi) 로부터 다음의 연속적인 y-순서 엘리먼트 (즉, Yi +1) 가 존재하는지 여부를 먼저 결정 (단계 1401) 함으로써 행해진다. 그렇지 않으면 (즉, 최종 엘리먼트가 테스트되고 있으면), (사전)프로세싱은 종료되고 (단계 1402), 인식 스테이지 (118) 는 엘리먼트들의 실제 콘텐트의 인식의 다음 단계로 진행한다. 추가의 y-순서 엘리먼트가 존재하면, 현재 y-순서 엘리먼트 (Yi) 와 다음의 연속적인 y-순서 엘리먼트 (Yi +1) 의 무게중심들 간의 (제 1) 수직 거리 (ei) 가 결정된다 (단계 1403). 이 거리는 제 1 기하학적 코스트를 나타내고, 제 1 임계의 사전-결정이 입력 표면 (104) 의 픽셀 레졸루션을 고려하여 행해질 수도 있도록, 픽셀 카운트에 의해 계산 또는 측정될 수 있다. 예를 들어, 도 10b 에서는, 엘리먼트 (1002) 와 엘리먼트 (1003) 의 무게중심들 간의 수직 거리 (e2) 가 고려되고 있고, 도 11a 에서는 엘리먼트 (1003) 와 엘리먼트 (1004) 의 무게중심들 간의 수직 거리 (e3) 가 고려된다.
현재의 제 1 기하학적 코스트 (ei) 는 그 후, 다수의 객체들이 존재하기 위해 신뢰도의 제 1 테스트로서 (제 1) 사전-결정된 (무게중심) 임계 거리에 비교된다 (단계 1404). 이 단계의 결과는 '예' 또는 '아니오' 결정이다. 제 1 임계의 설정은, 연속적인 엘리먼트들의 큰 무게중심 분리가 존재하는 경우 고 레벨의 신뢰도가 달성되도록 행해질 수도 있다. 예를 들어, 도 10b 에서, 엘리먼트들 (1002 및 1003) 은 y-방향에서 오버랩하고, 이들 엘리먼트들 간의 거리 (e2) 는 상대적으로 작다. 이들 엘리먼트들은 별개의 수직으로 변위된 객체들에 속한다는 신뢰도는 거의 없어야 한다 (도 10b 에서와 같이 거리 (e2) 가 다르게는 네거티브 값이기 때문에, 거리 (ei) 는 절대 값으로서 취해진다는 것이 주목된다). 반면에 도 11a 에서, 엘리먼트들 (1003 및 1004) 은 일부 마진에 의해 y-방향에서 오버랩하기 않고, 이들 엘리먼트들 간의 무게중심 거리 (e3) 는 상대적으로 크다. 이들 엘리먼트들은 별개의 수직으로 변위된 객체들에 속할 수도 있다는 적어도 합리적인 양의 신뢰도가 존재해야 한다. 단계 1404 의 결정, 예를 들어 '예' 또는 '아니오', 및 제 1 기하학적 코스트 값 (ei) 은 단계 1306 에서 다수의 테스트 프로세스에 의한 프로세싱을 위해 테스트 1 (단계 1405) 에 의해 출력된다.
테스트 2 는, (제 2) 기하학적 코스트가 (제 2) 사전-결정된 임계보다 더 큰지 여부를 결정하는 것을 수반한다. 도 15 에 도시된 바와 같이, 이것은, 테스트 되고 있는 y-순서 엘리먼트 (즉 Yi) 로부터 다음의 연속적인 y-순서 엘리먼트 (즉, Yi +1) 가 존재하는지 여부를 먼저 결정 (단계 1501) 함으로써 행해진다. 그렇지 않으면 (즉, 최종 엘리먼트가 테스트되고 있으면), (사전)프로세싱은 종료되고 (단계 1502), 인식 스테이지 (118) 는 엘리먼트들의 실제 콘텐트의 인식의 다음 단계로 진행한다. 이것은 테스트 1 의 단계 1401 과 유사하고, 이 단계는 소정의 엘리먼트 상에서 테스트들 1 및 2 의 수행 동안 전제 조건으로서 결합될 수도 있다. 추가의 y-순서 엘리먼트가 존재하면, 현재 y-순서 엘리먼트 (Yi) 와 다음의 연속적인 그리고 후속의 y-순서 엘리먼트들 (Yi +1 내지 Yn) 에 관하여 정의된 바운딩 박스 간의 (제 2) 수직 거리 (fi) 가 결정된다 (단계 1503). 이 (기하학적 경계) 거리는 제 2 기하학적 코스트를 나타내고, 제 2 임계의 사전-결정이 입력 표면 (104) 의 픽셀 레졸루션을 고려하여 행해질 수도 있도록, 픽셀 카운트에 의해 계산 또는 측정될 수 있다.
예를 들어, 도 10c 에서는, 엘리먼트 (1002) 의 최하 (즉, y-방향에서의) 에지와 엘리먼트들 (1003-1006) 을 경계 짓는 바운딩 박스 (1007) 의 최고 에지 간의 수직 거리 (f2) 가 고려되고 있다. 도 11b 에서는, 엘리먼트 (1003) 의 최하 에지와 엘리먼트들 (1004-1006) 을 경계 짓는 바운딩 박스 (1107) 의 최고 에지 간의 수직 거리 (f3) 가 고려되고 있다. 엘리먼트들 및 바운딩 박스의 대안의 y-정의된 에지들이 거리 계산을 위해 사용될 수 있다는 것이 주목된다. 또한, 바운딩 박스는 생성될 필요가 없다. 차라리, '커트' 라인은 제 2 기하학적 코스트를 결정하기 위해 계산된 다음의 연속적인 y-순서 엘리먼트의 y-정의된 에지에 대한 거리 및 고려 중인 y-순서 엘리먼트 (Yi) 의 y-정의된 에지에서 생성될 수도 있다.
현재의 제 2 기하학적 코스트 (fi) 는 그 후, 다수의 객체들에 대한 신뢰도의 제 2 테스트로서 (제 2) 사전-결정된 (갭) 임계 거리에 비교된다 (단계 1504). 이 단계의 결과는 '예' 또는 '아니오' 결정이다. 제 2 임계의 설정은, 연속적인 엘리먼트들 간의 큰 갭이 존재하는 경우 고 레벨의 신뢰도가 달성되도록 행해질 수도 있다. 예를 들어, 도 10c 에서, 엘리먼트들 (1002 및 1002) 은 y-방향에서 오버랩하고, 이들 엘리먼트들 간의 거리 (f2) 는 상대적으로 작다. 이들 엘리먼트들이 별개의 수직으로 변위된 객체들에 속한다는 신뢰도는 거의 없어야 한다. 반면에 도 11b 에서, 엘리먼트들 (1003 및 1004) 은 일부 마진에 의해 y-방향에서 오버랩하기 않고, 이들 엘리먼트들 간의 거리 (f3) 는 상대적으로 크다. 여기서, 이들 엘리먼트들은 별개의 수직으로 변위된 객체들에 속할 수도 있다는 적어도 합리적인 양의 신뢰도가 존재해야 한다. 단계 1504 의 결정, 예를 들어 '예' 또는 '아니오', 및 제 2 기하학적 코스트 값 (fi) 은 단계 1306 에서 다수의 테스트 프로세스에 의한 프로세싱을 위해 테스트 2 에 의해 출력된다 (단계 1505).
도 13 으로 돌아가, 단계 1306 에서, 테스트 1 및 테스트 2 의 결정들의 출력들은, 다수의 객체들, 예컨대 다중라인 방정식들이 존재하는지에 관한 결정이 이루어지는 것을 허용하기 위해 결합된다. '커트' 라인이 엘리먼트 (1002) 아래에서 생성될지 여부의 신뢰도가 테스트되는 도 10b 및 도 10c 의 예에 대해, 테스트 1 의 결과는, 제 1 기하학적 코스트가 제 1 임계보다 크지 않다 - 예를 들어, 단계 1404 는 '아니오' 를 리턴함 - 는 것일 수도 있고, 테스트 2 의 결과는, 제 2 기하학적 코스트가 제 2 임계보다 크지 않다 - 예를 들어, 단계 1504 는 '아니오' 를 리턴함 - 는 것일 수도 있다. 테스트들 양쪽 모두가 '아니오' 로 리턴했기 때문에, 단계 1307 에서 '커트' 결정은 엘리먼트 (1002) 아래에서 '커트' 를 생성하지 않고, 도 10a 에 도시된 바와 같이 커트들을 남기지 않는다.
반면에, '커트' 라인이 엘리먼트 (1003) 아래에서 생성될지 여부의 신뢰도가 테스트되는 도 11a 및 도 11b 의 예에 대해, 테스트 1 의 결과는, 제 1 기하학적 코스트가 제 1 임계보다 크다 - 예를 들어, 단계 1404 는 '예' 를 리턴함 - 는 것일 수도 있고, 테스트 2 의 결과는, 제 2 기하학적 코스트가 제 2 임계보다 크다 - 예를 들어, 단계 1504 는 '예' 를 리턴함 - 는 것일 수도 있다. 양쪽 모두의 테스트들이 '예' 를 리턴했기 때문에, 단계 1307 에서 '커트' 결정은 엘리먼트 (1003) 아래에서 '커트' 를 생성할 것이다. 엘리먼트들 (1001 및 1002) 의 앞선 테스트들이 어떤 '커트' 도 생성되지 않는 것을 초래하기 때문에, 시스템은, 객체 (1108) 가 나중의 y-순서 엘리먼트들을 포함하는 임의의 객체로부터 별개의 객체라는 것을 확신하므로 바운딩 박스 (1108) 는 단계 1307 에서 도 11c 에 도시된 바와 같이 엘리먼트들 (1001-1003) 에 관하여 위치된다. 예시의 입력 (1000) 의 경우, 엘리먼트들 (1004-1006) 각각은 서로와 y-방향에서 오버랩하기 때문에 이들 엘리먼트들에 대한 테스트들이 또한, 커트가 생성된다는 것을 초래하지 않는다고 계속된 프로세싱이 결정할 것이다. 후속의 인식 프로세싱 동안, 엘리먼트들 (1004-1006) 은 제 2 객체에 속하는 것으로 간주될 것이다.
입력에 따라, 도 10 내지 도 15 의 예들은 테스트 1 이 '아니오' 를 출력하지만 테스트 2 가 '예' 를 출력하는 그리고 그 반대인 소정의 엘리먼트들에 대한 결과들을 리턴할 수도 있다. 예를 들어, 무게중심 거리 (제 1 기하학적 코스트) 는 상대적으로 크지만, 엘리먼트들 간의 갭 (제 2 기하학적 코스트) 은 상대적으로 작을 수도 있고, 이것은 도 8 에서와 같은 합산 연산으로 발생할 수도 있다. 이러한 상황에서, 본 시스템은 단순히, 이들 엘리먼트들의 경계에서 정의된 다수의 객체들이 존재한다는 확신이 없다고 고려할 수도 있다. 실제로, 이것은, 하나의 측정이 상대적으로 부정확하고, 다른 측정이 상대적으로 정확하다는 것을 나타낼 수도 있다. 대안으로, 임계들을 조정 또는 연마하거나 또는 예외들을 허용하기 위해 다른 팩터들이 고려될 수도 있다. 이것은 또한, 양쪽 모두의 테스트들이 '아니오' 출력을 초래하는 경우일 수도 있다.
예를 들어, 다수의 엘리먼트들이 존재하면 - 즉, 단계 1301 이, n 이 상대적으로 큰 수라는 것을 결정하면, 엘리먼트들의 전부 (또는 통계적으로 관련된 수) 상에서 테스트들을 수행한 후에 몇몇 커트들이 생성되거나 커트들이 생성되지 않는다. 본 시스템은, 특히, 엘리먼트들의 y-방향 범위 및 엘리먼트들의 상대적 사이즈들은 또한, 고려되는 경우, 다수의 객체들의 존재를 나타낼 수도 있는 엘리먼트들의 큰 수로 인해 더 많은 커트들이 생성되어야 한다는 것을 고려할 수도 있다. 본 시스템은 그 후, 하나 또는 양쪽 모두의 무게중심 및 갭 임계들을 조정하여 더 많은 포지티브 결과들이 발생하는 것을 허용할 수도 있다. 이 프로세스는, 너무 많은 긍정 오류들 (false positive) 의 리턴이 다음 스테이지에서 부정확한 인식을 초래할 것이기 때문에 주의해서 수행되어야 한다. 이러한 조정의 결정들은 임계들을 설정하기 위한 초기 연습에서 입력 샘플들의 통계적으로 큰 수를 사용하여 본 시스템의 트레이닝을 통해 보조될 수 있다. 이 트레이닝은 또한, 특히 HWR 시스템 (114) 이 원격 서버 상에서 호스트되는 경우 진행 중에 있거나 또는 진행될 수 있다.
단계들 (1405 및 1505) 과 관련하여 앞서 설명된 바와 같이, 측정된/계산된 제 1 및 제 2 기하학적 코스트들은 또한, 별개의 테스트들에 의해 출력될 수도 있다. 도 13 에 예시된 바와 같이, 이들 실제 거리들/코스트들은 '커트' 결정을 행하는 경우 단계 1307 에서 고려될 수도 있다. 일 예에서, '아니오' 결정을 출력하는 테스트의 기하학적 코스트의 실제 값은 그 테스트의 임계와 비교되어. 차이가 소정 오차/퍼센티지 내에 있는지를 알 수 있어서, 결과 '아니오' 는 코스트가 허용오차 내에 있는 경우 '예' 로 변경된다. 다른 예에서, '아니오' 결정을 출력하는 테스트의 기하학적 코스트의 실제 값은 엘리먼트들의 실제, 평균 또는 중간 사이즈와 비교되어 코스트가 엘리먼트 사이즈(들)과 비교하여 상대적으로 큰지를 알 수 있어서, 결과 '아니오' 는 코스트가 소정 퍼센티지만큼 엘리먼트 사이즈(들)보다 큰 경우 '예' 로 변경된다.
앞서 논의된 바와 같이, 별개의 테스트들의 결과들이 속도와 정확도 간의 균형에 영향을 주는 방법을 결정하는 것이 추가로 고려된다. 본 예에서, 제 1 테스트 (테스트 1) 는 연속적인 y-순서 엘리먼트들 간의 무게중심 거리들을 고려한다. 스트로크 무게중심들, 또는 대안으로 또는 부가적으로 다른 스트로크 팩터들의 결정, 및 그들 간의 거리의 측정/계산은, 예를 들어 마이크로초의 단위 내에서 상대적으로 빠르게 수행된다. 그러나, '커트'하기 위한 장소를 결정하도록 단지 이들 거리들을 고려하는 것은 많은 긍정 오류들을 초래할 수도 있고, 무게중심 변위와 같은 스트로크 팩터들은 단독으로, 다수의 객체들의 정확한 표시자들이 아니기 때문에, 예를 들어, 도 16 에서와 같이, 인접한 스트로크들의 무게중심들이 광범위하게 분산되지만 스트로크들 간의 갭들은 상대적으로 작도록 단일 방정식 내의 스트로크들은 많이 가변된 사이즈들을 가질 수도 있다. 따라서, 테스트 1 은 상대적으로 높은 프로세싱 속도지만 상대적으로 낮은 인식 정확도를 제공하는 것으로 간주될 수도 있다.
반면에, 제 2 테스트 (테스트 2) 는 연속적인 y-순서 엘리먼트들 간의 갭 또는 엘리먼트-간 거리들을 고려하고, 스트로크들의 다른 그룹화 메커니즘들 또는 바운딩 박스들 간의 거리들의 그 사용은 다수의 객체들의 합리적으로 정확한 표시자를 제공한다. 그러나, 이들 그룹들의 확립은, 예를 들어 수십 내지 수백 마이크로초 내에서 상대적으로 천천히 수행될 수도 있다. 따라서, 테스트 2 는 상대적으로 높은 인식 정확도이지만 상대적으로 낮은 프로세싱 속도를 제공하는 것으로 간주될 수도 있다. 이와 같이, 2 개의 테스트들의 결합은 속도와 정확도 간의 균형을 허용하고, 이 균형은 시스템의 필요성들에 기초하여 (예를 들어, 대응하는 임계들을 조정 또는 가중화함으로써) 조정될 수 있다, 예를 들어 속도는 정확도보다 선호되고, 또는 그 반대이다.
보다 정확하게, 엘리먼트들의 콘텐트의 공통의 기하학적 피처들, 예를 들어 스트로크들의 무게중심의 변위를 결정 및 비교하는 테스트는 상대적으로 높은 수의 커트들을 초래할 수도 있지만 이들의 용납할 수 없는 비율은 더 높은 부정확도를 초래하는 긍정 오류들일 수도 있다. 반면에, 엘리먼트들 그 자체들의 공통의 또는 비-공통의 기하학적 피처들, 예를 들어 엘리먼트들의 바운딩 박스들의 동일한 또는 상이한 에지들의 변위를 결정 및 비교하는 테스트는 상대적으로 더 낮은 수의 긍정 오류들을 제공하지만 충분한 커트들을 제공하지는 않아서, 더 높은 프로세싱 시간을 초래한다.
정확도의 추가의 개선은 도 12a 내지 도 12c 에 예시된 제 2 기하학적 테스트 (1305) 의 대안의 예에 의해 제공될 수 있다. 도 11 의 제 2 테스트 예와 유사하게, 이 대안의 제 2 테스트 (테스트 2) 는 제 2 기하학적 코스트가 제 2 사전-결정된 임계보다 많은지 여부를 결정하는 것을 포함하고, 여기서 제 2 기하학적 코스트는 y-순서 엘리먼트들 간의 (제 2) 거리로부터 결정된다. 그러나, 테스트 2 의 이전 예와 달리, 제 2 (갭) 거리는 단지 연속적인 y-순서 엘리먼트들 사이 보다는 y-순서에서 가장 가까운 이웃들을 고려하는 것으로부터 결정된다. 이 대안의 테스트는 이제, 도 17 의 예시의 흐름도를 참조하여 설명된다.
먼저, 비-증분 파라미터 (j) 는 나중의 단계들에서의 사용을 위해 i 로 설정되고 (단계 1701), 증분 파라미터 (i) 는 반복을 허용하도록 i + 1 로 설정된다 (단계 1702). 이들 초기화 후에, 테스트되고 있는 y-순서 엘리먼트 (즉, 파라미터 j 의 설정으로 인한 Yj) 로부터 다음의 연속적인 y-순서 엘리먼트 (즉, 파라미터 i 의 증분으로 인한 Yi) 가 존재하는지 여부가 결정된다 (단계 1703). 추가의 엘리먼트들이 발견되는 한, 다음의 연속적인 y-순서 엘리먼트 Yi 에 대해 검색 구역과 같은 기하학적 영역이 결정된다 (단계 1704). 이 검색 구역의 범위는 조정 가능하고, (y-순서에서) 다음의 엘리먼트(들)과 고려 중인 현재의 엘리먼트 (즉, Yj) 와 y-순서에서 임의의 이전의 엘리먼트들 (즉, Y1-Yj -1) 간의 최소 거리를 결정하여 제 2 기하학적 코스트를 결정하는데 사용된다.
도 12a 는 (도 11 에 도시된 바와 같은) 현재 엘리먼트 (1003) 로부터 다음의 연속적인 y-순서 엘리먼트인, 엘리먼트 (1004) 위에 (즉, y-방향에서) 확립된 검색 구역 (1201) 을 나타낸다. 도 12b 는 엘리먼트 (1004) 로부터 다음의 연속적인 y-순서 엘리먼트인, 엘리먼트 (1005) 위에 확립된 검색 구역 (1202) 을 나타낸다. 검색 구역은 검색의 엘리먼트의 폭 (x) 의 3 배인 폭 (즉, x-방향에서) 을 갖는 영역에 확립되고, 여기서 이 영역은 그 엘리먼트 상에 센터링되고, 예를 들어 도 12a 에서 영역은 폭 (3x4) 를 갖고 여기서 x4 엘리먼트 (1004) 의 폭이고 도 12b 에서 영역은 폭 (3x5) 을 갖고 여기서 x5 는 엘리먼트 (1005) 의 폭이다. 잠재적인 '커트'포지션에서 엘리먼트들 간의 분리의 가장 가까운 포인트의 결정을 위한 앞선 y-순서 엘리먼트들을 검색하기 위한 이 기하학적 영역은, 충분한 그리고 의미 있는 수의 분리된 엘리먼트들 간의 거리들의 고려가 제공되도록 엘리먼트들에 대하여 '패딩' 을 제공하는데 사용된다. 패딩의 양은, 엘리먼트들의 다른 정수 또는 분수 폭이 사용되어 엘리먼트 폭에 관련되지 않은 일부 다른 팩터에 기초할 수 있도록 조정 가능하다. 예를 들어, 패딩은 수기된 문자들, 기호들 등의 인식 프로세싱에서 인식자에 의해 사용된 스케일 추정 값과 같은, 수기된 스트로크들의 특징을 적용함으로써 제공될 수 있다. 따라서, 도 12 에서, 검색 구역은 엘리먼트들의 각각의 (수평적) 사이즈 상의 스케일 추정 값의 3 배 (또는 다른 팩터) 의 양을 패딩하는 것으로 엘리먼트들 (1004-1006) 의 각각 상에 센터링되도록 영역을 확립함으로써 제공될 수 있다. 당업자는, 스케일 추정 값들과 같은 스트로크 특징이 통계적 특성 확률론적 분석을 제공하는 것으로 이해한다.
검색 구역의 확립 시에, 테스트되고 있는 현재의 엘리먼트 및 검색 구역 내의 이전의 엘리먼트들 (즉, Y1-Yj) 로부터 임의의 엘리먼트들이 존재하는지가 결정된다 (단계 1705). y-순서 엘리먼트들 (Y1-Yj) 중 어느 것도 검색 구역 내에 존재하지 않으면, 프로세싱은 단계 1702 로 리턴하여 다음 엘리먼트가 검색되도록 반복한다. y-순서 엘리먼트들 (Y1-Yj) 중 적어도 하나가 검색 구역 내에 존재하면, 현재 다음의 엘리먼트와 그 엘리먼트 위의 엘리먼트들 (Y1-Yj) 각각 간의 수직 거리(들)(fim)(여기서, m = 검색 구역에서 엘리먼트들 (Y1-Yj) 의 수) 이 계산/측정되고, 이들 거리들의 최소값이 결정된다 (단계 1706). 예를 들어, 도 12a 에서, 엘리먼트 (1004) 와 엘리먼트 (1002) 간의 거리 (f41) 가 엘리먼트 (1004) 의 최소 (갭) 거리로서 리턴되도록, 단지 엘리먼트 (1002) 가 검색 구역 (1201)(여기서, 엘리먼트 (1003) 는 현재 테스트되고 있음) 에 있다. 테스트되고 있는 엘리먼트의 하단 위의 (즉, y-방향에서) 이들 엘리먼트들과의 위치적 관계들을 결정하기 위해 검색 구역은 테스트되고 있는 엘리먼트 아래의 엘리먼트들에 대해 확립되는 것으로서 논의되지만, 당업자는, 예를 들어 테스트되고 있는 엘리먼트의 하단 아래의 이들 엘리먼트들과의 위치적 관계들을 결정하기 위해 검색 구역은 테스트되고 있는 엘리먼트 위의 엘리먼트들에 대해 동일하게 확립될 수도 있다는 것을 이해한다.
이 최소 거리가 이후의 프로세싱에서 (이후에 설명된) 제 2 기하학적 코스트으서 고려될지 여부를 결정하기 위해, 먼저, 최소 거리 (f) 가 예를 들어 메모리 (108) 에 미리 저장되었는지가 결정된다 (단계 1707). 그렇다면, 결정된 최소 거리는 이 미리 저장된 최소 거리 (f) 와 비교되고 (단계 1708), 그렇지 않으면, 결정된 최소 거리는 최소 거리 (f) 로서 저장된다 (단계 1709). 예를 들어, 도 12a 의 엘리먼트 (1004) 의 프로세싱에서는 미리 저장된 최소 거리가 존재하지 않으므로, 엘리먼트 (1004) 의 최소 거리는 저장된다. 임의의 테스트된 엘리먼트의 검색 구역(들)에 존재하는 y-순서 엘리먼트들이 존재하지 않거나 또는 테스트되고 있는 엘리먼트 아래의 엘리먼트들 (즉, 최종 엘리먼트) 이 존재하지 않기 때문에, 최소 거리가 결정되지 않는 입력 시나리오들이 존재할 수도 있다. 이것은, 이 예의 나중의 단계들에서 고려되지만, 이 시나리오를 다루기 위한 다른 방식들은, 적어도 하나의 최소 거리가 계산되고, 또는 임의의 제 2 기하학적 코스트, 예를 들어, 무한대에 접근하는 (의사) 랜덤하게 생성된 코스트 값이 초기 스테이지에서 설정될 수도 있다는 것을 보장하기 위해 검색 구역의 조정을 제공하는 것을 포함한다.
단계 1708 의 비교에서, 현재 최소 거리가 저장된 최소 거리보다 더 크면, 이것은 폐기되고 프로세싱은 단계 1702 로 리턴하는데, 이것은 현재 고려 중인 엘리먼트보다 잠재적인 제 1 객체에 더 가까운 다른 엘리먼트가 존재한다는 것을 의미하기 때문이다. 반면에, 현재 결정된 최소 거리가 저장된 최소 거리보다 작으면, 프로세싱은 단계 1709 로 이동하여, 현재 결정된 최소 거리는 현재 저장된 최소 거리 (f) 대신에 저장되고, 그 후 프로세싱은 단계 1702 로 리턴한다. 예를 들어, 도 12a 및 도 12b 로부터, 엘리먼트 (1004) 가 그 검색 구역 (1201) 내에서 엘리먼트 (1002) 에 있는 것보다 엘리먼트 (1005) 가 그 검색 구역 (1202) 내에서 엘리먼트 (1003) 에 더 가깝다는 것을 알 수 있다. 따라서, (거리 (f52) 보다 작은 거리 (f51) 인) 엘리먼트 (1005) 의 최소 거리가, 더 큰 엘리먼트 (1004) 의 미리 저장된 최소 거리 (f42) 대신에 사용된다.
일단 현재 테스트 엘리먼트 (예를 들어, 도 12 에서 엘리먼트 (1003)) 아래의 모든 엘리먼트들이 고려되었으면, 단계 1703 은 '아니오' 로 리턴하고 프로세싱은 대안의 제 2 테스트의 최종 스테이지로 이동한다. 이 스테이지에서, 증분 파라미터 (i) 는 먼저, 다음의 연속적인 엘리먼트들 (이 단계는 이 스테이지의 다른 단계들을 뒤따를 수 있음) 에 대한 제 2 테스트에서 사용하기 위해 리셋된다 (단계 1710). 최소 거리 (f) 가 메모리 (108) 에 저장되었는지 (단계 1711) 여부가 다시 결정되고, 그렇지 않으면, 제 2 임계보다 큰 제 2 기하학적 코스트에 대하여 '아니오' 의 결정이 단계 1306 으로 출력된다 (단계 1712). 이 단계는 단계 1707 과 유사하고, 최소 거리가 이 대안의 테스트 2 에서 결정 및 저장되지 않는 전술된 시나리오를 고려하도록 이 단계에서 반복된다. 제 2 기하학적 코스트인, 저장된 최소 거리가 존재하면, 신뢰도의 제 2 테스트로서 이 값은 (제 2) 갭 임계 거리와 비교된다 (단계 1713). 테스트 2 의 앞선 예와 유사하게, 이 대안의 방법에서 제 2 임계의 설정은, 테스트된 엘리먼트들 간의 큰 갭이 존재하는 경우 고 레벨의 신뢰도가 달성되도록 행해질 수도 있다. 이 단계의 결과는 '예' 또는 '아니오' 결정이고, 제 2 기하학적 코스트 값 (f) 은 단계 1306 에서의 프로세싱을 위해 테스트 2 에 의해 출력된다 (단계 1714).
단계 1307 에서 '커트' 결정이 엘리먼트 (1003) 아래에 '커트' 를 생성하도록, 테스트 1 의 결과는, 제 1 기하학적 코스트가 제 1 임계보다 크다는 것일 수도 있고, 테스트 2 의 결과는, 제 2 기하학적 코스트가 제 2 임계보다 크다는 것일 수도 있다는 것이 도 11a 및 도 11b 와 관련하여 앞서 설명되었다. 그러나, 이 예에서, 갭 거리 (f3) 가 최소 거리 (f51) 보다 작기 때문에, 이것이 도 14 의 예시의 방법에서 결정된 제 2 기하학적 코스트 (즉, 도 11b 의 갭 거리 (f3)) 와 도 17 의 대안의 방법에서 결정된 제 2 기하학적 코스트 (즉, 도 12b 의 최소 거리 (f51)) 사이에 있도록, 제 2 임계는 테스트 2 에 대해 설정될 수도 있다.
이 상황에서, 테스트되고 있는 엘리먼트 아래의 모든 엘리먼트들의 바운딩 박스가 제 2 기하학적 코스트를 생성하는데 사용되는 제 1 예의 더 단순한 테스트 2 는 '아니오' 결정을 산출할 것이다. 이 경우에서, '커트' 는 후속적으로 엘리먼트 (1003) 아래에서 생성되지 않을 것이다. 이것은, 계속된 프로세싱이, 엘리먼트들 (1004-1006) 이 동일한 객체에 속한다고 결정할 것이기 때문에, 도 11d 에 예시된 바와 같이 바운딩 박스 (1109) 가 엘리먼트들 (1001-1006) 모두의 주위에 정의되는 것을 초래할 것이다. 반면에, 테스트되고 있는 엘리먼트 아래의 각각의 엘리먼트가 개별적으로 사용되어 제 2 기하학적 코스트를 생성하는 제 2 예의 더 복잡한 테스트 2 는 '예' 결정을 산출할 것이다. 이 경우에서, '커트' 는 후속적으로 엘리먼트 (1003) 아래에 생성될 것이다. 이것은, 도 11c 에 도시된 바와 같이 바운딩 박스 (1108) 가 엘리먼트들 (1001-1003) 에 대하여 정의되는 것을 초래한다.
대안의 테스트는 예시의 입력 (1000) 에서 별개의 2D 객체들이 존재한다는 더 정확한 결정을 초래할 수도 있다. 이와 같이, 제 2 기하학적 코스트에 대한 대안의 테스트들 양쪽 모두는 제 1 및 제 2 기하학적 코스트 임계들의 조정 및/또는 테스트 2 로부터 리턴된 결과들의 조정을 제공하도록 수행될 수도 있다.
도 6 및 도 7 에 대하여 설명된 앞선 예와 같이, 스트로크들/엘리먼트들의 시간적 또는 시간-순서 엔트리가 또한 고려되어, 도 10 내지 도 17 과 관련하여 설명된 예들의 제 1 및 제 2 기하학적 코스트들을 조정할 수도 있다.
전술된 예들은 다수의 객체 엘리먼트들, 예컨대 방정식들에서의 스트로크들의 증분적 인식 동안 수행된 인식을 포함할 수도 있고, 여기서 HWR 시스템 (114) 은, 스트로크들의 인식이 수행되고 인식된 엘리먼트들이 메모리 (108) 에 저장 (캐싱) 되도록 입력 시에 (또는 그 후의 짧은 지연; 통상적으로 스트로크들에 의해 측정됨) (존재한다면 사전프로세싱 후에) 인식 엔진에 입력 스트로크들/엘리먼트들을 계속적으로 파싱하는 증분기와 같은 디바이스를 포함한다. 이 방식에서, 다수의 객체 테스팅은 별개의 객체가 결정되자마자 인식과 병렬로 수행될 수 있고, 그 객체 내의 스트로크들의 인식 프로세싱은, 다음 및 후속의 객체들을 프로세싱하는 경우, 이들 스트로크들이 다시 프로세싱될 (즉, 재-인식될) 필요가 없도록 이미 수행되어 있고, 이에 의해 인식 프로세스의 속도를 추가로 최적화한다.
본원에 설명된 방법들 및 시스템들의 전술된 예시의 애플리케이션은 수학 방정식들과 같은 수직적으로 변위된 객체들의 수기된 입력에 대한 것이다. 앞서 설명된 바와 같이, 다수의 객체들이 입력되고 별개로 인식될 필요가 있는 드로잉들, 다이어그램들, 음악, 화학식들 등과 같은 객체들의 2D 시스템의 임의의 수기된 입력은 또한, 설명된 방법들 및 시스템들이 임의의 배향에서 다수의 텍스트, 기호들 및 객체들의 인식을 제공하는 바와 같이 적용 가능하다. 또한, 앞서 설명된 바와 같이, 예를 들어, 수직적 리스트들이 인식될 수 있을 뿐만 아니라, 설명된 방법들 및 시스템이 또한 수평적 리스트들 및 임의로 배치된 객체들의 인식을 제공한다.
또한, 앞서 언급된 바와 같이, 본원에 설명된 다양한 예들은, 디지털 잉크 보다는 이미지들이 인식되는 오프라인 인식과 같은 수기 외의 인식을 위한 입력의 형태들에 적용될 수 있고, 예를 들어 엘리먼트들은, 대화식 스마트보드 등 상에 디지털적으로 캡처된, 페이퍼 또는 화이트보드 상의 기입의 포토그래프로서 캡처된 이미지로서 입력될 수도 있다.
설명된 방법들 및 시스템들은, 다수의 객체 인식이 객체들 그 자체들의 인식에 독립적으로 수행되기 때문에, 다수의 수학 방정식들의 수직 리스트와 같은 다수의 객체들의 프로세싱 및 인식 속도를 증가시킨다. 또한, 추상적인 산술 방정식들의 복잡한 시스템들과 같은 복잡한 다수의 객체 입력은 혼동된 인식 결과들 없이 가능하게 된다. 또한, 방정식들과 같은 다수의 객체들의 기입은 새로운 기입 영역을 생성하는 것, 새로운 라인 버튼을 탭핑하는 것 등과 같은 인식을 위한 특정 사용자 액션을 요구하지 않는다. 더 또한, 테이블들과 같은 인공 구조물에 대한 스트로크들/엘리먼트들의 매칭은 다수의 객체들의 인식을 위해 요구되지 않는다. 또한, 알고리즘의 학습 또는 트레이닝이 요구되지 않지만, 이것은 결과들을 개선시키도록 수행될 수 있다.
상기의 것들은 최선의 모드 및/또는 다른 예들인 것으로 고려되는 것으로 설명되었지만, 다양한 변형들이 그 안에서 이루어질 수도 있고 본원에 개시된 청구물은 다양한 형태들 및 예들로 구현될 수도 있으며, 이들은 다수의 다른 애플리케이션들, 조합들, 및 환경들, 본원에 설명되어 있는 단지 일부에서 적용될 수도 있다는 것이 이해된다. 당업자는, 개시된 양태들이 청구물의 진정한 사상 및 범위로부터 벗어나지 않고 변경 또는 수정될 수도 있다는 것을 인식할 것이다. 따라서, 청구물은 특정 상세들, 전시들, 및 본 설명에 예시된 예들에 한정되지 않는다. 이것은 본원에 개시된 유리한 개념들의 진정한 범위 내에 있는 임의의 및 모든 수정들 및 변형들을 보호하도록 의도된다.

Claims (53)

  1. 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법으로서,
    상기 컴퓨팅 디바이스는 프로세서 및 상기 프로세서의 제어 하에서 상기 입력을 인식하기 위한 적어도 하나의 애플리케이션을 포함하고,
    상기 방법은,
    상기 애플리케이션으로, 상기 입력의 복수의 엘리먼트들의 적어도 하나의 기하학적 피처를 결정하는 단계;
    상기 애플리케이션으로, 포지티브 또는 네거티브 결과를 결정하기 위해, 결정된 상기 적어도 하나의 기하학적 피처를 적어도 하나의 사전-결정된 기하학적 임계와 비교하는 단계; 및
    상기 비교하는 단계에 기초하여, 상기 엘리먼트들이 속하는 객체들의 수가 하나인 것으로 또는 복수인 것으로 판단하는 단계를 포함하고,
    상기 판단하는 단계는 네거티브 결과의 결정을 하나의 객체에 속하는 엘리먼트들과 연관시키고, 그리고 상기 판단하는 단계는 포지티브 결과의 결정을 다수의 객체들에 속하는 엘리먼트들과 연관시키고,
    상기 적어도 하나의 기하학적 피처는 상기 복수의 엘리먼트들의 엘리먼트들의 쌍들 간의 하나 이상의 거리들을 포함하고,
    상기 하나 이상의 거리들은 엘리먼트들의 각각의 쌍의 각각의 엘리먼트의 콘텐트의 하나 이상의 팩터들 사이이고,
    상기 하나 이상의 팩터들은 상기 엘리먼트들의 각각의 쌍의 엘리먼트들에 공통인 팩터 및 각각의 엘리먼트를 포함하는 기하학적 경계 중 적어도 하나를 포함하고,
    상기 비교하는 단계는 엘리먼트들의 각각의 쌍에 대해 제 1 거리를 제 1 사전-결정된 거리 임계와 그리고 제 2 거리를 제 2 사전-결정된 거리 임계와 비교하는 것을 포함하고, 그리고
    엘리먼트들의 각각의 쌍에 대해:
    상기 제 1 거리는 상기 엘리먼트들의 공통 팩터 간의 거리이고;
    상기 제 2 거리는 상기 엘리먼트들의 기하학적 경계 간의 거리이고;
    상기 제 1 사전-결정된 거리 임계는 공통 팩터 거리 임계이며; 그리고 상기 제 2 사전-결정된 거리 임계는 기하학적 경계 임계인, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  2. 제 1 항에 있어서,
    엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타내고;
    상기 공통 팩터는 상기 하나 이상의 스트로크들의 무게중심이고;
    상기 적어도 하나의 사전-결정된 기하학적 임계는 무게중심 거리 임계이며;
    상기 비교하는 단계는, 엘리먼트들의 쌍의 상기 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 상기 엘리먼트들의 쌍에 대해 결정된 무게중심 거리가 상기 무게중심 거리 임계보다 큰 경우 포지티브 결과를 산출하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계이며;
    상기 비교하는 단계는, 엘리먼트들의 쌍의 상기 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 상기 엘리먼트들의 쌍에 대해 결정된 기하학적 경계 거리가 상기 기하학적 경계 거리 임계보다 큰 경우 포지티브 결과를 산출하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  4. 제 1 항에 있어서,
    상기 비교하는 단계는, 엘리먼트들의 쌍의 상기 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 상기 제 1 및 제 2 거리들 양쪽 모두가 개별의 제 1 및 제 2 사전-결정된 거리 임계들보다 큰 경우 상기 엘리먼트들의 쌍에 대해 포지티브 결과를 산출하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  5. 제 1 항에 있어서,
    엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타내며;
    상기 공통 팩터는 상기 하나 이상의 스트로크들의 무게중심인, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  6. 제 1 항에 있어서,
    상기 엘리먼트들의 각각의 쌍의 엘리먼트들은 기하학적으로 인접한, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  7. 제 1 항에 있어서,
    상기 애플리케이션으로, 상기 복수의 엘리먼트들의 엘리먼트들의 입력의 위치적 및 시간적 순서 중 적어도 하나를 결정하는 단계를 더 포함하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  8. 제 7 항에 있어서,
    상기 적어도 하나의 기하학적 임계는 상기 엘리먼트들의 입력의 결정된 상기 시간적 순서를 고려하여 사전-결정되는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  9. 제 7 항에 있어서,
    상기 엘리먼트들의 쌍들 중 적어도 하나의 쌍에 대해,
    상기 적어도 하나의 기하학적 피처의 결정은,
    상기 애플리케이션으로, 각각이 상기 적어도 하나의 쌍의 하나의 엘리먼트와 제 1 위치적 순서 관계를 갖는 제 1 엘리먼트 및 상기 적어도 하나의 쌍의 다른 엘리먼트와 제 2 위치적 순서 관계를 갖는 제 2 엘리먼트를 포함하는 엘리먼트들의 쌍들 간의 기하학적 경계 거리들을 결정하는 것; 및
    상기 애플리케이션으로, 결정된 상기 기하학적 경계 거리들의 최소 거리를 결정하는 것을 포함하고,
    상기 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계를 포함하고;
    상기 비교하는 단계는 결정된 최소 기하학적 경계 거리를 상기 기하학적 경계 거리 임계와 비교하는 것을 포함하며; 그리고
    상기 비교하는 단계는, 상기 적어도 하나의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 상기 결정된 최소 기하학적 경계 거리가 상기 기하학적 경계 거리 임계보다 큰 경우 포지티브 결과를 산출하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  10. 제 9 항에 있어서,
    상기 위치적 순서는 방향성이고, 제 1 및 제 2 방향성 관계들은 각각, 상기 적어도 하나의 쌍의 엘리먼트들로부터의 제 1 및 제 2 방향들인, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  11. 제 9 항에 있어서,
    상기 제 1 및 제 2 엘리먼트들의 쌍들은 상기 제 2 엘리먼트의 기하학적 영역 내에 제 1 엘리먼트들을 포함하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  12. 제 11 항에 있어서,
    엘리먼트들의 각각의 쌍의 각각의 엘리먼트는 하나 이상의 수기된 스트로크들을 나타내며;
    상기 기하학적 영역은 상기 하나 이상의 수기된 스트로크들의 특징에 기초하는, 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법.
  13. 컴퓨터 판독가능 프로그램 코드가 수록되어 있는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는 컴퓨팅 디바이스로의 다수의 객체들의 수기된 입력을 인식하는 방법을 구현하기 위해 실행되도록 적응되고,
    상기 컴퓨팅 디바이스는 프로세서 및 상기 프로세서의 제어 하에서 상기 입력을 인식하기 위한 적어도 하나의 애플리케이션을 포함하고,
    상기 방법은,
    상기 애플리케이션으로, 상기 입력의 복수의 엘리먼트들의 적어도 하나의 기하학적 피처를 결정하는 단계;
    상기 애플리케이션으로, 포지티브 또는 네거티브 결과를 결정하기 위해, 결정된 상기 적어도 하나의 기하학적 피처를 적어도 하나의 사전-결정된 기하학적 임계와 비교하는 단계;
    상기 비교하는 단계에 기초하여, 상기 엘리먼트들이 속하는 객체들의 수가 하나인 것으로 또는 복수인 것으로 판단하는 단계를 포함하고,
    상기 판단하는 단계는 네거티브 결과의 결정을 하나의 객체에 속하는 엘리먼트들과 연관시키고, 그리고 상기 판단하는 단계는 포지티브 결과의 결정을 다수의 객체들에 속하는 엘리먼트들과 연관시키고,
    컴퓨터 프로그램은, 상기 애플리케이션으로, 상기 복수의 엘리먼트들의 엘리먼트들의 입력의 위치적 및 시간적 순서 중 적어도 하나를 결정하는 단계를 더 포함하고,
    상기 적어도 하나의 기하학적 피처는 상기 복수의 엘리먼트들의 쌍들 간의 하나 이상의 거리들을 포함하고,
    상기 엘리먼트들의 쌍들 중 적어도 하나의 쌍에 대해:
    상기 적어도 하나의 기하학적 피처의 결정은,
    상기 애플리케이션으로, 각각이 상기 적어도 하나의 쌍의 하나의 엘리먼트와 제 1 위치적 순서 관계를 갖는 제 1 엘리먼트 및 상기 적어도 하나의 쌍의 다른 엘리먼트와 제 2 위치적 순서 관계를 갖는 제 2 엘리먼트를 포함하는 엘리먼트들의 쌍들 간의 기하학적 경계 거리들을 결정하는 것; 및
    상기 애플리케이션으로, 결정된 상기 기하학적 경계 거리들의 최소 거리를 결정하는 것을 포함하고,
    상기 적어도 하나의 사전-결정된 기하학적 임계는 기하학적 경계 거리 임계를 포함하고;
    상기 비교하는 단계는 결정된 최소 기하학적 경계 거리를 상기 기하학적 경계 거리 임계와 비교하는 것을 포함하며;
    상기 비교하는 단계는, 상기 적어도 하나의 쌍의 엘리먼트들이 상이한 객체들에 속하는 것으로서 간주되도록, 상기 결정된 최소 기하학적 경계 거리가 상기 기하학적 경계 거리 임계보다 큰 경우 포지티브 결과를 산출하는, 컴퓨터 판독가능 프로그램 코드가 수록되어 있는 비일시적 컴퓨터 판독가능 저장 매체.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 삭제
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
KR1020187004041A 2015-07-10 2016-07-08 다수의 객체 입력을 인식하기 위한 시스템 및 그 방법 및 제품 KR102326395B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP15290183 2015-07-10
EP15290183.1 2015-07-10
US14/870,735 US9904847B2 (en) 2015-07-10 2015-09-30 System for recognizing multiple object input and method and product for same
US14/870,735 2015-09-30
PCT/EP2016/001175 WO2017008896A1 (en) 2015-07-10 2016-07-08 System for recognizing multiple object input and method and product for same

Publications (2)

Publication Number Publication Date
KR20180064371A KR20180064371A (ko) 2018-06-14
KR102326395B1 true KR102326395B1 (ko) 2021-11-12

Family

ID=53794166

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187004041A KR102326395B1 (ko) 2015-07-10 2016-07-08 다수의 객체 입력을 인식하기 위한 시스템 및 그 방법 및 제품

Country Status (6)

Country Link
US (1) US9904847B2 (ko)
EP (1) EP3320482B1 (ko)
JP (1) JP6777723B2 (ko)
KR (1) KR102326395B1 (ko)
CN (1) CN108027876B (ko)
WO (1) WO2017008896A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170068868A1 (en) * 2015-09-09 2017-03-09 Google Inc. Enhancing handwriting recognition using pre-filter classification
US10579893B2 (en) * 2017-02-28 2020-03-03 Konica Minolta Laboratory U.S.A., Inc. Inferring stroke information from an image
US10163004B2 (en) * 2017-03-30 2018-12-25 Konica Minolta Laboratory U.S.A., Inc. Inferring stroke information from an image
CN108509955B (zh) * 2017-02-28 2022-04-15 柯尼卡美能达美国研究所有限公司 用于字符识别的方法、系统和非瞬时计算机可读介质
CN107729865A (zh) * 2017-10-31 2018-02-23 中国科学技术大学 一种手写体数学公式离线识别方法及系统
CN109992121B (zh) * 2017-12-29 2023-02-03 北京搜狗科技发展有限公司 一种输入方法、装置和用于输入的装置
US10867124B2 (en) * 2018-03-26 2020-12-15 Apple Inc. Manual annotations using clustering, anchoring, and transformation
US10997402B2 (en) * 2018-07-03 2021-05-04 Fuji Xerox Co., Ltd. Systems and methods for real-time end-to-end capturing of ink strokes from video
US20200090030A1 (en) * 2018-09-19 2020-03-19 British Cayman Islands Intelligo Technology Inc. Integrated circuit for convolution calculation in deep neural network and method thereof
US11126836B2 (en) * 2019-03-28 2021-09-21 Microsoft Technology Licensing, Llc Grouping strokes of digital ink
CN110363149B (zh) * 2019-07-16 2021-12-03 广州视源电子科技股份有限公司 笔迹的处理方法和装置
KR20190096872A (ko) * 2019-07-31 2019-08-20 엘지전자 주식회사 연합학습(Federated learning)을 통한 필기체 인식방법 및 이를 위한 장치
KR20210061523A (ko) * 2019-11-19 2021-05-28 삼성전자주식회사 필기 입력을 텍스트로 변환하는 전자 장치 및 그 동작 방법
EP4130966A1 (en) 2019-11-29 2023-02-08 MyScript Gesture stroke recognition in touch-based user interface input
EP3859602B1 (en) * 2020-01-28 2023-08-09 MyScript Math detection in handwriting
CN113345051B (zh) * 2020-02-18 2024-10-18 北京沃东天骏信息技术有限公司 对图元进行排版的方法、装置、计算设备及介质
EP4086744B1 (en) 2021-05-04 2024-02-21 MyScript Gesture stroke recognition in touch-based user interface input
CN117727050A (zh) * 2023-09-27 2024-03-19 书行科技(北京)有限公司 手写文本评估方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040090439A1 (en) 2002-11-07 2004-05-13 Holger Dillner Recognition and interpretation of graphical and diagrammatic representations
US20060062475A1 (en) 2004-09-21 2006-03-23 Microsoft Corporation System and method for connected container recognition of a hand-drawn chart in ink input
US20140328540A1 (en) 2013-05-03 2014-11-06 Microsoft Corporation Sketch Segmentation

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5544262A (en) 1992-04-07 1996-08-06 Apple Computer, Inc. Method and apparatus for processing graphically input equations
US5428805A (en) 1992-12-22 1995-06-27 Morgan; Michael W. Method and apparatus for recognizing and performing handwritten calculations
US7203903B1 (en) * 1993-05-20 2007-04-10 Microsoft Corporation System and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawings
US6556712B1 (en) * 1996-05-23 2003-04-29 Apple Computer, Inc. Methods and apparatus for handwriting recognition
US6226403B1 (en) * 1998-02-09 2001-05-01 Motorola, Inc. Handwritten character recognition using multi-resolution models
JP2002063548A (ja) * 2001-06-18 2002-02-28 Hitachi Software Eng Co Ltd 手書き文字認識方法
US7729538B2 (en) * 2004-08-26 2010-06-01 Microsoft Corporation Spatial recognition and grouping of text and graphics
US7447360B2 (en) 2004-09-22 2008-11-04 Microsoft Corporation Analyzing tabular structures in expression recognition
US7724957B2 (en) * 2006-07-31 2010-05-25 Microsoft Corporation Two tiered text recognition
CN100555312C (zh) * 2006-09-19 2009-10-28 北京三星通信技术研究有限公司 利用字符结构信息进行后处理的手写识别的方法和装置
CN101216947B (zh) * 2008-01-18 2010-08-18 北京语言大学 基于笔段网格的手写汉字输入方法和汉字识别方法
CN101364271B (zh) * 2008-05-09 2011-05-11 东莞市正欣科技有限公司 手写汉字笔画的识别方法和识别装置
US8121412B2 (en) 2008-06-06 2012-02-21 Microsoft Corporation Recognition of tabular structures
US20100163316A1 (en) * 2008-12-30 2010-07-01 Microsoft Corporation Handwriting Recognition System Using Multiple Path Recognition Framework
CN102156609B (zh) * 2010-12-10 2012-12-19 上海合合信息科技发展有限公司 一种重叠书写的手写输入方法
CN102455870A (zh) * 2011-09-29 2012-05-16 北京壹人壹本信息科技有限公司 一种手写输入方法及装置
CN102789362A (zh) 2012-06-29 2012-11-21 鸿富锦精密工业(深圳)有限公司 电子设备及其智能计算控制方法
JP5787843B2 (ja) * 2012-08-10 2015-09-30 株式会社東芝 手書き描画装置、方法及びプログラム
JP5774558B2 (ja) * 2012-08-10 2015-09-09 株式会社東芝 手書き文書処理装置、方法及びプログラム
US9576495B2 (en) 2012-12-11 2017-02-21 Fluidity Software, Inc. Computerized system and method for teaching, learning, and assessing the knowledge of stem principles
JP5717831B2 (ja) * 2013-12-10 2015-05-13 株式会社東芝 電子機器および手書き文書処理方法
CN104714666B (zh) * 2013-12-12 2017-09-05 鸿合科技有限公司 一种智能笔及其笔划识别处理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040090439A1 (en) 2002-11-07 2004-05-13 Holger Dillner Recognition and interpretation of graphical and diagrammatic representations
US20060062475A1 (en) 2004-09-21 2006-03-23 Microsoft Corporation System and method for connected container recognition of a hand-drawn chart in ink input
US20140328540A1 (en) 2013-05-03 2014-11-06 Microsoft Corporation Sketch Segmentation

Also Published As

Publication number Publication date
WO2017008896A1 (en) 2017-01-19
CN108027876B (zh) 2022-06-03
US9904847B2 (en) 2018-02-27
CN108027876A (zh) 2018-05-11
KR20180064371A (ko) 2018-06-14
EP3320482B1 (en) 2020-09-02
JP2018524734A (ja) 2018-08-30
EP3320482A1 (en) 2018-05-16
JP6777723B2 (ja) 2020-10-28
US20170011262A1 (en) 2017-01-12

Similar Documents

Publication Publication Date Title
KR102326395B1 (ko) 다수의 객체 입력을 인식하기 위한 시스템 및 그 방법 및 제품
US9911052B2 (en) System and method for superimposed handwriting recognition technology
US9384403B2 (en) System and method for superimposed handwriting recognition technology
US12033411B2 (en) Stroke based control of handwriting input
CN108369637B (zh) 用于美化数字墨水的系统和方法
CN108701215B (zh) 用于识别多对象结构的系统和方法
US20220207899A1 (en) Stroke attribute matrices
US10579868B2 (en) System and method for recognition of objects from ink elements
CN114365075A (zh) 用于选择图形对象的方法和对应装置
CN115039144B (zh) 处理手写中的数学和文本的方法和计算装置
EP3491580B1 (en) System and method for beautifying superimposed digital ink
JP6735775B2 (ja) 重畳手書き入力認識技術のためのシステム及び方法
WO2006090404A1 (en) System, method, and apparatus for accomodating variability in chunking the sub-word units of online handwriting
WO2023170314A1 (en) Creating text block sections
WO2024110354A1 (en) Setting font size in an unconstrained canvas

Legal Events

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