KR20220103102A - 터치-기반 사용자 인터페이스 입력에서의 제스처 스트로크 인식 - Google Patents

터치-기반 사용자 인터페이스 입력에서의 제스처 스트로크 인식 Download PDF

Info

Publication number
KR20220103102A
KR20220103102A KR1020227015612A KR20227015612A KR20220103102A KR 20220103102 A KR20220103102 A KR 20220103102A KR 1020227015612 A KR1020227015612 A KR 1020227015612A KR 20227015612 A KR20227015612 A KR 20227015612A KR 20220103102 A KR20220103102 A KR 20220103102A
Authority
KR
South Korea
Prior art keywords
stroke
sub
gesture
timestamps
generating
Prior art date
Application number
KR1020227015612A
Other languages
English (en)
Inventor
카울라 엘라구니
시릴 세로빅
줄리앙 베르뉴
Original Assignee
마이스크립트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이스크립트 filed Critical 마이스크립트
Publication of KR20220103102A publication Critical patent/KR20220103102A/ko

Links

Images

Classifications

    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • 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/18Extraction of features or characteristics of the image
    • G06V30/182Extraction of features or characteristics of the image by coding the contour of the pattern
    • G06V30/1834Extraction of features or characteristics of the image by coding the contour of the pattern using statistical shape modelling, e.g. point distribution model
    • 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/30Character recognition based on the type of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/36Matching; Classification

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)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Probability & Statistics with Applications (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 제스처 스트로크를 인식하는 방법이 개시되며, 방법은, 사용자 입력에 기초하여 생성된 데이터를 수신하는 단계로서, 상기 데이터는 스트로크를 나타내고 직사각형 좌표 공간에서의 복수의 잉크 포인트, 및 복수의 잉크 포인트와 각각 관련된 복수의 타임스탬프를 포함하는, 상기 데이터를 수신하는 단계; 복수의 잉크 포인트를, 각각이 스트로크의 각각의 서브 스트로크에 대응하고 복수의 잉크 포인트의 각각의 서브 세트를 포함하는 복수의 세그먼트로 분할하는 단계; 복수의 세그먼트에 각각 기초하여 복수의 특징부 벡터를 생성하는 단계; 및 스트로크가 비-제스처 스트로크일 확률 및 스트로크가 제스처 스트로크의 세트의 주어진 제스처 스트로크일 확률을 포함하는 확률들의 벡터를 생성하기 위해 훈련된 스트로크 분류기에, 스트로크를 나타내는 입력 시퀀스로서 복수의 특징부 벡터를 적용하는 단계를 포함한다.

Description

터치-기반 사용자 인터페이스 입력에서의 제스처 스트로크 인식
본 발명은 터치-기반 사용자 인터페이스에서의 제스처 인식의 분야에 관한 것이다.
터치-기반 사용자 인터페이스를 통한 전자 문서 작성 또는 편집의 맥락에서, 제스처 스트로크들 사이, 즉 콘텐츠에서 정의된 동작을 실현하는 것과 관련된 스트로크들과, 사용자에 의해 추가되는 실제 콘텐츠(예를 들어, 텍스트, 수학, 형상 등)과 같은 비-제스처 스트로크를 구별할 필요가 있다.
기존의 제스처 인식 기술은 규칙 기반이다. 보다 구체적으로, 제스처 인식 기술은 제스처의 정의된 세트를 인식하기 위해 발견적 교수법(heuristics)의 세트의 수동 정의에 의지한다. 이러한 기술의 수행은 일반적으로 허용되지만, 전형적으로 더욱 정교한/이례적인 제스처 스트로크에 대해 잘 수행되지 못한다. 아울러, 새로운 제스처 스트로크를 추가하기 위한 이러한 기술의 업데이트는 새로운 제스처 스트로크에 대해 매번 새로운 발견적 교수법을 개발할 필요성 때문에 어렵다.
본 발명은 종래 기술의 인식된 결함 중 일부를 해결한다. 구체적으로, 본 발명은 터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 제스처 스트로크를 인식하는 방법을 제안하고, 방법은,
사용자 입력에 기초하여 생성된 데이터를 수신하는 단계로서, 상기 데이터는 스트로크를 나타내고 직사각형 좌표 공간에서의 복수의 잉크 포인트, 및 복수의 잉크 포인트와 각각 관련된 복수의 타임스탬프를 포함하는, 상기 데이터를 수신하는 단계;
복수의 잉크 포인트를, 각각이 스트로크의 각각의 서브 스트로크에 대응하고 복수의 잉크 포인트의 각각의 서브 세트를 포함하는 복수의 세그먼트로 분할하는 단계;
복수의 세그먼트에 각각 기초하여 복수의 특징부 벡터를 생성하는 단계; 및
스트로크가 비-제스처 스트로크일 확률 및 스트로크가 제스처 스트로크의 세트의 주어진 제스처 스트로크일 확률을 포함하는 확률들의 벡터를 생성하기 위해 훈련된 스트로크 분류기에, 스트로크를 나타내는 입력 시퀀스로서 복수의 특징부 벡터를 적용하는 단계
를 포함한다.
스트로크 분류기는 뉴럴 네트워크(neural network)로서 구현될 수 있다. 뉴럴 네트워크의 사용은 새로운 제스처 스트로크를 포함하는 데이터에서 스트로크 분류기의 간단한 재훈련으로 용이하게 새로운 제스처 스트로크가 추가될 수 있다는 것을 의미한다.
실시형태에 따르면, 전자 문서는 핸드라이팅된 콘텐츠(handwritten content) 및/또는 조판 콘텐츠(typeset content)를 포함할 수 있다.
서브 스트로크 분할은 획득될 스트로크의 경로를 따르는 순차적 표현을 허용한다. 각각의 세그먼트는 스트로크에 대한 국부적 기술(description)에 대응한다. 포인트의 단순한 시퀀스로서 스트로크를 나타내는 것과 비교하여, 서브 스트로크 분할은 경로 정보(즉, 각각의 세그먼트 내에서의 포인트들 사이의 관계)를 유지하는 것을 허용하고, 이는 계산 시간에서의 감소를 유발한다.
실시형태에서, 스트로크 분류기는 재발성 양방향 장단기 기억(recurrent Bidirectional Long Short-Term Memory: BLSTM)으로서 구현된다. 재발성 BLSTM 뉴럴 네트워크의 사용은 네트워크가 메모리 블록을 포함하여, 장기간 종속성을 학습하고 시간 경과에 따라 정보를 기억할 수 있게 하는 것을 의미한다. 이러한 유형의 네트워크는 스트로크 분류기가 일련의 벡터(전체 스트로크)를 처리하고, 연속적인 서브 스트로크 사이의 시간적 종속성을 설명하는(즉, 스트로크의 경로의 세부 사항을 기억하는) 것을 허용한다.
실시형태에서, 방법은 복수의 타임스탬프에 기초하여 복수의 정정된 타임스탬프를 생성하는 단계를 더 포함한다.
복수의 타임스탬프의 정정은, 디바이스 캡처와 관련된 아티팩트(artifact)를 제거하고 제스처 스트로크 인식을 개선하는데 유리하다. 실제로, 디바이스 캡처 문제로 인해, 특정 타임스탬프가 그 각각의 잉크 포인트가 드로잉되는 정확한 순간과 일치하지 않는 것이 일반적이다. 예를 들어, 특정 디바이스에서, 잉크 포인트에 할당된 타임스탬프는 잉크 포인트가 캡처되는 정확한 순간이 아니라, 잉크 포인트를 포함하는 이벤트 로그(event log)가 프로세서 유닛으로 전송되는 시간에 일치한다. 이와 같이, 상이한 연속적인 잉크 포인트는 수신된 데이터에서의 동일한 타임스탬프 값을 가질 수 있다. 복수의 타임스탬프의 정정은 각각의 잉크 포인트가 사용자에 의해 드로잉되는 정확한 순간을 타임스탬프가 더 잘 반영하는 것을 보장한다. 이에 의해, 개선된 제스처 인식이 달성된다.
실시형태에서, 복수의 타임스탬프에 기초하여 복수의 정정된 타임스탬프를 생성하는 단계는:
복수의 잉크 포인트의 원본 타임스탬프 곡선을 근사화하는 함수를 결정하는 단계; 및
결정된 함수에 따라서 획득된 값으로 복수의 타임스탬프의 타임스탬프를 변경하는 단계를 포함한다.
실시형태에서, 방법은 제2 복수의 잉크 포인트 및 관련된 제2 복수의 타임스탬프를 생성하기 위해 복수의 잉크 포인트를 재샘플링하는 단계를 더 포함한다.
복수의 잉크 포인트를 재샘플링하는 단계는 상이한 디바이스들에 걸쳐서 균일한 수행을 보장하는데 유리하다. 실제로, 디바이스가 일반적으로 상이한 샘플링 기술을 사용함에 따라서, 수신된 데이터는 디바이스들 사이의 샘플링 특성의 측면에서 다를 수 있다.
실시형태에서, 제2 복수의 타임스탬프는 연속적인 타임스탬프 사이의 고정된 지속 시간을 특징으로 한다.
실시형태에서, 재샘플링하는 단계는 제2 복수의 잉크 포인트 및 관련된 제2 복수의 타임스탬프를 생성하기 위해 복수의 잉크 포인트 및 관련된 복수의 타임스탬프를 보간하는 단계를 포함한다.
실시형태에서, 복수의 잉크 포인트를 분할하는 단계는 복수의 세그먼트가 동일한 지속 시간을 갖도록 복수의 잉크 포인트를 분할하는 단계를 포함한다. 대안적으로 또는 추가적으로, 복수의 세그먼트는 동일한 수의 잉크 포인트를 가질 수 있다. 개선된 인식 정확도는 이러한 분할 기술 중 하나 이상을 사용한 결과로 나타났다.
실시형태에서, 복수의 세그먼트에 각각 기초하여 복수의 특징부 벡터를 생성하는 단계는, 각각의 서브 스트로크에 대응하는 복수의 세그먼트의 각각의 세그먼트에 대해:
각각의 서브 스트로크의 형상을 나타내는 기하학적 특징부를 생성하는 단계; 및
서브 스트로크와 서브 스트로크에 이웃하는 콘텐츠 사이의 공간적 관계를 나타내는 이웃 특징부(neighborhood feature)를 생성하는 단계를 포함한다.
서브 스트로크에 이웃하는 콘텐츠는 서브 스트로크에 대해 집중된 윈도우를 교차하는 콘텐츠로서 정의될 수 있다.
이러한 실시형태에 따르면, 서브 스트로크와 관련된 특징부 벡터는 서브 스트로크의 형상과 서브 스트로크가 드로잉되는 콘텐츠 모두를 기술한다. 이들 두 가지 유형의 정보는 상호 보완적이며, 제스처 스트로크 또는 비-제스처 스트로크로서 스트로크의 고도로 정확한 인식을 허용한다.
실시형태에서, 기하학적 특징부를 생성하는 단계는 서브 스트로크에 대한 통계적 서브 스트로크 기하학적 특징부 및/또는 전역적 서브 스트로크 기하학적 특징부를 생성하는 단계를 포함한다. 통계적 서브 스트로크 기하학적 특징부는 개별 잉크 포인트 기하학적 특징부에서 수행된 통계 분석에서 파생된 특징부이다. 전역적 서브 스트로크 기하학적 특징부는 전체 서브 스트로크 경로(예를 들어, 길이, 곡률 등)를 나타내는 특징부이다.
실시형태에서, 통계적 서브 스트로크 기하학적 특징부를 생성하는 단계는 기하학적 특징부의 세트의 각각의 기하학적 특징부에 대해:
각각의 서브 스트로크에 대응하는 세그먼트의 잉크 포인트에 대한 각각의 값을 결정하는 단계; 및
결정된 각각의 값에 기초하여 하나 이상의 통계적 측정치를 계산하는 단계를 포함한다.
실시형태에서, 서브 스트로크에 대한 전역적 서브 스트로크 기하학적 특징부를 생성하는 단계는 서브 스트로크 길이, 서브 스트로크 내에서의 단일 잉크 포인트의 개수, 및 서브 스트로크 길이와 서브 스트로크의 첫 번째 및 마지막 잉크 포인트 사이의 거리 사이의 비율 중 하나 이상을 계산하는 단계를 포함한다.
실시형태에서, 이웃 특징부를 생성하는 단계는,
서브 스트로크와 서브 스트로크에 이웃하는 텍스트 콘텐츠(textual content) 사이의 공간적 관계를 나타내는 텍스트 이웃 특징부;
서브 스트로크와 서브 스트로크에 이웃하는 수학적 콘텐츠 사이의 공간적 관계를 나타내는 수학적 이웃 특징부; 및
서브 스트로크와 서브 스트로크에 이웃하는 비-텍스트 콘텐츠 사이의 공간적 관계를 나타내는 비-텍스트 이웃 특징부 중 하나 이상을 생성하는 단계를 포함한다.
다른 양태에서, 컴퓨팅 디바이스로서,
프로세서; 및
프로세서에 의해 실행될 때, 위에서 설명된 방법 실시형태 중 임의의 것에 따른 방법을 수행하도록 프로세서를 구성하는 명령어를 저장하는 메모리를 포함하는 컴퓨팅 디바이스를 제공한다.
실시형태에서, 전술한 방법 실시형태 중 임의의 것은 컴퓨터 프로그램의 명령으로서 구현될 수 있다. 이와 같이, 본 개시내용은 프로세서에 의해 실행될 때, 전술한 방법 실시형태 중 임의의 것에 따른 방법을 프로세서가 실행하게 하는 명령어를 포함하는 컴퓨터 프로그램을 제공한다.
컴퓨터 프로그램은 임의의 프로그래밍 언어를 사용할 수 있고, 소스 코드, 객체 코드, 또는 부분적으로 컴파일링된 코드와 같은, 객체 코드와 소스 코드 사이의 중간 코드의 형태, 또는 임의의 다른 바람직한 형태를 취할 수 있다.
컴퓨터 프로그램은 컴퓨터 판독 가능 매체에 기록될 수 있다. 이와 같이, 본 개시내용은 상술한 바와 같은 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능 매체에 관한 것이다. 컴퓨터 판독 가능 매체는 컴퓨터 프로그램을 저장할 수 있는 임의의 엔티티 또는 디바이스일 수 있다.
본 발명의 추가 특징 및 이점은 첨부 도면을 참조하여 제한이 아니라 단지 예시로서 주어진 특정 실시형태의 다음 설명으로부터 명백해질 것이다:
도 1은 본 발명의 실시형태에 따른 터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 제스처 스트로크를 인식하는 프로세스의 하나의 예를 도시하며;
도 2는 본 발명의 실시형태에 따른 예시적인 제스처 스트로크를 도시하며;
도 3은 본 발명의 실시형태에 따른 원본 타임스탬프 곡선 및 근사 함수를 도시하며;
도 4는 본 발명의 실시형태에 따른 서브 스트로크 세그먼트로 분할된 예시적인 밑줄 제스처 스트로크를 도시하며;
도 5A 내지 도 5D는 본 발명의 실시형태에 따른 예시적인 통계적 서브 스트로크 기하학적 특징부를 도시하며;
도 6은 본 발명의 실시형태에 따른 예시적인 제스처 스트로크를 도시하며;
도 7은 본 발명의 실시형태에 따른 서브 스트로크에 대한 텍스트 이웃 특징부를 생성하기 위한 예시적인 접근법을 도시하며;
도 8은 본 발명의 실시형태에 따른 예시적인 스트로크 분류기를 도시하며;
도 9A 내지 도 9D는 본 발명의 실시형태에 따른 훈련 데이터를 생성하기 위한 예시적인 접근법을 도시하며;
도 10은 본 발명의 실시형태에 따른 핸드라이팅된 노트 및 대응하는 조판 버전의 예를 도시하며; 그리고
도 11은 본 발명의 실시형태를 구현하는데 사용될 수 있는 예시적인 컴퓨터 디바이스를 도시한다.
터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 제스처 스트로크를 인식하기 위한 시스템 및 방법이 본 명세서에서 개시된다.
도 1은 본 발명의 실시형태에 따른 터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 제스처 스트로크를 인식하기 위한 예시적인 프로세스(100)를 도시한다.
실시형태에 따르면, 제스처 스트로크는, 특정 특성 또는 속성을 갖고 콘텐츠에서 대응하는 행위를 실현하기 위한 스트로크이다. 실시형태에서, 6개의 제스처 스트로크가 정의되고 사용된다. 이는, 스크래치-아웃(Scratch-out)(지그재그 또는 낙서 모양의 지우기 제스처), 취소선(라인 스트로크로 수행되는 지우기 제스처; 라인 스트로크는 수평, 수직 또는 경사질 수 있으며), 분할(한 단어를 두 단어로, 또는 한 줄을 두 줄로, 또는 한 단락을 두 단락으로 분할하는 제스처), 합침(두 단어를 한 단어로, 두 줄을 한 줄로, 또는 두 단락을 단일 단락으로 합치는 제스처), 둘러싸기(콘텐츠를 둘러싸는 제스처), 및 밑줄과 같은 행위에 대응한다. 예시의 목적을 위해, 도 2는 본 발명의 실시형태에 따른 분할 제스처 스트로크 및 합침 제스처 스트로크를 도시한 도면이다. 본 명세서의 교시에 기초하여 당업자에 의해 이해되는 바와 같이, 실시형태는 6개의 제스처 스트로크를 가지는 것으로 제한되지 않고, 더 많거나 더 적은 제스처 스트로크가 정의되고 사용될 수 있다.
대조적으로, 추가 스트로크(비-제스처 스트로크)는 정의된 제스처 스트로크 중 하나가 아닌 임의의 스트로크이다. 비-제스처 스트로크는 사용자에 의해 추가되는 콘텐츠에 대응할 수 있다.
실시형태에 따르면, 제스처 스트로크는 터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 인식될 수 있다. 제한 없이, 사용자 입력은 예를 들어 터치-기반 사용자 인터페이스에 손가락 끝 또는 스타일러스 펜에 의해 적용될 수 있다. 전자 문서는 핸드라이팅된 콘텐츠 및/또는 조판 콘텐츠를 포함할 수 있다. 터치-기반 사용자 인터페이스는 임의의 유형(예를 들어, 저항성, 정전식 등)일 수 있으며, 컴퓨터, 모바일 디바이스, 태블릿, 게임 콘솔 등에 대한 인터페이스일 수 있다.
도 1에 도시된 바와 같이, 예시적인 프로세스(100)는 단계 102, 104, 106, 및 108을 포함한다. 그러나, 다음에 추가로 설명되는 바와 같이, 다른 실시형태에서, 프로세스(100)는 단계 102, 104, 106, 및 108에 대한 추가적인 개입 또는 후속 단계를 포함할 수 있다.
실시형태에서, 프로세스(100)는 터치-기반 사용자 인터페이스를 통해 전자 문서에 적용된 사용자 입력에 기초하여 생성된 데이터를 수신하는 단계를 포함하는 단계(102)에서 시작한다.
수신된 데이터는 사용자에 의해 적용된 스트로크를 나타내고, 복수의 잉크 포인트 및 복수의 잉크 포인트와 각각 관련된 복수의 타임스탬프를 포함한다. 복수의 잉크 포인트는 직사각형 좌표 공간(터치-기반 사용자 인터페이스의 화면에 기초하여 정의된)에 국한되며, 각각의 잉크 포인트는 직사각형 좌표 공간에서의 (X,Y) 좌표와 관련된다.
실시형태에서, 수신된 데이터는 사용자에 의해 적용된 스트로크의 캡처에 응답하여 터치-기반 사용자 인터페이스 및 관련 회로에 의해 생성된 데이터에 대응한다. 상이한 터치-기반 사용자 인터페이스는 상이한 입력 샘플링 기술, 상이한 데이터 표현 기술 등을 사용하는 것을 포함하여 스트로크를 상이하게 캡처할 수 있다. 터치-기반 사용자 인터페이스로부터 수신된 데이터가 본 발명에 의해 사용되는 잉크 포인트 포맷과 상이한 포맷인 실시형태에서, 수신된 데이터는 복수의 잉크 포인트 및 이로부터 각각의 복수의 타임스탬프를 생성하도록 변환된다.
실시형태에서, 프로세스(100)는 복수의 정정된 타임스탬프를 생성하기 위해 수신된 데이터에 포함된 복수의 타임스탬프를 정정하는 단계를 더 포함할 수 있다. 복수의 정정된 타임스탬프는 복수의 잉크 포인트와 관련되고, 프로세스(100)의 나머지 동안 원본 타임스탬프 대신 사용된다.
실시형태에서, 복수의 타임스탬프의 정정은 디바이스 캡처와 관련된 아티팩트를 제거하고 제스처 스트로크 인식을 개선하는데 유리하다. 실제로, 디바이스 캡처 문제로 인해, 그 각각의 잉크 포인트가 드로잉되는 정확한 순간과 특정 타임스탬프가 일치하지 않는 것이 일반적이다. 예를 들어, 특정 디바이스에서, 잉크 포인트에 할당된 타임스탬프는 잉크 포인트가 캡처되는 정확한 순간이 아니라, 잉크 포인트를 포함하는 이벤트 로그가 프로세서 유닛으로 전송되는 시간에 일치한다. 이와 같이, 상이한 연속적인 잉크 포인트는 수신된 데이터에서 동일한 타임스탬프 값을 가질 수 있다. 복수의 타임스탬프의 정정은 각각의 잉크 포인트가 사용자에 의해 드로잉되는 정확한 순간을 타임스탬프가 더 잘 반영하는 것을 보장한다. 이에 의해 개선된 제스처 인식이 달성된다.
실시형태에서, 복수의 타임스탬프의 정정은 복수의 잉크 포인트의 원본 타임스탬프 곡선을 근사하는 함수를 사용하여 수행된다. 근사화 함수는 선형 함수이더라도, 실시형태는 이에 제한되지 않는다.
도 3은 예에 따른 원본 타임스탬프 곡선(304)을 근사화하는 선형 함수(302)를 도시한다. 원본 타임스탬프 곡선(304)은 복수의 잉크 포인트(X-축에 의해 주어진 바와 같은 1 내지 163으로 넘버링됨)의 각각에 대해, 대응하는 타임스탬프(Y-축에 의해 주어진 바와 같이 0 내지 600)를 제공한다. 도시된 바와 같이, 원본 타임스탬프 곡선(304)은 단계 함수이며, 다수의 연속적인 잉크 포인트가 동일한 타임스탬프 값을 가진다는 것을 반영한다. 위에서 논의된 바와 같이, 이러한 것은 디바이스 캡처 문제에 기인할 수 있다.
선형 함수(302)는 원본 타임스탬프 곡선(304)의 선형 근사치이다. 실시형태에서, 선형 함수(302)는 원본 타임스탬프 곡선(304)에 최적 적합 함수(Least Squares fitting)이다. 예를 들어, 선형 함수(302)는 원본 타임스탬프 곡선(304)에 대한 최소 제곱법 적합(Least Squares fitting)에 의해 획득된다.
잉크 포인트와 관련된 타임스탬프의 정정은 원본 타임스탬프 곡선(304)에 의해 제공되는 바와 같은 잉크 포인트와 관련된 타임스탬프를, 선형 함수(302) 상으로 잉크 포인트를 투영하는 것에 의해 획득된 대응하는 값으로 변경하는 것을 포함한다.
실시형태에서, 프로세스(100)는 제2 복수의 잉크 포인트 및 관련된 제2 복수의 타임스탬프를 생성하기 위해 복수의 잉크 포인트를 재샘플링하는 단계를 더 포함할 수 있다. 재샘플링하는 단계는 원본 또는 정정된 타임스탬프에 기초하여 수행될 수 있다. 제2 복수의 잉크 포인트 및 제2 복수의 타임스탬프는 그런 다음 프로세스(100)의 나머지 동안 사용된다.
복수의 잉크 포인트를 재샘플링하는 단계는 상이한 디바이스들에 걸쳐서 균일한 수행을 보장하는데 유리하다. 실제로, 디바이스가 전형적으로 상이한 샘플링 기술을 사용함에 따라서, 단계(102)에서 수신된 데이터는 디바이스들 사이의 샘플링 특성의 측면에서 다를 수 있다.
상이한 재샘플링 기술들이 사용될 수 있다: 시간적, 공간적 또는 둘 모두. 실시형태에서, 시간적 주파수에 따른 재샘플링이 사용되어, 연속적인 타임스탬프 사이의 고정된 지속 시간을 특징으로 하는 제2 복수의 타임스탬프를 초래한다.
실시형태에서, 재샘플링하는 단계는 제2 복수의 잉크 포인트 및 관련된 제2 복수의 타임스탬프를 생성하기 위해 복수의 잉크 포인트 및 관련된 복수의 타임스탬프를 보간하는 단계를 포함한다.
도 1로 돌아가서, 단계(104)에서, 프로세스(100)는 복수의 잉크 포인트를 수신된 데이터에 의해 나타나는 스트로크의 각각의 서브 스트로크에 각각 대응하는 복수의 세그먼트로 분할하는 단계를 포함한다. 각각의 서브 스트로크는 스트로크를 나타내는 복수의 잉크 포인트의 각각의 서브 세트를 포함한다.
서브 스트로크 분할의 배후는 스트로크의 경로를 따르는 순차적 표현을 획득하는 것이다. 이와 같이, 각각의 세그먼트는 스트로크에 대한 국부적 기술에 대응한다. 스트로크를 포인트의 단순한 시퀀스로서 나타내는 것과 비교하여, 서브 스트로크 분할은 경로 정보(즉, 각각의 세그먼트 내에서의 포인트들 사이의 관계)를 유지하는 것을 허용하고, 이는 계산 시간에서의 감소를 초래한다.
상이한 서브 스트로크 분할 기술이 실시형태에 따라서 사용될 수 있다. 실시형태에서, 시간적 정보에 기초한 서브 스트로크 분할이 사용되어, 동일한 지속 시간을 가지는 복수의 세그먼트를 초래한다. 실시형태에서, 동일한 세그먼트 지속 시간은 모든 스트로크에 대해 사용된다. 또한, 세그먼트 지속 시간은 디바이스 독립적일 수 있다.
복수의 잉크 포인트가 시간적 주파수에 따라서 재샘플링되는 실시형태에서, 시간 정보에 기초한 복수의 잉크 포인트의 후속적인 분할(즉, 동일한 지속 시간 세그먼트로의)은 동일한 수의 잉크 포인트(동일한 지속 시간을 가지지만 잠재적으로 상이한 길이를 가지는)를 가지는 복수의 세그먼트로 스트로크를 분할하는 것에 대응한다. 도 4는 밑줄 제스처 스트로크에 대응하는 예시적인 스트로크(402)를 도시한다. 스트로크(402)에 대응하는 데이터는 시간적 주파수에 따라 재샘플링되어, 연속적인 타임스탬프 사이에 고정된 지속 시간을 가지는 잉크 포인트(404)를 초래한다. 재샘플링된 잉크 포인트(404)는 그런 다음 잉크 포인트(406)에 의해 정의되는 동일한 세그먼트 지속 시간의 서브 스트로크로 분할된다. 이와 같이, 스트로크(402)는 도 4에 도시된 바와 같이 동일한 수의 잉크 포인트를 가지는 세그먼트로 분할된다.
도 1로 돌아가서, 단계(106)에서, 프로세스(100)는 복수의 세그먼트에 각각 기초하여 복수의 특징부 벡터를 생성하는 단계를 포함한다.
실시형태에서, 단계(106)는 스트로크의 각각의 서브 스트로크에 대응하는 복수의 세그먼트의 각각의 세그먼트에 대해: 각각의 서브 스트로크의 형상을 나타내는 기하학적 특징부를 생성하는 단계; 및 서브 스트로크 및 서브 스트로크에 이웃하는 콘텐츠 사이의 공간적 관계를 나타내는 이웃 특징부를 생성하는 단계를 포함한다.
실시형태에서, 서브 스트로크에 이웃하는 콘텐츠는 서브 스트로크에 대해 집중된 윈도우를 교차하는 콘텐츠이다. 윈도우 크기는 다양한 방식으로 구성될 수 있다. 한 실시형태에서, 윈도우 크기는 전자 문서에서의 문자 및/또는 기호의 평균 높이에 비례하여 설정된다. 다른 실시형태에서, 전자 문서가 문자 또는 기호를 포함하지 않으면, 윈도우 크기는 터치-기반 사용자 인터페이스의 크기(디바이스의 화면 크기에 대응할 수 있는)에 비례하여 설정된다.
실시형태에서, 세그먼트 또는 서브 스트로크와 관련된 기하학적 특징부를 생성하는 단계는 통계적 서브 스트로크 기하학적 특징부 및/또는 전역적 서브 스트로크 기하학적 특징부를 생성하는 단계를 포함한다.
실시형태에서, 통계적 서브 스트로크 기하학적 특징부는 개별 잉크 포인트 기하학적 특징부에서 수행된 통계 분석으로부터 파생된 특징부이다.
실시형태에서, 세그먼트의 잉크 포인트당 계산될 관심 개별 기하학적 특징부의 세트가 정의된다. 개별 기하학적 특징부의 세트는 예를 들어 세그먼트의 (현재) 잉크 포인트와 이전의 잉크 포인트, 세그먼트에서의 다음 잉크 포인트, 스트로크에서의 제1 잉크 포인트, 및/또는 스트로크의 중력 중심(스크로크의 잉크 포인트의 X 및 Y 좌표를 평균화하는 것에 의해 획득된) 사이의 기하학적 관계를 설명할 수 있다.
실시형태에서, 개별 기하학적 특징부들의 세트는 세그먼트(도 5A에 도시됨)에서 현재 잉크 포인트와 이전의 잉크 포인트 사이의 절대 거리("ds"); 거리("ds")의 X 및 Y 축 상에서의 돌출부("dx" 및 "dy")(도 5A에 도시됨); cos θ, sin θ 및 θ 값에 의해 도 5B에 도시된 실시형태에서 나타난, 현재 잉크 포인트에서의 곡률의 측정으로서, 여기에서 θ는 이전의 잉크 포인트를 현재 잉크 포인트에 연결하는 선과 현재 잉크 포인트를 다음의 잉크 포인트를 연결하는 선 사이에 형성된 각도인, 상기 곡률의 측정; 스트로크(도 5C에 도시된)에서의 현재 잉크 포인트와 제1 잉크 포인트 사이의 거리의 X 및 Y 축 상에서의 돌출부("dx_s" 및 "dy_s"); 및 중력 중심과 스트로크(도 5D에 도시된)의 현재 잉크 포인트 사이의 각각의 거리의 X 및 Y 축 상에서의 돌출부("dx_g" 및 "dy_g")를 포함할 수 있다.
실시형태에서, 개별 기하학적 특징부의 세트의 각각의 특징부에 대해, 특징부는 세그먼트의 잉크 포인트에 대한 각각의 값을 결정하기 위해 세그먼트의 모든 잉크 포인트(적절한 경우에)에 걸쳐서 결정된다. 그런 다음, 하나 이상의 통계적 측정치는 각각의 특징부에 대해, 특징부에 대응하는 결정된 각각의 값에 기초하여 계산된다. 실시형태에서, 각각의 특징에 대해, 최소값, 최대값 및 중간값은 특징부에 대응하는 결정된 각각의 값에 기초하여 획득될 수 있다.
실시형태에서, 개별 기하학적 특징부의 세트의 모든 특징부에 걸쳐서 계산된 하나 이상의 통계적 측정치는 서브 스트로크에 대한 통계적 서브 스트로크 기하학적 특징부에 대응한다.
전역적 서브 스트로크 기하학적 특징부는 전체 서브 스트로크 경로를 나타내는 특징부(예를 들어, 길이, 곡률 등)이다. 실시형태에서, 서브 스트로크에 대한 전역적 서브 스트로크 기하학적 특징부를 생성하는 단계는 서브 스트로크 길이, 서브 스트로크 내에서 (예를 들어, 변곡점 및/또는 교차점(교차점은 스트로크 자체가 교차하는 지점임)의 개수와 같은) 단일 잉크 포인트, 및 서브 스트로크 길이와 첫 번째 및 마지막 잉크 포인트 사이의 거리 사이의 비율 중 하나 이상을 계산하는 단계를 포함한다.
실시형태에서, 세그먼트 또는 서브 스트로크와 관련된 기하학적 특징부는 서브 스트로크에 기초하여 결정된 통계적 서브 스트로크 기하학적 특징부 및 전역적 서브 스트로크 기하학적 특징부 모두를 포함한다.
위에서 언급된 바와 같이, 세그먼트 또는 서브 스트로크와 관련된 이웃 특징부는 서브 스트로크와 서브 스트로크에 이웃하는 콘텐츠 사이의 공간적 관계를 나타낸다. 이러한 정보는 상이한 제스처 스트로크들 사이의 모호성을 제거하는데 유용하다. 예를 들어, 도 6에 도시된 바와 같이, 취소선 제스처 스트로크와 밑줄 제스처 스트로크는 유사한 형상 및 이러한 유사한 기하학적 특징부를 가질 수 있다. 그러나, 이웃하는 콘텐츠에 대한 스트로크의 위치가 고려될 때(즉, 스트로크가 문자 또는 단어의 기준선 아래에 있는지 여부에 따라), 2개의 제스처 스트로크 사이의 구별이 훨씬 용이하게 된다.
실시형태에서, 이웃 특징부를 생성하는 단계는,
서브 스트로크와 서브 스트로크에 이웃하는 텍스트 콘텐츠 사이의 공간적 관계를 나타내는 텍스트 이웃 특징부;
서브 스트로크와 서브 스트로크에 이웃하는 수학적 콘텐츠 사이의 공간적 관계를 나타내는 수학적 이웃 특징부; 및
서브 스트로크와 서브 스트로크에 이웃하는 비-텍스트 콘텐츠 사이의 공간적 관계를 나타내는 비-텍스트 이웃 특징부
중 하나 이상을 생성하는 단계를 포함한다.
위에서 언급된 바와 같이, 실시형태에서, 서브 스트로크에 이웃하는 콘텐츠는 서브 스트로크에 대해 집중된 윈도우를 교차하는 콘텐츠이다. 윈도우 크기는 다양한 방식으로 구성될 수 있다. 한 실시형태에서, 윈도우 크기는 전자 문서에서의 문자 및/또는 기호의 평균 높이에 비례하여 설정된다. 다른 실시형태에서, 전자 문서가 문자 또는 기호를 포함하지 않으면, 윈도우 크기는 (디바이스의 화면 크기에 대응할 수 있는) 터치-기반 사용자 인터페이스의 크기에 비례하여 설정된다.
실시형태에서, 이웃 특징부의 3가지 유형(텍스트, 수학적 및 비-텍스트)은 서로 독립적이다. 각각의 유형은 그 자체의 고정된 수의 특징부를 가질 수 있다.
도 7은 본 발명의 실시형태에 따른 서브 스트로크에 대한 텍스트 이웃 특징부를 생성하기 위한 예시적인 접근법을 도시한다. 도 7에 도시된 바와 같이, 접근법은 서브 스트로크에서 집중된 이웃 윈도우를 선택하고, 그런 다음 이웃 윈도우를 서브 스트로크 중심 주위의 4개 영역으로 분할하는 단계를 포함한다. 4개의 영역은 이웃 윈도우의 교차 대각선들에 의해 결정될 수 있다.
다음으로, 서브 스트로크의 좌측, 우측, 상단 및 하단에 위치된 4개의 가장 근접한 문자 및/또는 4개의 가장 근접한 단어(선택된 윈도우 내에 적어도 부분적으로 포함)가 식별된다. 예를 들어, US 9,875,254 B2에 설명된 바와 같은 텍스트 인식기는 가장 근접한 문자 및/또는 단어를 식별하는데 사용될 수 있다. 도 7의 예에서, 선택된 이웃 윈도우는 문자만을 포함하여, 이와 같이 문자만이 식별된다. 구체적으로, 좌측 문자, 상단 문자 및 우측 문자가 식별된다.
다음으로, 식별된 각각의 문자 또는 단어에 대해, 특징부의 그룹이 결정된다. 실시형태에서, 특징부의 그룹은 서브 스트로크의 중심과 식별된 문자 또는 단어의 중심(식별된 문자 또는 단어의 중심은 식별된 문자 또는 단어의 경계 상자의 중심임) 사이의 거리; 상기 거리의 X 및 Y 축 상에서의 각각의 돌출부; 서브 스트로크의 중심과 식별된 문자 또는 단어의 기준선 사이의 거리; 및 서브 스트로크의 중심과 식별된 문자 또는 단어의 중간선 사이의 거리를 포함한다. 기준선은 텍스트의 선이 놓이는 가상선이다. 중간선은 모든 비-오름차순 문자(non-ascending letter)가 멈추는 가상선이다. 실시형태에서, 기준선 및 중간선은 텍스트 인식기에 의해 결정되고 제스처 인식기에 제공된다.
실시형태에서, 어떠한 문자 또는 단어도 주어진 영역에서 식별되지 않으면(예를 들어, 도 7의 예에서 어떠한 하단 문자 또는 단어가 없으면), 디폴트 값은 영역에 대응하는 텍스트 이웃 특징부에 대해 사용된다.
본 명세서의 교시에 기초하여 당업자에 의해 이해되는 바와 같이, 이웃 윈도우는 도 7에 도시된 바와 같은 정사각형 윈도우로 제한되지 않고 직사각형일 수 있다. 또한, 이웃 윈도우는 다른 실시형태에서 4개보다 많거나 적은 영역으로 분할될 수 있다. 이와 같이, 4개보다 많거나 적은 가장 근접한 문자 및/또는 4개의 가장 근접한 단어가 식별될 수 있다.
서브 스트로크에 대한 수학적 이웃 특징부 및 비-텍스트 이웃 특징부는 또한 텍스트 콘텐츠 대신 식별된 수학적 또는 비-텍스트 콘텐츠와 함께 전술한 접근법에 따라서 생성될 수 있다.
실시형태에서, 수학적 이웃 특징부에 대해, 서브 스트로크에 가장 근접한 수학적 기호(예를 들어, 서브 스트로크의 좌측, 우측, 상단 및 하단에서 가장 근접한 4개)가 식별된다. 예를 들어, WO 2017/008896 A1에 설명된 바와 같은 수학 기호 인식기는 가장 근접한 수학 기호를 식별하는데 사용될 수 있다. 식별된 기호별로 결정된 특징부는 서브 스트로크의 중심과 기호의 중심 사이의 거리의 X 및 Y 축에서의 돌출부를 포함할 수 있다. 상기와 같이, 영역이 수학 기호를 포함하지 않을 때, 대응하는 특징부는 디폴트 값으로 설정된다.
실시형태에서, 비-텍스트 이웃 특징부에 대해, 서브 스트로크에 가장 근접한 형상 및 프리미티브(primitive)(형상의 일부)(예를 들어, 서브 스트로크의 좌측, 우측, 상단 및 하단에서 가장 근접한 4개)가 식별된다. 예를 들어, WO 2017/067652 A1 또는 WO 2017/067653 A1에 설명된 바와 같은 형상 인식기는 가장 근접한 형상 및 프리미티브를 식별하는데 사용될 수 있다. 식별된 형상 또는 프리미티브별로 결정된 특징부는 서브 스트로크의 중심과 형상 또는 프리미티브의 중심 사이의 거리를 포함할 수 있다. 상기와 같이, 영역이 형상 또는 프리미티브를 포함하지 않을 때, 대응하는 특징부는 디폴트 값으로 설정된다.
실시형태에서, 세그먼트 또는 서브 스트로크와 관련된 특징부 벡터는 전술한 바와 같이 기하학적 특징부 및 이웃 특징부 모두를 포함한다. 이와 같이, 특징부 벡터는 서브 스트로크의 형상과, 서브 스트로크가 드로잉되는 콘텐츠 모두를 기술한다. 이들 두 가지 유형의 정보는 상호 보완적이며, 제스처 스트로크 또는 비-제스처 스트로크로서 스트로크의 매우 정확한 인식을 허용한다.
단계(106)의 말기에서, 전체 스트로크는 복수의 연속적인 특징부 벡터(각각의 벡터는 스트로크의 각각의 서브 스트로크에 대응한다)에 의해 표현된다.
도 1로 돌아가서, 단계(108)에서, 프로세스(100)는 스트로크가 비-제스처 스트로크일 확률 및 스트로크가 제스처 스트로크의 세트의 주어진 제스처 스트로크인 확률을 포함하는 확률들의 벡터를 생성하기 위해, 스트로크를 나타내는 입력 시퀀스로서 복수의 특징부 벡터를 훈련된 스트로크 분류기에 적용하는 단계를 포함한다. 위에서 언급된 바와 같이, 제스처 스트로크의 세트는 스크래치-아웃, 취소선, 분할, 합침, 둘러싸기 및 밑줄과 같은 사전 정의된 제스처 스트로크를 포함한다. 실시형태에서, 단계(108)는 스트로크가 제스처 스트로크의 세트의 모든 제스처 스트로크에 대한 제스처 스트로크일 각각의 확률(예를 들어, 스트로크가 스크래치-아웃 제스처 스트로크일 확률, 스트로크가 취소선 제스처 스트로크일 확률 등)을 결정하는 단계를 포함할 수 있다.
도 8은 본 발명의 실시형태에 따른 예시적인 스트로크 분류기(800)를 도시한다. 위에서 언급된 바와 같이, 스트로크 분류기는 추론을 위해 사용하기 전에 훈련된다. 스트로크 분류기를 훈련시키는데 사용될 수 있는 예시적인 접근법은 아래에서 자세히 설명한다.
도 8을 참조하면, 예시적인 스트로크 분류기(800)는 재발성 양방향 장단기 기억(BLSTM) 뉴럴 네트워크(802)를 포함한다. 뉴럴 네트워크(802)는 역방향 층(804) 및 순방향 층(806)을 포함한다. 역방향 층(804) 및 순방향 층(806)을 위해 사용될 수 있는 기능의 상세한 설명은 문헌["Graves, A., & Schmidhuber, J. (2005), Framewise phoneme classification with bidirectional LSTM and other neural network architectures, Neural networks, 18(5-6), 602-610"; "S. Hochreiter and J. Schmidhuber, Long Short-Term Memory, NC, 9(8):1735-1780, 1997," 및 "F. Gers, N. Schraudolph, and J. Schmidhuber, Learning precise timing with LSTM recurrent networks, Journal of Machine Learning Research, 3:115-143, 2002"]에서 찾을 수 있다. 역방향 층(804) 및 순방향 층(806)의 구현은 당업자의 기술 및 지식 범위 내에 있으므로, 본 명세서에서 설명되지 않을 것이다.
재발성 BLSTM 뉴럴 네트워크의 사용은, 장기적 종속성을 학습하고 시간 경과에 따라 정보를 기억할 수 있게 하는 메모리 블록을 네트워크가 포함한다는 것을 의미한다. 제스처 인식의 맥락에서, 이러한 네트워크는 스트로크 분류기가 일련의 벡터(전체 스트로크)를 처리하고 연속적인 서브 스트로크 사이의 시간적 종속성을 설명하는(즉, 스트로크 경로의 세부 사항 기억하는) 것을 허용한다.
또한, 예시적인 스트로크 분류기(800)는 역방향 층(804) 및 순방향 층(806)의 출력에 기초하여 확률(810-1, 810-2,…, 810-k)의 세트를 생성하도록 구성된 출력 층(808)을 포함한다. 실시 형태에서, 출력 층(808)은 크로스 엔트로피 목적 함수(cross-entropy objective function), 및 K개 중 1개의 분류 작업을 위한 표준 구현인 소프트맥스 활성화 함수(softmax activation function)를 사용하여 구현될 수 있다. 이러한 구현에 대한 상세한 설명은, 예를 들어, 문헌[C. Bishop. Neural Networks for Pattern Recognition. Oxford University Press, Inc., 1995]에서 찾을 수 있다.
동작시에, 스트로크를 나타내는 복수의 특징부 벡터(t0,…, tn)를 포함하는 시퀀스는 뉴럴 네트워크(802)에 대한 입력 시퀀스로서 적용된다. 도 8에 도시되고 또한 위에서 설명된 바와 같이, (서브 스트로크를 나타내는) 각각의 특징부 벡터(ti)는 (위에 설명된 기하학적 특징부에 대응하는) 기하학적 설명자 및 (텍스트, 수학, 및 비-텍스트 이웃 특징부를 포함하는 이웃 특징부에 대응하는) 이웃 설명자를 포함한다.
입력 시퀀스는 네트워크(802)의 양방향성 덕분에 뉴럴 네트워크(802)에 순방향 및 역방향 모두로 공급된다. 실시형태에서, 입력 시퀀스는 순방향 층(806)으로 원래의 순서로(즉, t0으로, 그런 다음 t1, 그런 다음 t2 등으로), 그리고 역방향 층(804)으로 역순으로(즉, tn으로, 그런 다음 tn-1, 그런 다음 tn-2 등으로) 공급된다. 이러한 것은 이전 정보(과거의 서브 스트로크에 관한 정보)를 고려하고 다음의 정보(다음의 서브 스트로크에 관한 정보)를 모두 고려하는 것에 의해 네트워크(802)가 스트로크 데이터를 처리하는 것을 허용한다.
출력 층(808)은 역방향 층(804) 및 순방향 층(806)의 출력을 수신하고, 확률(810-1, 810-2,…, 810-k)의 세트를 생성한다. 실시형태에서, 출력 층(808)은 출력 층(808)의 노드들의 활성화 레벨을 획득하기 위해 두 층(804 및 806)으로부터의 활성화 레벨들을 합산한다. 출력 층(808)의 노드들의 활성화 레벨은 그런 다음 1이 되도록 정규화된다. 이와 같이, 이러한 것들은 확률(810-1, 810-2,…, 810-k)의 세트를 벡터에 제공한다. 실시형태에서, 도 8에 도시된 바와 같이, 확률(801-1)은 스트로크가 추가 스트로크 또는 비-제스처 스트로크일 확률에 대응한다. 확률(810-2, …, 810-k)은 스트로크가 제스처 스트로크의 세트의 각각의 제스처 스트로크일 확률에 각각 대응한다.
실시형태에서, 제스처는 특정 제스처 스트로크와 관련된 확률이 확률(810-1, 810-2,…, 810-k)의 세트 중에서 최대 확률을 나타내면 특정 제스처 스트로크(예를 들어, 밑줄)인 것으로 인식된다. 그렇지 않고, 비-제스처 스트로크와 관련된 확률이 최대이면, 스트로크는 비-제스처 스트로크 또는 추가 스트로크로서 간주될 것이다.
실시형태에서, 스트로크 분류기는 스트로크 인식 작업을 위해 특별히 맞춰진 훈련 데이터의 세트에 기초하여 훈련된다. 스트로크 분류기가 제스처 스트로크와 비 제스처 스트로크를 구별하도록 의도된 것임에 따라서, 실시형태에서, 훈련 데이터는 제스처 스트로크(예를 들어, 밑줄, 취소선 등)과 비-제스처 스트로크(예를 들어, 텍스트, 수학 기호, 비-텍스트 스트로크) 모두를 포함한다.
실시형태에서, 훈련 데이터는 실제 사용 사례를 모방하는 것에 의해 구축된다. 특히, 데이터 수집을 위한 전용 프로토콜을 사용하여, 사용자는 핸드라이팅된 전자 노트를 생성하기 위해 노트를 복사하도록 요구받는다(원본 노트는 핸드라이팅되거나 조판될 수 있다). 사용자에 의해 생성된 원본 노트 및 그 핸드라이팅된 전자 사본의 예가 도 9A 및 도 9B에 각각 도시되어 있다. 그런 다음, 사용자에게는 추가 스트로크가 적용된 원본 노트의 다른 버전이 나타나고(추가 스트로크는 노트에서의 다른 유형의 콘텐츠에 적용될 수 있음), 이러한 버전을 재현하도록 요구받는다. 예를 들어, 도 9C는 일부 콘텐츠가 강조 표시된 도 9A의 원본 노트의 다른 버전을 도시한다. 도 9D에서, 사용자는 강조 표시된 콘텐츠에 이중 밑줄을 긋는 것에 의해 이러한 버전을 재현한다. 스트로크 데이터는 사용자가 훈련에 사용될 변경된 콘텐츠를 재현함에 따라서 캡처된다.
위의 접근법을 사용하여, 다양한 레이아웃(단순, 다중 열, 구분 기호 유무, 제목 유무 등)과 다양한 콘텐츠 유형(텍스트, 표, 다이어그램, 방정식, 기하학 등)이 있는 노트가 생성될 수 있다. 추가적으로, 다양한 언어와 스크립트가 사용될 수 있다. 예를 들어, 상이한 국가들의 사용자는 모국어로 노트를 복사하고 이러한 노트에 스트로크를 수행하도록 초대될 수 있다.
추가적으로, 상이한 터치-기반 디바이스(예를 들어, iPad, Surface 등)가 노트를 생성하기 위해 사용될 수 있다. 이러한 것은 분류기가 상이한 잉크 캡처 특성(예를 들어, 상이한 샘플링 속도, 상이한 타임스탬프 생성 방법, 적용된 상이한 압력 레벨 등)을 사용하여 생성된 데이터에 대해 훈련되는 것을 가능하게 하고, 이는 분류를 더욱 독립적인 디바이스로 만든다.
훈련 데이터는 또한 조판 문서에서 수행하도록 스트로크 분류기를 훈련시키기 위해 생성된 노트를 포함할 수 있다. 실시형태에서, 이들 노트는 핸드라이팅된 노트에서의 각각의 잉크 요소(문자, 기호, 형상 또는 프리미티브)를 잉크 요소의 경로에 대응하는 각각의 모델로 대체하는 것에 의해 생성된 핸드라이팅된 노트를 조판 버전으로 변환하는 것에 의해 생성된다. 실시형태에서, 각각의 잉크 요소에 대해, 이것의 대응하는 조판 모델은 원본 잉크 요소의 경계 박스 내로 맞춰지도록 재조정되고, 그런 다음 대응하는 잉크 요소의 기준선 및 중심에 대해 위치된다. 도 10은 이러한 접근법에 따라서 생성된 예시적인 핸드라이팅된 노트 및 대응하는 조판 버전을 도시한다.
핸드라이팅된 노트에 대해 캡처된 스트로크 데이터는 그런 다음 각각의 조판 버전에 적용된다.
도 11은 본 발명의 실시형태를 구현하는데 사용될 수 있는 컴퓨터 디바이스(1100)를 도시한다. 도 11에 도시된 바와 같이, 컴퓨터 디바이스(1100)는 프로세서(1102), 읽기 전용 메모리(ROM)(1104), 랜덤 액세스 메모리(RAM)(1106), 비휘발성 메모리(1108), 및 통신 수단(1110)을 포함한다. 컴퓨터 디바이스(1100)의 ROM(1104)은 프로세서(1102)에 의해 실행될 때, 프로세서(1102)가 본 발명의 방법을 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램을 저장할 수 있다. 방법은 도 1에서 전술한 단계들 중 하나 이상을 포함할 수 있다.
추가 변형예
본 발명이 특정한 특정 실시형태를 참조하여 위에서 설명되었지만, 본 발명은 특정 실시형태의 특수성에 의해 제한되지 않는다는 것이 이해될 것이다. 수많은 변형, 변경 및 개발이 첨부된 청구범위의 범주 내에서 전술한 실시형태에서 이루어질 수 있다.

Claims (15)

  1. 터치-기반 사용자 인터페이스를 통해 전자 문서에 적용되는 사용자 입력에서 제스처 스트로크를 인식하는 방법으로서,
    사용자 입력에 기초하여 생성된 데이터를 수신하는 단계로서, 상기 데이터는 스트로크를 나타내고 직사각형 좌표 공간에서의 복수의 잉크 포인트, 및 상기 복수의 잉크 포인트와 각각 관련된 복수의 타임스탬프를 포함하는, 상기 데이터를 수신하는 단계(100);
    상기 복수의 잉크 포인트를, 각각이 상기 스트로크의 각각의 서브 스트로크에 대응하고 상기 복수의 잉크 포인트의 각각의 서브 세트를 포함하는 복수의 세그먼트로 분할하는 단계(104);
    상기 복수의 세그먼트에 각각 기초하여 복수의 특징부 벡터를 생성하는 단계(106); 및
    상기 스트로크가 비-제스처 스트로크일 확률 및 상기 스트로크가 제스처 스트로크의 세트의 주어진 제스처 스트로크일 확률을 포함하는 확률들의 벡터를 생성하기 위해 훈련된 스트로크 분류기에, 상기 스트로크를 나타내는 입력 시퀀스로서 복수의 특징부 벡터를 적용하는 단계(108)
    를 포함하는, 제스처 스트로크를 인식하는 방법.
  2. 제1항에 있어서,
    상기 복수의 타임스탬프에 기초하여 복수의 정정된 타임스탬프를 생성하는 단계를 포함하는, 제스처 스트로크를 인식하는 방법.
  3. 제2항에 있어서, 상기 복수의 타임스탬프에 기초하여 상기 복수의 정정된 타임스탬프를 생성하는 단계는,
    상기 복수의 잉크 포인트의 원본 타임스탬프 곡선(304)을 근사화하는 함수(302)를 결정하는 단계; 및
    결정된 함수(302)에 따라서 획득된 값으로 상기 복수의 타임스탬프의 타임스탬프를 변경하는 단계
    를 포함하는, 제스처 스트로크를 인식하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    제2 복수의 잉크 포인트 및 관련된 제2 복수의 타임스탬프를 생성하기 위해 상기 복수의 잉크 포인트를 재샘플링하는 단계를 포함하며, 상기 제2 복수의 타임스탬프는 연속적인 타임스탬프 사이의 고정된 지속 시간을 특징으로 하는, 제스처 스트로크를 인식하는 방법.
  5. 제4항에 있어서, 상기 재샘플링하는 단계는 상기 제2 복수의 잉크 포인트 및 상기 관련된 제2 복수의 타임스탬프를 생성하기 위해 상기 복수의 잉크 포인트 및 상기 관련된 복수의 타임스탬프를 보간하는 단계를 포함하는, 제스처 스트로크를 인식하는 방법.
  6. 제4항 또는 제5항에 있어서, 상기 분할하는 단계는 상기 복수의 세그먼트가 동일한 지속 시간을 갖도록 상기 복수의 잉크 포인트를 분할하는 단계를 포함하는, 제스처 스트로크를 인식하는 방법.
  7. 제6항에 있어서, 상기 복수의 세그먼트는 동일한 수의 잉크 포인트를 가지는, 제스처 스트로크를 인식하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 복수의 세그먼트에 각각 기초하여 상기 복수의 특징부 벡터를 생성하는 단계는, 각각의 서브 스트로크에 대응하는 상기 복수의 세그먼트의 각각의 세그먼트에 대해,
    각각의 서브 스트로크의 형상을 나타내는 기하학적 특징부를 생성하는 단계; 및
    상기 서브 스트로크와 상기 서브 스트로크에 이웃하는 콘텐츠 사이의 공간적 관계를 나타내는 이웃 특징부를 생성하는 단계
    를 포함하되, 상기 서브 스트로크에 이웃하는 콘텐츠는 상기 서브 스트로크에 대해 집중된 윈도우를 교차하는, 제스처 스트로크를 인식하는 방법.
  9. 제8항에 있어서, 상기 기하학적 특징부를 생성하는 단계는 상기 서브 스트로크에 대한 통계적 서브 스트로크 기하학적 특징부 및/또는 전역적 서브 스트로크 기하학적 특징부를 생성하는 단계를 포함하는, 제스처 스트로크를 인식하는 방법.
  10. 제9항에 있어서, 상기 통계적 서브 스트로크 기하학적 특징부를 생성하는 단계는, 상기 기하학적 특징부의 세트의 각각의 기하학적 특징부에 대해,
    각각의 서브 스트로크에 대응하는 상기 세그먼트의 잉크 포인트에 대한 각각의 값을 결정하는 단계; 및
    상기 결정된 각각의 값에 기초하여 하나 이상의 통계적 측정치를 계산하는 단계
    를 포함하는, 제스처 스트로크를 인식하는 방법.
  11. 제9항 또는 제10항에 있어서, 상기 서브 스트로크에 대한 전역적 서브 스트로크 기하학적 특징부를 생성하는 단계는 상기 서브 스트로크 길이, 상기 서브 스트로크 내에서의 단일 잉크 포인트의 개수, 및 상기 서브 스트로크 길이와 상기 서브 스트로크의 첫 번째 및 마지막 잉크 포인트 사이의 거리 사이의 비율 중 하나 이상을 계산하는 단계를 포함하는, 제스처 스트로크를 인식하는 방법.
  12. 제8항 내지 제11항 중 어느 한 항에 있어서, 상기 이웃 특징부를 생성하는 단계는,
    상기 서브 스트로크와 상기 서브 스트로크에 이웃하는 텍스트 콘텐츠 사이의 공간적 관계를 나타내는 텍스트 이웃 특징부;
    상기 서브 스트로크와 상기 서브 스트로크에 이웃하는 수학적 콘텐츠 사이의 공간적 관계를 나타내는 수학적 이웃 특징부; 및
    상기 서브 스트로크와 상기 서브 스트로크에 이웃하는 비-텍스트 콘텐츠 사이의 공간적 관계를 나타내는 비-텍스트 이웃 특징부
    중 하나 이상을 생성하는 단계를 포함하는, 제스처 스트로크를 인식하는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 전자 문서는 핸드라이팅된 콘텐츠 또는 조판 콘텐츠를 포함하는, 제스처 스트로크를 인식하는 방법.
  14. 컴퓨팅 디바이스로서,
    프로세서(1102); 및
    상기 프로세서(1102)에 의해 실행될 때, 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하도록 상기 프로세서(1102)를 구성하는 명령어를 저장하는 메모리(1104)
    를 포함하는, 컴퓨팅 디바이스.
  15. 컴퓨터 프로그램으로서,
    프로세서(1102)에 의해 실행될 때, 제1항 내지 제13항 중 어느 한 항에 따른 방법을 상기 프로세서(1102)가 실행하게 하는 명령어를 포함하는 컴퓨터 프로그램.
KR1020227015612A 2019-11-29 2020-11-26 터치-기반 사용자 인터페이스 입력에서의 제스처 스트로크 인식 KR20220103102A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP19306542.2A EP3828685B1 (en) 2019-11-29 2019-11-29 Gesture stroke recognition in touch-based user interface input
EP19306542.2 2019-11-29
PCT/EP2020/083495 WO2021105279A1 (en) 2019-11-29 2020-11-26 Gesture stroke recognition in touch-based user interface input

Publications (1)

Publication Number Publication Date
KR20220103102A true KR20220103102A (ko) 2022-07-21

Family

ID=68917846

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227015612A KR20220103102A (ko) 2019-11-29 2020-11-26 터치-기반 사용자 인터페이스 입력에서의 제스처 스트로크 인식

Country Status (6)

Country Link
US (1) US20230008529A1 (ko)
EP (2) EP3828685B1 (ko)
JP (1) JP7450868B2 (ko)
KR (1) KR20220103102A (ko)
CN (1) CN114730241B (ko)
WO (1) WO2021105279A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113780463B (zh) * 2021-09-24 2023-09-05 北京航空航天大学 一种基于深度神经网络的多头归一化长尾分类方法
US11983327B2 (en) * 2021-10-06 2024-05-14 Fotonation Limited Method for identifying a gesture
CN117519515B (zh) * 2024-01-05 2024-05-28 深圳市方成教学设备有限公司 一种用于记忆黑板的文字识别方法、装置和记忆黑板

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2050500A (en) * 1998-12-11 2000-06-26 Sunhawk Corporation Method and system for recognizing musical notations using a compass-direction user interface
US6393395B1 (en) * 1999-01-07 2002-05-21 Microsoft Corporation Handwriting and speech recognizer using neural network with separate start and continuation output scores
US20040054701A1 (en) * 2002-03-01 2004-03-18 Garst Peter F. Modeless gesture driven editor for handwritten mathematical expressions
FR2880709B1 (fr) 2005-01-11 2014-04-25 Vision Objects Procede de recherche, reconnaissance et localisation dans l'encre, dispositif, programme et langage correspondants
US7551779B2 (en) * 2005-03-17 2009-06-23 Microsoft Corporation Word or character boundary-based scratch-out gesture recognition
US20140363082A1 (en) 2013-06-09 2014-12-11 Apple Inc. Integrating stroke-distribution information into spatial feature extraction for automatic handwriting recognition
CN109614845B (zh) 2013-06-09 2023-08-04 苹果公司 管理实时手写识别
US9881224B2 (en) 2013-12-17 2018-01-30 Microsoft Technology Licensing, Llc User interface for overlapping handwritten text input
US9904847B2 (en) 2015-07-10 2018-02-27 Myscript System for recognizing multiple object input and method and product for same
US10417491B2 (en) 2015-10-19 2019-09-17 Myscript System and method for recognition of handwritten diagram connectors
US10643067B2 (en) 2015-10-19 2020-05-05 Myscript System and method of handwriting recognition in diagrams
US10082951B2 (en) 2016-01-07 2018-09-25 Myscript System and method for digital ink interactivity
US10747949B2 (en) * 2018-04-13 2020-08-18 Microsoft Technology Licensing, Llc Presenting an overlay canvas to ink edit typed text

Also Published As

Publication number Publication date
JP2023503272A (ja) 2023-01-27
EP4130966A1 (en) 2023-02-08
CN114730241B (zh) 2023-06-30
EP3828685A1 (en) 2021-06-02
WO2021105279A1 (en) 2021-06-03
CN114730241A (zh) 2022-07-08
JP7450868B2 (ja) 2024-03-18
US20230008529A1 (en) 2023-01-12
EP3828685B1 (en) 2022-09-28

Similar Documents

Publication Publication Date Title
US10664695B2 (en) System and method for managing digital ink typesetting
CN109614944B (zh) 一种数学公式识别方法、装置、设备及可读存储介质
US5454046A (en) Universal symbolic handwriting recognition system
US20230008529A1 (en) Gesture stroke recognition in touch-based user interface input
CN102449640B (zh) 识别手写单词
Biadsy et al. Segmentation-free online arabic handwriting recognition
CN111507330B (zh) 习题识别方法、装置、电子设备及存储介质
US11587275B2 (en) Method for generating a handwriting vector
JPH05324903A (ja) パターン認識装置
KR102347554B1 (ko) 디지털 잉크를 뷰티파잉하기 위한 시스템 및 방법
CN108701215B (zh) 用于识别多对象结构的系统和方法
US10579868B2 (en) System and method for recognition of objects from ink elements
CN111488732B (zh) 一种变形关键词检测方法、系统及相关设备
EP3491580B1 (en) System and method for beautifying superimposed digital ink
US20050276480A1 (en) Handwritten input for Asian languages
EP4086744A1 (en) Gesture stroke recognition in touch-based user interface input
KR101667910B1 (ko) 디지털 인공 필기 데이터를 생성하는 방법, 장치 및 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램
Sevilla et al. Automatic signwriting recognition: Combining machine learning and expert knowledge to solve a novel problem
KR101669821B1 (ko) 필기 데이터 베이스를 생성하는 방법, 장치 및 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램
JP5867227B2 (ja) 文字認識用学習データ生成装置、文字認識装置、およびプログラム
Sevillaa et al. Automatic SignWriting Recognition
CN116959000A (zh) 笔迹识别方法、装置、计算机设备及存储介质
JPH04336686A (ja) 手書文字認識装置
JPH0896082A (ja) 文字認識装置及び文字認識方法
JPH0773172A (ja) データ加工方法、文字認識方法及び座標入力装置

Legal Events

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