KR20180104678A - 다중 오브젝트 구조를 인식하기 위한 시스템 및 방법 - Google Patents

다중 오브젝트 구조를 인식하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20180104678A
KR20180104678A KR1020187023832A KR20187023832A KR20180104678A KR 20180104678 A KR20180104678 A KR 20180104678A KR 1020187023832 A KR1020187023832 A KR 1020187023832A KR 20187023832 A KR20187023832 A KR 20187023832A KR 20180104678 A KR20180104678 A KR 20180104678A
Authority
KR
South Korea
Prior art keywords
elements
recognized
matrix
geometric
input
Prior art date
Application number
KR1020187023832A
Other languages
English (en)
Other versions
KR102463657B1 (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 KR20180104678A publication Critical patent/KR20180104678A/ko
Application granted granted Critical
Publication of KR102463657B1 publication Critical patent/KR102463657B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification
    • G06K9/00422
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/171Editing, e.g. inserting or deleting by use of digital ink
    • G06K9/00449
    • G06K9/723
    • G06K9/726
    • 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/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/268Lexical context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/26Techniques for post-processing, e.g. correcting the recognition result
    • G06V30/262Techniques for post-processing, e.g. correcting the recognition result using context analysis, e.g. lexical, syntactic or semantic context
    • G06V30/274Syntactic or semantic context, e.g. balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • G06K2209/01

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)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템, 방법, 및 컴퓨터 프로그램. 컴퓨팅 디바이스는 프로세서, 및 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함할 수도 있다. 비일시적 컴퓨터 판독가능 매체는, 매체로, 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 결정하고, 매체로, 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 갖는 그 인식된 엘리먼트들을, 그 인식된 엘리먼트들의 배열의 대응하는 포지션들에 할당하도록 구성될 수도 있다. 상기 배열의 포지션들은 인식된 엘리먼트들의 2-차원 구조의 셀들일 수도 있다. 상기 적어도 하나의 기하학적 관계는 상기 배열의 하나 이상의 방향들에서의 복수의 인식된 엘리먼트들의 오버랩일 수도 있다.

Description

