KR102015068B1 - 프리-필터 분류를 사용한 필기 인식 향상 - Google Patents

프리-필터 분류를 사용한 필기 인식 향상 Download PDF

Info

Publication number
KR102015068B1
KR102015068B1 KR1020177030972A KR20177030972A KR102015068B1 KR 102015068 B1 KR102015068 B1 KR 102015068B1 KR 1020177030972 A KR1020177030972 A KR 1020177030972A KR 20177030972 A KR20177030972 A KR 20177030972A KR 102015068 B1 KR102015068 B1 KR 102015068B1
Authority
KR
South Korea
Prior art keywords
strokes
input
recognition process
represent
language
Prior art date
Application number
KR1020177030972A
Other languages
English (en)
Other versions
KR20170131630A (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 KR20170131630A publication Critical patent/KR20170131630A/ko
Application granted granted Critical
Publication of KR102015068B1 publication Critical patent/KR102015068B1/ko

Links

Images

Classifications

    • G06K9/00422
    • 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
    • G06F17/275
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/285Selection of pattern recognition techniques, e.g. of classifiers in a multi-classifier system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/263Language identification
    • G06K9/222
    • G06K9/6227
    • G06K9/6807
    • 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/24Character recognition characterised by the processing or recognition method
    • G06V30/242Division of the character sequences into groups prior to recognition; Selection of dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Character Discrimination (AREA)

Abstract

방법들, 시스템들 및 디바이스들은 필기 검출을 개선하기 위한 컴퓨터 저장 매체상에서 인코딩된 컴퓨터 프로그램을 포함한다. 일 양상에서, 방법은 하나 이상의 스트로크들을 표시하는 데이터를 수신하는 단계와, 하나 이상의 스트로크들의 하나 이상의 특징들을 결정하는 단계와, 하나 이상의 스트로크들이 특징들 중 적어도 하나 이상에 기초하여 문자소를 나타낼 가능성이 있는지를 결정하는 단계와, (i) 주어진 한 세트의 입력 스트로크들에 대해, 특정 언어와 연관된 하나 이상의 문자소들을 출력하도록 각기 훈련된 다수의 인식기들을 사용하여 입력 스트로크들을 처리하는 다중 언어 인식 프로세스, 및 (ii) 주어진 한 세트의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련된 범용 인식기를 사용하여 입력 스트로크들을 처리하는 단일 문자 범용 인식 프로세스 중에서 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계와, 그리고 데이터를 특정 인식 프로세스에 제공하는 단계를 포함한다.

Description

프리-필터 분류를 사용한 필기 인식 향상
본 명세서는 필기 인식에 관한 것이다.
사용자들은 필기 인식(handwriting recognition, HR) 시스템의 인식 능력을 실험하기 위해, 흔히 예컨대 기호, 갈겨쓴 것 또는 낙서를 그림으로써 필기 입력을 제공한다. 사용자가 필기 입력을 제공할 때, HR 시스템들은 입력의 스트로크(stroke)들을 유효한 문자들의 시퀀스로 해석하려 시도한다.
HR 시스템으로의 필기 입력에 상이한 유형의 기호들이 포함될 때, HR 시스템들은 각종의 잡다한 기호들에 대한 지원이 부족하기 때문에 또는 HR이 빠르고 자원 효율적인 방식으로 수행되어야 한다는 제약 때문에, 종종 빈약한 인식 능력을 보여준다. 각양각색의 유형의 기호들이 입력되는 경우, HR 시스템들은 전자 디바이스들에 텍스트를 입력하는 방법처럼 필기 입력을 사용하는 사용자에게 종종 가치가 없는 무의미한 인식 결과들을 출력할 수 있다. 그뿐만 아니라, 필기 입력에 포함된 패턴들인, 낙서들을 나타내는 입력 스트로크들에 대해 인식 프로세스가 수행될 때의 처리는 그 입력이 많은 스트로크를 포함할 수 있기 때문에 그리고 스트로크들의 배열이 인식된 기호에 쉽게 대응하지 않을 수 있기 때문에 계산상 비싸질 수 있다.
따라서, 본 명세서에 기술된 주제의 하나의 혁신적인 양상은 다중 언어 인식 시스템들을 사용하여 초기에 상이한 유형들의 필기 입력을 분류한 다음, 인식 결과를 생성하는데 더 효과적인 특정 인식 프로세스들을 사용하여 상이한 유형들의 필기 입력을 처리하는 방법들에서 구현될 수 있다. 예를 들어, 입력 스트로크들의 특징들은 분석되어, 스트로크들이 언어의 표기 체계를 서술하는 데 사용되는 가장 작은 단위인 문자소(grapheme)를 나타내는지 또는 스트로크들이 필기한 스트로크들 또는 점들의 무작위하게 연결된 낙서를 나타내는지를 결정할 수 있다. 그런 다음 입력은 스트로크들이 문자소 또는 낙서를 나타내는지에 기초하여 서로 다른 인식 프로세스들을 사용하여 처리될 수 있다. 본 명세서는 일반적으로 입력 스트로크들이 문자소를 나타내는지를 결정하는 것을 포함하는 특정 구현을 기술하지만, 다른 구현들에서 방법들은 입력 스트로크들이 상형 문자들(glyphs), 대필 문자들(allographs), 문자들(characters), 기호들 또는 그림들과 같은 다른 인쇄상의 특징들을 나타내는지를 결정하는 것을 포함할 수 있다.
필기 입력 분류 및 필터링은 HR 시스템의 전반적인 인식 성능을 개선하는데 사용되어 사용자 경험을 향상시킬 수 있다. 예를 들어, 인식 결과를 생성하는 시간은 상이한 유형들의 필기 입력, 예를 들면, 상이한 언어들에 알맞은 특정 인식 프로세스들을 사용함으로써 줄어들 수 있다. 다른 예들에서, 인식 결과를 생성하는데 더 적은 계산 자원들이 사용될 수 있으며, 더 정확한 인식 결과들이 제공될 수 있다. 특히, 필기 입력 분류 및 필터링은 텍스트 입력에 비해 보통 인식하기가 더 어려운 그림들 및 기호들과 같은 특이한 필기 입력을 처리하는데 사용될 수도 있다.
구현들은 다음과 같은 특징들 중 하나 이상을 포함할 수 있다. 예를 들어, 컴퓨터로 구현되는 방법은: 하나 이상의 스트로크들을 표시하는 데이터를 수신하는 단계와; 하나 이상의 스트로크들의 하나 이상의 특징들을 결정하는 단계와; 하나 이상의 스트로크들이 특징들 중 적어도 하나 이상에 기초하여 하나의 문자소를 나타낼 가능성이 있는지를 결정하는 단계와; 적어도 (i) 주어진 한 세트의 입력 스트로크들에 대해, 특정 언어와 연관된 하나 이상의 문자소들을 출력하도록 각기 훈련된 다수의 인식기를 사용하여 입력 스트로크들을 처리하는 다중 언어 인식 프로세스(multi-language recognition process), 및 (ii) 주어진 한 세트의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련된 범용 인식기를 사용하여 입력 스트로크들을 처리하는 단일 문자 범용 인식 프로세스(single character, universal recognition process) 중에서 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계와; 그리고 특정 인식 프로세스를 사용하여 처리하기 위한 데이터를 제공하는 단계를 포함할 수 있다.
다른 구현들에서, 컴퓨터로 구현되는 방법은: 하나 이상의 스트로크들을 표시하는 데이터를 수신하는 단계와; 하나 이상의 스트로크들의 하나 이상의 특징들을 결정하는 단계와; 하나 이상의 스트로크들이 특징들 중 적어도 하나 이상에 기초하여 문자소를 나타낼 가능성이 있는지를 결정하는 단계와; 적어도 (i) 주어진 한 세트의 입력 스트로크들에 대해, 특정 언어와 연관된 하나 이상의 문자소들을 출력하도록 훈련된 단일의 인식기를 사용하여 입력 스트로크들을 처리하는 단일 언어 인식 프로세스, 및 (ii) 주어진 한 세트의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련된 범용 인식기를 사용하여 입력 스트로크들을 처리하는 단일 문자 범용 인식 프로세스 중에서 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계와; 그리고 특정 인식 프로세스를 사용하여 처리하기 위한 데이터를 제공하는 단계를 포함할 수 있다. 방법은 선택된 인식 프로세스를 사용하여 데이터를 처리하는 단계를 더 포함할 수 있으며, 이에 따라 하나 이상의 스트로크들에 대응하는 하나 이상의 문자들의 유효한 시퀀스를 출력할 수 있다.
다른 버전들은 컴퓨터 저장 디바이스들 상에서 인코딩된 방법들의 액션들을 수행하도록 구성된 대응하는 시스템들 및 컴퓨터 프로그램들을 포함한다.
하나 이상의 구현들은 다음과 같은 선택적인 특징들을 포함할 수 있다. 예를 들어, 일부 구현들에서, 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는 것으로 결정하는 것을 포함하며, 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계는 다중 언어 인식 프로세스를 선택하는 것을 포함한다.
일부 구현들에서, 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 없는 것으로 결정하는 것을 포함하며, 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계는 단일 문자 범용 인식 프로세스를 선택하는 것을 포함한다.
일부 구현들에서, 방법은 다중 언어 인식 프로세스가 또한, 주어진 한 세트의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련된 범용 인식기를 사용하여 입력 스트로크를 처리하는 것을 포함할 수 있다.
일부 구현들에서, 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 하나 이상의 스트로크들이 문자소를 나타낼 가능성을 나타내는 신뢰 점수를 생성하는 것을 포함하며, 특정 인식 프로세스는 적어도 생성된 신뢰 점수에 기초하여 선택된다.
일부 구현들에서, 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계는 하나 이상의 스트로크들을 표시하는 데이터를 출력하는 다수의 인식기들의 서브세트를 선택하는 것을 포함한다.
일부 구현들에서, 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 하나 이상의 스트로크들이 낙서 또는 스크래치를 나타내는지를 결정하는 것을 포함한다.
하나 이상의 구현들의 세부 사항들은 아래에서 첨부 도면 및 상세한 설명에서 제시된다. 다른 잠재적인 특징들 및 장점들은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
이들 양상들의 다른 구현들은 컴퓨터 저장 디바이스들 상에서 인코딩된 방법들의 동작들을 수행하도록 구성된 대응하는 시스템들, 장치들 및 컴퓨터 프로그램들을 포함한다.
도 1은 필기 인식을 개선하기 위한 예시적인 시스템을 도시하는 다이어그램이다.
도 2는 하나 이상의 스트로크들을 표시하는 하나 이상의 데이터를 처리하기 위한 예시적인 프로세스를 도시한다.
도 3은 본 명세서에 기술된 프로세스들 또는 그 일부가 구현될 수 있는 컴퓨팅 디바이스들의 블록도이다.
도면들에서, 동일한 참조 부호들은 전체에서 대응하는 부분들을 나타낸다.
본 명세서에 기술된 주제의 하나의 혁신적인 양상은 상이한 유형들의 필기 입력을 분류 및 필터링하고, 이러한 개별 유형들의 입력들을 더 효율적으로 처리하는 각각의 인식 프로세스들을 사용하여 상이한 유형들의 필기 입력을 처리하는 프로세스들에서 구현될 수 있다.
도 1은 필기 인식을 개선하기 위한 예시적인 시스템(100)을 도시하는 다이어그램이다. 간략히 말해서, 시스템(100)은 입력(102), 예를 들어, 입력들(102a 및 102b)을 수신할 수 있으며, 출력(108), 예를 들어 입력(102)의 필기 인식 결과들인 출력들(108a 및 108b)을 제공할 수 있다. 일부 사례들에서, 시스템(100)은 입력 신뢰 점수(103), 전사본(transcript)(104) 및 전사본 신뢰 점수(106)를 계산할 수 있다. 시스템(100)은 또한 비 텍스트 입력 분류기(120), 인식기 엔진 선택기(130), 언어들(140a-140c)을 위한 다중 언어 인식기들(140), 단일 문자 범용 인식기(150), 언어 선택기(160), 출력 선택기(170)와 같은 컴포넌트들을 포함할 수 있다.
또한, 도 1은 필기 입력 분류 및 필터링의 예를 나타낸다. 예를 들어, 예시적인 사용자들(101a-101b)은 각기 입력 디바이스 스크린들(110a 및 110b)을 통해 입력들(102a 및 102b)을 제공한다. 각기 입력들(102a 및 102b)에 상응하는 인식 결과들인 출력들(108a 및 108b)은 각기 출력 디바이스 스크린들(180a 및 180b) 상에 디스플레이된다.
비 텍스트 입력 분류기(120)는 입력(102)과 같은 필기 입력을 수신하는 HR 시스템 내의 소프트웨어 모듈일 수 있다. 비 텍스트 입력 분류기(120)는 초기에 입력 데이터를 전 처리하고 관련 없는 데이터, 예를 들면, 필기 인식에 부정적인 영향을 미칠 수 있는 신호 잡음, 외래 스트로크들을 제거함으로써 수신된 입력(102)에 포함된 입력 스트로크들의 집합들인 그려진 작업물들(inks)을 분류할 수 있다. 일부 사례들에서, 비 텍스트 입력 분류기(120)는 또한 HR 시스템의 속도 및 정확도를 개선하기 위해 정규화, 샘플링, 평활화 및 잡음 제거와 같은 추가적인 전처리 단계들을 수행할 수 있다.
비 텍스트 입력 분류기(120)는 이후 입력(102)으로부터 특징들을 추출할 수 있다. 예를 들어, 비 텍스트 입력 분류기(120)는 입력(102)에 관한 정보를 추출하기 위해 차원 벡터 필드들을 생성할 수 있다. 예를 들어, 추출된 특징들은 종횡비, 수평 반점(horizontal half point) 위의 픽셀 백분율, 수직 반점(vertical half point) 오른쪽의 픽셀 백분율, 스트로크 수, 스트로크 곡률, 이미지 중심으로부터의 평균 거리, 펜 압력, 펜 속도, 여러 입력 스트로크들 사이의 시점들, 입력을 제공하는 총 시간 또는 필기 방향의 변경들을 포함할 수 있다. 그 다음에, 비 텍스트 입력 분류기(120)는 추출된 특징들을 이용하여 입력(102)의 입력 스트로크들이 특정 특징들에 매핑되는 문자소들을 나타낼 가능성이 있는지를 결정할 수 있다.
일부 구현들에서, 비 텍스트 입력 분류기(120)는 입력(120)을 적어도 하나의 인식 가능한 문자소를 포함하는 것 또는 인식 가능한 문자소를 포함하지 않는 낙서를 포함하는 것 중 어느 하나로서 분류하는 경량의 2-부류 분류기일 수 있다. 예를 들어, 비 텍스트 입력 분류기(120)는 특징 추출에 기초하여 입력 스트로크들을 분류하도록 훈련된 통계 학습 모듈들을 포함하는 신경망일 수 있다. 다른 사례들에서, 비 텍스트 입력 분류기(120)는 한 세트의 훈련 예제들에 기초한 분류 및 회귀 분석을 위해 입력 스트로크들 내의 패턴들을 인식 및 분석하는 연관된 학습 알고리즘들을 포함하는 지원 벡터 머신(support vector machine)일 수 있다.
일부 구현들에서, 비 텍스트 입력 분류기(120)는 입력(102)의 입력 스트로크들이 문자소를 나타낼 가능성을 나타내는 입력 신뢰 점수(103)를 생성할 수 있다. 예를 들어, 입력 신뢰 점수(103)는 입력(102)으로부터 추출된 특징들을 한 세트의 문자소들과 연관된 대표적인 특징들과 비교하는 것에 근거한 것일 수 있다. 일부 사례들에서, 입력(102)에 대해 생성된 입력 신뢰 점수(103)는 문턱 값과 비교되어 그 입력(102)이 문자소 또는 낙서를 나타낼 가능성이 있는지를 결정할 수 있다. 예를 들어, 입력(102)의 입력 신뢰 점수(103)가 문턱 값 아래이면, 입력(102)은 낙서라고 분류될 수 있다. 이러한 사례들에서, 문턱 값은 비 텍스트 입력 분류기(120)가 뜻하지 않게 입력(102)을 낙서라고 분류할 확률이 최소화되도록 훈련 데이터에 기초하여 정확하게 계산될 수 있다. 훈련 데이터는 입력 스트로크들이 낙서를 나타내는지를 표시하는 특정한 그려진 작업물 및 라벨들을 포함할 수 있다.
도 1의 예에 도시된 바와 같이, 사용자들(101a 및 101b)은 각자 입력 모바일 디바이스를 통해 별개의 필기 입력들(102a 및 102b)을 제공하는 사용자들에 대응할 수 있다. 입력 모바일 디바이스는 스마트폰, 태블릿 컴퓨터 또는 랩톱 스크린과 같은 디스플레이 영역 내의 필기 입력의 존재 및 위치를 검출할 수 있는 전자 시각 디스플레이를 갖춘 모든 유형의 모바일 컴퓨팅 디바이스일 수 있다.
입력들(102a 및 102b)은 시스템(100)에 의해 서로 다르게 취급되는 필기 입력들이다. 예를 들어, 예시적인 입력(102a)은 시스템(100)에 의해 문자소를 포함하는 것으로 결정될 가능성이 있는 적어도 하나의 인식 가능한 문자소, 예를 들어 "H" 및 "i"를 나타내는 특징들을 포함하며, 이 특징들은 차후 다중 언어 인식 프로세스(multi-language recognition process)를 사용하여 처리된다. 이와 대조적으로, 예시적인 입력(102b)은 인식 가능한 문자소를 나타내는 특징들을 포함하지 않으며, 이 특징들은 차후 단일의 범용 인식 프로세스(single, universal recognition process)를 사용하여 처리된다.
일단 입력(102)이 비 텍스트 입력 분류기(120)에 의해 분류되면, 입력(102)은 인식기 엔진 선택기(130)로 전달될 수 있다. 인식기 엔진 선택기(130)는 입력(102)을 처리할 특정 인식 프로세스를 선택할 수 있다. 예를 들어, 전술한 바와 같이, 문자소를 나타낼 것으로 분류된 입력들은 언어들(140a-140c)의 다중 언어 인식기들(140)을 포함하는 다중 언어 인식 프로세스에 의해 처리될 수 있는 반면, 문자소를 나타내지 않는 낙서로서 분류되는 입력들은 단일 문자 범용 인식기(150)를 포함하는 단일 문자 범용 인식 프로세스에 의해 처리될 수 있다.
일부 구현들에서, 비 텍스트 입력 분류기(120)와 인식기 엔진 선택기(130)의 동작들은 시스템(100)의 단일의 소프트웨어 컴포넌트에 의해 수행될 수 있다. 예를 들면, 그러한 구현들에서, 인식기 엔진 선택기(130)는 비 텍스트 입력 분류기(120)의 동작들을 수행할 수도 있고, 그 반대로도 가능하다.
입력(102)이 문자소를 나타내는 것으로 분류되는 사례들에서, 입력(102)은 다양한 언어들, 예를 들어 언어들(140a-140c)의 다중 언어 인식기들(140)을 사용하여 처리될 수 있다. 예를 들어, 초기에 인식기 엔진 선택기(130)는 입력(102)에 포함된 언어들(140a-140c)에 대응하는 한 세트의 잠재적인 전사본들(104)을 결정할 수 있다. 그 다음에 검출기 엔진(130)은 입력(102)을 처리하기 위해 각 전사본(104)에 대응하는 특정 언어 인식기들(140)에 질의할 수 있다. 단일의 입력(102)이 상이한 언어들, 예를 들면, "los cat"에 대응하는 다수의 전사본들(104)을 포함하는 일부 사례들에서, 검출기 엔진은 상이한 언어들에 대응하는 다수의 언어 인식기들(140)에 질의할 수 있다. 예를 들어, 인식기 엔진 선택기(130)는 입력(102)의 "los" 부분에 대해서는 스페인어일 수 있는 언어(140a)에 대한 특정 언어 인식기(140)에 질의할 수 있을 뿐만 아니라, 입력(102)의 "cat" 부분에 대해서는 영어일 수 있는 언어(140b)에 대한 특정 언어 인식기(140)에 질의할 수 있다.
일부 구현들에서, 인식기 엔진 선택기(130)는 또한 전사본(104)이 입력(102)에 대해 높은 품질의 전사임을 나타낼 가능성에 대응하는 전사본 신뢰 점수(106)를 생성할 수 있다. 예를 들어, 입력(102)이 영어의 "rope" 또는 스페인어의 "ropa"로 전사될 수 있는 "rope-eh"와 같은 모호한 세그먼트를 포함하고 있으면, 인식기 엔진 선택기(130)는 각각의 전사마다 입력(102)에 대해 낮은 품질의 전사임을 나타내는 전사본 신뢰 점수(106)를 생성할 수 있다. 일부 사례들에서, 인식기 엔진 선택기(130)는 필기 인식 속도를 높이고, 인식 품질을 높이며, 사용된 계산 자원의 양을 낮추기 위해, 전사본 신뢰 점수(106)를 사용하여 낮은 품질의 전사들을 폐기하기 위한 사전 필터링 단계를 수행할 수 있다. 예를 들어, 인식기 엔진 선택기(130)는 전사본 신뢰 점수(106)를 문턱 값과 비교하고 문턱 값 아래의 전사본 신뢰 점수(106)를 갖는 전사본들(104)을 폐기할 수 있다.
입력(102)이 낙서로 분류되는 다른 사례들에서, 입력(102)은 다양한 프로세스들을 사용하여 처리될 수 있다. 예를 들어, 일부 구현들에서, 입력(102)은 단일 문자 범용 인식기(150)를 이용하여 처리된다. 단일 문자 범용 인식기(150)는 텍스트, 예를 들어, 문자들 및 기호들을 포함하는 수많은 유니 코드 포인트들의 집합에 대해 훈련될 수 있다. 단일 범용 인식기(150)는 단지 낙서 입력들을 처리할 뿐이기 때문에 입력의 크기와 무관하게 긴 입력들을 처리할 수도 있다.
입력(102)이 낙서로 분류되는 다른 구현들에서, 입력(102)은 유효하지 않은 인식 출력을 처리한 것이기에 HR 시스템 내의 계산 자원들을 절약하기 위해 폐기될 수 있다. 다른 구현들에서, 입력(102)은, 예를 들어, 그림문자들(emojis), 화살표들과 같은 복잡한 그림들 및 기호들을 사용하여 훈련된 특화된 낙서 인식기를 포함하는 특정 인식 프로세스를 사용하여 처리될 수 있다. 다른 구현들에서, 입력(102)은 단일 문자 범용 인식 프로세스 이외에 다중 언어 인식 프로세스에 의해 처리될 수 있다.
언어 선택기(160)는 전사본들(104) 각각과 연관된 특정 언어들(140a-140c)을 선택하는 소프트웨어 모듈일 수 있다. 예를 들어, 언어 선택기는 인식기 엔진 선택기(130)로부터 전사본들(104)을 수신하고 전사본들(104)의 속성들에 기초하여 언어들을 선택할 수 있다. 예를 들어, 언어 선택기(160)는 전사본 속성들을 특정 언어들에 매핑하는 저장소를 분석하여 전사본들(104)과 연관된 언어들(140a-140c)을 결정할 수 있다.
언어 선택기(160)는 각각의 언어와 연관된 특정 언어 인식기들을 선택할 수도 있다. 예를 들어, 언어 인식기들은 필기 입력을 처리하고 특정 언어를 사용하여 인식 출력들을 생성하도록 훈련된 필기 인식기들일 수 있다.
출력 선택기(170)는 언어들(140a-140c)의 다중 언어 인식기들 또는 단일 문자 범용 인식기(150) 중 어느 하나를 사용하여 생성된 입력(102)에 대해 하나 이상의 인식 출력들을 수신할 수 있다. 일부 사례들에서, 출력 선택기(170)는 입력(102)의 언어들(140a-140c) 각각에 대해 한 세트의 후보 인식 출력들을 수신할 수 있다. 이러한 사례에서, 후보 인식 출력들은 단일 입력(102)에 대해 대안적인 인식 출력들을 나타낼 수 있다. 입력(102)이 상이한 유형의 문자들 및 기호들을 포함하는 다른 사례에서, 출력 선택기(170)는 다중 언어 인식 프로세스 및 단일 문자 범용 인식 프로세스 모두로부터 인식 출력들을 수신할 수 있다. 이러한 사례들에서, 다중 인식 출력들은 단일 입력(102)의 세그먼트들에 대한 출력들을 나타낼 수 있다.
일부 구현들에서, 언어 선택기(160)와 출력 선택기(170)의 동작들은 시스템(100)의 단일의 소프트웨어 컴포넌트에 의해 수행될 수 있다. 예를 들어, 언어 선택기(160)는 출력 선택기(170)의 동작들을 부가적으로 수행할 수 있으며, 그 반대로도 가능할 수 있다. 다른 구현들에서, 다중 언어 인식기(140)로부터의 결과들은 특정 언어를 선택하지 않고 오직 출력만 선택될 필요가 있도록 병합될 수 있다.
시스템(100)이 입력(102)에 대해 대안적인 인식 출력들을 생성하는 사례들에서, 출력 선택기(170)는 입력 신뢰 점수(103) 및 전사본 신뢰 점수(106)의 조합을 사용하여 입력(102)의 가장 양호한 인식을 포함하는 선택된 출력(108)을 선택할 수 있다. 시스템(100)이 입력(102)의 세그먼트들에 대응하는 다수의 인식 출력들을 생성하는 다른 사례들에서, 출력 선택기(170)는 선택된 출력(108)에 포함될 다수의 인식 가설들을 선택할 수 있다. 예를 들어, 입력(102)이 두 개의 세그먼트들, 즉 텍스트와 연관된 제1 세그먼트 및 낙서와 유사한 그림과 연관된 제2 세그먼트를 포함한다면, 출력 선택기(170)는 다중 언어 인식기들(140)로부터 생성된 텍스트에 대응하는 제1 인식 출력 및 단일 문자 범용 인식기(150)로부터 생성된 낙서에 대응하는 제2 인식 출력을 포함하는 선택된 출력(108)을 선택할 수 있다.
도 1의 예에 도시된 바와 같이, 출력들(108a 및 108b)은 각기 출력 디바이스 스크린들(180a 및 180b) 상에 디스플레이되는 별개의 필기 입력들(102a 및 102b)에 각기 대응한다. 예를 들어, 출력(108a)은 인식 가능한 영어 문자소 "H" 및 "I"를 포함하는 입력(102a)에 기초하여 영어용의 특정 언어 인식기(140)를 사용하는 다중 언어 인식 프로세스로부터 생성된다. 이와 대조적으로, 출력(108b)은 낙서로 분류되는 입력(102b)에 기초하여 단일 문자 범용 인식기(150)를 사용하는 단일 문자 범용 인식 프로세스로부터 생성된다. 출력(108b)은 "Z"라는 문자소를 포함하는데, 그 이유는 이것이 입력(102b)의 입력 스트로크들에 가장 근접하게 대응하는 단일의 문자소이기 때문이다.
도 2는 하나 이상의 스트로크들을 표시하는 하나 이상의 데이터를 처리하기 위한 예시적인 프로세스(200)를 도시한다. 간략히 말해서, 프로세스(200)는 하나 이상의 스트로크들을 표시하는 데이터를 수신하는 것(210), 하나 이상의 스트로크들의 하나 이상의 특징들을 결정하는 것(220), 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 것(230), 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 것(240) 및 특정 인식 프로세스를 사용하여 데이터를 제공하는 것(250)을 포함한다.
더 상세하게 말해서, 프로세스(200)는 하나 이상의 스트로크들을 표시하는 데이터를 수신하는 것(210)을 포함할 수 있다. 예를 들어, 비 텍스트 입력 분류기(120)는 하나 이상의 스트로크들을 표시하는 입력(102)을 수신할 수 있다. 도 1의 예에 도시된 바와 같이, 사용자들(101a 및 101b)은 제각기 입력 디바이스들(110a 및 110b)을 통해 입력들(102a 및 102b)을 제공할 수 있다.
프로세스(200)는 하나 이상의 스트로크들의 하나 이상의 특징들을 결정하는 것(220)을 포함할 수 있다. 예를 들어, 비 텍스트 입력 분류기(120)는 입력(102)으로부터 종횡비, 수평 반점 위의 픽셀 백분율, 수직 반점 오른쪽의 픽셀 백분율, 스트로크 수, 스트로크 곡률, 이미지 중심으로부터 평균 거리, 펜 압력, 펜 속도 또는 필기 방향의 변경들과 같은 특징들을 추출할 수 있다.
일부 구현들에서, 하나 이상의 스트로크들의 하나 이상의 특징들을 결정한 이후, 비 텍스트 입력 분류기(120)는 입력(102)의 하나 이상의 스트로크들의 하나 이상의 특징들에 기초하여 입력 신뢰 점수(103)를 생성할 수 있다. 예를 들어, 입력 신뢰 점수(103)는 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는데 사용될 수 있다.
프로세스(200)는 특징들 중 적어도 하나 이상에 기초하여 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 것(230)을 포함할 수 있다. 예를 들어, 비 텍스트 입력 분류기(120)는 입력(102)을 적어도 하나의 인식 가능한 문자소를 나타내는 것 또는 적어도 하나의 인식 가능한 문자소를 나타내지 않는 낙서를 나타내는 것 중 어느 하나로 분류할 수 있다. 도 1의 예에서 보는 바와 같이, 비 텍스트 입력 분류기(120)는 입력(102a)을 "H" 및 "i"라는 문자소들을 나타내는 것으로 분류할 수 있으며, 입력(102b)을 입력(102b)의 스트로크들이 인식 가능한 문자소를 나타내기 때문에 낙서를 나타내는 것으로 분류할 수 있다.
프로세스(200)는 적어도 다중 언어 인식 프로세스 및 단일 문자 범용 인식 프로세스로부터 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 것(240)을 포함할 수 있다. 예를 들어, 인식기 엔진 선택기(130)는 비 텍스트 입력 분류기(120)에 의한 입력(102)의 분류에 기초하여 입력(102)에 맞는 특정 인식 프로세스를 선택할 수 있다. 예를 들어, 인식기 엔진 선택기(130)는 입력(102a)에 맞는 다중 언어 인식 프로세스를 선택할 수 있고 입력(102b)에 맞는 단일 문자 범용 인식 프로세스를 선택할 수 있다.
프로세스(200)는 특정 인식 프로세스를 사용하여 처리하기 위한 데이터를 제공하는 것(250)을 포함할 수 있다. 예를 들어, 인식기 엔진 선택기(130)는 입력(102)에 맞는 다중 언어 인식 프로세스 또는 단일 문자 범용 인식 프로세스를 선택할 수 있다. 예를 들어, 인식기 엔진 선택기(130)는 입력(102a)에 맞는 다중 언어 인식 프로세스 및 사용자 입력(102b)에 맞는 단일 문자 범용 인식 프로세스를 선택할 수 있다.
입력(102a)에 맞는 다중 언어 인식 프로세스와 관련하여, 다중 언어 인식기들(140)은 언어들(140a-140c)에 대응하는 하나 이상의 문자소를 생성하는데 사용될 수 있다. 예를 들어, 다중 언어 인식기들(140)은 주어진 한 세트의 입력(102)의 입력 스트로크들에 대해, 특정 언어와 연관된 하나 이상의 문자소를 출력하도록 각기 훈련될 수 있다. 도 1에 제공된 예에서, 입력(102a)은 영어와 연관된 문자소들 "H"및 "I"에 기초하여 영어에 맞는 특정 언어 인식기(140)를 사용하여 처리될 수 있다.
입력(102b)에 맞는 단일 문자의 범용 인식 프로세스와 관련하여, 단일 문자 범용 인식기(150)는 단일의 문자소를 생성하는데 사용될 수 있다. 예를 들어, 단일 문자 범용 인식기(150)는 주어진 한 세트의 입력(102)의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련될 수 있다. 도 1에 제공된 예에서, 입력(102b)은 단일 문자 범용 인식기(150)에 의해 처리되어 입력(102b)의 입력 스트로크들과 가장 근사하게 닮은 "Z"라는 문자소를 출력할 수 있다.
도 3은 클라이언트로서 또는 서버나 복수의 서버들로서 본 명세서에 설명된 시스템들 및 방법들을 구현하는데 사용될 수 있는 컴퓨팅 디바이스(300, 350)의 블록도이다. 컴퓨팅 디바이스(300)는 랩톱들, 데스크톱들, 워크스테이션들, 개인 휴대 정보 단말기들, 서버들, 블레이드 서버들, 메인 프레임들 및 다른 적절한 컴퓨터들과 같은 다양한 형태의 디지털 컴퓨터들을 표현하려 의도된다. 컴퓨팅 디바이스(350)는 개인 휴대 정보 단말기들, 셀룰러 전화기들, 스마트폰들 및 다른 유사한 컴퓨팅 디바이스들과 같은 다양한 형태의 모바일 디바이스들을 표현하려 의도된다. 또한, 컴퓨팅 디바이스(300 또는 350)는 범용 직렬 버스(Universal Serial Bus, USB) 플래시 드라이브들을 포함할 수 있다. USB 플래시 드라이브들은 오퍼레이팅 시스템들 및 기타 애플리케이션들을 저장할 수 있다. USB 플래시 드라이브들은 또 다른 컴퓨팅 디바이스의 USB 포트에 삽입될 수 있는 무선 송신기 또는 USB 커넥터와 같은 입력/출력 컴포넌트들을 포함할 수 있다. 본 명세서에 도시된 컴포넌트들, 이들의 연결들과 관계들 및 이들의 기능들은 단지 예시적인 것임을 의미하며, 본 명세서에 설명된 및/또는 청구된 발명들의 구현들을 제한하는 것으로 의미하지 않는다.
컴퓨팅 디바이스(300)는 프로세서(302), 메모리(304), 저장 디바이스(306), 메모리(304) 및 고속 확장 포트들(310)에 연결하는 고속 인터페이스(308) 및 저속 버스(314)와 저장 디바이스(306)에 연결하는 저속 인터페이스(312)를 포함한다. 컴포넌트들(302, 304, 306, 308, 310 및 312) 각각은 다양한 버스들을 사용하여 상호 연결되고, 공통의 마더보드 상에 장착되거나 또는 적절하게 다른 방식으로 장착될 수 있다. 프로세서(302)는 메모리(304) 또는 저장 디바이스(306)에 저장된 명령어들을 비롯한, 컴퓨팅 디바이스(300) 내에서 실행하기 위한 명령어들을 처리하여 GUI에 필요한 그래픽 정보를 고속 인터페이스(308)에 연결된 디스플레이(316)와 같은 외부 입력/출력 디바이스상에 디스플레이할 수 있다. 다른 구현들에서, 다수의 프로세서들 및/또는 다수의 버스들은 적절하게 다수의 메모리들 및 메모리 유형들과 함께 사용될 수 있다. 또한, 다수의 컴퓨팅 디바이스들(300)이 연결될 수 있으며, 각각의 컴퓨팅 디바이스는 예를 들어, 서버 뱅크, 블레이드 서버 그룹 또는 멀티 프로세서 시스템으로서 필요한 동작들의 일부분들을 제공한다.
메모리(304)는 컴퓨팅 디바이스(300) 내의 정보를 저장한다. 일 구현에서, 메모리(304)는 휘발성 메모리 유닛 또는 유닛들이다. 다른 구현에서, 메모리(304)는 비휘발성 메모리 유닛 또는 유닛들이다. 메모리(304)는 또한 자기 또는 광디스크와 같은 다른 형태의 컴퓨터 판독 가능한 매체일 수 있다.
저장 디바이스(306)는 대용량 저장소를 컴퓨팅 디바이스(300)에 제공할 수 있다. 일 구현에서, 저장 디바이스(306)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광디스크 디바이스 또는 테이프 디바이스, 플래시 메모리 또는 다른 유사한 고체 상태 메모리 디바이스, 또는 저장 영역 네트워크 또는 다른 구성들 내의 디바이스들을 포함하는 디바이스들의 어레이와 같은 컴퓨터 판독 가능한 매체일 수 있거나 이를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 실행될 때 전술한 바와 같은 하나 이상의 방법들을 수행하는 명령어들을 포함할 수 있다. 정보 캐리어는 메모리(304), 저장 디바이스(306) 또는 프로세서(302)상의 메모리와 같은 컴퓨터 또는 머신 판독 가능한 매체이다.
고속 컨트롤러(308)는 컴퓨팅 디바이스(300)에 필요한 대역폭 집약적 동작들을 관리하는 반면, 저속 컨트롤러(312)는 더 낮은 대역폭 집약적 동작들을 관리한다. 이러한 기능들의 할당은 예시적인 것일 뿐이다. 일 구현에서, 고속 컨트롤러(308)는 예를 들어, 그래픽 프로세서 또는 가속기를 통해 메모리(304), 디스플레이(316)에 연결되고, 다양한 확장 카드들(도시되지 않음)을 수용할 수 있는 고속 확장 포트들(310)에 연결된다. 구현에서, 저속 컨트롤러(312)는 저장 디바이스(306) 및 저속 확장 포트(314)에 연결된다. 다양한 통신 포트들, 예를 들어, USB, 블루투스, 이더넷, 무선 이더넷을 포함할 수 있는 저속 확장 포트는 키보드, 포인팅 디바이스, 마이크로폰/스피커 쌍, 스캐너 또는 예를 들어, 스위치나 라우터와 같은 네트워킹 디바이스와 같은 하나 이상의 입력/출력 디바이스들에, 예를 들어 네트워크 어댑터를 통해 연결될 수 있다. 컴퓨팅 디바이스(300)는 도면에 도시된 바와 같이, 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스는 표준 서버(320)로서 구현되거나, 또는 그러한 서버들의 그룹에서 여러 번 구현될 수 있다. 컴퓨팅 디바이스는 랙 서버 시스템(324)의 일부로서 구현될 수도 있다. 또한, 컴퓨팅 디바이스는 랩톱 컴퓨터(322)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(300)의 컴포넌트들은 디바이스(350)와 같은 모바일 디바이스(도시되지 않음)의 다른 컴포넌트들과 조합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(300, 350) 중 하나 이상을 포함할 수 있으며, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(300, 350)로 구성될 수 있다.
도면에 도시된 바와 같이, 컴퓨팅 디바이스(300)는 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스는 표준 서버(320)로서 구현되거나, 또는 그러한 서버들의 그룹에서 여러 번 구현될 수 있다. 컴퓨팅 디바이스는 랙 서버 시스템(324)의 일부로서 구현될 수도 있다. 또한, 컴퓨팅 디바이스는 랩톱 컴퓨터(322)와 같은 퍼스널 컴퓨터에서 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(300)의 컴포넌트들은 디바이스(350)와 같은 모바일 디바이스(도시되지 않음)의 다른 컴포넌트들과 조합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(300, 350) 중 하나 이상을 포함할 수 있으며, 전체 시스템은 서로 통신하는 다수의 컴퓨팅 디바이스들(300, 350)로 구성될 수 있다.
컴퓨팅 디바이스(350)는 다른 컴포넌트들 중에서도, 프로세서(352), 메모리(364) 및 입/출력 디바이스, 예컨대, 디스플레이(354), 통신 인터페이스(366) 및 송수신기(368)를 포함한다. 디바이스(350)는 또한 추가 저장소를 제공하기 위해 마이크로드라이브 또는 다른 디바이스와 같은 저장 디바이스를 구비할 수 있다. 컴포넌트들(350, 352, 364, 354, 366 및 368) 각각은 다양한 버스들을 사용하여 상호 연결되며, 몇몇 컴포넌트들은 공통의 마더보드에 장착될 수 있거나, 적절하게 다른 방식으로 장착될 수 있다.
프로세서(352)는 메모리(364)에 저장된 명령어들을 비롯한, 컴퓨팅 디바이스(350) 내의 명령어들을 실행할 수 있다. 프로세서는 개별의 다수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로 구현될 수 있다. 또한, 프로세서는 다수의 아키텍처들 중 임의의 아키텍처를 사용하여 구현될 수 있다. 예를 들어, 프로세서(310)는 CISC(Complex Instruction Set Computer, 복합 명령어 집합 컴퓨터) 프로세서, RISC(Reduced Instruction Set Computer, 축소 명령어 집합 컴퓨터) 프로세서 또는 MISC(Minimal Instruction Set Computer, 최소 명령어 집합 컴퓨터) 프로세서일 수 있다. 프로세서는 예를 들어, 사용자 인터페이스들, 디바이스(350)에 의해 실행되는 애플리케이션들 및 디바이스(350)에 의한 무선 통신의 제어와 같은 디바이스(350)의 다른 컴포넌트들의 조정을 제공할 수 있다.
프로세서(352)는 디스플레이(354)에 연결된 제어 인터페이스(358) 및 디스플레이 인터페이스(356)를 통해 사용자와 통신할 수 있다. 디스플레이(354)는 예를 들어, TFT(Thin-Film-Transistor Liquid Crystal Display, 박막 트랜지스터 액정 디스플레이) 디스플레이 또는 OLED(Organic Light Emitting Diode, 유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(356)는 사용자에게 그래픽 및 다른 정보를 제공하기 위해 디스플레이(354)를 구동하기에 적절한 회로를 포함할 수 있다. 제어 인터페이스(358)는 사용자로부터 커맨드들을 수신하고 이를 변환하여 프로세서(352)에 전달할 수 있다. 또한, 외부 인터페이스(362)는 디바이스(350)가 다른 디바이스들과 근거리 통신(near area communication)을 할 수 있게 하기 위해 프로세서(352)와 통신할 수 있다. 외부 인터페이스(362)는 예를 들어, 일부 구현들에서는 유선 통신용으로 또는 다른 구현들에서는 무선 통신용으로 제공될 수 있으며, 다중 인터페이스가 또한 사용될 수 있다.
메모리(364)는 컴퓨팅 디바이스(350) 내의 정보를 저장한다. 메모리(364)는 컴퓨터 판독 가능한 매체 또는 매체들, 휘발성 메모리 유닛 또는 유닛들, 또는 비휘발성 메모리 유닛 또는 유닛들 중 하나 이상으로서 구현될 수 있다. 확장 메모리(374)는 또한 예를 들어 SIMM(Single In Line Memory Module, 단일 인라인 메모리 모듈) 카드 인터페이스를 포함할 수 있는 확장 인터페이스(372)를 통해 디바이스(350)에 제공되고 접속될 수 있다. 이러한 확장 메모리(374)는 디바이스(350)에 여분의 저장 공간을 제공할 수 있거나, 또는 디바이스(350)에 필요한 애플리케이션들이나 다른 정보를 저장할 수도 있다. 특히, 확장 메모리(374)는 전술한 프로세스들을 수행하거나 보완하는 명령어를 포함할 수 있으며, 또한 보안 정보를 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(374)는 디바이스(350)의 보안 모듈로서 제공될 수 있으며, 디바이스(350)를 안전하게 사용하게 하는 명령어들로 프로그래밍될 수 있다. 또한, 보안 애플리케이션들은 예컨대, 식별 정보를 해킹할 수 없는 방식으로 식별 정보를 SIMM 카드상에 설치하는 추가 정보와 함께, SIMM 카드를 통해 제공될 수 있다.
메모리는, 예를 들어, 후술하는 바와 같이 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현에서, 컴퓨터 프로그램 제품은 정보 캐리어에서 유형적으로 구현된다. 컴퓨터 프로그램 제품은 실행될 때, 전술한 바와 같은 하나 이상의 방법들을 수행하는 명령어들을 포함한다. 예를 들어, 송수신기(368) 또는 외부 인터페이스(362)를 통해 수신될 수 있는 정보 캐리어는 메모리(364), 확장 메모리(374) 또는 프로세서(352)상의 메모리와 같은 컴퓨터 또는 머신 판독 가능한 매체이다.
디바이스(350)는 필요에 따라 디지털 신호 프로세싱 회로를 포함할 수 있는 통신 인터페이스(366)를 통해 무선으로 통신할 수 있다. 통신 인터페이스(366)는 다른 것들 중에서도, GSM 음성 호들, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000 또는 GPRS와 같은 다양한 방식들 또는 프로토콜들 하에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어, 무선 주파수 송수신기(368)를 통해 이루어질 수 있다. 또한, 블루투스, WiFi 또는 다른 송수신기(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 이루어질 수 있다. 또한, GPS(Global Positioning System, 글로벌 포지셔닝 시스템) 수신기 모듈(370)은 디바이스(350)상에서 실행되는 애플리케이션들에 의해 적절히 사용될 수 있는 추가의 네비게이션 및 위치 관련 무선 데이터를 디바이스(350)에 제공할 수 있다.
디바이스(350)는 또한 사용자로부터 구어 정보를 수신하고 이 정보를 이용 가능한 디지털 정보로 변환할 수 있는 오디오 코덱(360)을 사용하여 청각적으로 통신할 수 있다. 오디오 코덱(360)은 마찬가지로, 예를 들어, 디바이스(350)의 핸드셋에 있는 스피커를 통해, 사용자가 들을 수 있는 소리를 생성할 수 있다. 이러한 소리는 음성 전화기 호들부터의 소리를 포함할 수 있고, 녹음된 소리, 예를 들면, 음성 메시지들, 음악 파일들 등을 포함할 수 있으며, 디바이스(350)상에서 작동하는 애플리케이션들에 의해 생성된 소리를 또한 포함할 수 있다.
도면에 도시된 바와 같이, 컴퓨팅 디바이스(350)는 다수의 상이한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스는 셀룰러 텔레폰(480)으로서 구현될 수 있다. 컴퓨팅 디바이스는 스마트폰(382), 개인 휴대 정보 단말기 또는 다른 유사한 모바일 디바이스의 일부로서 구현될 수도 있다.
본 명세서에 설명된 시스템들 및 방법들의 다양한 구현들은 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC들(application specific integrated circuits, 주문형 집적 회로들), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이러한 구현들의 조합에서 실현될 수 있다. 이러한 다양한 구현들은 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스로부터 데이터 및 명령어들을 수신하고, 데이터 및 명령어들을 저장 시스템, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스에 전송하도록 연결된 특수 목적 또는 범용 목적일 수 있는 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템상에서 실행 가능한 및/또는 해석 가능한 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있다.
이들 컴퓨터 프로그램들(프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 또는 코드라고도 알려짐)은 프로그래머블 프로세서에 필요한 머신 명령어들을 포함하며, 하이 레벨의 절차적 및/또는 객체 지향적 프로그래밍 언어 및/또는 어셈블리 언어/머신 언어로 구현될 수 있다. 본 명세서에서 사용되는 것으로, "머신 판독 가능한 매체", "컴퓨터 판독 가능한 매체"라는 용어들은 머신 판독 가능한 신호로서 머신 명령어들을 수신하는 머신 판독 가능한 매체를 비롯한, 머신 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 장치들 및/또는 디바이스, 예를 들면, 자기 디스크들, 광디스크들, 메모리, 프로그래머블 로직 디바이스들(Programmable Logic Devices, PLDs)을 말한다. "머신 판독 가능한 신호"라는 용어는 머신 명령어들 및/또는 데이터를 프로그래머블 프로세서에 제공하는 데 사용되는 모든 신호를 말한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에 설명된 시스템들 및 기술들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들면, CRT(cathode ray tube, 음극선관) 또는 LCD(liquid crystal display, 액정 디스플레이) 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드와 포인팅 디바이스, 예를 들면, 마우스 또는 트랙볼을 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 디바이스들은 마찬가지로 사용자와의 상호 작용을 제공하는데 사용될 수 있는데, 예를 들면, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백, 예를 들면, 시각 피드백, 청각 피드백 또는 촉각 피드백일 수 있으며; 사용자로부터의 입력은 음향, 대화 또는 촉각 입력을 비롯한 임의의 형태로 수신될 수 있다.
본 명세서에 설명된 시스템들 및 기술들은 예를 들면, 데이터 서버로서 백 엔드 컴포넌트를 포함하는, 또는 미들웨어 컴포넌트 예를 들면, 애플리케이션 서버를 포함하는, 또는 프론트 엔드 컴포넌트, 예를 들면, 사용자가 본 명세서에 설명된 시스템들 및 기술들의 구현과 상호 작용할 수 있는 그래픽 사용자 인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터, 또는 그러한 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들면, 통신 네트워크에 의해 상호 연결될 수 있다. 통신 네트워크들의 예는 근거리 네트워크("local area network, LAN"), 광역 네트워크("wide area network, WAN") 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트들 및 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 전형적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각자의 컴퓨터들에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 생긴다.
다수의 실시예들이 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형이 이루어질 수 있다는 것이 이해될 것이다. 또한, 도면들에 도시된 로직 흐름들은 바람직한 결과들을 성취하기 위해, 도시된 특정 순서 또는 순차적인 순서를 요구하지 않는다. 또한, 다른 단계들이 제공되거나, 단계들이 설명된 흐름들로부터 제거될 수 있으며, 다른 컴포넌트들이 설명된 시스템들에 추가되거나, 설명된 시스템들로부터 제거될 수 있다. 따라서, 다른 실시예들은 다음과 같은 청구항들의 범위 내에 있다.

Claims (9)

  1. 컴퓨터로 구현되는 방법으로서,
    하나 이상의 스트로크들을 표시하는 데이터를 수신하는 단계와;
    상기 하나 이상의 스트로크들의 하나 이상의 특징들을 결정하는 단계와;
    상기 하나 이상의 스트로크들이 상기 특징들 중 적어도 하나 이상에 기초하여 문자소(grapheme)를 나타낼 가능성이 있는지를 결정하는 단계와;
    적어도 (i) 주어진 한 세트의 입력 스트로크들에 대해, 특정 언어와 연관된 하나 이상의 문자소들을 출력하도록 각기 훈련된 다수의 인식기들을 사용하여 입력 스트로크들을 처리하는 다중 언어 인식 프로세스(multi-language recognition process), 및 (ii) 주어진 한 세트의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련된 범용 인식기(universal recognizer)를 사용하여 입력 스트로크들을 처리하는 단일 문자 범용 인식 프로세스(single character, universal recognition process) 중에서 상기 데이터를 처리하기 위한 특정 인식 프로세스를 선택하는 단계와; 그리고
    상기 선택된 특정 인식 프로세스를 사용하여 처리하기 위한 데이터를 제공하는 단계를 포함하는 컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있다고 결정하는 것을 포함하며,
    상기 데이터를 처리하기 위한 상기 특정 인식 프로세스를 선택하는 단계는 상기 다중 언어 인식 프로세스를 선택하는 것을 포함하는 컴퓨터로 구현되는 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 없다고 결정하는 것을 포함하며,
    상기 데이터를 처리하기 위한 상기 특정 인식 프로세스를 선택하는 단계는 상기 단일 문자 범용 인식 프로세스를 선택하는 것을 포함하는 컴퓨터로 구현되는 방법.
  4. 제2항에 있어서,
    상기 다중 언어 인식 프로세스는 또한, 주어진 한 세트의 입력 스트로크들에 대해, 단일의 문자소를 출력하도록 훈련된 상기 범용 인식기를 사용하여 입력 스트로크들을 처리하는 컴퓨터로 구현되는 방법.
  5. 제2항에 있어서,
    상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성을 나타내는 신뢰 점수를 생성하는 것을 포함하며,
    상기 특정 인식 프로세스는 적어도 상기 생성된 신뢰 점수에 기초하여 선택되는 컴퓨터로 구현되는 방법.
  6. 제2항에 있어서,
    상기 데이터를 처리하기 위한 상기 특정 인식 프로세스를 선택하는 단계는 상기 하나 이상의 스트로크들을 표시하는 상기 데이터를 출력하기 위해 상기 다수의 인식기들의 서브세트를 선택하는 것을 포함하는 컴퓨터로 구현되는 방법.
  7. 제2항에 있어서,
    상기 하나 이상의 스트로크들이 문자소를 나타낼 가능성이 있는지를 결정하는 단계는 상기 하나 이상의 스트로크들이 낙서 또는 스크래치를 나타낼 가능성이 있는지를 결정하는 것을 포함하는 컴퓨터로 구현되는 방법.
  8. 필기 인식(handwriting recognition) 시스템으로서,
    하나 이상의 컴퓨터들과; 그리고
    상기 하나 이상의 컴퓨터들에 연결되어, 상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제7항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어들이 저장된 비 일시적 컴퓨터 판독 가능한 매체를 포함하는 필기 인식 시스템.
  9. 컴퓨터 프로그램으로 인코딩된 비 일시적 컴퓨터 저장 디바이스로서,
    상기 프로그램은 하나 이상의 컴퓨터들에 의해 실행될 때 상기 하나 이상의 컴퓨터들로 하여금 청구항 제1항 내지 제7항 중 어느 한 항에 따른 방법을 수행하게 하는 명령어를 포함하는 비 일시적 컴퓨터 저장 디바이스.
KR1020177030972A 2015-09-09 2016-06-24 프리-필터 분류를 사용한 필기 인식 향상 KR102015068B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/849,162 2015-09-09
US14/849,162 US20170068868A1 (en) 2015-09-09 2015-09-09 Enhancing handwriting recognition using pre-filter classification
PCT/US2016/039366 WO2017044173A1 (en) 2015-09-09 2016-06-24 Enhancing handwriting recognition using pre-filter classification

Publications (2)

Publication Number Publication Date
KR20170131630A KR20170131630A (ko) 2017-11-29
KR102015068B1 true KR102015068B1 (ko) 2019-08-27

Family

ID=56409694

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177030972A KR102015068B1 (ko) 2015-09-09 2016-06-24 프리-필터 분류를 사용한 필기 인식 향상

Country Status (6)

Country Link
US (1) US20170068868A1 (ko)
EP (1) EP3274918A1 (ko)
JP (1) JP6496841B2 (ko)
KR (1) KR102015068B1 (ko)
CN (1) CN107969155B (ko)
WO (1) WO2017044173A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10643067B2 (en) * 2015-10-19 2020-05-05 Myscript System and method of handwriting recognition in diagrams
US10120457B2 (en) * 2015-10-27 2018-11-06 Lenovo (Singapore) Pte. Ltd. Displaying a logogram indication
US10635298B2 (en) * 2017-04-18 2020-04-28 Xerox Corporation Systems and methods for localizing a user interface based on a pre-defined phrase
RU2652461C1 (ru) * 2017-05-30 2018-04-26 Общество с ограниченной ответственностью "Аби Девелопмент" Дифференциальная классификация с использованием нескольких нейронных сетей
RU2661750C1 (ru) * 2017-05-30 2018-07-19 Общество с ограниченной ответственностью "Аби Продакшн" Распознавание символов с использованием искусственного интеллекта
US20190370324A1 (en) * 2018-05-29 2019-12-05 Microsoft Technology Licensing, Llc System and method for automatic language detection for handwritten text
CN108733304A (zh) * 2018-06-15 2018-11-02 蒋渊 一种自动识别及处理手写字符方法、装置
US10997402B2 (en) * 2018-07-03 2021-05-04 Fuji Xerox Co., Ltd. Systems and methods for real-time end-to-end capturing of ink strokes from video
EP3736677A1 (en) 2019-05-10 2020-11-11 MyScript A method and corresponding device for selecting and editing handwriting input elements
CN110222584A (zh) * 2019-05-14 2019-09-10 深圳传音控股股份有限公司 手写输入的识别方法及设备
EP3754537B1 (en) 2019-06-20 2024-05-22 MyScript Processing text handwriting input in a free handwriting mode
EP3772015B1 (en) 2019-07-31 2023-11-08 MyScript Text line extraction
EP3796145A1 (en) 2019-09-19 2021-03-24 MyScript A method and correspond device for selecting graphical objects
CN112417839A (zh) * 2020-10-19 2021-02-26 上海臣星软件技术有限公司 emoji和文字混排的方法、装置、电子设备及计算机存储介质
CN113176830A (zh) * 2021-04-30 2021-07-27 北京百度网讯科技有限公司 识别模型训练、识别方法、装置、电子设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100310172A1 (en) 2009-06-03 2010-12-09 Bbn Technologies Corp. Segmental rescoring in text recognition

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0650527B2 (ja) * 1983-12-26 1994-06-29 株式会社日立製作所 実時間手書き軌跡認識方法
US5513304A (en) * 1993-04-19 1996-04-30 Xerox Corporation Method and apparatus for enhanced automatic determination of text line dependent parameters
US5444797A (en) * 1993-04-19 1995-08-22 Xerox Corporation Method and apparatus for automatic character script determination
US5425110A (en) * 1993-04-19 1995-06-13 Xerox Corporation Method and apparatus for automatic language determination of Asian language documents
US5384864A (en) * 1993-04-19 1995-01-24 Xerox Corporation Method and apparatus for automatic determination of text line, word and character cell spatial features
JPH09120433A (ja) * 1995-10-24 1997-05-06 Toshiba Corp 文字認識方法及び文書作成装置
US6370269B1 (en) * 1997-01-21 2002-04-09 International Business Machines Corporation Optical character recognition of handwritten or cursive text in multiple languages
AU2001264956A1 (en) * 2000-08-11 2002-02-25 Ctb/Mcgraw-Hill Llc Enhanced data capture from imaged documents
GB2381637B (en) * 2001-10-31 2005-04-27 James Au-Yeung Apparatus and method for determining selection data from pre-printed forms
US20030215145A1 (en) * 2002-05-14 2003-11-20 Microsoft Corporation Classification analysis of freeform digital ink input
JP2004054397A (ja) * 2002-07-17 2004-02-19 Renesas Technology Corp 補助入力装置
CN1667548A (zh) * 2003-09-26 2005-09-14 余可立 英文字母汉字化书写虚拟笔画和中英文速记符号兼容方案
US7369702B2 (en) * 2003-11-07 2008-05-06 Microsoft Corporation Template-based cursive handwriting recognition
US7929769B2 (en) * 2005-12-13 2011-04-19 Microsoft Corporation Script recognition for ink notes
CN102077275B (zh) * 2008-06-27 2012-08-29 皇家飞利浦电子股份有限公司 用于从声学数据生成词条的方法和设备
US8175389B2 (en) * 2009-03-30 2012-05-08 Synaptics Incorporated Recognizing handwritten words
US8635061B2 (en) * 2010-10-14 2014-01-21 Microsoft Corporation Language identification in multilingual text
WO2012083479A1 (en) * 2010-12-20 2012-06-28 Honeywell International Inc. Object identification
US9111374B2 (en) * 2011-11-29 2015-08-18 Brother Kogyo Kabushiki Kaisha Mobile terminal, method for controlling the same, and non-transitory storage medium storing program to be executed by mobile terminal
US20140313216A1 (en) * 2013-04-18 2014-10-23 Baldur Andrew Steingrimsson Recognition and Representation of Image Sketches
US9898187B2 (en) * 2013-06-09 2018-02-20 Apple Inc. Managing real-time handwriting recognition
US20150039637A1 (en) * 2013-07-31 2015-02-05 The Nielsen Company (Us), Llc Systems Apparatus and Methods for Determining Computer Apparatus Usage Via Processed Visual Indicia
US9224038B2 (en) * 2013-12-16 2015-12-29 Google Inc. Partial overlap and delayed stroke input recognition
US9536180B2 (en) * 2013-12-30 2017-01-03 Google Inc. Text recognition based on recognition units
US9286527B2 (en) * 2014-02-20 2016-03-15 Google Inc. Segmentation of an input by cut point classification
JP6264949B2 (ja) * 2014-03-05 2018-01-24 富士ゼロックス株式会社 画像処理装置及びプログラム
CN106156766B (zh) * 2015-03-25 2020-02-18 阿里巴巴集团控股有限公司 文本行分类器的生成方法及装置
US20160350289A1 (en) * 2015-06-01 2016-12-01 Linkedln Corporation Mining parallel data from user profiles
US9904847B2 (en) * 2015-07-10 2018-02-27 Myscript System for recognizing multiple object input and method and product for same
US10643067B2 (en) * 2015-10-19 2020-05-05 Myscript System and method of handwriting recognition in diagrams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100310172A1 (en) 2009-06-03 2010-12-09 Bbn Technologies Corp. Segmental rescoring in text recognition

Also Published As

Publication number Publication date
JP6496841B2 (ja) 2019-04-10
KR20170131630A (ko) 2017-11-29
WO2017044173A1 (en) 2017-03-16
JP2018522315A (ja) 2018-08-09
EP3274918A1 (en) 2018-01-31
CN107969155A (zh) 2018-04-27
US20170068868A1 (en) 2017-03-09
CN107969155B (zh) 2022-04-19

Similar Documents

Publication Publication Date Title
KR102015068B1 (ko) 프리-필터 분류를 사용한 필기 인식 향상
US11842045B2 (en) Modality learning on mobile devices
US8768062B2 (en) Online script independent recognition of handwritten sub-word units and words
AU2015357110B2 (en) Method for text recognition and computer program product
KR102021556B1 (ko) 음성 쿼리들의 검색 결과 프리페치
KR20220130739A (ko) 스피치 인식
EP3942459A1 (en) Object detection and segmentation for inking applications
US20190139544A1 (en) Voice controlling method and system
WO2023245869A1 (zh) 语音识别模型的训练方法、装置、电子设备及存储介质
CN115273103A (zh) 文本识别方法、装置、电子设备及存储介质
EP3785145B1 (en) System and method for automatic language detection for handwritten text
CN112652300A (zh) 多方言语音识别方法、装置、设备和存储介质
CN113377904B (zh) 行业动作识别方法、装置、电子设备及存储介质
CN113555009A (zh) 用于训练模型的方法和装置
CN115273090A (zh) 听写检测方法、装置和电子设备

Legal Events

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