KR20170030613A - 터치 분류 - Google Patents

터치 분류 Download PDF

Info

Publication number
KR20170030613A
KR20170030613A KR1020177003813A KR20177003813A KR20170030613A KR 20170030613 A KR20170030613 A KR 20170030613A KR 1020177003813 A KR1020177003813 A KR 1020177003813A KR 20177003813 A KR20177003813 A KR 20177003813A KR 20170030613 A KR20170030613 A KR 20170030613A
Authority
KR
South Korea
Prior art keywords
touch
classification
blob
frame
frames
Prior art date
Application number
KR1020177003813A
Other languages
English (en)
Other versions
KR102424803B1 (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 KR20170030613A publication Critical patent/KR20170030613A/ko
Application granted granted Critical
Publication of KR102424803B1 publication Critical patent/KR102424803B1/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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0416Control or interface arrangements specially adapted for digitisers
    • G06F3/0418Control or interface arrangements specially adapted for digitisers for error correction or compensation, e.g. based on parallax, calibration or alignment
    • G06F3/04186Touch location disambiguation
    • 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/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/044Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by capacitive means
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames
    • G06N99/005

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Sorting Of Articles (AREA)
  • Automatic Disk Changers (AREA)
  • Supplying Of Containers To The Packaging Station (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)

Abstract

터치 분류를 위한 방법은, 터치 감지 디바이스에 의해 캡쳐되는 복수의 프레임을 나타내는 프레임 데이터를 획득하는 것, 복수의 프레임의 각각의 프레임에서의 각각의 블롭 - 블롭은 터치 이벤트를 나타냄 - 을 정의하기 위해 프레임 데이터를 분석하는 것; 터치 이벤트에 대한 복수의 피처 세트 - 각각의 피처 세트는 복수의 프레임의 각각의 프레임에서의 각각의 블롭의 속성을 특정함 - 를 계산하는 것; 및 복수의 프레임에 대한 복수의 피처 세트에 기초하여 복수의 넌바이모달 분류 스코어 - 각각의 넌바이모달 분류 스코어는 머신 학습 분류에서의 모호성 레벨을 나타냄 - 를 제공하도록 구성되는 머신 학습 분류를 통해 터치 이벤트의 타입을 결정하는 것을 포함한다.

Description

터치 분류{TOUCH CLASSIFICATION}
본 개시의 더 완전한 이해를 위해, 하기의 상세한 설명 및 첨부의 도면에 대한 참조가 이루어지는데, 첨부의 도면에서 동일한 참조 부호는 도면에서의 유사한 엘리먼트를 식별하기 위해 사용될 수도 있다.
도 1은, 하나의 예에 따른, 터치 분류를 위해 구성되는 시스템의 블록도이다.
도 2는, 하나의 예에 따른, 터치 분류를 위한 컴퓨터 구현 방법의 흐름도이다.
도 3은, 하나의 예에 따른, 도 2의 방법의 넌바이모달 스코오링 프로시져(non-bimodal scoring procedure)의 흐름도이다.
도 4는, 다른 예에 따른, 도 2의 방법의 넌바이모달 스코오링 프로시져의 흐름도이다.
도 5는, 개시된 방법 및 시스템 또는 그 하나 이상의 컴포넌트 또는 양태의 구현을 위한 하나의 예에 따른 컴퓨팅 환경의 블록도이다.
개시된 시스템 및 방법이 다양한 형태의 실시형태를 허용하지만, 본 개시는 예시적인 것으로 의도되며, 본 발명을 본원에서 설명되고 예시되는 특정한 실시형태로 제한하도록 의도되지 않는다는 이해와 함께, 특정 실시형태가 도면에서 예시된다(그리고 이하 설명된다).
컴퓨팅 디바이스의 터치 감지 표면 상에서의 터치 이벤트의 분류를 위한 방법, 시스템, 및 컴퓨터 프로그램 제품이 제공된다. 의도적인 터치와 의도하지 않은 터치 사이를 구별하기 위해, 머신 학습 분류기가 사용된다. 의도하지 않은 터치 이벤트는, 유저 손바닥이 실수로 또는 다르게 터치 감지 표면과 접촉하는 것으로부터 발생할 수도 있다. 다른 의도되지 않은 터치는 손가락 또는 손의 다른 부분이 핸드헬드 디바이스의 베젤과 접촉하는 것을 포함할 수도 있다. 구별은 이러한 의도하지 않은 터치 이벤트가 컴퓨팅 디바이스에 의해 거절되거나 무시되는 것을 허용할 수도 있다. 의도하지 않은 터치 이벤트의 거절은, 고의적인(deliberate) 손가락 또는 스타일러스(또는 펜) 터치와 같은 의도적인 터치 이벤트의 적절한 인식과 결합하여, 컴퓨팅 디바이스에서 향상된 유저 경험을 제공할 수도 있다. 몇몇 경우에서, 분류 기술은 또한, 상이한 타입의 의도적인 터치 사이, 예를 들면, 손가락 터치 이벤트와 펜 터치 이벤트 사이를 구별할 수도 있다. 구별은 또한, 분류의 신뢰도 또는 모호성 레벨을 나타내는 데이터를 생성하는 것을 포함할 수도 있다.
분류 기술은 스타일러스 또는 펜 터치용으로 구성되는 터치 시스템에 의해 제공되는 도전 과제를 해결할 수도 있다. 예를 들면, 스타일러스 또는 다른 펜 기구를 이용하여 터치 감지 표면 상에 마크를 적용하는 동안, 유저는 의도치 않게 그의 또는 그녀의 손바닥(또는 손목 또는 손의 다른 부분)을 표면 상에 올려 놓을 수도 있다. 그 다음, 컴퓨팅 디바이스는 이 의도치 않은 손바닥 접촉을 정당한 입력 활동으로 잘못 해석할 수도 있고, 그에 의해 컴퓨팅 디바이스에 의한 잠재적으로 원치 않는 거동을 야기할 수도 있다. 다른 의도하지 않은 터치는, 표면의 다른 부분에 대해 유저가 실수로 손(또는 그 손에 의해 파지되는 펜 또는 스타일러스)을 스치거나(brushing) 또는 부딪치는(bumping) 것을 수반할 수도 있다. 분류 기술에 의해 해결될 수도 있는 또 다른 스타일러스 관련 도전 과제는, 스타일러스를 파지하고 있지 않은 손가락, 예컨대 스크린과 종종 접촉하는 손가락을 정확하게 분류하는 것을 수반한다. 문제를 더욱 어렵게 하면, 손바닥이 스크린의 에지 근처를 터치하는 경우, 손바닥의 적은 부분만이 터치 감지 표면에 의해 검출될 수도 있다. 터치 감지 표면과 접촉하는 손바닥의 감소된 영역에도 불구하고 분류 기술은 손바닥을 정확하게 분류할 수도 있다.
분류 기술은, 의도적인 터치와 의도하지 않은 터치 사이를 실시간으로 신뢰성 있게 구별하는 계산적 복잡도가 낮은 프로세스를 제공할 수도 있다. 본 기술은 유저 인터페이스 응답성에서 적절하지 않은 지연을 도입하지 않고도 낮은 에러율을 달성할 수도 있다. 위양성(false positive)(의도하지 않은 터치를 입력하는 것) 및 위음성(false negative)(의도적인 터치를 놓치는 것)은 머신 학습 분류의 구성 및/또는 본 기술의 다른 양태를 통해 방지된다. 머신 학습 분류기는 (예를 들면, 수많은 사람들로부터의) 터치의 각각의 타입에 대해 수집되는 센서 이미지(또는 프레임 데이터)를 통해 트레이닝될 수도 있다. 따라서, 분류 기술은, 유저 인터페이스 프로세싱에서 레이턴시를 최소화하기 위해 반드시 간단한 알고리즘에 의존하지는 않는다. 머신 학습 분류는 실시간으로, 즉 레이턴시 효과를 도입하지 않으면서 신뢰 가능한 분류를 제공한다.
정확도에서의 향상은, 이용가능한 상이한 양의 메모리 및 다른 컴퓨팅 리소스를 갖는 컴퓨팅 디바이스에서 달성될 수도 있다. 상이한 머신 학습 분류기는 상이한 리소스 레벨을 수용하기 위해 사용될 수도 있다. 예를 들면, 몇몇 경우에서, 머신 학습 분류기는, 조건부적 확률 분포를 제공하도록 구성되는 랜덤 결정 포레스트(random decision forest; RDF) 분류기로서 구성된다. RDF 분류기는 수십 킬로바이트의 메모리 단위로 RDF 트리 데이터 구조를 저장하는 것을 수반할 수도 있다. 따라서, RDF 구현은, 터치 분류가, 범용 프로세서(예를 들면, 중앙 프로세싱 유닛 또는 그래픽 프로세싱 유닛)를 이용하여, 소프트웨어 레벨, 예컨대 오퍼레이팅 시스템 레벨에서 발생하는 경우에 유용할 수도 있다.
분류 기술은 또한, 메모리 및 다른 컴퓨팅 리소스가 더욱 제약되는 컴퓨팅 환경에서 구현될 수도 있다. 몇몇 경우에서, 머신 학습 분류는 하나 이상의 룩업 테이블로서 구현되는 결정 트리 분류기를 통해 제공된다. 분류가 마이크로컨트롤러 및 다른 리소스 제약 하드웨어에 의해 구현되는 경우, 룩업 테이블의 더 작은 분류 데이터 구조가 유용하다. 따라서, 분류 기술은 광범위한 컴퓨팅 플랫폼 상에서 구현될 수도 있다. RDF 및 룩업 테이블 예와 연계하여 하기에서 설명되지만, 분류 기술은 임의의 특정한 타입의 머신 학습 분류기로 제한되지 않는다. 예를 들면, 신경망(neural network), 퍼지 로직, 지지 벡터 머신, 및 로지스틱 회귀분석 분류기(logistic regression classifier)가 사용될 수도 있다.
분류 기술은 분류의 정확성을 향상시키기 위해, 터치 이벤트의 복수의 프레임에 걸쳐 터치 정보를 집성(aggregate)하도록 구성된다. 집성은, 단지 하나의 이미지 또는 프레임에 기초하여 터치 이벤트를 분류하려는 시도에서 발생할 수도 있는 문제점을 방지한다. 예를 들면, 손바닥이 표면과 처음 접촉하게 되는 경우, 또는 손바닥이 거의 표면으로부터 제거된 경우, 손바닥은 의도적인 터치와 유사하게 보일 수도 있다. 어느 점에서도, 손바닥의 적은 부분만이 검출될 수도 있다. 몇몇 경우에서, 집성은 복수의 프레임에 걸쳐 분류 스코어를 집성하는 것을 수반한다. 다른 경우에, 집성은 복수의 프레임에 걸쳐 터치 이벤트의 속성(property) 또는 피처를 집성하는 것을 수반한다. 또 다른 경우에서, 분류 기술은 양 타입의 집성의 조합을 사용할 수도 있다. 집성은 또한, 다른 상황에서 발생하는, 예컨대 유저가 전기적 부유 상태에 있는(예를 들면, 유저가 그라운드에 대해 양호한 고주파 연결을 갖지 않음) 것으로 인해 손바닥의 일반적으로 큰 면적이 사라지는 경향이 있는 경우에서 발생하는 위양성을 방지하는 것을 도울 수 있다.
머신 학습 분류기는 복수의 넌바이모달 분류 스코어를 제공하도록 구성된다. 각각의 넌바이모달 분류 스코어는 머신 학습 분류에서의 모호성 또는 신뢰도를 나타낸다. 분류 스코어의 성질은, 예를 들면, 사용되는 분류기의 타입에 따라 변할 수도 있다. 예를 들면, 각각의 분류 스코어는, 분류 스코어가 확률값(예를 들면, 0과 1 사이에 있는 부동 소수점 또는 다른 비정수(non-integer number))인 점에서 넌바이모달일 수도 있다. 복수의(예를 들면, 각각의 타입의 터치 이벤트에 대해 하나) 확률값이 제공될 수도 있다. 다른 타입의 분류 스코어는, 대신, 정수를 사용할 수도 있다. 예를 들면, 분류 스코어는 가능한 스코어의 범위(예를 들면, -9 내지 +9)에 있는 스코어 등급(rating)일 수도 있다. 이러한 경우에, 최종적인 복합 등급을 결정하기 위해, 복수의 넌바이모달 스코어는 조합될 수도 있다(예를 들면, 합산될 수도 있다). 예를 들면, 복수의 룩업 테이블로부터의 넌바이모달 스코어는 각각의 프레임에 대해 조합될 수도 있는데, 그 다음, 넌바이모달 스코어는 터치 이벤트와 관련되는 모든 프레임에 걸쳐 집성될 수도 있다. 다른 타입의 넌바이모달 스코어가 사용될 수도 있다. 예를 들면, 분류 스코어의 등급 타입 및 확률은, 하이브리드 분류 접근법(hybrid classification approach)을 제공하기 위해 다양한 범위로 통합될 수도 있다.
본원에서, 용어 "손가락 터치"는, 유저의 손 또는 다른 신체 부위를 포함하는 임의의 고의적인 또는 의도적인 터치를 가리키기 위해 사용된다. 예를 들면, 손가락 터치는, 엄지손가락의 측면이 터치 감지 표면과 접촉하는 것을 수반할 수도 있는데, 이것은, 예를 들면, 두 손가락에 의한 주밍 제스쳐 동안 발생할 수도 있다. 터치는 직접적일 수도 있거나 또는 간접적일 수도 있다. 예를 들면, 터치는 장갑을 낀 손 또는 다르게는 옷을 입은 신체 부위를 이용하여 이루어질 수도 있다.
용어 "펜 터치"는, 펜, 스타일러스, 또는 터치 감지 표면과 상호작용하기 위해 유저에 의해 파지되는 다른 오브젝트를 포함하는 여러 상이한 의도적인 터치를 가리키기 위해 사용된다. 컴퓨팅 디바이스는, 퍽(puck), 브러시 또는 에어브러시와 같은 특수 툴, 모바일 디바이스, 장난감, 및 다른 물리적 아이콘 또는 유형을 포함하는 다양한 별개의 또는 태그가 붙은(tagged) 물리적 오브젝트와 함께 사용하도록 구성될 수도 있다.
용어 "터치"는, 터치 감지 표면과 관련되는 입력 센서에 의해 검출되는 터치 감지 표면과의 임의의 상호작용을 가리키기 위해 사용된다. 터치는 직접적인 물리적 접촉을 포함 또는 수반하지 않을 수도 있다. 상호작용은 간접적일 수도 있다. 예를 들면, 터치 감지 표면은 근접 센서와 함께 구성될 수도 있다. 상호작용은 다양한 물리적 속성, 예컨대 전자기장을 통해 검출될 수도 있다. 그러므로, 터치의 성질 및/또는 소스는 변할 수도 있는데, 예를 들면, 손가락 또는 손 접촉, 펜 또는 스타일러스 접촉, 호버 기반의 입력(hover-based input), 태그가 붙은 오브젝트, 및 입력 표면과 접촉하여 배치되는 또는 다르게는 입력 표면 근처에 배치되는 임의의 다른 오브젝트를 포함한다. 따라서, 분류 기술은 투영된 커패시턴스, 광학, 및/또는 다른 감지 기술을 수반하는 제스쳐 타입의 그리고 호버 타입의 터치 이벤트와 관련하여 유용할 수도 있다.
용어 "손바닥" 및 "손바닥 터치"는, 터치 감지 표면과의 터치 또는 다른 상호작용으로 해석되도록 유저에 의해 의도되지 않은 임의의 하나 이상의 신체 부위를 수반하는 접촉 또는 다른 터치 표면 상호작용을 가리키기 위해 사용된다. 신체의 부위는, 손바닥 이외의 손의 다른 부위, 예컨대 손의 손가락 관절, 손가락의 측면, 손목 또는 전완(forearm), 또는 다른 신체 부위를 포함할 수도 있다.
분류 기술은 다양한 핸드헬드 및 다른 컴퓨팅 디바이스에서 유용할 수도 있다. 따라서, 터치 감지 표면, 및, 그러므로, 터치 감지 표면과의 상호작용의 성질은 변할 수도 있다. 그러므로, 의도적인 터치는 유저의 손가락 끝 또는 손가락을 수반하는 것으로 제한되지 않는다. 분류 기술은, 하나 이상의 터치 감지 표면 또는 영역(예를 들면, 터치 스크린, 터치 감지 베젤 또는 케이스, 호버 타입 입력의 검출을 위한 센서, 광학 터치 센서, 등등)을 구비하는 임의의 터치 감지 컴퓨팅 디바이스와 관련하여 호환가능하고 유용하다 터치 기반의 컴퓨팅 디바이스의 예는, 컴퓨팅 디바이스에 연결되는 터치 감지 디스플레이 디바이스, 터치 감지 전화 디바이스, 터치 감지 미디어 플레이어, 터치 감지 전자 리더, 노트북, 넷북, 북릿(booklet)(듀얼 스크린), 또는 태블릿 타입 컴퓨터, 또는 터치 감지 표면을 구비하는 임의의 다른 디바이스를 포함하지만, 그러나 이들로 제한되지는 않는다. 그러므로, 터치 감지 컴퓨팅 디바이스의 사이즈 및 폼팩터는 변할 수도 있다. 예를 들면, 터치 감지 표면의 사이즈는 핸드헬드 또는 웨어러블 컴퓨팅 디바이스의 디스플레이로부터 벽 장착식 디스플레이 또는 다른 대형 포맷 디스플레이 스크린까지의 범위에 이를 수도 있다. 그러나, 터치 감지 표면은 디스플레이 또는 터치스크린과 관련될 수도 있거나 또는 관련되지 않을 수도 있고, 또는 이들을 포함할 수도 있거나 또는 포함하지 않을 수도 있다. 예를 들면, 터치 감지 표면은 트랙 패드로서 제공될 수도 있거나 또는 터치 입력이 검출되는 공간의 한 평면으로서 구현되는 가상 표면일 수도 있는데, 예를 들면, 이러한 것은 마이크로소프트 코포레이션(Microsoft Corporation)의 키넥트(Kinect) 디바이스를 사용하여 구현될 수도 있다.
분류 기술은 용량성 터치 시스템과 연계하여 설명된다. 본원에서의 용량성 감지에 대한 참조에도 불구하고, 본원에서 설명되는 터치 분류 기술은 임의의 특정한 타입의 터치 센서에 제한되지는 않는다. 터치 감지 표면은, 대안적으로, 저항성, 음향성, 광학적, 및/또는 다른 타입의 센서를 사용할 수도 있다. 그러므로, 터치 감지 표면은, 대안적으로, 압력, 광, 변위, 열, 저항 및/또는 다른 물리적 파라미터에서의 변화를 검출할 수도 있다. 터치 감지 표면이 입력 디바이스, 예컨대 스타일러스 또는 펜을 검출하는 방식은 변할 수도 있다. 예를 들면, 펜은 패시브일 수도 있고 및/또는 액티브일 수도 있다. 액티브 펜은, 터치 감지 표면에 의해 검출되는 신호를 방출 또는 재송신할 수도 있다. 패시브 펜은, 근접 검출의 목적을 위해 터치 감지 표면의 전자기장 또는 다른 피처와 간섭하는 자석 또는 다른 오브젝트 또는 재료를 스타일러스 팁에 포함할 수도 있다. 터치 센서 기술의 성질의 다른 양태가 변할 수도 있다.
도 1은 터치 분류를 구현하도록 구성되는 터치 감지 디바이스(100)를 묘사한다. 디바이스(100)는 터치 시스템(102) 및 터치 감지 표면(104)을 포함한다. 터치 감지 표면(104)은 터치스크린 또는 다른 터치 감지 디스플레이일 수도 있다. 임의의 수의 터치 감지 표면(104)이 포함될 수도 있다. 이 예에서, 디바이스(100)는 또한 프로세서(106) 및 하나 이상의 메모리(108)를 포함한다. 터치 시스템(102)은 프로세서(106) 및 메모리(108)에 의해 지원되는 동작 환경과 터치 감지 표면(104) 사이의 인터페이스 또는 다른 중간물로서 기능할 수도 있다. 프로세서(106)는 범용 프로세서, 예컨대 중앙 처리 장치(central processing unit; CPU), 그래픽 프로세싱 유닛(graphic processing unit; GPU), 또는 임의의 다른 전용 프로세서 또는 프로세싱 유닛일 수도 있다. 임의의 수의 이러한 프로세서 또는 프로세싱 유닛이 포함될 수도 있다.
터치 시스템(102)은, 터치 감지 표면(104)에서 발생하는 터치 이벤트를 나타내는 데이터를 제공하기 위해, 프로세서(106) 및/또는 메모리(108)에 통신 가능하게 커플링될 수도 있다. 터치 이벤트 데이터는 터치 이벤트의 위치 및 타입을 특정할 수도 있다. 데이터는 또한 타입의 할당에서 모호성 레벨을 나타낼 수도 있다. 이벤트 타입과 관련하여 터치 시스템(102)에 의해, 추가적인, 더 적은, 또는 대안적인 정보가 제공될 수도 있다. 예를 들면, 터치 이벤트 타입은 터치 이벤트 식별 코드를 나타내는 데이터를 제공받을 수도 있다. 터치 이벤트에 대한 위치 및/또는 다른 정보는 터치 시스템(102)에 의해 별개로 제공될 수도 있다.
도 1의 예에서, 터치 시스템(102)은 하나 이상의 터치 센서(110), 펌웨어 및/또는 드라이버(112), 프로세서(114), 및 하나 이상의 메모리(116)를 포함한다. 프로세서(114)는 각각의 메모리(116) 및/또는 펌웨어/드라이버(112)에 통신 가능하게 커플링된다. 프로세서(114)는, 터치 감지 표면(104)을 통해 캡쳐되는 프레임 데이터를 획득하도록 구성된다. 프레임 데이터는, 터치 감지 표면(104)을 통해 캡쳐되는 복수의 프레임을 나타낸다. 각각의 프레임에 대한 프레임 데이터는, 표면(104)에서 터치 이벤트가 발생하고 있는 범위의 이미지를 함께 형성하는 값의 매트릭스, 또는 픽셀을 포함할 수도 있다. 각각의 픽셀의 값은, 표면(104) 상의 특정한 위치에서 센서(110)가 검출한 터치의 양을 나타낸다. 프레임 데이터는 터치 센서(110)의 원시 출력 데이터를 포함할 수도 있고/있거나 원시 출력 데이터의 프로세싱된 표현을 포함할 수도 있다.
프로세서(114)에 의해 프레임 데이터가 획득되는 방식은 변할 수도 있다. 예를 들면, 프레임 데이터는 펌웨어/드라이버(112)를 통해 수신될 수도 있고/있거나 메모리(116)에 액세스하는 것에 의해 획득될 수도 있다.
프레임 데이터는 대안적으로 또는 추가적으로 프로세서(106)에 의해 획득될 수도 있다. 몇몇 경우에서, 프로세서(106)는 터치 타입 결정을 구현하는 목적을 위해 프레임 데이터를 획득한다. 이러한 경우에, 프로세서(114)는 센서(110)를 제어하도록 지시받을 수도 있고/있거나 결정을 위한 준비에서 하나 이상의 전처리(preprocessing) 또는 다른 태스크를 구현하도록 구성될 수도 있다. 프레임 데이터의 프로세싱 및 터치 분류 기술의 다른 양태는, 프로세서(106) 및 프로세서(114)의 임의의 조합에 의해 구현될 수도 있다. 다른 예에서, 디바이스(100)는, 프레임 데이터를 획득하고 프로세싱하는 목적을 위해 단일의 프로세서(즉, 프로세서(106), 프로세서(114), 또는 상이한 프로세서 중 어느 하나)를 포함한다.
디바이스(100)의 터치 시스템 하드웨어의 구성 및 배치는 변할 수도 있다. 예를 들면, 각각의 터치 센서(110)는, 대안적으로, 터치 감지 표면(104)의 컴포넌트로서 구성될 수도 있다. 펌웨어(112)를 통해 제공되는 드라이버 및 다른 정보는, 대안적으로, 메모리(116)에 저장될 수도 있다.
프로세서(114)는 메모리(116) 및/또는 메모리(108)에 저장되는 복수의 명령어 세트를 실행하도록 구성된다. 명령어 세트는 각각의 소프트웨어 모듈로서 배열될 수도 있다. 모듈 또는 다른 명령어 세트는 임의의 원하는 정도까지 통합될 수도 있다. 명령어 세트는, 블롭 정의 명령어(118), 피처 계산 명령어(120), 및 머신 학습 분류 명령어(122)를 포함한다. 블롭 정의 명령어(118)는, 프레임 데이터의 복수의 프레임에 걸쳐 터치 이벤트에 대한 블롭, 또는 연결된 컴포넌트를 정의하는 것에 관한 것일 수도 있다. 각각의 블롭은, 터치 이벤트가 발생하는 각각의 프레임에서 정의될 수도 있다. 피처 계산 명령어(120)는 블롭에 대한 컴퓨팅 속성 또는 피처에 관한 것일 수도 있다. 각각의 피처는, 터치 이벤트의 타입을 식별하는 것을 도울 수도 있는 블롭의 양태의 특성을 묘사할 수도 있다. 머신 학습 분류 명령어(122)는, 피처 세트에 기초하여 머신 학습 분류를 통해 터치 이벤트의 타입을 결정하도록 지시된다. 분류의 출력은 복수의 넌바이모달 분류 스코어를 포함하는데, 복수의 넌바이모달 분류 스코어는 분류에서의 모호성의 레벨을 식별한다. 그 때문에, 피처 세트(들)는, 분류 스코어를 생성하기 위해 머신 학습 분류기에 적용될 수도 있다. 각각의 명령어 세트는 하기에서 복수의 예와 연계하여 설명된다. 추가적인 명령어, 모듈, 또는 명령어 세트가 포함될 수도 있다. 예를 들면, 머신 학습 분류기의 출력에 기초하여 터치 타입을 생성하기 위한 및/또는 터치 타입을 나타내는 데이터를 프로세서(106) 또는 디바이스(100)의 다른 컴포넌트로 송신하기 위한 하나 이상의 명령어 세트가 포함될 수도 있다.
프로세서(114)는, 프레임 데이터를 분석하여 터치 이벤트에 대한 복수의 프레임의 각각의 프레임에서의 각각의 블롭을 정의하기 위해 블롭 정의 명령어(118)를 실행하도록 구성된다. 주어진 터치 이벤트는 임의의 수의 프레임에 걸칠 수도 있다. 복수의 프레임에 걸친 블롭의 정의는, 터치 이벤트를 분류함에 있어서 프로세싱될 입력 데이터를 확립한다.
블롭 정의 명령어(118)는, 프로세서(114)로 하여금, 분석을 위해 프레임 데이터를 준비하는 복수의 전처리 액트를 수행하게 할 수도 있다. 예를 들면, 프레임 데이터(예를 들면, 원시 프레임 데이터)는 분석(예를 들면, 블롭 정의 분석) 이전에 업샘플링될 수도 있고/있거나 임계치 적용될(thresholded) 수도 있다. 프레임 데이터를 업샘플링하는 것은, 양방향 선형 보간을 통한 4배 또는 다른 업샘플링 레이트를 포함할 수도 있다. 양방향 큐빅(bi-cubic), 컨볼루션, 및 최근접 이웃(nearest neighbor) 기술과 같은 다른 업샘플링 프로시져가 사용될 수도 있다. 다른 프로시져가 사용될 수도 있다. 몇몇 경우에서, 프레임 데이터는, 업샘플링 없이, 임계치 적용 없이, 또는 업샘플링 없이 그리고 임계치 적용 없이, 분석된다. 예를 들면, 프레임 데이터는, 룩업 테이블 분류기가 사용되는 몇몇 경우에서는 업샘플링되지 않는다.
프레임 데이터에 임계치 적용하는 것은, 노이즈로 인한 프레임 데이터에서의 작은 변동을 제거하는 것에 관한 것일 수도 있다. 예를 들면, 임계치 아래의 강도 값 내지 제로 값을 갖는 프레임 데이터의 모든 픽셀을 리셋하기 위해, 미리 결정된 강도 임계치가 사용된다. 노이즈를 제거하기 위해, 추가적인 또는 대안적인 필터링 기술이 사용될 수도 있다. 프레임 데이터가 업샘플링되는 경우, 임계치 적용은 업샘플링 이후에 구현된다.
프레임 데이터 임계치는, 터치 시스템(102)에 의해 사용되는 다른 임계치와는 상이할 수도 있다. 예를 들면, 프레임 데이터 임계치는, 터치 이벤트를 검출하기 위한 터치 시스템(102)에 의해 사용되는 임계치보다 더 낮을 수도 있다. 표면(104)과의 실제 접촉 이전 및 이후에 손바닥 및/또는 다른 터치 이벤트를 검출함에 있어서는 더 낮은 임계치가 유용할 수도 있다. 예를 들면, (예를 들면, 손바닥이 표면(104)에 근접함에 따라) 접촉 직후에 손바닥을 검출하는 것은, 의도된 터치로부터 손바닥 터치를 구별하는 목적을 위해, 데이터의 하나 이상의 추가적인 프레임을 제공할 수도 있다. 몇몇 경우에서, 임계치는 터치 시스템 임계치의 구성 가능한 또는 미리 결정된 비율로서 확립될 수도 있는데, 터치 시스템 임계치는, 터치 시스템(102)에 의해 검출되는 노이즈의 레벨에 의존하는 가변적인 임계치일 수도 있다.
임계치 적용은, 대안적으로 또는 추가적으로, 픽셀 단위 기반으로 프레임 데이터의 이진 표현을 생성하도록 구성될 수도 있고 지시될 수도 있다. 각각의 픽셀은, 임계치에 대한 픽셀의 강도 값에 기초하여 "온" 또는 "오프" 중 어느 하나이다. 프레임 데이터의 이진 표현은, 프레임 데이터에서 블롭을 정의하기 위한 프로세스를 단순화하기 위해 사용될 수도 있다.
블롭은, 어떤 "온" 픽셀(예를 들면, 넌제로의 강도를 갖는 픽셀)이 다른 "온" 픽셀에 인접한지를 결정하기 위해, 프레임 데이터를 분석하는 것에 의해 프레임 데이터에서 정의된다. 이러한 인접한 픽셀은 서로 연결되는 것으로 간주된다. 그 다음, 연결된 픽셀의 그룹은, 프레임 이미지에서 연결된 성분, 또는 블롭인 것으로 간주된다. 각각의 프레임은 복수의 블롭을 포함할 수도 있는데, 블롭의 각각은 개별적으로 분류될 수도 있다. 연결된 성분 분석은, 프레임의 모든 블롭을 검출하기 위해, 전체 프레임 데이터세트에 걸쳐 수행된다. 블롭 정의 명령어(118)는, 각각의 블롭을 추적하고 각각의 블롭에 대한 미래의 프로세싱을 지시하는 목적을 위해, 각각의 블롭에게 식별자를 할당할 것을 프로세서(114)에게 지시할 수도 있다.
많은 경우에서, 각각의 블롭은 표면(104)을 터치하는 별개의 오브젝트와 대응한다. 그러나, 동일한 오브젝트에 의해 두 개 이상의 블롭이 유도되는 경우가 존재한다. 예를 들면, 손바닥의 터치 접촉은, 때때로, 두 개 이상의 연결되지 않은 블롭으로 분할된다. 다른 경우에서, 단일의 터치 블롭은, 서로 너무 근접한 복수의 오브젝트, 예를 들면, 서로 터치하고 있는 손가락의 손가락 끝의 결과이다. 그러므로, 프레임 데이터의 연결된 성분 분석은, 이들 잠재적인 복잡성을 해결하기 위해, 프레임 데이터의 추가 프로세싱을 포함할 수도 있다. 예를 들면, 블롭 정의 명령어(118)는, 프로세서(114)로 하여금, 프레임 데이터를 추가로 분석하여 블롭 분할 및/또는 블롭 병합이 보장되는지의 여부를 결정하게 할 수도 있다.
블롭 분할 분석에서, 블롭이 가까운 손가락에 속하는 복수의 손가락 끝의 접촉의 결과인지를 결정하기 위해, 각각의 블롭은 분석될 수도 있다. 결정은 분류기를 사용할 수도 있다. 복수의 손가락에 대응하는 것으로 간주되는 블롭은 분석을 위해 개별적인 서브블롭(sub-blob)으로 분할된다. 하나의 예에서, 각각의 손가락 끝 터치의 좌표는, 블롭에서의 국소적 최대치(예를 들면, 모두 8 개의 바로 이웃보다 더 큰 또는 그와 동일한 강도 값을 갖는 픽셀)의 위치에 기초하여 결정된다. 손가락 끝은 블롭에서 각각의 강도의 국소적 최대치에 위치되는 것으로 가정되고, 블롭은, 원래의 블롭의 각각의 픽셀을, 자신의 위치(예를 들면, 국소적 최대치)가 픽셀에 가장 가까운 손가락 끝과 관련되는 서브블롭에 할당하는 것에 의해 서브블롭으로 분할된다.
주어진 블롭이, 실제로, 복수의 손가락 끝으로부터 생성되는지의 여부에 관한 결정은 분류기를 사용하여 실현될 수도 있다. 하나의 예에서, 분류기는 하나 이상의 결정 트리를 통해 구현된다. 그러나, 여러 상이한 분류기가 사용될 수도 있다. 분류기는 머신 학습될 수도 있거나 또는 머신 학습되지 않을 수도 있다. 예를 들면, 분류기는 경험 또는 다른 데이터에 기초하여 수작업될 수도 있다.
하나의 예시적인 블롭 분할 프로시져에서, 주어진 임계치 이상의 강도를 갖는 블롭에서의 모든 국소적 최대치의 좌표(이것은 서브픽셀 정밀도에 있을 수도 있다)의 리스트가 생성된다. 리스트에서의 최대치는, 그들의 최단 횡단(즉, 리스트의 모든 국소적 최대치를 통과하는 최단 경로)의 가능한 순서 중 하나로 정렬된다. 임계치는, 손가락 끝에 대응하는 국소적 최대치에 의해 달성되는 최소 강도값으로서, 트레이닝 데이터(training data)로부터 발견된다.
분류기에 의해 활용되는 피처는 블롭의 면적, 국소적 최대치의 수, 정렬된 그룹에서(즉, 연속하는 국소적 최대치의 최단 횡단의 순서에서) 연속하는 국소적 최대치 사이의 거리, 및 정렬된 그룹에서 연속하는 국소적 최대치를 연결하는 라인을 따른 강도에서의 변동일 수도 있거나 또는 이들을 포함할 수도 있다. 그러므로, 분류기는, 국소적 최대치 사이의 거리 및 국소적 최대치 사이에서 강도가 저하하는 범위에 응답하도록 구성될 수도 있다.
일단 블롭이 복수의 손가락 끝에 대응하는 것으로 간주되면, 블롭은 별개의 블롭으로 분할되는데, 각각은 국소적 최대치의 각각의 하나와 관련된다. 각각의 이러한 블롭은, 원래의 블롭으로부터의 픽셀의 서브셋에 의해 형성되거나, 또는 그 서브셋을 포함한다. 원래의 블롭의 픽셀은, 더 가까운(또는 가장 가까운) 국소적 최대치를 갖는 신규의 블롭의 각각의 하나와 관련된다.
블롭 분할은 터치 분류에서 더 많은 복잡성을 수반하는 경우에 구현될 수도 있다. 예를 들면, 블롭 분할은, 터치 분류를 위해 랜덤 결정 포레스트 분류기가 사용되는 경우에 구현될 수도 있다. 룩업 테이블 및 다른 낮은 리소스 분류기가 터치 분류를 위해 사용되는 몇몇 경우를 비롯한 다른 경우에는, 블롭 분할이 구현되지 않는다. 그럼에도 불구하고, 블롭 분할은 이들 경우 중 어느 하나에서 구현될 수도 있거나 또는 구현되지 않을 수도 있다.
블롭 분할이 구현되지 않는 경우에, 블롭 정의 명령어(118)는, 각각의 블롭 내에서 국소적 최대치를 식별하고 저장할 것을 프로세서(114)에게 지시할 수도 있다. 각각의 최대치가 식별되면, 후속하는 프레임에서의 각각의 블롭에서의 변화(예를 들면, 각각의 블롭 내에서 발견되는 국소적 최대치)는 추적될 수도 있다. 예를 들면, 손가락 끝이 벌어진 경우 블롭이 두 개의 별개의 블롭이 되면, 국소적 최대치는, 두 개의 별개의 블롭의 별개의 분류를 지원하기 위해 사용될 수도 있다. 최대치의 위치는, 추가적으로 또는 대안적으로, 터치 이벤트를, 터치 시스템(102)의 다른 부분에 의해 검출되는 잠재적인 터치와 상관시키기 위해 사용될 수도 있다. 예를 들면, 펌웨어(112), 메모리(116), 및/또는 다른 메모리는, 분류 없이 터치 이벤트를 검출하는 것에 관한 명령어를 포함할 수도 있다.
블롭 병합은 대안적인 또는 추가적인 블롭 정의 프로시져로서 구현될 수도 있다. 블롭 병합에서, 밀접하게 간격을 둔 블롭은 단일의 블롭을 형성하도록 함께 병합된다. 병합은, 나중에 프로세싱되고 분류되는 블롭의 수를 최소화하도록 구현될 수도 있다. 따라서, 병합은 룩업 테이블 및 다른 낮은 리소스 분류 플랫폼에서 구현될 수도 있다. 병합은 또한, 가까운 손가락 터치를 대응하는 손바닥과 병합하는 데 유용할 수도 있다. 블롭이 함께 병합되는 거리는 구성 가능할 수도 있다. 하나의 예에서, 거리는 두 개의 이미지 픽셀인데, 두 개의 이미지 픽셀은 몇몇 터치 시스템에서 대략 9 mm에 대응할 수도 있다.
몇몇 경우에서, 블롭 정의 명령어(118)는 또한, 블롭을 트랙에 할당할 것을 프로세서(114)에게 지시하는 명령어를 포함한다. 용어 "트랙"은, (예를 들면, 오브젝트가 표면(104)과 접촉하는 동안) 일련의 연속하는 프레임에 걸쳐 특정한 오브젝트에 의해 생성되는 블롭(및 기저의 프레임 데이터)의 집합체를 가리키기 위해 사용된다. 트랙 할당 및 정의는, 임의의 블롭 분할 또는 병합 이후에 구현될 수도 있다. 트랙의 정의는, 복수의 프레임에 걸쳐 블롭이 겪게 되는 움직임 및 다른 변화가 추적되는 것을 허용한다. 블롭을 특정한 트랙에 할당하는 것에 의해, 각각의 프레임의 블롭은 동일한 터치 이벤트의 일부로서 서로 관련될 수도 있다. 예를 들면, 연속하는 프레임에서의 복수의 블롭은, 스와이프 제스쳐에서 유저 손가락 끝이 표면(104)에 걸쳐 이동하는 것을 수반하는 터치 이벤트의 일부로서 서로 관련될 수도 있다. 각각의 신규의 블롭은 신규의 트랙 또는 액티브 트랙 중 어느 하나에 할당될 수도 있다. 액티브 트랙은, 이전 프레임의 시점에서 이미 정의되었던 트랙이다.
몇몇 경우에서, 신규의 블롭은, 각각의 프레임에서의 블롭의 이분 매칭(bipartite matching) 또는 다른 분석을 통해 활성 트랙에 할당될 수도 있다. 현재 프레임에서 검출되는 블롭을, 이전 프레임에서의 블롭과 관련시키기 위해, 다양한 매칭 기술이 사용될 수도 있다. 이분 매칭에서 활용되는 비용 함수는, 각각의 신규의 블롭의 위치와 이전 트랙의 궤도로부터 추정되는 각각의 트랙의 접촉 지점의 예상 위치 사이의 거리에 기초할 수도 있다. 각각의 연속하는 프레임에 의해 제시되는 블롭은, 트랙이 확장되는지 또는 제거되는지의 여부를 결정한다.
액티브 트랙 및 그들의 관련 속성의 리스트가 터치 시스템(102)에 의해 저장된다. 도 1의 예에서, 리스트는 데이터베이스(124)에 저장되는데, 데이터베이스(124)는, 결국에는, 메모리(116) 중 하나에 저장될 수도 있다. 다른 저장 위치 및/또는 데이터 구조가 사용될 수도 있다. 현재 블롭에 의해 확장될 수 없는 트랙은 액티브 트랙의 리스트로부터 제거된다. 임의의 현존하는 액티브 트랙에 매칭될 수 없는 또는 다르게는 임의의 현존하는 액티브 트랙과 관련될 수 없는 각각의 블롭에 대한 리스트에 신규의 액티브 트랙이 추가된다. 블롭 정의 명령어(118)는, 트랙 식별자, 예컨대 트랙 ID 번호를 통해, 블롭을 트랙과 관련시키도록 구성될 수도 있다.
블롭 정의 명령어(118)는, 트랙이 성숙하게(mature) 될 때, 블롭 피처 계산 명령어(120)로 제어를 전달할 수도 있다. 트랙은, 트랙이 적어도 미리 결정된 수의 프레임 확장된 경우 성숙한 것으로 간주된다. 예를 들면, 프레임의 수는 세 개의 프레임일 수도 있다.
트랙에 대한 블롭의 할당은, 머신 학습 분류에서 적용될 피처가 트랙의 피처를 포함하는 경우 유용할 수도 있다. 랜덤 결정 포레스트(RDF) 분류기를 수반하는 예와 연계하여 하기에서 설명되는 바와 같이, 개개의 블롭의 피처 외에 트랙 피처가 적용될 수도 있다. 트랙은, 트랙 피처가 분류에서 사용되지 않는 것들을 비롯한 다른 경우에서, 또한 사용될 수도 있다. 또 다른 경우에서, 블롭은 트랙에 할당되지 않는다. 예를 들면, 트랙은, 작은 피처 세트를 갖는 룩업 테이블 및 다른 낮은 리소스 분류 기술에서 사용되지 않을 수도 있다.
프로세서(114)는, 각각의 터치 이벤트에 대한 복수의 피처 세트를 계산하기 위해, 피처 계산 명령어(120)를 실행하도록 구성된다. 각각의 피처 세트는, 복수의 프레임의 각각의 프레임에서의 각각의 블롭의 속성을 특정한다. 속성은, 블롭이 정의될 때 또는 시간적으로 나중의 시점에, 예컨대 트랙이 성숙한 것으로 간주될 때, 계산될 수도 있다. 예를 들면, 블롭 피처 계산 명령어(120)는, 터치 이벤트의 타입을 결정함에 있어서, 프로세서(114)로 하여금, 머신 학습 분류기에 대한 피처 세트 데이터의 적용 이전에 피처 세트 데이터를 집성하게 하도록 구성될 수도 있다. 다른 경우에, 특정한 블롭에 대한 피처 세트 데이터는, 미래의 피처 데이터세트의 계산이 진행 중일 때, 머신 학습 분류기에 적용된다. 예를 들면, 제1 프레임에 대한 피처 세트 데이터의 적용은, 제2 프레임에 대한 피처 세트 데이터의 계산과 동시에, 분류기에 적용될 수도 있다. 이러한 동시적 프로세싱은, 피처 데이터가 각각의 프레임에 대한 분류기에 개별적으로 적용되는 경우에 유용할 수도 있다.
계산될 블롭 속성은 변할 수도 있다. 랜덤 결정 포레스트(RDF) 분류기를 수반하는 하나의 예에서, 다음의 블롭 속성 중 임의의 조합이 각각의 블롭에 대해 계산될 수도 있다: (i) 면적; 가중된 질량 중심(centroid)(예를 들면,
Figure pct00001
); (ii) 최소, 최대, 및 평균 강도; (iii) 최소, 최대, 및 평균 강도 기울기 크기; (iv) 둘레; (v) 진원도 척도(roundness metric), 예컨대 등주 비율(isoperimetric quotient)(즉, 4*파이*면적/둘레*2); (vi) 가중된 질량 중심으로부터 가장 가까운 이미지 에지까지의 거리; (vii) 이미지 에지 상에서의 블롭 픽셀의 평균 강도(즉, 픽셀은 이미지의 제1 또는 최종 행 또는 열을 따름); (viii) 이미지 에지에서의 폭(즉, 이미지 에지 상에서의 블롭 픽셀의 수); (ix) 가중된 질량 중심에 중심을 둔 (원시 또는 임계치 적용된 프레임 데이터로부터의) 5×5 이미지 패치의 외관(appearance); 및, (x) 가중된 질량 중심에 중심을 둔 (원시 또는 임계치 적용된 프레임 데이터로부터의) 17×17 이미지 패치의 외관. 이미지 패치의 외관은, 패치에서의 각각의 픽셀의 강도 값의 분석을 통해 정량화될 수도 있다. 이미지 패치 피처의 사이즈는 변할 수도 있다. 이미지 패치는 또한, 가중된 질량 중심 이외의 위치에 있는 블롭에 대해 중심을 둘 수도 있거나 또는 다르게는 배치될 수도 있다.
RDF 분류기 및/또는 다른 타입의 머신 학습 분류기에 대해, 추가적인, 더 적은, 또는 대안적인 속성이 계산될 수도 있다. 예를 들면, 룩업 테이블 분류기를 수반하는 하나의 예에서, 다음의 피처가 각각의 블롭에 대해 계산된다: 블롭의 높이(예를 들면, 블롭에서의 최대 픽셀 강도 값); 블롭의 면적; 및 블롭의 텍스쳐. 텍스쳐 피처는 블롭 내에서의 강도 값의 기울기를 나타낼 수도 있다. 예를 들면, 텍스쳐는, 블롭에서의 각각의 픽셀과 블롭의 면적을 8배한 것에 의해 제산되는 각각의 픽셀의 8개의 가장 가까운 이웃 사이의 차이의 절대값의 합으로서 계산될 수도 있다. 손바닥에 의해 생성되는 블롭은 더 편평하게 되거나, 또는 더 평활한 내부를 갖는 경향이 있고, 따라서 복수의 밀접하게 간격을 둔 손가락 터치에 의해 생성되는 블롭보다 더 낮은 텍스쳐를 갖는다. 더 적은 피처의 계산은, 계산 명령어(120)의 코드 공간 및 프로세싱 시간을 감소시킬 수도 있다. 더 적은 피처는 또한, 각각의 블롭에 대한 계산의 결과를 저장함에 있어서 수반되는 메모리의 양을 감소시킬 수도 있다.
트랙을 포함하는 몇몇 경우에서, 블롭 피처 계산 명령어(120)는, 프로세서(114)로 하여금 터치 이벤트의 트랙에 대한 하나 이상의 피처를 계산하게 할 수도 있다. 트랙 내의 각각의 블롭에 대한 피처 세트 외에, 트랙에 대해 트랙 피처 세트가 계산될 수도 있는데, 그 예는 상기에서 열거되어 있다. 트랙 피처 세트는, 트랙이 성숙하게 될 때 계산될 수도 있다.
트랙 피처 세트는, 상기 언급된 블롭 속성 중 하나 이상을 누적하는 피처를 포함할 수도 있다. 랜덤 결정 포레스트(RDF) 분류기를 수반하는 하나의 예에서, 트랙의 미리 결정된 수의 프레임에 걸친 다음의 블롭 속성의 최소, 최대, 및 평균 값이 계산된다: (i) 면적; (ii) 연속하는 프레임 사이의 면적에서의 변화; (iii) 연속하는 프레임 사이의 위치에서의 변화; (iv) 등주 비율; (v) 강도; (vi) 강도 기울기 크기; (vii) 가장 가까운 이미지 에지까지의 거리; (viii) 이미지 에지 상의 픽셀의 평균 강도; 및 (ix) 이미지 에지에서의 폭.
트랙 피처 세트는, 추가적으로 또는 대안적으로, 트랙의 처음 F 개의 프레임에 대한 개개의 블롭의 속성에 관한 피처를 포함할 수도 있다. 따라서, 몇몇 경우에서, 각각의 프레임에서의 블롭 속성의 계산은, 트랙에 대한 데이터를 수집하는 하나의 방식일 수도 있다. 예를 들면, 각기 개개의 블롭에 대해 다음의 피처가 계산될 수도 있다: (i) 면적; (ii) 연속하는 프레임 사이의 면적에서의 변화; (iii) 연속하는 프레임 사이의 위치에서의 변화; (iv) 등주 비율 또는 다른 진원도 척도; (v) 최소, 최대, 및 평균 강도; (vi) 최소, 최대, 및 평균 강도 기울기 크기; (vii) 가장 가까운 이미지(또는 프레임) 에지까지의 거리; (viii) 이미지 에지 상의 픽셀의 평균 강도; (ix) 이미지 에지에서의 폭; (x) 가중된 질량 중심에 중심을 둔 (원시 또는 임계치 적용된 프레임 데이터로부터의) 5×5 이미지 패치에서의 픽셀의 강도; (xi) 가중된 질량 중심에 중심을 둔 (원시 또는 임계치 적용된 프레임 데이터로부터의) 17×17 이미지 패치에서의 픽셀의 강도; (xii) 5×5 이미지 패치로부터의 픽셀의 쌍 사이의 강도 차이; (xiii) 17×17 이미지 패치로부터의 픽셀의 쌍 사이의 강도 차이; (xiv) 17×17 패치에서의 두 개의 동심 링 사이의 최소 강도 차이, 예를 들면
Figure pct00002
, 여기서 r_1<r_2이고, I는 이미지 강도 매트릭스이고 c는 가중된 질량 중심이다. 추가적인, 더 적은, 또는 대안적인 피처가 트랙과 관련하여 계산될 수도 있다.
프로세서(114)는, 터치 이벤트의 타입 또는 성질을 결정하기 위해 머신 학습 분류 명령어(122)를 실행하도록 구성된다. 타입은 머신 학습 분류를 통해 결정된다. 분류는, 복수의 프레임에 대한 복수의 피처 세트에 기초하여 복수의 넌바이모달 분류 스코어를 제공하도록 구성된다. 각각의 넌바이모달 분류 스코어는 머신 학습 분류에서의 모호성 또는 신뢰도를 나타낸다. 예를 들면, 각각의 분류 스코어는, 터치 이벤트가 임의의 타입을 가질 확률일 수도 있다. 다른 예에서, 분류 스코어는, 터치 이벤트가 임의의 타입을 갖는지의 여부를 나타내는 범위 또는 스케일을 따른 개개의 등급이다. 개개의 등급은, 몇몇 경우에서, 누적 등급을 결정하기 위해 집성될 수도 있다. 누적 등급 또는 다른 분류 스코어는, 터치 이벤트 타입을 결정하기 위해 하기에서 설명되는 바와 같이 임계치와 비교될 수도 있다.
터치 이벤트 타입이 일단 결정되면, 분류 명령어(122)는 또한, 프로세서(114)로 하여금, 타입을 나타내는 데이터를 디바이스(100)로 제공하게 하도록 구성될 수도 있다. 도 1의 예에서, 프로세서(114)는 타입 데이터를 프로세서(106)로 제공할 수도 있다. 타입 데이터는 저장될 수도 있거나 또는 호스트 디바이스의 임의의 컴포넌트로 제공될 수도 있다. 타입 데이터는, 터치 이벤트를 나타내는 다른 데이터와 함께 제공될 수도 있다. 몇몇 경우에서, 다른 데이터는, 현재의(예를 들면, 최종) 프레임에서의 터치 이벤트의 좌표 및 트랙 ID를 포함한다. 다른 경우에 다른 데이터가 터치 타입을 구비할 수도 있다. 예를 들면, 터치 타입은 터치 이벤트 좌표를 구비할 수도 있다.
머신 학습 분류 명령어(122)는 분류마다 한 번 또는 반복적으로 호출될 수도 있다. 명령어(122)가 호출되는 방식은, 피처 세트 데이터가 계산되는 때에 의존할 수도 있다. 트랙 데이터가 계산되는 터치 이벤트에 대해, 프로세서(114)는 모든 피처 세트 데이터를, 트랙에 대한 단일의 호출에서 일괄적으로 머신 학습 분류기에 적용할 수도 있다. 몇몇 다른 경우에서, 분류 명령어(122)는, 피처 세트 데이터가 각각의 프레임에 대해 계산됨에 따라 반복적으로 구현된다. 예를 들면, 각각의 블롭에 대한 피처 세트 데이터는 머신 학습 분류기에 개별적으로 적용된다. 그 다음, 이전에 계산된 피처 세트 데이터가 머신 학습 분류기에 적용되는 동안, 추가적인 피처 세트 데이터가 계산될 수도 있다.
머신 학습 분류 명령어(122)는, 프로세서(114)로 하여금, 하나 이상의 분류기 데이터 구조(126)에 액세스하게 할 수도 있다. 분류기 데이터 구조(126)는 메모리(116) 및/또는 다른 메모리에 저장될 수도 있다. 분류기 데이터 구조(126)의 포맷 및 다른 특성은, 사용될 머신 학습 분류기의 타입에 따라 변할 수도 있다. 디바이스(100)가 통상적으로 단일의 분류기만을 가지고 구성되기 때문에, 도 1에서는 예시 및 설명의 용이성을 위해, 분류 데이터 구조의 두 개의 예가 도시된다. 두 개의 예시적인 데이터 구조는 랜덤 결정 포레스트(RDF) 데이터 구조(128) 및 룩업 테이블 데이터 구조(130)이다. 피처 세트 데이터가 통상적으로는 하나의 데이터 구조에만 적용되지만, 몇몇 경우에서는 하나보다 많은 분류기가 사용될 수도 있다. 예를 들면, 복수의 분류기의 출력은 최종 분류를 결정하기 위해 비교되거나 또는 프로세싱될 수도 있다.
RDF 분류는, 분류 명령어(122)에 의해 사용될 수도 있는 복수의 식별력이 있는 분류 기술 중 하나이다. 식별력이 있는 분류기는 입력의 주어진 어레이에 대한 클래스의 세트에 걸쳐 복수의 넌바이모달 분류 스코어를 별개의 확률 분포의 형태로 생성하거나 또는 반환한다. 이 예에서, 클래스는 터치 이벤트의 가능한 타입, 의도된 손가락 끝 터치, 용량성 스타일러스 또는 다른 펜 터치, 및 의도되지 않은 터치, 예컨대 손바닥과 대응한다. 예를 들면, 예시적인 출력은 {0.45, 0.32, 0.23}, 또는 터치 이벤트가 의도된 손가락 끝 터치일 45% 가능성, 터치 이벤트가 펜 터치일 32% 가능성, 그리고 터치 이벤트가 의도되지 않은 터치(예를 들면, 손바닥 터치)일 23% 가능성이다. 그러므로, 각각의 확률 스코어는, 터치 이벤트가 특정 타입을 가질 확률을 나타낸다. 다른 경우에는, 추가적인, 더 적은, 또는 대안적인 클래스가 사용될 수도 있다. 예를 들면, 의도된 터치 이벤트와 의도되지 않은 터치 사이를 구별하는 경우에는 단지 두 개의 클래스만이 사용될 수도 있다.
식별력이 있는 분류기는 복수의 피처 데이터 세트를 입력으로서 수용하도록 구성될 수도 있다. 그러므로, 식별력이 있는 분류기에 대한 입력은, 계산 명령어(120)에 따라 터치 트랙(예를 들면, 처음 몇 개의 프레임 또는 다른 미리 결정된 수의 프레임)에 대해 계산되는 블롭 및 트랙 피처 데이터일 수도 있다. 트랙 예에서, 각각의 트랙에 대한 피처 세트는, 트랙이 성숙하게 되는 시점에 분류기에 적용된다. 그러므로, 분류기는 각각의 성숙한 트랙에 대한 확률 분포 출력을 제공한다.
RDF 데이터 구조(128)는 랜덤화된 결정 트리(RDT1, RDT2, RDT3, ..., RDTn)의 집합체를 포함하는데, 여기서 n은 임의의 수일 수도 있다. 하나의 예에서, 데이터 구조는 20개의 트리를 포함하는데, 각각의 트리는 11의 최대 결정 높이를 갖는다. 랜덤 결정 포레스트 프로시져에서, 동일한 입력 어레이가 각각의 트리에 적용된다. 주어진 입력에 대한 RDF의 출력은, 주어진 입력에 대한 트리의 각각의 출력의 평균을 내는 것에 의해 계산된다. 트리의 수와 높이는 변할 수도 있다.
각각의 RDT는, 각각의 내부(즉, 넌 리프(non-leaf)) 노드가 관련된 "분할" 이진 함수를 갖는 이진 결정 트리이다. 분할 이진 함수가 입력에 적용되는 경우, 입력이 트리의 노드의 다음 레벨에서 노드의 우측 또는 좌측 자식(child)으로 경로 지정되어야 하면, 함수는 결정을 반환한다. 주어진 입력 X에 대한 RDT에서의 분류 프로세스는, 루트의 관련된 분할 함수를 적용하는 것에 의해 트리의 루트 노드에서 X를 프로세싱하는 것에 의해 시작하고 분할 함수의 결과에 대응하는 자식 노드에 대한 입력의 프로세스를 재귀적으로 지속한다. 결국에는, 프로세스는 리프 노드에 도달하는데, 리프 노드에서, 클래스의 세트(C)에 걸쳐 별개의 확률 분포가 프로세스 출력으로서 반환된다.
트리 내의 분할 함수는 피처의 값과 임계 값 사이의 부등식 비교, 즉, f < τ로서 구현될 수도 있는데, 여기서 f는 특정한 피처의 값이고 τ는 임계 값이다. 각각의 노드에서 사용될 특정한 피처 및 임계치는 트레이닝 프로세스 동안 학습된다.
트레이닝 동안, 각각의 노드에서, 각각의 타입의 피처의 공간의 샘플링으로부터 최상의 피처가 선택된다. 피처 공간에 대해, 공간 사이즈의 제곱근만큼 많은 샘플이 샘플링되었다.
도 1의 예에서는, 모두 세 개의 분류 스코어(예를 들면, 손가락 끝, 펜, 손바닥)를 제공하기 위해, 단일의 RDF 구조(128)만이 도시되고 사용된다. 그러나, 몇몇 경우에서는, 분류 스코어를 제공하기 위해, 복수의 RDF 분류기가 사용될 수도 있다. 예를 들면, 세 개의 분류 스코어를 제공하기 위해, 트리의 각각의 세트를 각각 갖는 두 개의 RDF 분류기가 사용될 수도 있다. 하나의 예에서, 의도된 터치와 의도되지 않은 터치 사이를 구별하기 위해, 하나의 RDF 분류기가 사용될 수도 있다. 그 다음, 의도된 터치와 연계하여, 펜 터치와 손가락 끝 터치 사이를 구별하기 위해 다른 RDF 분류기가 사용된다.
RDF 분류의 출력은 몇몇 경우에서는 조정될 수도 있다. 예를 들면, 조정은, 복수의 신규로 성숙된 트랙을 갖는 프레임을 수반하는 상황을 해결할 수도 있다. 프레임에서 신규로 성숙하게 된 트랙 전체의 터치 타입이 분류된 이후, 분류 명령(122)은, 프로세서(114)로 하여금, 의도하지 않은(예를 들면, 손바닥) 터치 이벤트로 분류되는 트랙 근처의 트랙의 타입을 조정하게 할 수도 있다. 제1 트랙의 블롭의 현재 위치가, 의도되지 않은 터치로 분류된 제2 트랙의 블롭의 임계치 내에 있으면, 제1 트랙도 또한 의도되지 않은 터치로서 분류된다. 이들 가까운 블롭이, 종종, 손바닥이 표면(104)에 놓여 있는 손으로부터의 손가락 관절 또는 손가락의 의도되지 않은 터치에 의해 생성되기 때문에 이러한 조정은 유용할 수도 있다.
추가적인 또는 대안적인 머신 학습 분류기가 분류 명령어(122)에 의해 사용될 수도 있다. 예를 들면, 다른 타입의 식별력이 있는 분류 기술이 사용될 수도 있다. 몇몇 예에서, 머신 학습 분류기는 룩업 테이블 분류기이다. 룩업 테이블 기반의 분류는, 예컨대 프로세서(114)가 마이크로컨트롤러일 때, 제한된 프로세싱 및/또는 메모리 리소스를 갖는 디바이스와 연계하여 유용할 수도 있다. 룩업 테이블의 사용은, 분류를 위한 메모리 풋프린트 및 프로세싱 시간을 극적으로 감소시킬 수도 있다.
도 1에서 도시되는 예에서, 룩업 테이블 데이터 구조(130)는, 의도적인 터치 이벤트와 의도하지 않은 터치 이벤트 사이를 구별하기 위해, 한 쌍의 룩업 테이블을 포함한다. 피처 세트 데이터가 각각의 룩업 테이블에 적용된다. 그 다음, 각각의 테이블은, 하기에서 설명되는 바와 같이, 개개의 넌바이모달 분류 스코어 또는 등급(rating)을 제공한다. 제1 룩업 테이블은, 터치 이벤트가 의도된 터치인지의 여부에 관한 제1 등급을 제공하도록 구성될 수도 있다. 제2 룩업 테이블은, 터치 이벤트가 의도되지 않은 터치인지의 여부에 관한 제2 등급을 제공하도록 구성될 수도 있다. 그 다음, 각각의 프레임에 대한 이들 개개의 등급 또는 스코어의 각각은, 각각의 프레임에 대한 프레임 분류 등급 스코어를 생성하기 위해, 조합될 수도 있다. 예를 들면, 터치 이벤트 타입을 추가로 구별하기 위해, 추가적인 룩업 테이블이 제공될 수도 있다. 다른 경우에, 데이터 구조(130)는 단일의 룩업 테이블만을 포함한다.
이 룩업 테이블 기반의 분류 예에서, 피처 세트 데이터는 프레임 단위 기반으로 분류기에 적용된다. 예를 들면, 각각의 프레임에 대한 피처 세트 데이터는 데이터 구조(130)로 각각의 룩업 테이블에 적용된다. 그 다음, 각각의 테이블은, 하기에서 설명되는 바와 같이, 그 프레임에 대한 개개의 넌바이모달 분류 스코어 또는 등급을 제공한다. 그 다음, 터치 이벤트가 존재하는 프레임에 대한 프레임 분류 등급 스코어는, 터치 이벤트에 대한 누적의 다중 프레임 분류 스코어를 결정하기 위해 집성된다(예를 들면, 합산된다).
분류 등급 또는 스코어가 조합되고 그 다음 프레임에 걸쳐 집성되는 방식은, 하나의 등급을 다른 것으로부터 감산하는 것에 의해 개개의 등급이 조합되는 예와 연계하여 하기에서 설명된다. 개개의 등급은 아주 다양한 다른 방식으로 조합될 수도 있다. 예를 들면, 개개의 등급 또는 스코어는, 가산 동작, 평균을 내는 동작, 및/또는 다른 동작을 조합이 수반하도록, 구성될 수도 있다. 프레임에 걸친 분류 스코어의 집성은 또한, 하기에서 설명되는 합산 동작 이외의 방식으로 구현될 수도 있다. 그 다음, 분류 명령어(122)는, 프로세서(114)로 하여금, 누적하는 다중 프레임 분류 스코어가 임계치를 넘어서는지의 여부를 결정하게 할 수도 있다. 몇몇 예에서는, 각각의 가능한 터치 이벤트 타입에 대해 하나씩 복수의 분류 임계치가 제공된다. 임계치(들)가 초과되지 않으면, 모호성의 레벨은, 터치 이벤트를 신뢰성 있게 분류하기에 너무 높은 것으로 간주될 수도 있다. 그 때, 블롭 정의 명령어(118) 및 계산 명령어(120)는 다음 프레임에 대한 피처 세트 데이터를 제공하기 위해 다시 호출될 수도 있다. 그 다음, 신규의 피처 세트 데이터는, 추가적인 스코오링, 집성, 및 임계치 적용을 위해 다시 룩업 테이블(들)로 적용될 수도 있다.
룩업 테이블은, 룩업 테이블(들)에 대한 인덱스로서 블롭의 피처를 사용하도록 구성될 수도 있다. 각각의 블롭에 대해 계산되는 피처는, 상기에서 설명되는 바와 같이, 높이, 사이즈, 및 텍스쳐일 수도 있다. 추가적인, 더 적은, 또는 대안적인 피처가 포함될 수도 있다. 하나의 예에서, 테이블의 각각의 엔트리는, 블롭이 특정한 터치 이벤트 타입, 즉 테이블의 관련된 클래스를 가질 가능성을 나타내는 2비트 등급이다. 3의 등급은, 블롭이 클래스의 멤버일 가능성이 아주 높다는 것을 나타낸다. 2의 등급은, 블롭이 클래스의 멤버일 가능성이 다소 있다는 것을 나타낸다. 1의 등급은, 블롭이 어쩌면 클래스의 멤버이지만, 가능성이 높지 않다는 것을 나타낸다. 제로의 등급은, 블롭이 클래스의 일부일 가능성이 거의 없다는 것을 나타낸다.
이 예에서, 개개의 블롭 등급 스코어는, 의도된 터치(예를 들면, 손가락 또는 펜)에 대한 하나와 의도되지 않은 터치(예를 들면, 손바닥)에 대한 다른 하나의 두 개의 분류 테이블로부터 획득된다. 각각의 블롭은, 피처 세트 데이터를 양 테이블에 적용하는 것에 의해 양 테이블에서 조회된다. 그 다음, 다음과 같이 다른 것으로부터 하나를 감산함으로써 각각의 테이블로부터 개개의 등급을 조합하는 것에 의해, 블롭에 대해 프레임 고유의 블롭 분류 등급(또는 "블롭 분류 등급")이 계산될 수도 있다.
블롭 분류 등급 = fingerTable 등급 - palmTable 등급
결과적으로, 블롭 분류 등급은 -3에서부터 +3까지의 범위에 이르는데, 여기서 양의 값은 블롭이 의도된 터치일 가능성이 높다는 것을 나타내고, 음의 값은 블롭이 의도되지 않은 터치일 가능성이 높다는 것을 나타낸다. 등급의 절대 값은, 등급에서의 분류 또는 모호성 레벨의 확실성을 나타낸다. 블롭 분류 등급인 터치 이미지에서의 각각의 블롭에 대해 계산된다.
그 다음, 터치 이벤트에 대한 누적 블롭 등급을 생성하기 위해, 특정한 터치 이벤트에 대한 블롭 분류 등급은 복수의 프레임에 걸쳐 누적 또는 집성될 수도 있다. 예를 들면, 블롭이 처음 세 개의 프레임에서 +2, +1, 및 +2의 블롭 분류 등급을 가지면, 누적 블롭 등급은 +5, 즉, 세 개의 블롭 분류 등급의 합이다.
그 다음, 누적 블롭 등급은 터치 이벤트 타입을 결정하기 위해 사용된다. 누적 등급은 하나 이상의 임계치와 비교될 수도 있다. 하나의 예에서, 세 개의 가능한 분류 중 하나로의 구별을 지원하기 위해, 두 개의 임계치가 사용된다. 손바닥 임계치 이하의 음의 터치 등급은 손바닥 터치 이벤트로서 분류된다. 손가락 임계치 이상의 양의 터치 등급은 손가락/펜 터치 이벤트로서 분류된다. 모든 다른 터치 등급은 미지의 것으로 분류된다. 손바닥 및 손가락 임계치는 구성 가능하지만, 그러나 예시적인 설정은 손바닥 임계치에 대해 -9이고 손가락 임계치에 대해 +6이다.
누적 블롭 등급은 또한, 추가적인 프레임 데이터를 프로세싱하는 것이 보장되는지의 여부를 결정하기 위해 사용될 수도 있다. 누적 등급이 미지의 범위 내에 있으면, 다른 블롭 분류 등급을 집성치에 통합하기 위해, 추가적인 프레임 데이터가 프로세싱될 수도 있다. 예를 들면, 접근하는 손바닥의 제1 이미지(또는 프레임)는 +1의 블롭 분류 등급을 할당받는다. 이것은 이 손바닥에 대한 첫 번째 이미지이기 때문에, 누적하는 등급은 또한 +1이다. 다음 이미지에서, 블롭 분류 등급은 +1을 다시 할당받는다. 누적 등급은 이제 +2이다. 다음 이미지에서, 손바닥이 더 많이 터치하고 따라서 블롭 분류 등급은 -2로 변하고 누적 등급은 이제 0이다. 그 다음, 다음 번 세 개의 이미지가 -3의 블롭 분류 등급을 할당받고, 누적 등급을 -9로 가져가는데, 이 때, 터치는 손바닥 터치 이벤트로 분류된다. 이전 터치 모두는 미지의 것으로 분류될 것이다. 처음 두 개의 터치 이미지가 손바닥보다는 손가락일 가능성이 약간 많을지라도, 분류기는, 잘못된 위양성(false positive) 분류 없이, 여전히 정확한 최종 분류에 도달한다.
분류 명령어(122)는, 프로세서(114)로 하여금, 블롭을 터치 이벤트와 관련시키게 하도록 구성될 수도 있다. 몇몇 경우에서, 터치 이벤트는, 최초, 펌웨어(112) 또는 터치 시스템(102)의 다른 컴포넌트에 의해 식별될 수도 있다. 각각의 잠재적인 터치 이벤트에 대해, 터치 이벤트의 경계 박스가 정의될 수도 있고, 어떤 블롭이 터치 이벤트와 관련되는지를 식별하기 위해 현재 터치 이미지(또는 프레임 데이터)에서 발견되는 모든 최대치에 비교될 수도 있다. 대부분의 터치 이미지는, 경계 박스 내에 단일의 블롭만을 가질 것이고, 따라서, 터치 이벤트와 대응한다. 복수의 블롭이 경계 박스 내에 놓이는 최대치를 가질 가능성이 낮은 이벤트에서, 터치 이벤트의 누적 등급은 이러한 중첩 블롭에 대한 누적 등급의 평균으로서 계산될 수도 있다.
분류 명령어(122)는 또한, 하나 이상의 고유의 상황을 해결하기 위해, 복수의 조정을 복합 등급에 통합할 수도 있다. 각각의 조정은, 규칙 또는 조건이 만족되는지 또는 존재하는지의 여부에 기초하여 통합된다. 조정은, 프로시져에 유의한 복잡성을 추가하지 않고도, 룩업 테이블의 분류 용량을 보충할 수도 있다.
에지 효과 규칙. 터치 스크린의 에지에서 대부분 떨어지는 손바닥은 그들의 작은 사이즈로 인해 의도된 터치로 보이는 경향을 가질 수도 있다. 이들 상황에서 성능을 향상시키기 위해, 각각의 블롭에서의 에지 픽셀의 수는 추적될 수도 있다. 분류 명령어(122)는, 에지 픽셀의 수가 임계치를 초과하면 결정될 수도 있다. 에지 픽셀의 수가 임계치를 초과하면, 블롭 분류 등급 스코어는 조정된다. 하나의 예에서, 에지 픽셀의 수와 임계치 사이의 차이는 블롭 분류 등급 스코어로부터 감산된다. 이 조정은 이들 블롭의 등급을 손바닥 등급 임계치 쪽으로 치우치게 한다. 단일의 의도된 터치에 기인하는 블롭은 적은 수의 에지 픽셀을 갖는 경향이 있고 따라서 조정 규칙에 의해 영향을 받지 않는다. 표면(104)의 에지에서의 손바닥에 기인하는 블롭은 많은 수의 에지 픽셀을 가질 가능성이 더 높고 따라서 위양성을 최소화하기 위해 손바닥 분류 쪽으로 치우친다. 에지에서의 복수의 밀접하게 간격을 둔 손가락으로 인한 블롭이 이 규칙에 의해 손바닥 등급 쪽으로 또한 치우칠 수도 있고, 위음성으로 나타날 수도 있지만, 이러한 위음성 결과의 등급은, 에지 근처의 제스쳐가 일반적으로 단일의 손가락 제스쳐인 한, 수용가능하게 낮을 수도 있다.
손바닥 근접 조정. 스타일러스를 가지고 쓰고 있는 유저는, 종종, 2개의 손가락과 엄지손가락을 가지고 스타일러스를 파지하는 동안 그들의 손바닥을 스크린 상에 기댄다. 그 손의 다른 두 개의 손가락은 표면(104) 근처에 있고 쓰는 동안 표면(104)과 종종 접촉한다. 이 상황은 의도적인 터치인 것으로 보일 수도 있는 블롭을 생성한다. 이들 상황에서 위양성을 최소화하기 위해, 블롭 분류 등급 스코어는, 블롭의 블롭 면적을 임계 면적으로 나누는 것에 의해 계산되는 몫을 감산하는 것에 의해 조정될 수도 있다. 조정은, 블롭의 면적이 임계치 위에 있고 블롭이 손바닥(즉, 음의 블롭 등급)처럼 보이는 다른 블롭 근처에 있을 때 이루어질 수도 있다. 이 조정은, 위양성을 최소화하기 위해, 손바닥에 아주 가까운 손가락 터치를 손바닥 등급 쪽으로 치우치게 하는 경향이 있다. 스타일러스 터치가 임계치 아래의 면적을 가지기 때문에, 스타일러스 터치가 손바닥에 또한 가까운 경우에도, 조정은 스타일러스 터치 단독의 분류에는 영향을 끼치지 않을 수도 있다.
안티 터치 조정. 유저가 터치 시스템 그라운드에 대해 양호한 고주파 연결을 갖지 않는 경우(즉, 유저가 부유하고 있는 경우), 큰 터치 면적은 사라지거나 또는 심지어 안티 터치(즉, 정상적인 터치가 양으로 될 터치 이미지에서의 음의 면적)로 변하는 경향이 있을 수도 있다. 정상적으로 큰 면적의 손바닥이 사이즈에서 급격히 감소되고, 다른 의도하지 않은 터치, 예컨대 스타일러스를 파지하지 않는 손가락에 대한 간격이 증가하기 때문에, 이 상황은 위양성으로 이어질 수도 있다. 이들 상황에서 위양성을 최소화하기 위해, 두 개의 조정이 분류 등급 프로시져로 통합될 수도 있다. 제1 규칙은, 일단 터치 이벤트 누적 등급이 손바닥 임계치를 넘어서면, 이 블롭과 중첩하는 다음 프레임에서의 임의의 블롭도 또한 손바닥 등급을 할당받는다는 것이다. 손바닥의 일부가 시간에 걸쳐 사라지는 경향이 있을 수도 있기 때문에, 이 조정은 부유 상황에서 성능을 향상시킬 수도 있다. 초기 터치다운 동안 손바닥이 정상적으로 보이는 경향이 있는 동안(그리고 손바닥 등급을 할당받을 수도 있는 동안), 점점 더 많은 손바닥 터치가 표면에 터치함에 따라, 손바닥의 일부는 사라지는 경향이 있고 나머지 부분이 의도적인 터치인 것으로 보일 수도 있다. 그러나, 나머지 부분이 초기 프레임(들)에서 보이는 손바닥과 중첩하기 때문에, 나머지 부분은 여전히 손바닥 등급을 할당받는다.
부유 상황에서 성능을 향상시키기 위해 사용될 수도 있는 제2 규칙은 정상적인 블롭 외에 안티 블롭을 추적하는 것을 수반한다. 안티 블롭은, 터치 이미지에서의 그 픽셀 값이 음의 임계치 이하인 픽셀의 연결된 성분으로서 검출될 수도 있다. 프레임 데이터에서 안티 블롭이 또한 정의되면, 각각의 블롭이 안티 블롭과 중첩하는 경우 블롭 분류 등급 스코어는 블롭 분류 등급 스코어로부터의 값을 감산하는 것에 의해 조정될 수도 있다. 조정은, 안티 블롭이 큰(예를 들면, 안티 블롭의 사이즈가 임계치를 초과하는) 상황으로 제한될 수도 있다. 그 다음, 큰 안티 블롭과 중첩하는 정상적인 블롭은, 블롭 분류 등급으로부터의 값을 감산하는 것에 의해, 손바닥 등급 쪽으로 치우친다. 감산되는 값은, 고정 값 또는 더 큰 블롭 면적에 대해 더 크게 되는 값 중 어느 하나일 수도 있다. 큰 안티 블롭에 대한 임계치를 상대적으로 큰 사이즈(예를 들면, 50 픽셀)로 설정하는 것은, 복수의 밀접하게 간격을 둔 손가락이 대각선 상에 정렬되는 상황과 관련하여 조정의 잘못된 적용을 방지하는 것을 도울 수도 있다.
머신 학습 분류기는, 스타일러스, 손가락 끝 터치, 및 의도하지 않은 비 손가락 끝(non-fingertip) 터치 이벤트를 수반하는 복수의 이미지 시퀀스가 수신되는 오프라인 데이터 수집 스테이지를 통해 트레이닝될 수도 있다. 시퀀스는 광범위한 가능한 디바이스 사용 시나리오에서 및/또는 아주 다양한 유저를 수반하여 구현될 수도 있다. 압력, 제스쳐, 방위 및 다른 터치 이벤트 특성에서의 차이가 제시될 수도 있다. 의도적인 터치(예를 들면, 손가락 끝 터치, 또는 스타일러스, 또는 비 손가락 끝 터치 중 어느 하나)의 시퀀스는 개별적으로 수집되고, 그에 의해 터치 이벤트의 수동 라벨링을 방지한다. 이들 시퀀스에서의 각각의 계산된 트랙에 대한 피처 데이터 세트는 트레이닝 예가 된다.
RDF 예에서, RDF 분류기는 데이터 구조의 각각의 트리를 독립적으로 트레이닝시키는 것에 의해 트레이닝될 수도 있다. 트리는, 루트 노드에서부터 시작하여, 한 번에 하나의 노드씩 트레이닝된다. 각각의 노드는 입력 트레이닝 세트를 사용하여 트레이닝된다. 초기에, 전체 트레이닝 세트는 루트 노드를 트레이닝하기 위해 사용되는 입력 세트이다.
노드(n)에 대한 입력 트레이닝 세트(T)가 주어지면, 그 노드는 분할 함수 및 그들의 파라미터의 공간을 소정 횟수(예를 들면, 분할 함수 및 그들의 파라미터의 공간의 사이즈의 제곱근과 대응하는 수) 샘플링하는 것에 의해 트레이닝된다. 각각의 샘플링된(파라미터화된) 분할 함수에 대해, 복수의 가능한 임계 값(예를 들면, 100 개의 임계치)이 또한 샘플링된다.
분할 함수 타입(splitF), 분할 함수 파라미터(θ), 및 임계치(τ)의 주어진 분할 조합 Σ=(splitF,θ,τ)에 대해, 각각의 입력 x∈T는 splitF_θ(x)의 값이 임계치(τ)보다 작거나 또는 임계치보다 높거나 또는 임계치(τ)와 동일한 것에 따라 분할된다.
트레이닝 프로시져는, 모든 샘플링된 분할 조합에 걸친 노드의 입력 세트(T)에서의 모든 엘리먼트의 분할에 걸친 최대 정보 이득을 달성하는 분할 조합을 식별한다. 이득이 너무 작거나 또는 노드(n)가 최대 미리 선택된 높이(예를 들면, 11)에 있으면, 노드는 리프 노드가 되도록 설정되고 리프 노드와 관련되는 각각의 클래스(예를 들면, 손가락 끝 터치, 펜 또는 스타일러스, 또는 손바닥)의 확률은, 노드의 입력 세트(T)에서의 샘플의 전체 수에 대한 그 클래스의 샘플의 수의 비율로 설정된다. 한편, 이득이 충분히 높거나 또는 노드(n)의 높이가 최대 미리 선택된 높이보다 낮으면, 최대 이득을 달성하는 분할 조합(Σ)은 노드(n)에 관련되고, 노드의 입력 세트(T)는 Σ를 사용하여 두 개의 서브셋(T_L 및 T_R)로 분할되고, 노드(n)은, 입력 세트(T_L 및 T_R)를 각각 사용하여 재귀적으로 각각 트레이닝되는 좌측 자식 및 우측 자식의 두 개의 자식 노드를 할당받는다.
룩업 테이블 분류기를 트레이닝함에 있어서, 트레이닝 샘플을 수집하는 유사한 접근법이 사용될 수도 있다. 예를 들면, 터치 이미지의 시퀀스는 자체 라벨링 방식으로 생성된다. 예를 들면, 각각의 시퀀스는 하나의 클래스(예를 들면, 모든 손가락, 또는 모든 손바닥)의 터치만을 포함한다. 그 다음, 블롭 및 대응하는 피처 데이터가 터치 이미지로부터 추출되고, 트레이닝 샘플로서 사용되도록 트레이닝 프로시져로 전달된다.
하나의 룩업 테이블 트레이닝 예에서, 트레이닝 샘플은 높이 피처에 따른 복수의(예를 들면, 8) 버킷으로 그룹화될 수도 있다. 예를 들면, 터치 이미지의 임의의 픽셀의 최대 높이가 대략 1600인 터치 시스템에서, 0과 199 사이의 높이를 갖는 샘플이 버킷 0에 할당되고, 200-399의 높이가 버킷 1에 할당되고, 기타 등등이다. 분류기의 일반화를 향상시키기 위해, 샘플의 약간의 "스미어링(smearing)"이 또한 구현될 수도 있다. 예를 들면, 높이 210의 샘플이 버킷 0 및 버킷 1 둘 다에 할당될 수도 있다. 스미어링의 양은 구성 가능하고 변할 수도 있지만, 그러나, 하나의 예에서, 그룹 경계의 10% 내의 샘플은 양 그룹에 할당된다. 그 다음, 각각의 높이 그룹 내의 모든 샘플에 대해 면적 및 텍스쳐 피처의 최소 및 최대 값이 결정된다. 스미어링은 이 지점에서 또한 적용되고 따라서 최소 및 최대 값은 작은 양(예를 들면 10%)만큼 아래/위로 조정된다. 그 다음, 샘플은 면적 피처에 따라 복수의(예를 들면, 16개) 세트로 분할된다(상기에서 결정되는 면적 피처에 대한 스미어링된 최소치/최대치 사이에서 균등하게 확산된다). 그 다음, 이들 면적 버킷 내의 샘플은 텍스쳐 피처에 따라 복수의(예를 들면, 16개) 버킷으로 더 분할된다(앞서와 같이 균등하게 확산되고 스미어링됨). 샘플이 면적 및 텍스쳐에 의해 분할되기 때문에, 샘플은 약 10%만큼 다시 스미어링될 수도 있다. 샘플이 스미어링되는 예에서, 스미어링되지 않은 샘플은 스미어링된 샘플보다 더 높은 우선순위를 부여 받을 수도 있다. 더 높은 우선순위는, 각각의 스미어링된 샘플을 유일한 단일의 샘플로서 간주하면서, 각각의 스미어링되지 않은 샘플을 복수(예를 들면, 아홉 개)의 샘플로 간주하는 것에 의해 제공될 수도 있다.
그 다음, 이들 최종 버킷의 각각에서의 샘플의 수는 카운트될 수도 있다. 그 다음, 카운트는 여러 임계치에 비교된다. 샘플의 수가 "가능성이 아주 높은" 임계치 이상이면, 그 버킷에 대한 분류기 테이블 값은 가장 높은 분류 스코어(예를 들면, 3)로 설정된다. 샘플의 수가 "가능성이 높은" 임계치 이상이면, 테이블 값은 다음으로 가장 높은 스코어(예를 들면, 2)로 설정된다. 샘플의 수가 "가능한" 임계치 이상이면, 테이블 값은 다음으로 가장 높은 스코어(예를 들면, 1)로 설정된다. 2비트 스코오링 예에서, 테이블 값은 다르게는 0으로 설정된다. 임계치는 구성 가능하고 사용되는 트레이닝 샘플의 수와 함께 변할 수도 있지만, 그러나, 하나의 예에서, 가능성이 아주 높은, 가능성이 높은, 그리고 가능한 임계치에 대해, 각각, 90, 9, 및 1의 임계치가 사용될 수도 있다. 그 다음, 2비트의 스코어는, 그룹, 세트 및 버킷 분할에 따라 테이블에 저장된다. 그러므로, 테이블 엔트리는 또한, 면적 및 텍스쳐 피처에 대한 최소 값 및 버킷 사이즈를 반영한다. 높이 피처에 대한 최소 값 및 버킷 사이즈는 0 및 200에서 고정될 수도 있다.
분류 동안, 테이블 경계 밖의 임의의 값은, 다음의 예외를 제외하면, 디폴트로 가장 낮은 등급(예를 들면, 0)을 부여 받는다. 1600 이상의 높이를 갖는 블롭은 1400-1599 버킷으로 집중된다. 지정된 높이 버킷에 대한 트레이닝에서 보이는 임의의 손바닥 면적보다 더 큰 면적을 갖는 블롭은 1의 손바닥 등급을 부여 받는다. 이들 예외는, 트레이닝에서 절대 보이지 않았던 아주 큰 블롭에 대해 분류기가 정확하게 일반화하는 것을 도울 수도 있다.
도 2는, 터치 분류를 위한 예시적인 방법(200)을 묘사한다. 방법은 컴퓨터 구현된다. 예를 들면, 도 1에서 도시되는 터치 감지 디바이스(100) 및/또는 다른 터치 감지 디바이스의 하나 이상의 컴퓨터는 방법 또는 방법의 일부를 구현하도록 구성될 수도 있다. 각각의 액트의 구현은, 터치 시스템(102)의 프로세서, 디바이스(100), 및/또는 다른 프로세서 또는 프로세싱 시스템에 의해 실행되는 각각의 컴퓨터 판독가능한 명령어에 의해 지시될 수도 있다. 추가적인, 더 적은, 또는 대안적인 액트가 방법에 포함될 수도 있다. 예를 들면, 방법(200)은 출력 기능성에 관한 액트를 포함하지 않을 수도 있다.
방법(200)은 프레임 데이터를 캡쳐하는 것에 관련되는 하나 이상의 액트로 시작할 수도 있다. 프레임 데이터가 캡쳐되는 방식은 변할 수도 있다. 프레임 데이터는, 상이한 디바이스 또는 프로세서에 의해 및/또는 방법(200)을 구현하는 동일한 프로세서 또는 디바이스에 의해 구현되는 상이한 방법과 연계하여 캡쳐될 수도 있다.
도 2의 실시형태에서, 방법(200)은, 프레임 데이터가 획득되는 액트(202)로 시작한다. 프레임 데이터는, 터치 감지 디바이스에 의해 캡쳐되는 복수의 프레임(또는 터치 센서 이미지)을 나타낸다. 프레임 데이터는, 실시간의 프로세싱을 위해, 터치 시스템(102)의 하드웨어 또는 다른 컴포넌트(들), 예컨대 펌웨어(112)(도 1)로부터 직접적으로 수신될 수도 있다. 대안적으로 또는 추가적으로, 프레임 데이터는 미리 캡쳐되어 저장된 프레임 데이터일 수도 있다. 그러므로, 프레임 데이터는 메모리, 예컨대 도 1과 연계하여 설명되는 메모리 중 하나, 즉, 메모리(108, 116), 및/또는 다른 메모리에 액세스하는 것에 의해 획득될 수도 있다.
액트(204)에서, 프레임 데이터는 복수의 프레임의 각각의 프레임에서의 각각의 블롭을 정의하도록 프로세싱된다. 블롭은 터치 이벤트를 나타낸다. 블롭은, 동일한 프레임에서 발생하는 복수의 터치 이벤트 사이를 구별하기 위해 본원에서 설명되는 바와 같이 복수의 프레임에 걸쳐 서로 관련될 수도 있거나 추적될 수도 있다.
분석은, 액트(206)에서의 프레임 데이터를 업샘플링하는 것, 액트(208)에서의 프레임 데이터에 임계치 적용하는 것, 액트(210)에서의 블롭 분할, 및/또는 액트(212)에서의 블롭 병합을 포함할 수도 있다. 이들 프로세싱 액트의 각각은 상기에서 설명되는 바와 같이 구현될 수도 있다. 방법(200)은 이들 프로세싱 액트 중 임의의 하나 이상을 포함할 수도 있다. 예를 들면, 몇몇 RDF 예에서, 액트(210)의 블롭 분할은 구현되지만, 그러나 액트(212)의 블롭 병합은 구현되지 않는다. 역으로, 몇몇 룩업 테이블 예에서, 액트(212)의 블롭 병합은 구현되지만, 그러나 액트(210)의 블롭 분할은 구현되지 않는다.
몇몇 경우에서(예를 들면, 몇몇 RDF 예에서), 액트(214)에서, 복수의 프레임에 걸친 블롭의 추적이 터치 이벤트에 대해 정의되거나 또는 다르게는 업데이트된다. 트랙 정의는 블롭 정의 이후에 발생할 수도 있다. 현재 프레임으로부터 추출되는 블롭 데이터는 이전 프레임에서 식별되는 트랙을 업데이트하도록 프로세싱된다. 그러므로, 액트(214)는 신규의 트랙을 정의하고, 액티브 트랙을 확장하고, 및/또는 액티브 트랙을 종료한다. 액티브 트랙은, 상기에서 설명되는 바와 같이, 현재 프레임에 존재하는 블롭을 갖는 추가적인 프레임으로 확장되거나, 또는 블롭의 부족 때문에 종료된다. 액티브 트랙을 나타내는 데이터는 또한 데이터 저장소(216)에 저장된다. 액트(214)는, 액티브 트랙의 프로세싱과 연계하여 도시되는 바와 같이 데이터 저장소(216)에 액세스하는 것을 포함할 수도 있다.
다른 경우에(예를 들면, 몇몇 룩업 테이블 예에서), 특정한 프레임에 대한 프레임 데이터는 후속하는 프레임의 프레임 데이터와는 별개로 핸들링된다. 액트(204)는 단일의 프레임의 프레임 데이터의 분석에 관한 것일 수도 있다. 그 다음, 그 프레임 데이터는, 후속하는 프레임의 프레임 데이터의 프로세싱과는 별개로 미래의 프로세싱(예를 들면, 피처 세트 계산 및 머신 학습 분류기에 대한 적용)을 위해 준비된다.
액트(218)에서, 터치 이벤트에 대해 복수의 피처 세트가 계산된다. 각각의 피처 세트는, 복수의 프레임의 각각의 프레임에서의 각각의 블롭의 속성을 특정한다. 액트(218)에서 계산되는 피처 또는 속성은 상기에서 설명되는 바와 같이 변할 수도 있다. 피처 또는 속성의 수는 또한, 분류기의 복잡도와 함께 변할 수도 있다. 도 2에서 도시되는 바와 같이, 몇몇 경우에서, 피처 세트 데이터는, 액티브 트랙 데이터가 저장되는 데이터 저장소(216)에 저장될 수도 있다.
몇몇 경우에서(예를 들면, RDF 예에서), 액트(220)에서 피처 세트가 복수의 프레임에 걸쳐 집성될 수도 있고, 액트(222)에서 트랙 피처가 계산될 수도 있다. 예를 들면, 액트(220 및 222)는, 트랙이 정의되는 및/또는 그렇지 않으면 터치 이벤트의 복수의 프레임에 대한 프레임 데이터가 이미 이용가능한 경우에 구현될 수도 있다. 집성은, 터치 이벤트의 타입을 결정함에 있어서 머신 학습 분류기에 대한 복수의 피처 세트의 적용 이전에 발생한다.
머신 학습 분류를 통해 터치 이벤트의 타입을 결정하기 위해, 액트(224)에서 피처 세트 데이터가 적용된다. 분류는, 상기에서 설명되는 바와 같이, 복수의 프레임에 대한 복수의 피처 세트에 기초하여 복수의 넌바이모달 분류 스코어를 제공하도록 구성된다. 각각의 넌바이모달 분류 스코어는 머신 학습 분류에서의 모호성 또는 신뢰도를 나타낸다. 몇몇 경우에서, 데이터 저장소(216)는 분류를 지원하기 위해 도시되는 바와 같이 액세스될 수도 있다.
트랙 정의 및 확장을 수반하는 경우에, 액트(224)의 분류의 타이밍은, 트랙이 성숙되었는지(예를 들면, 트랙이 세 배 확장됨)의 여부에 기초할 수도 있다. 이들 경우에, 방금 확장된 액티브 트랙이 성숙해지는 경우, 그 터치 타입은 액트(224)에서 결정된다. 그러므로, 액트(224)는 액트(204 및 218)의 프레임 데이터 프로세싱 및 피처 세트 계산과 동시에 그리고 독립적으로 구현될 수도 있다.
이미 분류되었지만, 그러나 (예를 들면, 현재 프레임에서의 블롭에 의한 확장의 결과로서) 현재 프레임에서 액티브하게 유지되는 성숙한 트랙의 프로세싱은 이전 분류에 의존할 수도 있거나 또는 의존하지 않을 수도 있다. 몇몇 경우에서, 액트(224)는, 이전 프레임에서 성숙된 트랙이 그들의 터치 타입을, 트랙이 확장되게 한 블롭으로 자동적으로 전달하도록 구성될 수도 있다. 다른 경우에, 분류는, 신규의 집성된 피처 세트 데이터(즉, 현재 프레임에 의해 제공되는 데이터를 포함함)가 주어지면, 액트(224)의 분류가 반복된다.
머신 학습 분류는, 액트(226)에서 머신 학습 분류기에 대한 하나 이상의 피처 세트의 적용을 포함할 수도 있다. 몇몇 경우(예를 들면, 몇몇 RDF 예)에서, 복수의 프레임에 대한 피처 세트 데이터는 분류기에 일괄적으로 적용된다. 이러한 경우에, 트랙 피처 데이터도 또한 적용될 수도 있다. 다른 경우(예를 들면, 몇몇 룩업 테이블 예)에서, 피처 세트 데이터는 분류기에 프레임 단위로 적용된다.
피처 세트 데이터가 분류기에 적용된 이후, 액트(228)에서 하나 이상의 임계치가 분류 스코어에 적용될 수도 있다. 임계치(들)는, 터치 이벤트 타입을 결정하기 위해 및/또는 (예를 들면, 이벤트 타입이 알려지기에는 모호성 레벨이 너무 높은 경우) 추가적인 프레임 데이터의 프로세싱이 보장되는지의 여부를 결정하기 위해 적용될 수도 있다.
방법(200)은, 출력을 제공하는 것에 관한 하나 이상의 프로시져를 포함할 수도 있다. 도 2의 예에서, 터치 이벤트 타입 및 위치 좌표를 나타내는 출력 데이터가 액트(230)에서 제공된다. 좌표는 터치 이벤트와 관련되는 복수의 프레임에서의 최종 블롭의 위치를 나타낼 수도 있다. 추가적인 또는 대안적인 출력 데이터가 제공될 수도 있다. 예를 들면, 트랙 ID가 제공될 수도 있다.
몇몇 경우에서, 도 2에서 도시되는 방법 액트 중 하나 이상은 반복될 수도 있거나 또는 다르게는 복수의 프레임에 걸친 반복을 수반할 수도 있다. 예를 들면, 룩업 테이블 예에서, 각각의 프레임에 대해 피처 세트 데이터가 룩업 테이블 분류기에 반복적으로 적용된다. 이러한 반복에 관한 추가 상세는 도 4의 예와 연계하여 설명된다.
방법의 액트의 순서는 도시되는 예와는 상이할 수도 있다. 예를 들면, 몇몇 경우에서, 액트는, 예를 들면, 각각의 도달하는 프레임과 연계하여, 파이프라인 양식으로 구현된다. 액트는, 상이한 프레임, 블롭, 및/또는 트랙의 프레임 데이터를 프로세싱하는 동안 병렬로 또는 동시에 구현될 수도 있다. 예를 들면, 액트(218)의 피처 세트 계산은, 액트(224)의 머신 학습 분류 프로세싱의 일부와 동시에 구현될 수도 있다.
도 3은, 랜덤 결정 포레스트(RDF) 분류기를 수반하는 예와 연계한 터치 이벤트 결정 액트(224)(도 2)에 관한 추가 상세를 도시한다. 이 예에서, 터치 분류 프로시져는 액트(302)에서 복수의 프레임에 대한 집성된 피처 세트를 획득하는 것으로 시작한다. 상기에서 설명되는 바와 같이, 집성된 피처 세트는, 일단 터치 이벤트의 블롭이 충분한 수의 프레임에 대해 추적되었다면(즉, 트랙이 성숙까지 확장되었다면), 제공될 수도 있다. 집성된 피처 세트는 또한, 상기에서 설명되는 바와 같이, 추적 피처 데이터를 포함할 수도 있다. 그 다음, 집성된 피처 세트는, 액트(304)에서, RDF 분류기의 각각의 랜덤 결정 트리에 적용된다. 각각의 트리의 출력은, 액트(306)에서, 복수의 넌바이모달 분류 스코어를 생성하기 위해 평균화된다. 이 경우, 각각의 넌바이모달 분류 스코어는, 터치 이벤트가 각각의 타입을 가질 확률을 나타낸다. 그 다음, 터치 이벤트 타입을 결정하기 위해, 임계치가 확률 스코어에 적용될 수도 있다. 각각의 터치 이벤트 타입에 대해, 하나 이상의 임계치가 특정될 수도 있다. 예를 들면, 손가락, 스타일러스, 및 손바닥에 대한 확률 스코어가, 각각, 0.3 아래, 0.6 위, 및 0.2 아래에 있으면, 터치 이벤트는 의도된 스타일러스 터치 이벤트로서 분류될 수도 있다. 그 다음, 터치 이벤트 타입, 트랙 ID, 및 현재 프레임에서의 트랙의 위치(즉, 블롭)를 나타내는 출력이 제공될 수도 있다.
도 4는, 룩업 테이블(lookup table; LUT) 분류기를 수반하는 예와 연계하여 터치 이벤트 결정 액트(224)(도 2)에 관한 추가 상세를 도시한다. 이 예에서, 터치 분류 프로시져는 액트(402)에서 현재 프레임에 대한 피처 세트를 획득하는 것으로 시작한다. 그 다음, 피처 세트는 액트(404)에서 복수의 룩업 테이블에 적용된다. 각각의 룩업 테이블은 개개의(즉, 테이블 고유의) 넌바이모달 분류 스코어를 결정한다. 예를 들면, 복수의 룩업 테이블은, 터치 이벤트가 의도된 터치인 제1 등급(예를 들면, 0 내지 3)을 제공하도록 구성되는 제1 룩업 테이블 및 터치 이벤트가 의도되지 않은 터치인 제2 등급(예를 들면, 0 내지 3)을 결정하기 위한 제2 룩업 테이블을 포함할 수도 있다. 그 다음, 블롭에 대한 프레임 고유의 분류 스코어(즉, 블롭 분류 스코어)를 계산하기 위해, 개개의 분류 스코어는 액트(406)에서 조합된다. 예를 들면, 블롭 분류 스코어가 -3에서부터 +3까지의 범위에 있도록 제2 등급은 제1 등급으로부터 감산될 수도 있는데, 이 경우 음의 수는 의도되지 않은 터치를 더 많이 나타내고 양의 수는 의도된 터치를 더 많이 나타낸다.
터치 이벤트에 대한 프레임 고유의 블롭 분류 스코어는 액트(408)에서 집성된다. 집성은, 이전 프레임에 대한 이전에 계산된 블롭 분류 스코어와의 현재의 블롭 분류 스코어의 합산을 포함할 수도 있다. 그러므로, 누적(즉, 다중 프레임) 분류 스코어가 계산될 수도 있다.
그 다음, 결정 블록(410)은, 임계치가 터치 타입 분류에 대해 충족되는지의 여부를 결정한다. 각각의 터치 이벤트 타입에 대해 각각의 임계치가 제공될 수도 있다. 예를 들면, 누적 스코어가 +7보다 더 크면, 터치 이벤트는 의도된 터치로서 분류된다. 누적 스코어가 -6보다 작으면, 터치 이벤트는 의도되지 않은 터치로서 분류된다. 어느 하나의 임계치가 충족되면, 제어는, 터치 이벤트 타입이 결정되고 출력으로서 제공되는 액트(412)로 전달될 수도 있다. 어느 임계치도 충족되지 않으면, 제어는 다음 프레임에 대한 추가 프레임 데이터를 획득하는 액트(402)로 그리고 추가 프레임 데이터와 관련하여 피처 애플리케이션 액트(404), 스코어 조합 액트(406), 및 스코어 집성 액트(408)의 반복으로 리턴된다.
도 4의 예에서, 여러 특정 상황과 연계하여 분류 스코어 또는 분류를 조정하기 위해 복수의 액트가 구현될 수도 있다. 손바닥 터치 이벤트인 것으로 간주되는 터치 이벤트와 중첩하는 블롭에 대한 후속 프레임에서 조정이 발생해야 하는지의 여부를 결정하기 위해, 결정 블록(414)이 사용될 수도 있다. 이 예에서, 현재 터치 이벤트가 손바닥 터치 이벤트로서 분류되면, 다음 프레임의 블롭과 중첩하는 임의의 것을 손바닥 터치 이벤트로서 분류하기 위해, 제어는 플래그, 상태, 또는 다른 변수가 설정되는 액트(416)로 전달된다.
다른 조정은 분류 스코어에 대한 조정으로서 구현될 수도 있다. 도 4의 예에서, 조정은, 액트(406)에서 블롭 분류 스코어를 계산하는 것과 연계하여 구현된다. 액트(418)에서의 조정은, 상기에서 설명되는 바와 같이, 블롭이 충분히 큰 안티 블롭과 중첩하면(예를 들면, 50 픽셀보다 더 크면) 블롭 분류 스코어로부터의 값을 감산하는 것에 의해 안티 블롭 상황을 해결하는 것에 관한 것일 수도 있다. 액트(420)에서의 다른 조정은, 블롭의 블롭 면적을 상기에서 설명되는 임계치에 의해 제산하는 것에 의해 계산되는 몫을 감산하는 것에 의해 블롭이 손바닥 터치 이벤트에 가까운 경우를 해결하는 것에 관한 것일 수도 있다. 액트(422)에서의 여전히 다른 조정은, 상기에서 설명되는 바와 같이, 에지 픽셀의 수와 블롭 분류 등급 스코어로부터의 임계치 사이의 차이를 감산하는 것에 의한 에지 효과에 관한 것일 수도 있다.
도 5를 참조하면, 예시적인 컴퓨팅 환경(500)은, 상기에서 설명되는 방법 및/또는 시스템의 하나 이상의 양태 또는 엘리먼트를 구현하기 위해 사용될 수도 있다. 컴퓨팅 환경(500)은, 터치 감지 디바이스(100)(도 1) 또는 그 하나 이상의 엘리먼트에 의해 사용될 수도 있거나, 터치 감지 디바이스(100)(도 1) 또는 그 하나 이상의 엘리먼트 안으로 통합될 수도 있거나, 또는 터치 감지 디바이스(100)(도 1) 또는 그 하나 이상의 엘리먼트와 대응할 수도 있다. 예를 들면, 컴퓨팅 환경(500)은, 터치 시스템(102)(도 1) 또는 터치 시스템(102)과 통신하는 호스트 디바이스 또는 시스템을 구현하기 위해 사용될 수도 있다. 컴퓨팅 환경(500)은, 도 2 내지 도 4와 연계하여 설명되는 액트 중 하나 이상을 구현하기 위해 사용되는 범용 컴퓨터 시스템일 수도 있다. 컴퓨팅 환경(500)은, 퍼스널 컴퓨터(personal computer; PC), 서버 컴퓨터, 태블릿 및 다른 핸드헬드 컴퓨팅 디바이스, 랩탑 또는 모바일 컴퓨터, 통신 디바이스 예컨대 이동 전화, 다중프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋탑 박스, 프로그래머블 소비자 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 오디오 또는 비디오 매체 플레이어, 등등을 포함하지만, 그러나 이들로 제한되지는 않는 아주 다양한 컴퓨팅 디바이스 중 하나와 대응할 수도 있다.
컴퓨팅 환경(500)은 기본적 계산 동작을 가능하게 하는 충분한 계산 성능 및 시스템 메모리를 갖는다. 이 예에서, 컴퓨팅 환경(500)은 하나 이상의 프로세싱 유닛(들)(510)을 포함하는데, 하나 이상의 프로세싱 유닛(들)(510)은 본원에서 개별적으로 또는 일괄적으로 프로세서로서 칭해질 수도 있다. 컴퓨팅 환경(500)은 또한 하나 이상의 그래픽 프로세싱 유닛(GPU)(515)을 포함할 수도 있다. 프로세서(510) 및/또는 GPU(515)는 통합 메모리를 포함할 수도 있고/있거나 시스템 메모리(520)와 통신할 수도 있다. 프로세서(510) 및/또는 GPU(515)는 특수 마이크로프로세서, 예컨대 디지털 신호 프로세서(digital signal processor; DSP), 아주 긴 명령어 워드(very long instruction word; VLIW) 프로세서, 또는 다른 마이크로컨트롤러일 수도 있거나, 또는 하나 이상의 프로세싱 코어를 갖는 범용 중앙 프로세싱 유닛(CPU)일 수도 있다. 프로세서(510), GPU(515), 시스템 메모리(520), 및/또는 컴퓨팅 환경(500)의 임의의 다른 컴포넌트는, 시스템 온 칩(system on a chip; SoC), 주문형 반도체(application-specific integrated circuit; ASIC), 또는 집적 회로 또는 시스템으로서 패키지화될 수도 있거나 또는 다르게는 통합될 수도 있다.
컴퓨팅 환경(500)은 또한, 예를 들면, 통신 인터페이스(530)와 같은 다른 컴포넌트를 포함할 수도 있다. 하나 이상의 컴퓨터 입력 디바이스(540)(예를 들면, 포인팅 디바이스, 키보드, 오디오 입력 디바이스, 비디오 입력 디바이스, 햅틱 입력 디바이스, 유선 또는 무선 데이터 송신을 수신하기 위한 디바이스, 등등)가 제공될 수도 있다. 입력 디바이스(540)는 하나 이상의 터치 감지 표면, 예컨대 트랙 패드를 포함할 수도 있다. 터치스크린 또는 터치 감지 디스플레이(들)(555)를 비롯한 다양한 출력 디바이스(550)가 또한 제공될 수도 있다. 출력 디바이스(550)는, 여러 상이한 오디오 출력 디바이스, 비디오 출력 디바이스, 및/또는 유선 또는 무선 데이터 송신을 송신하기 위한 디바이스를 포함할 수도 있다.
컴퓨팅 환경(500)은 또한, 컴퓨터 판독가능한 또는 컴퓨터 실행가능한 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 다양한 컴퓨터 판독가능한 매체를 포함할 수도 있다. 컴퓨터 판독가능한 매체는 스토리지 디바이스(560)를 통해 액세스가능한 임의의 이용가능한 매체일 수도 있고, 분리형 스토리지(570)에서든 및/또는 비분리형 스토리지(580)에서든 휘발성 및 비휘발성 매체 둘 다를 포함한다.
컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수도 있다. 컴퓨터 저장 매체는, 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성의 분리형 및 비분리형의 매체 둘 다를 포함할 수도 있다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(digital versatile disk; DVD) 또는 다른 광학 디스크 스토리지, 자기 카세트, 자기 테이프, 자기 디스크 스토리지 또는 다른 자기 스토리지 디바이스, 또는 원하는 정보를 저장하기 위해 사용될 수 있고 컴퓨팅 환경(500)의 프로세싱 유닛에 의해 액세스될 수도 있는 임의의 다른 매체를 포함하지만 그러나 이들로 제한되지는 않는다.
본원에서 설명되는 터치 이벤트 분류 기술은, 컴퓨터 실행가능한 명령어, 예컨대 프로그램 모듈이 컴퓨팅 환경(500)에 의해 실행되는 것으로 구현될 수도 있다. 프로그램 모듈은, 특정 태스크를 수행하거나 또는 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등등을 포함한다. 본원에서 설명되는 기술은 또한, 태스크가 하나 이상의 원격 프로세싱 디바이스에 의해 수행되는 분산형 컴퓨팅 환경에서, 또는 하나 이상의 통신 네트워크를 통해 연결되는 하나 이상의 디바이스의 클라우드 내에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은, 매체 스토리지 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치될 수도 있다.
기술은, 부분적으로 또는 전체적으로, 하드웨어 로직 회로 또는 컴포넌트로서 구현될 수도 있는데, 하드웨어 로직 회로 또는 컴포넌트는 프로세서를 포함할 수도 있거나 또는 포함하지 않을 수도 있다. 하드웨어 로직 컴포넌트는 필드 프로그래머블 게이트 어레이(Field-programmable Gate Array; FPGA), 주문형 반도체(ASIC), 애플리케이션 고유의 표준 제품(Application-specific Standard Product; ASSP), 시스템 온 칩 시스템(System-on-a-chip system; SOC), 복합 프로그래머블 로직 디바이스(Complex Programmable Logic Device; CPLD), 및/또는 다른 하드웨어 로직 회로로서 구성될 수도 있다.
상기에서 설명되는 분류 기술은, 터치 감지 디바이스에서 고의적인 터치 이벤트와 의도되지 않은 터치 이벤트 사이를 확실히 구별할 수도 있다. 터치 이벤트가 의도적인 손가락 끝 터치에 기인하는지 또는 의도하지 않은 손바닥 터치에 기인하는지의 여부를 결정하기 위해, 머신 학습 분류기가 사용된다. 분류기는 또한 터치 이벤트가 펜 또는 스타일러스 접촉인지 또는 펜 또는 스타일러스 터치인지의 여부를 결정할 수도 있다. 몇몇 분류기(예를 들면, RDF 분류기)는, 예를 들면, 오퍼레이팅 시스템 레벨 또는 메모리 이용 가능성에 대한 엄격한 제약이 제시되지 않는 다른 레벨에서, 소프트웨어 구현을 위해 구성될 수도 있다. 다른 분류기는 리소스 제한 플랫폼, 예컨대 터치 프로세싱 시스템에서 현재 사용되는 마이크로컨트롤러에서의 구현을 위해 구성될 수도 있다. 이러한 경우, 피처의 더 많이 제한된 세트를 갖는 룩업 테이블 분류기(예를 들면, 3D 룩업 테이블 분류기)가 사용될 수도 있다.
몇몇 경우에서, 터치 이벤트의 속성 또는 피처는 분류기에 대한 적용 이전에 복수의 프레임에 걸쳐 계산되고 추적된다. 터치 이벤트에 대한 추적이 미리 결정된 수(예를 들면, 3)의 프레임에 도달한 이후, 터치 이벤트에 대한 복수의 확률 스코어를 결정하기 위해 피처 세트는 분류기에 적용될 수도 있다. 각각의 확률 스코어는, 터치 이벤트가 특정한 타입을 가질 확률을 나타내는 넌바이모달 스코어이다. 그 다음, 확률 스코어에 기초하여 터치 타입의 결정이 결정될 수도 있다.
다른 경우는, 시간에 걸쳐 터치 이벤트에 대한 정보뿐만 아니라 상이한 타입의 분류 스코어를 집성하는 상이한 접근법을 수반할 수도 있다. 몇몇 경우에서, 각각의 프레임에 대한 넌바이모달 분류 스코어를 생성하기 위해, 룩업 테이블 접근법이 사용된다. 그 다음, 분류 스코어는, 터치 이벤트에 대한 누적하는 다중 프레임 분류 스코어를 결정하기 위해, 복수의 프레임에 걸쳐 집성될 수도 있다(예를 들면, 합산될 수도 있다).
머신 학습 분류기에 의해 제공되는 분류 스코어는, 터치가 의도된 또는 의도되지 않은 가능성을 나타낸다. 분류 스코어의 넌바이모달 성질은, 스코어가, 분류기 결정에서의 모호성의 레벨을 또한 나타내는 것을 허용한다. 결정은 프레임 경계에 걸쳐 획득되는 정보, 및 따라서 시간에서의 복수의 시점으로부터의 정보에 기초한다. 이 방식에서, 예를 들면, 처음 터치하는 손바닥의 초기 프레임은, 더 많은 정보가 이용가능하게 됨에 따라 나중에 강한 "손바닥"으로 변하는 약한 "터치" 분류처럼 보일 수도 있다. 따라서 에러 성능은 향상될 수도 있다.
분류 스코어는 하나 이상의 규칙에 의해 조정될 수도 있다. 규칙은 피처 세트 데이터에 의해 제시되는 상황에 따라 적용될 수도 있거나 또는 강화될 수도 있다. 상황은 프레임의 에지에서의 터치 이벤트, 손바닥 근처에서의 손가락 터치, 및 "부유하는" 유저에 의해 야기되는 터치 이미지의 왜곡을 수반할 수도 있다. 조정은 분류기 결과를 손바닥 터치 또는 다른 터치 타입을 향해 또는 손바닥 터치 또는 다른 터치 타입으로부터 멀어지게 치우치게 할 수도 있다.
본원에서 설명되는 기술은, 다양한 다른 범용의 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성과 함께 동작가능하다. 본원의 기술과 함께 사용하기에 적합할 수도 있는 널리 공지된 컴퓨팅 시스템, 환경, 및/또는 구성의 예는, 퍼스널 컴퓨터, 서버 컴퓨터(서버-클라이언트 아키텍쳐를 포함함), 핸드헬드 또는 랩탑 디바이스, 이동 전화 또는 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋탑 박스, 프로그래머블 소비자 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템 또는 디바이스 중 임의의 것을 포함하는 분산형 컴퓨팅 환경, 및 등등을 포함하지만, 그러나 이들로 제한되지는 않는다. 기능성 및 방법 또는 프로세스 단계의 일부 또는 전체는, 유저에 의해 동작되고 있는 클라이언트 또는 로컬 디바이스와 통신하는 네트워크화된 또는 원격 프로세서에 의해 수행될 수도 있다. 로컬 디바이스로부터 원격 디바이스로 기능을 분담하는 잠재적인 이점은, 로컬 디바이스의 컴퓨팅 및 전력 리소스를 절약하는 것이다.
본원의 기술은, 컴퓨터 실행가능한 명령어, 예컨대 프로그램 모듈이 컴퓨터에 의해 실행되는 일반적인 맥락에서 설명될 수도 있다. 일반적으로, 프로그램 모듈은, 특정 태스크를 수행하거나 또는 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조, 및 등등을 포함한다. 본원의 기술은 또한, 통신 네트워크를 통해 링크되는 원격 프로세싱 디바이스에 의해 태스크가 수행되는 분산형 컴퓨팅 환경에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은, 메모리 스토리지 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치될 수도 있다.
본 발명의 제한이 아닌 예시적인 것으로서만 의도되는 특정 예를 참조하여 본 발명이 설명되었지만, 본 발명의 사상과 범위를 벗어나지 않으면서, 개시된 실시형태에 대해 변화, 추가, 및/또는 삭제가 이루어질 수도 있다는 것이 기술 분야의 숙련된 자에게는 명백할 것이다.
상기 설명은 단지 이해의 명확성을 위해 주어지며, 본 발명의 범위 내에서의 수정이 기술 분야에서 숙련된 자에게 명백할 수도 있기 때문에, 상기 설명으로부터 어떠한 불필요한 제한도 이해되지 않아야 한다.

Claims (15)

  1. 컴퓨터 구현 방법으로서,
    터치 감지 디바이스에 의해 캡쳐되는 복수의 프레임을 나타내는 프레임 데이터를 획득하는 단계와,
    상기 복수의 프레임의 각각의 프레임에서의 각각의 블롭(blob) - 상기 블롭들은 터치 이벤트를 나타냄 - 을 정의하기 위해 상기 프레임 데이터를 분석하는 단계와,
    상기 터치 이벤트에 대한 복수의 피처 세트 - 각각의 피처 세트는 상기 복수의 프레임의 각각의 프레임에서의 상기 각각의 블롭의 속성(property)들을 특정함 - 를 계산하는 단계와,
    상기 복수의 프레임에 대한 상기 복수의 피처 세트에 기초하여 복수의 넌바이모달(non-bimodal) 분류 스코어들을 제공하도록 구성되는 머신 학습 분류를 통해 상기 터치 이벤트의 타입을 결정하는 단계를 포함하며
    각각의 넌바이모달 분류 스코어는 머신 학습 분류에서의 모호성 레벨을 나타내는 것인, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 머신 학습 분류는, 상기 터치 이벤트가 각각의 타입을 가질 확률을 각각의 넌바이모달 분류 스코어가 나타내도록, 상기 넌바이모달 분류 스코어를 생성하도록 구성되는 것인, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 넌바이모달 분류 스코어들의 각각의 넌바이모달 분류 스코어는, 상기 복수의 피처 세트를 입력들로서 수용하도록 구성되는 머신 학습 분류기에 의해 생성되는 것인, 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 머신 학습 분류기는 랜덤 결정 포레스트 분류기(random decision forest classifier)를 포함하는 것인, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 터치 이벤트에 대한 상기 복수의 프레임에 걸쳐 상기 블롭들의 트랙을 정의하는 단계와,
    상기 트랙에 대한 트랙 피처 세트를 계산하는 단계
    를 더 포함하고,
    상기 타입을 결정하는 단계는, 상기 트랙 피처 세트를 머신 학습 분류기에 적용하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 복수의 피처 세트를 계산하는 단계는, 상기 터치 이벤트의 상기 타입을 결정함에 있어서 상기 복수의 피처 세트를 머신 학습 분류기에 적용하기 이전에 상기 복수의 피처 세트를 나타내는 데이터를 집성(aggregate)하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 머신 학습 분류는 룩업 테이블 기반의 분류를 포함하는 것인, 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 타입을 결정하는 단계는, 상기 복수의 프레임의 각각의 프레임에 대한 상기 피처 세트를 복수의 룩업 테이블 - 각각의 룩업 테이블은 상기 복수의 넌바이모달 분류 스코어의 각기 개개의 넌바이모달 분류 스코어를 제공함 - 에 적용하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 타입을 결정하는 단계는, 상기 각각의 프레임에 대한 블롭 분류 등급 스코어를 생성하기 위해 상기 각각의 프레임에 대한 상기 개개의 넌바이모달 분류 스코어들의 각각을 조합하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 복수의 룩업 테이블은, 상기 터치 이벤트가 의도된 터치인 제1 등급(rating)을 제공하도록 구성되는 제1 룩업 테이블을 포함하고, 상기 터치 이벤트가 의도되지 않은 터치인 제2 등급을 결정하기 위한 제2 룩업 테이블을 더 포함하고,
    상기 타입을 결정하는 단계는, 상기 각각의 프레임에 대한 상기 블롭 분류 등급 스코어를 결정하기 위해 상기 제1 등급으로부터 상기 제2 등급을 감산하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  11. 제9항에 있어서,
    상기 타입을 결정하는 단계는, 상기 터치 이벤트에 대한 누적되는 다중 프레임(multi-frame) 분류 스코어를 결정하기 위해, 상기 복수의 프레임에 걸쳐 상기 블롭 분류 등급 스코어들을 집성하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 타입을 결정하는 단계는,
    상기 누적되는 다중 프레임 분류 스코어가 복수의 분류 임계치 중 하나를 넘어서는지의 여부를 결정하는 단계와,
    만약 넘어서지 않는다면, 상기 복수의 피처 세트의 추가적인 피처 세트와 연계하여 상기 피처 세트 적용 액트, 상기 분류 스코어 조합 액트, 및 상기 등급 스코어 집성 액트를 반복하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 각각의 피처 세트는, 각각의 프레임에서의 상기 각각의 블롭에 배치되는 이미지 패치의 외관(appearance)을 나타내는 데이터를 포함하는 것인, 컴퓨터 구현 방법.
  14. 제1항에 있어서,
    상기 각각의 피처 세트는, 각각의 프레임에서의 상기 각각의 블롭에 대한 상기 프레임 데이터에서의 강도 기울기를 나타내는 데이터를 포함하는 것인, 컴퓨터 구현 방법.
  15. 제1항에 있어서,
    상기 각각의 피처 세트는, 각각의 프레임에서의 각각의 블롭의 등주 비율(isoperimetric quotient) 또는 진원도(roundness)의 다른 척도(metric)를 나타내는 데이터를 포함하는 것인, 컴퓨터 구현 방법.
KR1020177003813A 2014-07-11 2015-07-07 터치 분류 KR102424803B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/329,052 2014-07-11
US14/329,052 US9558455B2 (en) 2014-07-11 2014-07-11 Touch classification
PCT/US2015/039282 WO2016007450A1 (en) 2014-07-11 2015-07-07 Touch classification

Publications (2)

Publication Number Publication Date
KR20170030613A true KR20170030613A (ko) 2017-03-17
KR102424803B1 KR102424803B1 (ko) 2022-07-22

Family

ID=53758517

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177003813A KR102424803B1 (ko) 2014-07-11 2015-07-07 터치 분류

Country Status (11)

Country Link
US (2) US9558455B2 (ko)
EP (1) EP3167352B1 (ko)
JP (1) JP6641306B2 (ko)
KR (1) KR102424803B1 (ko)
CN (1) CN106537305B (ko)
AU (1) AU2015288086B2 (ko)
BR (1) BR112016029932A2 (ko)
CA (1) CA2954516C (ko)
MX (1) MX2017000495A (ko)
RU (1) RU2711029C2 (ko)
WO (1) WO2016007450A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137269A (ko) * 2018-06-01 2019-12-11 경희대학교 산학협력단 스타일러스 펜을 이용하는 터치 시스템 및 이를 이용한 터치 검출 방법

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11327599B2 (en) 2011-04-26 2022-05-10 Sentons Inc. Identifying a contact type
CN108762577A (zh) 2011-10-18 2018-11-06 卡内基梅隆大学 用于分类触敏表面上的触摸事件的方法和设备
KR101750300B1 (ko) 2011-11-18 2017-06-23 센톤스 아이엔씨. 터치 입력 힘 검출
US11340124B2 (en) 2017-08-14 2022-05-24 Sentons Inc. Piezoresistive sensor for detecting a physical disturbance
KR20140114766A (ko) 2013-03-19 2014-09-29 퀵소 코 터치 입력을 감지하기 위한 방법 및 장치
US9013452B2 (en) 2013-03-25 2015-04-21 Qeexo, Co. Method and system for activating different interactive functions using different types of finger contacts
US9612689B2 (en) 2015-02-02 2017-04-04 Qeexo, Co. Method and apparatus for classifying a touch event on a touchscreen as related to one of multiple function generating interaction layers and activating a function in the selected interaction layer
US10380434B2 (en) * 2014-01-17 2019-08-13 Kpit Technologies Ltd. Vehicle detection system and method
US9558455B2 (en) * 2014-07-11 2017-01-31 Microsoft Technology Licensing, Llc Touch classification
CN104199572B (zh) * 2014-08-18 2017-02-15 京东方科技集团股份有限公司 一种触摸显示装置的触摸定位方法及触摸显示装置
US9329715B2 (en) 2014-09-11 2016-05-03 Qeexo, Co. Method and apparatus for differentiating touch screen users based on touch event analysis
US11619983B2 (en) 2014-09-15 2023-04-04 Qeexo, Co. Method and apparatus for resolving touch screen ambiguities
US9864453B2 (en) * 2014-09-22 2018-01-09 Qeexo, Co. Method and apparatus for improving accuracy of touch screen event analysis by use of edge classification
US10606417B2 (en) 2014-09-24 2020-03-31 Qeexo, Co. Method for improving accuracy of touch screen event analysis by use of spatiotemporal touch patterns
US10282024B2 (en) 2014-09-25 2019-05-07 Qeexo, Co. Classifying contacts or associations with a touch sensitive device
JP6543790B2 (ja) * 2015-03-18 2019-07-17 株式会社トヨタIt開発センター 信号処理装置、入力装置、信号処理方法、およびプログラム
US10642404B2 (en) 2015-08-24 2020-05-05 Qeexo, Co. Touch sensitive device with multi-sensor stream synchronized data
US10083378B2 (en) * 2015-12-28 2018-09-25 Qualcomm Incorporated Automatic detection of objects in video images
TWI606376B (zh) * 2016-08-08 2017-11-21 意象無限股份有限公司 觸控感測裝置及濾除誤觸的觸控方法
US10313348B2 (en) * 2016-09-19 2019-06-04 Fortinet, Inc. Document classification by a hybrid classifier
CN106708317A (zh) * 2016-12-07 2017-05-24 南京仁光电子科技有限公司 判断触控点的方法和装置
US11580829B2 (en) 2017-08-14 2023-02-14 Sentons Inc. Dynamic feedback for haptics
US11057238B2 (en) 2018-01-08 2021-07-06 Brilliant Home Technology, Inc. Automatic scene creation using home device control
CN112041799A (zh) * 2018-02-19 2020-12-04 拉普特知识产权公司 触摸敏感装置中的不需要的触摸管理
CN110163460B (zh) * 2018-03-30 2023-09-19 腾讯科技(深圳)有限公司 一种确定应用分值的方法及设备
KR102606766B1 (ko) 2018-06-01 2023-11-28 삼성전자주식회사 Em 센서 및 이를 포함하는 모바일 기기
US11009989B2 (en) * 2018-08-21 2021-05-18 Qeexo, Co. Recognizing and rejecting unintentional touch events associated with a touch sensitive device
US11747290B2 (en) * 2019-02-27 2023-09-05 Li Industries, Inc. Methods and systems for smart battery collection, sorting, and packaging
US10942603B2 (en) 2019-05-06 2021-03-09 Qeexo, Co. Managing activity states of an application processor in relation to touch or hover interactions with a touch sensitive device
US11231815B2 (en) 2019-06-28 2022-01-25 Qeexo, Co. Detecting object proximity using touch sensitive surface sensing and ultrasonic sensing
KR20190104101A (ko) * 2019-08-19 2019-09-06 엘지전자 주식회사 전자 장치의 터치 스크린에서 오류 터치를 판정하는 방법, 장치 및 시스템
CN111881287B (zh) * 2019-09-10 2021-08-17 马上消费金融股份有限公司 一种分类模糊性分析方法及装置
US11301099B1 (en) * 2019-09-27 2022-04-12 Apple Inc. Methods and apparatus for finger detection and separation on a touch sensor panel using machine learning models
US11442579B2 (en) * 2019-12-13 2022-09-13 Samsung Electronics Co., Ltd. Method and electronic device for accidental touch prediction using ml classification
CA3163734A1 (en) * 2020-01-05 2021-07-08 Aaron T. Emigh Touch-based control device
US11592423B2 (en) 2020-01-29 2023-02-28 Qeexo, Co. Adaptive ultrasonic sensing techniques and systems to mitigate interference
US11620294B2 (en) * 2020-01-30 2023-04-04 Panasonic Avionics Corporation Dynamic media data management
GB2591764A (en) * 2020-02-04 2021-08-11 Peratech Holdco Ltd Classifying pressure inputs
US11599223B1 (en) 2020-03-13 2023-03-07 Apple Inc. System and machine learning method for separating noise and signal in multitouch sensors
CN111524157B (zh) * 2020-04-26 2022-07-01 南瑞集团有限公司 基于摄像头阵列的触屏物体分析方法、系统及存储介质
US11899881B2 (en) 2020-07-17 2024-02-13 Apple Inc. Machine learning method and system for suppressing display induced noise in touch sensors using information from display circuitry
KR20220023639A (ko) * 2020-08-21 2022-03-02 삼성전자주식회사 전자 장치 및 그 제어 방법
US11954288B1 (en) 2020-08-26 2024-04-09 Apple Inc. System and machine learning method for separating noise and signal in multitouch sensors
US11481070B1 (en) 2020-09-25 2022-10-25 Apple Inc. System and method for touch sensor panel with display noise correction
EP4099142A4 (en) 2021-04-19 2023-07-05 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE AND METHOD OF OPERATION
WO2022271879A1 (en) 2021-06-24 2022-12-29 Icu Medical, Inc. Infusion pump touchscreen with false touch rejection
US11537239B1 (en) 2022-01-14 2022-12-27 Microsoft Technology Licensing, Llc Diffusion-based handedness classification for touch-based input
NL2031789B1 (en) * 2022-05-06 2023-11-14 Microsoft Technology Licensing Llc Aggregated likelihood of unintentional touch input

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140024854A (ko) * 2011-02-08 2014-03-03 하워쓰, 인크. 멀티모달 터치스크린 상호대화 장치들, 방법들 및 시스템들

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8018440B2 (en) 2005-12-30 2011-09-13 Microsoft Corporation Unintentional touch rejection
US8103109B2 (en) 2007-06-19 2012-01-24 Microsoft Corporation Recognizing hand poses and/or object classes
US8519965B2 (en) * 2008-04-23 2013-08-27 Motorola Mobility Llc Multi-touch detection panel with disambiguation of touch coordinates
US8502787B2 (en) 2008-11-26 2013-08-06 Panasonic Corporation System and method for differentiating between intended and unintended user input on a touchpad
KR101648747B1 (ko) * 2009-10-07 2016-08-17 삼성전자 주식회사 복수의 터치 센서를 이용한 ui 제공방법 및 이를 이용한 휴대 단말기
US8587532B2 (en) * 2009-12-18 2013-11-19 Intel Corporation Multi-feature interactive touch user interface
KR20110138095A (ko) 2010-06-18 2011-12-26 삼성전자주식회사 터치 시스템에서 좌표 보정 방법 및 장치
GB201011146D0 (en) * 2010-07-02 2010-08-18 Vodafone Ip Licensing Ltd Mobile computing device
US8754862B2 (en) 2010-07-11 2014-06-17 Lester F. Ludwig Sequential classification recognition of gesture primitives and window-based parameter smoothing for high dimensional touchpad (HDTP) user interfaces
WO2012057888A1 (en) 2010-10-28 2012-05-03 Cypress Semiconductor Corporation Synchronizing a stylus with a capacitive sense array
US9244545B2 (en) 2010-12-17 2016-01-26 Microsoft Technology Licensing, Llc Touch and stylus discrimination and rejection for contact sensitive computing devices
CN108762577A (zh) * 2011-10-18 2018-11-06 卡内基梅隆大学 用于分类触敏表面上的触摸事件的方法和设备
US20130106761A1 (en) 2011-10-28 2013-05-02 Atmel Corporation Touch Sensor with Lookup Table
US20130176270A1 (en) 2012-01-09 2013-07-11 Broadcom Corporation Object classification for touch panels
WO2013114599A1 (ja) 2012-02-02 2013-08-08 株式会社タカラトミー 放射線測定装置
US8973211B2 (en) * 2012-02-04 2015-03-10 Hsi Fire & Safety Group, Llc Detector cleaner and/or tester and method of using same
US8902181B2 (en) 2012-02-07 2014-12-02 Microsoft Corporation Multi-touch-movement gestures for tablet computing devices
WO2013126005A2 (en) 2012-02-21 2013-08-29 Flatfrog Laboratories Ab Touch determination with improved detection of weak interactions
US20130241887A1 (en) 2012-03-14 2013-09-19 Texas Instruments Incorporated Detecting and Tracking Touch on an Illuminated Surface
JP2015525381A (ja) 2012-05-04 2015-09-03 オブロング・インダストリーズ・インコーポレーテッド 相互ユーザ手追跡および形状認識ユーザ・インターフェース
EP2662756A1 (en) 2012-05-11 2013-11-13 BlackBerry Limited Touch screen palm input rejection
WO2013171747A2 (en) 2012-05-14 2013-11-21 N-Trig Ltd. Method for identifying palm input to a digitizer
US8902170B2 (en) * 2012-05-31 2014-12-02 Blackberry Limited Method and system for rendering diacritic characters
US9483146B2 (en) 2012-10-17 2016-11-01 Perceptive Pixel, Inc. Input classification for multi-touch systems
US20140232679A1 (en) * 2013-02-17 2014-08-21 Microsoft Corporation Systems and methods to protect against inadvertant actuation of virtual buttons on touch surfaces
US10578499B2 (en) * 2013-02-17 2020-03-03 Microsoft Technology Licensing, Llc Piezo-actuated virtual buttons for touch surfaces
US9811214B2 (en) 2013-03-15 2017-11-07 Tactual Labs Co. Fast multi-touch noise reduction
KR102143574B1 (ko) * 2013-09-12 2020-08-11 삼성전자주식회사 근접 터치를 이용한 온라인 서명 인증 방법 및 이를 위한 장치
US9329727B2 (en) * 2013-12-11 2016-05-03 Microsoft Technology Licensing, Llc Object detection in optical sensor systems
US9430095B2 (en) * 2014-01-23 2016-08-30 Microsoft Technology Licensing, Llc Global and local light detection in optical sensor systems
US9558455B2 (en) * 2014-07-11 2017-01-31 Microsoft Technology Licensing, Llc Touch classification
US9818043B2 (en) * 2015-06-24 2017-11-14 Microsoft Technology Licensing, Llc Real-time, model-based object detection and pose estimation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140024854A (ko) * 2011-02-08 2014-03-03 하워쓰, 인크. 멀티모달 터치스크린 상호대화 장치들, 방법들 및 시스템들

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190137269A (ko) * 2018-06-01 2019-12-11 경희대학교 산학협력단 스타일러스 펜을 이용하는 터치 시스템 및 이를 이용한 터치 검출 방법

Also Published As

Publication number Publication date
US9558455B2 (en) 2017-01-31
US10679146B2 (en) 2020-06-09
JP6641306B2 (ja) 2020-02-05
WO2016007450A1 (en) 2016-01-14
CN106537305A (zh) 2017-03-22
BR112016029932A2 (pt) 2017-08-22
CA2954516C (en) 2022-10-04
EP3167352A1 (en) 2017-05-17
CN106537305B (zh) 2019-12-20
CA2954516A1 (en) 2016-01-14
RU2711029C2 (ru) 2020-01-14
EP3167352B1 (en) 2021-09-15
MX2017000495A (es) 2017-05-01
KR102424803B1 (ko) 2022-07-22
US20170116545A1 (en) 2017-04-27
RU2017100249A3 (ko) 2019-02-12
RU2017100249A (ru) 2018-07-16
JP2017529582A (ja) 2017-10-05
US20160012348A1 (en) 2016-01-14
AU2015288086A1 (en) 2017-01-05
AU2015288086B2 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
KR102424803B1 (ko) 터치 분류
US20220383535A1 (en) Object Tracking Method and Device, Electronic Device, and Computer-Readable Storage Medium
EP3514724B1 (en) Depth map-based heuristic finger detection method
US20140204013A1 (en) Part and state detection for gesture recognition
CN109492576B (zh) 图像识别方法、装置及电子设备
WO2020146123A1 (en) Detecting pose using floating keypoint(s)
CN109657537A (zh) 基于目标检测的图像识别方法、系统和电子设备
Joo et al. Real‐Time Depth‐Based Hand Detection and Tracking
US20160155248A1 (en) System and Method for Interactive Sketch Recognition Based on Geometric Contraints
She et al. A real-time hand gesture recognition approach based on motion features of feature points
JP2015032001A (ja) 情報処理装置および情報処理手法、プログラム
US20150199592A1 (en) Contour-based classification of objects
EP3711027B1 (en) System and method for drawing beautification
Gheitasi et al. Estimation of hand skeletal postures by using deep convolutional neural networks
Bai et al. Dynamic hand gesture recognition based on depth information
US20120299837A1 (en) Identifying contacts and contact attributes in touch sensor data using spatial and temporal features
Dominio et al. Feature descriptors for depth-based hand gesture recognition
KR102107182B1 (ko) 손 제스처 인식 시스템 및 방법
CN111626364B (zh) 手势图像分类方法、装置、计算机设备及存储介质
She et al. An Integrated Approach of Real-time Hand Gesture Recognition Based on Feature Points
KR20160063708A (ko) 온라인 필기 데이터 라인 분할 방법 및 이를 이용하는 장치
CN112596603A (zh) 核电站控制系统的手势操控方法、装置、设备及存储介质
CN116301361A (zh) 基于智能眼镜的目标选择方法、装置和电子设备
CN110941367A (zh) 一种基于双摄的识别方法及终端

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