KR20190068497A - 가상 키보드 제어방법 및 제어장치 - Google Patents

가상 키보드 제어방법 및 제어장치 Download PDF

Info

Publication number
KR20190068497A
KR20190068497A KR1020190063332A KR20190063332A KR20190068497A KR 20190068497 A KR20190068497 A KR 20190068497A KR 1020190063332 A KR1020190063332 A KR 1020190063332A KR 20190063332 A KR20190063332 A KR 20190063332A KR 20190068497 A KR20190068497 A KR 20190068497A
Authority
KR
South Korea
Prior art keywords
key
virtual keyboard
virtual
keyboard control
type
Prior art date
Application number
KR1020190063332A
Other languages
English (en)
Other versions
KR102231511B1 (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 엘지전자 주식회사
Priority to KR1020190063332A priority Critical patent/KR102231511B1/ko
Publication of KR20190068497A publication Critical patent/KR20190068497A/ko
Priority to US16/563,579 priority patent/US10996850B2/en
Application granted granted Critical
Publication of KR102231511B1 publication Critical patent/KR102231511B1/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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1615Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function
    • G06F1/1624Constructional details or arrangements for portable computers with several enclosures having relative motions, each enclosure supporting at least one I/O or computing function with sliding enclosures, e.g. sliding keyboard or display
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0216Arrangements for ergonomically adjusting the disposition of keys of a keyboard
    • 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/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • 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/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/04886Interaction 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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • 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
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)

Abstract

가상 키보드 제어장치 및 제어방법이 개시된다. 가상 키보드 제어방법은, 희망 입력 키와 잘못 입력된 키를 포함하는 타이포 데이터를 수집하는 단계, 타이포 데이터를 분석하는 단계 및 분석 결과를 이용하여 희망 입력 키와 잘못 입력된 키 중에서 적어도 하나의 가상 키의 키매핑을 업데이트 하는 단계를 포함한다. 본 발명에 의하면 타이포 비율 감소라는 보상을 이용하여 딥 러닝 강화학습을 통해 개인 별로 타이포가 적게 발생하는 최적의 키매핑을 구현할 수 있다.

Description