다중 오브젝트 구조를 인식하기 위한 시스템 및 방법
관련 출원들에 대한 상호 참조
이 출원은, 2016년 1월 20일자로 출원된 유럽 출원 제 16290015.3 호, 및 2016년 5월 12일자로 출원된 미국 출원 제 15/152,762 호에 대해 우선권을 주장하고, 그것들은 그들 전체가 참조에 의해 본원에 통합되고 본원의 일부를 이룬다.
기술 분야
본 설명은 일반적으로 컴퓨팅 디바이스들을 이용하여 구조들 내의 다수의 수기 오브젝트들의 입력을 인식하는 분야에 관한 것이다. 본 설명은 보다 구체적으로는 입력 콘텐츠의 위치적 관계의 고려를 통해 수기 콘텐츠에 대해 2-차원 구조들을 검출하는 것 및 입력 콘텐츠의 수기 인식에 관한 것이다.
컴퓨팅 디바이스들이 일상 생활에서 계속하여 더욱 편재적이 되어 가고 있다. 그것들은 컴퓨터 데스크톱들, 랩톱 컴퓨터들, 태블릿 컴퓨터들, 하이브리드 컴퓨터들 (2-인-1들), e-북 리더들, 모바일 폰들, 스마트폰들, 착용가능 컴퓨터들 (스마트워치들, 스마트 안경/헤드셋들을 포함함), 글로벌 포지셔닝 시스템 (GPS) 유닛들, 기업 정보 단말기들 (enterprise digital assistants; EDA들), 개인 정보 단말기들 (PDA들), 게임 콘솔들 등의 형태를 취한다. 게다가, 컴퓨팅 디바이스들은 차량들과 장비, 이를테면 자동차들, 트럭들, 농기구, 제조 장비, 건물 환경 제어 (예컨대, 조명, HVAC), 그리고 가정 및 상업용 기기들 내로 통합되고 있다.
컴퓨팅 디바이스들은 적어도 하나의 프로세싱 엘리먼트, 이를테면 중앙 프로세싱 유닛 (CPU), 일부 형태의 메모리, 그리고 입력 및 출력 디바이스들로 일반적으로 이루어진다. 다양한 컴퓨팅 디바이스들 및 그것들의 후속하는 사용들은 다양한 인터페이스들과 입력 디바이스들을 필요로 한다. 하나의 이러한 입력 디바이스는 사용자의 손가락 또는 펜 또는 스타일러스와 같은 기구와 터치 감응 표면 사이의 접촉을 통해 사용자 입력이 수신되는 터치 스크린 또는 터치 패드와 같은 터치 감응 표면이다. 다른 입력 디바이스는 입력 표면 위에서 사용자에 의해 이루어진 제스처들을 감지하는 입력 표면이다. 추가의 입력 디바이스는 비-터치 물리적 또는 가상적 표면과의 터치 상호작용 또는 비-터치 상호작용 중 어느 일방의 상호작용의 상대적 포지션을 검출하는 포지션 검출 시스템이다. 이들 입력 방법들 중 임의의 것은 일반적으로 드로잉 또는 입력 텍스트에 대해 사용될 수 있다. 사용자의 수기는 수기 인식 시스템 또는 방법을 이용하여 해석된다. 컴퓨팅 디바이스들에 대한 수기 입력을 위한 다른 시스템들은, Anoto AB., Leapfrog Enterprises, Inc., 및 Livescribe, Inc. 에 의해 제공된 시스템들과 같이, 컴퓨팅 디바이스에 의해 추적된 표면에 대한 그것들의 이동을 가지도록 종이, 인코딩된 표면들 또는 디지털화하는 표면들과 상호작용하는 전자적 또는 디지털 펜들을 포함한다.
사용되는 입력 방법과 상관 없이, 수기 인식 시스템들 및 방법들은, 터치 감응 표면과의 제 1 접촉이 언제 이루어지는 때 (펜-다운 이벤트) 와 같이, 디지털 잉크 스트로크의 개시; 터치 감응 표면과의 접촉이 중지되는 때 (펜-업 이벤트) 와 같이, 스트로크의 종결; 및 스트로크 개시 및 종결 사이에 이루어지는 임의의 이동을 결정하는 것을 통상적으로 수반한다. 이들 결정된 스트로크들은 입력을 인식 및 해석하기 위해 프로세싱된다. 컴퓨팅 디바이스 또는 입력 표면의 타입은 또한, 이용되는 수기 인식 시스템 또는 방법의 타입을 결정할 수 있다. 실례로, 입력 표면이 충분히 긴 경우 (예컨대, 태블릿), 사용자는, 사용자가 종이 위에서 쓰고 있었던 것처럼, 그 입력 표면 상에 또는 위에 어느곳에서도 입력을 수기 (handwrite) 할 수 있다. 하지만, 이것은 또한, 인식될 별개의 엘리먼트들이 그 엘리먼트들의 상대적인 포지션들에 종속적으로 관련될 수도 있거나 그것들의 상대적인 포지션들에 독립적으로 관련되지 않을 수도 있기 때문에, 인식 태스크 (recognition task) 에 대해 복잡성을 부가한다.
예를 들어, 수학 식들, 테이블들 및 행렬들과 같이 구조화된 콘텐츠 (structured content) 에 대해, 수기된 엘리먼트들의 상대적인 포지셔닝 (positioning) 은 그 구조를 정의하기 위해 필요하다. 예를 들어, 미국 특허 제 7,447,360 호 및 제 8,121,412 호와 같이 수학적 매트릭스들의 인식을 다루기 위한 일부 시스템들이 이용가능하다. 이들 시스템들은, 예컨대 행들 및 열들 내에서의, 브라켓들 또는 공간적 정렬과 같은, 인식을 위한 표시적 엘리먼트들에 의존하고, 이와 같이 단지 콘텐츠 그 자체와 관련 없이 구조를 단지 인식한다. 이러한 인식은 비교적 단순하고 잘 형성된 행렬들에 대해 적용가능하지만, 그것들은, 예컨대 식들, 하위-행렬들 등과 같이 복잡한 엘리먼트들을 포함하는 보다 복잡한 행렬들, 예컨대 행 및 열 포지션들과 같이 빈 엘리먼트 셀들을 갖는 행렬들 또는 잘못 정렬된 행렬 엘리먼트들을 처리할 수 없다. 또한, 이들 특허들의 기술된 시스템들은 이들 구조들의 절대적 인식을 제공하여서, 콘텐츠 그 자체의 인식에 영향을 미친다.
특정 지정 엘리먼트들 또는 제스처들의 입력에 의존하지 않고, 충분한 인식 정확도를 유지하면서 인식에 프로세싱 시간 또는 복잡성을 심각하게 증가시키지 않는, 행렬들 및 유사한 복잡한 콘텐츠 구조들을 인식하는 시스템이 필요하다.
이하에서 본원에 기술된 본 발명의 예들은, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들 (objects) 의 배열 (arrangement) 을 인식하기 위한 시스템을 제공하기 위한 시스템들 및 방법들을 제공한다. 하나의 예에서, 컴퓨팅 디바이스는 프로세서, 및 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 비일시적 (non-transitory) 컴퓨터 판독가능 매체를 포함할 수도 있다. 비일시적 컴퓨터 판독가능 매체는, 매체로, 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계 (geometrical relationship) 를 결정하고, 매체로, 그들 사이에 적어도 하나의 기하학적 관계를 갖는 인식된 엘리먼트들을, 그 인식된 엘리먼트들의 배열의 대응하는 포지션들 (positions) 에 할당하도록 구성될 수도 있다. 배열의 포지션들은 인식된 엘리먼트들의 2-차원 구조의 셀들일 수도 있다. 적어도 하나의 기하학적 관계는 배열의 하나 이상의 방향들에서의 복수의 인식된 엘리먼트들의 오버랩 (overlap) 일 수도 있다.
적어도 하나의 비일시적 컴퓨터 판독가능 매체는 또한, 복수의 인식된 엘리먼트들의 하나 이상의 기하학적 피처들 (geometrical features) 사이의 방향성 거리 (directional distance) 의, 적어도 하나의 기하학적 임계치와의 비교에 기초하여 오버랩을 결정하도록 구성될 수도 있다. 적어도 하나의 기하학적 임계치는 인식된 엘리먼트들의 적어도 일부의 적어도 하나의 기하학적 간격 (geometrical spacing) 에 기초할 수도 있다. 적어도 하나의 기하학적 간격은 또한, 인식된 엘리먼트들의 적어도 일부의 엘리먼트들의 컴포넌트들 사이의 최대 간격일 수도 있다.
다른 예에서, 본 발명은 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법을 포함한다. 각각의 컴퓨팅 디바이스는 프로세서, 및 그 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함할 수도 있다. 이 방법은, (i) 매체로, 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 결정하는 것, 및 (ii) 매체로, 그들 사이에 적어도 하나의 기하학적 관계를 갖는 인식된 엘리먼트들을, 그 인식된 엘리먼트들의 배열의 대응하는 포지션들에 할당하는 것의 단계들을 포함할 수도 있다. 배열의 포지션들은 인식된 엘리먼트들의 2-차원 구조의 셀들일 수도 있다. 적어도 하나의 기하학적 관계는 배열의 하나 이상의 방향들에서의 복수의 인식된 엘리먼트들의 오버랩일 수도 있다.
이 방법은, 복수의 인식된 엘리먼트들의 하나 이상의 기하학적 피처들 사이의 방향성 거리의, 적어도 하나의 기하학적 임계치와의 비교에 기초하여 오버랩을 결정하는 단계를 더 포함할 수도 있다. 그 적어도 하나의 기하학적 임계치는 인식된 엘리먼트들의 적어도 일부의 적어도 하나의 기하학적 간격에 기초할 수도 있다. 그 적어도 하나의 기하학적 간격은 인식된 엘리먼트들의 적어도 일부의 엘리먼트들의 컴포넌트들 사이의 최대 간격일 수도 있다.
또 다른 예에서, 본 발명은 컴퓨터 판독가능 프로그램 코드를 그 안에 포함한 비일시적 컴퓨터 판독가능 매체를 포함한다. 이 컴퓨터 판독가능 프로그램 코드는 컴퓨팅 디바이스에 입력된 다수의 오브젝트들의 배열을 인식하는 방법을 구현하기 위해 실행되도록 적응될 수도 있다. 이 컴퓨팅 디바이스는 프로세서, 및 그 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 시스템 비일시적 컴퓨터 판독가능 매체를 포함할 수도 있다. 이 방법은, (i) 매체로, 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 결정하는 것, 및 (ii) 매체로, 그들 사이에 적어도 하나의 기하학적 관계를 갖는 인식된 엘리먼트들을, 그 인식된 엘리먼트들의 배열의 대응하는 포지션들에 할당하는 것을 포함할 수도 있다. 그 배열의 포지션들은 인식된 엘리먼트들의 2-차원 구조의 셀들일 수도 있다. 그 적어도 하나의 기하학적 관계는 배열의 하나 이상의 방향들에서의 복수의 인식된 엘리먼트들의 오버랩일 수도 있다.
그 방법은, 복수의 인식된 엘리먼트들의 하나 이상의 기하학적 피처들 사이의 방향성 거리의, 적어도 하나의 기하학적 임계치와의 비교에 기초하여 오버랩을 결정하는 것의 단계를 더 포함할 수도 있다. 적어도 하나의 기하학적 임계치는 인식된 엘리먼트들의 적어도 일부의 적어도 하나의 기하학적 간격에 기초할 수도 있다. 그 적어도 하나의 기하학적 간격은 인식된 엘리먼트들의 적어도 일부의 엘리먼트들의 컴포넌트들 사이의 최대 간격일 수도 있다.
본 시스템 및 방법은 도면들과 함께 취해진 그것의 예들의 이하의 상세한 설명으로부터 보다 완전하게 이해될 것이다. 도면들에서, 동일한 참조 부호들은 동일한 엘리먼트들을 나타낸다.
도 1 은 본 시스템 및 방법의 일 예에 따른 컴퓨팅 디바이스의 블록도를 나타낸다.
도 2 는 본 시스템 및 방법의 일 예에 따른, 수기 인식을 위한 시스템의 블록도를 나타낸다.
도 3 은 본 시스템 및 방법의 일 예에 따른, 도 2 의 수기 인식 시스템의 상세를 나타내는 블록도를 도시한다.
도 4a 는 본 시스템에 따른, 2x2 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 4b 는 도 4a 의 수기된 입력의 인식된 출력의 일 예를 나타낸다.
도 5a 는 본 시스템에 따른, 2x3 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 5b 는 도 5a 의 수기된 입력의 인식된 출력의 일 예를 나타낸다.
도 6 은 본 시스템에 따른, 2x2 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 7 은 본 시스템에 따른, 2x2 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 8 은 본 시스템에 따른, 4x4 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 9 는 본 시스템에 따른, 2x3 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 10 은 본 시스템에 따른, 2x2 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 11a 는 본 시스템에 따른, 3x3 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 11b 는 도 11a 의 수기된 입력의 인식된 출력의 일 예를 나타낸다.
도 12 는 본 시스템에 따른, 3x3 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 13 은 본 시스템에 따른, 수기된 입력의 일 예를 나타낸다.
도 14a 는 본 시스템에 따른, 수기된 입력의 다른 예를 나타낸다.
도 14b 는 도 14a 의 수기된 입력의 인식된 출력의 일 예를 나타낸다.
도 15 는 본 시스템에 따른, 수기된 입력의 또 다른 예를 나타낸다.
도 16 은 본 시스템에 따른, 네스팅된 행렬들을 갖는 3x3 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 17 은 본 시스템에 따른, 1x3 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 18 은 본 시스템에 따른, 3x1 행렬의 형태의 수기된 입력의 일 예를 나타낸다.
도 19 는 본 시스템에 따른, 수기된 입력의 일 예를 나타낸다.
도 20 은 본 시스템에 따른, 수기된 입력의 일 예를 나타낸다.
도 21 내지 도 31 은 본 시스템에 따른, 행렬 인식의 일 예를 나타낸다.
다음의 상세한 설명에서, 수많은 특정 세부사항들이 관련 있는 교시들의 철저한 이해를 제공하기 위하여 예들에 의해 언급된다. 그러나, 본원의 교시들은 이들 세부사항들 없이 실용화될 수도 있다는 것이 당해 기술분야에서 통상의 지식을 가진 자 (이하, '통상의 기술자' 라 함) 에게 명백할 것이다. 다른 경우들에서, 널리 공지된 방법들, 절차들, 컴포넌트들, 및/또는 회로는, 본 교시들의 양태들을 불필요하게 모호하게 하는 것을 피하기 위하여, 세부사항 없이, 비교적 하이-레벨에서 설명되었다. 업, 다운, 위, 아래, 최저, 최고, 수평, 수직 등과 같은 방향성 피처들에 대한 언급 및 그것들의 논의는, 인식될 입력이 이루어지는 입력 표면에 적용되는 것으로서의 데카르트 좌표 시스템에 관하여 이루어진다.
본 명세서에서 설명되는 다양한 기술들은, 휴대용 및 비-휴대용 컴퓨팅 디바이스들 상에 핸드 드로잉된 및 수기된 콘텐츠의, 입력된 스타일을 유지하면서도 그 콘텐츠의 충실한 식자 (typeset) 또는 미화된 버전으로의 변환을 허용하는 방식의 캡처, 프로세싱 및 관리에 일반적으로 관련된다. 본 명세서에서 설명되는 시스템들 및 방법들은 컴퓨팅 디바이스의 또는 컴퓨팅 디바이스에 접속된 터치 감응 스크린과 같은 입력 표면을 통해 또는 컴퓨팅 디바이스에 접속된 디지털 펜 또는 마우스와 같은 입력 디바이스를 통해 또는 포지션 검출 시스템에 의해 모니터링되는 물리적 또는 가상적 표면을 통해 컴퓨팅 디바이스에 입력된 사용자의 자연스러운 필기 또는 드로잉 스타일들의 인식을 이용할 수도 있다. 다양한 예들이 이른바 온라인 인식 기법들을 사용한 수기 입력의 인식에 관하여 설명되지만, 인식을 위한 입력의 다른 형태들, 이를테면 디지털 잉크가 아니라 이미지들이 인식되는 오프라인 인식에 응용이 가능하다는 것이 이해된다. 핸드-드로잉 (hand-drawing) 과 수기 (handwriting) 라는 용어들은 디지털 또는 디지털적으로 접속된 매체 상에 직접적으로 또는 입력 도구, 이를테면 핸드헬드 스타일러스를 통해 중 어느 하나로 사용자들에 의한 그들의 손들의 사용을 통한 디지털 콘텐츠의 생성을 정의하기 위해 본 명세서에서 교환적으로 사용된다. "핸드 (hand)"라는 용어는 입력 기법들의 간결한 설명을 제공하기 위해 본 명세서에서 사용되지만, 유사한 입력을 위한 사용자의 신체의 다른 부분들, 이를테면 발, 입 및 눈의 사용은 이 정의에 포함된다.
도 1 은 예시적인 컴퓨팅 디바이스 (100) 의 블록도를 도시한다. 컴퓨팅 디바이스는 컴퓨터 데스크톱, 랩톱 컴퓨터, 태블릿 컴퓨터, e-북 리더, 모바일 폰, 스마트폰, 착용가능 컴퓨터, 디지털 손목시계, 상호작용형 화이트보드, 글로벌 포지셔닝 시스템 (GPS) 유닛, 기업 정보 단말기 (EDA), 개인 정보 단말기 (PDA), 게임 콘솔 등일 수도 있다. 컴퓨팅 디바이스 (100) 는 적어도 하나의 프로세싱 엘리먼트의 컴포넌트들, 일부 형태의 메모리 그리고 입력 및/또는 출력 (I/O) 디바이스들을 포함한다. 컴포넌트들은 입력들 및 출력들, 이를테면 커넥터들, 라인들, 버스들, 케이블들, 버퍼들, 전자기적 링크들, 네트워크들, 모뎀들, 트랜스듀서들, IR 포트들, 안테나들, 또는 통상의 기술자에게 알려진 다른 것들을 통해 서로 통신한다.
컴퓨팅 디바이스 (100) 의 도시된 예는 이미지들, 텍스트, 및 비디오와 같은 컴퓨팅 디바이스로부터의 데이터를 출력하기 위한 적어도 하나의 디스플레이 (102) 를 가진다. 디스플레이 (102) 는 통상의 기술자에게 알려진 바와 같은 터치 감응식이거나 또는 터치 감응식이 아닌 LCD, 플라즈마, LED, iOLED, CRT, 또는 임의의 다른 적절한 기술을 사용할 수도 있다. 디스플레이 (102) 의 적어도 일부는 적어도 하나의 입력 표면 (104) 과 같은 장소에 위치된다. 입력 표면 (104) 은 저항성, 표면 음파, 용량성, 적외선 그리드, 적외선 아크릴 투영, 광학적 이미징, 분산 신호 기술, 음향 펄스 인식과 같은 기술, 또는 사용자 입력을 수신하기 위한 통상의 기술자에게 알려진 바와 같은 임의의 다른 적절한 기술을 채용할 수도 있다. 입력 표면 (104) 은 그것의 경계들을 분명히 식별하는 영구적 또는 비디오 생성된 경계선에 의해 경계가 정해질 수도 있다. 온-보드 디스플레이 대신에 또는 그에 추가하여, 컴퓨팅 디바이스 (100) 는 투영된 디스플레이 능력을 가질 수도 있다. 대안적으로, 컴퓨팅 디바이스는 디스플레이에 독립적인 또는 디스플레이 없는 입력 표면을 포함할 수도 있다. 디스플레이를 갖지 않는 디바이스의 경우에, 입력 표면을 통해 이루어진 입력은 컴퓨팅 디바이스에 의해 디스플레이되지 않고, 그보다는 그 디바이스는 오직 인식된 입력 (나중에 논의됨) 이 예를 들어 제어 입력을 위해 사용되거나, 또는, 접속된 디바이스 또는 전용 디스플레이 디바이스 상에 콘텐츠로서 디스플레이되는, 입력 디바이스로서 작용한다.
컴퓨팅 디바이스 (100) 는 로컬 인터페이스를 통해 통신가능하게 커플링되는 하나 이상의 추가적인 I/O 디바이스들 (또는 주변기기들) 을 포함할 수도 있다. 추가적인 I/O 디바이스들은 키보드, 마우스, 스캐너, 마이크로폰, 터치패드, 바 코드 판독기들, 레이저 판독기들, 라디오-주파수 디바이스 판독기들, 또는 통상의 기술자에게 알려진 임의의 다른 적절한 기술과 같은 입력 디바이스들을 포함할 수도 있다. 또한, I/O 디바이스들은 프린터, 바 코드 프린터들, 또는 통상의 기술자에게 알려진 임의의 다른 적절한 기술과 같은 출력 디바이스들을 포함할 수도 있다. 더욱이, I/O 디바이스들은 변조기/복조기 (모뎀; 다른 디바이스, 시스템, 또는 네트워크에 액세스하기 위함), 무선 주파수 (RF) 등의 트랜시버, 전화 인터페이스, 브릿지, 라우터, 또는 통상의 기술자에게 알려진 임의의 다른 적절한 기술과 같이 입력들 및 출력들 양쪽 모두를 통신하는 통신 디바이스들을 포함할 수도 있다. 로컬 인터페이스는 통신들을 가능하게 하는 추가적인 엘리먼트들, 이를테면 제어기들, 버퍼들 (캐시들), 드라이버들, 리피터들, 및 수신기들을 가질 수도 있는데, 그것들은 단순화를 위해 생략되지만 통상의 기술자에게 알려져 있다. 또한, 로컬 인터페이스는 다른 컴퓨터 컴포넌트들 사이에서의 적절한 통신들을 가능하게 하는 어드레스, 제어, 및/또는 데이터 접속들을 포함할 수도 있다.
컴퓨팅 디바이스 (100) 는 소프트웨어, 특히 메모리 (108) 에 저장된 소프트웨어를 실행하기 위한 하드웨어 디바이스인 프로세서 (106) 를 또한 포함한다. 그 프로세서는 임의의 고객 맞춤형 또는 상업적으로 입수 가능한 범용 프로세서, 중앙 프로세싱 유닛 (CPU), (마이크로칩 또는 칩셋 형태의) 반도체 기반 마이크로프로세서를 포함하는 상업적으로 이용가능한 마이크로프로세서들, 마이크로제어기, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그래밍가능 게이트 어레이 (FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 상태 머신, 또는 통상의 기술자에게 알려진 소프트웨어 명령들을 실행하기 위해 설계된 그것들의 임의의 조합일 수도 있다.
메모리 (108) 는 휘발성 메모리 엘리먼트들 (예컨대, 랜덤 액세스 메모리 (RAM, 이를테면 DRAM, SRAM, 또는 SDRAM)) 및 비휘발성 메모리 엘리먼트들 (예컨대, ROM, EPROM, 플래시 PROM, EEPROM, 하드 드라이브, 자기 또는 광 테이프, 메모리 레지스터들, CD-ROM, WORM, DVD, RAID (redundant array of inexpensive disks), 다른 직접 액세스 저장 디바이스 (direct access storage device, DASD), 또는 임의의 다른 자기적, 저항성 또는 위상-변화 비휘발성 메모리) 중 임의의 하나 또는 그것들의 조합을 포함할 수도 있다. 더욱이, 메모리 (108) 는 전자적, 자기적, 광학적, 및/또는 다른 타입들의 저장 매체들을 포함할 수도 있다. 메모리 (108) 는 다양한 컴포넌트들이 서로로부터 원격으로 위치해 있지만 프로세서 (106) 에 의해 또한 액세스될 수 있는 분산형 아키텍처를 가질 수 있다. 또한, 메모리 (108) 는, 컴퓨팅 디바이스 (100) 에 의해 원격으로 액세스 가능한, 서버 또는 클라우드 기반 시스템과 같이, 디바이스로부터 원격으로 있을 수도 있다. 메모리 (108) 는 프로세서 (106) 에 커플링되며, 그래서 프로세서 (106) 는 정보를 메모리 (108) 로부터 판독하고 그 메모리에 정보를 기입할 수 있다. 대안에서, 메모리 (108) 는 프로세서 (106) 에 통합될 수도 있다. 다른 예에서, 프로세서 (106) 와 메모리 (108) 는 둘 다가 단일 ASIC 또는 다른 집적 회로에 상주할 수도 있다.
메모리 (108) 내의 소프트웨어는 오퍼레이팅 시스템 (110), 컴퓨터 판독가능 프로그램 코드를 그 안에 포함한 비일시적 컴퓨터 판독가능 매체의 형태의 애플리케이션 (112), 및 논리 함수들을 구현하기 위한 실행가능 명령들의 순서화된 리스팅을 각각 갖는 하나 이상의 별개의 컴퓨터 프로그램들을 각각 포함할 수도 있는 수기 인식 (handwriting recognition; HWR) 시스템 (114) 을 포함한다. 오퍼레이팅 시스템 (110) 은 애플리케이션 (112) 및 HWR 시스템 (114) 의 실행을 제어한다. 오퍼레이팅 시스템 (110) 은 WEBOS, WINDOWS®, MAC 및 IPHONE OS®, LINUX, 및 ANDROID 와 같은, 임의의 독점적 오퍼레이팅 시스템 또는 상업적으로 또는 자유롭게 이용가능한 오퍼레이팅 시스템일 수도 있다. 다른 오퍼레이팅 시스템들도 또한 이용될 수도 있음이 이해된다. 대안적으로, 본 시스템 및 방법의 애플리케이션 (112) 은 오퍼레이팅 시스템의 이용 없이 제공될 수도 있다.
애플리케이션 (112) 은 본 명세서에서 기술된 바와 같은 수기 인식, 다른 기능들, 또는 양자에 관련될 수도 있다. 애플리케이션 (112) 은 제조 시에 컴퓨팅 디바이스 (100) 에 제공된 프로그램들을 포함하고, 제조 후에 컴퓨팅 디바이스 (100) 내로 업로드된 또는 다운로드된 프로그램들을 추가로 포하할 수도 있다. 일부 예들은 텍스트 에디터, 전화 다이얼러, 연락처 디렉토리, 인스턴트 메시징 기능, 컴퓨터-보조 설계 (CAD) 프로그램, 이메일 프로그램, 워드 프로세싱 프로그램, 웹 브라우저, 및 카메라를 포함한다.
지원 및 준수 능력들을 갖는 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) 에 의해 원격으로 액세스 가능하다. 또한, 애플리케이션 (112) 과 HWR 시스템 (114) 은 함께 동작할 수도 있거나 단일 애플리케이션으로서 결합될 수도 있다. 또한, 애플리케이션 (112) 및/또는 HWR 시스템 (114) 은 오퍼레이팅 시스템 (110) 내에 통합될 수도 있다.
입력 표면 (104) 상에 또는 그 입력 표면을 통해 입력된 스트로크들은 프로세서 (106) 에 의해 디지털 잉크로서 프로세싱된다. 사용자가 손가락 또는 입력 표면과 함께 사용하기에 적합한 펜 또는 스타일러스와 같은 일부 기구로 스트로크를 입력할 수도 있다. 사용자는 입력 표면 (104) 의 부근에서의 모션들을 감지하는 기술이 사용되고 있다면 입력 표면 (104) 위에서 제스처를 함으로써, 또는 컴퓨팅 디바이스 (100) 의 주변 디바이스, 이를테면 마우스 또는 조이스틱으로 스트로크를 또한 입력할 수도 있다. 스트로크는, 애플리케이션 (112) 및/또는 HWR 시스템 (114) 에 의해 캡처된 바와 같은, 적어도 스트로크 개시 로케이션, 스트로크 종결 로케이션, 그리고 스트로크 개시 및 종결 로케이션들을 연결하는 경로에 의해 특성화된다. 경로를 따른 다수의 샘플 포인트들에서의 타이밍, 압력, 각도와 같은 추가적인 정보가 또한 스트로크들의 더 깊은 상세를 제공하기 위해 캡처될 수도 있다. 상이한 사용자들이 동일한 오브젝트, 예컨대, 글자, 형상, 또는 심볼을 약간의 변화들과 함께 자연스럽게 쓸 수도 있기 때문에, 본 시스템은 각각의 대상이 올바른 또는 의도된 대상으로서 인식되고 있는 동안 입력될 수도 있는 다양한 방식들을 수용한다.
도 2 는 HWR 시스템 (114) 의 일 예의 개략도이다. HWR 시스템 (114) 은 프리프로세싱 (116), 인식 (118) 및 출력 (120) 을 포함한다. 프리프로세싱 스테이지 (116) 는 인식 스테이지 (118) 동안의 프로세싱 시간을 감소시키고 더 큰 정확도를 달성하도록 디지털 잉크를 프로세싱한다. 이 프리프로세싱은 입력을 평활화하기 위한 B-스플라인 근사와 같은 방법들 및/또는 사이즈 표준화를 적용함으로써 스트로크 개시 및 종결 로케이션들을 연결하는 경로의 표준화를 포함할 수도 있다. 프리프로세싱된 스트로크들은 그 다음에, 인식 스테이지 (118) 로 패스되고, 인식 스테이지 (118) 는 그 스트로크들을 프로세싱하여 그에 의해 형성된 오브젝트들을 인식한다. 인식된 오브젝트들은 그 다음에, 일반적으로 수기된 엘리먼트들/문자들의 식자된 버전으로서 디스플레이 (102) 에 출력 (120) 된다.
인식 스테이지 (118) 는 상이한 프로세싱 엘리먼트들 또는 엑스퍼트들 (experts) 을 포함할 수도 있다. 도 3 은 인식 스테이지 (118) 의 개략적 상세를 보여주는 도 2 의 예의 개략도이다. 3 개의 엑스퍼트들 (세그멘테이션 엑스퍼트 (122), 인식 엑스퍼트 (124), 및 언어 엑스퍼트 (126)) 이 도시되고, 이들은 출력 (120) 을 생성하기 위해 동적 프로그래밍을 통해 협동한다.
세그멘테이션 엑스퍼트 (122) 는 표현, 예컨대, 수학 식들, 단어들, 또는 형상들의 그룹들을 형성하기 위해 입력 스트로크들을 개별 엘리먼트 가설들, 예컨대, 문자숫자 글자들 및 수학적 연산자들, 텍스트 문자들, 개별 형상들, 또는 하위 표현으로 세그먼트화하기 위한 상이한 방식들을 정의한다. 예를 들어, 세그멘테이션 엑스퍼트 (122) 는, 각 노드가 적어도 하나의 엘리먼트 가설에 대응하고 엘리먼트들 사이의 인접 제약들이 노드 연결들에 의해 핸들링되는 세그멘테이션 그래프를 획득하기 위해 원래의 입력의 연속적인 스트로크들을 그룹핑 (grouping) 함으로써 엘리먼트 가설들을 형성할 수도 있다.
인식 엑스퍼트 (124) 는 분류기 (128) 에 의해 추출된 피처들의 분류를 제공하고, 세그멘테이션 그래프의 각 노드에 대해 확률들 또는 인식 스코어들을 갖는 엘리먼트 후보들의 리스트를 출력한다. 이러한 인식 태스크를 해결하기 위해 사용될 수 있을 많은 타입들의 분류기들, 예컨대, 지원 벡터 머신 (Support Vector Machines), 히든 마르코프 모델 (Hidden Markov Models), 또는 멀티레이어 퍼셉트론 (Multilayer Perceptrons), 딥 (Deep), 컨볼루셔널 (Convolutional) 또는 리커런트 (Recurrent) 신경망과 같은 신경망들이 존재한다. 선택은 태스크를 위해 요망되는 복잡성, 정확도, 및 속도에 의존한다.
언어 엑스퍼트 (126) 는 언어 모델들 (예컨대, 문법 또는 의미론) 을 이용하여 세그멘테이션 그래프에서 상이한 경로들에 대한 언어학적 의미를 생성한다. 엑스퍼트 (126) 는 언어학적 정보 (130) 에 따라 다른 엑스퍼트들에 의해 제안되는 후보들을 체크한다. 언어학적 정보 (130) 는 어휘, 규칙적인 표현들 등을 포함할 수 있고, 언어 모델을 실행하기 위해 언어 엑스퍼트 (126) 에 의해 사용되는 모든 정적 데이터에 대한 스토리지이다. 언어 모델은 주어진 언어에 대한 통계적 정보에 의존할 수 있다. 언어학적 정보 (130) 는 인식 및 사용자 상호작용들의 결과들에 따른 적응 (adaption) 을 가지고 또는 그러한 적응 없이 오프-라인으로 계산되고, 언어적 엑스퍼트 (126) 에 제공된다. 언어 엑스퍼트 (126) 는 최선의 인식 경로를 발견하는 것을 목적으로 한다. 하나의 예에서, 언어 엑스퍼트 (126) 는 언어학적 정보 (130) 의 콘텐츠를 나타내는 최종 상태 오토마톤 (final state automaton; FSA) 과 같은 언어 모델을 탐색함으로써 이를 행한다. 어휘 제약에 추가하여, 언어 엑스퍼트 (126) 는 특정된 언어에서 주어진 시퀀스의 엘리먼트들이 얼마나 자주 출현하는지에 대해 모델링하는 통계적 정보와 함께 언어 모델을 이용할 수도 있고, 또는 세그멘테이션 그래프의 주어진 경로의 해석의 언어학적 가능성을 평가하기 위해 특정 사용자에 의해 사용된다.
본원에 기술된 시스템 및 방법은 디바이스 (100) 에 대한 수기된 입력을 인식하기 위해 HWR 시스템 (114) 을 이용한다. 특히, 본 시스템 및 방법은 행렬들과 같은 구조들 내의 콘텐츠 입력을 인식한다. 행렬은, 예를 들어 리스트에서 존재할 수도 있는 도트 포인트들 및 숫자들, 또는 테이블에서 존재할 수도 있는 라인들 및 헤더들과 같은, 행 및/또는 열 지정자들의 사용 없이 하나 이상의 행들 및 열들에서, 일반적으로 관련되는, 통상적으로 숫자들, 문자들, 심볼들, 수학적 표현들인 여러 엘리먼트들의 레이아웃으로서 본원에서 정의된다. 이러한 행렬들은 통상적으로 수학적 연산들에서 사용되고, 예를 들어, (나중에 논의되는) 수학적 솔루션들을 제공하기 위해 수기의 프로세스를 통해 수동으로 또는 애플리케이션 (112) 의 능력들을 통해 자동으로 중 어느 일방으로, 정보를 캡처 (capture) 하기 위해 및/또는 이러한 연산들을 수행하기 위해 디바이스 (100) 의 하나 이상의 사용자들에 의해 입력될 수도 있다.
행렬들과 같이 구조화된 입력을 인식하기 위한 이전에 논의된 알려진 시스템들과는 달리, 본 시스템 및 방법은 사용자들이 브라켓들과 같이 인식을 가능하게 하기 위한 특정 콘텐츠를 입력할 필요도 없고, 식들, 하위 행렬들, 잘못 정렬된 엘리먼트들 및 없어진 엘리먼트들과 같이 보다 복잡한 엘리먼트들을 갖는 행렬들을 식별하는데 실패하는 프로세스들을 사용할 필요도 없다. 또한, 알려진 시스템들은 행들 및 열들을 검출하기 위해 기하학적 투영 (geometrical projection) 을 이용하고 인식을 위해 오직 전체 구조들을 프로세싱하는 반면, 본 시스템 및 방법은 투영 없이 모든 엘리먼트들의 기하학적 관계들 및 증분적 인식을 사용할 수도 있다. 본 시스템 및 방법의 이들 및 다른 특징들이 이제 논의된다.
도 4 내지 도 20 은 수기된 또는 핸드 드로잉된 행렬들의 다양한 예들을 나타내고, 여기서 일부는 식자된 버전으로 나타난다. 도 4a 는, 예를 들어 2 바이 2 (또는 2×2; 본 명세서에서 '행들의 수' × '열들의 수' 의 표준 사용이 사용됨) 디지털 잉크 행렬 (400) 로서 렌더링되는 디바이스 (100) 의 입력 표면 (104) 상으로 이루어진 수기된 입력을 도시한다. 행렬 (400) 은 "3" 인 콘텐츠 엘리먼트 (402), "2" 인 콘텐츠 엘리먼트 (404), "7" 인 콘텐츠 엘리먼트 (406) 및 "1" 인 콘텐츠 엘리먼트 (408) 로 4 개의 콘텐츠 엘리먼트들을 갖는다. 엘리먼트들 (402 및 404) 은 제 1 의 실질적으로 수평인 라인 또는 행 (410) 에 로케이팅되고, 엘리먼트들 (406 및 408) 은 제 2 의 실질적으로 수평인 라인 또는 행 (412) 에 로케이팅되며, 엘리먼트들 (402 및 406) 은 제 1 의 실질적으로 수직인 라인 또는 열 (414) 에 로케이팅되고, 엘리먼트들 (404 및 408) 은 제 2 의 실질적으로 수직인 라인 또는 열 (416) 에 로케이팅된다. 이들 콘텐츠 엘리먼트들은 (예컨대, 제 1 열 (414) 의 좌측의) 제 1 의 실질적으로 수직인 브라켓 또는 펜스 엘리먼트 (418) 및 (예컨대, 제 2 열 (416) 의 우측의) 제 2 의 실질적으로 수직인 브라켓 또는 펜스 엘리먼트 (420) 내에 포함된다. 하나 이상의 행들 및 하나 이상의 열들에서의 콘텐츠 엘리먼트들의 상대적인 포지션들은 입력의 인식된 엘리먼트들의 적어도 하나의 기하학적 관계에 기초하여 행렬 (400) 의 제 1 특성을 제공하고, 하나 이상의 펜스 엘리먼트들 내의 콘텐츠 엘리먼트들의 격납은 행렬 (400) 의 제 2 특성을 제공한다.
본 시스템 및 방법의 애플리케이션 (112) 은, 입력 (400) 이 행렬인 것을 결정하기 위해 HWR 시스템 (114) 에 의해 수행되는 수기 인식과 관련하여 제 1 특성을 단독으로 또는 제 2 특성과 조합하여 검출하고, 도 4b 에서 도시된 바와 같이 식자된 행렬 (400') 을 출력하기 위해 미리결정된 및/또는 사용자 설정가능한 포맷팅을 예컨대 사용자 인터페이스 (UI) 를 통해 디바이스 (100) 상에 적용한다. 볼 수 있는 바와 같이, 식자된 행렬 (400') 은, 여전히 행들 (410, 412) 및 열들 (414, 416) 에 배열된, 디지털 잉크 콘텐츠 엘리먼트들 (402 내지 408) 의 각각의 식자된 버전들 (402' 내지 408'), 및 디지털 잉크 펜스 엘리먼트들 (418 및 420) 의 각각의 식자된 버전들 (418' 및 420') 을 갖는다. 따라서, 본 시스템 및 방법은 예를 들어 행렬의 디지털 버전에 대해 사용자들에 의해 기대되는 포맷으로 인식된 행렬 (400) 을 디스플레이한다. 인식된 행렬의 디스플레이 포맷은 상이하게 이루어질 수도 있고, 반드시 '식자된 잉크 (typeset ink)' 에 있지 않을 수도 있으며, 하지만 '미화된 (beautified)' 디지털 잉크임이 이해된다; 즉, 디지털 잉크의 디스플레이는 유지되지만, 수기의 자연스러운 변화들은 엘리먼트들의 상대적인 포지션들을 수정하는 것, 문자 그 자체들과 같은 잉크 엘리먼트들을 평활화하는 것 및/또는 표준화하는 것 등에 의해 부드러워지거나 표준화된다. 미화가 디지털 잉크 또는 식자된 잉크에서 수행되든지 (예컨대, 행렬 엘리먼트들의 상대적인 포지션들이 정렬됨) 또는 양자인지든 간에, 사용자들은 이미 입력되지 않은 경우 브라켓들의 디스플레이와 같이, 인식 결과 또는 그것의 엘리먼트들의 프리뷰 등을 통해서, 행렬 및 그것의 콘텐츠의 인식에 대한 피드백을 제공받을 수도 있다.
도 4 의 입력은 행들 및 열들에서 비교적 잘 정렬된 콘텐츠 엘리먼트들로서 한 자리 숫자들을 가지고 그 콘텐츠 주위로 비교적 명확한 펜스들을 갖는 행렬의 비교적 단순한 예이다. 도 5a 는 수기된 입력으로부터 렌더링된 하지만 알파벳 콘텐츠 엘리먼트들의 유사하게 단순한 2×3 디지털 잉크 행렬을 도시한다. 도 5b 는 식자된 행렬로서 본 시스템 및 방법의 인식된 출력을 도시한다. 도 4 와 같이, 도 5 의 입력은 행들 및 열들에서 비교적 잘 정렬된 콘텐츠 엘리먼트들로서 단일의 알파벳 문자들을 가지고 그 콘텐츠 주위로 비교적 명확한 펜스들을 갖는 행렬의 비교적 단순한 예이다. 도 6 은 행들 및 열들에서 비교적 잘 정렬된 콘텐츠 엘리먼트들로서 한 자리 숫자들을 가지지만 정사각형의 브라켓들이 사용되는 대신에 다르게 형상화된 펜스 엘리먼트들, 예컨대, 둥근 브라켓들에 의해 둘러싸이거나 포함된, 수기된 입력으로부터 렌더링된 유사하게 단순한 2×2 디지털 잉크 행렬을 도시한다. 본 시스템 및 방법은 행렬 입력의 검출을 보조하기 위해 이들 상이한, 그리고 다른, 펜스 폼들을 인식하도록 구성된다. 펜스 엘리먼트는 행렬의 부 특성이지만, 행들 및/또는 열들에서 콘텐츠의 주 특성을 갖는 다른 구조들은, 예를 들어 테이블들에서의 그려진 수직 및/또는 수평 라인들과 같이, 유사한 부 특성들을 가짐에 유의한다. 또한, 제 2 특성의 고려 없는 입력 행렬 단독의 제 1 특성의 인식은 (예컨대, 펜스 엘리먼트들이 심지어 존재하지 않을 수도 있음), 나중에 상세히 설명되는 바와 같이 이러한 검출을 위해 충분할 수도 있다.
수기 행렬의 약간 더 복잡한 예가 도 7 에 도시되고, 여기서, 입력 2×2 행렬은 예컨대, 좌측 열과 같이 적어도 하나의 약간 오정렬된 열을 갖는 콘텐츠 엘리먼트들로서 두 자리 숫자들을 갖는다. 각각의 두 자리 엘리먼트의 숫자들 사이의 공간과 커플링된 이 약간의 오정렬은, 그 공간들 중 하나 이상이 두 자리 숫자들의 컴포넌트들 사이라기보다는 열들 사이의 공간들로서 간주될 수도 있기 때문에, 2×2 행렬인 행렬의 정확한 인식을 위한 도전을 제공하고, 이와 같이, 강건한 인식 규칙들 없이, 도 7 의 행렬은 한 자리 엘리먼트들의 2×5 행렬로서 검출될 수 있을 것이라는 것을 생각할 수 있다 (예컨대, "11" 의 "1"들, "12" 의 "1" 및 "2", "13" 의 "1" 및 "3", 및 "14" 의 "1" 및 "4" 는 제 1 열에 할당된 "11" 의 처음의 "1", 제 2 열에 할당된 "11" 의 두번째의 "1" 및 "13" 의 "1", 제 3 열에 할당된 "13" 의 "3", 제 4 열에 할당된 "12" 의 "1" 및 "14" 의 "1", 및 제 5 열에 할당된 "12" 의 "2" 및 "14" 의 "4". 과정의 유사한 결과들이 보다 큰 숫자들에 대해 발생할 수 있다. 이러한 부정확한 인식이 이루어지는 경우에, 인식의 결과적인 미화된 출력이 인식된 행렬을 디스플레이할 것이고, 이 인식된 행렬은 사용자 및/또는 데이터의 임의의 후속적인 사용에 의해 의도된 것과는 매우 상이한 것이다). 본 방법 및 시스템은, 나중에 자세히 설명되는, 행렬에 적용가능한 것보다 더 많은 열들을 리턴하는 콘텐츠 엘리먼트들의 오버-세그멘테이션 (over-segmentation) 에 의해 야기되는 그러한 부정확한 행렬 인식의 발생을 최소화하기 위한 기준들을 채용한다.
다른 콘텐츠 엘리먼트 형태들은 또한 분명한 오정렬을 가지고 또는 그러한 오정렬 없이 도전을 제공한다. 예를 들어, 도 8 은 한 자리 숫자들로서 콘텐츠 엘리먼트들을 갖는 수기 행렬을 도시하고, 여기서, 한 자리 숫자들의 일부는 그들 콘텐츠 엘리먼트들에 대해 수학적 의미를 지정하는 지정자들, 예컨대, 마이너스 부호들을 갖는다. 이러한 지정자들은 도 7 의 큰 (더 큰) 숫자 예에 대해 매우 다양한 심볼들, 마크들 또는 문자들 등에 의해 형성될 수도 있고, 콘텐츠 엘리먼트들의 오버-세그멘테이션은 이들 지정자들이 그들이 지정하는 콘텐츠와는 별개인 열들로 할당되는 결과를 초래할 것이다. 유사한 문제점들이, 도 9 의 예시적인 행렬에서 나타낸 바와 같이 소수점을 수반하는 숫자 콘텐츠 엘리먼트에, 그리고 도 10 의 예시적인 행렬에서 나타낸 분수에 또한 적용된다.
이러한 행렬 입력에 대한 부정확한 인식의 최소화는, 콘텐츠 엘리먼트들 그 자체들의 인식을 애플리케이션 (112) 의 행렬 검출 프로세스에서 고려함으로써 본 시스템 및 방법에서 제공된다. 즉, 도 8 의 예시적인 행렬에 대해, HWR 시스템 (114) 은 지정자들을 예를 들어 "-1", "-2" 및 "-3" 을 형성하는 그것의 바로 우측의 숫자들에 접속된 마이너스 부호들로서 인식하여, 애플리케이션 (112) 이 이것들을 단일의 콘텐츠 엘리먼트로서 각각 취급하도록 하고, 도 9 의 예시적인 행렬에 대해, HWR 시스템 (114) 은 예를 들어 "3.5" 를 형성하는 인접하는 숫자들 사이의 소수점을 인식하여, 애플리케이션이 이것을 단일 콘텐츠 엘리먼트로서 취급하도록 하며, 도 10 의 예시적인 행렬에 대해, HWR 시스템 (114) 은 예를 들어 분수 "1/4" 를 형성하는 인접하는 숫자들 사이의 분할자 선을 인식하여, 애플리케이션 (112) 이 이것을 단일 콘텐츠 엘리먼트로서 취급하도록 한다. 본 시스템 및 방법이 콘텐츠 구조 검출을 위해 인식 결과들을 고려하는 방식은 나중에 자세히 설명된다.
다른 행렬 타입들은 숫자들 또는 영문자들과 같은 콘텐츠 엘리먼트 타입들의 혼합을 포함하고, 또 다른 행렬 콘텐츠 엘리먼트 타입들은 아래첨자들 및 위첨자들과 같이 추상적인 수학적 형태들을 포함한다. 예를 들어, 도 11a 는, "0" 인 수치적 콘텐츠 엘리먼트들, 및 아래첨자 숫자들로 지정된 영문자들을 갖는 문자숫자식 콘텐츠 엘리먼트들 양자를 갖는 수기 행렬을 도시한다. 상기 설명된 도 8 내지 도 10 의 지정자 예들과 유사하게, 인식된 콘텐츠를 고려함으로써, 예컨대, HWR 시스템 (114) 은 "a11", "a22" 및 "a33" 을 형성하는, 그것의 바로 좌측 상의 숫자들에 접속된 아래첨자들을 인식하고, 그 아래첨자들은 전체 콘텐츠 엘리먼트들 그 자체들로서가 아니라 보다 큰 콘텐츠 엘리먼트의 일부로서 취급되기 때문에, 애플리케이션 (112) 은 식자된 잉크에서 디스플레이되는 도 11b 에서 도시된 인식된 행렬을 제공한다.
도 12 는 아래첨자들을 포함하는 콘텐츠 엘리먼트들을 갖는 유사한 예시적인 입력 행렬을 도시한다. 하지만, 이전의 예들과는 달리, 도 12 의 행렬은 빈 콘텐츠 엘리먼트 포지션들 또는 셀들을 또한 포함한다. 즉, 각 행 및 열 포지션은 셀로서 간주되어서, (예컨대, 행 0 으로서 식별된) 제 1 행 및 (예컨대, 열 0 으로서 식별된) 제 1 열에서의 콘텐츠 엘리먼트 포지션이 예를 들어 "셀 0,0" 에 대응한다. 하지만 식별 행렬 엘리먼트 포지션들의 다른 형태들이 가능하다. 추가적으로, 애플리케이션 (112) 및/또는 HWR 시스템 (114) 은, 예를 들어, 디바이스 (100) 의 메모리 (108) 에 저장된, 데이터 태그들과 같은, 포지션 데이터로서 인식된 콘텐츠에 대해 이러한 식별자들을 적용할 수도 있다. 이러한 빈 셀들의 존재는, 구조의 행들 및 열들의 식별이 고려 하의 엘리먼트의 동일한 행 및/또는 열 내로부터가 아닌, 다른 행들 및/또는 열들로부터의 엘리먼트의 고려를 통해 개념적으로 오직 확인가능하기 때문에, 행렬들과 같이, 2-차원적 구조의 콘텐츠의 적절한 인식에 대한 또 다른 도전을 야기할 수 있다. 예를 들어, 그 이외의 빈 행 (또는 열) 에서의 엘리먼트는 임의의 다른 엘리먼트와 정렬되지 않고, 따라서, 그 행 (또는 열) 의 식별은 정렬되지 않은 엘리먼트들을 고려함으로써 이루어진다. 본 시스템 및 방법은, 나중에 자세히 설명되는 바와 같이, 비록 이러한 콘텐츠 시나리오들에서도 강건한 행렬 검출을 제공한다.
전술한 바와 같이, 펜스 엘리먼트들의 존재는, 특히 빈 셀들이 존재하는 경우에, 행렬의 인식을 돕기 위해 사용될 수 있다. 이것은, 펜스 엘리먼트들의 존재가 그 펜스 엘리먼트(들)에 둘러싸인, 포함된 또는 그 외에 인접한 (예컨대, 단일 펜스 시나리오에서) 콘텐츠가 하나 이상의 행들 및 하나 이상의 열들에서 배치되는 것을 의미하도록 해석되는 경우에, 빈 셀들은 비-콘텐츠라기보다는 이러한 행(들) 및/또는 열(들)의 일부로서 간주되기 때문이다. 하지만, 또한 전술된 바와 같이, 본 시스템 및 방법은 행렬들에 대한 펜스 엘리먼트들과 같이 구조적 표시자들의 존재 또는 보조 없이 2-차원적 콘텐츠 구조들을 인식 가능하다. 예를 들어, 도 13 은, 도 12 의 예와 같이, 빈 셀들을 갖는 예시적인 입력 행렬을 도시하고, 하지만, 도 12 와는 달리, 펜스 엘리먼트들이 존재하지 않는다. 본 시스템 및 방법은 여전히 도 13 의 행 및 열을 정확하게 식별하지만, 인식 결과는 행렬로서 식별될 수도 있고 행렬로서 식별되지 않을 수도 있다. 즉, 그것은, 인식 결과의 임의의 후속 사용에 따라, 임의의 실용적인 결과적인 효과를 가지지 못할 수도 있는, 2-차원 구조로서 단지 식별될 수도 있다. 이러한 경우에도, 인식된 구조를 행렬로서 지정하기 위한 사용자들에 의한 선택이, 예를 들어, UI 등을 통해, 및/또는 디스플레이된 콘텐츠 엘리먼트들에 관한 생성된 디지털 또는 식자된 잉크 펜스 엘리먼트들의 디스플레이와 같이, 인식 결과의 피드백 또는 프리뷰를 통해서, 제공될 수도 있다. 본 시스템 및 방법의 이러한 특징들은 나중에 자세히 설명된다.
2-차원 구조들에서의 또 추가적인 복잡성이 가능하다. 도 14a 는 추가적인 입력을 갖는 도 5a 의 예시적인 2×3 디지털 잉크 행렬을 도시한다. 특히, 3×2 수기 행렬이 2×3 행렬의 바로 우측에 입력되고 그 다음에 등호 부호 "=", 및 2 개의 수학식들을 포함하는 추가적인 행렬이 이어진다. 볼 수 있는 바와 같이, 가장 우측 행렬은 처음 2 개의 행렬들의 곱의 부분적 결과, 즉, 2×3 행렬의 0 행과 3×2 행렬의 0 열의 곱, 및 2×3 행렬의 1 행과 3×2 행렬의 1 열의 곱을 포함하며, 여기서, 전체 결과는 예상되는 2×2 행렬을 형성할 것이다. 도 14b 는 식자된 형태로 인식된 출력을 나타내고, 알 수 있는 바와 같이, 세번째 행렬의 식들은 2×2 행렬의 셀 0,0 및 셀 1,1 에 속하는 것으로서 적절하게 인식된다. 도 14a 에서 도시된 바와 같이 수기된 식들의 비교적 심각한 오버랩에도 불구하고 이러한 인식이 초래되었다. 전술한 바와 같이, 이러한 인식은, 세번째 행렬의 행들 내의 식들의 인식의 고려를 통해서 본 시스템 및 방법에 의해 달성되고, 또한, 전체 인식된 콘텐츠, 예컨대, 2×3 행렬 및 3×2 행렬로부터 초래되는 예상되는 2×2 행렬의 고려를 통해 또한 인식될 수도 있다. 이들 특징들은 나중에 자세히 설명된다.
셀 할당들을 결정하기 위해 개별적으로 개별 입력 엘리먼트들을 취급하기보다는, HWR 시스템 (114) 으로부터 초래된 인식에 기초하여 각각의 콘텐츠 엘리먼트의 하나 이상의 인식된 엘리먼트들과 관련하여 2-차원적 구조의 셀들에 속하는 콘텐츠 엘리먼트들을 취급함으로써, 본 시스템 및 방법은 심지어 보다 복잡한 행렬 형태들을 실질적으로 정확하게 검출 가능하다. 예를 들어, 도 15 는 전술된 콘텐츠 피처들 중 많은 것들, 예컨대, 영문자들, 단어들, 숫자들, 아래첨자들, 브라켓들, 심볼들, 및 마이너스 부호 및 분할자 선들과 같은 지정자들을 결합하는 비교적 복잡한 수학적 함수들을 포함하는 각각의 콘텐츠 엘리먼트를 갖는 예시적인 수기된 2×2 행렬을 도시한다. 하지만, 이러한 복잡성에도 불구하고, 본 시스템 및 방법은, 각각의 인식된 함수의 인식된 합성 부분들이 대응하는 행렬 셀에 속하는 단일의 콘텐츠 엘리먼트로서 취급되기 때문에, 2×2 행렬을 검출한다. 추가로, 도 16 은, 예컨대, 셀 0,0 이 2×2 하위-행렬을 포함하고, 셀 1,1 이 2×3 하위-행렬을 포함하며, 셀 2,2 가 2×3 하위-행렬을 포함하는, 네스팅된 행렬들을 포함하는 예시적인 수기된 3×3 행렬을 도시한다.
비교적 복잡한 행렬들은 검출 및 인식에 대한 도전을 제시하지만, 단일 행 또는 단일 열 행렬과 같이 지나치게 단순한 행렬들도 또한 도전을 제시한다. 도 17 은 예시적인 1×3 수기된 행렬을 도시하고, 도 18 은 예시적인 3×1 수기된 행렬을 도시한다. 어느 경우에도, (이전에 논의된 빈 셀 문제와 유사하게) 1×3 행렬에 대해 행간 관계 또는 3×1 행렬에 대해 열간 관계가 존재하지 않기 때문에, 다중 열들 (또는 행들) 의 존재를 결정하는 것이 어려울 수도 있다. 이것은, 그 행 또는 열 그자체 내의 콘텐츠 엘리먼트들 만이 열들 또는 행들을 결정하기 위해 고려가능하고, 이와 같이 열 또는 행 결정에 대해서 설정된 임계치들 등과 관련하여 그들 엘리먼트들 사이의 거리들 또는 공간들의 값들은 그 결정에 결정적이기 때문이다. 기본적으로, 보다 적은 정보가 이용가능하여 결정이 보다 문제가 있게 된다.
예를 들어, 도 17 에서, 열 결정을 위해 설정된 임계치들에 의존하여, 콘텐츠는 콘텐츠 엘리먼트들 "3", "7" 및 "2" 를 갖는 1×3 행렬로서, 또는 콘텐츠 엘리먼트들 "3" 및 "72" 를 갖는 1×2 행렬로서, 또는 콘텐츠 "372" 를 갖는 전혀 행렬이 아닌 것으로서 인식될 수도 있다. 마찬가지로, 도 18 에서, 행 결정을 위해 설정된 임계치에 의존하여, 콘텐츠는 콘텐츠 엘리먼트들 "4", "1" 및 "8" 을 갖는 3×1 행렬로서, 또는 콘텐츠 엘리먼트들 "4" 및 "18" 을 갖는 2×1 행렬로서, 또는 (수직으로 배치된) 콘텐츠 "418" 를 갖는 전혀 행렬이 아닌 것으로서 인식될 수도 있다. 전술된 바와 같이, 펜스 엘리먼트(들)의 부 특성은 그 자체로 행렬 검출을 도울 수도 있어서, 행렬 결과가 아닌 것은 발생하지 않지만, 이것은 애플리케이션 (112) 에게 행렬의 내부 구조에 관해 알려주지 않는다. 본 시스템 및 방법에서, 추가적인 것 (또는 제 3 의 또는 제 4 의 특성) 이 이 결정을 보조하기 위해 소정 콘텐츠 타입들과 관련하여 고려될 수 있다. 예를 들어, 원주적 식별에 대해, 숫자들과 같이 입력 엘리먼트들 사이에 요구되는 공간은 예를 들어 영문자들과 같이 다른 입력 엘리먼트들에 대해서보다 더 적도록 설정될 수도 있다. 이것은, 숫자들에 대해, 그것들은 다중-자리 숫자들이 명시될 때 그것들은 함께 꽤 가깝게 쓰여져야 한다고 간주되기 때문이다. 이러한 기준들은 또한 도 7 의 예에서와 같이 보다 복잡한 행렬 검출을 도울 수 있다. 대안적인, 또는 추가적인 특성들은 또한 이러한 단순한 행렬들 및 나중에 자세히 설명되는 보다 복잡한 행렬들을 적절하게 검출하기 위해 고려된다.
더욱이, 이전에 논의된 바와 같이, 2-차원 구조들의 다른 형태들이 또한 본 시스템 및 방법에 의해 인식가능하다. 예를 들어, 도 19 는 행렬과 같이 요소적 셀들의 행들 및 열들을 갖는 행렬의 디터미넌트 (determinant) 를 수반하는 수학적 함수를 도시한다. 도 20 은 행렬 내에 네스팅된 이러한 디터미넌트들을 도시한다. 추가로, 알 수 있는 바와 같이 (이전의 예들의 일부와 같이), 수학적 연산자들 및 함수들과 같이 2-차원 구조들 외부의 추가적인 엘리먼트들이 또한 존재할 수도 있다. 이러한 추가적인 엘리먼트들은 예를 들어 행렬의 콘텐츠와는 별개로 인식되지만, 그것들은 예를 들어 상기 논의된 바와 같이 행렬 콘텐츠 및 행렬의 구조의 인식을 가이드하기 위해 애플리케이션 (112) 및/또는 HWR 시스템 (114) 에 의해 컨텍스트로서 사용될 수도 있다.
전술된 예들로부터 알 수 있는 바와 같이, 수기된 행렬들에서의 자연스러운 변화들은 광범위하고, 이와 같이, 이들 행렬들과 같이 구조적 관계들을 강건하게 결정하는 시스템은 이러한 넓은 범위의 변화들에 걸쳐 검출 및 인식을 일반적으로 수행할 수 있어야만 한다. 물론, 예를 들어 무엇이 행렬로서 정확하게 인식되어야만 하는지에 관해 일부 제한들이 적용되어서, 일반적인 정의가 거기에 붙는다. 본 시스템 및 방법은 따라서, 이하에서 설명되는 바와 같이 행렬 구조들의 정확한 검출을 위해 인식의 결과들 및 기준들을 사용한다. 통상적으로 수기 인식은, 인식되는 엘리먼트들이 입력되는 구조가 아니라 이들 엘리먼트들 그 자체들의 인식을 위해 그 인식되는 엘리먼트들의 기하학적 관계들만을 오직 고려함에 유의한다. 따라서, 본 시스템 및 방법은 행 및 열 후보들의 거친 필터링을 제공하기 위해 기하학적 및 언어 모델 피처들을 고려하는 접근법에 기초하여 확률을 이용하여 이러한 인식을 제공하기 위해 추가적인 정보를 이용한다. 이들 거칠게 필터링된 행렬 셀 후보들은 그 다음에 실제 행렬을 인식하기 위해 인식 프로세스의 결과들을 이용하여 정세하게 필터링될 수도 있다. 이러한 방식으로, 본 시스템 및 방법은 행렬 엘리먼트 후보들을 전처리함으로써 행렬들을 검출하기 위해 인식을 효율적으로 이용한다. 본 시스템 및 방법은, 구조의 인식이 그 구조에 대한 구체적으로 입력된 표시자들에 의존하지 않고 오히려 인식된 콘텐츠 그 자체의 상대적인 기하학에 의존하기 때문에, 콘텐츠가 일반적으로 테이블들, 리스트들 등과 같이 (수평적 또는 비-수평적, 예컨대, 대각선의) 행들 및 (수직적 또는 비-수직적, 예컨대, 대각선의) 열들로 배열되는 수기된 콘텐츠의 다른 구조적 관계들의 인식에 적용가능하다. 본 시스템 및 방법의 이들 및 다른 특징들이 이제 논의된다.
도 21 내지 도 37 에서 예시된 예들의 이하의 설명은 행렬 인식에 관한 것이지만, 유사한 설명이 상술된 바와 같이 다른 구조들의 인식에 적용된다. 또한, 이하의 설명은 입력 행렬 내의 열 검출에 관련되지만, 동일한 프로세스가 행들을 또한 검출하기 위해 사용될 수 있어서, 행렬의 셀들이 검출될 수 있도록 함은 명백할 것이다. 어느 경우에도, 그 프로세스는, 행렬의 가능한 열들 또는 행들의 검출 및 엘리멘트들 그 자체들의 인식을 제공하기 위해 엘리먼트들 정렬들에 속하는 엘리먼트들의 인식을 이용하여, 실질적으로 수평 및 수직 방향들 (또는 그 외에 쓰는 방향에 기초한 방향들) 에서의 엘리먼트들의 정렬들을 검출하는 것을 일반적으로 수반한다. 행 검출의 프로세스는 행렬 셀 검출, 그리고 따라서 행렬의 전체 검출을 제공하기 위해 열 검출 전에 수행된다. 이하에서 설명된 예들에서, 정렬들은 후보 행렬 열들 및 행들을 검출하는 것의 일부로서 검출되고, 그 다음에, 그 후보 열들 및 행들은 인식된 행렬 출력을 제공하기 위해 인식된 콘텐츠에 기초하여 분석된다. 대안적으로, 수직적 및/또는 수평적 정렬들의 어느 것의 검출은, 예컨대, 그 전체 내용이 본원에 참조에 의해 통합되는, 본 출원인 및 양수인의 이름으로 출원된 "System for Recognizing Multiple Object Input and Method and Product for Same" 라는 제목의 미국 특허 출원 제 14/870,735 호에서 기술된 다중-방정식들과 같이, 다중-라인들의 검출 프로세스에 의한 것과 같이, 행렬 행 및/또는 열 가설과는 별개의 상이한 방식으로 수행될 수도 있다.
도 21 은 다수의 입력 잉크 오브젝트들 (2102 내지 2116) 의 일 예시적인 배열 (2100) 을 도시한다. 이 잉크 오브젝트는, 예를 들어, 디바이스 (100) 의 입력 표면 (104) 에 입력되고 그 위에 디지털 잉크로서 렌더링되는 수기된 입력 엘리먼트들 (예컨대, 하나 이상의 문자들, 심볼들 등을 형성하는 하나 이상의 스트로크들) 을 나타낸다. 잉크 오브젝트들은 일반적으로 수기된 엘리먼트들의 확장에 대응하는 직사각형들로서 일반적으로 도시되고, 이와 같이, HWR 시스템 (114) 에 의해 인식되는 바와 같이 엘리먼트들의 바운딩 박스들을 나타낼 수도 있다. 행렬 검출 프로세스의 이 시점에서, 잉크 오브젝트들의 콘텐츠 그 자체는 반드시 중요한 것은 아니고, 오히려, 프로세스에 의해 사용되는 것은 인식되는 엘리먼트들에 대한 잉크 오브젝트들의 대응이다. HWR 시스템 (114) 의 인식 프로세스에서, 인식 결과는 채용되는 언어 모델에 기초하여 스트로크들의 그룹들 및 각 스트로크에 대한 인식 후보들의 계층적 결정을 포함한다. 도시된 잉크 오브젝트들은 각각의 인식되는 엘리먼트의 가장 가능성있는 후보에 관련되지만, 실제의 인식된 콘텐츠 및 따라서 인식된 엘리먼트들은, 상이한 후보들이 예를 들어 UI 등을 통해 사용자들에 의해 선택되어서 배열 그 자체가 변화하도록 되는 경우에, 변경될 수도 있다. 이러한 경우에, 행렬 검출 프로세스는 예컨대 적어도 변경된 배열의 그 부분에 대해, 변경된 배열에 적응하도록 적어도 부분적으로 다시 사용된다.
알 수 있는 바와 같이, 배열 (2100) 에서, 잉크 오브젝트들 (2102, 2104 및 2106) 은 서로 일반적으로 수평으로 정렬되고, 잉크 오브젝트들 (2108 및 2110) 은 서로 일반적으로 수평으로 정렬되며, 잉크 오브젝트들 (2112, 2114 및 2116) 은 서로 일반적으로 수평으로 정렬된다. 이와 같이, 이들 수평적 엘리먼트들은 전술된 방식으로 본 시스템 및 방법에 의해 검출되고, 도시된 예에서는, 정렬들의 엘리먼트들 사이에 오버랩이 존재하지 않기 때문에, 잠재적인 행렬의 행들에 대응하는 것으로서 가장 가능성 있게 결정될 것이다. 또한, 잉크 오브젝트들 (2102, 2108 및 2112) 은 서로 일반적으로 수직으로 정렬되고, 잉크 오브젝트들 (2104, 2110 및 2114 ) 은 서로 일반적으로 수직으로 정렬되며, 잉크 오브젝트들 (2106 및 2116 ) 은 서로 일반적으로 수직으로 정렬된다. 이와 같이, 이들 수직적 엘리먼트들은 본 시스템 및 방법에 의해 검출될 수도 있고, 도시된 예에서는, 잠재적인 행렬의 열들에 대응하는 것으로서 결정될 수도 있다. 따라서, 배열 (2100) 은 예를 들어 3×3 행렬에 대응하는 것으로서 결정될 수도 있다. 이러한 행렬의 잠재적인 열들은 도 22 내지 도 31 의 이하의 예들에서와 같이 검출된다.
도 22 에서 도시된 바와 같이, 오브젝트들 (2102, 2104 및 2106) 은 실질적으로 수평으로 정렬됨이 알려지고, HWR 시스템 (114) 의 인식 결과로부터, 오브젝트들은 (아마도) 별개의 콘텐츠 엘리먼트들임이 알려진다. 이에 따라, 오브젝트들 (2102, 2104 및 2106) 은 애플리케이션 (112) 에 의해 별개의 잠재적인 제 1, 제 2 및 제 3 열들 (C0, C1 및 C2) 로 각각 할당된다. 이들 열 할당들의 가설은, 다음 수평적 정렬에서의 (본 예에서 아래 방향에서의) 임의의 잉크 오브젝트가 열들의 잉크 오브젝트들과 수직적으로 오버랩되는지 여부를 고려함으로써 테스트된다. 즉, 임의의 잉크 오브젝트들이 잉크 오브젝트들 (2102, 2104 및 2106) 의 각각의 폭의 확장들과 중첩하는지 여부가, 이들 오브젝트들의 확장들을 다음 수평적 라인 또는 행 내로 투영함으로써, 결정된다. 이것은, 잉크 오브젝트들 (2108 및 2110) 이 잉크 오브젝트들 (2102, 2104 및 2106) 과 수직 방향에서 오버랩되는지 여부를 체크하는 것과 기본적으로 부합한다. 도 22 에서, 이것은 잉크 오브젝트들 (2102, 2104 및 2106) 의 바운딩 박스들의 우측 및 좌측 경계들의 점선 투영들에 의해 묘사된다. 알 수 있는 바와 같이, 잉크 오브젝트 (2108) 는 잉크 오브젝트 (2102) 와 오버랩되지만, 잉크 오브젝트 (2110) 는 잉크 오브젝트들 (2102, 2104 및 2106) 의 어느 것과도 오버랩되지 않는다는 것이 결정된다. 이에 따라, 도 23 에서, 잉크 오브젝트 (2108) 는 잉크 오브젝트 (2102) 와 함께 제 1 열 (C0) 에 할당되고, 잉크 오브젝트 (2104) 는 제 2 열 (C1) 에 할당된 채로 유지되며, 잉크 오브젝트 (2110) 는 (도 22 에서 도시된 할당으로부터 조정된) 제 3 열 (C2) 에 할당되고, 잉크 오브젝트 (2106) 는 제 4 열 (C3) 에 할당된다.
다음으로, 이들 열 할당들의 가설은, 다음 수평적 정렬에서의 임의의 잉크 오브젝트들이 열들의 잉크 오브젝트들과 수직적으로 오버랩되는지 여부를 고려함으로써 다시 테스트된다. 즉, 임의의 잉크 오브젝트들이 잉크 오브젝트들 (2108, 2104, 2110 및 2106) 의 각각의 폭과 오버랩되는지 여부가, 이들 오브젝트들의 확장들을 다음 수평적 라인 또는 행으로 투영함으로써, 결정된다. 이것은, 잉크 오브젝트들 ( 2112, 2114 및 2116) 이 잉크 오브젝트들 (2102, 2104 및 2106) 과 수직 방향에서 오버랩되는지 여부를 체크하는 것과 기본적으로 부합한다. 도 23 에서, 이것은 잉크 오브젝트들 (2108, 2104, 2110 및 2106) 의 바운딩 박스들의 우측 및 좌측 경계들의 점선 투영들에 의해 도시된다. 도 23 에서 볼 수 있는 바와 같이, 잉크 오브젝트 (2112) 는 잉크 오브젝트 (2108) 와 오버랩되고, 잉크 오브젝트 (2114) 는 잉크 오브젝트들 (2104 및 2110) 의 양자와 오버랩되며, 잉크 오브젝트 (2116) 는 잉크 오브젝트 (2106) 와 오버랩된다는 것이 결정된다. 이에 따라, 도 24 에서, 잉크 오브젝트 (2112) 는 잉크 오브젝트들 (2102 및 2108) 과 함께 제 1 열 (C0) 내로 할당되고, 잉크 오브젝트 (2114) 는 잉크 오브젝트 (2104) 와 함께 제 2 열 (C1) 내로 할당되며, 잉크 오브젝트 (2110) 역시 제 2 열 (C1) 내로 재할당되고, 잉크 오브젝트 (2116) 는 도 23 에서 도시된 제 4 열로부터 잉크 오브젝트 (2106) 의 할당과 함께 제 3 열 (C2) 로 할당된다. 이러한 가능성있는 열들의 인식 결과가 도 25 에서 도시되고, 여기서, 3 개의 열들 (C0, C1 및 C2) 의 각각의 경계들은 그들 열들 내로 할당되는 잉크 오브젝트들을 둘러싸는 점선의 바운딩 박스들로서 도시된다.
도 24 에서 예시된 열들의 재할당은 기본적으로 본 시스템 및 방법의 열 검출의 정세 필터링 (fine filtering) 의 일 유형을 나타내고, 여기서, 열들의 검출은 더 가까운 것으로서 수렴되고, 보다 가깝게 이격된 콘텐츠 엘리먼트들이 행 단위로 고려된다. 이러한 필터링은 하지만 이 단계에서는 수행되지 않을 수도 있고, 각 단계에서 발견된 모든 잠재적인 열들은, 임의의 열들이 병합되어야만 하는지 여부를 체크하는 후속 필터링 단계까지 보유될 수도 있다. 이러한 프로세싱은 나중에 자세히 설명된다.
일단 모든 가능한 가설들이 결정되고 테스트되고 나면, 애플리케이션 (112) 은 잉크 오브젝트들에 대해 인식된, 예컨대 셀 할당들과 같이 행 및 열 할당들을 나타내는 태그와 같은 (메타)데이터를 잉크 오브젝트들에 대해 제공할 수도 있고, 여기서, 이러한 데이터는 예를 들어 디바이스 (100) 의 메모리 (108) 에서 잉크 오브젝트들과 함께 저장된다. 이러한 방식으로, 식자 또는 편집과 같이 잉크 오브젝트들과의 임의의 후속하는 상호작용들에서, 오브젝트들 사이의 위치적 관계가 고려될 수 있다.
열 할당들을 행별로 그리고 그들 행들에서 공간적으로 인접하는 콘텐츠 엘리먼트들의 고려를 통해서 가정하고 테스트하는 것의 상술된 반복적 접근법은, 잠재적인 열들을 발견하기 위해 전체 배열에 걸쳐 오브젝트들의 2×2 배열들을 반복적으로 고려하는 것에 기본적으로 대응한다. 즉, 제 1 행에서의 2 개의 인접하는 콘텐츠 엘리먼트의 상대적인 포지션들은 열 할당들을 결정 (및 조정) 하기 위해 다음의 (제 2 의) 행에서의 2 개의 인접하는 콘텐츠 엘리먼트들에 대해 비교된다. 이것은 수많은 방식들로 수행될 수 있다. 하나의 예에서, 콘텐츠 엘리먼트들의 피처들 사이의 상대적인 거리들은, 그 엘리먼트들이 상이한 열들 내로 잠재적으로 분리되는지를 결정하기 위해 임계치에 대해 비교된다. 즉, 적합한 열 간격이 이들 엘리먼트들 사이에 대해 검색된다.
예를 들어, 본 경우에, 테스트되는 제 1 열 가설은, 잉크 오브젝트 (2102) 가 제 1 열에 있고 그 행의 다음 잉크 오브젝트, 즉, 잉크 오브젝트 (2104) 가 제 2 열에 있다는 것이고, 테스트되는 제 2 열 가설은, 잉크 오브젝트 (2102) 가 제 1 열에 있고 다음 행의 가장 좌측 오브젝트, 즉, 잉크 오브젝트 (2108) 가 제 2 열에 있다는 것이다. 이것은, 잉크 오브젝트 (2102) 의 바운딩 박스의 우측 경계와, 잉크 오브젝트들 (2104 및 2108) 의 바운딩 박스들의 좌측 경계 사이의 수평 거리가 (제 1 의) 임계치보다 더 큰지 여부를 고려함으로써 행해질 수 있다. 제 1 임계치는 가장 간단하게는 0 으로 설정되거나, 고려 하의 오브젝트와 수직으로 오버랩되는 임의의 오브젝트가 네거티브 거리를 리턴하도록 일부 비-제로 (예컨대, 포지티브) 값으로 설정된다. 즉, 오브젝트들 (2102 및 2104) 사이의 거리와 같이 측정된 거리들은 제 1 임계치보다 더 큰 포지티브 값 (positive value) 을 낳고, 잉크 오브젝트들 (2102 및 2108) 사이의 거리와 같이 측정된 거리들은 제 1 임계치보다 적은 네거티브 값 (negative value) 을 낳는다. 이에 따라, 애플리케이션 (112) 은, 잉크 오브젝트들 (2102 및 2104) 은 상이한 열들에 속하고, 잉크 오브젝트들 (2102 및 2108) 은 상이한 열들에 속하지 않음을 정확하게 결정한다.
행내 비교는 기본적으로 전술된 수평 라인 결정이고, 행간 비교는 기본적으로, 전술된 상위 가장좌측 오브젝트의 다음 연속적인 수평 라인 상으로의 투영이며, 여기서, 이 투영은 테스트되는 2×2 배열의 제 4 엘리먼트를 본질적으로 형성한다. 잉크 오브젝트들은, 스트로크들 그 자체들의 확장, 각 엘리먼트를 구성하는 스트로크들의 평균 중심 또는 무게중심 등과 같이, 바운딩 박스와는 상이한 특성에 의해 정의될 수도 있음이 이해된다. 추가적으로, 거리는, 예를 들어, 그 전체 내용이 본원에 참조에 의해 통합되는, 본 출원인 및 양수인의 이름으로 출원된 "System and Method of Digital Note Taking" 이라는 제목의 미국 특허 출원 제 14/886,195 호에서 기술된 바와 같이 입력 라인 패턴 등과 같이, 쓰기를 위한 가이드와 같이, 입력 표면 (104) 의 일부 다른 파라미터의 함수로서, 픽셀들의 면에서, 문자들, 바운딩 박스들 등과 같이 수기된 오브젝트들의 보통 또는 평균 치수들과 같이 입력 그 자체의 특성들의 면에서, 또는 이러한 특징들의 조합 등으로 측정될 수도 있다. 또 추가적으로, 반복적 접근법은 상술된 바와 같이 공간적 순서보다는 스트로크들/엘리먼트들의 엔트리의 시간 순서, 또는 이들의 일부 조합에 기초할 수도 있음이 이해된다.
이와 같이, 오브젝트들의 반복적 2×2 배열은 잠재적 열들을 발견하기 위해 전체 배열에 걸쳐 고려된다. 이러한 방식으로, 배열의 수기된 엘리먼트들에서의 국지화된 변화들은, 그것들이 전체 배열에 걸쳐 전체 열 검출에 영향을 미치지 않도록 국지적으로 고려된다. 즉, 본 출원인은, 행렬들과 같이 2-차원적 구조들의 수기된 입력에 대한 디지털 애플리케이션들의 사용자들은, 특히, 예컨대 엘리먼트들이 동일한 타입의 것인 정규 행렬들에서, 구조의 치수들이 증가함에 따라 구조적 엘리먼트들의 간격을 왜곡시키는 경향이 있음을 발견하였다. 예를 들어, 단순한 2×2 행렬에 대해, 엘리먼트들의 상대적인 간격 및 사이징은 예컨대 도 4 에서와 같이 꽤 일관성이 있는 반면, 행렬이 커짐에 따라, 예컨대 도 8 에서와 같이, 엘리먼트 간격의 어떤 국지적 압축 또는 확장이 초래될 수도 있으며, 도 8 에서, 상부 우측 코너를 향한 엘리먼트들의 간격은 확대되고 하부 중심에서의 엘리먼트들의 간격은 약간 압축되고 쓰기의 시작 위치인 행렬의 상부 좌측 코너에서의 엘리먼트들에 비해 수평적으로 오정렬된다.
상술된 공간적 순서 접근법은 일반적으로 입력의 후처리에 적용가능하다, 즉, 사용자가 행렬의 모든 의도된 입력을 수기하고 나면, 그 행렬을 인식하기 위한 프로세싱이, 메뉴 버튼과 같이 제어 엘리먼트의 수동적 선택, 또는 더블 탭과 같이 인터페이스 표면 상의 다중-포인트 터치와 같이 제스처의 입력을 통해, 또는 예컨대 약 0.5 초 내지 약 2 초와 같이 입력 후에 설정된 양의 시간의 경과와 같이 자동적 프로세싱을 통해 수행된다. 이러한 공간적 접근법은 또한, 이러한 트리거들을 이용함으로써, 입력 동안의 프로세싱, 소위 증분적 인식에 적용가능하다. 시간적 접근법은 또한, 증분적 또는 포스트-인식 프로세싱 중 어느 일방에 적용가능하다. 공간적 및/또는 시간적 고려들을 이용한 증분적 접근법은, 프로세싱의 많은 것이 입력 동안에 수행되었기 때문에, 예를 들어, 마지막 입력부터 설정된 시간이 경과한 후에 또는 사용자가 식자로의 변환이 요망됨을 표시할 때, 입력의 최종 인식을 위한 프로세싱 시간을 감소시킬 수도 있음에 유의한다.
가능성 있는 열들을 결정하기 위해 이전의 행들의 콘텐츠 엘리먼트들을 나중의 행들 상으로 투영함으로써, 빈 셀들의 존재는 열들의 검출에 영향을 미치지 않고, 실제로 빈 셀들은 열들 내에 정확히 할당되는 것, 예컨대, 잉크 오브젝트들 (2106 및 2116) 사이의 빈 셀은 제 3 열 (C2) 내에 할당되는 것이 전술된 예로부터 알 수 있다. 이것은 또한, 하지만 도 12 의 예시적인 행렬에서와 같이 열 내에 오직 단일의 콘텐츠 엘리먼트가 존재하는 입력 상황들의 경우이다. 예를 들어, 도 26 은 대안적인 예시의 배열 (2600) 을 나타내고, 이는 배열 (2100) 과 동일하지만 잉크 오브젝트 (2114) 가 존재하지 않는다. 따라서, 상술된 바와 같은 본 시스템 및 방법의 인식 프로세스를 통해, 4 개의 열들 (C0, C1, C2 및 C3) 이, 그들 열들 내로 할당된 잉크 오브젝트들을 둘러싸는 점선의 바운딩 박스들에 의해 도시된 바와 같이 존재한다고 결정될 수도 있다. 이것은, 배열 (2100) 의 이전의 예에서와는 달리, 잉크 오브젝트 (2114) 가 잉크 오브젝트들 (2104 및 2110) 의 양자와 오버랩되지 않고, 이와 같이 이들은 이전 예에서 도 23 의 스테이지에서 결정된 바와 같이, 제 2 및 제 3 열들에 할당된 채로 유지되기 때문이다. 이에 따라, 이 대안적인 예에서, 오브젝트들 (2104 및 2110) 의 각각은 그들 각각의 열들 내의 오브젝트들 및 이들 오브젝트들 주위의 빈 셀들만이 또한 그들 열들 내로 할당되는 바와 같이 할당된다.
전술된 예시적인 '거친' 열 검출 프로세스들은, 도 4 내지 도 20 의 예들에서 다양하게 도시된 바와 같이, (수기의 불균일성으로부터의) 오정렬된 엘리먼트들, (부호 지정자들, 예컨대, 플러스 및 마이너스와 같은) 비-정렬된 엘리먼트들, 및 (하위-행렬들, 식들과 같은) 복합 엘리먼트들로 인해, 과도한 수직적 정렬들의 검출을 야기할 수도 있다. 이와 같이, 전술된 바와 같이 본 시스템 및 방법은 또한, 정세 검출 프로세스로 거친 검출 결과를 프로세싱할 수도 있고, 이 정세 검출 프로세스에서, 검출된 가능한 열들의 일부가 병합되어야 하는지 여부가 결정된다. 이러한 추가적인 프로세싱의 예들이 이제 도 27 내지 도 31 과 관련하여 설명된다.
전술된 바와 같이, 제 1 임계치는 포지티브 값으로 설정될 수도 있다. 그러한 설정은 기본적으로, 각각의 잉크 오브젝트에 관해 제공될 소정 양의 패딩 (padding) 을 야기하고, 이에 의해, 검출을 위해 열들 사이에 요구되는 간격을 증가시킨다. 이러한 패딩은 근접하게 이격되는 열들을 병합하기 위한 메커니즘을 제공하기 위해 후속하는 '정세한 (fine)' 필터링에서 또는 초기의 '거친 (coarse)' 필터링 내에서 사용될 수 있다. 예를 들어, 도 27 은 도 22 의 이전의 예의 스테이지에서의 프로세스를 나타내지만, 도 26 의 대안적인 배열 (2600) 에 대해 잉크 오브젝트들 (2102, 2104 및 2106) 에 적용되는 (도 27 에서 원들에 의해 지정되는) 소정 양의 패딩 (p) 을 갖는다. 이 예에서, 제 1 임계치의 값은, 패딩 (p) 이 잉크 오브젝트 (2110) 로 하여금 잉크 오브젝트 (2104) 와 수직으로 오버랩되게 하도록 설정된다. 이에 따라, 본 시스템 및 방법의 열 검출 프로세스는 도 28 에서 도시된 바와 같은 열 할당을 초래하고, 도 28 에서 오브젝트들 (2104 및 2110) 은, 배열 (2100) 의 예에서와 같이, 3 개의 열 레이아웃으로 동일한 열에 다시 할당된다. 제 1 임계치의 값은 임의적으로 설정 (그리고 예를 들어 UI 를 통해 사용자 들에 의해 재설정) 될 수 있거나, 예를 들어 문자들과 같이 수기된 오브젝트들의 보통의 또는 평균의 치수들과 같이, 수기의 특성들과 관련하여, 시스템 및 방법에 의해 자동적으로 정의될 수 있다.
열 할당들의 정세한 필터링을 위한 대안적 또는 추가적 메커니즘은 인식되는 2-차원 구조에 걸친 엘리먼트들의 상대적인 간격을 고려하는 것이다. 이것은 여러 방식들로 행해질 수 있다. 도 29 는 예시된 잉크 오브젝트들 (2102 내지 2116) 의 각각 사이의 수평 거리들을 갖는 배열 (2100) 을 도시한다. 그것은, 오브젝트들 (2102 및 2104) 사이의 거리 (d1), 오브젝트들 (2108 및 2110) 사이의 거리 (d2), 오브젝트들 (2112 및 2114) 사이의 거리 (d3), 오브젝트들 (2104 및 2106) 사이의 거리 (d4) 및 오브젝트들 (2114 및 2116) 사이의 거리 (d5) 이다. 이들 거리들로부터, 각 열의 콘텐츠 엘리먼트들 사이의 평균의, 보통의, 최소의 및 최대의 거리들이 결정될 수 있다. 예를 들어, 열들 (C0 및 C1) 사이의 평균 거리 (dm1) 는 거리들 (d1, d2 및 d3) 의 평균이고, 열들 (C1 및 C2) 사이의 평균 거리 (dm2) 는 거리들 (d4 및 d5) 의 평균이다. 거칠게 할당된 열들의 이러한 정규화된 거리들은, 열 검출을 위한 다른 (제 2 의) 임계치로서 제공되는, 할당들의 체크를 제공하기 위한 입력 배열의 다른 파라미터들에 대해 비교될 수 있다.
제 2 임계치로서의 이러한 파라미터의 일 예는 검출된 잠재적인 열들 사이의 간격이다. 이러한 간격은 예를 들어 거리 (dg1, dg2 및 dg3) 와 같이 다양하게 도 25, 도 26 및 도 28 에서 도시되며, 이 거리들은 열들 (C0 내지 C3) 의 각각에 대해 "nL" 및 "nR" 로서 아래첨자로 표시된, 열 바운딩 박스들의 우측 및 좌측 경계들 사이에서 측정되며, 여기서, "n" 은 예컨대 0 내지 3 과 같이 열의 수이다. 예를 들어, 열들을 병합하기 위한 이 파라미터에 대해 설정된 제 2 임계치는, 각 열의 평균 거리, 예컨대, 평균 거리들 (dm1 및 dm2) 과 비교하기 위해 사용되는, 수기에서의 자연스러운 변화들에 대해 제공하기 위한, 예를 들어 약 0.1 내지 약 0.7, 그리고 통상적으로 약 0.3 과 같이, 미리결정된 상수 값에 의해 스케일링 다운된, 도 25 에서의 dg2 와 같은 최대 포지티브 간격일 수도 있다. 이러한 비교에 기초하여, 평균 거리가 이 제 2 임계치보다 적은 경우에는, 열들은 병합된다. 이러한 방식으로, 열인 것으로 높은 가능성을 가지는 것으로 간주되는 최대 이격된 열보다 상당히 많이 더 적게 이격되는 검출된 열들은, 그것들은 열들을 구성하지 않을 가능성이 큼에 따라, 병합된다.
제 2 임계치로서의 이러한 파라미터의 다른 예는 소정의 콘텐츠 엘리먼트들 내의 간격이다. 알파벳 문자들, 단어들, 숫자들, 위첨자들, 아래첨자들, 브라켓들, 심볼들, 및 마이너스 및 플러스 부호들 및 분할자 선들과 같은 지정자들과 같은 콘텐츠 피처들 사이의 간격 등. 예를 들어, 도 30 은 거리 (dc1) 에 의해 분리된 2 개의 엘리먼트들 (3000 및 3002) 에 의해 구성된 잉크 오브젝트들 (2106) 을 도시한다. 예를 들어, 엘리먼트 (3000) 는 마이너스 부호와 같은 지정자일 수도 있고, 엘리먼트 (3002) 는 숫자일 수도 있다. 본 시스템 및 방법은 이러한 인접한 엘리먼트들을, 예를 들어, 도 8, 도 9 및 도 10 과 관련하여 전술된 바와 같이, 애플리케이션 (112) 에서 설정된 규칙들에 기초하여 단일 콘텐츠 엘리먼트들로서 HWR 시스템 (114) 에 의해 인식되는 것으로서 취급할 수도 있고, 또는, HWR 시스템 (114) 그 자신이 이러한 방식으로 잉크 오브젝트들을 리턴할 수도 있다. 예를 들어, 열들을 병합하기 위한 이 파라미터에 대해 설정된 제 2 임계치는, 수기에서의 자연스러운 변화들에 대해 제공하기 위해, 예를 들어, 약 1.1 내지 약 1.7, 그리고 통상적으로 약 1.4 와 같이, 미리결정된 상수 값에 의해 스케일업된 이러한 엘리먼트들 사이의 최대 간격일 수도 있고, 이 값을 각 열의 평균 거리와 비교할 수도 있다. 이러한 비교에 기초하여, 평균 거리가 이 제 2 임계치보다 더 적은 경우에는, 도 31 에서 도시된 바와 같이 그 열들은 병합되고, 여기서, 도 25 의 제 1 및 제 2 열들은, 예를 들어 거리 (dg1) 가 스케일링된 거리 (dc1) 보다 더 적기 때문에, 병합되어서, 2 개의 재할당된 열들 (C0 및 C1) 이 남는다. 이러한 방식으로, 마이너스 및 플러스 부호들을 갖는 숫자들과 같이, 최대 이격된 연결된 엘리먼트들보다 적게 상당히 이격된 검출된 열들은, 열들이 엘리먼트간 이격보다 더 넓게 이격될 것으로 예상되기 때문에 그것들은 열들을 구성하지 않을 가능성이 크므로, 병합된다.
인식된 구조의 글로벌 및 최대 피처들에 기초하여 상술된 병합 동작들에서 각각의 거칠게 검출된 열에서의 잉크 오브젝트들의 간격, 평균, 또는 다른 공통 값의 사용은 그 구조 내의 국지적 변화들로 인해 그 구조의 임의의 가능한 오버-세그멘테이션의 비교적 강건한 평가를 제공한다.
전술된 바와 같이, 열 검출의 상술된 예들은 또한, 행 검출에도 적용될 수 있고, 여기서, 수직적 정렬들이 HWR 시스템 (114) 으로부터 알려지고, 행들을 결정하기 위해 애플리케이션 (112) 에 의해 사용된다. 또한, 거친 및 정세한 2-차원적 구조 검출의 상술된 예들에서, 검출 결과는 각각의 검출된 열 및 행에 대해 하나 이상의 확률 점수들로서 제공될 수 있고, 이는 예를 들어 그 확률 결과들에 대한 기하학적 비용의 면에서 계산된다. 즉, 설명된 제 1 및 제 2 임계치들은 파라미터들이고, 이 파라미터들에 대해, 수기된 입력의 인식된 콘텐츠의 기하학적 관계들이 행 및 열들과 같이 특정 구조에 있는 것으로 그 인식된 콘텐츠의 기하학적 비용을 결정하기 위해 비교된다. 이러한 비용은, 예를 들어 수기 인식 결과들을 통해 생성된 확률에 대한 가중치들로서 HWR 시스템 (114) 으로부터의 실제의 인식 결과 및/또는 애플리케이션 (112) 의 구조 검출 결과에 대해 보충될 수 있다. 이러한 방식으로, 구조적 엘리먼트들에 대한 후속 할당에 대한 소정의 인식된 콘텐츠의 영향은, 전술된 바와 같이 숫자들에 대해 보다 가까운 간격을 허용하는 것, 열들 및/또는 행들의 병합, 예컨대 모든 숫자들, 문자들, 식들과 같이 콘텐츠의 유사성에 기초하여 행렬의 확률을 증가시키는 것, 브라켓들 또는 펜스 엘리먼트들이 콘텐츠 엘리먼트들에 근접하여 검출되는 경우에 행렬에 대해 확률 점수를 증가시키는 것과 같이, 쉽게 이루어질 수 있다.
본원에 기술된 다양한 예들은, 예를 들어, 엘리먼트들이 종이 또는 화이트보드 상의 필기의 사진으로서 캡처된, 또는 상호작용적 스마트보드 상에서 디지털적으로 캡처되는 등의 이미지로서 입력되는, 디지털 잉크라기보다는 이미지들이 인식되는 오프라인 인식과 같이 수기 이외의 인식을 위한 입력의 형태들에 적용될 수 있다.
설명된 방법들 및 시스템들은, 구조 인식이 오브젝트들 그 자체들의 인식을 고려하여 수행되므로, 숫자들, 문자들, 수학적 함수들 또는 식들, 및 이들의 조합의 행렬과 같이, 2-차원 구조들에서의 다중 오브젝트들의 프로세싱 및 인식 속도를 증가시킨다. 더욱이, 행렬들과 같이 구조들의 쓰기는 새로운 쓰기 영역의 형성, 매트릭스 버튼의 태핑, 브라켓의 드로잉 등과 같은, 인식을 위한 특정 사용자 행동을 필요로하지 않는다. 추가적으로, 알고리즘의 학습 또는 훈련이 요구되지 않고, 하지만, 이것은 결과들을 향상시키기 위해 수행될 수 있을 것이다.
전술한 바는 최상의 모드 및/또는 다른 예들인 것으로 간주되는 것을 설명하였지만, 다양한 수정들이 본 명세서에서 이루어질 수도 있고, 본원에서 개시된 주제는 다양한 형태들 및 예들로 구현될 수도 있고, 수많은 다른 애플리케이션들, 조합들, 및 환경들에 적용될 수도 있고, 그것의 단지 일부만이 본 명세서에서 설명되었다는 것이 이해된다. 통상의 기술자는 개시된 양태들이 발명의 주제의 진정한 사상 및 범위로부터 벗어남이 없이 개조되거나 또는 수정될 수도 있다는 것을 인식할 것이다. 그러므로, 본 발명의 주제는 이 명세서에서의 특정 세부사항들, 제시들, 및 예시된 예들로 제한되지 않는다. 본 명세서에서 개시되는 유리한 개념들의 진정한 범위 내에 속하는 임의의 및 모든 수정들과 변동들이 보호되는 것이 의도된다.

