KR20210033394A - 전자 장치 및 그의 제어 방법 - Google Patents

전자 장치 및 그의 제어 방법 Download PDF

Info

Publication number
KR20210033394A
KR20210033394A KR1020190178667A KR20190178667A KR20210033394A KR 20210033394 A KR20210033394 A KR 20210033394A KR 1020190178667 A KR1020190178667 A KR 1020190178667A KR 20190178667 A KR20190178667 A KR 20190178667A KR 20210033394 A KR20210033394 A KR 20210033394A
Authority
KR
South Korea
Prior art keywords
finger
fingers
motion
key
detected
Prior art date
Application number
KR1020190178667A
Other languages
English (en)
Inventor
정원석
박성현
조순용
김재환
이지섭
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2020/009003 priority Critical patent/WO2021054589A1/en
Priority to EP20864743.8A priority patent/EP4004695A4/en
Priority to US16/925,489 priority patent/US11709593B2/en
Publication of KR20210033394A publication Critical patent/KR20210033394A/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/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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • 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
    • G06K9/00355
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Social Psychology (AREA)
  • Psychiatry (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 개시에서는 전자 장치 및 그의 제어 방법이 제공된다. 본 개시의 전자 장치는, 카메라, 디스플레이, 적어도 하나의 인스트럭션이 저장된 메모리 및 카메라, 디스플레이 및 메모리와 연결되어 전자 장치를 제어하는 프로세서를 포함하며, 프로세서는 적어도 하나의 인스트럭션을 실행함으로써, 카메라를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하고, 문자 입력 모드에서 카메라를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하고, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하고, 식별된 키에 대응되는 정보를 표시하도록 디스플레이를 제어하며, 문자 입력 모드에서 상기 카메라를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다.
본 개시의 전자 장치는 규칙 기반 모델 또는, 기계학습, 신경망 또는 딥러닝 알고리즘 중 적어도 하나에 따라 학습된 인공지능 모델을 이용할 수 있다.

Description

전자 장치 및 그의 제어 방법 {ELECTRONIC APPARATUS AND CONTROLLING METHOD THEREOF}
본 개시는 전자 장치 및 그의 제어 방법에 관한 것으로, 보다 상세하게는 가상 인터페이스를 제공하는 전자 장치 및 그의 제어 방법에 관한 것이다.
최근 기술의 발전으로 인해 다양한 전자 기기들에 카메라가 탑재되는 것이 대중화되고 있다.
일반적으로 휴대용 기기에서는 온 스크린(On Screen) 키보드, 휴대용 물리 키보드, 음성 키보드와 같은 인터페이스를 통해 문자를 입력하여 이메일 작성, 보고서 작성, 메신저 채팅, 콘텐츠 생산 등의 작업들이 수행되고 있다.
다만, 온 스크린 키보드의 경우 휴대용 기기의 디스플레이 사이즈에 따라 키간 간격이나 키의 사이즈 등이 상이하다는 점에서 오타율이 높고, 사용자가 정확한 키를 입력하기 위해 디스플레이에 표시된 키보드를 항상 주시하면서 키보드에 포함된 키를 타이핑 해야 한다는 문제가 있다.
또한, 휴대용 물리 키보드의 경우 인식 속도나 정확율 측면에서 가장 유리하나, 물리 키보드를 항상 휴대해야 한다는 점에서 사용자에게 불편함을 야기하고, 유선 키보드의 경우 입력 포트의 호환성 및 입력 포트의 개수가 제한되는 문제가 있으며, 무선 키보드의 경우 별도의 전원이 요구된다는 문제가 있다.
또한, 음성 키보드의 경우, 사용자가 발화한 음성을 인식하여 텍스트로 전환하는 방식이나, 공공장소 등과 같이 공간 또는 회의 중인 상황 등과 같이 상황에 따라 사용에 제약이 있으며, 인식 속도 또는 인식율이 낮다는 문제가 있다.
이에 따라, 별도의 물리 장치나 기기의 교체 없이도 기존의 휴대용 기기 등을 통해 정확하고 빠르게 입력할 수 있는 인터페이스에 대한 필요성이 증가하고 있다.
본 개시는 상술한 필요성에 의해 안출된 것으로, 본 개시의 목적은 사용자의 모션을 입력으로 인식할 수 있는 인터페이스를 제공하는 전자 장치 및 그의 제어 방법을 제공함에 있다.
상기 목적을 달성하기 위한, 본 개시의 일 실시 예에 따른 전자 장치는, 카메라, 디스플레이, 적어도 하나의 인스트럭션이 저장된 메모리 및 카메라, 디스플레이 및 메모리와 연결되어 전자 장치를 제어하는 프로세서를 포함하며, 프로세서는 적어도 하나의 인스트럭션을 실행함으로써, 카메라를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하고, 문자 입력 모드에서 카메라를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하고, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하고, 식별된 키에 대응되는 정보를 표시하도록 디스플레이를 제어하며, 문자 입력 모드에서 카메라를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다.
여기에서, 프로세서는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락이 기설정된 포즈를 일정 시간 동안 유지하는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다.
한편, 프로세서는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 끝 부분의 위치에 기초하여 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지를 식별할 수 있다.
한편, 프로세서는 문자 입력 모드에서 기준점이 재설정된 이후에 카메라를 통해 획득된 복수의 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 모션에 의한 손가락의 위치 및 손가락에 재설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별할 수 있다.
한편, 복수의 키는 가상의 키보드에 포함된 키들 중 손가락이 포함된 손의 종류 및 손가락의 종류에 기초하여 결정된 기준키 및 가상의 키보드에 포함된 키들 중에서 기준키와 인접한 적어도 2 개의 키를 포함할 수 있다.
여기에서, 프로세서는 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 미만인 경우, 손가락에 매핑된 복수의 키 중 기준키를 모션에 대응되는 키인 것으로 식별하고, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 이상인 경우, 모션에 의해 손가락이 이동된 방향에 기초하여 손가락에 매핑된 복수의 키 중 기준키로부터 손가락이 이동된 방향에 위치한 키를 모션에 대응되는 키인 것으로 식별할 수 있다.
한편, 프로세서는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 설정할 수 있다.
여기에서, 프로세서는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 디스플레이에 표시하고, 문자 입력 모드에서 모션에 대응되는 키가 식별되면, 가상의 키보드에 포함된 키들 중 식별된 키를 다른 키와 구별되도록 표시할 수 있다.
여기에서, 프로세서는 모션에 대응되는 키가 디스플레이에 표시된 정보를 삭제하기 위한 삭제 키인 경우, 디스플레이에 표시된 정보를 삭제하며, 정보를 삭제한 빈도수에 기초하여 가상 키보드의 투명도를 조절할 수 있다.
한편, 프로세서는 기설정된 사용자 명령이 입력되면, 카메라를 활성화시키고, 활성화된 카메라를 통해 복수의 제1 이미지 프레임을 획득할 수 있다. 여기서, 기설정된 사용자 명령은 텍스트 입력이 가능한 문서를 디스플레이에 표시하기 위한 사용자 명령 또는 디스플레이에 표시된 텍스트 입력 창을 선택하는 사용자 명령을 포함할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 카메라를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하는 단계, 문자 입력 모드에서 카메라를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하는 단계, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하는 단계, 식별된 키에 대응되는 정보를 디스플레이에 표시하는 단계 및 문자 입력 모드에서 카메라를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정하는 단계를 포함할 수 있다.
여기에서, 재설정하는 단계는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락이 기설정된 포즈를 일정 시간 동안 유지하는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다.
한편, 재설정하는 단계는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 끝 부분의 위치에 기초하여 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지를 식별하는 단계를 포함할 수 있다.
한편, 재설정하는 단계는 문자 입력 모드에서 기준점이 재설정된 이후에 카메라를 통해 획득된 복수의 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 모션에 의한 손가락의 위치 및 손가락에 재설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별할 수 있다.
한편, 복수의 키는 가상의 키보드에 포함된 키들 중 손가락이 포함된 손가락의 종류(예: 왼손 또는 오른손의 엄지 내지 소지)에 기초하여 결정된 기준키 및 가상의 키보드에 포함된 키들 중에서 기준키와 인접한 적어도 2 개의 키를 포함할 수 있다.
여기에서, 식별하는 단계는 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 미만인 경우, 손가락에 매핑된 복수의 키 중 기준키를 모션에 대응되는 키인 것으로 식별하고 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 이상인 경우, 모션에 의해 손가락이 이동된 방향에 기초하여 손가락에 매핑된 복수의 키 중 기준키로부터 손가락이 이동된 방향에 위치한 키를 모션에 대응되는 키인 것으로 식별할 수 있다.
한편, 제어 방법은 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 설정하는 단계를 더 포함할 수 있다.
여기에서, 설정하는 단계는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 디스플레이에 표시하는 단계를 포함하고, 가상의 키보드를 표시하는 단계는 문자 입력 모드에서 모션에 대응되는 키가 식별되면, 가상의 키보드에 포함된 키들 중 식별된 키를 다른 키와 구별되도록 표시하는 단계를 포함할 수 있다.
여기에서, 가상의 키보드를 표시하는 단계는 모션에 대응되는 키가 디스플레이에 표시된 정보를 삭제하기 위한 삭제 키인 경우, 디스플레이에 표시된 정보를 삭제하며, 정보를 삭제한 빈도수에 기초하여 가상 키보드의 투명도를 조절하는 단계를 포함할 수 있다.
한편, 제어 방법은 기설정된 사용자 명령이 입력되면, 카메라를 활성화시키고, 활성화된 카메라를 통해 복수의 제1 이미지 프레임을 획득하는 단계를 더 포함할 수 있다. 여기서, 기설정된 사용자 명령은 텍스트 입력이 가능한 문서를 디스플레이에 표시하기 위한 사용자 명령 또는 디스플레이에 표시된 텍스트 입력 창을 선택하는 사용자 명령을 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 사용자의 모션을 입력으로 인식할 수 있는 인터페이스를 제공하는 전자 장치 및 그의 제어 방법을 제공할 수 있다.
본 개시의 다양한 실시 예에 따르면 전자 장치 및 그의 제어 방법을 통해 사용자의 모션을 사용자가 원하는 입력으로 인식하는 인식률을 향상시키고, 입력의 편의성과 신속성을 향상시키는 인터페이스 환경을 제공할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면이다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.
도 2b는 본 개시의 일 실시 예에 따른 전자 장치의 부가적인 구성을 설명하기 위한 블록도이다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 순서도이다.
도 4a는 본 개시의 일 실시 예에 따른 기설정된 사용자 명령을 설명하기 위한 도면이다.
도 4b는 본 개시의 일 실시 예에 따른 카메라의 활성화를 설명하기 위한 도면이다.
도 4c는 본 개시의 일 실시 예에 따른 이미지 프레임에서 손가락을 검출하는 방법을 설명하기 위한 도면이다.
도 4d는 본 개시의 일 실시 예에 따른 이미지 프레임에서 손가락을 검출하는 방법을 설명하기 위한 도면이다.
도 4e는 본 개시의 일 실시 예에 따른 이미지 프레임에서 손가락을 검출하는 방법을 설명하기 위한 도면이다.
도 5a는 본 개시의 일 실시 예에 따른 트리거 포즈를 설명하기 위한 도면이다.
도 5b는 본 개시의 일 실시 예에 따른 트리거 포즈를 식별하는 방법을 설명하기 위한 도면이다.
도 5c는 본 개시의 일 실시 예에 따른 트리거 포즈가 식별되면 제공되는 UI를 설명하기 위한 도면이다.
도 5d는 본 개시의 일 실시 예에 따른 트리거 포즈가 식별되면 제공되는 UI를 설명하기 위한 도면이다.
도 6a는 본 개시의 일 실시 예에 따른 사용자의 모션을 설명하기 위한 도면이다.
도 6b는 본 개시의 일 실시 예에 따른 사용자의 손가락에 매핑된 키를 설명하기 위한 도면이다.
도 6c는 본 개시의 일 실시 예에 따른 사용자의 모션에 의해 표시되는 정보를 설명하기 위한 도면이다.
도 6d는 본 개시의 일 실시 예에 따른 가상 키보드의 투명도를 조절하는 방법을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 도면이다.
도 8a는 본 개시의 일 실시 예에 따른 기준점을 설정하는 방법을 설명하기 위한 도면이다.
도 8b는 본 개시의 일 실시 예에 따른 기준점을 설정하는 방법을 설명하기 위한 도면이다.
도 8c는 본 개시의 일 실시 예에 따른 기준점을 설정하는 방법을 설명하기 위한 도면이다.
도 9a는 본 개시의 일 실시 예에 따른 기준점을 재설정하는 방법을 설명하기 위한 도면이다.
도 9b는 본 개시의 일 실시 예에 따른 기준점을 재설정하는 방법을 설명하기 위한 도면이다.
도 9c는 본 개시의 일 실시 예에 따른 기준점을 재설정하는 방법을 설명하기 위한 도면이다.
도 9d는 본 개시의 일 실시 예에 따른 기준점을 재설정하는 방법을 설명하기 위한 도면이다.
도 10a는 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 도면이다.
도 10b는 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 12는 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 순서도이다.
도 13a는 본 개시의 일 실시 예에 따른 전자 장치가 오타를 교정하는 방법을 설명하기 위한 도면이다.
도 13b는 본 개시의 일 실시 예에 따른 전자 장치가 오타를 교정하는 방법을 설명하기 위한 도면이다.
본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. 덧붙여, 하기 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 개시의 기술적 사상의 범위가 하기 실시 예에 한정되는 것은 아니다. 오히려, 이들 실시 예는 본 개시를 더욱 충실하고 완전하게 하고, 당업자에게 본 개시의 기술적 사상을 완전하게 전달하기 위하여 제공되는 것이다.
본 개시에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 상기 구성요소들을 한정하지 않는다.
본 개시에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 개시에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 상기 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 상기 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 전자 장치(100)는 사용자의 손(10)을 감지하여, 사용자의 손(10)의 모션에 대응되는 출력을 제공할 수 있다. 즉, 전자 장치(100)는 사용자의 손(10)의 모션을 입력으로 인식하고, 입력에 대응되는 출력을 제공할 수 있다.
전자 장치(100)는 사용자의 손(10)에 포함된 손가락을 인식할 수 있다. 이 경우, 전자 장치(100)는 사용자의 손(10)을 사용자의 왼손(10L) 및 사용자의 오른손(10R)으로 구분하여, 왼손(10L) 및 오른손(10R) 각각에 포함된 손가락을 인식할 수 있다.
여기서, 사용자의 각 손가락에는 복수의 키가 매핑될 수 있다. 전자 장치(100)는 키를 타이핑하는 사용자의 손(10)(또는 손가락)의 모션(움직임 또는 제스쳐)에 기초하여 복수의 손가락 중 키를 타이핑하는 손가락(이하, 타이핑 손가락)를 결정(식별)하고, 타이핑 손가락의 모션에 기초하여 타이핑 손가락에 매핑된 복수의 키 중에서 하나의 키를 결정할 수 있다.
여기서, 손(10)의 모션은 가상의 키보드에 포함된 복수의 키(예: 문자 key(a-z 등), 숫자 key(0-9 등), 기호 key(!, @, # 등) 등) 중에서 특정한 키를 타이핑하기 위한 손가락의 움직임을 지칭할 수 있다. 전자 장치(100)는 손가락의 위치(또는 위치 변화)에 기초하여 손(10)의 모션을 식별할 수 있다.
본 개시의 일 실시 예에 따른 전자 장치(100)는 휴대용 기기로 구현될 수 있다. 휴대용 기기는 일반 사용자가 휴대할 수 있는 전자 기기를 지칭할 수 있으며, 예를 들어 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나로 구현될 수 있다. 여기서, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device; HMD), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 하나 또는 이들의 조합으로 구현되는 장치를 지칭할 수 있다.
또한, 본 개시의 일 실시 예에 따른 전자 장치(100)는 가전제품(home appliance)으로 구현될 수 있다. 가전제품은 일반적으로 가정에서 사용되는 전자 기기를 지칭하나, 본 개시의 가전제품은 사용되는 장소에 한정되지 아니하고 오피스, 학교, 병원, 관공서 등 다양한 장소에서 사용되는 전자 기기를 포함할 수 있다. 가전제품은 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성 HomeSync, 애플TV, 또는 구글 TV 등), 게임 콘솔(예: Xbox, PlayStation, Switch 등), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
또한, 본 개시의 다양한 실시 예에 따른 전자 장치(100)는 워크스테이션(workstation), 서버, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등), 가구(furniture) 또는 건물/구조물의 일부 등으로 구현될 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 개시의 일 실시 예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
이상과 같은, 본 개시의 전자 장치(100)는 사용자의 모션을 전자 장치(100)의 입력으로 인식할 수 있으며, 이에 따라 별도의 물리 장치(예: 키보드 등)나 기기의 교체 없이도 전자 장치(100)를 통해 정확하고 빠르게 입력을 인식할 수 있다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이며, 도 2b는 본 개시의 일 실시 예에 따른 전자 장치의 부가적인 구성을 설명하기 위한 블록도이다.
먼저 도 2a를 참조하면, 본 개시의 일 실시 예에 따른 전자 장치(100)는, 카메라(110), 디스플레이(120), 메모리(130) 및 프로세서(140)를 포함할 수 있다.
카메라(110)는 촬영 영역 내에 존재하는 객체(예: 사용자의 한손 또는 양손)를 연속하여(또는 주기적으로) 촬영함으로써 복수의 이미지 프레임을 순차적으로 획득할 수 있다. 이 경우, 복수의 이미지 프레임의 프레임 개수는 시간을 나타낼 수 있다. 예를 들어, 카메라(110)가 특정한 프레임 레이트(Frame Rate) 로 객체를 촬영하여 복수의 이미지 프레임을 획득한 경우, 프레임 레이트(단위 FPS, Frames Per Second 등)에 복수의 이미지 프레임의 프레임 개수를 곱하여 시간을 구할 수 있다. 이를 위해, 복수의 이미지 프레임 각각에는 카메라(110)에 의해 촬영된 프레임 레이트 및 시점 등에 대한 정보가 포함될 수 있다. 다만, 이는 일 실시 예일 뿐, 프레임 레이트, 시점에 대한 정보는 별도의 메타 정보에 포함될 수도 있다. 또한, 촬영 영역은 렌즈를 통해 촬영할 수 있는 영역으로서 화각을 의미할 수 있으며, 렌즈의 초점 거리(focal length) 및 카메라(110)의 이미지 센서(미도시)의 크기(예: 대각 길이)에 따라 화각이 결정될 수 있다.
이를 위해, 카메라(110)는 RGB 카메라 또는 스테레오 카메라로 구현될 수 있다.
RGB 카메라는 객체를 연속적으로 촬영하여 이미지 프레임을 순차적으로 획득할 수 있다. 구체적으로, RGB 카메라는 렌즈(미도시), 이미지 센서(미도시), 이미지 프로세서(미도시)를 포함할 수 있다. 렌즈는 객체로부터 반사된 빛을 이미지 센서로 집광 또는 분광시키며, 이미지 센서는 투과된 광을 픽셀 단위로 구분하여 각 픽셀마다 R(Red), G(Green), B(Blue) 색상을 감지하여 전기 신호를 생성하고, 이미지 프로세서는 이미지 센서에서 감지된 전기 신호에 따라 각각의 픽셀을 처리하여, 객체의 색상(예: 손 또는 손가락의 피부 색상), 형상(예: 손 또는 손가락의 형태), 명암 등을 표현하는 이미지 프레임을 획득할 수 있다. 이때, 이미지 프레임은 현실의 3차원 공간이 가상의 2차원 평면으로 투영된 것으로서, 이미지 프레임을 구성하는 각각의 점은 2차원 위치 정보(예: x축상 위치, y축상 위치)를 포함할 수 있다. 이 경우에도, 이미지 프레임의 음영, 명암, 포인트 클라우드(point cloud), 색상 등을 실시간 컴퓨터 비전을 분석하기 위한 프로그래밍 라이브러리(예: OpenCV(Open Source Computer Vision), Python 등) 또는 다양한 알고리즘 등을 통해 이미지 프레임을 구성하는 각각의 점에 깊이 정보(예: z축상 위치)를 부여할 수 있으며, 이때 이미지 프레임은 3차원 위치 정보(예: x축상 위치, y축상 위치, z축상 위치)를 포함할 수 있다.
스테레오 카메라는 서로 이격되어 배치된 복수의 RGB 카메라를 지칭할 수 있다. 복수의 RGB 카메라는 서로 다른 위치(또는 방향)에서 객체를 동시에 촬영하여 동일한 시점에 대한 복수의 이미지 프레임을 획득할 수 있다. 이 경우, 프로세서(140)(또는 이미지 프로세서)는 동일한 시점에 대한 복수의 이미지 프레임을 스테레오 정합(stereo matching)하여 시차(disparity)를 산출하고, 시차, 렌즈의 초점 거리 및 베이스라인(baseline)에 기초하여, 전자 장치(100) 및 객체(현실의 공간에 존재하는 객체) 사이의 깊이(또는 거리)를 산출할 수 있다. 이 경우, 프로세서(140)는 복수의 이미지 프레임 중 기준 이미지 프레임의 2차원 위치 정보(예: x축상 위치, y축상 위치)와 깊이 정보(예: z축상 위치)를 결합하여, 기준 이미지 프레임에 포함된 객체에 대한 3차원 위치 정보(예: x축상 위치, y축상 위치, z축상 위치)를 획득할 수 있다. 여기서, 스테레오 정합은, 전역 정합(global matching), 지역 정합(local matching) 등 다양한 방법을 통해 동일한 시점에 대한 복수의 이미지 프레임에 포함된 동일한 객체를 매칭하는 것을 지칭할 수 있다. 시차는 복수의 이미지 프레임에 포함된 동일한 객체에 대한 위치 차이(예: x축 또는 y축 상의 위치 차이)를 지칭할 수 있으며, 초점 거리 또는 베이스라인이 클수록 높게 나타날 수 있다. 초점 거리는 이미지 센서 및 렌즈 사이의 거리를 지칭할 수 있다. 베이스라인은 복수의 RGB 카메라가 이격된 간격을 지칭할 수 있다. 기준 이미지 프레임은 복수의 RGB 카메라 중 기설정된 하나의 RGB 카메라에서 촬영된 이미지 프레임을 지칭할 수 있다.
한편, 카메라(110)는 RGB-D(Depth) 카메라로 구현될 수 있다. 여기서, RGB-D(Depth) 카메라는 객체를 촬영하여 이미지 프레임을 획득하고, 전자 장치(100) 및 객체(현실의 공간에 존재하는 객체) 사이의 깊이(또는 거리)를 감지할 수 있다. 이 경우 프로세서(140)는 이미지 프레임의 2차원 위치 정보(예: x축상 위치, y축상 위치)와 깊이 정보(예: z축상 위치)를 결합하여, 이미지 프레임에 포함된 객체에 대한 3차원 위치 정보(예: x축상 위치, y축상 위치, z축상 위치)를 획득할 수 있다. 이를 위해, RGB-D 카메라는 RGB 카메라 또는 스테레오 카메라에 센서(150, 도 2b 참조)가 물리적으로 결합되는 방식으로 구현되거나, 프로세서(140)가 RGB 카메라 또는 스테레오 카메라에서 획득된 이미지 프레임과 센서에서 획득된 깊이 정보를 결합하는 방식으로 구현되는 것 또한 가능하다.
센서(150)는 도 2b를 참조하여, 객체(예: 사용자의 손 또는 손가락)와의 거리(또는 깊이) 또는 객체의 모션을 감지할 수 있다. 이를 위해, 센서(150)는 구조광 방식, TOF(Time Of Flight) 방식, 모션 캡쳐 방식 등의 다양한 방식을 활용할 수 있으며, 그 방식에 따라 구현되는 하드웨어 또한 달라질 수 있다.
구조광(Structured Light; SL) 방식의 경우, 센서(150)는 패턴(예: 직선 또는 점 등이 일정 간격마다 반복되는 형태)을 갖는 빛을 객체를 향해 방출하는 프로젝터 및 객체에 의해 방출된 빛의 반사를 감지하는 광검출기를 포함할 수 있다. 이때, 센서(150)는 객체(예: 사용자의 손 또는 손가락 등)의 외형에 따라 변형된 패턴을 알고리즘으로 분석하여, 전자 장치(100)와 객체 사이의 거리 또는 모션을 인식할 수 있다. 한편, TOF(Time Of Flight) 방식의 경우, 센서(150)는 빛 또는 전파(예: 레이저, 적외선, 초음파 등)를 객체를 향해 방출하는 발생기 및 객체에 의해 반사된 빛 또는 전파(예: 레이저, 적외선, 초음파 등)가 되돌아오는 시간 또는 강도를 측정하는 수신부를 포함할 수 있다. 이때, 센서(150)는 객체에 의해 반사된 빛 또는 전파가 되돌아오는 시간 또는 강도를 통해 전자 장치(100)와 객체 사이의 거리를 감지할 수 있다. 한편, 모션 캡쳐(Motion Capture) 방식의 경우, 사용자의 신체(예: 사용자의 손가락, 관절 부위 등)에 복수의 마커(를 부착시키고, 센서(150)는 복수의 마커의 위치를 감지하여 사용자의 모션을 감지할 수 있다. 이때, 모션 캡쳐는 기계식, 자기식, 광학식, 관성식 등 다양한 방식의 모션 캡쳐가 이용될 수 있다.
한편, 전술한 카메라(110)(또는 센서(150))는 전자 장치(100)에 구비될 수 있으나 이는 일 실시 예일 뿐이며, 카메라(110)(또는 센서(150))는 전자 장치(100)와 별도의 외부 장치에 구비되는 것 또한 가능하며, 이 경우에는 전자 장치(100)는 외부 장치에서 획득된 이미지 프레임 또는 깊이 정보를 통신부(170, 도 2b 참조)를 통해 수신할 수 있다.
디스플레이(120)는 시각적으로 정보 또는 데이터를 출력하는 장치이다. 디스플레이(120)는 이미지 프레임을 디스플레이 영역의 전체 또는 일부 영역에 표시할 수 있다. 디스플레이 영역은 정보 또는 데이터가 시각적으로 표시되는 픽셀 단위의 영역 전체를 지칭할 수 있다. 디스플레이(120)의 적어도 일부는 플렉서블 디스플레이(flexible display)의 형태로 전자 장치(100)의 전면 영역 및, 측면 영역 및 후면 영역 중 적어도 하나에 결합될 수도 있다. 플렉서블 디스플레이는 종이처럼 얇고 유연한 기판을 통해 손상 없이 휘거나 구부리거나 말 수 있는 것을 특징으로 할 수 있다.
메모리(130)는 프로세서(140) 등이 접근할 수 있도록 데이터 등의 정보를 전기 또는 자기 형태로 저장하는 하드웨어를 지칭할 수 있으며, 메모리(130)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(130)에는 전자 장치(100) 또는 프로세서(140)의 동작에 필요한 적어도 하나의 인스트럭션(instruction), 프로그램 또는 데이터가 저장될 수 있다. 여기서, 인스트럭션은 전자 장치(100) 또는 프로세서(140)의 동작을 지시하는 부호 단위로서, 컴퓨터가 이해할 수 있는 언어인 기계어로 작성된 것일 수 있다. 프로그램은 작업 단위의 특정 작업을 수행하는 일련의 인스트럭션의 집합체(instruction set)일 수 있다. 데이터는 문자, 수, 영상 등을 나타낼 수 있는 비트 또는 바이트 단위의 상태 정보일 수 있다.
또한, 메모리(130)에는 카메라(110)에 의해 획득된 이미지 프레임, 프로세서(140)에 의해 식별된 키에 대응되는 정보 등이 저장될 수 있다. 메모리(130)는 프로세서(140)에 의해 액세스되며, 프로세서(140)에 의해 인스트럭션, 프로그램 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
프로세서(140)는 메모리(130)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 전자 장치(100)를 제어할 수 있다. 이를 위해, 프로세서(140)는 카메라(110), 디스플레이(120) 및 메모리(130)와 연결되어 전자 장치(100)를 제어할 수 있다. 구체적으로, 프로세서(140)는 인스트럭션을 읽고 해석하며 데이터 처리를 위한 시퀀스를 결정할 수 있으며, 이에 따라 다른 장치의 동작을 제어하는 타이밍 및 제어 신호를 다른 장치로 제공함으로써 다른 장치의 동작을 제어할 수 있다.
한편, 프로세서(140)는 프로세서(140) 내부에 구비된 메모리(미도시)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 전자 장치(100)를 제어할 수도 있다. 이때, 프로세서(140) 내부에 구비된 메모리는 ROM(예: NOR 또는 NAND형 플래시 메모리), RAM(예: DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDR SDRAM(Double data rate SDRAM)), 휘발성 메모리 등을 포함할 수 있다.
한편, 프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수도 있으며, 프로세서(140)는 CPU(Central Processing Unit), AP(Application Processor) 등과 같은 범용 프로세서, GPU(Graphic Processing Unit), VPU(Vision Processing Unit) 등과 같은 그래픽 전용 프로세서, NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서 등으로 구현될 수 있다.
여기서, 프로세서(140)는 GPU 및 CPU를 포함할 수 있으며, GPU 및 CPU는 연계하여 본 개시의 동작을 수행할 수 있다. 예를 들어, GPU는 데이터 중 이미지 프레임 등을 처리하고, CPU는 나머지 데이터(예: 인스트럭션, 코드 등)를 처리할 수 있다. 이때, GPU는 여러 명령어 또는 데이터를 동시에 처리하는 병렬 처리 방식에 특화된 수백 또는 수천 개의 코어를 갖는 구조로 구현되며, CPU는 명령어 또는 데이터가 입력된 순서대로 처리하는 직렬 처리 방식에 특화된 수개의 코어를 갖는 구조로 구현될 수 있다.
일 실시 예로서, GPU는 카메라(110)를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, CPU는 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하고, GPU는 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하고, CPU는 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하고, 식별된 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다. 이는 일 실시 예일 뿐 다양한 변형 실시 예가 가능하며, 이하에서는 설명의 편의를 위해 프로세서(140)에 의해 수행되는 것으로 설명하도록 한다.
프로세서(140)는 카메라(110)를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하고, 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하고, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하고, 식별된 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다. 이 경우, 프로세서(140)는 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다. 구체적인 내용은 도 7 등을 참조하여 후술하도록 한다.
여기에서, 문자 입력 모드는 본 개시의 전자 장치(100)가 사용자의 손가락의 모션(또는 제스쳐)를 검출하여 사용자의 손가락의 모션(또는 제스쳐)에 대응되는 키를 식별하고 식별된 키에 대응되는 정보를 표시하는 동작을 수행하는 상태를 지칭할 수 있다. 즉, 문자 입력 모드에 진입한 경우에 사용자의 손가락의 모션을 특정한 키의 입력으로 인식하며, 문자 입력 모드가 해제된 경우에 사용자의 손가락의 모션을 특정한 키의 입력으로 인식하지 않는다.
또한, 손가락의 모션은 손가락이 특정한 위치에서 다른 위치로 이동한 상태를 지칭할 수 있다. 이때, 모션에 의한 손가락의 위치는, 손가락이 특정한 위치에서 다른 위치로 이동된 경우에 손가락이 이동된 위치를 지칭할 수 있다.
또한, 손가락에 설정된 기준점은, 손가락의 모션을 판단하기 위한 기준이 되는 위치를 지칭할 수 있다. 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면 기준점이 설정되고, 이후 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면 기준점이 재설정됨으로써 기준점의 위치는 동적으로 변경될 수 있다.
한편, 프로세서(140)는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 설정할 수 있다. 구체적인 내용은 도 8a 내지 8c에서 후술하여 설명하도록 한다.
여기에서, 본 개시에서 설명하는 복수의 제1 이미지 프레임, 복수의 제2 이미지 프레임, 복수의 제3 이미지 프레임, 복수의 제4 이미지 프레임이라는 용어는 청구항에 기재된 서로 다른 복수의 이미지 프레임을 구분하기 위한 것으로, 청구항에 기재된 순서에 따라 번호가 부여된 것이다. 이는 시간의 흐름에 따라 획득된 순서를 나타내며, 이들 이미지 프레임 사이에는 카메라(110)를 통해 획득된 다른 이미지 프레임이 더 존재할 수도 있다.
이를 위해, 프로세서(140)는 기설정된 사용자 명령이 입력되면, 카메라(110)를 활성화시키고, 활성화된 카메라(110)를 통해 복수의 제1 이미지 프레임을 획득할 수 있다. 여기서, 기설정된 사용자 명령은 텍스트 입력이 가능한 문서를 디스플레이(120)에 표시하기 위한 사용자 명령 또는 디스플레이(120)에 표시된 텍스트 입력 창을 선택하는 사용자 명령을 포함할 수 있다. 구체적인 내용은 도 4a 및 4b에서 후술하여 설명하도록 한다.
그리고, 프로세서(140)는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 디스플레이(120)에 표시할 수 있다. 구체적인 내용은 도 5c에서 후술하여 설명하도록 한다.
여기에서, 복수의 키는 가상의 키보드에 포함된 키들 중 손가락이 포함된 손의 종류 및 손가락의 종류에 기초하여 결정된 기준키 및 가상의 키보드에 포함된 키들 중에서 기준키와 인접한 적어도 2 개의 키를 포함할 수 있다. 구체적인 내용은 도 6b에서 후술하여 설명하도록 한다.
이 경우, 프로세서(140)는 문자 입력 모드에서 모션에 대응되는 키가 식별되면, 가상의 키보드에 포함된 키들 중 식별된 키를 다른 키와 구별되도록 표시할 수 있다. 구체적인 내용은 도 6c에서 후술하여 설명하도록 한다.
한편, 프로세서(140)는 모션에 대응되는 키가 디스플레이(120)에 표시된 정보를 삭제하기 위한 삭제 키인 경우, 디스플레이(120)에 표시된 정보를 삭제하며, 정보를 삭제한 빈도수에 기초하여 가상 키보드의 투명도를 조절할 수 있다. 구체적인 내용은 도 6d에서 후술하여 설명하도록 한다.
한편, 프로세서(140)는 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출할 수 있다. 이때, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다. 여기에서, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락이 기설정된 포즈를 일정 시간 동안 유지하는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다. 한편, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 끝 부분의 위치에 기초하여 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지를 식별할 수 있다. 구체적인 내용은 도 9a 내지 9d에서 후술하여 설명하도록 한다.
여기에서, 프로세서(140)는 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 미만인 경우, 손가락에 매핑된 복수의 키 중 기준키를 모션에 대응되는 키인 것으로 식별하고, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 이상인 경우, 모션에 의해 손가락이 이동된 방향에 기초하여 손가락에 매핑된 복수의 키 중 기준키로부터 손가락이 이동된 방향에 위치한 키를 모션에 대응되는 키인 것으로 식별할 수 있다. 구체적인 내용은 도 10a 및 도 10b에서 후술하여 설명하도록 한다.
한편, 프로세서(140)는 문자 입력 모드에서 기준점이 재설정된 이후에 카메라(110)를 통해 획득된 복수의 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 모션에 의한 손가락의 위치 및 손가락에 재설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별할 수 있다. 이 경우, 본 개시의 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하는 동작에 대한 설명이 동일하게 적용될 수 있다. 즉, 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하는 동작에 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치를 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션에 의한 손가락 위치 및 손가락에 재설정된 기준점의 위치로 치환하여 적용할 수 있다.
도 2b를 참조하면, 전자 장치(100)는 카메라(110), 디스플레이(120), 메모리(130), 프로세서(140) 외에도 센서(150), 입출력포트(160), 통신부(170), 스피커(180) 및 입력 인터페이스(190) 중 하나를 포함할 수 있다. 카메라(110), 디스플레이(120), 메모리(130), 프로세서(140) 및 센서(150)는 전술하여 설명한 바 있다는 점에서, 중복되는 내용은 생략하기로 한다.
입출력포트(160)는 전자 장치(100)가 외부 장치(미도시)와 이미지 및/또는 음성에 대한 신호를 송신 및/또는 수신할 수 있도록, 전자 장치(100) 및 외부 장치(미도시)를 유선으로 연결해주는 구성이다. 이를 위해, 입출력포트(160)는 HDMI 포트, 디스플레이 포트, RGB 포트, DVI(Digital Visual Interface) 포트, 썬더볼트 및 컴포넌트 포트 등 유선 포트로 구현될 수 있다. 일 예로, 전자 장치(100)가 이미지 및/또는 음성을 출력할 수 있도록, 전자 장치(100)는 입출력포트(160)를 통해 이미지 및/또는 음성에 대한 신호를 외부 장치(미도시)로부터 수신할 수 있다. 다른 예로, 외부 장치(미도시)가 이미지 및/또는 음성을 출력할 수 있도록, 전자 장치(100)는 입출력포트(160)를 통해 특정한 이미지 및/또는 음성에 대한 신호를 외부 장치로 송신할 수 있다. 이와 같이, 입출력 포트(160)를 통해 이미지 및/또는 음성에 대한 신호가 일방향으로 전송될 수 있다. 다만, 이는 일 실시 예일 뿐, 입출력 포트(160)를 통해 이미지 및/또는 음성에 대한 신호가 양방향으로 전송될 수 있음은 물론이다.
통신부(170)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 기기와 통신을 수행하여 다양한 유형의 데이터를 송수신할 수 있다. 통신부(170)는 무선 통신을 수행하는 블루투스 칩(미도시), 와이파이 칩(미도시), 무선 통신 칩(미도시) 및 NFC 칩(미도시), 유선 통신을 수행하는 이더넷 모듈(미도시) 및 USB 모듈(미도시) 중 적어도 하나를 포함할 수 있다. 이 경우, 유선 통신을 수행하는 이더넷 모듈(미도시) 및 USB 모듈(미도시)은 입출력포트(160)를 통하여 외부 기기와 통신을 수행할 수 있다.
스피커(180)는 오디오 처리부(미도시)에 의해 디코딩이나 증폭, 노이즈 필터링과 같은 다양한 처리 작업이 수행된 각종 오디오 데이터뿐만 아니라 각종 알림 음이나 음성 메시지를 직접 소리로 출력할 수 있으며, 전자 장치(100)에 내장된 형태로 구현되거나 별도의 외부 장치로 구현될 수 있다. 스피커(180)가 외부 장치로 구현된 경우, 전자 장치(100)는 입출력 포트(160) 또는 통신부(170)를 통해 연결된 스피커(180)로 소리를 출력하기 위한 데이터를 전송할 수 있다. 여기서, 스피커(180)는 특정한 위치 또는 영역에 대해서만 소리를 전달하는 지향성 스피커로 구현될 수 있다.
입력 인터페이스(190)는 다양한 사용자 입력을 수신하여 프로세서(140)로 전달할 수 있다. 입력 인터페이스(190)는 예를 들면, 터치 패널(미도시), 펜 센서(미도시), 키(미도시) 및 마이크(미도시) 중에서 적어도 하나를 포함할 수 있다. 터치 패널은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있으며, 이를 위해 터치 패널은 제어 회로를 포함할 수도 있다. 터치 패널은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. 펜 센서는 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는 예를 들면, 물리적인 버튼, 광학식 키 또는 키패드를 포함할 수 있다. 마이크는 사용자의 음성을 직접 수신할 수 있으며, 디지털 변환부(미도시)에 의해 아날로그 신호인 사용자의 음성을 디지털로 변환하여 오디오 신호를 획득할 수 있다. 이와 같은 입력 인터페이스(190)는 전자 장치(100)에 내장되거나 키보드, 마우스, 외부 마이크 등과 같은 별도의 외부 장치(미도시)로 구현될 수 있으며, 외부 장치로 구현된 경우에 전자 장치(100)는 입출력 포트(160) 또는 통신부(170)를 통해 연결된 입력 인터페이스(190)로부터 사용자 입력 또는 오디오 신호를 수신할 수 있다.
이하에서는 첨부된 도면을 참조하여, 본 개시에 대한 구체적인 내용을 설명하기로 한다.
도 3은 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 순서도이다.
도 3을 참조하여, 전자 장치(100)는 기설정된 사용자 명령이 입력되었는지 여부를 식별할 수 있다(S310). 여기서, 기설정된 사용자 명령이 입력된 것으로 식별된 경우(S310, Y), 전자 장치(100)는 촬영을 통해 복수의 이미지 프레임(예: 복수의 제1 이미지 프레임)을 획득하고, 획득된 복수의 이미지 프레임(예: 복수의 제1 이미지 프레임) 각각에서 복수의 손가락을 검출할 수 있다(S320).
이후, 전자 장치(100)는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는지 여부를 식별할 수 있다(S330).
여기서, 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별된 경우(S330, Y), 문자 입력 모드로 진입할 수 있다. 이 경우, 전자 장치(100)는 이후에 획득된 복수의 제2 이미지 프레임에서 복수의 손가락의 모션을 검출할 수 있다(S340).
한편 이와 달리, 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되지 않는 것으로 식별된 경우(S330, N), 전자 장치(100)는 복수의 제1 이미지 프레임 이후에 획득된 복수의 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는지 여부를 식별할 수 있다(S330).
그리고, 복수의 제1 이미지 프레임 이후에 획득된 복수의 제2 이미지 프레임에서 복수의 손가락의 모션이 검출된 경우(S340, Y), 전자 장치(100)는 모션에 대응되는 키를 식별할 수 있다(S350). 이 경우, 전자 장치(100)는 식별된 키에 대응되는 정보를 표시할 수 있다(S360). 한편 이와 달리, 복수의 제2 이미지 프레임에서 복수의 손가락의 모션이 검출되지 않는 경우(S340, N), 전자 장치(100)는 복수의 제2 이미지 프레임 이후에 획득된 복수의 이미지 프레임에서 복수의 손가락의 모션을 검출할 수 있다(S340).
그리고, 전자 장치(100)는 해제 이벤트의 발생 여부를 식별할 수 있다(S370). 전자 장치(100)는 해제 이벤트가 발생한 것으로 식별되면(S370, Y), 문자 입력 모드를 해제할 수 있다. 즉, 손가락의 모션을 검출하여 모션에 대응되는 키로 식별하는 동작을 종료할 수 있다. 이때, 해제 이벤트는 어플리케이션이 종료되는 이벤트, 복수의 이미지 프레임에서 사용자의 손이 기설정된 시간(예: 15초, 30초, 1분 등) 동안 검출되지 않는 이벤트 등을 포함할 수 있다. 이와 달리, 전자 장치(100)는 해제 이벤트가 발생하지 않은 것으로 식별되면(S370, N), 이후에 획득된 복수의 이미지 프레임에서 복수의 손가락의 모션을 검출하는 동작(S340)을 반복하여 수행할 수 있다.
이에 따라, 본 개시의 전자 장치(100)는 트리거 포즈를 취한 것으로 검출되는 경우에만 손가락의 모션을 특정한 키의 입력으로 인식한다는 점에서, 사용자가 모션을 통해 키를 입력하려는 의도가 없는 상황에서 사용자의 모션을 검출하는 동작하는 것을 방지하고, 또한 전력 절감의 효과가 있다.
이하에서는 첨부된 도면을 참조하여, 도 3의 각 동작에 대한 구체적인 내용을 설명하기로 한다.
도 4a 및 도 4b를 참조하여, 프로세서(140)는 기설정된 사용자 명령이 입력되면(S310, Y), 카메라(110)를 활성화시킬 수 있다.
여기에서, 기설정된 사용자 명령은 도 4a에 도시된 바와 같이 디스플레이(120)에 표시된 텍스트 입력 창(410)을 선택하는 사용자 명령 또는 텍스트 입력이 가능한 문서를 디스플레이(120)에 표시하기 위한 사용자 명령을 포함할 수 있다. 이때, 텍스트 입력 창(410)은 문자, 숫자 또는 기호 등과 같은 텍스트가 입력되거나 삭제될 수 있는 필드(field)로서, 입력된 텍스트는 디스플레이(120)의 텍스트 입력 창(410)에 표시될 수 있다. 또한, 텍스트 입력이 가능한 문서는 이메일, 워드 프로세서, 메모장, 일정, 달력, 웹페이지 등 다양한 형태의 문서를 포함할 수 있다. 또한, 사용자 명령은 사용자의 터치, 사용자의 음성, 사용자의 제스쳐, 물리 버튼의 선택, 마우스 클릭 등과 같은 다양한 입력 방식으로 구현될 수 있다.
한편, 카메라(110)의 활성화는 카메라(110)가 촬영 영역을 촬영하도록 구동하는 상태를 지칭할 수 있다.
예를 들어, 도 4a와 같이 전자 장치(100)의 디스플레이(120)에 표시된 텍스트 입력 창(410)을 선택하는 사용자 명령이 입력되면, 도 4b와 같이 프로세서(140)는 카메라(110)를 활성화시켜, 촬영 영역 내에 존재(또는 위치)하는 사용자의 손(10L, 10R)을 연속적으로 촬영하도록 카메라(110)를 제어할 수 있다. 이때, 도 4b에서는 전자 장치(100) 및 사용자의 손(10L, 10R) 사이의 거리는 20cm인 것으로 도시하고 있으나, 이는 사용자의 손(10L, 10R)이 촬영 영역 내에 존재하는 것을 나타내기 위한 것일 뿐, 이에 한정되지 아니한다.
도 4b 및 도 4c를 참조하여, 이 경우, 프로세서(140)는 활성화된 카메라(110)를 통해 촬영 영역 내에 존재(또는 위치)하는 사용자의 손(10L, 10R)을 촬영하여, 복수의 이미지 프레임(430)을 획득할 수 있다. 이때, 복수의 이미지 프레임(430)은 사용자의 손(10L', 10R')이 포함될 수 있다.
한편, 카메라(110)를 통해 획득된 이미지 프레임(430)은 좌우가 반전될 수 있다. 이는, 카메라(110)가 사용자의 왼손(10L)을 촬영한 경우, 도 4c와 같이 카메라(110)를 통해 획득된 이미지 프레임(430)에서 사용자의 왼손(10L')은 카메라(110)를 기준으로 우측에 위치하기 때문이다. 다만, 이는 일 실시 예일 뿐, 거울과 같이 이미지 프레임의 좌우가 반전되지 않도록 이미지 프레임을 처리하는 것 또한 가능하다. 이하에서는 설명의 편의를 위해 카메라(110)를 통해 획득된 이미지 프레임(430)에서는 좌우가 반전되는 상태인 것으로 가정하여 설명하도록 한다.
한편, 프로세서(140)는 획득된 복수의 이미지 프레임 각각에서 복수의 손가락을 검출할 수 있다(S320). 이는 카메라(110)의 촬영 영역 또는 센서(150)의 감지 영역 내에 사용자의 손(10L, 10R)이 존재(또는 위치)하는지 확인하기 위함이다. 한편, 이미지 프레임에서 복수의 손가락을 검출하는 내용은 본 개시에서 설명하는 다른 이미지 프레임에도 동일하게 적용될 수 있다.
이를 위해, 도 4c를 참조하면 프로세서(140)는 이미지 프레임(430)에 포함된 적어도 하나의 객체로부터 사용자의 손(10L', 10R')(또는 손가락)을 검출할 수 있다. 이때, 실시간 컴퓨터 비전을 분석하기 위한 프로그래밍 라이브러리(예: OpenCV, Python 등), Sobel 필터 또는 Fuzzy 필터 등의 다양한 색상 필터 또는 캐니 에지 검출(Canny Edge Detection), 색채기반, 템플릿 기반, 배경 차분화 방법 등의 다양한 알고리즘 등이 이용될 수 있다.
예를 들어, 프로세서(140)는 이미지 프레임(430)에 포함된 복수의 픽셀의 색상을 이진화(binarization)하는 전처리를 수행하고, 각 픽셀의 이진화된 색상(또는 명암)에 기초하여 유사한 색상을 갖는 인접한 픽셀들을 묶어(또는 그룹화하여) 객체로서 식별하고, 식별된 객체 중에서 손(또는 손가락)과 유사한 비율 및 굴곡을 갖는 객체를 사용자의 손(10L', 10R')(또는 손가락)으로 검출할 수 있다. 다만, 이는 일 실시 예일 뿐이며, 다양하게 변형되어 실시 될 수 있다.
여기에서, 프로세서(140)는 이미지 프레임(430)에서 사용자의 손(10L', 10R')(또는 손가락)이 검출되지 않는 경우, 사용자의 손(10L', 10R')이 검출되지 않는 상태인 것을 사용자에게 알리기 위한 알림 정보를 제공할 수 있다. 이때, 알림 정보는 텍스트, 이미지 등과 같은 시각 정보, 음성, 알림음 등과 같은 소리 정보, 진동 등과 같은 촉각 정보 등의 유형으로 제공될 수 있다.
이와 달리, 도 4c 및 도 4d를 참조하여, 프로세서(140)는 이미지 프레임(430)에서 사용자의 손(10L', 10R')이 검출되는 경우, 사용자의 손(10L', 10R')에서 복수의 특징점(450)을 식별할 수 있다.
여기서, 복수의 특징점(keypoint)(450)은 이미지 프레임(430)에서 사용자의 손의 위치(또는 모션)를 식별(또는 인식)하기 위한 지점을 지칭할 수 있다.
예를 들어, 복수의 특징점(450)은 사용자의 손가락의 끝 부분 또는 손가락의 적어도 하나의 관절에 대응되는 지점을 지칭할 수 있다. 복수의 특징점(450)은 손가락의 종류에 대한 정보(예: 왼손 또는 오른손의 엄지 내지 소지)를 포함할 수 있으며, 손가락의 종류에 따라 그룹화될 수 있다. 이 경우, 복수의 특징점(450)은 손가락의 종류에 따라 그룹화된 엄지에 대한 복수의 제1 특징점(451), 검지에 대한 복수의 제2 특징점(452), 중지에 대한 복수의 제3 특징점(453), 약지에 대한 복수의 제4 특징점(454), 소지에 대한 복수의 제5 특징점(455)을 포함할 수 있다. 여기서, 엄지에 대한 복수의 제1 특징점(451)은 엄지의 끝 부분에 대한 특징점(451-1), 엄지의 제1관절에 대한 특징점(451-2), 엄지의 제2관절에 대한 특징점(451-3), 엄지의 제3관절에 대한 특징점(451-4)을 포함할 수 있다. 다른 손가락에 대한 특징점의 경우, 이와 동일한 방식으로 손가락의 끝 부분 및 손가락의 적어도 하나의 관절에 대한 특징점을 포함할 수 있다.
한편, 프로세서(140)는 이미지 프레임(430)에서 사용자의 손(10L', 10R')이 검출되는 경우, 손가락의 골격 정보에 기초하여 사용자의 손(10L', 10R')에서 복수의 특징점(450)을 식별할 수 있다. 이때, 손가락의 골격 정보는 손가락의 길이(또는 비율) 및 손가락의 관절의 위치를 포함할 수 있으며, 손가락의 골격 정보는 메모리(130)에 기저장될 수 있다. 또는 프로세서(140)는 실시간 컴퓨터 비전을 분석하기 위한 프로그래밍 라이브러리(예: OpenCV, Python 등) 또는 다양한 알고리즘을 통해 사용자의 손(10L', 10R')에서 복수의 특징점(450)을 식별할 수도 있다.
한편, 도 4e와 같이 프로세서(140)는 이미지 프레임(460)에서 식별된 복수의 특징점(470)의 위치 정보(예: x, y)에 복수의 특징점(470)의 깊이 정보(예: z)를 결합하여, 복수의 특징점(470)을 3차원 공간(480) 상에 매핑할 수 있다. 이에 따라, 3차원 공간(480) 상에 매핑된 복수의 특징점(490)은 3차원의 위치 정보(예: x, y, z)를 포함할 수 있다. 여기서, 위치 정보는 이미지 프레임(460)에서 가로 방향의 축(예: x축)의 위치 및 이미지 프레임(460)에서 세로 방향의 축(예: y축) 상의 위치를 포함할 수 있다. 즉, 위치 정보는 2차원 평면으로 나타날 수 있는 이미지 프레임(460) 상의 가로 방향의 위치(예: x) 및 세로 방향의 위치(예: y)를 포함할 수 있다. 깊이 정보는 전자 장치(100)와 객체(예: 사용자의 손(10L, 10R)) 사이의 깊이(또는 거리)를 나타내는 축 상의 위치를 포함하며, 예를 들어 깊이 정보는 이미지 프레임(460)에서 수직인 축(예: x축 및 y축에 서로 수직인 z축) 상의 위치(예: z)가 될 수 있다. 다만 이는 일 실시 예일 뿐 다양한 변형 실시 예가 가능하다.
이때, 복수의 특징점(490)은 사용자의 손(또는 손가락)에 대응될 수 있으며, 손가락의 종류에 대한 정보(예: 왼손 또는 오른손의 엄지 내지 소지) 및 위치 정보(예: P(x, y, z))가 포함될 수 있다. 한편, 프로세서(140)는 복수의 특징점(490)을 각 손가락에 대한 특징점을 서로 연결하여 손(또는 손가락)의 형상(또는 모션)을 나타내는 스켈레톤을 생성할 수 있다. 이 경우 프로세서(140)는 스켈레톤에서 서로 연결된 특징점 사이의 각도를 통해 손가락의 굽힘 정도를 판단할 수 있으며, 복수의 특징점의 위치를 통해 손가락의 위치를 판단할 수 있다.
한편, 도 4c 내지 도 4e를 참조하여, 프로세서(140)는 이미지 프레임(430)에서 사용자의 손(10L', 10R')이 검출된 영역(440, 460)을 관심 영역(Region Of Interest; ROI)으로 식별할 수 있다. 이 경우, 프로세서(140)는 관심 영역(440, 460)에서 복수의 특징점(450, 470)을 식별할 수 있다.
이에 따라, 프로세서(140)는 복수의 특징점(490)의 위치(또는 위치 변화)에 기초하여 사용자의 손가락의 위치(또는 모션)을 식별(또는 인식)할 수 있다. 예를 들어, 프로세서(140)는 복수의 특징점(490)에 포함된 손가락(예: 엄지 내지 소지)에 대한 특징점의 위치를 사용자의 손가락(예: 엄지 내지 소지)에 대한 손가락 끝 부분의 위치 및 관절의 위치로 식별할 수 있다.
여기에서, 프로세서(140)는 복수의 특징점 중 서로 연결된 특징점 사이의 각도에 따라, 사용자의 손가락과 전자 장치(100)의 거리를 식별할 수 있다. 즉, 프로세서(140)는 복수의 특징점 중 서로 연결된 특징점 사이의 각도가 크면(손가락의 굽힘 정도가 낮으면), 사용자의 손가락과 전자 장치(100)의 거리가 가까운 것으로 식별하고, 복수의 특징점 중 서로 연결된 특징점 사이의 각도가 작으면(손가락의 굽힘 정도가 크면), 사용자의 손가락과 전자 장치(100)의 거리가 먼 것으로 식별할 수 있다.
도 5a 내지 도 5d는 본 개시의 일 실시 예에 따른 트리거 포즈를 설명하기 위한 도면이다.
도 3 및 도 5a를 참조하여, 프로세서(140)는 복수의 이미지 프레임(510, 530)에서 검출된 복수의 손가락이 트리거 포즈에 대응되는지 여부를 식별할 수 있다(S330). 여기서, 복수의 이미지 프레임(510, 530)은 복수의 제2 이미지 프레임 이전에 획득된 복수의 제1 이미지 프레임일 수 있다.
구체적으로, 프로세서(140)는 복수의 이미지 프레임(510, 530)에서 검출된 각 특징점의 위치(또는 관절의 회전 정도)에 따라 식별되는 복수의 손가락이 트리거 포즈에 대응되는지 여부를 식별할 수 있다.
이는, 복수의 이미지 프레임에서 사용자의 복수의 손가락이 트리거 포즈(trigger pose)(또는 initial pose)를 취하는 것으로 검출된 경우에 손가락의 모션을 검출하는 동작을 시작(또는 준비)하도록 하기 위한 것이다. 이때, 트리거 포즈는 복수의 손가락의 특정한 포즈로 설정할 수 있다. 한편, 트리거 포즈는 최초로 설정된 이후에도 사용자에 의해 추가되거나 변경 또는 삭제될 수 있으며, 사용자마다 다르게 설정될 수도 있다.
예를 들어, 트리거 포즈는 도 5a의 (a)와 같이 사용자의 왼손(520L) 및 오른손(520R)의 손가락의 끝 부분(521 내지 525 등)이 특정한 평면 상에서 제1 기설정된 거리(또는 높이) 이상(예: 바닥면에서 1cm 이상) 이격된 제1 상태에서, 도 5a의 (b)와 같이 사용자의 왼손(540L) 및 오른손(540R)의 손가락의 끝 부분(541 내지 545 등)이 특정한 평면 상에서 제2 기설정된 거리 미만(예: 바닥면을 기준으로 손가락의 높이가 0 이상 0.2cm 미만) 이격된 제2 상태로 변경되는 것으로 설정될 수 있으나, 이는 일 실시 예일 뿐 다양하게 변형될 수 있다. 여기서, 바닥면을 기준으로 손가락의 높이가 0인 경우는 바닥면에 손가락이 놓여진 상태 또는 바닥면에 손가락이 접촉된 상태를 의미할 수 있다.
여기서, 도 5b를 참조하여, 프로세서(140)는 도 5a의 (a)와 같이 복수의 이미지 프레임(510)에서 검출된 복수의 손가락의 끝 부분(521 내지 525)을 3차원 공간 평면(550) 상의 특징점(521' 내지 525')으로 식별할 수 있다. 또한, 프로세서(140)는 도 5a의 (b)와 같이 복수의 이미지 프레임(530)에서 검출된 복수의 손가락의 끝 부분(541 내지 545)을 3차원 공간 평면(550) 상의 특징점(541' 내지 545')으로 식별할 수 있다.
이 경우, 프로세서(140)는 3차원 공간 평면(550) 상의 특징점이 특정한 평면 상에서 이격된 거리를 식별할 수 있다. 여기서, 특정한 평면은 xz평면(예: y가 0인 경우의 xz평면 등)이며, 특징점이 이격된 거리는 특징점과 xz평면 사이의 거리(또는 높이)를 지칭할 수 있다.
다만 이는 일 실시 예일 뿐, 다양하게 변형되어 실시될 수 있다. 예를 들어, 프로세서(140)는 각 특징점의 위치(또는 관절의 회전 정도)에 따라 식별되는 복수의 손가락의 포즈 및 트리거 포즈 간 유사한 정도를 나타내는 유사도를 판단하여, 유사도가 기설정된 값 이상인 경우(특정한 포즈와 동일하거나 유사한 경우) 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별할 수 있다.
이하에서는, 복수의 이미지 프레임(복수의 제1 이미지 프레임)(510, 530)에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별된 경우를 가정하기로 한다(S330, Y).
일 실시 예로서, 프로세서(140)는 복수의 제1 이미지 프레임(510, 530)에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 디스플레이(120)에 표시할 수 있다. 이는 사용자가 입력하기 위한 키의 배열을 시각적으로 제공하여 사용자의 정확한 모션을 유도하기 위함이다.
예를 들어, 도 5c를 참조하면, 프로세서(140)는 가상의 키보드(650)가 표시되도록 디스플레이(120)를 제어할 수 있다. 여기서, 가상의 키보드(650)는 손가락에 매핑된 키의 배열을 갖는 키보드일 수 있으나, 이에 한정되지 아니하고 쿼티(QWERTY) 키보드, 천지인 키보드, 모아키 키보드 등 다양한 자판 배열을 갖는 키보드가 될 수 있으며, 입력 인터페이스(190)를 통한 사용자의 입력에 따라 프로세서(140)는 가상 키보드(650)의 자판 배열을 변경할 수 있다.
또한, 프로세서(140)는 가상의 키보드(650)가 디스플레이(120)의 하단, 중단, 상단 등 다양한 위치에서 표시되도록 디스플레이(120)를 제어할 수 있으며, 입력 인터페이스(190)를 통한 사용자의 입력에 따라 가상의 키보드(650)가 표시되는 위치가 변경될 수 있다.
한편, 다른 실시 예로서, 프로세서(140)는 복수의 제1 이미지 프레임(510, 530)에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 알림 정보를 표시하도록 디스플레이(120)를 제어할 수 있다. 이는 트리거 포즈가 식별되어 사용자의 모션을 검출하고 있는 상태라는 것을 알리기 위한 알림 정보를 사용자에게 제공하여, 키를 입력하려는 사용자의 모션을 유도하기 위함이다.
예를 들어, 도 5d를 참조하면, 프로세서(140)는 알림 정보로서 디스플레이의(120)의 특정한 영역(590)(예: 엣지 영역 등)에 비주얼 피드백(visual feedback)(예: 엣지 라이팅(edge lighting))을 표시하도록 디스플레이(120)를 제어할 수 있다. 또는, 프로세서(140)는 알림 정보로서 텍스트 또는 이미지 등을 디스플레이(120)에 표시하거나, 프로세서(140)는 알림 정보로서 디스플레이(120)의 화면 외의 영역에 별도로 구비된 발광부(미도시)(예: LED(Light Emitting Diode) 등)를 통해 빛을 발광 또는 점멸하거나, 프로세서(140)는 알림 정보로서 알림음 또는 음성을 스피커(180)를 통해 출력하도록 제어할 수 있다.
그리고, 프로세서(140)는 복수의 제1 이미지 프레임에서 트리거 포즈가 식별된 경우, 이후에 획득된 복수의 제2 이미지 프레임에서 복수의 손가락의 모션을 검출할 수 있다(S340). 여기서, 프로세서(140)는 복수의 제2 이미지 프레임(610)에서 복수의 손가락의 모션이 검출된 경우(S340, Y), 모션에 대응되는 키를 식별할 수 있다(S350). 한편, 모션에 대응되는 키를 식별하는 방법에 대한 구체적인 내용은 도 7 및 도 12에서 후술하여 설명하도록 한다.
여기에서, 모션은 특정한 키를 입력하기 위한 손가락의 움직임(또는 제스쳐)으로서, 복수의 손가락 중 적어도 하나의 손가락이 특정한 평면 상의 위치(또는 특정한 평면으로부터 기설정된 높이 이내의 위치)로 이동된 상태를 지칭할 수 있다. 예를 들어, 특정한 키를 입력하기 위한 모션은 도 5a의 (a)와 같이 이미지 프레임(510)에서 식별된 왼손(520L) 및 오른손(520R)의 복수의 손가락 모두가 특정한 평면에서 제1 기설정된 거리 이상(예: 바닥면에서 1cm 이상) 이격된 제1 상태에서, 도 6a와 같이 이미지 프레임(610)에서 식별된 왼손(620L) 및 오른손(620R)의 복수의 손가락 중에서 하나의 손가락(왼손(620L)의 약지(634))이 특정한 평면에서 제2 기설정된 거리 미만(예: 바닥면에서 0.2cm 미만) 이격된 제2 상태로 변경되는 모션이 될 수 있다. 여기서, 제2 상태는 사용자의 손가락이 특정한 평면(예: 바닥면) 상에 놓여진 상태 또는 접촉된 상태를 포함할 수 있다. 또한, 특정한 평면은 모션을 판단하기 위한 기준이 되는 평면을 지칭할 수 있으며, 이미지 프레임 내에서 검출된 책상, 테이블 등과 같은 다양한 객체의 표면이나 허공 상의 평면을 포함할 수 있다.
이를 위해, 복수의 손가락 각각에는 가상의 키보드(650)에 포함된 복수의 키가 매핑될 수 있으며, 메모리(130)에는 복수의 손가락 각각에 매핑되는 복수의 키에 대한 정보가 기저장될 수 있다.
구체적으로, 도 6b를 참조하면 가상의 키보드(650)는 복수의 키를 포함할 수 있다. 가상의 키보드(650)에 포함된 복수의 키는 위치(예: x축상 위치 및 z축상 위치, 또는 행과 열 등)에 따라 그룹화될 수 있다. 이 경우, 손의 종류(예: 왼손(10L) 및 오른손(10R)) 및 손가락의 종류(예: 엄지(631), 검지(632), 중지(633), 약지(634), 소지(635))에 따라 그룹화된 복수의 키가 매핑될 수 있다.
여기서, 가상의 키보드(650)는 사용자의 왼손(10L)에 매핑되는 제1 레이아웃(650L) 및 사용자의 오른손(10R)에 매핑되는 제2 레이아웃(650R)을 포함할 수 있다. 이때, 제1 레이아웃(650L)은 가상의 키보드(650)에 포함된 키들 중 좌측에 배열된 복수의 키를 포함하며, 제2 레이아웃(650R)은 가상의 키보드(650)에 포함된 키들 중 우측에 배열된 복수의 키를 포함할 수 있다.
예를 들어, 도 6b를 참조하여 왼손(10L)에 매핑되는 제1 레이아웃(650L)을 설명하면, 제1 레이아웃(650L)의 제1열의 복수의 키(652)(예: R, F, V, T, G, B 키)는 왼손(10L)의 검지(632)에 매핑되고, 제2열의 복수의 키(653)(예: E, D, C 키)는 왼손(10L)의 중지(633)에 매핑되고, 제3열의 복수의 키(654)(예: W, S, X 키)는 왼손(10L)의 약지(634)에 매핑되고, 제4열의 복수의 키(655)(예: Q, A, Z 키)는 왼손(10L)의 소지(635)에 매핑될 수 있다. 다만, 이는 일 실시 예일 뿐, 다양한 실시 예로 변형될 수 있다.
여기서, 손가락에 매핑된 복수의 키는 기준키 및 기준키와 인접한 적어도 2개의 키를 포함할 수 있다. 여기서, 기준키는 손가락의 모션에 대응되는 키를 식별하기 위한 기준이 되는 키를 지칭할 수 있다. 기준키는 가상의 키보드에 포함된 키들 중 손가락이 포함된 손가락의 종류(예: 왼손 또는 오른손의 엄지 내지 소지)에 기초하여 결정(또는 설정)될 수 있다. 즉, 기준키는 각 손가락 당 하나의 키가 설정될 수 있다.
예를 들어, 도 6b를 참조하면 왼손(10L)에 매핑되는 기준키를 설명하면, 검지(632)의 기준키는 검지(632)에 매핑된 제1열의 복수의 키(652) 중 F키로 설정되고, 중지(633)의 기준키는 중지(633)에 매핑된 제2열의 복수의 키(653) 중 D키로 설정되고, 약지(634)의 기준키는 약지(634)에 매핑된 제3열의 복수의 키(654) 중 S키로 설정되고, 소지(635)의 기준키는 소지(635)에 매핑된 제4열의 복수의 키(655) 중 A키로 설정될 수 있다. 다만, 이는 일 실시 예일 뿐, 다양한 실시 예로 변형될 수 있다.
한편, 오른손(10R)에는 매핑되는 제2 레이아웃(650R)의 경우 오른손(10R)의 각 손가락에 대해서도 이와 같은 방식으로 복수의 키가 매핑될 수 있다. 한편, 특정한 키의 경우 왼손(10L) 및 오른손(10R)에 중첩적으로 매핑되는 것 또한 가능하며, 예를 들어, 스페이스 바(151)는 왼손(10L)의 엄지(631) 및 오른손(10R)의 엄지에 매핑될 수 있다. 다만, 이는 일 실시 예일 뿐, 다양한 실시 예로 변형될 수 있다.
한편, 가상의 키보드에 포함된 복수의 키는 그 기능에 따라 텍스트 키(예: Q, W, E 등의 문자, 1, 2, 3 등의 숫자, !, @, # 등의 기호 등), 제어 키(예: Ctrl, Alt, Esc 등), 탐색 키(예: 화살표 키, Home, End, Page Up, Page Down, Delete, Insert 등), 기능 키(예: F1, F2, F3 등) 등으로 구성될 수 있으며, 복수의 키 각각에는 대응되는 정보(예: 텍스트, 제어, 탐색, 기능 등)가 기설정될 수 있다.
그리고, 프로세서(140)는 모션에 대응되는 키가 식별되면, 식별된 키에 대응되는 정보를 표시할 수 있다(S360). 예를 들어, 도 6c를 참조하여 프로세서(140)는 모션에 대응되는 키가 W키인 것으로 식별한 경우, W키에 대응되는 정보인 문자 "W"를 디스플레이(120)의 텍스트 입력창(660)에 표시할 수 있다.
일 실시 예에서, 프로세서(140)는 모션에 대응되는 키(예: W키)가 식별되면, 가상의 키보드에 포함된 키들 중 식별된 키를 다른 키와 구별되도록 표시할 수 있다. 구체적인 예를 들어, 도 6c를 참조하여 프로세서(140)는 트리거 포즈가 식별됨에 따라 가상의 키보드(650)가 디스플레이(120)에 표시된 상태에서, 모션에 대응되는 키를 W키로 식별한 경우, 가상의 키보드(650)에서 W키(670)를 다른 키와 구별되도록 비주얼 피드백(예: 링, 도형 등의 비주얼 요소, 확대 또는 축소 효과, 하이라이트 효과 등)을 표시할 수 있다. 나아가, 프로세서(140)는 각 손가락의 현재 위치를 가상의 키보드(650) 상에 표시하도록 디스플레이(120)를 제어할 수도 있다.
한편 다른 실시 예에서, 프로세서(140)는 모션에 대응되는 키(예: W키)가 식별되면, 식별된 키에 대응되는 소리(예: 알림음 또는 음성 등)을 출력하도록 스피커(180)를 제어할 수 있다. 또 다른 실시 예에서, 프로세서(140)는 모션에 대응되는 키(예: W키)가 식별되면, 식별된 키에 대응되는 진동을 발생시킬 수 있다. 이때, 프로세서(140)는 진동을 발생시키기 위해 전자 장치(100)에 구비된 진동 모터, 햅틱 모터 등을 제어하거나, 사용자의 몸에 부착된 웨어러블 장치가 진동하도록 웨어러블 장치와 통신할 수도 있다.
이와 같이, 본 개시의 전자 장치(100)는 모션에 대응되는 키가 식별되면, 사용자에게 키 입력에 따른 물리적 또는 인지적 피드백을 제공할 수 있으며, 이에 따라 가상의 인터페이스 환경에서 발생할 수 있는 피드백 문제를 개선할 수 있다.
한편, 프로세서(140)는 모션에 대응되는 키가 디스플레이(120)에 표시된 정보를 삭제하기 위한 삭제 키(예: delete 키 또는 백스페이스 키 등)인 경우, 디스플레이(120)에 표시된 정보(예: W 등)를 삭제하며, 정보를 삭제한 빈도수에 기초하여 가상 키보드(650)의 투명도를 조절할 수 있다.
예를 들어, 도 6c와 같이 디스플레이(120)의 텍스트 입력창(660)에 정보(예: W 등)가 표시된 상태에서, 모션에 대응되는 키가 디스플레이(120)에 표시된 정보를 삭제하기 위한 백스페이스 키(680)인 것으로 식별된 경우, 프로세서(140)는 도 6d와 같이 텍스트 입력창(660')에 표시된 정보(예: W 등)를 삭제할 수 있다.
여기서, 프로세서(140)는 도 6d와 같이 정보를 삭제한 빈도수에 기초하여, 가상 키보드(650)의 투명도를 조절할 수 있다.
여기에서, 가상 키보드(650)의 투명도는 가상 키보드(650)가 투명하게 표시되는 레벨(정도)을 지칭할 수 있으며, 가상의 키보드(650)는 투명도에 비례하는 레벨로 투명하게 디스플레이(120)에 표시될 수 있다. 예를 들어, 투명도가 최대값(예: 100)인 경우 가상의 키보드(650)는 완전히 투명하게 디스플레이(120)에 표시되며, 투명도가 최소값(예: 0)인 경우 가상의 키보드(650)는 완전히 불투명하게 디스플레이(120)에 표시될 수 있다.
또한, 정보를 삭제한 빈도수는, 모션에 대응되는 키가 디스플레이(120)에 표시된 정보를 삭제하기 위한 삭제 키로 식별된 횟수를 지칭할 수 있다. 여기서, 정보를 삭제한 빈도수가 높을수록 오타율이 높은 것을 의미할 수 있다.
구체적으로, 프로세서(140)는 정보를 삭제한 빈도수와 반비례하여 가상 키보드(650)의 투명도를 조절할 수 있다. 예를 들어, 프로세서(140)는 정보를 삭제한 빈도수가 높아질수록 키보드(650)의 시인성을 향상시키기 위해 가상 키보드(650)의 투명도가 감소되도록 조절할 수 있다. 이와 달리, 프로세서(140)는 정보를 삭제한 빈도수가 낮아질수록 정보의 시인성을 향상시키기 위해 가상 키보드(650)의 투명도가 증가되도록 조절할 수 있다. 일 실시 예로서, 정보를 삭제한 빈도수는 기설정된 시간 동안 기설정된 시간 동안 정보를 삭제한 횟수를 포함할 수 있다. 여기서, 기설정된 시간은 초, 분, 시간, 일, 주, 월, 년 등의 단위의 다양한 시간으로 설정될 수 있다.
다른 실시 예로서, 정보를 삭제한 빈도수는, 모션에 대응되는 키가 식별된 전체 횟수 동안 정보를 삭제한 횟수 또는 모션에 대응되는 키가 식별된 기설정된 횟수 동안 정보를 삭제한 횟수를 포함할 수 있다.
이와 같이, 사용자의 능숙도를 정량적으로 나타낼 수 있는 오타율에 따라 사용자의 모션을 가이드할 수 있는 가상 키보드(650)의 투명도를 조절할 수 있는 인터페이스 환경을 사용자에게 제공할 수 있다.
한편, 프로세서(140)는 정보를 삭제한 빈도수가 기설정된 값 미만인 사용자에 대해 가상 키보드(650)가 디스플레이(120)에 표시되지 않도록(미표시되도록) 제어하고, 정보를 삭제한 빈도수가 기설정된 값 이상인 사용자에 대해 가상 키보드(650)가 디스플레이(120)에 표시되도록 제어할 수 있다.
예를 들어, 프로세서(140)는 복수의 제1 이미지 프레임(510, 530)에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 사용자의 정보를 삭제한 빈도수에 기초하여, 정보를 삭제한 빈도수가 기설정된 값 미만인 사용자에 대해 가상 키보드(650)가 디스플레이(120)에 표시되지 않도록(미표시되도록) 제어하고, 정보를 삭제한 빈도수가 기설정된 값 이상인 사용자에 대해 가상 키보드(650)가 디스플레이(120)에 표시되도록 제어할 수 있다.
이를 위해, 프로세서(140)는 사용자 계정에 정보를 삭제한 빈도수를 저장할 수 있다. 여기서 사용자 계정은 로그인(또는 인증)을 통해 액세스될 수 있는 사용자 고유의 정보를 포함하며, 전자 장치(100) 또는 외부 장치(미도시)(예: 서버 등)에 저장될 수 있다.
이와 같이, 사용자의 오타율이 낮은 사용자(즉, 별도의 가이드 없이도 원하는 키를 오타 없이 정확하게 입력할 수 있는 사용자)에 대해서는 전자 장치(100)의 디스플레이(120)의 화면에 표시되는 정보(예: 이미지, 문자 등)의 양을 증가시키기 위해 가상 키보드(650)를 미표시하고, 오타율이 높은 사용자에 대해서는 오타율을 감소시키기 위해 사용자의 모션을 가이드할 수 있는 가상 키보드(650)를 디스플레이(120)에 표시할 수 있다.
한편, 본 개시의 일 실시 예에 따른 오타를 교정하는 방법에 대해서는 도 13과 함께 후술하여 설명하도록 한다.
이하에서는 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법에 대해 도 7 내지 도 12을 참조하여 설명하기로 한다.
도 7은 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 프로세서(140)는 카메라(110)를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는지 여부를 식별(또는 판단)할 수 있다(S710). 이에 대한 구체적인 설명은 도 3의 S320 단계에서 전술한 설명과 중복된다는 점에서 생략하기로 한다.
여기서, 프로세서(140)는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별(또는 판단)되면, 문자 입력 모드에 진입할 수 있다(S720). 또한, 프로세서(140)는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별(또는 판단)되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 설정할 수 있다(S730). 여기서, S720 및 S730 단계는 동시에 수행되거나, 그 선후가 변경되는 것 또한 가능하다.
이 경우, 프로세서(140)는 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출할 수 있다(S740).
여기서, 프로세서(140)는 복수의 제2 이미지 프레임에서 손가락의 모션이 검출되면(S740, Y), 모션이 검출된 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별(또는 판단)할 수 있다(S750). 한편 이와 달리, 프로세서(140)는 복수의 제2 이미지 프레임에서 손가락의 모션이 검출되지 않으면(S740, N), 카메라(110)를 통해 복수의 제2 이미지 프레임 이후에 획득되는 복수의 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출할 수 있다(S740).
그리고, 프로세서(140)는 식별된(또는 판단된) 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다(S760).
그리고, 프로세서(140)는 해제 이벤트의 발생 여부를 식별할 수 있다(S770). 프로세서(140)는 해제 이벤트가 발생한 것으로 식별되면(S770, Y), 문자 입력 모드를 해제할 수 있다(S775). 즉, 프로세서(140)는 손가락의 모션을 검출하여 모션에 대응되는 키로 식별하는 동작을 종료할 수 있다. 이때, 해제 이벤트는 어플리케이션이 종료되는 이벤트, 복수의 이미지 프레임에서 사용자의 손이 기설정된 시간(예: 15초, 30초, 1분 등) 동안 검출되지 않는 이벤트 등을 포함할 수 있다.
한편 이와 달리, 프로세서(140)는 해제 이벤트가 발생하지 않은 것으로 식별되면(S770, N), 문자 입력 모드에 진입된 상태를 유지할 수 있다.
이 경우, 프로세서(140)는 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지 여부를 식별할 수 있다(S780).
여기서, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면(S780, Y), 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다(S785). 이 경우, 프로세서(140)는 카메라(110)를 통해 복수의 제3 이미지 프레임 이후에 획득되는 복수의 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면(S740, Y), 모션에 의한 손가락의 위치 및 손가락에 재설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별(또는 판단)할 수 있다(S750). 그리고, 프로세서(140)는 식별된(또는 판단된) 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다(S760).
한편 이와 달리, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되지 않는 것으로 식별되면(S780, N), 각 손가락에 대한 기준점을 재설정하지 않을 수 있다. 이 경우, 프로세서(140)는 카메라(110)를 통해 복수의 제3 이미지 프레임 이후에 획득되는 복수의 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면(S740, Y), 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점(즉, 가장 최근에 설정되거나 가장 최근에 재설정된 기준점)의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별(또는 판단)할 수 있다(S750). 그리고, 프로세서(140)는 식별된(또는 판단된) 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다(S760).
한편, 기준점을 재설정하는 동작(S780, S785)은 도 7에서 식별된(또는 판단된) 키에 대응되는 정보를 표시하는 동작(S760) 이후에 수행하는 것으로 도시하고 있으나, 이는 설명의 편의를 위해 순차적으로 도시한 것일 뿐이며, 기준점을 재설정하는 동작(S780, S785)은 손가락에 대한 기준점이 설정되는 동작(S730) 이후에, 손가락의 모션 검출 동작(S740) 내지 표시 동작(S760)과는 병렬적으로 수행될 수 있다. 이때, 기준점을 재설정하는 동작(S780, S785)은 기설정된 주기(예: 1초에 2회, 1초에 1회 등)마다 주기적으로 수행될 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따른 전자 장치는 사용자의 모션을 입력으로 인식할 수 있는 인터페이스를 제공할 수 있다. 또한, 전자 장치는 기준점을 동적으로 재설정함으로써 사용자의 모션을 사용자가 원하는 입력으로 인식하는 인식률을 향상시키고, 입력의 편의성과 신속성을 향상시키는 인터페이스 환경을 제공할 수 있다.
이하에서는 첨부된 도면을 참조하여, 도 7의 각 동작에 대한 구체적인 내용을 설명하기로 한다.
도 8a 내지 8c는 본 개시의 일 실시 예에 따른 기준점을 설정하는 방법을 설명하기 위한 도면이다. 여기서, 도 8a 내지 8c는 설명의 편의를 위해 복수의 이미지 프레임에서 검출된 사용자의 오른손(810R)에 대해 도시한 것일 뿐, 이에 대한 설명이 사용자의 왼손에 대해서도 동일하게 적용될 수 있다.
도 8a 및 도 8b를 참조하여, 프로세서(140)는 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드에 진입하고(S720), 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 설정할 수 있다(S730).
여기서, 트리거 포즈는 도 5a의 (a)와 같이 사용자의 손가락이 특정한 평면 상에서 제1 기설정된 거리(예: 1cm) 이상 이격된 제1 상태에서, 도 5a의 (b)와 같이 사용자의 손가락이 특정한 평면(예: 바닥 면) 상에서 제2 기설정된 거리(예: 0.2cm) 미만 이격된 제2 상태로 변경되는 포즈로 기설정될 수 있다. 여기서, 제1 상태 및 제2 상태는 일 실시 예일 뿐 다양한 변형 실시 예가 가능하다. 일 실시 예로서, 제 2상태는 손가락이 특정한 평면 상에 놓여진 상태 또는 특정한 평면에 손가락이 접촉하는 상태(즉, 사용자의 손가락이 특정한 평면(예: 테이블의 바닥 면 등) 상에서 이격되지 않은 상태)일 수도 있다. 이에 대한 구체적인 내용은 도 5a 내지 도 5b에서 전술한 설명과 중복된다는 점에서 생략하기로 한다.
이하에서는 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별된 경우를 가정하기로 한다.
이 경우, 프로세서(140)는 복수의 제1 이미지 프레임에서 검출된 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치(811 내지 815)에 기초하여 각 손가락에 대한 기준점(811' 내지 815')을 설정할 수 있다.
여기서, 각 손가락에 대한 기준점(811' 내지 815')은, 손가락의 모션에 의한 각 손가락의 위치(또는 거리, 방향)를 판단하기 위한 기준이 되는 지점을 지칭할 수 있다.
또한, 복수의 손가락(엄지 내지 소지)의 위치는 프로세서(140)에 의해 식별된 복수의 특징점(450) 중 각 손가락(엄지 내지 소지)에 대한 특징점(예: 손가락 끝 부분에 대한 특징점 또는 관절에 대한 특징점)의 위치에 대응될 수 있다. 이 경우, 프로세서(140)는 엄지에 대한 복수의 제1 특징점(451)에 포함된 특징점(451-1 내지 451-4) 중 하나의 위치를 엄지에 대한 기준점(811')으로 설정할 수 있다. 프로세서(140)는 이와 동일한 방식으로 검지에 대한 복수의 제2 특징점(452)에 포함된 특징점 중 하나의 위치를 검지에 대한 기준점(812')으로 설정하고, 중지에 대한 복수의 제3 특징점(453)에 포함된 특징점 중 하나의 위치를 중지에 대한 기준점(813')으로 설정하고, 약지에 대한 복수의 제4 특징점(454)에 포함된 특징점 중 하나의 위치를 약지에 대한 기준점(814')으로 설정하고, 소지에 대한 복수의 제5 특징점(455)에 포함된 특징점 중 하나의 위치를 소지에 대한 기준점(815')으로 설정할 수 있다.
이하에서는 설명의 편의를 위해, 복수의 손가락의 위치는 복수의 손가락(엄지 내지 소지)의 끝 부분에 대한 특징점의 위치인 것으로 가정하여 설명하도록 한다.
한편, 도 8a와 같이 프로세서(140)는 각 손가락에 대한 특징점(811 내지 815)의 위치에 기초한 영역을 기준 영역(820R)으로 설정할 수도 있다. 여기서, 기준 영역(820R)은, 손가락의 모션을 판단하기 위한 기준이 되는 영역을 지칭할 수 있으며, 각 손가락에 대한 특징점(811 내지 815)을 연결한 선으로부터 기설정된 거리까지의 영역을 포함할 수 있다.
한편, 도 8c를 참조하여, 프로세서(140)는 복수의 손가락 각각에 가상의 키보드(650)에 포함된 복수의 키를 매핑할 수 있다.
여기서, 손가락에 매핑된 복수의 키는 기준키 및 기준키와 인접한 적어도 2개의 키를 포함할 수 있다. 이때, 가상의 키보드(650)에 포함된 복수의 키에 대한 설명은 도 6b에서 전술한 내용과 중복된다는 점에서 생략하기로 한다.
여기서, 프로세서(140)는 손가락에 매핑된 복수의 키(831 내지 835)가 손가락에 설정된 기준점(811' 내지 815')에 위치하도록 매핑할 수 있다. 예를 들어, 프로세서(140)는 손가락에 매핑된 복수의 키(831 내지 835) 중 기준키가 손가락에 설정된 기준점(811' 내지 815')에 위치하도록 매핑할 수 있다.
이 경우, 오른손 엄지에 매핑된 적어도 하나의 키(831)는 오른손 엄지의 기준키(예: 스페이스바)가 오른손 엄지에 설정된 기준점(811')에 위치하고, 오른손 검지에 매핑된 복수의 키(832)는 오른손 검지의 기준키(예: J키)가 오른손 검지에 설정된 기준점(812')에 위치하고, 오른손 중지에 매핑된 복수의 키(833)는 오른손 중지의 기준키(예: K키)가 오른손 중지에 설정된 기준점(813')에 위치하고, 오른손 약지에 매핑된 복수의 키(834)는 오른손 약지의 기준키(예: L키)가 오른손 약지에 설정된 기준점(814')에 위치하고, 오른손 검지에 매핑된 복수의 키(835)는 오른손 소지의 기준키(예: 엔터키)가 소지에 설정된 기준점(815')에 위치할 수 있다.
그리고, 프로세서(140)는 복수의 제1 이미지 프레임 이후에 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출할 수 있다(S740). 이 경우, 프로세서(140)는 복수의 제2 이미지 프레임에서 손가락의 모션이 검출되면(S730, Y), 모션이 검출된 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별(또는 판단)할 수 있다(S750). 이에 대해서는 도 10a 및 도 10b를 참조하여 함께 설명하기로 한다. 도 10a 및 도 10b는 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 도면이다.
여기에서, 손가락의 모션은 특정한 키를 입력하기 위한 사용자의 손가락에 대한 제스쳐를 지칭할 수 있다. 또한, 손가락의 모션은 손가락에 대한 특징점의 위치 변화를 통해 검출될 수 있다.
구체적으로, 프로세서(140)는 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 각각을 각 손가락에 대한 특징점(예: 손가락 끝 부분에 대한 특징점, 또는 관절에 대한 특징점 등)으로 식별할 수 있다.
이하에서는, 복수의 제2 이미지 프레임에서 복수의 손가락은 도 6a와 같이 왼손의 약지(634)가 특정한 평면을 기준으로 기설정된 높이 미만의 위치로 이동되고, 나머지 손가락은 특정한 평면을 기준으로 기설정된 높이 이상의 위치에 있는 상태인 것을 가정하도록 한다. 예를 들어, 도 10a와 같이 프로세서(140)는 복수의 제2 이미지 프레임에서 복수의 손가락은, 왼손의 경우 왼손 엄지에 대한 복수의 제1 특징점(1011L), 왼손 검지에 대한 복수의 제2 특징점(1012L), 왼손 중지에 대한 복수의 제3 특징점(1013L), 왼손 약지에 대한 복수의 제4 특징점(1014L), 왼손 소지에 대한 복수의 제5 특징점(1015L)으로 식별하고, 오른손의 경우에도 이와 동일한 방식으로 오른손의 복수의 손가락에 대한 복수의 제1 내지 제5 특징점으로 식별할 수 있다.
이 경우, 프로세서(140)는 복수의 제2 이미지 프레임에서 식별된 각 손가락에 대한 특징점의 위치(또는 위치 변화)를 통해 각 손가락의 위치(또는 모션)를 검출할 수 있다. 이때, 손가락의 위치는 손가락에 대한 특징점(예: 손가락 끝 부분에 대한 특징점 또는 손가락의 관절에 대한 특징점 등) 중 하나로 기설정된 특징점의 위치일 수 있다. 이하에서는 설명의 편의를 위해 손가락 끝 부분에 대한 특징점이 기설정된 것으로 가정하여 설명하도록 한다.
그리고, 프로세서(140)는 복수의 손가락(복수의 손가락에 대한 특징점) 각각의 위치에 기초하여, 복수의 손가락(복수의 손가락에 대한 특징점) 중 하나의 손가락(하나의 손가락에 대한 특징점)의 모션을 검출할 수 있다. 이때, 모션은 특정한 키(예: w키)를 타이핑하기 위한 손가락의 위치(또는 자세)가 변경되는 것을 지칭할 수 있다.
예를 들어, 도 10a와 같이 프로세서(140)는 복수의 손가락(또는 복수의 손가락에 대한 특징점) 중에서 특정한 평면(예: xz 평면)을 기준으로 기설정된 높이(예: y 축상 2) 이상의 위치(예: P1(x1, y1, z1), y1은 2 이상)에서 기설정된 높이 미만의 특정한 위치(예: P2(x2, y2, z2), y2는 2 미만)로 이동되는 사용자의 손가락(또는 손가락에 대한 특징점)을 손가락의 모션으로 검출할 수 있다.
여기서, 프로세서(140)는 모션이 검출된 손가락의 위치를 식별할 수 있다. 여기서, 모션이 검출된 손가락(또는 모션에 의한 손가락)의 위치는 특정한 평면을 기준으로 기설정된 높이 미만의 위치로 이동된 손가락(손가락에 대한 특징점(1024))의 위치(예: P2(x2, y2, z2))를 지칭할 수 있다.
또한, 프로세서(140)는 모션이 검출된 손가락의 종류(예: 왼손 또는 오른손의 엄지 내지 소지)를 식별할 수 있다. 여기서, 모션이 검출된 손가락의 종류는 특정한 평면을 기준으로 기설정된 높이 미만의 위치로 이동된 손가락(손가락에 대한 특징점(1024))의 종류를 지칭할 수 있다.
이 경우, 프로세서(140)는 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별(또는 판단)할 수 있다(S750).
여기서, 손가락에 설정된 기준점의 위치는, 복수의 기준점 중에서 모션이 검출된 손가락(예: 왼손 또는 오른손의 엄지 내지 소지)에 설정된 기준점의 위치를 지칭할 수 있다. 이를 위해, 복수의 기준점 각각은 도 8a 내지 도 9d의 과정을 통해 각 손가락에 설정되거나 재설정될 수 있다. 예를 들어, 복수의 기준점은 엄지에 대한 기준점(1031L, 1031R), 검지에 대한 기준점(1032L, 1032R), 중지에 대한 기준점(1033L, 1033R), 약지에 대한 기준점(1034L, 1034R), 소지에 대한 기준점(1035L, 1035R)을 포함할 수 있다.
이하에서는 일 실시 예로서, 모션이 검출된 손가락은 도 10a 및 도 10b와 같이 왼손 약지인 것으로 가정하도록 한다.
여기서, 프로세서(140)는 모션에 의한 손가락의 위치(예: 모션이 검출된 왼손 약지에 대한 특징점(1024)의 위치) 및 손가락에 설정된 기준점(예: 왼손 약지에 설정된 기준점(1034L))의 위치 사이의 거리가 기설정된 값 미만인 경우, 손가락에 매핑된 복수의 키(예: 왼손 약지에 매핑된 복수의 키(1054L) 중 기준키(예: 왼손 약지에 매핑된 기준키: S키(1034L'))를 모션에 대응되는 키인 것으로 식별할 수 있다.
이를 위해, 프로세서(140)는 모션이 검출된 손가락의 위치(1024) 및 모션이 검출된 손가락에 설정된 기준점의 위치 사이의 거리를 식별할 수 있다.
이와 달리, 프로세서(140)는 모션에 의한 손가락의 위치(예: 모션이 검출된 왼손 약지에 대한 특징점(1024)의 위치) 및 손가락에 설정된 기준점(예: 왼손 약지에 설정된 기준점(1034L))의 위치 사이의 거리가 기설정된 값 이상인 경우, 모션에 의해 손가락이 이동된 방향(예: +z 방향 등)에 기초하여 손가락에 매핑된 복수의 키(예: 왼손 약지에 매핑된 복수의 키(1054L) 중 기준키(예; 왼손 약지에 매핑된 기준키: S키(1034L'))로부터 손가락이 이동된 방향에 위치한 키(예: +z 방향인 경우 W키(1024') 등)를 모션에 대응되는 키인 것으로 식별할 수 있다.
이를 위해, 프로세서(140)는 모션이 검출된 손가락의 위치 및 모션이 검출된 손가락에 설정된 기준점의 위치 사이의 거리를 식별할 수 있다. 또한, 프로세서(140)는 모션에 의해 검출된 손가락이 이동한 방향을 식별할 수 있다.
한편, 프로세서(140)는 모션이 검출된 손가락에 설정된 기준점에 대응되는 기준키 및 벡터에 기초하여, 모션이 검출된 손가락에 매핑된 복수의 키 중에서 하나의 키를 모션에 대응되는 키로 식별할 수 있다.
예를 들어, 프로세서(140)는 모션이 검출된 왼손 약지에 대한 특징점(1024) 및 모션이 검출된 왼손 약지에 설정된 기준점(1034L) 사이의 상대적인 벡터를 식별할 수 있다. 이 경우, 프로세서(140)는 벡터에 모션이 검출된 왼손 약지에 매핑된 기준키(예: S키(1034L'))의 위치를 시점(또는 기점)으로 적용하여 벡터의 종점을 산출하고, 모션이 검출된 손가락에 매핑된 복수의 키(예: 왼손 약지에 매핑된 복수의 키(1054)) 중에서 벡터의 종점에 위치한 키를 모션에 대응되는 키로 식별할 수 있다.
이와 같은 방식으로, 프로세서(140)는 상술한 키와 다른 키를 타이핑하기 위한 모션을 검출하여, 모션에 대응되는 키를 식별할 수 있다.
그리고, 프로세서(140)는 식별된(또는 판단된) 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다(S760).
이하에서는 해제 이벤트가 발생하지 않은 것(S770, N)으로 가정하고 설명하도록 한다. 즉, 문자 입력 모드가 유지되는 것을 가정하도록 한다.
이 경우, 프로세서(140)는 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지 여부를 식별할 수 있다(S780). 여기서, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면(S780, Y), 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다(S785). 이하에서는 도 9a 내지 도 9d를 참조하여, 본 개시의 일 실시 예에 따른 기준점을 재설정하는 방법을 구체적으로 설명하기로 한다. 여기서, 도 9a 내지 도 9d는 설명의 편의를 위해 복수의 이미지 프레임에서 검출된 사용자의 오른손(910R)에 대해 도시한 것일 뿐, 이에 대한 설명이 사용자의 왼손에 대해서도 동일하게 적용될 수 있다.
도 9a를 참조하여, 프로세서(140)는 문자 입력 모드가 유지되는 동안 복수의 제2 이미지 프레임 이후에 획득된 복수의 제3 이미지 프레임에서 복수의 손가락(복수의 손가락에 대한 특징점(911 내지 915)을 검출할 수 있다.
이 경우, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락(복수의 손가락에 대한 특징점(911 내지 915))이 기설정된 포즈에 대응되는 것으로 식별되면, 복수의 손가락(복수의 손가락에 대한 특징점(911 내지 915))의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다. 이때, 기준점은 기설정된 포즈에 대응되는 것으로 식별된 복수의 손가락에 대한 특징점(예: 손가락 끝 부분에 대한 특징점(911 내지 915), 또는 관절에 대한 특징점 등)의 위치에 재설정될 수 있다.
여기에서, 기설정된 포즈는 사용자의 손가락이 이동되는 것을 고려하여 복수의 손가락의 현재 위치에 기준점을 재설정(또는 업데이트)하기 위해, 복수의 손가락의 위치에 기초한 상대적인 관계가 설정된 손가락의 포즈를 지칭할 수 있다. 이에 대한 다양한 실시 예는 도 9b 내지 9d를 참조하여 설명하기로 한다.
여기에서, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락이 기설정된 포즈를 일정 시간(예: 1초, 2초 등) 동안 유지하는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다.
한편, 프로세서(140)는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 특징점(손가락의 끝 부분에 대한 특징점(912 내지 915) 또는 관절에 대한 특징점)의 위치에 기초하여 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지를 식별할 수 있다.
이하에서는, 도 9a 내지 9d를 참조하여 기설정된 포즈에 대해 설명하기로 한다. 여기서, 기설정된 포즈는 전술한 바와 같이 복수의 손가락의 위치에 기초한 상대적인 관계가 설정된 손가락의 포즈를 지칭할 수 있다. 이때, 상대적인 관계는 복수의 손가락 각각의 위치를 연결하여 복수의 직선이 생성된 경우에 직선 간의 각도, 직선으로 형성된 다각형의 넓이 등을 포함할 수 있다.
프로세서(140)는 엄지 손가락을 제외한 나머지 손가락의 특징점의 위치에 기초하여, 복수의 직선(예: 3개의 직선(921 내지 923))을 생성할 수 있다. 이하에서는 설명의 편의를 위해, 엄지 손가락을 제외한 나머지 손가락의 특징점은 나머지 손가락의 손가락 끝 부분에 대한 특징점(912 내지 915)인 것으로 가정하도록 한다.
예를 들어, 프로세서(140)는 검지의 손가락 끝 부분에 대한 특징점(912) 및 중지의 손가락 끝 부분에 대한 특징점(913)을 연결한 제1 직선(921), 중지의 손가락 끝 부분에 대한 특징점(913) 및 약지의 손가락 끝 부분에 대한 특징점(914)을 연결한 제2 직선(922), 약지의 손가락 끝 부분에 대한 특징점(914) 및 소지의 손가락 끝 부분에 대한 특징점(915)을 연결한 제3 직선(923)을 생성할 수 있다.
일 실시 예로서, 기설정된 포즈는 도 9b와 같이 엄지 손가락을 제외한 나머지 손가락에 의해 식별되는 제1 내지 제3 직선(921 내지 923) 각각에 대한 절대 각도(θ1 내지 θ3)가 기설정된 값 이상이 되도록 하는, 복수의 손가락의 포즈로 설정될 수 있다. 예를 들어, x축을 기준으로 제1 직선(921)에 대한 절대 각도(θ1), 제2 직선(922)에 대한 절대 각도(θ2) 및 제3 직선(923)에 대한 절대 각도(θ3)이 기설정된 값 이상(예: 170도 이상)(또는 기설정된 값 미만, 예: 10도 미만 등)이 되는 복수의 손가락의 포즈로 설정될 수 있다.
다른 실시 예로서, 기설정된 포즈는 도 9c와 같이 엄지 손가락을 제외한 나머지 손가락에 의해 식별되는 제1 내지 제3 직선(921 내지 923) 중 서로 인접한 직선 간의 상대 각도(θ4 또는 θ5)가 기설정된 값 이상이 되도록 하는, 복수의 손가락의 포즈로 설정될 수 있다. 예를 들어, 서로 인접한 제1 직선(921) 및 제2 직선(922)의 제1 교점(913)을 기준으로 하는 제1 및 제2 직선(921, 922) 간의 상대 각도(θ5)가 기설정된 값 이상(또는 기설정된 값 미만)이고, 제2 직선(922) 및 제3 직선(923)의 제2 교점(914)을 기준으로 하는 제2 및 제3 직선(922, 923) 간의 상대 각도(θ4)가 기설정된 값 이상(또는 기설정된 값 미만)이 되는 복수의 손가락의 포즈로 설정될 수 있다.
다른 실시 예로서, 기설정된 포즈는 도 9b와 같이 엄지 손가락을 제외한 나머지 손가락에 의해 식별되는 제1 내지 제3 직선(921 내지 923) 각각의 교점을 연결한 삼각형(A)의 넓이가 기설정된 값 미만이 되도록 하는, 복수의 손가락의 포즈로 설정될 수 있다.
이상과 같이, 기준점은 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되는 경우에 동적으로 재설정될 수 있고, 이로 인해 사용자의 손의 위치가 변경되는 경우에도 특정한 키를 입력하기 위한 사용자의 모션을 정확하게 인식할 수 있다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 11을 참조하면, 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어 방법은, 카메라(110)를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하는 단계(S1110), 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하는 단계(S1120), 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별하는 단계(S1130), 식별된 키에 대응되는 정보를 디스플레이(120)에 표시하는 단계(S1140) 및 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정하는 단계(S1150)를 포함할 수 있다.
구체적으로, 본 개시의 일 실시 예에 따른 전자 장치(100)의 제어 방법은, 카메라(110)를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입할 수 있다(S1110).
그리고, 카메라(110)를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출할 수 있다(S1120).
그리고, 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별할 수 있다(S1130).
여기에서, 복수의 키는 가상의 키보드에 포함된 키들 중 손가락이 포함된 손의 종류 및 손가락의 종류에 기초하여 결정된 기준키 및 가상의 키보드에 포함된 키들 중에서 기준키와 인접한 적어도 2 개의 키를 포함할 수 있다.
여기에서, 식별하는 단계는 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 미만인 경우, 손가락에 매핑된 복수의 키 중 기준키를 모션에 대응되는 키인 것으로 식별하고 모션에 의한 손가락의 위치 및 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 이상인 경우, 모션에 의해 손가락이 이동된 방향에 기초하여 손가락에 매핑된 복수의 키 중 기준키로부터 손가락이 이동된 방향에 위치한 키를 모션에 대응되는 키인 것으로 식별할 수 있다.
한편, 제어 방법은 카메라(110)를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 설정하는 단계를 더 포함할 수 있다.
여기에서, 설정하는 단계는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 디스플레이(120)에 표시하는 단계를 포함하고, 표시하는 단계는 모션에 대응되는 키가 식별되면, 가상의 키보드에 포함된 키들 중 식별된 키를 다른 키와 구별되도록 표시하는 단계를 포함할 수 있다.
그리고, 식별된 키에 대응되는 정보를 디스플레이(120)에 표시할 수 있다(S1140).
여기에서, 표시하는 단계는 모션에 대응되는 키가 디스플레이(120)에 표시된 정보를 삭제하기 위한 삭제 키인 경우, 디스플레이(120)에 표시된 정보를 삭제하며, 정보를 삭제한 빈도수에 기초하여 가상 키보드의 투명도를 조절하는 단계를 포함할 수 있다.
그리고, 문자 입력 모드에서 카메라(110)를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다(S1150).
여기에서, 재설정하는 단계는 검출된 복수의 손가락이 기설정된 포즈를 일정 시간 동안 유지하는 것으로 식별되면, 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정할 수 있다.
한편, 재설정하는 단계는 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 끝 부분의 위치에 기초하여 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는지를 식별하는 단계를 포함할 수 있다.
이 경우, 재설정하는 단계는 문자 입력 모드에서 기준점이 재설정된 이후에 획득된 복수의 제4 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 모션에 의한 손가락의 위치 및 손가락에 재설정된 기준점의 위치에 기초하여 손가락에 매핑된 복수의 키 중 모션에 대응되는 키를 식별할 수 있다.
한편, 제어 방법은 기설정된 사용자 명령이 입력되면, 카메라(110)를 활성화시키고, 활성화된 카메라(110)를 통해 복수의 제1 이미지 프레임을 획득하는 단계를 더 포함하고, 기설정된 사용자 명령은 텍스트 입력이 가능한 문서를 디스플레이(120)에 표시하기 위한 사용자 명령 또는 디스플레이(120)에 표시된 텍스트 입력 창을 선택하는 사용자 명령을 포함할 수 있다.
도 12는 본 개시의 일 실시 예에 따른 모션에 대응되는 키를 판단하는 방법을 설명하기 위한 순서도이다.
도 12를 참조하면, 프로세서(140)는 복수의 제2 이미지 프레임 이전에 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는지 여부를 식별(또는 판단)할 수 있다(S1210).
여기에서, 복수의 제2 이미지 프레임은 제1 상태(예: 복수의 손가락 모두가 특정한 평면에 기설정된 거리 이상 이격된 상태)의 이미지 프레임 및 제1 상태의 이미지 프레임 이후에 획득된 제2 상태(예: 복수의 손가락 중 적어도 하나가 특정한 평면 상에 놓여진 상태 또는 접촉된 상태)의 이미지 프레임을 포함될 수 있다. 예를 들어, 복수의 제2 이미지 프레임은 도 5a의 (a)와 같은 제1 상태의 이미지 프레임 및 도 6a와 같은 제2 상태의 이미지 프레임을 포함할 수 있다. 이에 대한 구체적인 설명은 도 3의 S320 단계에서 전술한 설명과 중복된다는 점에서 생략하기로 한다.
여기서, 프로세서(140)는 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별(또는 판단)되면, 복수의 제1 이미지 프레임 이후에 획득된 복수의 제2 이미지 프레임을 제1 인공지능 모델에 입력할 수 있다(S1220). 그리고, 프로세서(140)는 복수의 제2 이미지 프레임을 제1 인공지능 모델에 입력하면, 제1 인공지능 모델의 출력으로서 특징 정보를 획득할 수 있다(S1230).
이때, 제1 인공지능 모델은 이미지 프레임에서 특징 정보를 획득하도록 학습된 인공지능 모델일 수 있으며, 메모리(130)에 저장될 수 있다. 또한, 특징 정보는 복수의 특징점 각각의 위치 정보를 포함할 수 있다.
한편, 본 개시에 따른 인공지능과 관련된 기능은 프로세서(140)와 메모리(130)를 통해 동작될 수 있다. 프로세서(140)는, 메모리(130)에 저장된 기정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
인공지능 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 각 레이어는 복수의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치의 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks)이 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
이 경우, 프로세서(140)는 특징 정보를 제2 인공지능 모델에 입력할 수 있다(S1240). 그리고, 프로세서(140)는 특징 정보를 제2 인공지능 모델에 입력하면, 제2 인공지능 모델의 출력으로서 확률 값을 획득할 수 있다(S1250). 여기서, 제2 인공지능 모델은 특징 정보에서 가상의 키보드에 포함된 복수의 키 각각에 대한 확률 값을 획득하도록 학습된 인공지능 모델일 수 있으며, 메모리(130)에 저장될 수 있다. 여기서, 인공지능 모델 또는 학습 알고리즘에 관한 설명은 전술한 설명이 동일하게 적용될 수 있다.
한편, 상술한 설명에서는 제1 및 제2 인공지능 모델 각각은 전자 장치(100)의 메모리(130)에 저장되는 것으로 설명하였으나, 이에 국한되지 아니하고 제1 및 제2 인공지능 모델 중 적어도 하나는 외부 장치(예: 서버 등)(미도시)에 저장될 수 있다. 여기서, 제1 및 제2 인공지능 모델이 외부 장치에 저장된 경우를 가정하여 설명하도록 한다.
일 실시 예로서, 프로세서(140)는 카메라(110)를 통해 획득된 복수의 이미지 프레임을 외부 장치로 전송하도록 통신부(170)를 제어할 수 있다. 이때, 외부 장치는 전자 장치(100)로부터 수신된 복수의 이미지 프레임을 제1 인공지능 모델에 입력하고, 제1 인공지능 모델의 출력(예: 특징 정보)을 제2 인공지능 모델로 입력하고, 제2 인공지능 모델의 출력(예: 확률 값)을 전자 장치(100)로 전송할 수 있다. 이 경우, 전자 장치(100)는 외부 장치로부터 제2 인공지능 모델의 출력(예: 확률 값)을 통신부(170)를 통해 수신할 수도 있다.
또한 다른 실시 예로서, 프로세서(140)는 제1 및 제2 인공지능 모델을 외부 장치로부터 통신부(170)를 통해 수신하여, 카메라(110)를 통해 획득된 복수의 이미지 프레임을 제1 인공지능 모델에 입력하고, 제1 인공지능 모델의 출력(예: 특징 정보)을 제2 인공지능 모델로 입력하여, 제2 인공지능 모델의 출력(예: 확률 값)을 획득할 수 있다. 이와 함께 제1 및 제2 인공지능 모델은 학습될 수 있으며, 이후 프로세서(140)는 학습된 제1 및 제2 인공지능 모델을 다시 외부 장치로 전송하도록 통신부(170)를 제어함으로써, 외부 장치에 저장된 제1 및 제2 인공지능 모델을 갱신할 수 있다.
그리고, 프로세서(140)는 복수의 키 각각에 대한 확률 값을 임계 값과 비교하고(S1260), 복수의 키 각각에 대한 확률 값 중 임계 값 이상을 갖는 확률 값에 대응되는 키를 손가락의 모션(또는 제스쳐)에 대응되는 키로 판단(또는 식별)할 수 있다(S1270). 여기서, 임계 값 이상을 갖는 확률 값이 복수 개인 경우, 프로세서(140)는 가장 큰 확률 값을 갖는 키를 손가락의 모션에 대응되는 키로 판단(식별)할 수 있다.
예를 들어, 임계값이 0.7이며, S키에 대한 확률 값이 0.9이고 W키에 대한 확률 값이 0.5인 경우를 가정하면, 프로세서(140)는 S키 및 W키 각각에 대한 확률 값 중 임계 값 이상을 갖는 S키를 손가락의 모션에 대응되는 키로 판단할 수 있다.
이 경우, 프로세서(140)는 판단된(또는 식별된) 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다(S1280).
한편, 도 12의 S1220 내지 S1230 단계는 이미지 프레임을 제1 인공지능 모델에 입력하여 특징 정보를 획득하는 것으로 설명하였으나, 이는 일 실시 예일 뿐이며, 전술한 실시간 컴퓨터 비전을 분석하기 위한 프로그래밍 라이브러리(예: OpenCV, Python 등) 또는 다양한 알고리즘을 통해 복수의 특징점을 포함하는 특징 정보를 획득하는 것 또한 가능하다.
도 13a 및 도 13b는 본 개시의 일 실시 예에 따른 전자 장치가 오타를 교정하는 방법을 설명하기 위한 도면이다.
도 13a 및 도 13b를 참조하면, 본 개시의 일 실시 예에 따른 전자 장치(100)는 오타를 교정할 수 있다. 여기서, 도 13a는 각 모듈 및 모델이 프로세서(140)에 의해 로딩(또는 실행)되어 프로세서(140)에서 동작되는 상태를 나타낸 것이며, 모듈 및 모델은 메모리(130)에 저장되어 있을 수 있다. 이하에서는, 본 개시의 전자 장치(100)는 문자 입력 모드에 진입한 상태이며, 이미지 프레임에서 손가락의 트리거 포즈가 식별된 경우를 가정하여 설명하도록 한다.
먼저, 프로세서(140)는 카메라(110)를 통해 복수의 이미지 프레임을 획득할 수 있다(S1310).
그리고, 프로세서(140)는 가상 키보드 모듈(121)을 통해, 카메라(110)에 의해 획득된 복수의 이미지 프레임에서 복수의 손가락 각각의 좌표(또는 위치)를 검출할 수 있다(S1320).
여기서, 프로세서(140)는 전술한 사용자의 손의 특징점을 이용하여 손가락의 종류 및 손가락의 좌표를 검출할 수 있다. 이때, 각 손가락의 좌표(또는 위치)는 각 손가락의 끝 부분 또는 각 손가락의 적어도 하나의 관절에 대응되는 지점에 대한 좌표(또는 위치)를 포함할 수 있다.
그리고, 프로세서(140)는 복수의 이미지 프레임에 포함된 손가락의 좌표의 변화(특징점의 위치 변화)에 기초하여, 각 손가락에 매핑된 복수의 키 각각에 대한 제1 스코어를 판단할 수 있다(S1330). 예를 들어, 프로세서(140)는 각 손가락의 좌표의 변화(특징점의 위치 변화)에 따라 손가락의 이동 거리 및 이동 방향을 결정하고, 각 손가락의 이동 거리 및 이동 방향에 따라 손가락에 매핑된 복수의 키 각각에 대한 제1 스코어를 판단할 수 있다. 이때, 키에 대한 제1 스코어(예: A 키에 대한 제1 스코어)는 손가락의 모션(또는 제스쳐)에 대응되는 키(손가락의 모션에 따라 입력으로 인식되는 키)가 해당 키(예: A 키)일 가능성을 나타내며, 예를 들어, 제1 스코어는 수치 또는 수치가 정규화된 확률 등일 수 있다.
구체적으로, 프로세서(140)는 전술한 상술한 기준점 또는 인공지능 모델을 이용하여, 손가락에 매핑된 복수의 키 각각에 대한 제1 스코어를 판단할 수 있다.
기준점을 이용하는 경우, 프로세서(140)는 모션이 검출된 손가락에 설정된 기준점을 시점으로 모션이 검출된 손가락의 특징점의 벡터의 방향 및 크기를 산출하고, 기준키에서 모션이 검출된 손가락에 매핑된 복수의 키 각각에 대한 제1 스코어를 산출할 수 있다. 여기서, 벡터의 시점은 기준키에 대응되고, 벡터의 종점은 손가락에 매핑된 복수의 키 중 적어도 하나에 대응될 수 있다.
인공지능 모델을 이용하는 경우, 프로세서(140)는 카메라(110)를 통해 획득된 이미지 프레임을 제1 인공지능 모델에 입력하고, 제1 인공지능 모델의 출력으로서 특징 정보(특징점의 위치 정보 등)를 획득할 수 있다. 그리고, 프로세서(140)는 특징 정보를 제2 인공지능 모델에 입력하고, 제2 인공지능 모델의 출력으로서 제1 스코어를 획득할 수 있다. 여기서, 제1 인공지능 모델은 이미지 프레임에서 특징 정보를 획득하도록 학습된 인공지능 모델일 수 있으며, 제2 인공지능 모델은 특징 정보에서 가상의 키보드에 포함된 복수의 키 각각에 대한 제1 스코어(확률 값)을 획득하도록 학습된 인공지능 모델일 수 있다.
여기서, 프로세서(140)는 키에 대한 제1 스코어(예: A 키에 대한 제1 스코어)가 클수록 사용자가 해당 키(예: A 키)를 타이핑하는 가능성이 높은 것으로 판단할 수 있다.
그리고, 프로세서(140)는 오타 교정 모듈을 통해 도 13b와 같이 제1 스코어를 임계 값과 비교하거나(S1340), 제1 스코어가 가장 높은 키가 기설정된 키인지 여부를 비교하여(S1350), 비교 결과에 따라 제1 스코어를 이용하거나 또는 제2 스코어를 이용하여, 손가락의 제스쳐에 대응되는 키를 판단할 수 있다. 다만, 이는 일 실시 예일 뿐이며, S1340 단계 및 S1350 단계의 순서가 변경되거나 S1340 단계 및 S1350 단계 중 하나가 생략되어 수행될 수도 있다.
구체적으로, 프로세서(140)는 오타 교정 모듈을 통해 각 키에 대한 제1 스코어 중에서 가장 높은(가장 큰) 제1 스코어를 임계 값과 비교할 수 있다(S1340). 이때, 임계 값은, 예를 들어 70%로 기설정될 수 있다.
여기서, 프로세서(140)는 오타 교정 모듈을 통해 복수의 키 각각에 대한 제1 스코어 중에서 가장 높은 제1 스코어가 임계 값 보다 크거나 같은 것으로 판단되는 경우(S1340, N), 제1 스코어가 가장 높은 키가 기설정된 키에 해당하는지 여부를 판단할 수 있다(S1350).
여기서, 기설정된 키는 오타 발생율이 높은 키가 기설정된 것이며, 기설정된 키는 제조사 또는 사용자에 의해 설정되거나 변경될 수 있다. 구체적으로, 제조사의 서버가 복수의 전자 장치(100)로부터 복수의 전자 장치(100)를 이용하는 복수의 사용자들의 키별 오타 발생 빈도를 수집하고, 서버에서 수집된 키별 오타 발생 빈도에 따라 순위가 높은 키에 대한 정보를 다시 전자 장치(100)로 전송하면, 전자 장치(100)는 순위가 높은 키를 기설정된 키로 설정할 수 있다. 예를 들어, 사용자들이 왼손 검지를 통해 입력하는 V키 및 B키 간 오타 발생 빈도가 높은 경우, V키 및 B키 중 적어도 하나가 기설정된 키로 설정될 수 있다.
그리고, 프로세서(140)는 오타 교정 모듈을 통해 제1 스코어가 가장 높은 키가 기설정된 키가 아닌 것으로 판단한 경우(S1350, N), 제1 스코어가 가장 높은 키를 손가락의 제스쳐에 대응되는 키로 판단(또는 식별)할 수 있다(S1380). 이후, 프로세서(140)는 식별된 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다.
이는 프로세서(140)가 판단한 키가 사용자가 의도하는 키와 다른 때일 확률(즉, 프로세서(140)가 판단한 키가 오타일 확률)이 낮은 경우에, 프로세서(140)가 판단한 키를 사용자가 입력한 키로 간주할 수 있다.
한편, 프로세서(140)는 오타 교정 모듈을 통해 복수의 키 각각에 대한 제1 스코어 중에서 가장 높은 제1 스코어가 임계 값 보다 낮은 것으로 판단하는 경우(S1340, N) 또는 제1 스코어가 가장 높은 키가 기설정된 키인 것으로 판단한 경우(S1350, Y), 오타 교정 LM(language model)을 통해 키에 매핑된 손가락의 종류 및 이전에 입력된 키를 기초로, 복수의 키 각각에 대한 제2 스코어를 판단할 수 있다(S1360).
구체적으로, 프로세서(140)는 키에 매핑된 손가락의 종류 및 이전에 입력된 키를 오타 교정 LM에 입력하여, 오타 교정 LM의 출력으로서 복수의 키 각각에 대한 제2 스코어를 획득할 수 있다.
여기서, 오타 교정 LM은 문자, 단어, 문장, 단락 등의 시퀀스에 확률을 할당(assign)하는 모델일 수 있으며, 즉, 오타 교정 LM은 이전 문자 등이 주어졌을 때 단어, 문법, 맥락, 빅 데이터 등을 이용하여 다음 문자(또는 현재 입력된 키)를 예측하도록 학습된 모델일 수 있다.
이때, 키에 대한 제2 스코어(예: A 키에 대한 제2 스코어)는 손가락의 모션(또는 제스쳐)에 대응되는 키(손가락의 모션에 따라 입력으로 인식되는 키)가 해당 키(예: A 키)일 가능성을 나타내며, 예를 들어, 제2 스코어는 수치 또는 수치가 정규화된 확률 등일 수 있다.
이후, 프로세서(140)는 오타 교정 모듈을 통해, 오타 교정 LM에서 수신된 키에 대한 제2 스코어를 이용하여, 손가락의 제스쳐에 대응되는 키로 판단(또는 식별)할 수 있다(S1370). 예를 들어, 프로세서(140)는 제2 스코어가 가장 높은 키를 손가락의 제스쳐에 대응되는 키로 판단할 수 있다. 이후, 프로세서(140)는 식별된 키에 대응되는 정보를 표시하도록 디스플레이(120)를 제어할 수 있다.
이는 프로세서(140)가 판단한 키가 사용자가 의도하는 키와 다른 확률 즉, 오타일 확률이 높은 경우이다. 이 경우, 이전에 타이핑 키에 따라 입력된 문자, 단어, 문장 단위 등의 컨텍스트(context)를 고려하여 사용자가 타이핑한 키를 교정할 수 있다. 이때, 키보드의 전체 키가 아닌 손가락의 종류에 매핑된 일부 키를 후보 대상으로 선정하여 사용자가 타이핑한 키를 보다 정확하게 교정할 수 있다.
이상과 같은 본 개시의 일 실시 예에 따른 전자 장치(100)는 사용자의 모션을 사용자가 의도한 키의 입력으로 정확하게 식별하는 인터페이스를 제공할 수 있다.본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(100))를 포함할 수 있다. 상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 상기하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 상기 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 상기 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
100: 전자 장치

Claims (20)

  1. 전자 장치에 있어서,
    카메라;
    디스플레이;
    적어도 하나의 인스트럭션이 저장된 메모리; 및
    상기 카메라, 상기 디스플레이 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하며,
    상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써,
    상기 카메라를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 상기 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하고,
    상기 문자 입력 모드에서 상기 카메라를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하고, 상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 설정된 기준점의 위치에 기초하여 상기 손가락에 매핑된 복수의 키 중 상기 모션에 대응되는 키를 식별하고, 상기 식별된 키에 대응되는 정보를 표시하도록 상기 디스플레이를 제어하며,
    상기 문자 입력 모드에서 상기 카메라를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 상기 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 상기 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 제3 이미지 프레임에서 검출된 복수의 손가락이 상기 기설정된 포즈를 일정 시간 동안 유지하는 것으로 식별되면, 상기 검출된 복수의 손가락의 위치에 기초하여 상기 각 손가락에 대한 기준점을 재설정하는 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 끝 부분의 위치에 기초하여 상기 검출된 복수의 손가락의 포즈가 상기 기설정된 포즈에 대응되는지를 식별하는 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 문자 입력 모드에서 상기 기준점이 재설정된 이후에 상기 카메라를 통해 획득된 복수의 제4 이미지 프레임에서 상기 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 재설정된 기준점의 위치에 기초하여 상기 손가락에 매핑된 복수의 키 중 상기 모션에 대응되는 키를 식별하는 전자 장치.
  5. 제1항에 있어서,
    상기 복수의 키는,
    가상의 키보드에 포함된 키들 중 상기 손가락이 포함된 손의 종류 및 상기 손가락의 종류에 기초하여 결정된 기준키 및 상기 가상의 키보드에 포함된 키들 중에서 상기 기준키와 인접한 적어도 2 개의 키를 포함하는 전자 장치.
  6. 제5항에 있어서,
    상기 프로세서는,
    상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 미만인 경우, 상기 손가락에 매핑된 복수의 키 중 기준키를 상기 모션에 대응되는 키인 것으로 식별하고,
    상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 설정된 기준점의 위치 사이의 거리가 상기 기설정된 값 이상인 경우, 상기 모션에 의해 손가락이 이동된 방향에 기초하여 상기 손가락에 매핑된 복수의 키 중 상기 기준키로부터 상기 손가락이 이동된 방향에 위치한 키를 상기 모션에 대응되는 키인 것으로 식별하는 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 상기 검출된 복수의 손가락의 위치에 기초하여 상기 각 손가락에 대한 기준점을 설정하는 전자 장치.
  8. 제7항에 있어서,
    상기 프로세서는,
    상기 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 상기 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 상기 디스플레이에 표시하고, 상기 문자 입력 모드에서 상기 모션에 대응되는 키가 식별되면, 상기 가상의 키보드에 포함된 키들 중 상기 식별된 키를 다른 키와 구별되도록 표시하는 전자 장치.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 모션에 대응되는 키가 상기 디스플레이에 표시된 정보를 삭제하기 위한 삭제 키인 경우, 상기 디스플레이에 표시된 정보를 삭제하며, 상기 정보를 삭제한 빈도수에 기초하여 상기 가상 키보드의 투명도를 조절하는 전자 장치.
  10. 제7항에 있어서,
    상기 프로세서는,
    기설정된 사용자 명령이 입력되면, 상기 카메라를 활성화시키고, 상기 활성화된 카메라를 통해 상기 복수의 제1 이미지 프레임을 획득하고,
    상기 기설정된 사용자 명령은,
    텍스트 입력이 가능한 문서를 상기 디스플레이에 표시하기 위한 사용자 명령 또는 상기 디스플레이에 표시된 텍스트 입력 창을 선택하는 사용자 명령을 포함하는 전자 장치.
  11. 전자 장치의 제어 방법에 있어서,
    카메라를 통해 획득된 복수의 제1 이미지 프레임에서 복수의 손가락을 검출하고, 상기 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 문자 입력 모드로 진입하는 단계;
    상기 문자 입력 모드에서 상기 카메라를 통해 획득된 복수의 제2 이미지 프레임에서 복수의 손가락 중 하나의 손가락의 모션을 검출하는 단계;
    상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 설정된 기준점의 위치에 기초하여 상기 손가락에 매핑된 복수의 키 중 상기 모션에 대응되는 키를 식별하는 단계;
    상기 식별된 키에 대응되는 정보를 디스플레이에 표시하는 단계; 및
    상기 문자 입력 모드에서 상기 카메라를 통해 획득된 복수의 제3 이미지 프레임에서 복수의 손가락을 검출하고, 상기 검출된 복수의 손가락의 포즈가 기설정된 포즈에 대응되는 것으로 식별되면, 상기 검출된 복수의 손가락의 위치에 기초하여 각 손가락에 대한 기준점을 재설정하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 재설정하는 단계는,
    상기 복수의 제3 이미지 프레임에서 검출된 복수의 손가락이 상기 기설정된 포즈를 일정 시간 동안 유지하는 것으로 식별되면, 상기 검출된 복수의 손가락의 위치에 기초하여 상기 각 손가락에 대한 기준점을 재설정하는, 제어 방법.
  13. 제11항에 있어서,
    상기 재설정하는 단계는,
    상기 복수의 제3 이미지 프레임에서 검출된 복수의 손가락 중 엄지 손가락을 제외한 나머지 손가락의 끝 부분의 위치에 기초하여 상기 검출된 복수의 손가락의 포즈가 상기 기설정된 포즈에 대응되는지를 식별하는 단계;를 포함하는, 제어 방법.
  14. 제11항에 있어서,
    상기 재설정하는 단계는,
    상기 문자 입력 모드에서 상기 기준점이 재설정된 이후에 상기 카메라를 통해 획득된 복수의 제4 이미지 프레임에서 상기 복수의 손가락 중 하나의 손가락의 모션이 검출되면, 상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 재설정된 기준점의 위치에 기초하여 상기 손가락에 매핑된 복수의 키 중 상기 모션에 대응되는 키를 식별하는, 제어 방법.
  15. 제11항에 있어서,
    상기 복수의 키는,
    가상의 키보드에 포함된 키들 중 상기 손가락이 포함된 손의 종류 및 상기 손가락의 종류에 기초하여 결정된 기준키 및 상기 가상의 키보드에 포함된 키들 중에서 상기 기준키와 인접한 적어도 2 개의 키를 포함하는, 제어 방법.
  16. 제15항에 있어서,
    상기 식별하는 단계는,
    상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 설정된 기준점의 위치 사이의 거리가 기설정된 값 미만인 경우, 상기 손가락에 매핑된 복수의 키 중 기준키를 상기 모션에 대응되는 키인 것으로 식별하고,
    상기 모션에 의한 상기 손가락의 위치 및 상기 손가락에 설정된 기준점의 위치 사이의 거리가 상기 기설정된 값 이상인 경우, 상기 모션에 의해 손가락이 이동된 방향에 기초하여 상기 손가락에 매핑된 복수의 키 중 상기 기준키로부터 상기 손가락이 이동된 방향에 위치한 키를 상기 모션에 대응되는 키인 것으로 식별하는, 제어 방법.
  17. 제11항에 있어서,
    상기 복수의 제1 이미지 프레임에서 검출된 복수의 손가락의 포즈가 트리거 포즈에 대응되는 것으로 식별되면, 상기 검출된 복수의 손가락의 위치에 기초하여 상기 각 손가락에 대한 기준점을 설정하는 단계;를 더 포함하는, 제어 방법.
  18. 제17항에 있어서,
    상기 설정하는 단계는,
    상기 복수의 제1 이미지 프레임에서 검출된 복수의 손가락이 상기 트리거 포즈에 대응되는 것으로 식별되면, 가상의 키보드를 상기 디스플레이에 표시하는 단계;를 포함하고,
    상기 가상의 키보드를 표시하는 단계는,
    상기 문자 입력 모드에서 상기 모션에 대응되는 키가 식별되면, 상기 가상의 키보드에 포함된 키들 중 상기 식별된 키를 다른 키와 구별되도록 표시하는 단계;를 포함하는, 제어 방법.
  19. 제18항에 있어서,
    상기 가상의 키보드를 표시하는 단계는,
    상기 모션에 대응되는 키가 상기 디스플레이에 표시된 정보를 삭제하기 위한 삭제 키인 경우, 상기 디스플레이에 표시된 정보를 삭제하며, 상기 정보를 삭제한 빈도수에 기초하여 상기 가상 키보드의 투명도를 조절하는 단계;를 포함하는, 제어 방법.
  20. 제17항에 있어서,
    기설정된 사용자 명령이 입력되면, 상기 카메라를 활성화시키고, 상기 활성화된 카메라를 통해 상기 복수의 제1 이미지 프레임을 획득하는 단계;를 더 포함하고,
    상기 기설정된 사용자 명령은,
    텍스트 입력이 가능한 문서를 상기 디스플레이에 표시하기 위한 사용자 명령 또는 상기 디스플레이에 표시된 텍스트 입력 창을 선택하는 사용자 명령을 포함하는, 제어 방법.
KR1020190178667A 2019-09-18 2019-12-30 전자 장치 및 그의 제어 방법 KR20210033394A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2020/009003 WO2021054589A1 (en) 2019-09-18 2020-07-09 Electronic apparatus and controlling method thereof
EP20864743.8A EP4004695A4 (en) 2019-09-18 2020-07-09 ELECTRONIC DEVICE AND CONTROL METHOD THEREOF
US16/925,489 US11709593B2 (en) 2019-09-18 2020-07-10 Electronic apparatus for providing a virtual keyboard and controlling method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190114836 2019-09-18
KR1020190114836 2019-09-18

Publications (1)

Publication Number Publication Date
KR20210033394A true KR20210033394A (ko) 2021-03-26

Family

ID=75259424

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190178667A KR20210033394A (ko) 2019-09-18 2019-12-30 전자 장치 및 그의 제어 방법

Country Status (1)

Country Link
KR (1) KR20210033394A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022234984A1 (ko) * 2021-05-06 2022-11-10 삼성전자 주식회사 전자 장치 및 전자 장치의 동작 방법
WO2023033301A1 (ko) * 2021-09-06 2023-03-09 삼성전자 주식회사 가상 키보드를 통하여 사용자 입력을 획득하는 전자 장치와 이의 동작 방법
WO2023234758A1 (ko) * 2022-06-03 2023-12-07 주식회사 링커버스 인공지능 모델을 이용하여 손톱을 분석하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체
US11899852B2 (en) 2021-05-06 2024-02-13 Samsung Electronics Co., Ltd. Electronic device and operation method thereof
US11941180B2 (en) 2021-09-06 2024-03-26 Samsung Electronics Co., Ltd Electronic device for obtaining user input through virtual keyboard and method of operating the same

Cited By (5)

* 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
WO2023033301A1 (ko) * 2021-09-06 2023-03-09 삼성전자 주식회사 가상 키보드를 통하여 사용자 입력을 획득하는 전자 장치와 이의 동작 방법
US11941180B2 (en) 2021-09-06 2024-03-26 Samsung Electronics Co., Ltd Electronic device for obtaining user input through virtual keyboard and method of operating the same
WO2023234758A1 (ko) * 2022-06-03 2023-12-07 주식회사 링커버스 인공지능 모델을 이용하여 손톱을 분석하기 위한 방법, 시스템 및 비일시성의 컴퓨터 판독 가능한 기록 매체

Similar Documents

Publication Publication Date Title
US12032746B2 (en) Systems and methods of creating a realistic displacement of a virtual object in virtual reality/augmented reality environments
US11237625B2 (en) Interaction engine for creating a realistic experience in virtual reality/augmented reality environments
US11954808B2 (en) Rerendering a position of a hand to decrease a size of a hand to create a realistic virtual/augmented reality environment
US20220083880A1 (en) Interactions with virtual objects for machine control
US20240168602A1 (en) Throwable interface for augmented reality and virtual reality environments
EP3612878B1 (en) Multimodal task execution and text editing for a wearable system
KR20210033394A (ko) 전자 장치 및 그의 제어 방법
US11709593B2 (en) Electronic apparatus for providing a virtual keyboard and controlling method thereof
US20200004403A1 (en) Interaction strength using virtual objects for machine control
US20130044912A1 (en) Use of association of an object detected in an image to obtain information to display to a user
WO2018098861A1 (zh) 用于虚拟现实设备的手势识别方法、装置及虚拟现实设备
US11734899B2 (en) Headset-based interface and menu system
EP4307096A1 (en) Key function execution method, apparatus and device, and storage medium
US9383919B2 (en) Touch-based text entry using hidden Markov modeling
US11054941B2 (en) Information processing system, information processing method, and program for correcting operation direction and operation amount
EP4047552A1 (en) Information processing device, information processing method, and program
KR20240065997A (ko) 필기 입력을 인식하는 방법 및 장치
JP2023039767A (ja) 表示装置、表示方法、表示システム
KR20230133147A (ko) 두 개의 입력부가 접촉하는 영역에서 전단응력 패턴을 식별하여 전자 장치를 제어하는 방법 및 그 전자 장치

Legal Events

Date Code Title Description
A201 Request for examination