가상 키보드 제어방법 및 제어장치{METHOD AND APPARATUS FOR CONTROLLING VIRTUAL KEYBOARD}
본 발명은 가상 키보드 제어방법 및 제어장치에 관한 것으로서, 더욱 상세하게는 가상 키보드에서 타이포 발생을 줄이거나 방지하기 위한 가상 키보드 제어방법 및 이를 이용하는 제어장치에 관한 것이다.
컴퓨터 발전 과정의 현재 시점에서 키보드와 마우스는 가장 범용적인 컴퓨터 입력장치에 해당한다. 랩탑 컴퓨터, 테블릿 컴퓨터 및 스마트 폰과 같은 휴대용 디바이스에서도 키보드와 마우스에 준하는 터치 패드, 터치 스크린 등의 입력장치가 주로 사용된다.
모바일 기기의 입력 장치로 소프트웨어 키보드가 주류를 형성하고 있는 가운데 다른 한편으로 하드웨어 키보드가 소수의 마니아 층을 형성하고 있다. 하드웨어 키보드의 장점은 정확한 입력이 가능하고 손맛이라고 하는 입력감이 있다는 점이다. 반면에 소프트웨어 키보드, 특히 터치스크린의 장점은 필요 시에 입력 장치로, 그 외에는 디스플레이 장치로 활용할 수 있어서 공간 활용성이 높다는 점이다.
하드웨어 키보드의 장점에도 불구하고 공간 활용성 때문에 모바일 기기에서는 소프트웨어 키보드가 많이 이용되고 있다. 그러나 소프트웨어 키보드의 단점인 높은 타이포 비율은 문제점으로 지적된다.
타이포 방지를 위한 키 간격 조절 방법이 선행 기술 1에 의해 개시되어 있다. 선행기술 1에 따르면 희망 입력 키와 타이포 유발된 키 사이의 간격 조정에 의해 타이포가 방지되는 것으로 되어 있으나, 사용자의 입력 습관이 변경되고, 조정된 간격에 적응 시간이 요구되고, 이 과정에서 2차 타이포가 유발될 가능성이 높다는 문제점이 있다.
포터블 전자 기기에서 타이포 방지를 위한 글자판이 선행 기술 2에 의해 개시되어 있다. 선행 기술 2에 따르면, 기존의 한 줄의 쿼티(QWERTY) 자판 배열이 두 줄로 분할됨에 따라 키보드의 면적이 증가하고, 범용성이 낮아지고, 배열 변경에 대한 적응 시간이 요구되고 그 과정에서 2차 타이포가 유발될 가능성이 높다는 문제점이 있다.
한국 공개특허공보 제10-2017-0070426호(2017.06.22. 공개) 한국 공개특허공보 제10-2014-0145908호(2014.12.24. 공개)
본 발명의 일 과제는, 가상 키의 모양 및 배열의 변경으로 인해 2차 타이포가 발생하는 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 과제는, 가상 키의 모양 및 배열의 변경에 따라 사용자 적응이 필요했던 종래 기술의 문제점을 해결하는 것이다.
본 발명의 일 과제는, 변경된 가상 키의 모양 및 배열을 사용자 별로 서로 다르게 적용할 수 없었던 종래 기술의 문제점을 해결하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 실시 예에 따른 가상 키보드 제어방법은, 가상 키보드 제어장치에 의해 수행된다. 가상 키보드 제어장치는 프로세서를 포함할 수 있고, 프로세서는 가상 키보드 제어방법을 실질적으로 수행할 수 있다.
여기서, 사용자 단말(User Equipment)은 가상 키보드 제어장치를 포함하도록 구성될 수 있으므로, 사용자 단말도 가상 키보드 제어방법을 수행할 수 있다.
가상 키보드(Virtual Keyboard)는, 하드웨어적인 구성요소와 소프트웨어적인 구성요소를 포함하도록 구성될 수 있다. 하드웨어적인 구성요소에는 터치스크린패널(Touch Screen Panel, TSP), 빔프로젝터와 같은 본체와 이를 제어하는 제어부가 포함될 수 있다. 또한, 제어부는 프로세서를 포함하도록 구성될 수 있다. 소프트웨어적인 구성요소에는 가상 키보드를 제어하는 제어 프로그램이 포함될 수 있다. 제어 프로그램을 구성하는 명령 로직들은 메모리에 저장된 상태에서 프로세서에 의해 실행될 수 있다.
소프트웨어 키보드는 하드웨어 쿼티 키보드의 반대 개념으로 사용되는 경우, 가상 키보드와 동일한 의미를 갖는다. 경우에 따라 소프트웨어 키보드는 가상 키보드의 소프트웨어적인 구성요소의 동의어로 사용될 수 있다.
본 발명의 일 실시 예에 따른 가상 키보드 제어방법은, 희망 입력 키와 잘못 입력된 키를 포함하는 타이포 데이터를 수집하는 단계, 타이포 데이터를 분석하는 단계 및 분석 결과를 이용하여 희망 입력 키와 잘못 입력된 키 중에서 적어도 하나의 가상 키의 키매핑을 업데이트 하는 단계를 포함하도록 구성될 수 있다.
여기서, 키매핑이란, 가상 키보드에서 신체 접촉 또는 신체 감지가 발생하는 센싱 영역과 출력될 키 값을 서로 매핑한 것으로, 어느 범위의 좌표 공간에서 발생하는 신체 접촉 또는 신체 감지를 해당 키 입력으로 파악할 것인지를 결정한다.
또한, 타이포 데이터를 분석하는 단계는, 타이포 비율을 연산하는 단계를 포함하도록 구성될 수 있다. 그 밖에 타이포 데이터를 분석하는 단계는, 타이포가 발생한 경우, 잘못 눌려진 키의 센싱 영역 내에서 신체 접촉 또는 신체 감지가 실제 발생한 지점과 희망 키의 센싱 영역 간의 관계를 분석하는 단계를 더 포함하도록 구성될 수 있다.
또한, 가상 키보드 제어방법은, 새로운 키매핑에 따른 새로운 타이포 데이터를 수집하는 단계를 더 포함할 수 있다. 여기서, 새로운 타이포 데이터에 대해, 타이포 데이터를 분석하는 단계 및 키매핑을 업데이트 하는 단계가 반복될 수 있다.
일 실시 예로서 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑을 업데이트하는 단계는, 인공지능, 특히 딥 러닝의 강화학습 과정을 통해 구현될 수 있다. 이 경우, 에이전트(agent)는 가상 키보드 제어장치 또는 이를 포함하는 가상 키보드에 해당하고, 가상 키보드는, 타이포 비율의 점진적인 감소를 통해 보상(reward) 받으면서, 타이포 비율이 점점 낮아져서 영(zero)에 수렴하게 되는 상태(state)를 강화학습 과정을 통해 찾을 수 있다.
또한, 가상 키보드 제어방법은, 키매핑 업데이트 전과 후의 타이포 비율이 감소되었는지 여부를 판단하는 단계를 더 포함할 수 있다. 여기서, 타이포 비율이 감소된 경우, 키매핑 업데이트에 관한 정보를, 타이포 데이터를 분석하는 단계를 포함하여, 그 이하의 어느 한 단계로 피드백 시킬 수 있다.
또한, 타이포는, 가상 키보드와 신체의 접촉 또는 가상 키보드 상에서의 신체의 동작에 따른 가상의 키 사이의 간섭에 의해 발생할 수 있다.
또한, 타이포 데이터는, 희망 입력 키 및 잘못 입력된 키에 대응하는 2차원 좌표 값을 포함하도록 구성될 수 있다. 여기서, 가상 키보드가 3차원 공간에 생성되는 경우 타이포 데이터는 키에 대응하는 3차원 좌표 값을 포함하도록 구성될 수 있다.
또한, 타이포 데이터를 분석하는 단계는, 인공지능 알고리즘을 이용하여 인공지능 모델을 학습시키는 단계를 포함하도록 구성될 수 있다.
또한, 키매핑을 업데이트 하는 단계는, 인공지능 알고리즘에 기반하여 학습된 인공지능 모델을 이용하여 상기 키매핑을 업데이트 하는 단계를 포함하도록 구성될 수 있다. 여기서, 인공지능(Artificial Intelligence, AI) 모델은 딥 러닝(Deep Learning) 모델 중에서 지도학습(Supervised Learning) 또는 강화학습(Reinforcement Learning) 모델을 포함할 수 있다. 지도학습 모델에서는, 잘못 눌려진 키의 센싱 영역에서 실제 센싱된 지점과 희망 키의 센싱 영역과의 관계 및 해당 관계에서의 구체적인 키매핑 업데이트 정보가 레이블이 표시된 학습 데이터로 이용될 수 있다.
또한, 강화 학습 모델에서 타이포 비율의 점진적인 감소가 보상(reward)으로 작용하여 타이포 비율이 영에 수렴하는 상태(state)에 도달하기 위해 에이전트(agent)에 해당하는 가상 키보드 제어장치 또는 이를 포함하는 가상 키보드는 강화학습을 계속 수행할 수 있다.
또한, 키매핑을 업데이트 하는 단계는, 임계 타이포 비율을 갖는 가상 키를 대상으로 상기 가상 키에 할당된 센싱 영역의 위치, 모양 및 넓이 중에서 적어도 하나를 업데이트 하는 단계를 포함하도록 구성될 수 있다.
여기서, 센싱 영역의 위치 업데이트는 잘못 입력된 키의 센싱 영역과 희망 키의 센싱 영역의 상대적 위치를 조정하는 것을 포함한다. 그리고 모양 업데이트는 모서리가 있는 다각형 또는 모서리를 없앤 타원 또는 원형으로 변경하는 것을 포함한다. 그리고 넓이 업데이트는 이전의 센싱 영역의 면적을 축소하거나 넓히는 것을 포함한다.
또한, 상기 가상 키 자체의 위치, 모양 및 넓이는 변경되지 않을 수 있다. 가상 키 자체에 변화가 없으므로 사용자는 키매핑을 직접적으로 체감할 수 없으며, 타이핑 결과로서 타이포 비율이 낮아지는 것에 의해 변화가 느껴질 수 있다.
본 발명의 일 실시 예에 따른 가상 키보드 제어장치는, 가상 키보드로부터 희망 입력 키와 잘못 입력된 키에 관한 정보를 포함하는 타이포 데이터를 입력 받는 입력 인터페이스, 가상 키보드의 센싱 영역 및 이에 대응하는 키 값을 포함하는 키매핑 정보를 저장하고 있는 메모리 및 신체 센싱에 따라 상기 키매핑 정보를 이용하여 해당 키에 대응하는 키 값을 출력하는 제어부를 포함하도록 구성될 수 있다. 여기서, 제어부는, 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑 정보를 업데이트 하는 프로세서를 포함하도록 구성될 수 있다.
또한, 프로세서는, 타이포 데이터를 이용하여 타이포 비율을 연산할 수 있다.
또한, 프로세서는, 새로운 키매핑 정보에 따른 타이포 데이터에 대해, 타이포 비율 감소가 영에 수렴할 때까지 상기 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑 정보를 업데이트 할 수 있다.
또한, 프로세서는, 키매핑 업데이트 전과 후의 타이포 비율이 감소되었는지 여부를 판단하고, 타이포 비율이 감소된 경우, 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑 정보를 업데이트 함에 있어서, 키매핑 업데이트에 관한 정보를 피드백 정보로서 이용할 수 있다.
또한, 타이포는, 가상 키보드와 신체의 접촉 또는 가상 키보드 상에서의 신체의 동작에 따른 가상의 키 사이의 간섭에 의해 발생할 수 있다.
또한, 타이포 데이터는, 희망 입력 키 및 잘못 입력된 키에 대응하는 2차원 좌표 값을 포함하도록 구성될 수 있다.
또한, 프로세서는, 인공지능 알고리즘을 이용하는 인공지능 모델 학습을 통해 데이터를 분석할 수 있다.
또한, 프로세서는, 인공지능 알고리즘에 기반하여 학습된 인공지능 모델을 이용하여 상기 키매핑을 업데이트 할 수 있다.
또한, 프로세서는, 임계 타이포 비율을 갖는 가상 키를 대상으로 상기 가상 키에 할당된 센싱 영역의 위치, 모양 및 넓이 중에서 적어도 하나를 업데이트 할 수 있다.
또한, 프로세서는, 상기 가상 키 자체의 위치, 모양 및 넓이는 변경하지 않을 수 있다.
본 발명에 의하면, 타이포 비율이 감소하는 보상을 이용하여 딥 러닝 강화학습을 통해 개인 별로 타이포가 적게 발생하는 최적의 키매핑을 구현할 수 있다.
또한, 키보드의 모양 및 배열을 변경하지 않고도 키매핑 업데이트를 통해 타이포를 방지할 수 있다.
또한, 키보드의 모양 및 배열 변경에 따라 발생하는 2차 타이포를 방지함으로써 종래 기술의 시행착오를 줄일 수 있다.
또한, 키보드의 모양 및 배열 변경이 없으므로 사용자는 무의식적으로 자신의 타이핑 습관을 유지한 상태에서 낮은 타이포 비율을 구현할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 가상 키보드 제어장치가 포함된 사용자 단말 및 서버를 포함하는 네트워크 환경의 예시도이다.
도 2는 본 발명의 일 실시 예에 따른 가상 키보드 제어장치를 포함하는 사용자 단말의 블록 구성도이다.
도 3은 본 발명의 일 실시 예에 따른 타이포 데이터의 예시도이다.
도 4는 본 발명의 일 실시 예에 따른 가상 키보드 제어방법의 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 키매핑 업데이트에 관한 예시도이다.
도 6은 본 발명의 일 실시 예에 따른 타이포 비율을 나타내는 타이포 분포도이다.
도 7은 본 발명의 일 실시 예에 따른 딥 러닝 과정의 예시도이다.
도 8은 본 발명의 일 실시 예에 따른 강화학습의 예시도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
도 1은 본 발명의 일 실시 예에 따른 가상 키보드 제어장치가 포함된 사용자 단말 및 서버를 포함하는 네트워크 환경의 예시도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 가상 키보드 제어 시스템(1)은 사용자 단말(100), 서버(200) 및 네트워크(400)를 포함하도록 구성될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 가상 키보드 제어장치를 포함하는 사용자 단말의 블록 구성도이다.
도 2를 참조하면, 사용자 단말(100)은 가상 키보드 제어장치(101), 센서(102), 입력/출력 인터페이스(103), 통신부(104), 터치스크린 패널(105) 및 전원모듈(106)을 포함하도록 구성될 수 있다.
사용자 단말(100)은 입력 수단을 포함하고, 컴퓨팅 기능을 수행할 수 있는 유선 및 무선의 통신이 가능한 통신 기기에 해당할 수 있다. 바람직하게는 사용자 단말(100)은, 가상 키보드의 하드웨어에 해당하는 터치스크린 패널(105)을 포함하고, 그 밖에 입력/출력 인터페이스(103) 중에서 가상 키보드에 해당하는 장치, 예를 들어 빔 프로젝터를 더 포함할 수 있는 무선 단말이다.
무선 단말의 다양한 실시 예들은 셀룰러 전화기, 무선 통신 기능을 가지는 스마트 폰, 무선 통신 기능을 가지는 개인 휴대용 단말기(PDA), 무선 모뎀, 무선 통신 기능을 가지는 휴대용 컴퓨터, 무선 통신 기능을 가지는 디지털 카메라와 같은 촬영장치, 무선 통신 기능을 가지는 게이밍(gaming) 장치, 무선 통신 기능을 가지는 음악저장 및 재생 가전제품, 무선 인터넷 접속 및 브라우징이 가능한 인터넷 가전제품뿐만 아니라 그러한 기능들의 조합들을 통합하고 있는 휴대형 유닛 또는 단말기들을 포함할 수 있으나, 이에 한정되는 것은 아니다.
사용자 단말(100)은 인공지능(Artificial Intelligence, AI) 비서(assistant) 기능을 수행할 수 있다. 인공지능 비서는 사용자의 음성을 인식하고, 인식된 사용자의 음성에 적합한 응답을 음성으로 출력하거나, 인식된 사용자의 음성에 따라 사용자 단말을 동작시킨다.
서버(200)는 사용자 단말(100)을 통해 수집된 타이포 데이터를 수집 및 저장할 수 있다. 또한, 서버(200)는 타이포 데이터를 이용하여 데이터 마이닝을 수행할 수 있다. 또한, 서버(200)는 가공된 타이포 데이터를 기초로 하여 인공지능 알고리즘을 이용하여 인공지능 모델을 학습시킬 수 있다. 그 밖에 서버(200)는 인공지능 모델을 평가 및 새로운 타이포 데이터를 이용하여 인공지능 모델을 업데이트 할 수 있다. 여기서, 사용자 단말(100)은 서버(200)가 수행하는 일련의 단계들을 단독으로 또는 서버(200)와 함께 수행할 수 있다.
네트워크(400)는 유선 및 무선 네트워크, 예를 들어 LAN(local area network), WAN(wide area network), 인터넷(internet), 인트라넷(intranet) 및 엑스트라넷(extranet), 그리고 모바일 네트워크, 예를 들어 셀룰러, 3G, LTE, 5G, WiFi 네트워크, 애드혹 네트워크 및 이들의 조합을 비롯한 임의의 적절한 통신 네트워크 일 수 있다.
네트워크(400)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(400)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(400)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다.
도 2를 다시 참조하면, 가상 키보드 제어장치(101)는 메모리(110) 및 제어부(120)를 포함하도록 구성될 수 있다. 그리고 제어부(120)는 프로세서(121)를 포함하도록 구성될 수 있다.
메모리(110)는 그 종류로서 휘발성 메모리 및 비휘발성 메모리를 포함하도록 구성될 수 있다. 그리고, 비휘발성 메모리는 저장 장치로 사용될 수 있다. 메모리(110)에는 적어도 하나 이상의 소프트웨어가 저장될 수 있다. 소프트웨어에는 운영체재, 시스템 프로그램 및 각종 응용 프로그램이 포함될 수 있다. 메모리는(110)는 데이터 처리 프로그램(111), 딥 러닝 프로그램(112), 드라이버 프로그램(113)을 저장하도록 구성될 수 있다.
데이터 처리 프로그램(111)은 타이포 발생을 검출하고, 검출된 타이포 기록을 이용하여, 타이포 데이터를 생성하고, 더 나아가 타이포 데이터를 이용하여 데이터베이스를 생성하고, 이를 분석하는 역할을 한다. 키보드를 포함하여 가상 키보드의 키 입력을 기록한 키 로그 파일에는 입력된 키 값이 저장된다. 백스페이스 키 또는 델 키의 사용에 의해 키 입력이 수정된 이력을 조사함으로써 타이포 발생이 검출될 수 있다.
프로세서(121)는 타이포 기록을 이용하여 희망 키와 잘못 눌려진 키를 구분하고, 각 키에 대해 좌표 값을 부여하여 타이포 데이터를 생성한다. 타이포 데이터는 해당 키의 2차원 좌표 값을 포함하는데, 가상 키보드가 3차원으로 구현되는 경우 해당 키는 3차원 좌표 값으로 표현될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 타이포 데이터의 예시도이다.
도 3을 참조하면, 타이포 데이터의 구성이 나타나 있다. 타이포 데이터는 정상 타이핑 데이터 및 타이포 데이터를 포함하도록 구성될 수 있다. 키보드의 키 별로 정상 타이핑 좌표 값과 타이포 좌표 값이 타이포 데이터 형태로 저장된다. 타이포 좌표 값은 희망 입력 키 대신에 잘못 입력된 키의 좌표 값을 포함할 수 있다.
타이포 데이터는 희망 입력 기와 잘못 입력된 키의 좌표 값과 함께, 키가 잘못 입력된 당시, 신체 접촉이 감지되는 센싱 영역에 관한 정보를 포함하도록 구성될 수 있다. 센싱 영역도 마찬가지로 좌표 값으로 표현될 수 있다. 프로세서(111)는 타이포 데이터를 분석함으로써 타이포 발생한 센싱 영역의 좌표를 기초로 타이포 비율을 감소시키기 위한 솔루션을 도출할 수 있다.
프로세서(121)는 딥 러닝 프로그램(112)을 통해 인공지능 알고리즘을 이용하여 인공지능 모델을 학습 시킨다. 그리고 프로세서(111)는 인공지능 알고리즘에 기반하여 학습된 인공지능 모델을 이용하여 키매핑을 업데이트 한다. 인공지능 모델에 의해 타이포 비율이 최소가 될 수 있는 최적의 상태가 구현되도록 가상 키보드가 제어될 수 있다. 딥 러닝 프로그램(112)은 예를 들어 인공지능 워크플로우 및 인공지능 API를 포함하도록 구성될 수 있다.
드라이버 프로그램(113)은, 예를 들어 터치스크린 패널(105)과 같은 가상 키보드의 하드웨어 구성을 제어하는 역할을 한다.
제어부(120)는 프로세서(121)를 포함하도록 구성될 수 있다. 프로세서(121)는 센서(102), 입력/출력 인터페이스(103), 통신부(104), 터치스크린 패널(105) 및 전원모듈(106)을 제어하고, 그 밖에 메모리(110)에 저장된 데이터 처리 프로그램(111), 딥 러닝 프로그램(112) 및 드라이버 프로그램(113)을 이용하여 가상 키보드를 제어한다. 가상 키보드의 제어는 터치스크린 패널(105)의 동작을 제어하는 것을 포함할 수 있다.
센서(112)는 근접센서(proximity sensor), 조도 센서(illumination sensor), 터치 센서(touch sensor), 가속도 센서(acceleration sensor), 자기 센서(magnetic sensor), 중력 센서(G-sensor), 자이로스코프 센서(gyroscope sensor), 모션 센서(motion sensor), RGB 센서, 적외선 센서(IR 센서: infrared sensor), 지문인식 센서(finger scan sensor), 초음파 센서(ultrasonic sensor), 광 센서(optical sensor, 예를 들어, 카메라), 마이크로폰(microphone), 배터리 게이지(battery gauge), 환경 센서(예를 들어, 기압계, 습도계, 온도계, 방사능 감지 센서, 열 감지 센서, 가스 감지 센서 등), 화학 센서(예를 들어, 전자 코, 헬스케어 센서, 생체 인식 센서 등) 중 적어도 하나를 포함하도록 구성될 수 있다.
입력/출력 인터페이스(103) 외부 기기로부터 입력을 받거나, 외부 기기로 출력을 위한 인터페이스에 해당한다. 입력 인터페이스(103)는 서버(200) 또는 자체 사용자 단말(100)의 터치스크린 패널(105)을 통해 타이포 데이터를 입력 받는다. 여기서, 타이포 데이터는 정상 타이핑 데이터와 잘못 입력된 키에 관한 데이터를 포함한다. 그리고 정상 타이핑 데이터와 잘못 입력된 키에 관한 데이터는 가상 키보드의 종류에 따라 2차원 또는 3차원 좌표 값 형태로 저장될 수 있다.
출력 인터페이스는 디스플레이 및 스피커를 포함하도록 구성될 수 있다.
통신부(104)는 이동통신 모듈 및 무선 인터넷 모듈 중에서 적어도 하나를 포함하도록 구성될 수 있다. 그 밖에 통신부(104)는 근거리 통신 모듈을 추가로 포함할 수 있다.
이동통신 모듈은, 이동통신을 위한 기술표준들 또는 통신방식(예를 들어, GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCDMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced), 5G 이동통신 등)에 따라 구축된 이동 통신망 상에서 기지국, 외부의 단말, 서버 중 적어도 하나와 무선 신호를 송수신한다.
무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 사용자 단말(100)에 내장되거나 외장될 수 있다. 무선 인터넷 모듈은 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 이루어진다.
무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있다.
근거리 통신 모듈은 근거리 통신(Short range communication)을 위한 것으로서, 블루투스(Bluetooth™), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee, NFC(Near Field Communication), Wi-Fi(Wireless-Fidelity), Wi-Fi Direct, Wireless USB(Wireless Universal Serial Bus) 기술 중 적어도 하나를 이용하여, 근거리 통신을 지원할 수 있다.
터치스크린패널(Touch Screen Panel, TSP)(105)은 디스플레이 화면에 사자가 손가락이나 펜 등으로 화면을 누르거나 접촉하면, 그 위치를 인지하여 시스템에 전달하는 입력장치 중의 하나이다.
TSP(105)는 터치패널을 포함하고, 터치패널은 투명전극(Indium Tin Oxide, ITO)이 증착된 상판과 하판(Film 또는 Glass)으로 구성되며, 접촉이 발생하거나 전기적 용량 변화에 따른 신호발생 위치를 파악하여, 이를 프로세서(121)에 전송하는 역할을 수행한다.
프로세서(121)는 터치패널에서 전송된 아날로그 신호를 디지털 신호로 변경하여 화면상에 나타낼 수 있는 좌표형태로 바꿔주는 역할을 한다.
프로세서(121)는 드라이버 프로그램(113)을 이용하여, 입력되는 디지털신호를 받아 각 운영시스템에 맞게 터치패널을 제어한다.
TSP(105)는 적용기술에 따라 저항막(Resistive), 음파(Surface Acoustic Wave), 적외선(Infrared) 및 광학(Optical Imaging) 터치스크린으로 구분된다.
저항막 방식은 투명전극(ITO metal Layer)층이 코딩되어 있는 두 장의 기판을 Dot Spacer를 사이에 두고 투명전극 층이 서로 마주보도록 합착시키는 구조로 이루어져 있고, 특수 필름의 안쪽에 투명전극이 코팅되어 있기 때문에 손가락이나 펜에 의해 상부 기판을 접촉하였을 경우 위치 검출을 위한 신호가 인가되고, 하부 기판의 투명 전극 전극층과 접촉되었을 때 전기적 신호를 검출하여 위치를 결정하게 되는 동작 원리를 가지고 있다. X, Y 좌표를 몇 개의 도선으로 검출하느냐에 따라 4, 5, 8선 저항막방식으로 나뉘어져 있으며, 정전용량 방식(Capacitive)과 더불어 가장 많이 쓰이는 방식 중 하나이다.
저항막 방식은 제조 비용이 낮고, 고해상도가 가능하며, 다양한 장치를 입력 도구로 활용하고 있다는 장점을 갖고 있으나, 대형화에 어려움이 있고, 내구성이 낮다는 단점이 있다. 주사용처로는 휴대폰, 게임기, 네비게이션 등이다.
정전용량 방식은 현재 대부분의 스마트폰에 사용되고 있다.
터치화면 센서를 구성하는 기판(Substrate)의 양면에 특수 전도성 금속이 코팅되어 투명전극이 형성된다. 일정량의 전류가 유리 표면에 흐르게 되면 두 도체 간의 전위차에 의해 사용자 터치 시에, 사람의 몸에 있는 정전용량에 의해 전류 양의 변경이 인식되고, 그 크기 계산에 의해 터치된 위치가 검출된다.
정전용량 방식은, 손가락, 전용펜 등을 입력 수단으로 활용할 수 있으며, 멀티터치가 가능하고, 고해상도가 가능해 스마트폰, 태블릿PC 등에 적용되고 있으며, 반면에 가격이 비싸고, 대형화가 어렵다는 단점을 갖고 있다.
TSP(105)는 터치스크린이 위치하는 패널의 구조에 따라 외장형(Add on Type)과 내장형(On Cell/In Cell)으로 분류되고, 작동원리에 따라 정전용량 방식(Capacitive), 저항막(Resistive), 적외선(Infrared), 음파(Acoustic) 및 압력 (Pressure) 방식으로 분류될 수 있다.
외장형의 경우 터치스크린패널이 디스프레이패널 외부에 필름 형태로 부착되고, 내장형 On Cell의 경우 셀 상부의 유리 기판에 터치센서가 내장되고, 내장형 In Cell의 경우 셀 내부에 터치센서가 내장된다.
도 4는 본 발명의 일 실시 예에 따른 가상 키보드 제어방법의 흐름도이다.
도 4를 참조하면, 가상 키보드 제어장치(101)는 희망 입력 키와 잘못 입력된 키를 포함하는 타이포 데이터를 수집한다(S110).
타이포 데이터는 가상 키보드에서 입력되는 키 별로 정상적으로 입력되는 키와 잘못 입력된 키 및 백스페이스 키를 이용하여 수정 후에 정상 입력되는 키에 대한 실제 입력되는 위치에 관한 좌표 값을 포함한다. 여기서 좌표 값이란, 각 키 별로 (1, 1) 내지 (-1, -1) 범위에서 분포하는 2차원 좌표 값을 의미한다. 가상 키보드가 3차원으로 표시되는 경우 좌표 값은 3차원 좌표값으로 표시될 수 있다.
좌표 값은 가상 키, 예를 들어 터치스크린패널(105) 상에 표시된 가상 키를 터치한 경우, 손가락과 실제로 접촉이 발생하는 센싱 영역의 지점의 좌표 값에 해당한다. 따라서, (0, 0)이 해당 키의 좌표 값인 경우, 사용자는 가상 키의 정 중앙을 터치한 경우에 해당한다. 잘못 입력된 키의 좌표 값, 즉 타이포 발생에 따른 좌표 값은, 희망 입력 키 대신에 입력된 것이므로 좌표 값이 (0, 0)에서 벗어나는 경우가 많다.
다음으로 가상 키보드 제어장치(101)는 수집한 타이포 데이터를 분석한다(S120). 여기서 S120 단계는 타이포 비율을 연산하는 단계를 포함할 수 있다.
타이포 비율은 각 키 별로 연산될 수 있다. 타이포 비율은 각 키에 대해 전체 입력의 경우 대비 키가 잘못 입력된 경우의 회수를 의미한다. 타이포 비율은 키매핑이 업데이트 된 후에 변경될 수 있다.
다음으로 가상 키보드 제어장치(101)는 분석 결과를 이용하여 희망 입력 키와 잘못 입력된 키 중에서 적어도 하나의 가상 키의 키매핑을 업데이트 한다(S130).
키매핑이란 가상 키와 이에 할당된 센싱 영역의 관계를 의미한다. 사용자 단말(100)이 공장에서 출하되는 경우, 각 키의 센싱 영역은 가상 키의 면적에 비례하게 디폴트 값으로 설정될 수 있다. 그런데, 가상 키보드의 크기, 가상 키의 위치, 사용자의 입력 습관, 사용자의 손가락의 크기 등에 따라 특정 가상 키 영역에서 타이포 비율이 높게 발생할 수 있다. 이러한 경우 가상 키보드의 센싱 영역은 디폴트 값에서 타이포 비율이 감소하는 방향으로 변경될 수 있다. 이러한 변경을 키매핑 업데이트라고 한다. 키매핑 업데이트는 잘못 입력된 키, 잘못을 유발한 키 또는 이들 모두에 대해 수행될 수 있다.
본 발명의 일 실시 예에 따른 가상 키의 키매핑 업데이트는, 종래 기술에 의한 가상 키 자체의 위치, 모양 및 넓이를 변경하는 것과 구별된다. 가상 키 자체의 위치, 모양 및 넓이를 변경하는 것은 디스플레이 화면에 표시된 키를 대상으로 한다. 그러나, 본 발명의 일 실시 예에 따른 가상 키의 키매핑 업데이트는, 가상 키에 할당된 센싱 영역을 대상으로 그 영역의 위치, 모양 및 넓이 중에서 적어도 하나의 업데이트를 의미한다.
본 발명에서 키매핑 업데이트는 1회에 그치지 않고 업데이트된 키매핑에 따라 발생된 타이포 데이터가 추가로 수집되고, S120 단계 내지 S130 단계가 타이포 비율 감소가 영에 수렴할 때까지 반복하여 수행될 수 있다. 즉, 가상 키보드 제어장치(101)는 업데이트 된 키매팅에 따라 발생한 새로운 타이포 데이터를 수집할 수 있다(S140).
그리고 가상 키보드 제어장치(101)는 새로운 타이포 데이터에 기초하여 타이포 비율을 연산할 수 있다(S150).
다음으로 가상 키보드 제어장치(101)는 새로운 타이포 데이터에 기초한 타이포 비율의 감소 여부를 판단한다(S160). 만약 타이포 비율이 이전 대비 감소한 경우, 새로운 타이포 데이터가 다시 분석될 수 있다(S120). 이와 같이 키매핑 업데이트에 의해 타이포 비율은 점점 감소할 수 있고, 타이포 비율이 영에 수렴하게 되면 본 발명의 일 실시 예에 따른 가상 키보드 제어방법은 종료된다.
만약, 타이포 비율이 증가하는 경우가 생기면, 이는 시행착오로 간주하여 이후의 단계를 모두 종료하고, 재시작 후 이전과 다른 방법으로 키매핑이 업데이트 되고 이후 단계가 수행된다.
본 발명에서 키매핑 업데이트 전과 후의 타이포 비율의 감소 여부가 판단되고(S160), 타이포 비율이 감소된 것으로 판단된 경우, 키매핑 업데이트에 관한 정보가 타이포 데이터를 분석하는 단계, 즉 S120 단계로 피드백 된다.
도 5는 본 발명의 일 실시 예에 따른 키매핑 업데이트에 관한 예시도이다.
도 5를 참조하면, 상단에 가상의 키보드가 묘사되어 있다. 가상의 키보드의 각 키는 디스플레이 화면에 표시되는 영역과 일치하는 파선으로 표시되는 센싱 영역을 디폴트 값으로 갖는다. 어느 사용자의 타이포 데이터를 분석한 결과, 이 사용자는 'ㅂ'키의 중앙을 터치하는 것이 아니고, 'ㅈ' 키를 간섭할 정도로 'ㅂ'키 중앙에서 오른쪽에 치우친 영역을 터치하는 습관이 있는 것으로 분석되었다. 이 경우 손가락이 감지되는 센싱 영역과 'ㅈ' 키의 센싱 영역이 서로 겹치지 않도록 'ㅈ'키의 센싱 영역을 축소할 필요가 있다. 여기에 추가적으로 'ㅂ'키의 센싱 영역을 더 넓힐 수도 있다. 즉, 센싱 영역을 변경함으로써 'ㅂ'키와 'ㅈ'키의 키매핑이 업데이트 된다. 'ㅂ'키와 'ㅈ'키는 2차원 XY 평면에 묘사되어 있고, 키매핑 업데이트는 가상 키보드의 XYZ 단면에 묘사되어 있다. 여기서, 중요한 포인트는 디스플레이 화면에 표시된 가상 키의 면적을 변경할 필요가 없다는 점이다. 종래의 기술에 따르면 가상 키보드에서 키의 배열, 모양 및 위치의 변경이 디스플레이 화면을 기준으로 발생한다. 이 경우, 디스플레이 화면상의 변경된 키로 인해 2차 타이포가 발생할 확률이 높다.
간섭에 의한 타이포의 발생은 가상 키 영역의 장소적 협소함과 사용자의 무의식적인 습관에서 기원하는 경우가 많다. 따라서, 타이포 발생을 방지하기 위한 해결책도 사용자가 의식하지 못한 상태에서 적용되어야 할 필요가 있다. 장소적 협소함을 해결하기 위해 가상 키 자체의 모양 또는 위치를 변경하는 경우 주변 가상 키에 영향을 미치므로 새로운 종류의 타이포가 유발될 수 있다. 이러한 타이포는 센싱 영역 자만을 업데이트 하는 키매핑 업데이트에 의해 해결될 수 있다.
도 6은 본 발명의 일 실시 예에 따른 타이포 비율을 나타내는 타이포 분포도이다.
도 6을 참조하면, 좌측에 묘사된 키패드에 정상적인 입력을 나타내는 정타군과 잘못된 입력을 나타내는 오타군이 나타나 있다. 'ㅅ'키의 중앙 영역과 'ㄹ'키의 중앙 영역에 실선의 정타군이 각각 분포하고, 'ㅅ'키와 'ㄹ'키의 사이 영역에 파선의 오타군이 분포하고 있다.
도 6의 우측에 묘사된 타이포 분포도에는 하나의 키의 영역별 타이포 비율이 나타나 있다. 'ㅅ'키를 예를 들어 설명하면, 'ㅅ'키의 중앙을 (0,0)로 표시하고, 'ㅅ'키의 4개의 모서리를 (-1, -1), (-1, 1), (1, -1) 및 (1, 1)으로 표시한 경우, (0, 0) 영역에서 타이포 비율이 가장 높고, 4개의 모서리에서 타이포 비율이 가장 높게 나타나 있다. 여기서, 오타군이 발생하는 위치에 따라 타이포 분포가 달라 질 수 있고, 기존의 키매핑은 타이포 분포도 상의 타이포 비율에 따라 업데이트 될 수 있다.
본 발명에 따른 실시 예에서 타이포 데이터를 분석하는 단계(S120)는, 인공지능(Artificial Intelligence) 알고리즘을 이용하여 인공지능 모델을 학습시키는 단계(S122)를 포함하도록 구성될 수 있다.
또한, 본 발명에 따른 실시 예에서 키 매핑을 업데이트 하는 단계(S130)는 인공지능 알고리즘에 기반하여 학습된 인공지능 모델을 이용하여 키매핑을 업데이트 하는 단계(S132)를 포함하도록 구성될 수 있다.
도 7은 본 발명의 일 실시 예에 따른 딥 러닝 과정의 예시도이다.
도 7을 참조하면, 인공지능 알고리즘, 특히 딥 러닝을 이용하는 실시 예가 묘사되어 있다. 이하 인공지능 알고리즘에 대해 설명하기로 한다.
인공 지능(artificial intelligence, AI)은 인간의 지능으로 할 수 있는 사고, 학습, 자기계발 등을 컴퓨터가 할 수 있도록 하는 방법을 연구하는 컴퓨터 공학 및 정보기술의 한 분야로, 컴퓨터가 인간의 지능적인 행동을 모방할 수 있도록 하는 것을 의미한다.
또한, 인공지능은 그 자체로 존재하는 것이 아니라, 컴퓨터 과학의 다른 분야와 직간접으로 많은 관련을 맺고 있다. 특히 현대에는 정보기술의 여러 분야에서 인공지능적 요소를 도입하여, 그 분야의 문제 풀이에 활용하려는 시도가 매우 활발하게 이루어지고 있다.
머신 러닝(machine learning)은 인공지능의 한 분야로, 컴퓨터에 명시적인 프로그램 없이 배울 수 있는 능력을 부여하는 연구 분야이다.
구체적으로 머신 러닝은, 경험적 데이터를 기반으로 학습을 하고 예측을 수행하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술이라 할 수 있다. 머신 러닝의 알고리즘들은 엄격하게 정해진 정적인 프로그램 명령들을 수행하는 것이라기보다, 입력 데이터를 기반으로 예측이나 결정을 이끌어내기 위해 특정한 모델을 구축하는 방식을 취한다.
용어 '머신 러닝'은 용어 '기계 학습'과 혼용되어 사용될 수 있다.
기계 학습에서 데이터를 어떻게 분류할 것인가를 놓고, 많은 기계 학습 알고리즘이 개발되었다. 의사결정나무(Decision Tree)나 베이지안 망(Bayesian network), 서포트벡터머신(SVM: support vector machine), 그리고 인공 신경망(ANN: Artificial Neural Network) 등이 대표적이다.
의사결정나무는 의사결정규칙(Decision Rule)을 나무구조로 도표화하여 분류와 예측을 수행하는 분석방법이다.
베이지안 망은 다수의 변수들 사이의 확률적 관계(조건부독립성: conditional independence)를 그래프 구조로 표현하는 모델이다. 베이지안 망은 비지도 학습(unsupervised learning)을 통한 데이터마이닝(data mining)에 적합하다.
서포트벡터머신은 패턴인식과 자료분석을 위한 지도 학습(supervised learning)의 모델이며, 주로 분류와 회귀분석을 위해 사용한다.
인공 신경망은 생물학적 뉴런의 동작원리와 뉴런간의 연결 관계를 모델링한 것으로 노드(node) 또는 처리 요소(processing element)라고 하는 다수의 뉴런들이 레이어(layer) 구조의 형태로 연결된 정보처리 시스템이다.
인공 신경망은 기계 학습에서 사용되는 모델로서, 동물의 중추신경계 중의 하나인 뇌에서 영감을 얻은 통계학적 학습 알고리즘이다.
구체적으로 인공 신경망은 시냅스(synapse)의 결합으로 네트워크를 형성한 인공 뉴런(노드)이 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델 전반을 의미할 수 있다.
용어 인공 신경망은 용어 뉴럴 네트워크(Neural Network)와 혼용되어 사용될 수 있다.
인공 신경망은 복수의 레이어(layer)를 포함할 수 있고, 레이어들 각각은 복수의 뉴런(neuron)을 포함할 수 있다. 또한 인공신경망은 뉴런과 뉴런을 연결하는 시냅스를 포함할 수 있다.
인공 신경망은 일반적으로 다음의 세가지 인자, 즉 (1) 다른 레이어의 뉴런들 사이의 연결 패턴 (2) 연결의 가중치를 갱신하는 학습 과정 (3) 이전 레이어로부터 수신되는 입력에 대한 가중 합으로부터 출력값을 생성하는 활성화 함수에 의해 정의될 수 있다.
인공 신경망은, DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network), MLP(Multilayer Perceptron), CNN(Convolutional Neural Network)와 같은 방식의 네트워크 모델들을 포함할 수 있으나, 이에 한정되지 않는다.
본 명세서에서 용어 '레이어'는 용어 '계층'과 혼용되어 사용될 수 있다.
인공 신경망은 계층 수에 따라 단층 신경망(Single-Layer Neural Networks)과 다층 신경망(Multi-Layer Neural Networks)으로 구분된다.
일반적인 단층 신경망은, 입력층과 출력층으로 구성된다.
또한 일반적인 다층 신경망은 입력층(Input Layer)과 하나 이상의 은닉층(Hidden Layer), 출력층(Output Layer)으로 구성된다.
입력층은 외부의 자료들을 받아들이는 층으로서, 입력층의 뉴런 수는 입력되는 변수의 수와 동일하며, 은닉층은 입력층과 출력층 사이에 위치하며 입력층으로부터 신호를 받아 특성을 추출하여 출력층으로 전달한다. 출력층은 은닉층으로부터 신호를 받고, 수신한 신호에 기반한 출력 값을 출력한다. 뉴런간의 입력신호는 각각의 연결강도(가중치)와 곱해진 후 합산되며 이 합이 뉴런의 임계치보다 크면 뉴런이 활성화되어 활성화 함수를 통하여 획득한 출력값을 출력한다.
한편 입력층과 출력 층 사이에 복수의 은닉층을 포함하는 심층 신경망은, 기계 학습 기술의 한 종류인 딥 러닝을 구현하는 대표적인 인공 신경망일 수 있다.
한편 용어 '딥 러닝'은 용어 '심층 학습'과 혼용되어 사용될 수 있다.
인공 신경망은 훈련 데이터(training data)를 이용하여 학습(training)될 수 있다. 여기서 학습이란, 입력 데이터를 분류(classification)하거나 회귀분석(regression)하거나 군집화(clustering)하는 등의 목적을 달성하기 위하여, 학습 데이터를 이용하여 인공 신경망의 파라미터(parameter)를 결정하는 과정을 의미할 수 있다. 인공 신경망의 파라미터의 대표적인 예시로써, 시냅스에 부여되는 가중치(weight)나 뉴런에 적용되는 편향(bias)을 들 수 있다.
훈련 데이터에 의하여 학습된 인공 신경망은, 입력 데이터를 입력 데이터가 가지는 패턴에 따라 분류하거나 군집화 할 수 있다.
한편 훈련 데이터를 이용하여 학습된 인공 신경망을, 본 명세서에서는 학습 모델(a trained model)이라 명칭 할 수 있다.
다음은 인공 신경망의 학습 방식에 대하여 설명한다.
인공 신경망의 학습 방식은 크게, 지도 학습, 비 지도 학습, 준 지도 학습(Semi-Supervised Learning), 강화 학습(Reinforcement Learning)으로 분류될 수 있다.
지도 학습은 훈련 데이터로부터 하나의 함수를 유추해내기 위한 기계 학습의 한 방법이다.
그리고 이렇게 유추되는 함수 중, 연속 적인 값을 출력하는 것을 회귀분석(Regression)이라 하고, 입력 벡터의 클래스(class)를 예측하여 출력하는 것을 분류(Classification)라고 할 수 있다.
지도 학습에서는, 훈련 데이터에 대한 레이블(label)이 주어진 상태에서 인공 신경망을 학습시킨다.
여기서 레이블이란, 훈련 데이터가 인공 신경망에 입력되는 경우 인공 신경망이 추론해야 하는 정답 또는 결과 값을 의미할 수 있다.
본 명세서에서는 훈련 데이터가 입력되는 경우 인공 신경망이 추론해 내야 하는 정답 또는 결과값을 레이블 또는 레이블링 데이터(labeling data)이라 명칭 한다.
또한 본 명세서에서는, 인공 신경망의 학습을 위하여 훈련 데이터에 레이블을 설정하는 것을, 훈련 데이터에 레이블링 데이터를 레이블링(labeling) 한다고 명칭 한다.
이 경우 훈련 데이터와 훈련 데이터에 대응하는 레이블은 하나의 트레이닝 셋(training set)을 구성하고, 인공 신경망에는 트레이닝 셋의 형태로 입력될 수 있다.
한편 훈련 데이터는 복수의 특징(feature)을 나타내고, 훈련 데이터에 레이블이 레이블링 된다는 것은 훈련 데이터가 나타내는 특징에 레이블이 달린다는 것을 의미할 수 있다. 이 경우 훈련 데이터는 입력 객체의 특징을 벡터 형태로 나타낼 수 있다.
인공 신경망은 훈련 데이터와 레이블링 데이터를 이용하여, 훈련 데이터와 레이블링 데이터의 연관 관계에 대한 함수를 유추할 수 있다. 그리고, 인공 신경망에서 유추된 함수에 대한 평가를 통해 인공 신경망의 파라미터가 결정(최적화)될 수 있다.
본 발명의 일 실시 예에 따른 가상 키보드 제어방법(S100)에서 타이포 데이터를 분석하는 단계(S120)는 인공지능 모델을 학습시키는 단계(S122)를 통해 구현되고, 분석 결과에 따라 키매핑을 업데이트 하는 단계(S130)는 학습된 모델을 이용하여 출력을 얻는 단계(S132)를 통해 구현될 수 있다.
딥 러닝의 지도 학습 과정에서 도 6에 묘사된 타이포 데이터를 포함하는 타이포 분포도와 이에 따른 키매핑 업데이트 정보가 레이블링 데이터로 이용될 수 있다. 반면에 비 지도 학습은 기계 학습의 일종으로, 훈련 데이터에 대한 레이블이 주어지지 않는다.
강화 학습은, 에이전트(Agent)가 매 순간 어떤 행동을 해야 좋을지 판단할 수 있는 환경이 주어진다면, 데이터 없이 경험으로 가장 좋을 길을 찾을 수 있다는 이론이다.
강화 학습은 주로 마르코프 결정 과정(MDP: Markov Decision Process)에 의하여 수행될 수 있다.
마르코프 결정 과정을 설명하면, 첫 번째로 에이전트가 다음 행동을 하기 위해 필요한 정보들이 구성된 환경이 주어지며, 두 번째로 그 환경에서 에이전트가 어떻게 행동할지 정의하고, 세 번째로 에이전트가 무엇을 잘하면 보상(reward)를 주고 무엇을 못하면 벌점(penalty)을 줄지 정의하며, 네 번째로 미래의 보상이 최고점에 이를 때까지 반복 경험하여 최적의 정책(policy)을 도출하게 된다.
도 8은 본 발명의 일 실시 예에 따른 강화 학습의 예시도이다.
도 8을 참조하면, 본 발명의 일 실시 예에 따른 가상 키보드 제어방법은 인공지능 알고리즘 중에서 딥 러닝의 강화 학습을 이용하여 구현될 수 있다.
본 발명의 일 실시 예에 따른 강화 학습 모델에서, 타이포 비율 감소가 보상의 역할을 한다. 강화 학습에 따라 타이포 비율은 계속 감소하고, 타이포 비율의 감소가 영에 수렴하는 상태까지 강화 학습이 이루어진다. DNN 신경망을 포함하는 인공지능 모델은 타이포가 발생하는 환경에서 보상에 따라 계속하여 키매핑을 수행하게 된다.
한편 학습 모델(a trained model)은 가상 키보드 제어장치(101)의 메모리(110)에 딥 러닝 프로그램(112)의 일부로서 탑재될 수 있다. 학습 모델은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있으며, 학습 모델의 일부 또는 전부가 소프트웨어로 구현되는 경우 학습 모델을 구성하는 하나 이상의 명령어는 메모리(110)에 저장될 수 있다.
전술한 본 발명의 일 실시 예에 따른 가상 키보드 제어방법은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 상기 컴퓨터는 사용자 단말(100)의 프로세서(121)를 포함할 수도 있다.