Claims (18)

  1. 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템으로서,
    각각의 컴퓨팅 디바이스는 프로세서, 메모리, 및 상기 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체는,
    상기 매체로, 상기 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 결정하고; 그리고
    상기 매체로, 상기 인식된 엘리먼트들 사이의 상기 적어도 하나의 기하학적 관계를 갖는 상기 인식된 엘리먼트들을, 상기 인식된 엘리먼트들의 배열의 대응하는 포지션들에 할당하도록 구성되는, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템.
  2. 제 1 항에 있어서,
    상기 배열의 상기 포지션들은 상기 인식된 엘리먼트들의 2-차원 구조의 셀들인, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 적어도 하나의 기하학적 관계는 상기 배열의 하나 이상의 방향들에서의 상기 복수의 인식된 엘리먼트들의 오버랩인, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 비일시적 컴퓨터 판독가능 매체는, 상기 복수의 인식된 엘리먼트들의 하나 이상의 기하학적 피처들 사이의 방향성 거리의 적어도 하나의 기하학적 임계치와의 비교에 기초하여 상기 오버랩을 결정하도록 구성되는, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템.
  5. 제 4 항에 있어서,
    상기 적어도 하나의 기하학적 임계치는 상기 인식된 엘리먼트들의 적어도 일부의 엘리먼트들의 적어도 하나의 기하학적 간격에 기초하는, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템.
  6. 제 5 항에 있어서,
    상기 적어도 하나의 기하학적 간격은 상기 인식된 엘리먼트들의 상기 적어도 일부의 엘리먼트들의 컴포넌트들 사이의 최대 간격인, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하기 위한 시스템.
  7. 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법으로서,
    각각의 컴퓨팅 디바이스는 프로세서, 및 상기 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 비일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 방법은,
    상기 매체로, 상기 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 결정하는 단계; 및
    상기 매체로, 상기 인식된 엘리먼트들 사이의 상기 적어도 하나의 기하학적 관계를 갖는 상기 인식된 엘리먼트들을, 상기 인식된 엘리먼트들의 배열의 대응하는 포지션들에 할당하는 단계를 포함하는, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법.
  8. 제 7 항에 있어서,
    상기 배열의 상기 포지션들은 상기 인식된 엘리먼트들의 2-차원 구조의 셀들인, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 적어도 하나의 기하학적 관계는 상기 배열의 하나 이상의 방향들에서의 상기 복수의 인식된 엘리먼트들의 오버랩인, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법.
  10. 제 9 항에 있어서,
    상기 복수의 인식된 엘리먼트들의 하나 이상의 기하학적 피처들 사이의 방향성 거리의 적어도 하나의 기하학적 임계치와의 비교에 기초하여 상기 오버랩을 결정하는 단계를 포함하는, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법.
  11. 제 10 항에 있어서,
    상기 적어도 하나의 기하학적 임계치는 상기 인식된 엘리먼트들의 적어도 일부의 엘리먼트들의 적어도 하나의 기하학적 간격에 기초하는, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법.
  12. 제 11 항에 있어서,
    상기 적어도 하나의 기하학적 간격은 상기 인식된 엘리먼트들의 상기 적어도 일부의 엘리먼트들의 컴포넌트들 사이의 최대 간격인, 컴퓨팅 디바이스들 상에서 다수의 오브젝트들의 배열을 인식하는 방법.
  13. 컴퓨터 판독가능 프로그램 코드를 포함한 비일시적 컴퓨터 판독가능 매체로서,
    상기 컴퓨터 판독가능 프로그램 코드는 컴퓨팅 디바이스에 입력된 다수의 오브젝트들의 배열을 인식하는 방법을 구현하기 위해 실행되도록 적응되고, 상기 컴퓨팅 디바이스는 프로세서, 및 상기 프로세서의 제어 하에서 수기 입력을 인식하기 위한 적어도 하나의 시스템 비일시적 컴퓨터 판독가능 매체를 포함하고,
    상기 방법은,
    상기 매체로, 상기 입력의 복수의 인식된 엘리먼트들 사이의 적어도 하나의 기하학적 관계를 결정하는 단계; 및
    상기 매체로, 상기 인식된 엘리먼트들 사이의 상기 적어도 하나의 기하학적 관계를 갖는 상기 인식된 엘리먼트들을, 상기 인식된 엘리먼트들의 배열의 대응하는 포지션들에 할당하는 단계를 포함하는, 비일시적 컴퓨터 판독가능 매체.
  14. 제 13 항에 있어서,
    상기 배열의 상기 포지션들은 상기 인식된 엘리먼트들의 2-차원 구조의 셀들인, 비일시적 컴퓨터 판독가능 매체.
  15. 제 13 항 또는 제 14 항에 있어서,
    상기 적어도 하나의 기하학적 관계는 상기 배열의 하나 이상의 방향들에서의 상기 복수의 인식된 엘리먼트들의 오버랩인, 비일시적 컴퓨터 판독가능 매체.
  16. 제 15 항에 있어서,
    상기 복수의 인식된 엘리먼트들의 하나 이상의 기하학적 피처들 사이의 방향성 거리의 적어도 하나의 기하학적 임계치와의 비교에 기초하여 상기 오버랩을 결정하는 것을 포함하는, 비일시적 컴퓨터 판독가능 매체.
  17. 제 16 항에 있어서,
    상기 적어도 하나의 기하학적 임계치는 상기 인식된 엘리먼트들의 적어도 일부의 엘리먼트들의 적어도 하나의 기하학적 간격에 기초하는, 비일시적 컴퓨터 판독가능 매체.
  18. 제 17 항에 있어서,
    상기 적어도 하나의 기하학적 간격은 상기 인식된 엘리먼트들의 상기 적어도 일부의 엘리먼트들의 컴포넌트들 사이의 최대 간격인, 비일시적 컴퓨터 판독가능 매체.