Claims (20)

  1. 가상 키보드 제어장치에 의해 수행되는 제어방법으로서,
    희망 입력 키와 잘못 입력된 키를 포함하는 타이포(typo) 데이터를 수집하는 단계;
    상기 타이포 데이터를 분석하는 단계; 및
    상기 분석 결과를 이용하여 상기 희망 입력 키와 잘못 입력된 키 중에서 적어도 하나의 가상 키의 키매핑을 업데이트 하는 단계를 포함하는,
    가상 키보드 제어방법.
  2. 제 1 항에 있어서,
    상기 타이포 데이터를 분석하는 단계는,
    타이포 비율을 연산하는 단계를 포함하는,
    가상 키보드 제어방법.
  3. 제 1 항에 있어서,
    새로운 키매핑에 따른 새로운 타이포 데이터를 수집하는 단계를 더 포함하고,
    상기 새로운 타이포 데이터에 대해, 상기 타이포 데이터를 분석하는 단계 및 키매핑을 업데이트 하는 단계가 반복되는,
    가상 키보드 제어방법.
  4. 제 3 항에 있어서,
    상기 키매핑 업데이트 전과 후의 타이포 비율이 감소되었는지 여부를 판단하는 단계를 더 포함하고,
    상기 타이포 비율이 감소된 경우, 상기 키매핑 업데이트에 관한 정보를 상기 타이포 데이터를 분석하는 단계로 피드백 시키는,
    가상 키보드 제어방법.
  5. 제 1 항에 있어서,
    상기 타이포는, 가상 키보드와 신체의 접촉 또는 가상 키보드 상에서의 신체의 동작에 따른 가상의 키 사이의 간섭에 의해 발생하는,
    가상 키보드 제어방법.
  6. 제 6 항에 있어서,
    상기 타이포 데이터는,
    상기 희망 입력 키 및 잘못 입력된 키에 대응하는 2차원 좌표 값을 포함하는,
    가상 키보드 제어방법.
  7. 제 1 항에 있어서,
    상기 타이포 데이터를 분석하는 단계는,
    인공지능 알고리즘을 이용하여 인공지능 모델을 학습시키는 단계를 포함하는,
    가상 키보드 제어방법.
  8. 제 1 항에 있어서,
    상기 키매핑을 업데이트 하는 단계는,
    인공지능 알고리즘에 기반하여 학습된 인공지능 모델을 이용하여 상기 키매핑을 업데이트 하는 단계를 포함하는,
    가상 키보드 제어방법.
  9. 제 1 항에 있어서,
    상기 키매핑을 업데이트 하는 단계는,
    임계 타이포 비율을 갖는 가상 키를 대상으로 상기 가상 키에 할당된 센싱 영역의 위치, 모양 및 넓이 중에서 적어도 하나를 업데이트 하는 단계를 포함하는,
    가상 키보드 제어방법.
  10. 제 1 항에 있어서,
    상기 가상 키 자체의 위치, 모양 및 넓이는 변경되지 않는 것을 특징으로 하는,
    가상 키보드 제어방법.
  11. 가상 키보드로부터 희망 입력 키와 잘못 입력된 키에 관한 정보를 포함하는 타이포(typo) 데이터를 입력 받는 입력 인터페이스
    상기 가상 키보드의 센싱 영역 및 이에 대응하는 키 값을 포함하는 키매핑 정보를 저장하고 있는 메모리; 및
    신체 센싱에 따라 상기 키매핑 정보를 이용하여 해당 키에 대응하는 키 값을 출력하는 제어부를 포함하되,
    상기 제어부는,
    상기 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑 정보를 업데이트 하는 프로세서를 포함하는,
    가상 키보드 제어장치.
  12. 제 11 항에 있어서,
    상기 프로세서는,
    상기 타이포 데이터를 이용하여 타이포 비율을 연산하는,
    가상 키보드 제어장치.
  13. 제 11 항에 있어서,
    상기 프로세서는,
    새로운 키매핑 정보에 따른 타이포 데이터에 대해,
    상기 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑 정보를 업데이트 하는,
    가상 키보드 제어장치.
  14. 제 11 항에 있어서,
    상기 프로세서는,
    상기 키매핑 업데이트 전과 후의 타이포 비율이 감소되었는지 여부를 판단하고,
    상기 타이포 비율이 감소된 경우, 상기 타이포 데이터를 분석하고, 분석 결과에 따라 키매핑 정보를 업데이트 함에 있어서, 상기 키매핑 업데이트에 관한 정보를 피드백 정보로서 이용하는,
    가상 키보드 제어장치.
  15. 제 11 항에 있어서,
    상기 타이포는,
    가상 키보드와 신체의 접촉 또는 가상 키보드 상에서의 신체의 동작에 따른 가상의 키 사이의 간섭에 의해 발생하는,
    가상 키보드 제어장치.
  16. 제 11 항에 있어서,
    상기 타이포 데이터는,
    상기 희망 입력 키 및 잘못 입력된 키에 대응하는 2차원 좌표 값을 포함하는,
    가상 키보드 제어장치.
  17. 제 11 항에 있어서,
    상기 프로세서는,
    인공지능 알고리즘을 이용하는 인공지능 모델 학습을 통해 데이터를 분석하는,
    가상 키보드 제어장치.
  18. 제 11 항에 있어서,
    상기 프로세서는,
    인공지능 알고리즘에 기반하여 학습된 인공지능 모델을 이용하여 상기 키매핑을 업데이트 하는,
    가상 키보드 제어장치.
  19. 제 11 항에 있어서,
    상기 프로세서는,
    임계 타이포 비율을 갖는 가상 키를 대상으로 상기 가상 키에 할당된 센싱 영역의 위치, 모양 및 넓이 중에서 적어도 하나를 업데이트 하는,
    가상 키보드 제어장치.
  20. 제 11 항에 있어서,
    상기 프로세서는,
    상기 가상 키 자체의 위치, 모양 및 넓이는 변경하지 않는 것을 특징으로 하는,
    가상 키보드 제어장치.