KR1020187023832A 2016-01-20 2017-01-20 다중 오브젝트 구조를 인식하기 위한 시스템 및 방법 KR102463657B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP16290015.3 2016-01-20
EP16290015 2016-01-20
US15/152,762 2016-05-12
US15/152,762 US10013603B2 (en) 2016-01-20 2016-05-12 System and method for recognizing multiple object structure
PCT/EP2017/000074 WO2017125248A1 (en) 2016-01-20 2017-01-20 System and method for recognizing multiple object structure

Publications (2)

Publication Number Publication Date
KR20180104678A true KR20180104678A (ko) 2018-09-21
KR102463657B1 KR102463657B1 (ko) 2022-11-10

Family

ID=55436052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187023832A KR102463657B1 (ko) 2016-01-20 2017-01-20 다중 오브젝트 구조를 인식하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US10013603B2 (ko)
EP (1) EP3405906A1 (ko)
JP (1) JP6877446B2 (ko)
KR (1) KR102463657B1 (ko)
CN (1) CN108701215B (ko)
WO (1) WO2017125248A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620824B2 (en) 2016-09-30 2020-04-14 Atlassian Pty Ltd Creating tables using gestures
US11032336B2 (en) 2018-03-23 2021-06-08 Motorola Solutions, Inc. Methods and systems for providing supplementary information on a virtual whiteboard
US10826572B2 (en) * 2018-04-16 2020-11-03 Microsoft Technology Licensing, Llc Preserving digital ink spatial relationships in electronic messages
US10748031B1 (en) * 2019-05-22 2020-08-18 Read-Ink Corporation Handwriting recognition systems and methods
CN110363149B (zh) * 2019-07-16 2021-12-03 广州视源电子科技股份有限公司 笔迹的处理方法和装置
CN114491368B (zh) * 2022-01-20 2024-03-08 抖音视界有限公司 表格定位器生成方法、表格操作方法、装置、介质及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030215145A1 (en) * 2002-05-14 2003-11-20 Microsoft Corporation Classification analysis of freeform digital ink input
US20070003142A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Ink warping for normalization and beautification / ink beautification

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60136892A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd オンライン手書き図形認識装置
DE29521538U1 (de) * 1994-09-09 1997-06-26 Motorola Inc Vorrichtung zum Erkennen der Grenze zwischen Zeichen in einem handgeschriebenen Text
US5970170A (en) * 1995-06-07 1999-10-19 Kodak Limited Character recognition system indentification of scanned and real time handwritten characters
US6094506A (en) * 1995-10-25 2000-07-25 Microsoft Corporation Automatic generation of probability tables for handwriting recognition systems
US7088459B1 (en) * 1999-05-25 2006-08-08 Silverbrook Research Pty Ltd Method and system for providing a copy of a printed page
US6831632B2 (en) * 2001-04-09 2004-12-14 I. C. + Technologies Ltd. Apparatus and methods for hand motion tracking and handwriting recognition
US7561737B2 (en) * 2004-09-22 2009-07-14 Microsoft Corporation Mathematical expression recognition
US7447360B2 (en) 2004-09-22 2008-11-04 Microsoft Corporation Analyzing tabular structures in expression recognition
CN100347723C (zh) * 2005-07-15 2007-11-07 清华大学 基于几何代价与语义-识别代价结合的脱机手写汉字字符的切分方法
US8045803B2 (en) * 2007-11-09 2011-10-25 Jeffrey Scott Nelson Handwriting recognition system and methodology for use with a latin derived alphabet universal computer script
US8121412B2 (en) * 2008-06-06 2012-02-21 Microsoft Corporation Recognition of tabular structures
US20100246941A1 (en) * 2009-03-24 2010-09-30 Microsoft Corporation Precision constrained gaussian model for handwriting recognition
US8175389B2 (en) * 2009-03-30 2012-05-08 Synaptics Incorporated Recognizing handwritten words
CN101930545A (zh) * 2009-06-24 2010-12-29 夏普株式会社 手写识别方法和设备
TW201201113A (en) * 2010-06-22 2012-01-01 Sharp Kk Handwriting recognition method and device
US8768062B2 (en) * 2010-11-09 2014-07-01 Tata Consulting Services Limited Online script independent recognition of handwritten sub-word units and words
CN102156865A (zh) * 2010-12-14 2011-08-17 上海合合信息科技发展有限公司 手写文本行字符切分方法、识别方法
CN102156577B (zh) * 2011-03-28 2013-05-29 安徽科大讯飞信息科技股份有限公司 实现连续手写识别输入的方法及系统
CN103366151B (zh) * 2012-03-30 2017-05-31 佳能株式会社 手写字符识别方法以及设备
US10176291B2 (en) * 2012-07-06 2019-01-08 Siemens Product Lifecycle Management Software Inc. Ordering optional constraints in a variational system
CN103093196B (zh) * 2013-01-14 2014-08-27 大连理工大学 一种基于手势的汉字交互输入与识别方法
CN109614847B (zh) * 2013-06-09 2023-08-04 苹果公司 管理实时手写识别
JP6451316B2 (ja) * 2014-12-26 2019-01-16 富士通株式会社 文字認識プログラム、文字認識方法及び文字認識装置
CN105117054B (zh) * 2015-08-12 2018-04-17 珠海优特物联科技有限公司 一种手写输入的识别方法及系统
US10643067B2 (en) * 2015-10-19 2020-05-05 Myscript System and method of handwriting recognition in diagrams

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030215145A1 (en) * 2002-05-14 2003-11-20 Microsoft Corporation Classification analysis of freeform digital ink input
US20070003142A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Ink warping for normalization and beautification / ink beautification

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
豊住健一 他3名,オンライン手書き團式認識システムにおける行列要素の位置?係に基づく行列認識機構,電子情報通信??論文誌,第J86-D-II?第9?,社?法人電子情報通信??,2003.09.01,P1278-1285 1부.* *