KR1020190063332A 2019-05-29 2019-05-29 가상 키보드 제어방법 및 제어장치 KR102231511B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190063332A KR102231511B1 (ko) 2019-05-29 2019-05-29 가상 키보드 제어방법 및 제어장치
US16/563,579 US10996850B2 (en) 2019-05-29 2019-09-06 Method and apparatus for controlling virtual keyboard

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190063332A KR102231511B1 (ko) 2019-05-29 2019-05-29 가상 키보드 제어방법 및 제어장치

Publications (2)

Publication Number Publication Date
KR20190068497A true KR20190068497A (ko) 2019-06-18
KR102231511B1 KR102231511B1 (ko) 2021-03-23

Family

ID=67103320

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190063332A KR102231511B1 (ko) 2019-05-29 2019-05-29 가상 키보드 제어방법 및 제어장치

Country Status (2)

Country Link
US (1) US10996850B2 (ko)
KR (1) KR102231511B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022234984A1 (ko) * 2021-05-06 2022-11-10 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법
US11899852B2 (en) 2021-05-06 2024-02-13 Samsung Electronics Co., Ltd. Electronic device and operation method thereof

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102458700B1 (ko) 2022-05-10 2022-10-25 (주)에어패스 키보드 자판 제어를 이용한 콘텐츠 동작시스템

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120007042A (ko) * 2009-04-10 2012-01-19 퀄컴 인코포레이티드 학습 능력들을 갖춘 가상 키패드 생성기
KR20140089812A (ko) * 2013-01-07 2014-07-16 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
KR20140145908A (ko) 2013-06-16 2014-12-24 박창섭 소형 전자 기기에서 오타 방지를 위한 글자판(키보드)
JP2016527643A (ja) * 2013-08-05 2016-09-08 ゼットティーイー コーポレーションZte Corporation タッチ入力パネルのレイアウトを適応的に調整する装置、方法及びモバイル端末
KR20170070426A (ko) 2015-12-14 2017-06-22 조재신 오타 방지를 위한 키보드 문자키 간격 조절 방법
KR20180105643A (ko) * 2016-01-27 2018-09-28 주식회사 노타 디스플레이 디바이스 및 그의 터치 입력 프로세싱 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0924541A2 (pt) * 2009-06-16 2014-02-04 Intel Corp Aplicações de câmera em um dispositivo portátil
US20130222247A1 (en) * 2012-02-29 2013-08-29 Eric Liu Virtual keyboard adjustment based on user input offset

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120007042A (ko) * 2009-04-10 2012-01-19 퀄컴 인코포레이티드 학습 능력들을 갖춘 가상 키패드 생성기
KR20140089812A (ko) * 2013-01-07 2014-07-16 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
KR20140145908A (ko) 2013-06-16 2014-12-24 박창섭 소형 전자 기기에서 오타 방지를 위한 글자판(키보드)
JP2016527643A (ja) * 2013-08-05 2016-09-08 ゼットティーイー コーポレーションZte Corporation タッチ入力パネルのレイアウトを適応的に調整する装置、方法及びモバイル端末
KR20170070426A (ko) 2015-12-14 2017-06-22 조재신 오타 방지를 위한 키보드 문자키 간격 조절 방법
KR20180105643A (ko) * 2016-01-27 2018-09-28 주식회사 노타 디스플레이 디바이스 및 그의 터치 입력 프로세싱 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022234984A1 (ko) * 2021-05-06 2022-11-10 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법
US11899852B2 (en) 2021-05-06 2024-02-13 Samsung Electronics Co., Ltd. Electronic device and operation method thereof