Also Published As

Publication number Publication date
EP3405906A1 (en) 2018-11-28
CN108701215B (zh) 2022-08-02
JP2019506672A (ja) 2019-03-07
CN108701215A (zh) 2018-10-23
US20170206406A1 (en) 2017-07-20
US10013603B2 (en) 2018-07-03
WO2017125248A1 (en) 2017-07-27
KR102463657B1 (ko) 2022-11-10
JP6877446B2 (ja) 2021-05-26

Similar Documents

Publication Publication Date Title
US9911052B2 (en) System and method for superimposed handwriting recognition technology
KR102463657B1 (ko) 다중 오브젝트 구조를 인식하기 위한 시스템 및 방법
JP6777723B2 (ja) 複数のオブジェクトの入力を認識するためのシステムならびにそのための方法および製品
US10007859B2 (en) System and method for superimposed handwriting recognition technology
KR102347554B1 (ko) 디지털 잉크를 뷰티파잉하기 위한 시스템 및 방법
KR102428704B1 (ko) 핸드라이팅된 다이어그램 커넥터들의 인식을 위한 시스템 및 방법
US10579868B2 (en) System and method for recognition of objects from ink elements
EP3491580B1 (en) System and method for beautifying superimposed digital ink
US10884610B2 (en) System and method for recognizing handwritten stroke input
US20230096728A1 (en) System and method for text line and text block extraction
KR102310385B1 (ko) 중첩된 필기 인식 기술을 위한 시스템 및 방법
WO2024110354A1 (en) Setting font size in an unconstrained canvas
WO2006090404A1 (en) System, method, and apparatus for accomodating variability in chunking the sub-word units of online handwriting

Legal Events

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