Also Published As

Publication number Publication date
US10996850B2 (en) 2021-05-04
KR102231511B1 (ko) 2021-03-23
US20200004418A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
US9886186B2 (en) Classification of touch input as being unintended or intended
US10261685B2 (en) Multi-task machine learning for predicted touch interpretations
US11126283B2 (en) Systems, methods, and computer-readable media for handling user input gestures on an extended trackpad of an electronic device
EP2359212B1 (en) Interface adaptation system
US10996850B2 (en) Method and apparatus for controlling virtual keyboard
US8712931B1 (en) Adaptive input interface
US20100083188A1 (en) Computer user interface system and methods
CN106605202A (zh) 根据触摸输入的偏手性检测
EP3702953B1 (en) Electronic device for obfuscating and decoding data and method for controlling same
CN104054043A (zh) 可更换皮肤的触摸设备抓握模式
US8909565B2 (en) Clustering crowdsourced data to create and apply data input models
KR102079985B1 (ko) 터치 입력 프로세싱 방법 및 디바이스
US20130069881A1 (en) Electronic device and method of character entry
Ding et al. A design on recommendations of sensor development platforms with different sensor modalities for making gesture biometrics-based service applications of the specific group
EP2570892A1 (en) Electronic device and method of character entry
KR102571824B1 (ko) 점수 예측 모델의 피팅방법
US20240020996A1 (en) Electronic device and method for identifying sentence indicated by strokes
US20230036764A1 (en) Systems and Method for Evaluating and Selectively Distilling Machine-Learned Models on Edge Devices

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