KR20170066539A - 웨어러블 및 모바일 디바이스를 통한 내츄럴 모션 기반의 제어 - Google Patents
웨어러블 및 모바일 디바이스를 통한 내츄럴 모션 기반의 제어 Download PDFInfo
- Publication number
- KR20170066539A KR20170066539A KR1020177011940A KR20177011940A KR20170066539A KR 20170066539 A KR20170066539 A KR 20170066539A KR 1020177011940 A KR1020177011940 A KR 1020177011940A KR 20177011940 A KR20177011940 A KR 20177011940A KR 20170066539 A KR20170066539 A KR 20170066539A
- Authority
- KR
- South Korea
- Prior art keywords
- user
- motion
- sequence
- motion recognition
- motions
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 411
- 238000000034 method Methods 0.000 claims abstract description 108
- 230000008569 process Effects 0.000 claims abstract description 51
- 150000001875 compounds Chemical class 0.000 claims abstract description 18
- 238000013135 deep learning Methods 0.000 claims abstract description 10
- 239000002131 composite material Substances 0.000 claims abstract description 8
- 238000010801 machine learning Methods 0.000 claims description 38
- 230000004044 response Effects 0.000 claims description 37
- 238000004891 communication Methods 0.000 claims description 29
- 210000000707 wrist Anatomy 0.000 claims description 24
- 230000003993 interaction Effects 0.000 claims description 11
- 230000001960 triggered effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001133 acceleration Effects 0.000 claims description 5
- 238000012549 training Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 17
- 239000013598 vector Substances 0.000 description 17
- 238000003860 storage Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 14
- 230000001360 synchronised effect Effects 0.000 description 9
- 210000003811 finger Anatomy 0.000 description 8
- 238000012706 support-vector machine Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000013480 data collection Methods 0.000 description 6
- 210000004247 hand Anatomy 0.000 description 6
- 210000003128 head Anatomy 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 210000004027 cell Anatomy 0.000 description 5
- 230000014759 maintenance of location Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000002372 labelling Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 210000000744 eyelid Anatomy 0.000 description 2
- 239000007943 implant Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000002569 neuron Anatomy 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 208000031636 Body Temperature Changes Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004397 blinking Effects 0.000 description 1
- 230000007177 brain activity Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004053 dental implant Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 238000002567 electromyography Methods 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000002054 transplantation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/163—Wearable computers, e.g. on a belt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/014—Hand-worn input/output arrangements, e.g. data gloves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G06N99/005—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72409—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
- H04M1/72412—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
-
- H04M1/7253—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/12—Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion
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)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Computer Networks & Wireless Communication (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Signal Processing (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- User Interface Of Digital Computer (AREA)
- Telephone Function (AREA)
- Stored Programmes (AREA)
Abstract
"내츄럴 모션 컨트롤러"는, 전자 디바이스와 상호 작용하는 유저 신체의 하나 이상의 부위의 다양한 모션을 식별하고, 그에 의해 다양한 내츄럴 유저 인터페이스(NUI) 시나리오를 가능하게 한다. 내츄럴 모션 컨트롤러는, 복수의 별개의 관성 센서 세트로부터 수신되는 관성 센서 데이터의 조정 가능한 수의 순차적인 기간을 사슬연결하는 것에 의해 복합 모션 인식 윈도우를 구성한다. 이들 별개의 관성 센서 세트 각각은, 개별적인 유저 착용형, 휴대형, 또는 보유형 모바일 컴퓨팅 디바이스에 커플링되거나, 또는 다르게는 이들에 관련이 있는 센서 데이터를 제공한다. 그 다음, 각각의 복합 모션 인식 윈도우는, 하나 이상의 머신 기반의 딥 러닝 프로세스에 의해 트레이닝되는 모션 인식 모델로 전달된다. 그 다음, 이 모션 인식 모델은, 하나 이상의 미리 정의된 모션의 시퀀스를 식별하기 위해, 복합 모션 인식 윈도우에 적용된다. 그 다음, 식별된 모션은 하나 이상의 애플리케이션 커맨드의 실행을 트리거하기 위한 기초로서 사용된다.
Description
스마트워치 및 다른 웨어러블 또는 모바일 컴퓨팅 디바이스는 다양한 레벨의 계산 기능성(computational functionality)을 제공한다. 이러한 기능성은, 음성 또는 데이터 통신, 데이터 저장 및 전송, 계산, 미디어 레코딩 또는 재생, 게임, 피트니스 추적, 등등과 같은 태스크를 가능하게 한다. 하드웨어 관점에서, 많은 스마트워치 및 다른 웨어러블 또는 모바일 디바이스는, 카메라, 마이크, 스피커, 가속도계, 디스플레이 디바이스, 터치 감지 표면, 등등과 같은 광범위한 센서를 포함한다. 스마트워치 및 다른 웨어러블 또는 모바일 디바이스는, 통상적으로, 다양한 오퍼레이팅 시스템을 실행하고, 종종, 다양한 애플리케이션 중 임의의 것을 실행한다. 이들 디바이스 중 많은 것은 또한, 와이파이, 블루투스, 근접장 통신(near-field communication; NFC), 등등과 같은 기술을 사용하여, 다른 계산 디바이스와의 무선 연결성 또는 상호 작용성을 제공한다.
다음의 개요는 하기 상세한 설명에서 더 설명되는 엄선된 개념을 간소화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요한 특징 또는 본질적인 특징을 식별하도록 의도된 것도 아니고, 청구된 주제의 범위를 결정함에 있어서 보조로서 사용되도록 의도된 것도 아니다. 또한, 다른 기술의 소정의 단점이 본원에서 언급되거나 또는 논의될 수도 있지만, 청구된 주제는, 이들 다른 기술의 단점 중 임의의 것 또는 전체를 해결하거나 다룰 수도 있는 구현예로 제한되도록 의도되지는 않는다. 이 개요의 유일한 목적은, 청구된 주제의 몇몇 개념을, 하기에서 제공되는 더 상세한 설명에 대한 전조로서 단순화된 형태로 제공하는 것이다.
일반적으로, "내츄럴 모션 컨트롤러(Natural Motion Controller)"는, 본원에서 설명되는 바와 같이, 전자 디바이스와 상호 작용하는 유저의 신체 중 하나 이상의 부위의 모션을 식별하기 위한, 그에 의해 다양한 내츄럴 유저 인터페이스(natural user interface; NUI) 시나리오를 가능하게 하기 위한 다양한 기술을 제공한다. 유익하게는, 내츄럴 모션 컨트롤러는, 식별된 유저의 신체 중 하나 이상의 부위의 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행의 트리거링(triggering)에 의해, 광범위한 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신과 관련하여 증가된 생산성 및 상호 작용성을 제공한다. 이들 모션은 관성 센서 데이터에 기초하여, 옵션적으로는(optionally), 하나 이상의 유저 착용형, 휴대형, 또는 보유형 모바일 컴퓨팅 디바이스에 커플링되는, 또는 다르게는 이들과 관련되는 센서 세트에 의해 리턴되는 다른 센서 데이터(예를 들면, 광학적, 온도, 근접도, 등등)와 결합하여 식별된다.
다양한 구현예에서, 내츄럴 모션 컨트롤러에 의해 인에이블되는 프로세스 중 일부는, 센서 데이터로부터 복합 모션 인식 윈도우를 주기적으로 또는 연속적으로 구성하는 것에 의해 시작한다. 이들 모션 인식 윈도우는, 복수의 별개의 관성 센서 세트로부터 수신되는 관성 센서 데이터의 조정가능한 수의 순차적인 기간 또는 프레임을 사슬연결하는(concatenating) 것에 의해 구성될 수도 있다. 이들 별개의 관성 센서 세트 각각은, 개별적인 유저 착용형, 휴대형, 또는 보유형 모바일 컴퓨팅 디바이스에 커플링되거나, 또는 다르게는 이들에 관련이 있는 센서 데이터를 제공한다. 그 다음, 각각의 복합 모션 인식 윈도우는, 하나 이상의 머신 기반의 딥 러닝 프로세스(deep learning process)에 의해 트레이닝되는, 본원에서 "모션 인식 모델"로 또한 칭해지는 머신 학습 모션 시퀀스 모델(machine-learned motion sequence model)로 전달된다. 그 다음, 이 모션 인식 모델은, 유저의 신체 중 하나 이상의 부위의 하나 이상의 미리 정의된 모션의 시퀀스를 식별하기 위해 복합 모션 인식 윈도우에 적용된다.
일단 이들 미리 정의된 모션이 식별되면, 내츄럴 모션 컨트롤러는, 식별된 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거한다. 예를 들면, 다양한 구현예에서, 유저 손목 또는 팔 트위스트(twist)가, 유저 착용형 스마트워치 또는 등등의 통신 컴포넌트의 마이크의 활성화를 트리거하는 모션으로 검출된다. 그러나, 내츄럴 모션 컨트롤러는 트위스트 기반의 모션에, 또는 마이크 또는 다른 통신 디바이스의 활성화에 제한되지 않는다는 것이 이해되어야 한다.
상기의 개요의 관점에서, 본원에서 설명되는 내츄럴 모션 컨트롤러는, 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신과 상호 작용하는 유저 신체의 하나 이상의 부위의 모션을 식별하기 위한, 그에 의해 다양한 NUI 시나리오를 가능하게 하기 위한 다양한 기술을 제공한다는 것이 명백하다. 방금 설명된 이점 외에, 내츄럴 모션 컨트롤러의 다른 이점은, 하기의 상세한 설명이 첨부의 도면과 연계하여 취해질 때, 하기의 설명으로부터 더욱 명백하게 될 것이다.
청구된 주제의 특정한 특징, 양태, 및 이점은, 다음의 설명, 첨부의 청구범위, 및 수반하는 도면과 관련하여 더 잘 이해될 것인데, 도면에서:
도 1은, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 달성하기 위한 프로그램 모듈을 예시하는 예시적인 아키텍쳐의 흐름도를 제공한다.
도 2는, 본원에서 설명되는 바와 같이, 머신 학습 모션 시퀀스 모델을 트레이닝하기 위한 예시적인 하이 레벨 개관(high-level overview)을 제공한다.
도 3은, 본원에서 설명되는 바와 같이, 유저의 손목에 착용되는 스마트워치 폼팩터의 유저 착용형 제어 디바이스를 예시한다.
도 4는, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 달성하기 위한 예시적인 방법을 예시하는 일반적인 시스템 흐름도를 예시한다.
도 5는, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 달성함에 있어서 사용하기 위한 단순화된 컴퓨팅 및 I/O 능력을 갖는 단순화된 범용 컴퓨팅 디바이스를 묘사하는 일반적인 시스템 도면이다.
도 1은, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 달성하기 위한 프로그램 모듈을 예시하는 예시적인 아키텍쳐의 흐름도를 제공한다.
도 2는, 본원에서 설명되는 바와 같이, 머신 학습 모션 시퀀스 모델을 트레이닝하기 위한 예시적인 하이 레벨 개관(high-level overview)을 제공한다.
도 3은, 본원에서 설명되는 바와 같이, 유저의 손목에 착용되는 스마트워치 폼팩터의 유저 착용형 제어 디바이스를 예시한다.
도 4는, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 달성하기 위한 예시적인 방법을 예시하는 일반적인 시스템 흐름도를 예시한다.
도 5는, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 달성함에 있어서 사용하기 위한 단순화된 컴퓨팅 및 I/O 능력을 갖는 단순화된 범용 컴퓨팅 디바이스를 묘사하는 일반적인 시스템 도면이다.
"내츄럴 모션 컨트롤러"의 다양한 구현예의 다음의 설명에서는 첨부의 도면에 대한 참조가 이루어지는데, 첨부의 도면은 본원의 일부를 형성하며, 내츄럴 모션 컨트롤러가 실시될 수도 있는 특정한 구현예가 예시를 통해 도시된다. 본 발명의 범위를 벗어나지 않으면서 다른 구현예가 활용될 수도 있고 구조적 변경이 이루어질 수도 있다는 것이 이해되어야 한다.
간략화를 위해, 본원에서 설명되는 다양한 구현예를 설명함에 있어서 특정 전문용어(terminology)가 재분류될 것이다는 것, 및 이들 구현예가 이렇게 선택된 특정한 용어에 제한되는 것을 의도하지 않는다는 것을 또한 유의한다. 또한, 각각의 특정한 용어는, 유사한 목적을 달성하기 위해 광의적으로 유사한 방식으로 동작하는 자신의 모든 기술적 등가 용어를 포함한다는 것이 이해되어야 한다. 본원에서 "하나의 구현예" 또는 "다른 구현예", 또는 "예시적인 구현예", 또는 "대안적인 구현예" 또는 유사한 어구에 대한 언급은, 구현예와 연계하여 설명되는 특정한 피쳐, 특정한 구조, 또는 특정한 특성이 내츄럴 모션 컨트롤러의 적어도 하나의 구현예에 포함될 수 있다는 것을 의미한다. 또한, 명세서 전체에 걸친 이러한 어구의 출현은, 반드시 모두 동일한 구현예를 가리키는 것은 아니며, 별개의 또는 대안적인 구현예가 다른 구현예와 상호 배타적인 것도 아니다.
내츄럴 모션 컨트롤러의 하나 이상의 구현예를 나타내는 임의의 프로세스 플로우에 대해 본원에서 설명되는 또는 예시되는 순서는, 본질적으로, 설명되는 또는 예시되는 순서로 구현될 프로세스에 대한 임의의 요건을 나타내는 것도 아니고, 임의의 프로세스 플로우에 대한 본원에서 설명되는 또는 예시되는 임의의 이러한 순서는 내츄럴 모션 컨트롤러의 임의의 제한을 암시하는 것도 또한 아니다는 것이 또한 이해되어야 한다.
본원에서 활용되는 바와 같이, 용어 "컴포넌트", "시스템", "클라이언트", 및 등등은, 하드웨어, (예를 들면, 실행 중인) 소프트웨어, 펌웨어, 또는 이들의 조합 중 어느 하나의 컴퓨터 관련 엔티티를 가리키도록 의도된다. 예를 들면, 컴포넌트는 프로세서 상에서 실행하는 프로세스, 오브젝트, 실행파일(executable), 프로그램, 함수, 라이브러리, 서브루틴, 컴퓨터, 또는 소프트웨어 모듈 및 하드웨어의 조합일 수 있다. 예시로서, 서버 상에서 실행하는 애플리케이션 및 서버 둘 다는 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 내에 존재할 수 있고, 컴포넌트는 하나의 컴퓨터 상에서 로컬라이징될 수 있고 및/또는 두 개 이상의 컴퓨터 사이에서 분산될 수 있다. 용어 "프로세서"는, 컴퓨터 시스템의 프로세싱 유닛과 같은 하드웨어 컴포넌트를 가리키도록 일반적으로 이해된다.
또한, 이 상세한 설명 또는 청구범위의 어느 쪽에서 사용될 수도 있는 용어 "포함한다(includes)", "포함하는(including)", "구비한다(has)", "구비하는(having)", "포함하는(contain)", 이들의 변형어, 및 다른 유사한 단어 및 어구는, 어떠한 추가적인 또는 다른 엘리먼트를 미리 배제하지 않는 열린 전환 단어(open transition word)로서 용어 "포함하는(comprising)"과 유사한 방식으로 포괄적이도록 의도된다.
1.0 서론:
일반적으로, "내츄럴 모션 컨트롤러"는, 본원에서 설명되는 바와 같이, 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신과 상호 작용하고 제어하는 유저 신체의 하나 이상의 부위의 모션을 식별하기 위한, 그에 의해 다양한 내츄럴 유저 인터페이스(NUI) 시나리오를 가능하게 하기 위한 다양한 기술을 제공한다. 유저 신체 부위의 모션은 머신 학습 모션 시퀀스 모델에 의해 관성 센서 데이터로부터 식별되고, 옵션적으로는, 하나 이상의 유저 착용형, 휴대형, 또는 보유형 모바일 컴퓨팅 디바이스에 커플링되는, 또는 다르게는 이들과 관련되는 센서 세트에 의해 리턴되는 다른 센서 데이터(예를 들면, 광학적, 온도, 근접도, 등등)와 결합하여 식별된다. 논의의 목적을 위해, 이들 유저 착용형, 휴대형, 또는 보유형 모바일 컴퓨팅 디바이스는, 이들 디바이스의 특정한 폼팩터에 무관하게, 때때로, "유저 착용형 제어 디바이스"로 칭해진다는 것을 유의한다.
내츄럴 모션 컨트롤러에 의해 가능하게 되는 상호 작용 및 제어는, 식별된 유저의 신체 중 하나 이상의 부위의 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행의 트리거링에 의해 달성된다. 이들 능력은, 다음의 상세한 설명의 관점에서, 다양한 이점 및 기술적 효과를 제공한다. 이들 이점 및 기술적 효과의 예는, 하나 이상의 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신을 제어하는 간단한 신체 모션을 유저가 수행하는 것을 가능하게 하는 디바이스 및 프로세스를 제공하는 것에 의한 향상된 유저 효율성을 포함하지만, 그러나 이것으로 제한되지는 않는다. 이러한 능력은, 복수의 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신을, 이들 디바이스와의 물리적인 상호 작용을 필요로 하지 않으면서 간단한 신체 부위 모션을 수행하는 것에 의해, 유저가 자동으로 및/또는 원격으로 제어하거나 또는 이들과 상호 작용하는 것을 허용하는 것에 의해 유저 상호 작용을 증가시키도록 또한 기능한다.
다양한 구현예에서, 애플리케이션 커맨드의 트리거링을 통해 제어되는 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신은, 유저 모션에 대응하는 센서 데이터를 제공하기 위해 사용되는 유저 착용형 제어 디바이스를 포함한다. 예를 들면, 관성 센서를 갖는 스마트워치 폼팩터가, 예를 들면, 유저의 손목의 트위스트와 같은 유저 신체 부위 모션에 응답하여 트리거되는 또는 다르게는 제어되는 다양한 통신 능력을 또한 포함할 수도 있다.
그러나, 애플리케이션 커맨드의 트리거링은, 임의의 소망의 유선 또는 무선 통신 링크를 통해 애플리케이션 커맨드를 수신할 수 있는 또는 그 애플리케이션 커맨드에 응답할 수 있는 임의의 로컬 또는 원격 컴퓨팅 디바이스 또는 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신을 제어하기 위해 또는 이들과 상호 작용하기 위해 사용될 수 있다는 것이 또한 이해되어야 한다. 예를 들면, 트리거된 애플리케이션 커맨드는, 스마트 홈 타입 어플라이언스 및 스위치, 카메라, 텔레비전, 컴퓨팅 디바이스, 통신 기기, 등등을 포함하지만 그러나 이들로 제한되지는 않는 디바이스를 제어하기 위해 또는 그 디바이스와 상호 작용하기 위해 사용될 수도 있다. 예를 들면, 유저 착용형 제어 디바이스, 예를 들면, 손목밴드 또는 반지(ring) 기반의 폼팩터 등등으로부터 수신되는 관성 센서 데이터는, 예를 들면, 유저가 그녀의 손을 흔들거나 또는 그녀의 손가락을 튕겨 소리를 내는 것과 같은 모션을 나타낼 수 있다. 이러한 모션은, 애플리케이션 커맨드를 수신할 수 있는 또는 애플리케이션 커맨드에 응답할 수 있는 임의의 로컬 또는 원격 컴퓨팅 디바이스 또는 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신에 대한 임의의 미리 정의된 또는 유저 정의형(user-defined) 애플리케이션 커맨드를 개시하거나 또는 트리거하기 위해 사용될 수 있다.
1.1 시스템 개관:
상기에서 언급되는 바와 같이, "내츄럴 모션 컨트롤러"는, 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신과 상호 작용하는 유저 신체의 하나 이상의 부위의 모션을 식별하기 위한, 그에 의해 다양한 NUI 시나리오를 가능하게 하기 위한 다양한 기술을 제공한다. 상기에서 요약되는 프로세스는 도 1의 일반적인 시스템 도면에 의해 예시된다. 특히, 도 1의 시스템 도면은, 본원에서 설명되는 바와 같이, 내츄럴 모션 컨트롤러의 다양한 구현예를 구현하기 위한 프로그램 모듈 사이의 상호 관계를 예시한다. 또한, 도 1의 시스템 도면이 내츄럴 모션 컨트롤러의 다양한 구현예의 하이레벨 뷰를 예시하지만, 도 1은, 본 문헌 전체에 걸쳐 설명되는 바와 같은 내츄럴 모션 컨트롤러의 모든 가능한 구현예의 총망라하는 또는 완벽한 예시를 제공하도록 의도되지는 않는다.
또한, 도 1에서 파선 또는 점선에 의해 나타내어질 수도 있는 임의의 박스 및 박스 사이의 인터커넥션은 본원에서 설명되는 내츄럴 모션 컨트롤러의 대안적인 구현예를 나타낸다는 것, 및 이들 대안적인 구현예 중 임의의 것 또는 전체는, 하기에서 설명되는 바와 같이, 본 문헌 전체에 걸쳐 설명되는 다른 대안적인 구현예와 결합하여 사용될 수도 있다는 것을 유의해야 한다.
일반적으로, 도 1에 의해 예시되는 바와 같이, 내츄럴 모션 컨트롤러에 의해 인에이블되는 프로세스는, 유저 착용형 제어 디바이스(110)로부터 센서 데이터를 수신하도록 센서 데이터 수집 모듈(100)을 적용하는 것에 의해 동작을 개시한다. 이들 유저 착용형 제어 디바이스(110)의 예는, 유저 착용형, 휴대형, 또는 보유형 제어 디바이스를 포함하고, 옵션적으로는, 유저 신체에 부착되는 또는 유저 신체 내에 임베딩되는 하나 이상의 제어 디바이스를 포함한다. 이들 유저 착용형 제어 디바이스(110)의 각각은, 적어도 별개의 관성 센서 세트 및 관성 센서 데이터를 센서 데이터 수집 모듈(100)로 전달하기 위한 통신 능력을 포함한다.
다양한 구현예에서, 유저 착용형 제어 디바이스(110) 중 하나 이상은, 하나 이상의 추가적인 옵션적 센서(120)를 포함할 수도 있다. 이들 옵션적 센서(120)의 예는, 근접 센서, 광학 센서, 온도 센서, 생체 인식 센서(biometric sensor), 등등을 포함하지만, 그러나 이들로 제한되지는 않는다. 유저 착용형 제어 디바이스(110)에 대한 예시적인 폼팩터(130)는, 스마트워치, 손목밴드, 목걸이, 눈에 착용하는 콘택트 렌즈, 안경, 의류, 벨트, 신발, 반지, 치아 표면 또는 손톱 상의 디바이스, 치아 임플란트, 보석류, 신체 피어싱 및 이식(implant), 등등을 포함하지만, 그러나 이들로 제한되지는 않는다.
한 명 이상의 유저의 각각에 대해, 센서 데이터 수집 모듈(100)은, 하나 이상의 별개의 관성 센서 세트로부터 수신되는 관성 센서 데이터의 옵션적으로 조정가능한 수의 순차적인 기간 또는 프레임을 사슬연결하는 것에 의해 복합 모션 인식 윈도우를 구성한다. 그 다음, 센서 데이터 수집 모듈(100)은, 하나 이상의 미리 정의된 유저 신체 부위 모션에 대응하는 관성 센서 데이터의 포지티브 및 네거티브 예에 하나 이상의 딥 러닝 프로세스를 적용하는 것에 의해 트레이닝된 머신 학습 모션 시퀀스 모델(140)로 모션 인식 윈도우를 전달한다. 그 다음, 머신 학습 모션 시퀀스 모델(140)은, 센서 데이터 수집 모듈(100)로부터 수신되는 복합 모션 인식 윈도우로부터, 하나 이상의 대응하는 유저 신체 부위 모션을 식별한다.
다양한 구현예에서, 한 명 이상의 유저의 제어 디바이스(110)로부터 수신되는 센서 데이터, 및/또는 유저 피드백 및/또는 커스텀 트레이닝 세션에 응답하여, 옵션적인 모델 업데이트 모듈(150)이 머신 학습 모션 시퀀스 모델(140)을 옵션적으로 재트레이닝시킨다(retrain). 다른 옵션적인 구현예에서, 모델 업데이트 모듈(150)은, 옵션적으로, 개별 유저와 관련되는 머신 학습 모션 시퀀스 모델이 시간에 걸쳐 이들 유저의 특정한 모션에 더욱더 적응하도록, 머신 학습 모션 시퀀스 모델(140)의 로컬 사본을 유저 단위 기반으로 재트레이닝시킨다.
애플리케이션 커맨드 트리거 모듈(160)은, 머신 학습 모션 시퀀스 모델(140)에 의해 리턴되는 식별된 하나 이상의 미리 정의된 유저 신체 부위 모션의 하나 이상의 시퀀스에 응답하여, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거한다. 이들 애플리케이션 커맨드는, 유저가, 머신 학습 모션 시퀀스 모델(140)에 의해 식별되는 유저 신체 부위 모션을 통해, 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신과 상호 작용하는 것을 가능하게 한다.
다양한 구현예에서, 하나 이상의 애플리케이션 커맨드의 트리거링을 통해 제어되는 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신은, 유저 착용형 제어 디바이스(110)를 포함한다는 것을 유의한다. 예를 들면, 스마트워치 폼팩터는, 머신 학습 모션 시퀀스 모델(140)에 의해 식별되는 유저 신체 부위 모션에 응답하여 트리거되는 또는 다르게는 제어되는 다양한 통신 능력을 포함할 수도 있다. 그러나, 애플리케이션 커맨드 트리거 모듈(160)은, 애플리케이션 커맨드를 수신할 수 있는 또는 애플리케이션 커맨드에 응답할 수 있는 임의의 로컬 또는 원격 컴퓨팅 디바이스 또는 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신을 제어하기 위해 또는 이들과 상호 작용하기 위해 사용될 수 있다는 것이 또한 이해되어야 한다.
또한, 다양한 구현예에서, 애플리케이션 커맨드 트리거 모듈(160)은, 옵션적으로, 두 명 이상의 상이한 유저 사이의 하나 이상의 유저 신체 부위의 모션 사이의 동기화에 응답하여, 애플리케이션 커맨드를 트리거한다. 이러한 동기화는, 두 명 이상의 유저의 신체 부위 모션(머신 학습 모션 시퀀스 모델(140)에 의해 식별됨)이 동기화되는지의 여부를 옵션적으로 결정하도록 동작하는 옵션적인 동기화 식별 모듈(170)에 의해 결정된다.
다양한 구현예에서, 동기화 식별 모듈(170)은, 한 유저의 유저 착용형 제어 디바이스(110)가, 한 명 이상의 다른 유저의 유저 착용형 제어 디바이스의 최소 임계 거리 이내에 있을 때(옵션적인 근접 센서의 사용을 통해 결정됨), 동기화된 모션을 식별한다. 다른 구현예에서, 동기화 식별 모듈(170)은, 이들 모션과 관련되는 타임 스탬프가, 상이한 유저의 신체 부위 모션(예를 들면, 두 명의 유저가 서로의 손을 흔드는 것) 사이의 조정을 나타낼 때, 동기화된 모션을 식별한다. 다양한 구현예에서, 두 명 이상의 유저의 신체 부위 모션이 동기화되어 있는지의 여부를 결정할 때, 타임 스탬프 및 임계 거리 둘 다가 결합될 수도 있다는 것을 또한 유의한다.
2.0 내츄럴 모션 컨트롤러의 동작 상세:
상기 설명된 프로그램 모듈은, 내츄럴 모션 컨트롤러의 다양한 구현예를 구현하기 위해 활용된다. 다음의 섹션은, 내츄럴 모션 컨트롤러의 다양한 구현예의, 그리고 도 1과 관련하여 섹션 1에서 설명되는 프로그램 모듈을 구현하기 위한 예시적인 방법의, 동작의 상세한 논의를 제공한다. 특히, 다음의 섹션은 내츄럴 모션 컨트롤러의 다양한 구현예의 예 및 동작 상세를 제공하는데, 다음을 포함한다:
● 내츄럴 모션 컨트롤러의 동작 개관;
● 모션 시퀀스 모델을 트레이닝함에 있어서 사용하기 위해 적응된 예시적인 머신 학습 기술;
● 내츄럴 모션 기반의 제어를 위한 트레이닝된 모델의 적응 및 사용;
● 예시적인 제어 모션; 및
● 유저 착용형 제어 디바이스에 대한 예시적인 폼팩터.
2.1 동작 개관:
상기에서 언급되는 바와 같이, 본원에서 설명되는 내츄럴 모션 컨트롤러는, 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신과 상호 작용하는 유저 신체의 하나 이상의 부위의 모션을 식별하기 위한, 그에 의해 다양한 NUI 시나리오를 가능하게 하기 위한 다양한 기술을 제공한다. 다양한 구현예에서, 내츄럴 모션 컨트롤러의 능력은, 하나 이상의 착용형, 휴대형, 또는 보유형 모바일 컴퓨팅 디바이스에 임베딩되는, 커플링되는, 또는 다르게는 이들과 관련되는 가속도계 및 자이로스코프를 비롯한, 관성 센서로부터의 데이터에 기초한다. 이러한 디바이스로부터 수신되는 센서 데이터는, 손가락, 손, 팔, 머리, 눈, 눈꺼풀, 입, 혀, 치아, 토르소, 다리, 발, 등등을 포함하지만 그러나 이들로 제한되지는 않는 유저 신체 부위의 특정한 모션, 또는 모션 시퀀스를 식별하는 모델 기반의 확률 추론을 획득하기 위해 평가된다. 설명의 목적을 위해, 애플리케이션 커맨드를 트리거하기 위한 기초로서 사용되는 신체 부위 모션은, 때로는, 본원에서 "제어 모션"으로 칭해진다는 것을 유의한다.
다양한 구현예에서, 내츄럴 모션 컨트롤러는 "프레임"을 형성하기 위해 센서 샘플링 기간을 고려하는데, 센서 샘플링 기간은 특정한 신체 부위에 관련되는 유저 착용형 제어 디바이스의 현재 가속도 및 각속도와 같은 센서 데이터를 포함한다. N개의 연속하는 프레임이 복합 모션 인식 윈도우를 형성하는데, 여기서 N은 고정된 또는 조정가능한 파라미터이다. 그 다음, 복합 모션 인식 윈도우는, 특정한 유저 신체 부위의 미리 정의된 모션을 나타내는 인식 결과를 획득하도록 머신 학습 모션 시퀀스 모델로 제공되는데, 그 인식 결과는, 그 다음, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하기 위해 사용된다. 머신 학습 모션 시퀀스 모델을 트레이닝시키기 위해 사용되는 기술의 예는, 서포트 벡터 머신(support vector machines; SVM), 심층 신경망(deep neural networks; DNN), 순환 신경망(recurrent neural networks; RNN)을 포함하지만 그러나 이들로 제한되지는 않는다.
모델 구조에 따라, 상이한 타입의 센서 데이터가 제공될 수도 있다. 예를 들면, RNN 기반의 모델은, 고정 길이 윈도우 또는 샘플링 기간 이외의 입력 프레임의 스트림에 직접적으로 적용될 수도 있다. 다양한 구현예에서, 각각의 인식 윈도우에 대해, 센서류 데이터(sensory data)는 피쳐 벡터(SVM 및 DNN 기반의 모델을 가정함) 또는 피쳐 벡터의 시퀀스(RNN 기반의 모델을 가정함)에 의해 표현된다. 그 다음, 모델은 이들 피쳐 표현을 입력으로서 취하고 예측 출력(즉, 인식 결과)을 계산하는데, 예측 출력은 예측된 모션 또는 모션의 시퀀스를 나타낸다.
예측된 모션 및 애플리케이션 커맨드의 대응하는 트리거링이 주어지면, 내츄럴 모션 컨트롤러는, 임의의 통신 대응 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신의 상호 작용 및 제어를 제공한다. 다양한 구현예에서, 예를 들면 스마트워치와 같은 유저 착용형 디바이스는, 스마트워치 디바이스 그 자체에 임베딩되는 관성 센서로부터의 데이터에 기초하여, 신체 모션에 응답하여 제어될 수도 있다. 이러한 구현예는 디바이스의 원핸드 노터치 제어(one-hand no-touch control)를 가능하게 한다. 예를 들면, 다양한 구현예에서, 스마트워치가 착용되는 손목의 유저 트위스트는, 예를 들면, 스마트워치와 일체형인 마이크가 유저로부터 음성 커맨드를 수신하는 것을 가능하게 것과 같은 애플리케이션 커맨드를 트리거하는 손목의 식별가능한 모션을 생성하기에 충분하다.
결과적으로, 스마트워치와 같은 디바이스를 제어하기 위해 유저가 터치스크린과 상호 작용하는 것 또는 등등을 필요로 하는 기술과는 대조적으로, 내츄럴 모션 컨트롤러는, 유저가 상호 작용의 목적을 위해 디바이스에 물리적으로 터치하도록 그녀의 손 또는 손가락을 사용하는 것으로부터 해방되고, 그에 의해 유저 생산성, 및 종종 유전 안전성을 크게 향상시킨다. 예를 들면, 유저가 양 손에 물품을 운반하고 있는 경우를 고려한다. 이러한 경우, 간단한 유저 모션은, 스마트워치(또는 다른 컴퓨팅 디바이스 및 전자적으로 제어되는 또는 작동되는 디바이스)와의 제어 및 상호 작용을, 유저가 그녀의 손가락을 사용하여 그 디바이스와 상호 작용하기 위해 그녀가 운반하고 있는 물품을 내려 놓는 것을 필요로 하지 않고도, 가능하게 할 것이다. 마찬가지로, 유저가 차량을 운전하고 있고 스마트워치 기반의 전화를 그의 손목에 착용하고 있는 경우를 고려한다. 이러한 경우에, 유저는 간단한 물리적 모션(예를 들면, 손목 트위스트, 운전대를 손가락으로 탭하는 것, 등등)을 통해 스마트워치 기반의 전화를 통해 통화를 개시하거나 또는 수신할 수 있고, 그에 의해, 운전하는 동안 스마트워치와 상호 작용하기 위해 도로에서 눈을 떼거나 또는 운전대를 놓을 어떠한 필요성도 제거되고, 그에 의해 유저 안전성을 향상시킨다.
2.2 예시적인 머신 학습 기술:
다음의 문단(paragraph)은, 내츄럴 모션 컨트롤러에 의한 사용을 위해 적응될 수도 있는 몇몇 머신 학습 및 모델링 기술의 예를 제공한다. 내츄럴 모션 컨트롤러는 하기에서 논의되는 머신 학습 및 모델링 기술의 특정한 예로 제한되도록 의도되지 않는다는 것, 및 이들 예는 단지 논의와 설명의 목적만을 위해 제공된다는 것이 이해되어야 한다.
2.2.1 SVM 모델링 기술:
서포트 벡터 머신(SVM)은, 피처 벡터 x∈Rn을 입력으로서 취하고 출력 클래스 라벨 y를 계산하는 분류기의 한 타입이다. 표준 이진 분류 공식 y∈{+1, -1}에서, 그리고 각각의 x에 대해, (내츄럴 모션 컨트롤러의 경우 예측된 신체 부위 모션을 나타내는) 예측치는 sign(wTx)로서 계산되는데, 여기서 w는 파라미터 벡터이다. 모델 파라미터 w는, 다음의 식 1에 의해 예시되는 바와 같이 정규화된 손실 함수를 최소화하도록 라벨링된 (x, y) 쌍의 세트를 사용하여 학습되는데:
여기서 l은 일반적으로는 힌지 손실(hinge loss) 이다. 힌지 손실과 같은 볼록 손실(convex loss)의 경우, 이 목표는 볼록 함수이고 많은 볼록 최적화 방법을 효율적으로 사용하여 최적화될 수 있다. 학습 이후, 파라미터 w는 인식 시스템에서 사용된다. 내츄럴 모션 컨트롤러의 경우, 라벨링된 (x, y) 쌍은, 미리 정의된 유저 신체 부위 모션에 대응하는 포지티브하게 그리고 네거티브하게 라벨링된 예를 나타낸다는 것을 유의한다.
SVM은 또한, 커널 함수의 사용에 의해 비선형 케이스로, 그리고 1 대 모두(1-versus-all)와 같은 전략을 사용하는 것에 의해, 또는 구조화된 멀티클래스 손실을 사용하는 것에 의해 멀티클래스 케이스로 확장될 수 있다.
2.2.2 DNN 모델링 기술:
심층 신경망(DNN)은 비선형 분류기의 한 타입이다. (내츄럴 모션 컨트롤러의 경우, 예측된 신체 부위 모션에 대응하는 클래스 라벨을 나타내는) 예측을 행할 때, DNN은 입력 벡터 x(이 경우, 관성 센서 데이터를 나타냄)를 비선형 변환의 다중 레이어를 통과하여 마침내 클래스 라벨로 전달한다.
일반적으로, 통상적인 DNN 아키텍쳐는, 히든 레이어 또는 뉴런으로 또한 칭해지는 복수의 비선형 레이어를 포함한다. 각각의 레이어의 경우, 입력 벡터가 출력 벡터에 매핑된다. 예를 들면, 레이어 n에서, 입력 벡터 hn은 다음과 같이 출력 벡터 hn+1로 매핑된다:
여기서 bn 및 wn은 이 레이어에 대한 파라미터이고 f는 비선형성 함수(nonlinearity function)이다. 입력 레이어(즉, 레이어 0)의 경우, h0 = x, (즉, 센서 데이터)이다. f에 대한 공통 선택은, 와 같은 로지스틱 함수(logistic function), 와 같은 하이퍼볼릭 탄젠트 또는 "tanh" 함수, 와 같은 정류 선형 함수(rectified linear function), 및 등등을 포함하지만, 그러나 이들로 제한되지는 않는다.
출력 레이어는, 일반적으로는, 클래스 라벨의 조건부 확률 분포(conditional probability distribution)를 다음과 같이 모델링하는 소프트맥스 타입 함수(softmax-type function) 또는 등등이지만, 반드시 이것일 필요는 없다:
여기서 N은 네트워크에서의 레이어의 수이다. 최종 예측치는, 다음의 식 4에 의해 예시되는 바와 같이 계산된다:
DNN은, 종종, (내츄럴 모션 컨트롤러의 경우, 미리 정의된 유저 신체 부위 모션에 대응하는 포지티브하게 그리고 네거티브하게 라벨링된 예를 나타내는) 트레이닝 (xt, yt) 쌍의 세트에 대해 정의되는 손실 함수를 최소화하도록 트레이닝된다. 예를 들면, 다음의 식 5의 네거티브 로그 우도 손실 함수(log-likelihood loss function)는 이러한 목적을 위해 사용될 수도 있다:
2.2.3 RNN 모델링 기술:
순환 신경망(RNN)은 순차 데이터에 대해 설계되는 신경망의 한 타입이다. 통상적인 RNN 기반의 아키텍쳐는, 최하부(bottom)에 있는 입력 레이어, 상이한 시간에 히든 레이어 사이에 순환 연결을 갖는, 중간에 있는 하나 이상의 히든 레이어, 및 최상부(top)에 있는 출력 레이어로 구성된다. 각각의 레이어는 뉴런의 세트를 나타내고, 레이어는 가중치 U 및 V를 가지고 연결된다. 입력 레이어 xt는 시간 t에서의 입력 신호를 나타내고, 출력 레이어 yt는 클래스 라벨에 걸친 확률 분포를 생성한다. 히든 레이어 ht는 센서 데이터 이력의 표현을 유지한다. 입력 벡터 xt는 프레임 t(또는 프레임 t 주위의 컨텍스트)에 대한 피쳐 표현이다. 출력 벡터 yt는, 가능한 모션의 수와 동일한 차원성을 갖는다. 히든 및 출력 레이어의 값은 다음과 같이 계산되는데:
여기서 f 및 g는 엘리먼트 단위의 비선형성(element-wise nonlinearity)이다. 일반적으로 g는 소프트맥스 함수이고 f는 임의의 소망의 시그모이드 비선형성 함수(sigmoid nonlinearity function)일 수 있다.
RNN 기반의 모델은, 데이터 조건부 우도(data conditional likelihood)를 최대화하기 위해, 표준 역전파를 사용하여 트레이닝된다:
이 모델은 시간에 걸쳐 출력 변수 사이에 어떠한 직접적인 상호 의존성도 갖지 않는다는 것을 유의한다. 따라서, 출력 라벨의 가장 가능성이 있는 시퀀스는 일련의 온라인 결정을 통해 계산될 수 있다:
이것은, 온라인에 있고 아주 효율적이다는 이점을 가지며, 다른 시퀀스 라벨링 모델을 위한 동적 프로그래밍 검색 방법보다 더 빠르다.
2.2.4 LSTM 모델링 기술:
장기간 메모리(Long-Short Term Memory; LSTM) 모델은, 입력, 출력 및 히든 대 히든 전이를 변조하기 위해 게이팅 유닛(gating unit)을 사용하는 표준 RNN 모델의 확장안이다. 게이팅 유닛을 사용하는 것에 의해, LSTM의 히든 유닛은 더 긴 이력을 계속 추적할 수 있고 따라서 일반적으로는 장거리 의존성의 향상된 모델링을 제공한다.
통상적인 LSTM 아키텍쳐는 다음의 동작을 구현하는데:
여기서, it, ot, 및 ft는, 각각, 입력, 출력, 및 망각 게이트(forget gate)이다. 메모리 셀 활동은 ct이다. 또한, xt 및 ht는, 각각, LSTM의 입력 및 출력이다. 엘리먼트 단위 곱은 로서 표기된다. σ는 로지스틱 시그모이드 함수를 나타낸다. 그 다음, LSTM의 출력 ht는, 다음의 식 10에 의해 예시되는 바와 같이, (내츄럴 모션 컨트롤러의 경우, 예측된 신체 부위 모션을 나타내는) 예측된 결과를 생성하기 위해 모델의 출력으로 전달된다:
일반적으로, LSTM은, 선형 메모리 셀 활동 사이에 순환 연결이 있고, 입력을 변조하기 위해, 지난 메모리 활동을 버리기 위해 그리고 출력을 조정하기 위해 게이트가 사용된다는 점에서, RNN과는 상이하다. 그러나, 표준 RNN에서와 같이, LSTM은 조건부 우도를 최적화하도록 또한 트레이닝되고 온라인 예측을 행할 수 있다.
2.3 내츄럴 모션 제어를 위한 모델의 적응 및 사용:
다양한 구현예에서, 임의의 소망의 머신 학습 기술을 사용하여 머신 학습 모션 시퀀스 모델을 트레이닝시키기 위한 프로세스는, 통상적으로 데이터 수집 프로세스를 포함한다. 이 데이터 수집 프로세스는, 복수의 포지티브 트레이닝 예를 나타내는 특정한 미리 정의된 모션 및 네거티브 트레이닝 예를 나타내는, 임의적 모션을 비롯한, 복수의 다른 모션을 수행하는 임무를 다수의 유저에 부과하는 것을 수반한다. 이 프로세스는, 유저가 부과된 모션을 수행하고 있는 동안 다수의 유저에 의해 착용되는, 보유되는, 또는 휴대되는 제어 디바이스로부터 센서 데이터를 수집하기 위해 사용된다. 그 다음, 다수의 상이한 유저로부터의 포지티브하게 그리고 네거티브하게 라벨링된 트레이닝 예 둘 다를 나타내는 수집된 데이터는, 미리 정의된 유저 모션의 세트로부터, 유저 신체 부위 모션, 또는 모션의 시퀀스를 식별하기 위해 모든 유저에 걸쳐 잘 작동하는 단일의 모션 모델을 트레이닝시키기 위해 풀링되고(pooled) 사용된다.
모델 성능은, 모델을 트레이닝할 때 포지티브 예보다 더 많은 수의 네거티브 예를 사용함으로써 위양성 모션 식별(false positive motion identification)을 감소시키는 것에 의해 향상될 수도 있다는 것을 유의한다. 예를 들면, 네거티브 예는, 명시적으로 배제되도록 의도되는 특정한 모션으로부터 수집될 수 있다. 예를 들면, 유저가 그의 손을 그의 호주머니에 넣는 경우, 그는 전체 모션의 일부로서 그의 손목을 비틀(twist) 수도 있다. 그러나, 트위스트 모션이 통상적으로는 애플리케이션 커맨드를 트리거하기 위한 미리 정의된 모션을 나타내도록 의도된다는 것을 가정하면, 손을 호주머니에 넣은 전체 시퀀스를 배제하는 것이 바람직할 것이다. 이 경우, 유저가 손목을 비틀면서 그의 손을 그의 호주머니에 넣는 전체 시퀀스에 대한 관성 센서 데이터는 모델 트레이닝 목적에 대한 네거티브 예로서 수집될 것이다.
다양한 구현예에서, 머신 학습 모션 시퀀스 모델은 여러 가지 점진적 단계에서 트레이닝된다. 예를 들면, 한 명 이상의 유저가 다양한 모션을 수행하는 동안, 최초로 트레이닝된 모델은 관성 센서 데이터에 대해 실행될 수 있다. 그 다음, 임의의 모션 시퀀스가 위양성을 트리거할 때마다, 그 모션 시퀀스는 캡쳐되어 모델의 점진적으로 더 정확한 인스턴스를 재트레이닝시키기 위한 네거티브 예로서 사용된다. 다시 말하면, 추가적인 트레이닝 데이터는 부분적으로 트레이닝된 모델을 실행하는 것에 의해 수집될 수도 있다.
다양한 구현예에서, 유저는, 신체 부위 모션이 몇몇 유저 모션 시퀀스에 기초하여 모델에 의해 식별될 때마다, 옳고 그름(또는 등가적인 상태 표시자)을 나타낸다. 그 다음, 대응하는 모션 시퀀스는 포지티브 또는 네거티브로 라벨링될 것이고 모델의 후속하는 인스턴스를 재트레이닝시키기 위해 사용될 것이다. 다수의 유저로부터의 다수의 추가적인 포지티브 및 네거티브 예는 이 모델의 업데이팅 또는 재트레이닝 프로세스에서 사용된다는 것, 및 이러한 트레이닝의 다수의 반복은 정확도가 증가한 모델을 생성하기 위해 수행될 수도 있다는 것을 유의한다.
마찬가지로, 다양한 구현예에서, 내츄럴 모션 컨트롤러가 유저 신체 부위 모션에 관한 잘못된 예측을 리턴하고 그에 의해 잘못된 애플리케이션 커맨드를 트리거하는 경우, 유저 인터페이스 메커니즘은 그 애플리케이션 커맨드를 중지하도록 또는 되돌리도록 이용가능하다. 그 다음, 대응하는 모션 시퀀스는 네거티브 예로서 라벨링될 수도 있고 모델의 후속하는 인스턴스를 재트레이닝시키기 위해 사용될 수도 있다. 또한, 내츄럴 모션 컨트롤러가 유저 신체 부위 모션에 관한 잘못된 예측을 리턴하는 경우, 유저는 자신의 모션을 모델에 의해 예측되는 것으로 조정할 수도 있거나, 또는 그 유저의 특정한 모션을 인식하도록 또는 식별하도록 모델을 재트레이닝시키는 것을 돕기 위해 추가적인 포지티브 및/또는 네거티브 예를 제공할 수도 있다.
도 2는 머신 학습 모션 시퀀스 모델을 트레이닝시키기 위한 예시적인 하이레벨 개관을 예시한다. 도 2는, 앞선 논의의 관점에서, 그리고 트레이닝 데이터 수집(섹션 2.3.1 참조), 특징 추출(섹션 2.3.2 참조), 컨텍스트 의존성의 통합(섹션 2.3.3 참조), 옵션적인 사후 프로세싱(섹션 2.3.4 참조), 및 유저 단위 기반의 모델 업데이팅(섹션 2.3.5 참조)에 관한 다음의 논의의 추가적인 관점에서 이해되도록 의도된다는 것을 유의한다. 또한, 도 2는, 머신 학습 모션 시퀀스 모델을 트레이닝함에 있어서 사용하도록 적응될 수도 있는 다양한 딥 러닝 또는 다른 머신 학습 기술의 완전한 예시 또는 논의를 제공하도록 의도되지는 않는다.
일반적으로, 도 2에 의해 예시되는 예시적인 모델 트레이닝 프로세스는, 하나 이상의 미리 정의된 및/또는 임의적인 신체 부위 모션의 다수의 인스턴스를 수행하는 임무를 다수의 유저에게 부과하는 트레이닝 데이터 수집 모듈(200)을 적용하는 것에 의해 동작을 시작한다. 그 다음, 트레이닝 데이터 수집 모듈(200)은, 유저 착용형 제어 디바이스(110)(도 1과 관련하여 설명됨)로부터 대응하는 관성 센서 데이터(210)를 수집한다.
그 다음, 라벨링 모듈(220)이, 특정한 딥 러닝 또는 다른 머신 학습 프로세스에 대해 사용되는 입력의 타입에 따라, 원본(raw) 센서 데이터의 윈도우 또는 프레임을 특징 벡터로 변환하는 것에 의해, 또는 원본 센서 데이터의 윈도우 또는 프레임을 단순히 추출하는 것에 의해, 관성 센서 데이터(210)로부터 특징을 추출한다. 그 다음, 라벨링 모듈(220)은 윈도우 또는 프레임을, 미리 정의된 또는 유저가 정의한 신체 부위 모션과 관련되는 포지티브 또는 네거티브 예로서 라벨링한다. 이들 프로세스의 결과는 라벨링된 트레이닝 데이터(230)의 세트인데, 라벨링된 트레이닝 데이터(230)의 세트, 그 다음, 모델 트레이닝 및 업데이트 모듈(240)로 전달되고, 모델 트레이닝 및 업데이트 모듈(240)은, 라벨링된 트레이닝 데이터에 대한 머신 학습 모션 시퀀스 모델(140)을 트레이닝시키기 위해, 딥 러닝 또는 다른 머신 학습 기술을 적용한다. 다양한 구현예에서, 모델 트레이닝 및 업데이트 모듈(240)은, 옵션적으로는, 다음 문단에서 더 상세히 논의되는 바와 같이, 신규로 라벨링된 데이터가 이용가능하게 됨에 따라, 및/또는 유저 커스텀화 입력(user customization input)에 응답하여, 모션 시퀀스 모델을 업데이트한다.
2.3.1 트레이닝 데이터 수집:
일반적으로, 트레이닝 데이터는 포지티브 및 네거티브 라벨의 트레이닝 예를 생성하기 위한 임의의 소망하는 데이터 수집 시나리오를 사용하여 수집될 수 있다. 예를 들면, 내츄럴 모션 컨트롤러의 다양한 구현예에서, 트레이닝 데이터는 관성 센서를 갖는 웨어러블 또는 모바일 디바이스를 사용하여 수집될 수도 있다. 이러한 구현예에서, 특정한 유저 착용형 제어 디바이스와 관련되는 관성 센서 세트에 대한 유입하는(incoming) 센서 데이터의 스트림은, 유저가 특정한 모션을 수행하도록 지시받는 동안, 기록된다. 일단 그 모션이 완료되면, 유저는, 버튼을 누르는 것, 모션의 종료를 시그널링하기 위해 스크린을 클릭하는 것, "모션 완료"와 같은 단어 또는 단어의 시퀀스를 말하는 것, 등등을 포함하지만 그러나 이들로 제한되지는 않는 수단을 통해, 모션의 완료를 나타낼 것을 지시받는다. 이들 완료 이벤트도 또한 기록된다. 그 다음, 트레이닝 동안, 각각의 완료 이벤트 이전의 프레임의 몇몇 윈도우는 모션에 대한 포지티브 트레이닝 데이터로서 라벨링되고, 다른 기간으로부터 샘플링되는 윈도우는 네거티브 백그라운드 트레이닝 데이터로서 사용된다.
2.3.2 특징 추출:
특징 추출은 원본 센서류 데이터 프레임의 윈도우를, SVM 및 DNN 기반의 방법을 포함하는 기술을 사용하여 트레이닝되는 머신 학습 모션 시퀀스 모델에 의해 사용되기에 적합한 특징 벡터로 변환한다. 내츄럴 모션 컨트롤러의 다양한 구현예에서, 이동 평균(moving average), 웨이브릿 특징(wavelet feature) 및 정규화된 원본 데이터를 포함하지만 그러나 이들로 제한되지는 않는 특징 벡터는 원본 관성 센서 데이터로부터 추출되었다.
2.3.3 컨텍스트 의존성 통합:
상기에서 언급되는 바와 같이, 다양한 구현예에서, 머신 학습 모션 시퀀스 모델은, 유저가 하나 이상의 알려진 모션을 수행하는 동안, 다양한 센서로부터 수신되는 데이터(또는 특징 벡터)에 대해 트레이닝된다. 그 다음, 이 트레이닝 데이터는 모델 트레이닝을 위한 입력 특징으로서 사용된다. 또한, 다양한 구현예에서, 내츄럴 모션 컨트롤러는, 옵션적으로, 컨텍스트 의존성을 통합하도록, 임의의 소망의 머신 학습 및 모델링 기술을 적응시킨다.
예를 들면, RNN 및 LSTM 기반의 모션 시퀀스 모델에서 각각의 모델에 대한 입력 특징을 준비할 때, 내츄럴 모션 컨트롤러는, 입력으로서, 단일의 프레임 대신, 컨텍스트 윈도우를 적용할 수도 있는데, 이것은 각각의 프레임에 대한 예측을 더 정확하고 강건하게 만들 수 있다. 예를 들면, 컨텍스트 길이를 L로서 표기하는 것에 의해, 시간 t 동안의 입력은 이다. 그 다음, 결과적으로 나타나는 컨텍스트 윈도우는, 원본 센서류 데이터의 각각의 윈도우 또는 프레임을, 머신 학습 모션 시퀀스 모델에 대한 특징 벡터로 변환하는 특징 추출 프로세스를 구현하기 위해 사용된다. 그 다음, 이들 특징 벡터는, 출력으로서 예측된 모션을 계산하는 데 사용하기 위해, 머신 학습 모션 시퀀스 모델에 입력으로서 제공된다. 또한, 다양한 구현예에서, 모션 예측을 더 원활하게 하기 위해, 사후 프로세싱 동작이 적용된다.
2.3.4 사후 프로세싱:
상기에서 설명되는 제조 과정(pipeline)은, 각각의 윈도우에 대한(SVM 및 DNN의 경우) 또는 각각의 프레임에 대한(RNN 및 LSTM) 모션 클래스 라벨(즉, 유저 신체 부위 모션)을 예측할 수 있는 머신 학습 모션 시퀀스 모델로 나타나게 된다. 다양한 구현예에서, 예측을 더 원활하게 하고 더 강건하게 만들기 위해, 확장된 예측 윈도우가 옵션적으로 사용되어, 몇몇의 상대적으로 적은 수의 선행하는 윈도우 또는 프레임의 각각으로부터의 예측 결과를 버퍼링한다. 그 다음, 확장된 예측 윈도우에 걸친 지배적 예측(예를 들면, 동일한 예측된 신체 부위 모션에서 확장된 예측 윈도우를 포함하는 세 개의 순차적인 윈도우 또는 프레임 중 두 개로부터 유래하는 예측)이 애플리케이션 커맨드를 트리거함에 있어서 사용하기 위한 가장 가능성 있는 모션으로서 사용될 수도 있다.
2.3.5 유저 단위 기반의 모델 업데이팅 :
다양한 구현예에서, 머신 학습 모션 시퀀스 모델의 능력은, 특정한 신체 부위 모션에 대한 모델 선예도(sharpness)를 증가시키도록 모델 가중치를 조정하는 것에 의해 더 향상된다. 다시 말하면, 모션 시퀀스 모델에 의한 두 개의 상이한 신체 부위 모션 예측이 특정한 모션 시퀀스에 기초하여 유사한 확률 또는 스코어를 가지면, 모델은, 약간 상이한 유저 모션에 응답하여, 이들 예측 사이에서 토글될 수도 있다. 이러한 경우에, 이들 스코어 또는 확률 사이의 대비성을 증가시키기 위해, 추가적인 트레이닝이 모션 시퀀스 모델에 적용될 수도 있다. 이 추가적인 트레이닝은, 유저가 시퀀스에서의 자연적인 변동의 결과와 동일한 모션 시퀀스를 시도할 때 상이한 신체 부위 모션 시퀀스가 검출되지 않도록, 일관성을 보장할 것이다. 이것이 달성되는 하나의 방식은, 특정한 신체 부위 모션 시퀀스와 관련되는 모델 시퀀스 모델에서의 가중치를, 그 특정한 신체 부위 모션 시퀀스와 관련되는 모션을 유저가 반복적으로 수행할 때, 강화시키거나 또는 증가시키는 것이다. 다시 말하면, 모델 가중치는, 일반적인 또는 빈번한 유저 신체 부위 모션에 대응하는 출력을 강화시키도록 적응된다.
마찬가지로, 다양한 구현예에서, 모션 시퀀스 모델은 특정한 유저의 패턴에 자동적으로 적응된다. 예를 들면, 다양한 구현예에서, 유저 피드백 모드 또는 등등은, 유저 단위 기반으로 모션 시퀀스 모델을 재트레이닝하기 위해 또는 다르게는 업데이트하기 위해 사용되는 추가적인 포지티브 및/또는 네거티브 예를 제공한다. 다시 말하면, 다양한 구현예에서, 모델이 특정한 유저에 대한 수용가능한 결과를 제공하고 있지 않으면, 내츄럴 모션 컨트롤러는, 특정한 포지티브 예(즉, 포지티브 라벨의 예) 또는 네거티브 예(즉, 네거티브 라벨의 예)를 나타내는 모션 시퀀스의 하나 이상의 인스턴스를 수행하는 임무를 유저에게 부과할 수도 있다.
더 구체적으로는, 개별 유저에 대해 모션 시퀀스 모델을 적응시키는 것은, 그들 특정한 유저에 대한 추가적인 트레이닝 데이터를 수집하는 것을 수반한다. 여기에서의 기본 개념은, 트레이닝된 모션 시퀀스 모델이, 특정한 유저의 모션(즉, 관성 센서 데이터)에 적용되는 것을 고려하여, 내츄럴 모션 컨트롤러가 모델을 업데이트 및 재트레이닝함에 있어서 사용하기 위한 데이터를 그 유저로부터 계속 수집할 것이다. 다양한 구현예에서, 이 데이터 수집은 또한, 추가적인 센서 데이터를 수집하기 위해 특정한 신체 부위 모션 시퀀스를 수행하는 임무를 유저에게 부과하는 것을 수반한다. 또한, 다양한 구현예에서, 위양성이 트리거될 때마다를 나타내기 위해, 유저는 대응하는 센서 데이터가 네거티브 예로서 사용되게 할 임무가 있다. 다시 말하면, 모션 시퀀스 모델의 예측성 거동은, 유저 고유의 모션 시퀀스에 대응하는 관성 센서 데이터를 사용하여 모델을 업데이트하는 것에 의해, 시간에 걸쳐 개별 유저에게 더욱더 적응될 수도 있다.
일반적으로, 트레이닝된 모션 시퀀스 모델은 미리 정의된 모션 시퀀스의 세트와 함께 제공된다. 그러나, 다양한 구현예에서, 내츄럴 모션 컨트롤러는, 유저가 신규의 또는 커스터마이징된 모션 시퀀스 및 대응하는 활성화 커맨드를 추가하거나 또는 생성하는 것을 허용한다. 마찬가지로, 다양한 구현예에서, 내츄럴 모션 컨트롤러는, 유저가 현존하는 모션 시퀀스 및 대응하는 활성화 커맨드를 제거 및/또는 편집하는 것을 허용한다. 다시 말하면, 다양한 구현예에서, 각각의 유저는 자기 고유의 모션 시퀀스 및 관련된 활성화 커맨드를 정의할 수 있고, 그에 의해, 내츄럴 모션 컨트롤러가 유저 단위 기반으로 완전히 커스터마이징가능한 것을 보장한다.
유저 단위 기반으로 모션 시퀀스 모델을 업데이트하는 것 외에, 다양한 구현예에서, 개개의 익명의 유저의 신체 부위 모션에 대응하는 관성 센서 데이터가 서버 또는 클라우드 서비스로 업로드될 수 있고, 나중에 다른 유저에게 푸시되거나 또는 되전파되는(propagated back) 신규의 멀티 유저 모션 시퀀스 모델을 재트레이닝시키기 위해 사용될 수 있다.
다양한 구현예에서, 모션 시퀀스 모델에 대한 재트레이닝 또는 업데이트는, 개별 유저가 이용가능한 계산적 능력을 사용하여 로컬하게 수행될 수도 있다. 대안적으로, 또는 조합하여, 다양한 구현예에서, 모션 시퀀스 모델에 대한 재트레이닝 또는 업데이트는, 한 명 이상의 유저의 유저 모션 시퀀스와 관련되는 관성 센서 데이터의 라벨링된 포지티브 및 네거티브 예를, 원격 모듈 업데이트를 위해 원격 서버 또는 클라우드 기반의 시스템으로 전송하는 것에 의해 수행될 수도 있다. 그 다음, 결과적으로 나타나는 업데이트된 모션 시퀀스 모델은 한 명 이상의 유저에게 되전파될 수도 있다.
상기에서 설명되는 업데이트 시나리오 중 임의의 것에서, 모션 시퀀스 모델 업데이트 또는 튜닝의 빈도는, 임의의 소망의 기간(즉, 매시간, 매일, 매주, 등등)으로 설정될 수 있다는 것을 유의한다. 마찬가지로, 모션 시퀀스 모델 업데이트, 재트레이닝, 또는 튜닝은, 모델 성능을 향상시키는 것이 요구될 때마다 요구 기반으로 수행될 수 있다.
2.4 예시적인 제어 모션 :
일반적으로, 머신 학습 모션 시퀀스 모델은, 임의의 유저 신체 부위의 모션, 또는 다수의 모션의 시퀀스를 인식하도록 트레이닝될 수도 있다. 또한, 모션 시퀀스 모델에 의해 식별될 수 있는 임의의 유저 신체 부위 모션 또는 모션의 시퀀스는, 임의의 유저 착용형 제어 디바이스에서의 또는 임의의 다른 컴퓨팅 디바이스 또는 전자적으로 제어되는 또는 작동되는 디바이스 또는 머신에서의 임의의 소망의 응답 또는 거동을 개시하기 위한 애플리케이션 커맨드를 트리거하기 위해 사용될 수도 있다. 이와 같이, 다음의 문단에서 논의되는 예시적인 제어 모션, 및 본 문헌 전체에 걸쳐 논의되는 임의의 제어 모션은, 제어 모션 및 이들 제어 모션에 응답하여 내츄럴 모션 컨트롤러에 의해 트리거될 수도 있는 대응하는 애플리케이션 커맨드의 실질적으로 무제한의 조합 중 단지 일부만을 나타낸다는 것이 이해되어야 한다. 결과적으로, 설명된 제어 모션 중 어느 것도 그리고 설명된 애플리케이션 커맨드 중 어느 것도, 제어 모션 및 내츄럴 모션 컨트롤러와 함께 사용하도록 정의 또는 지정될 수도 있는 애플리케이션 커맨드의 범위를 제한하도록 의도되지는 않는다.
앞선 논의의 관점에서, 대응하는 관성 센서 데이터로부터 모션 시퀀스 모델에 의해 식별될 수 있는 몇몇 예시적인 미리 정의된 신체 부위 모션 및 모션 시퀀스가, 설명 및 논의의 목적을 위해 하기에서 요약된다:
1. 손목 트위스트 또는 쉐이크. 예를 들면, 도 3은, 유저의 왼쪽 손목(310)에 착용되는 스마트워치 폼팩터(300)의 유저 착용형 제어 디바이스를 예시한다. 도 3은 또한, 유저의 왼쪽 손목(310)의 축 트위스트(320)를 예시한다(여기서 트위스팅 모션은 굵은 곡선의 양쪽 화살표(double-sided arrow)에 의해 나타내어진다);
2. 손가락 탭;
3. 손뼉;
4. 손가락을 튕겨 소리내기;
5. 손 흔들기;
6. 팔 움직이기 또는 스윙;
7. 눈꺼풀 깜박임;
8. 눈 움직이기;
9. 치아 부딪치기 또는 이갈기(Click or grind teeth);
10. 입 벌리기 또는 다물기;
11. 머리 회전하기;
12. 머리 기울이기;
13. 머리 끄덕이기 또는 흔들기;
14. 토르소 트위스트;
15. 다른 유저와 악수하기;
16. 다른 유저와 주먹 부딪치기(fist bump);
17. 발 구르기;
18. 연속하는 수의 유저 스텝;
19. 등등.
앞선 논의의 관점에서, 미리 정의된 모션 및 모션 시퀀스에 응답하여 트리거되는 몇몇 예시적인 애플리케이션 커맨드가, 설명 및 논의의 목적을 위해 하기에서 요약된다:
1. 미리 정의된 신체 부위 모션 또는 모션 시퀀스를 검출 -> 애플리케이션 커맨드를 시작하거나 또는 실행함;
2. 미리 정의된 신체 부위 모션 또는 모션 시퀀스를 검출 -> 애플리케이션의 다른 세션 또는 윈도우로 전환함;
3. 미리 정의된 신체 부위 모션 또는 모션 시퀀스를 검출 -> 메시지를 전송함;
4. 미리 정의된 신체 부위 모션 또는 모션 시퀀스를 검출 -> 마이크를 켬;
5. 미리 정의된 신체 부위 모션 또는 모션 시퀀스를 검출 -> 통신 디바이스를 개시함(예를 들면, 셀폰 또는 다른 통신 디바이스를 사용하여 전화를 받거나 또는 전화를 건다);
6. 미리 정의된 신체 부위 모션 또는 모션 시퀀스를 검출 -> 외부 디바이스를 제어함(예를 들면, 텔레비전을 향해 팔 흔들기, 카메라가 텔레비전을 봄, 관성 센서 검출 모션, 내츄럴 모션 컨트롤러가 현재 상태에 따라 텔레비전을 켜거나 끔).
2.4.1 다수의 유저 사이의 동기화된 제어 모션 :
다양한 구현예에서, 내츄럴 모션 컨트롤러는, 두 명 이상의 유저 사이의 신체 부위 모션 또는 모션 시퀀스 사이의 의도적인 동기화를 (시간 및/또는 근접도의 함수로서) 자동적으로 검출한다. 그 다음, 이러한 동기화된 모션 또는 모션 시퀀스는, 애플리케이션 커맨드를 트리거하기 위해 개별 유저의 식별된 제어 모션과 유사한 방식으로 사용된다.
예를 들면, 두 명 이상의 유저 각각이 스마트워치, 팔찌, 반지, 등등과 같은 폼팩터의 제어 디바이스를 각각 착용하고 있는 경우를 고려한다. 이러한 경우에, 예를 들면, 유저 주먹 부딪치기, 하이파이브, 악수, 등등과 같은, 동기화되는 것으로 결정되는 임의의 미리 정의된 유저 신체 부위 모션은, 애플리케이션 커맨드를 개시하도록 또는 트리거하도록 사용될 수도 있다. 예를 들면, 두 유저 사이의 악수와 같은 동기화된 유저 모션의 식별은, 이들 유저와 관련되는 컴퓨팅 또는 스토리지 디바이스 사이에서의 데이터 또는 연락처 정보 예컨대 이름, 전화번호, 등등의 교환을 자동적으로 개시할 수도 있다. 이러한 경우에, 유저는, 옵션적으로, 이러한 공유를 인에이블하도록 또는 디스에이블하도록 프라이버시 프로파일을 설정하거나 또는 조정할 수도 있고, 다른 유저가 이러한 데이터를 응답으로 또한 공유하고 있는 한, 이러한 데이터를 제공하는 것과 같은 옵션을 설정할 수도 있다는 것을 유의한다.
2.4.2 예시적인 사용 시나리오:
앞선 논의의 관점에서, 몇몇 예시적인 사용 시나리오가 설명 및 논의의 목적을 위해 하기에서 요약된다:
1. 애플리케이션을 제어하기 위해 유저가 모션 또는 모션 시퀀스를 수행함;
2. 식별된 모션 또는 모션 시퀀스에 응답하여, 유저 착용형 제어 디바이스가, 다른 착용형, 휴대형, 또는 외부 디바이스(예를 들면, 전화기, 테이프 레코더, 조명, 텔레비전, 등등)와 상호 작용하거나, 또는 이들을 제어함;
3. 동기화된 모션 또는 모션 시퀀스에 응답한 다수의 유저 사이의 상호 작용. 예를 들면, 군중 또는 그룹의 10명의 유저는, (옵션적으로는, 개별 유저의 개개의 프라이버시 설정에 종속하는) 그 그룹의 모든 유저 사이에서, 데이터 공유를 트리거하거나 또는 개시하고, 통신을 동기화하고, 전자 캘린더를 동기화하고, 등등을 한다;
4. 다수의 상이한 유저의 모션 또는 모션 시퀀스가 단일의 애플리케이션 커맨드 또는 커맨드의 시퀀스를 개시하도록 상호 작용함. 예를 들면, 대부분의, 또는 몇몇 미리 정의된 수의 상이한 유저가 미리 정의된 모션 시퀀스를 수행하면(예를 들면, 네 명의 유저 중 세 명 각각이 그들의 손목을 비틀면), 그 공유된 모션 시퀀스는 미리 정의된 또는 유저가 정의한 애플리케이션 커맨드의 실행을 트리거하기 위해 사용될 수도 있다. 예를 들면, 열 두 명의 유저의 그룹에서, 열 두 명 중 일곱 명이 모션 모델에 의해 식별되는 썸업(thumbs up) 모션을 행하고, 동시에 이들 유저 중 다섯 명이 썸다운(thumbs down) 모션을 행한다고 가정하면, 그룹의 일곱 명의 대다수에 의해 의도되는 애플리케이션 커맨드가 트리거될 수도 있다; 그리고
5. 다수의 제어 디바이스(및 대응하는 관성 센서)는 또한, 손, 팔, 다리, 토르소, 머리, 등등의 모션을 캡쳐하도록 유저의 신체 상에(또는 내에) 배치될 수도 있는데, 임의의 식별된 모션은 골격 추적을 위해 또한 사용된다. 예를 들면, 유저의 모션을 추적하기 위해 그리고 그 다음 이들 모션을 게임에서 복제하기 위해, 관성 센서를 갖는 손목 또는 손 착용형 제어 디바이스가 사용될 수도 있다. 예를 들면, 관성 센서 데이터로부터 모션 시퀀스 모델에 의해 식별되는 유저 손 및 팔 모션에 기초하여 디지털 아바타의 손이 유저의 손을 흉내내는 복싱 게임을 고려한다. 유익하게는, 이러한 구현예는, 골격 추적 기반의 애플리케이션을 가능하게 하기 위한 유저 신체 또는 신체 일부의 시각적 추적과 비교하여, 상당히 감소된 계산적 오버헤드로 나타난다.
2.4.3 추가적인 센서와의 결합:
다양한 구현예에서, 내츄럴 모션 컨트롤러는, 관성 센서 데이터를, 하나 이상의 추가적인 옵션적 센서로부터 수신되는 센서 데이터와 결합한다. 예를 들면, 관성 센서는, 가속도계 및 자이로스코프를 포함하지만 그러나 이들로 제한되지는 않는 센서 디바이스를 통상적으로 포함한다. 그러나, 카메라, 레이저 기반의 디바이스, 광 센서, 근접 센서(예를 들면, 신체 또는 다른 디바이스에 유저 또는 제어 디바이스가 얼마나 가까운지), 등등을 포함하지만 그러나 이들로 제한되지는 않는 추가적인 센서.
이들 추가적인 옵션적 센서는, 다양한 구현예에서, 관성 센서로부터 수신되는 데이터를 통해 식별되는 모션에 응답하여 트리거되는 애플리케이션 커맨드를 보강하기 위해 또는 제어하기 위해 사용된다. 예를 들면, 특정한 미리 정의된 신체 부위 모션 시퀀스는 밝은 조명에서는 하나의 애플리케이션 커맨드를 트리거할 수도 있지만, 그러나 어두운 조명에서는 다른 애플리케이션 커맨드를 트리거할 수도 있다(또는 애플리케이션 커맨드의 트리거링을 방지할 수도 있다). 다른 예로서, 다양한 센서는, 유저가 물의 환경(예를 들면, 풀장, 강, 호수, 해변, 등등)에 있다는 것을 결정하기 위해 사용될 수도 있고 그 다음 내츄럴 모션 컨트롤러로 하여금 다양한 목적을 위해 유저 수영 모션을 식별하게 할 수도 있다.
2.5 유저 착용형, 휴대형 또는 보유형 디바이스를 위한 예시적인 폼팩터 :
본 문헌 전체에 걸쳐 논의되는 바와 같이, 내츄럴 모션 컨트롤러의 머신 학습 모션 시퀀스 모델은, 유저 신체 부위 모션 또는 모션 시퀀스를 예측 또는 식별하기 위해, 신체 착용형 제어 디바이스로부터 수신되는 관성 센서 데이터를 고려한다. 이들 유저 착용형 제어 디바이스는, 광범위한 폼팩터 중 임의의 것으로 구현될 수도 있다. 또한, 폼팩터에 따라서, 이들 제어 디바이스는 유저의 신체 상에 착용될 수도 있고, 유저의 신체에 커플링될 수도 있고, 및/또는 유저의 신호 안으로 이식되거나 또는 다르게는 삽입될 수도 있다. 이들 고려사항의 관점에서, 몇몇 예시적인 제어 디바이스 폼팩터(각각은 적어도 하나 이상의 관성 센서 및 센서 데이터를 내츄럴 모션 컨트롤러로 전달하기 위한 능력을 포함함)가 설명 및 논의의 목적을 위해 하기에서 요약된다:
1. 손목시계;
2. 손목밴드;
3. 스마트워치;
4. 안경;
5. 콘택트렌즈(눈 깜박임 모션 또는 다른 눈 모션 또는 모션 시퀀스를 검출하기 위한 일체형 관성 센서를 가짐);
6. 셔츠, 바지, 자켓, 드레스, 또는 다른 의류 아이템;
7. 벨트;
8. 신발;
9. 팔찌, 브로치, 목걸이, 반지, 귀걸이, 또는 다른 보석류;
10. 치아, 손가락, 손톱, 등등의 상의, 또는 안쪽의 베니어(veneer) 또는 피복재(covering). 예를 들면, 손톱에 부착되는 관성 센서는, 하나 이상의 애플리케이션 커맨드를 트리거하기 위한 미리 정의된 모션으로서 유저가 손가락을 탭하는(tap) 것을 허용한다;
11. 치아 임플란트(예를 들면, 하나 이상의 치아를 제어 디바이스로 대체한다). 또한, 옵션적으로, 소형화된 셀폰 또는 통신 능력과 같은 추가적인 기능성을 포함한다. 예를 들면, 통신을 가능하게 하기 위한 미리 정의된 모션 또는 모션 시퀀스로서, 유저가 치아를 1회 이상 부딪치는 것을 식별하는 것에 의해, 이러한 제어 디바이스를 사용한다;
12. 신체 피어싱;
13. 신체 이식(예를 들면, 신체 안에 또는 상에 배치되는 소형의 관성 센서);
14. 마우스 가드(mouth guard)(예를 들면, 스포츠 경기를 하거나 잠자는 동안, 머리 또는 치아 모션을 평가한다). 예를 들면, 잠자는 동안 유저가 이를 가는 것에 대응하는 모션을 식별하고, 응답으로 하나 이상의 애플리케이션 커맨드를 개시한다;
15. 등등.
3.0 내츄럴 모션 컨트롤러의 동작 요약;
도 1 내지 도 3을 참조로, 그리고 상기의 섹션 1 및 섹션 2에서 제공되는 상세한 설명의 추가적인 관점에서 상기에서 설명되는 프로세스는, 도 4의 일반적인 동작 흐름도에 의해 예시된다. 특히, 도 4는, 내츄럴 모션 컨트롤러의 다양한 구현예 중 몇몇의 동작을 요약하는 예시적인 동작 흐름도를 제공한다. 도 4는 본원에서 설명되는 내츄럴 모션 컨트롤러의 다양한 구현예 전체를 총망라하는 표현인 것으로 의도되지 않는다는 것, 및 도 4에서 표현되는 구현예는 설명의 목적을 위해서만 제공된다는 것을 유의한다.
또한, 도 4에서 파선 또는 점선에 의해 나타내어지는 임의의 박스 및 박스 사이의 인터커넥션은 본원에서 설명되는 내츄럴 모션 컨트롤러의 옵션적인 또는 대안적인 구현예를 나타낸다는 것, 및 이들 옵션적인 또는 대안적인 구현예 중 임의의 것 또는 전체는, 하기에서 설명되는 바와 같이, 본 문헌 전체에 걸쳐 설명되는 다른 대안적인 구현예와 결합하여 사용될 수도 있다는 것을 유의해야 한다.
다양한 구현예에서, 도 4에 의해 예시되는 바와 같이, 내츄럴 모션 컨트롤러는, 하나 이상의 별개의 관성 센서 세트로부터 수신되는 관성 센서 데이터(410)의 조정가능한 수의 순차적인 기간을 사슬연결함으로써 복합 모션 인식 윈도우(420)를 구성하는 것(400)에 의해 동작을 개시하는데, 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스 중 별개의 하나에 커플링된다. 그 다음, 내츄럴 모션 컨트롤러는, 복합 모션 인식 윈도우(420)를, 하나 이상의 머신 기반의 딥 러닝 프로세스에 의해 트레이닝된 상기 언급된 머신 학습 모션 시퀀스 모델(140)(본원에서 "모션 인식 모델"로 또한 칭해짐)로 전달한다.
그 다음, 내츄럴 모션 컨트롤러는, 하나 이상의 유저 신체 부위의 하나 이상의 미리 정의된 모션(450)의 시퀀스를 식별하기 위해, 머신 학습 모션 시퀀스 모델(140)을 복합 모션 인식 윈도우(420)에 적용한다(440). 그 다음, 내츄럴 모션 컨트롤러는, 식별된 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거한다(460).
또한, 다양한 구현예에서, 내츄럴 모션 컨트롤러는, 옵션적으로, 한 명 이상의 유저의 제어 디바이스로부터 수신되는 센서 데이터에 응답하여, 모션 시퀀스 모델을 주기적으로 재트레이닝시킨다(470). 또한, 내츄럴 모션 컨트롤러는, 옵션적으로, 개별 유저의 유저 착용형 제어 디바이스와 관련되는 모션 인식 모델의 로컬 사본에 대해, 이 재트레이닝을 유저 단위 기반으로 수행한다.
4.0 예시적인 동작 환경:
본원에서 설명되는 내츄럴 모션 컨트롤러 구현예는, 수많은 타입의 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성 내에서 동작가능하다. 도 5는, 내츄럴 모션 컨트롤러의 다양한 구현예 및 엘리먼트가, 본원에서 설명되는 바와 같이, 구현될 수도 있는 범용 컴퓨터 시스템의 단순화된 예를 예시한다. 도 5에서 도시되는 단순화된 컴퓨팅 디바이스(500)의 파선 또는 점선에 의해 표현되는 임의의 박스는, 단순화된 컴퓨팅 디바이스의 대안적인 구현예를 나타낸다는 것을 유의한다. 하기에서 설명되는 바와 같이, 이들 대안적인 구현예 중 임의의 것 또는 전체는, 본 문헌 전체에 걸쳐 설명되는 다른 대안적인 구현예와 결합하여 사용될 수도 있다.
단순화된 컴퓨팅 디바이스(500)는, 적어도 어떤 최소한의 계산 능력을 갖는 디바이스, 예컨대 퍼스널 컴퓨터(personal computer; PC), 서버 컴퓨터, 핸드헬드 컴퓨팅 디바이스, 랩탑 또는 모바일 컴퓨터, 셀폰 및 개인 휴대형 정보 단말(personal digital assistant; PDA)과 같은 통신 디바이스, 멀티프로세서 시스템, 마이크로프로세서 기반의 시스템, 셋탑 박스, 프로그래머블 소비자 전자장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 및 오디오 또는 비디오 미디어 플레이어에서 통상적으로 발견된다.
본원에서 설명되는 내츄럴 모션 컨트롤러 구현예를 디바이스가 실현하는 것을 허용하기 위해, 디바이스는, 기본 계산 동작을 가능하게 하기 위한 충분한 계산 능력 및 시스템 메모리를 가져야 한다. 특히, 도 5에서 도시되는 단순화된 컴퓨팅 디바이스(500)의 계산 능력은 하나 이상의 프로세싱 유닛(들)(510)에 의해 일반적으로 예시되고, 하나 이상의 그래픽 프로세싱 유닛(graphics processing unit; GPU)(515)을 또한 포함할 수도 있는데, 이들 중 어느 하나 또는 둘 다는 시스템(520)와 통신한다. 단순화된 컴퓨팅 디바이스(500)의 프로세싱 유닛(들)(510)은 특수화된 마이크로프로세서(예컨대 디지털 신호 프로세서(digital signal processor; DSP), 아주 긴 명령어 워드(very long instruction word; VLIW) 프로세서, 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA), 또는 다른 마이크로 컨트롤러)일 수도 있거나, 또는 하나 이상의 프로세싱 코어를 갖는 종래의 중앙 프로세싱 유닛(central processing unit; CPU)일 수 있다는 것, 및 멀티 코어 프로세서에 하나 이상의 GPU 기반의 코어 또는 다른 특수 목적의 코어를 또한 포함할 수도 있다는 것을 유의한다.
게다가, 단순화된 컴퓨팅 디바이스(500)는 또한, 예를 들면, 통신 인터페이스(530)와 같은 다른 컴포넌트를 포함할 수도 있다. 단순화된 컴퓨팅 디바이스(500)는 또한, 하나 이상의 종래의 컴퓨터 입력 디바이스(540)(예를 들면, 터치스크린, 터치 감지 표면, 포인팅 디바이스, 키보드, 오디오 입력 디바이스, 보이스 또는 스피치 기반의 입력 및 제어 디바이스, 비디오 입력 디바이스, 햅틱 입력 디바이스, 유선 또는 무선 데이터 송신을 위한 디바이스, 및 등등) 또는 이러한 디바이스의 임의의 조합을 포함할 수도 있다.
마찬가지로, 단순화된 컴퓨팅 디바이스(500)와의 그리고 내츄럴 모션 컨트롤러와 관련되는 한 명 이상의 유저 또는 다른 디바이스 또는 시스템에 대한 입력, 출력, 제어, 피드백, 및 응답을 비롯한, 내츄럴 모션 컨트롤러의 임의의 다른 컴포넌트 또는 피쳐와의 다양한 상호 작용은 다양한 내츄럴 유저 인터페이스(NUI) 시나리오에 의해 가능하게 된다. 내츄럴 모션 컨트롤러에 의해 가능하게 되는 NUI 기술 및 시나리오는, 마우스, 키보드, 리모콘, 및 등등과 같은 입력 디바이스에 의해 부과되는 인공적인 제약이 없는 "자연적인" 방식으로 한 명 이상의 유저가 내츄럴 모션 컨트롤러와 상호 작용하는 것을 허용하는 인터페이스 기술을 포함하지만, 그러나 이것으로 제한되지는 않는다.
이러한 NUI 구현예는, 마이크 또는 다른 입력 디바이스(540) 또는 시스템 센서(505)를 통해 캡쳐되는 유저 스피치 또는 발성으로부터 유도되는 NUI 정보를 사용하는 것을 포함하지만 그러나 이것으로 제한되지는 않는 다양한 기술의 사용에 의해 가능하게 된다. 이러한 NUI 구현예는 또한, 시스템 센서(505) 또는 다른 입력 디바이스(540)로부터, 유저의 얼굴 표정으로부터 그리고 유저의 손, 손가락, 손목, 팔, 다리, 몸통, 머리, 눈, 및 등등의 위치, 모션, 또는 방위로부터 유도되는 정보를 포함하지만 그러나 이들로 제한되지는 않는 다양한 기술의 사용에 의해 가능하게 되는데, 여기서 이러한 정보는, 입체 또는 비행 시간(time-of-flight) 카메라 시스템, 적외선 카메라 시스템, RGB(red, green and blue; 레드, 그린 및 블루) 카메라 시스템, 및 등등과 같은 다양한 타입의 2D 또는 깊이 이미징 디바이스, 또는 이러한 디바이스의 임의의 조합을 사용하여 캡쳐될 수도 있다.
이러한 NUI 구현예의 추가 예는, 터치 및 스타일러스 인식, 모션 및 제스쳐 인식(스크린 상에서의 것 및 스크린 또는 디스플레이 표면에 근접한 것 둘 다), 공중 또는 접촉 기반의 모션 및 제스쳐, 유저 터치(다양한 표면, 오브젝트 또는 다른 유저에 대한 것), 호버링 기반의 입력 또는 액션, 및 등등으로부터 유도되는 NUI 정보를 포함하지만, 그러나 이들로 제한되지는 않는다. 이러한 NUI 구현예는 또한, 유저 의도, 소망, 및/또는 목표와 같은 정보를 예측하기 위해, 현재 또는 과거의 유저 거동, 입력, 액션, 등등을, 단독으로 또는 다른 NUI 정보와 결합하여 평가하는 다양한 예측성 머신 지능 프로세스의 사용을 포함하지만 그러나 이것으로 제한되지는 않는다. NUI 기반의 정보의 타입 또는 소스와 무관하게, 이러한 정보는, 내츄럴 모션 컨트롤러의 하나 이상의 입력, 출력, 액션, 또는 기능적 피쳐를 개시하기 위해, 종료하기 위해, 또는 다르게는 제어하기 위해 또는 이들과 상호 작용하기 위해 사용될 수도 있다.
그러나, 상기 언급된 예시적인 NUI 시나리오는, 인공적인 제약 또는 추가적인 신호의 사용을, NUI 입력의 임의의 조합과 결합하는 것에 의해 더 보강될 수도 있다는 것이 이해되어야 한다. 이러한 인공적인 제약 또는 추가적인 신호는, 마우스, 키보드 및 리모콘과 같은 입력 디바이스(540)에 의해, 또는 다양한 원격 또는 유저 착용형 디바이스 예컨대 가속도계, 유저의 근육에 의해 생성되는 전기 신호를 나타내는 근육전기 신호(myoelectric signal)를 수신하기 위한 근전도검사(electromyography; EMG) 센서, 심박수 모니터, 유저의 발한(perspiration)을 측정하기 위한 갈바닉 피부 전도 센서(galvanic skin conduction sensor), 유저 뇌 활동 또는 전기장을 측정하기 위한 또는 다르게는 감지하기 위한 웨어러블 또는 원격 바이오센서, 유저 체온 변화 또는 차분을 측정하기 위한 웨어러블 또는 원격 바이오센서, 및 등등에 의해 부과되거나 또는 생성될 수도 있다. 이들 타입의 인공적인 제약 또는 추가적인 신호로부터 유도되는 임의의 이러한 정보는, 내츄럴 모션 컨트롤러의 하나 이상의 입력, 출력, 액션, 또는 기능적 피쳐를 개시하기 위해, 종료하기 위해, 또는 다르게는 제어하기 위해 또는 이들과 상호 작용하기 위해, 임의의 하나 이상의 NUI 입력과 결합될 수도 있다.
단순화된 컴퓨팅 디바이스(500)는 또한, 다른 옵션적인 컴포넌트 예컨대 하나 이상의 종래의 컴퓨터 출력 디바이스(550)(예를 들면, 디스플레이 디바이스(555), 오디오 출력 디바이스, 비디오 출력 디바이스, 유선 또는 무선 데이터 송신을 송신하기 위한 디바이스, 및 등등)를 포함할 수도 있다. 범용 컴퓨터용의 통상적인 통신 인터페이스(530), 입력 디바이스(540), 출력 디바이스(550), 및 스토리지 디바이스(560)는 기술 분야에서 숙련된 자에게 널리 공지되어 있으며, 본원에서 상세히 설명되지 않을 것이다는 것을 유의한다.
도 5에서 도시되는 단순화된 컴퓨팅 디바이스(500)는 또한 다양한 컴퓨터 판독가능 매체를 포함할 수도 있다. 컴퓨터 판독가능 매체는, 스토리지 디바이스(560)를 통해 컴퓨팅 디바이스(500)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있으며, 컴퓨터 판독가능 또는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한, 착탈식(570) 및/또는 비착탈식(580) 중 어느 하나인 휘발성 및 불휘발성 매체 둘 다를 포함한다.
컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함한다. 컴퓨터 저장 매체는, 유형의 컴퓨터 판독가능 또는 머신 판독가능 매체 또는 스토리지 디바이스 예컨대 디지털 다기능 디스크(digital versatile disk; DVD), 블루레이 디스크(Blu-ray discs; BD), 콤팩트 디스크(compact disc; CD), 플로피 디스크, 테이프 드라이브, 하드 드라이브, 광학 드라이브, 솔리드 스테이트 메모리 디바이스, 랜덤 액세스 메모리(random access memory; RAM), 리드 온리 메모리(read-only memory; ROM), 전기적으로 소거가능한 프로그래머블 리드 온리 메모리(electrically erasable programmable read-only memory; EEPROM), CD-ROM 또는 다른 광학 디스크 스토리지, 스마트 카드, 플래시 메모리(예를 들면, 카드, 스틱, 및 키 드라이브), 자기 카세트, 자기 테이프, 자기 디스크 스토리지, 자기 스트립, 또는 다른 자기 스토리지 디바이스를 가리킨다. 또한, 전파된 신호는 컴퓨터 판독가능 저장 매체의 범위 내에 포함되지 않는다.
컴퓨터 판독가능 또는 컴퓨터 실행가능 명령어, 데이터 구조, 프로그램 모듈, 및 등등과 같은 정보의 유지(retention)는 또한, (컴퓨터 저장 매체와는 대조적으로) 하나 이상의 변조된 데이터 신호 또는 반송파, 또는 다른 전달 메커니즘 또는 통신 프로토콜을 인코딩하는 다양한 상기 언급된 통신 매체 중 임의의 것을 사용하는 것에 의해 달성될 수 있고, 임의의 유선 또는 무선 정보 전달 메커니즘을 포함할 수 있다. 용어 "변조된 데이터 신호" 또는 "반송파"는, 정보를 신호에 인코딩하는 방식으로 자신의 특성 중 하나 이상이 설정되거나 변경된 신호를 일반적으로 가리킨다는 것을 유의한다. 예를 들면, 통신 매체는, 유선 매체 예컨대 하나 이상의 변조된 데이터 신호를 반송하는 유선 네트워크 또는 직결 접속(direct-wired connection), 및 무선 매체 예컨대 음향, 무선 주파수(radio frequency; RF), 적외선, 레이저, 및 하나 이상의 변조된 데이터 신호 또는 반송파를 송신하기 위한 다른 무선 매체를 포함할 수 있다.
또한, 본원에서 설명되는 다양한 내츄럴 모션 컨트롤러 구현예 중 일부 또는 전체를 구체화하는 소프트웨어, 프로그램, 및/또는, 컴퓨터 프로그램 제품, 또는 그 일부는, 컴퓨터 실행가능 명령어 또는 다른 데이터 구조의 형태로, 컴퓨터 판독가능 또는 머신 판독가능 매체 또는 스토리지 디바이스 및 통신 매체의 임의의 소망의 조합으로부터 저장, 수신, 송신 또는 판독될 수도 있다. 추가적으로, 청구된 주제는, 개시된 주제를 구현하도록 컴퓨터를 제어하기 위한 소프트웨어, 펌웨어(525), 하드웨어, 또는 이들의 임의의 조합을 생성하는 표준 프로그래밍 및/또는 엔지니어링 기술을 사용하여 방법, 장치 또는 제조 물품으로서 구현될 수도 있다. 본원에서 사용되는 바와 같은 용어 "제조 물품"은, 임의의 컴퓨터 판독가능 디바이스, 또는 매체로부터 액세스가능한 컴퓨터 프로그램을 포괄하도록 의도된다.
본원에서 설명되는 내츄럴 모션 컨트롤러 구현예는, 프로그램 모듈과 같은 컴퓨터 실행가능 명령어가 컴퓨팅 디바이스에 의해 실행되는 일반적인 맥락에서 더 설명될 수도 있다. 일반적으로, 프로그램 모듈은, 특정 태스크를 수행하거나 또는 특정한 추상 데이터 타입을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조, 및 등등을 포함한다. 내츄럴 모션 컨트롤러 구현예는 또한, 태스크가 하나 이상의 원격 프로세싱 디바이스에 의해 수행되는 분산형 컴퓨팅 환경에서, 또는 하나 이상의 통신 네트워크를 통해 연결되는 하나 이상의 디바이스의 클라우드 내에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은, 미디어 스토리지 디바이스를 포함하는 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치될 수도 있다. 추가적으로, 상기 언급된 명령어는, 프로세서를 포함할 수도 있는 또는 포함하지 않을 수도 있는 하드웨어 로직 회로로서 부분적으로 또는 전적으로 구현될 수도 있다.
대안적으로, 또는 추가적으로, 본원에서 설명되는 기능성은, 적어도 부분적으로, 하나 이상의 하드웨어 로직 컴포넌트에 의해 수행될 수 있다. 제한이 없는 예를 들면, 사용될 수 있는 하드웨어 로직 컴포넌트의 예시적인 타입은, 필드 프로그래머블 게이트 어레이(FPGA), 주문형 반도체(application-specific integrated circuit; ASIC), 애플리케이션 고유의 표준 제품(application-specific standard product; ASSP), 시스템 온칩 시스템(system-on-a-chip system; SOC), 복합 프로그래머블 로직 디바이스(complex programmable logic device; CPLD), 및 등등을 포함한다.
5.0 다른 구현예 :
다음의 문단은, 본 문헌에서 청구될 수도 있는 구현예의 다양한 예를 요약한다. 그러나, 하기에서 요약되는 구현예는, 내츄럴 모션 컨트롤러의 상세한 설명의 관점에서 청구될 수도 있는 주제를 제한하도록 의도되지 않는다는 것이 이해되어야 한다. 또한, 하기에서 요약되는 구현예 중 임의의 것 또는 전체는, 상세한 설명 전체에 걸쳐 설명되는 구현예 및 도면 중 하나 이상에서 예시되는 임의의 구현예, 및 하기에 설명되는 임의의 다른 구현예 및 예 중 일부 또는 전체와의 임의의 소망의 조합으로 청구될 수도 있다. 또한, 다음의 구현예 및 예는, 본 문헌 전체에 걸쳐 설명되는 상세한 설명 및 도면의 관점에서 이해되도록 의도된다는 것을 유의해야 한다.
다양한 구현예에서, 내츄럴 모션 컨트롤러는, 식별된 유저 신체 부위의 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하기 위한 수단, 프로세스 또는 기술에 의해 구현되고, 그에 의해 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시킨다.
제1 예로서, 다양한 구현예에서, 하나 이상의 별개의 관성 센서 세트 - 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스 중 별개의 하나에 커플링됨 - 로부터 수신되는 관성 센서 데이터의 조정가능한 수의 순차적인 기간을 사슬연결하는 것에 의해 복합 모션 인식 윈도우를 구성하기 위한 수단, 프로세스 또는 기술을 통해, 컴퓨터 구현 프로세스가 제공된다. 그 다음, 복합 모션 인식 윈도우는, 하나 이상의 머신 기반의 딥 러닝 프로세스에 의해 트레이닝되는 모션 인식 모델로 전달된다. 그 다음, 프로세스는, 하나 이상의 유저 신체 부위의 하나 이상의 미리 정의된 모션의 시퀀스를 식별하기 위해 복합 모션 인식 윈도우에 모션 인식 모델을 적용하는 것에 의해 계속된다. 그 다음, 프로세스는, 식별된 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하는 것에 의해 계속되고, 그에 의해, 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시킨다.
제2 예로서, 다양한 구현예에서, 제1 예는, 한 명 이상의 유저의 제어 디바이스로부터 수신되는 센서 데이터에 응답하여, 모션 인식 모델을 재트레이닝시키기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제3 예로서, 다양한 구현예에서, 제2 예는, 개별 유저의 유저 착용형 제어 디바이스와 관련되는 모션 인식 모델의 로컬 사본에 대해 유저 단위 기반으로 수행되는, 모션 인식 모델을 재트레이닝시키기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제4 예로서, 다양한 구현예에서, 제1 예, 제2 예, 및 제3 예 중 임의의 것은, 복수의 유저 착용형 제어 디바이스 중 적어도 하나를 손목 착용형 제어 디바이스로서 구현하기 위한 수단, 프로세스 또는 기술을 통해 더 수정되며, 하나 이상의 미리 정의된 모션의 시퀀스는 유저 손목의 트위스트를 포함한다.
제5 예로서, 다양한 구현예에서, 제4 예는, 유저 손목의 트위스트에 응답하여 통신 디바이스의 통신 세션의 실행을 트리거하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제6 예로서, 다양한 구현예에서, 제1예, 제2 예, 및 제3 예 중 임의의 것은, 두 명 이상의 상이한 유저 사이의 하나 이상의 유저 신체 부위 사이의 식별된 동기화에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제7 예로서, 다양한 구현예에서, 제6 예는, 두 명 이상의 상이한 유저의 복합 모션 인식 윈도우와 관련되는 타임 스탬프를 비교하는 것에 의해 동기화를 식별하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제8 예로서, 다양한 구현예에서, 제6 예 및 제7 예 중 임의의 것은, 두 명 이상의 유저의 유저 착용형 제어 디바이스가, 다른 유저 중 적어도 한 유저의 유저 착용형 제어 디바이스 중 적어도 하나의 최소 임계 거리 이내에 있다는 결정에 응답하여, 동기화를 식별하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제9 예로서, 다양한 구현예에서, 제6 예 및 제7 예 중 임의의 것은, 식별된 동기화에 응답하여, 두 명 이상의 유저와 관련되는 컴퓨팅 디바이스 사이에서 데이터의 자동 교환을 트리거하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제10 예로서, 다양한 구현예에서, 제6 예 및 제7 예 중 임의의 것은, 식별된 동기화에 응답하여, 두 명 이상의 유저와 관련되는 컴퓨팅 디바이스 사이에서 유저 연락처 정보의 자동 교환을 트리거하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제11 예로서, 다양한 구현예에서, 시스템이, 범용 컴퓨팅 디바이스 및 컴퓨팅 디바이스에 의해 실행가능한 프로그램 모듈을 포함하는 컴퓨터 프로그램을 적용하기 위한 수단, 프로세스 또는 기술을 통해 제공되는데, 컴퓨팅 디바이스는, 하나 이상의 별개의 관성 센서 세트 - 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스 중 별개의 하나에 커플링됨 - 로부터 수신되는 가속도 및 각속도 데이터의 하나 이상의 순차적인 기간으로부터 특징을 추출하도록 컴퓨터 프로그램의 프로그램 모듈에 의해 지시받는다. 그 다음, 이 시스템은 추출된 특징을 확률론적 머신 학습 모션 시퀀스 모델로 전달한다. 그 다음, 이 시스템은, 하나 이상의 유저 신체 부위의 하나 이상의 대응하는 모션의 시퀀스를 식별하기 위해, 머신 학습 모션 시퀀스 모델을 추출된 특징에 적용한다. 그 다음, 이 시스템은, 식별된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하고, 그에 의해, 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시킨다.
제12 예로서, 다양한 구현예에서, 제11 예는, 복수의 유저 착용형 제어 디바이스 중 적어도 하나를 손목 착용형 제어 디바이스로서 구현하기 위한 수단, 프로세스 또는 기술을 통해 더 수정되는데, 식별된 모션의 시퀀스는, 통신 디바이스의 통신 세션의 실행을 트리거하는 유저 손목의 트위스트를 포함한다.
제13 예로서, 다양한 구현예에서, 제11 예 및 제12 예 중 임의의 것은, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하기 위한 두 명 이상의 상이한 유저 사이의 하나 이상의 유저 신체 부위의 모션 사이의 동기화를 식별하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제14 예로서, 다양한 구현예에서, 제13 예는, 두 명 이상의 상이한 유저의 유저 착용형 제어 디바이스가 다른 유저 중 적어도 한 명의 유저 착용형 제어 디바이스 중 적어도 하나의 최소 임계 거리 이내에 있다는 것을 결정하는 것, 두 명 이상의 상이한 유저와 관련되는 가속도 및 각속도 데이터로부터 추출되는 특징과 관련되는 타임 스탬프를 비교하는 것에 의해 동기화를 식별하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제15 예로서, 다양한 구현예에서, 제13 예 및 제14 예 중 임의의 것은, 두 명 이상의 상이한 유저와 관련되는 컴퓨팅 디바이스 사이에서 데이터의 자동 교환을 트리거하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제16 예로서, 다양한 구현예에서, 유저 모션을 식별하기 위한 컴퓨터 실행가능 명령어 - 상기 명령어는 컴퓨팅 디바이스로 하여금 시스템을 포함하는 방법을 실행하게 함 - 가 저장된 컴퓨터 판독가능 매체는, 하나 이상의 별개의 관성 센서 세트 - 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스 중 별개의 하나에 커플링됨 - 로부터 수신되는 관성 센서 데이터의 조정가능한 수의 순차적인 기간을 사슬연결하는 것에 의해 복합 모션 인식 윈도우를 구성하기 위한 수단, 프로세스 또는 기술을 통해 제공된다. 그 다음, 복합 모션 인식 윈도우는, 하나 이상의 머신 기반의 딥 러닝 프로세스에 의해 트레이닝되는 모션 인식 모델로 전달된다. 그 다음, 모션 인식 모델은, 하나 이상의 유저 신체 부위의 하나 이상의 미리 정의된 모션의 시퀀스를 식별하기 위해, 복합 모션 인식 윈도우에 적용된다. 그 다음, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행은, 식별된 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 트리거되고, 그에 의해, 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시킨다.
제17 예로서, 다양한 구현예에서, 제16 예는, 한 명 이상의 유저의 제어 디바이스로부터 수신되는 센서 데이터에 응답하여, 모션 인식 모델을 주기적으로 재트레이닝시키기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제18 예로서, 다양한 구현예에서, 제16 예 및 제17 예 중 임의의 것은, 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하기 위한 두 명 이상의 상이한 유저 사이의 하나 이상의 유저 신체 부위의 모션 사이의 동기화를 식별하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제19 예에서, 다양한 구현예에서, 제18 예는, 두 명 이상의 유저의 유저 착용형 제어 디바이스가 서로의 최소 임계 거리 이내에 있다는 것이 결정되는 경우, 두 명 이상의 상이한 유저의 복합 모션 인식 윈도우와 관련되는 타임 스탬프를 비교하는 것에 의해 동기화를 식별하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
제20 예로서, 다양한 구현예에서, 제18 예 및 제19 예 중 임의의 것은, 식별된 동기화에 응답하여, 두 명 이상의 유저와 관련되는 컴퓨팅 디바이스 사이에서 유저 연락처 정보의 자동 교환을 트리거하기 위한 수단, 프로세스 또는 기술을 통해 더 수정된다.
내츄럴 모션 컨트롤러의 상기 설명은 예시 및 설명의 목적을 위해 제시되었다. 총망라하도록 또는 청구된 주제를 개시되는 정확한 형태로 제한하도록 의도되지는 않는다. 상기 교시의 측면에서, 많은 수정예 및 변경예가 가능하다. 또한, 상기 언급된 대안적인 구현예 중 임의의 것 또는 전체는 내츄럴 모션 컨트롤러의 추가적인 하이브리드 구현예를 형성하기 위해 소망되는 임의의 조합으로 사용될 수도 있다는 것을 유의해야 한다. 내츄럴 모션 컨트롤러의 범위는, 이 상세한 설명이 아니라, 오히려 본원에 첨부되는 청구범위에 의해 제한되어야 한다는 것이 의도된다. 비록 본 주제가 구조적 특징 및/또는 방법론적 액트에 고유한 언어로 설명되었지만, 첨부된 청구범위에서 정의되는 주제는 상기에서 설명된 특정 특징 또는 액트에 반드시 제한되는 것은 아니다는 것이 이해되어야 한다. 오히려, 상기에서 설명되는 특정 특징 및 액트는, 청구범위 및 다른 등가적인 특징을 구현하는 예시적인 형태로서 개시되며 액트는 청구범위의 범위 내에 있도록 의도된다.
상기에서 설명된 것은 예시적인 구현예를 포함한다. 청구된 주제를 설명하는 목적을 위해 컴포넌트 또는 방법론의 모든 구상가능한 조합을 설명하는 것은 물론 불가능하지만, 기술 분야에서 숙련된 자는, 많은 추가적인 조합 및 순열이 가능하다는 것을 인식할 수도 있다. 따라서, 청구된 주제는, 상기에서 설명되는 내츄럴 모션 컨트롤러의 상세한 설명의 취지 및 범위 내에 있는 모든 이러한 변경예, 수정예, 및 변형예를 포괄하도록 의도된다.
상기에서 설명되는 컴포넌트, 디바이스, 회로, 시스템, 및 등등에 수행되는 다양한 기능과 관련하여, 이러한 컴포넌트를 설명하기 위해 사용되는 용어("수단"에 대한 언급을 포함함)는, 비록, 청구된 주제의 본원에서 예시되는 예시적인 양태의 기능을 수행하는 개시된 구조체와 구조적으로 등가가 아닐지라도, 설명된 컴포넌트의 특정한 기능을 수행하는 임의의 컴포넌트(예를 들면, 기능적 등가물)에, 그렇지 않다고 나타내어지지 않는 한, 대응하도록 의도된다. 이와 관련하여, 상기 구현예는 시스템뿐만 아니라, 청구된 주제의 다양한 방법의 액트 및/또는 이벤트를 수행하기 위한 컴퓨터 실행가능 명령어를 구비하는 컴퓨터 판독가능 저장 매체를 포함한다는 것이 또한 인식될 것이다.
상기 구현예를 실현하는 다수의 방식(예컨대 적절한 애플리케이션 프로그래밍 인터페이스(application programming interface; API), 툴킷, 드라이버 코드, 운영 체제, 컨트롤, 독립형 또는 다운로드 가능한 소프트웨어 오브젝트, 또는 등등)이 존재하는데, 그 다수의 방식은 애플리케이션 및 서비스가 본원에서 설명되는 구현예를 사용하는 것을 가능하게 한다. 청구된 주제는, API(또는 다른 소프트웨어 오브젝트)의 관점으로부터, 뿐만 아니라 본원에서 설명되는 구현예에 따라 동작하는 소프트웨어 또는 하드웨어 오브젝트의 관점으로부터 이 사용을 고려한다. 따라서, 본원에서 설명되는 다양한 구현예는, 전적으로 하드웨어인, 또는 부분적으로 하드웨어이고 부분적으로 소프트웨어인, 또는 전적으로 소프트웨어인 양태를 가질 수도 있다.
상기 언급된 시스템은 여러 컴포넌트 사이의 상호 작용과 관련하여 설명되었다. 이러한 시스템 및 컴포넌트는, 이들 컴포넌트 또는 명시된 서브컴포넌트, 명시된 컴포넌트 또는 서브컴포넌트의 일부, 및/또는 추가적인 컴포넌트를 포함할 수 있고, 상기의 다양한 순열 및 조합에 따라 포함할 수 있다. 서브컴포넌트는 또한, 부모 컴포넌트(예를 들면, 계층적 컴포넌트) 내에 포함되는 것 대신, 다른 컴포넌트에 통신 가능하게 커플링되는 컴포넌트로서 구현될 수 있다.
추가적으로, 하나 이상의 컴포넌트는 집성 기능성(aggregate functionality)을 제공하는 단일의 컴포넌트로 결합될 수도 있거나 또는 여러 개의 별개의 서브컴포넌트로 분할될 수도 있고, 임의의 하나 이상의 중간 레이어, 예컨대 관리 레이어가, 통합된 기능성을 제공하기 위해, 이러한 서브컴포넌트에 통신 가능하게 커플링되도록 제공될 수도 있다는 것을 유의한다. 본원에서 설명되는 임의의 컴포넌트는 또한, 본원에서 명시적으로 설명되지는 않지만 기술 분야의 숙련된 자가 일반적으로 알고 있는 하나 이상의 다른 컴포넌트와 상호 작용할 수 있다.
Claims (15)
- 컴퓨터 구현 프로세스에 있어서,
하나 이상의 별개의 관성 센서 세트 - 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스(user worn control device) 중 별개의 하나에 커플링됨 - 로부터 수신되는 관성 센서 데이터의 조정가능한 수의 순차적인 기간을 사슬연결하는(concatenating) 것에 의해 복합 모션 인식 윈도우를 구성하는 것;
상기 복합 모션 인식 윈도우를, 하나 이상의 머신 기반의 딥 러닝 프로세스에 의해 트레이닝되는 모션 인식 모델로 전달하는 것;
하나 이상의 유저 신체 부위의 하나 이상의 미리 정의된 모션의 시퀀스를 식별하기 위해, 상기 모션 인식 모델을 상기 복합 모션 인식 윈도우에 적용하는 것; 및
상기 식별된 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하는 것에 의해, 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시키는 것을 포함하는, 컴퓨터 구현 프로세스. - 제1항에 있어서,
한 명 이상의 유저의 상기 제어 디바이스로부터 수신되는 센서 데이터에 응답하여 상기 모션 인식 모델을 주기적으로 재트레이닝시키는(retraining) 것을 더 포함하는, 컴퓨터 구현 프로세스. - 제2항에 있어서,
상기 모션 인식 모델을 재트레이닝시키는 것은, 개별 유저의 상기 유저 착용형 제어 디바이스와 관련되는 상기 모션 인식 모델의 로컬 사본에 대해, 유저 단위 기반으로 수행되는 것인, 컴퓨터 구현 프로세스. - 제1항 또는 제2항 또는 제3항에 있어서,
상기 복수의 유저 착용형 제어 디바이스 중 적어도 하나는 손목 착용형 제어 디바이스(wrist worn control device)이고, 상기 하나 이상의 미리 정의된 모션의 시퀀스는 상기 유저의 손목의 트위스트(twist)를 포함하는 것인, 컴퓨터 구현 프로세스. - 제4항에 있어서,
상기 유저의 손목의 트위스트는 통신 디바이스의 통신 세션의 실행을 트리거하는 것인, 컴퓨터 구현 프로세스. - 제1항 또는 제2항 또는 제3항 또는 제4항 또는 제5항에 있어서,
두 명 이상의 상이한 유저 사이의 상기 하나 이상의 유저 신체 부위의 모션 사이의 동기화의 식별은 상기 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하는 것인, 컴퓨터 구현 프로세스. - 제6항에 있어서,
상기 동기화는 상기 두 명 이상의 상이한 유저의 상기 복합 모션 인식 윈도우와 관련되는 타임 스탬프를 비교하는 것에 의해 식별되는 것인, 컴퓨터 구현 프로세스. - 제6항 또는 제7항에 있어서,
상기 동기화는, 상기 두 명 이상의 유저의 상기 유저 착용형 제어 디바이스가 다른 유저 중 적어도 한 명의 유저 착용형 제어 디바이스 중 적어도 하나의 최소 임계 거리 이내에 있다는 결정에 후속하여 식별되는 것인, 컴퓨터 구현 프로세스. - 시스템으로서,
범용 컴퓨팅 디바이스; 및
상기 컴퓨팅 디바이스에 의해 실행가능한 프로그램 모듈을 포함하는 컴퓨터 프로그램을 포함하고,
상기 컴퓨팅 디바이스는 상기 컴퓨터 프로그램의 상기 프로그램 모듈에 의해:
하나 이상의 별개의 관성 센서 세트 - 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스 중 별개의 하나에 커플링됨 - 로부터 수신되는 가속도 및 각속도 데이터의 하나 이상의 순차적인 기간으로부터 특징을 추출하도록;
상기 추출된 특징을 확률론적 머신 학습 모션 시퀀스 모델(probabilistic machine-learned motion sequence model)로 전달하도록;
하나 이상의 유저 신체 부위의 하나 이상의 대응하는 모션의 시퀀스를 식별하기 위해, 상기 머신 학습 모션 시퀀스 모델을 상기 추출된 특징에 적용하도록;
상기 식별된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하는 것에 의해, 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시키도록
지시받는, 시스템. - 유저 모션을 식별하기 위한 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체로서,
상기 명령어는 컴퓨팅 디바이스로 하여금:
하나 이상의 별개의 관성 센서 세트 - 별개의 관성 센서 세트 각각은 복수의 유저 착용형 제어 디바이스 중 별개의 하나에 커플링됨 - 로부터 수신되는 관성 센서 데이터의 조정가능한 수의 순차적인 기간을 사슬연결하는 것에 의해 복합 모션 인식 윈도우를 구성하는 것;
상기 복합 모션 인식 윈도우를, 하나 이상의 머신 기반의 딥 러닝 프로세스에 의해 트레이닝되는 모션 인식 모델로 전달하는 것;
하나 이상의 유저 신체 부위의 하나 이상의 미리 정의된 모션의 시퀀스를 식별하기 위해, 상기 모션 인식 모델을 상기 복합 모션 인식 윈도우에 적용하는 것; 및
상기 식별된 하나 이상의 미리 정의된 모션의 시퀀스에 응답하여 하나 이상의 애플리케이션 커맨드의 시퀀스의 실행을 트리거하는 것에 의해, 유저가 신체 부위 모션을 수행함으로써 컴퓨팅 디바이스와 상호 작용하는 것을 가능하게 하는 것에 의해 유저 상호 작용 성능 및 효율성을 증가시키는 것을 포함하는 방법을 수행하게 하는, 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체. - 제10항에 있어서,
두 명 이상의 상이한 유저 사이의 하나 이상의 유저 신체 부위의 상기 모션 사이의 동기화의 식별은 하나 이상의 애플리케이션 커맨드의 상기 시퀀스의 상기 실행을 트리거하는, 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체. - 제11항에 있어서,
상기 동기화는, 상기 두 명 이상의 유저의 상기 유저 착용형 제어 디바이스가 서로의 최소 임계 거리 이내에 있다는 것이 결정되는 경우에 상기 두 명 이상의 상이한 유저의 상기 복합 모션 인식 윈도우와 관련되는 타임 스탬프를 비교하는 것에 의해 식별되는, 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체. - 제11항 또는 제12항에 있어서,
하나 이상의 애플리케이션 커맨드의 상기 시퀀스의 상기 트리거된 실행은, 상기 두 명 이상의 유저와 관련되는 컴퓨팅 디바이스 사이에서 유저 연락처 정보의 자동 교환을 야기하는, 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 매체. - 제9항에 있어서,
두 명 이상의 상이한 유저 사이의 하나 이상의 유저 신체 부위의 상기 모션 사이의 동기화의 식별은 하나 이상의 애플리케이션 커맨드의 상기 시퀀스의 상기 실행을 트리거하는, 시스템. - 제14항에 있어서,
상기 동기화는:
상기 두 명 이상의 유저의 상기 유저 착용형 제어 디바이스가 다른 유저 중 적어도 한 명의 상기 유저 착용형 제어 디바이스 중 적어도 하나의 최소 임계 거리 이내에 있다는 것을 결정하는 것; 및
상기 두 명 이상의 상이한 유저와 관련되는 상기 가속도 및 각속도 데이터로부터 추출되는 상기 특징과 관련되는 타임 스탬프를 비교하는 것에 의해 식별되는, 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/502,549 | 2014-09-30 | ||
US14/502,549 US20160091965A1 (en) | 2014-09-30 | 2014-09-30 | Natural motion-based control via wearable and mobile devices |
PCT/US2015/052542 WO2016053822A1 (en) | 2014-09-30 | 2015-09-28 | Natural motion-based control via wearable and mobile devices |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170066539A true KR20170066539A (ko) | 2017-06-14 |
Family
ID=54325696
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177011940A KR20170066539A (ko) | 2014-09-30 | 2015-09-28 | 웨어러블 및 모바일 디바이스를 통한 내츄럴 모션 기반의 제어 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20160091965A1 (ko) |
EP (1) | EP3201729A1 (ko) |
JP (1) | JP2017537370A (ko) |
KR (1) | KR20170066539A (ko) |
CN (1) | CN106922185A (ko) |
WO (1) | WO2016053822A1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101887314B1 (ko) * | 2017-12-14 | 2018-08-09 | 세종대학교산학협력단 | 무인 항공기의 원격 제어 장치 및 방법과, 무인 항공기에 부착되는 움직임 제어 장치 |
US11209908B2 (en) | 2017-01-12 | 2021-12-28 | Sony Corporation | Information processing apparatus and information processing method |
KR20220060876A (ko) * | 2020-11-05 | 2022-05-12 | 가톨릭관동대학교산학협력단 | 관성 정보 기반 낙하 시 충격 가속도 크기 추정 장치, 그 추정 방법 및 이를 포함하는 충격 보호 시스템 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9891718B2 (en) * | 2015-04-22 | 2018-02-13 | Medibotics Llc | Devices for measuring finger motion and recognizing hand gestures |
US20160131677A1 (en) * | 2014-11-10 | 2016-05-12 | International Business Machines Corporation | Motion pattern based event detection using a wearable device |
US10019625B2 (en) * | 2015-07-23 | 2018-07-10 | Orcam Technologies Ltd. | Wearable camera for reporting the time based on wrist-related trigger |
JP2017175439A (ja) * | 2016-03-24 | 2017-09-28 | 京セラ株式会社 | 電子機器 |
US10390082B2 (en) * | 2016-04-01 | 2019-08-20 | Oath Inc. | Computerized system and method for automatically detecting and rendering highlights from streaming videos |
CN106231498A (zh) * | 2016-09-27 | 2016-12-14 | 广东小天才科技有限公司 | 一种麦克风音频采集效果的调整方法及装置 |
DE112016007259T5 (de) | 2016-10-24 | 2019-06-06 | Ford Motor Company | Gestenbasierte benutzerschnittstelle |
JP6836447B2 (ja) * | 2017-03-30 | 2021-03-03 | アズビル株式会社 | 作業支援方法及び作業支援装置 |
CN111183613A (zh) * | 2017-07-05 | 2020-05-19 | 迈恩特公司 | 用于感测生物数据的方法及其在与联网设备的双向通信中的用途 |
DE112018002565B4 (de) * | 2017-08-10 | 2021-07-01 | Robert Bosch Gmbh | System und Verfahren zum direkten Anlernen eines Roboters |
US10484530B2 (en) * | 2017-11-07 | 2019-11-19 | Google Llc | Sensor based component activation |
US10194019B1 (en) * | 2017-12-01 | 2019-01-29 | Qualcomm Incorporated | Methods and systems for initiating a phone call from a wireless communication device |
CN208314198U (zh) * | 2018-02-08 | 2019-01-01 | 深圳迈睿智能科技有限公司 | 波束发射器 |
US11755686B2 (en) | 2018-02-19 | 2023-09-12 | Braun Gmbh | System for classifying the usage of a handheld consumer device |
GB2573091B (en) * | 2018-02-19 | 2020-11-18 | Valkyrie Industries Ltd | Haptic feedback for virtual reality |
CN108762479A (zh) * | 2018-04-02 | 2018-11-06 | 珠海格力电器股份有限公司 | 一种进行控制的方法与设备 |
FR3081107B1 (fr) * | 2018-05-17 | 2021-08-20 | Commissariat Energie Atomique | Procede de reconnaissance automatique d'un geste predetermine d'un utilisateur |
CN109101101B (zh) * | 2018-08-30 | 2020-12-04 | Oppo广东移动通信有限公司 | 穿戴式设备的控制方法、装置、存储介质及穿戴式设备 |
CN110890930B (zh) | 2018-09-10 | 2021-06-01 | 华为技术有限公司 | 一种信道预测方法、相关设备及存储介质 |
US11507822B2 (en) * | 2018-10-31 | 2022-11-22 | General Electric Company | Scalable artificial intelligence model generation systems and methods for healthcare |
JP7271909B2 (ja) * | 2018-11-09 | 2023-05-12 | セイコーエプソン株式会社 | 表示装置、及び、表示装置の制御方法 |
KR20200080047A (ko) * | 2018-12-26 | 2020-07-06 | 삼성전자주식회사 | 진정 사용자의 손을 식별하는 방법 및 이를 위한 웨어러블 기기 |
WO2020142110A1 (en) * | 2018-12-31 | 2020-07-09 | Intel Corporation | Securing systems employing artificial intelligence |
WO2020191004A1 (en) * | 2019-03-18 | 2020-09-24 | Georgia Tech Research Corporation | Tracking and alert method and system for worker productivity and safety |
JP6623366B1 (ja) | 2019-03-27 | 2019-12-25 | 株式会社MARUI−PlugIn | 経路認識方法、経路認識装置、経路認識プログラム、及び経路認識プログラム記録媒体 |
CN113767404A (zh) * | 2019-03-29 | 2021-12-07 | 圣戈班磨料磨具有限公司 | 高效研磨解决方案 |
EP3948491A1 (en) * | 2019-04-05 | 2022-02-09 | Google LLC | Distributed machine-learned models for inference generation using wearable devices |
CN110286718B (zh) * | 2019-06-25 | 2022-09-20 | 赢富仪器科技(上海)有限公司 | 可穿戴设备及其佩戴生理信息的利用方法和计算机可读存储介质 |
WO2021000056A1 (en) * | 2019-07-03 | 2021-01-07 | Brink Bionics Inc. | Myoelectric wearable system for finger movement recognition |
WO2021021997A1 (en) * | 2019-07-30 | 2021-02-04 | Google Llc | Detection and classification of unknown motions in wearable devices |
EP3792817A1 (en) * | 2019-09-10 | 2021-03-17 | XRSpace CO., LTD. | Method and system for human behavior identification |
US11175729B2 (en) * | 2019-09-19 | 2021-11-16 | Finch Technologies Ltd. | Orientation determination based on both images and inertial measurement units |
US11157079B2 (en) * | 2019-10-31 | 2021-10-26 | Sony Interactive Entertainment Inc. | Multi-player calibration of various stand-alone capture systems |
CN111291804A (zh) * | 2020-01-22 | 2020-06-16 | 杭州电子科技大学 | 基于注意力机制的多传感器时间序列分析模型 |
CN111694435B (zh) * | 2020-06-16 | 2024-02-02 | 石亦磊 | 一种基于惯性传感单元的可穿戴触摸检测方法 |
CN112040060A (zh) * | 2020-08-28 | 2020-12-04 | 北京纽曼凤凰科技有限公司 | 一种具有多种通信方式的界面的设计方法 |
US11395238B1 (en) | 2021-04-07 | 2022-07-19 | Qualcomm Incorporated | Enhanced radio wave exposure mitigation using a combination of proximity and inertial sensor data |
US20240212672A1 (en) * | 2021-04-26 | 2024-06-27 | The Trustees Of Dartmouth College | Low power analog circuitry for artificial neural networks |
CN113312994A (zh) * | 2021-05-18 | 2021-08-27 | 中国科学院深圳先进技术研究院 | 一种手势分类识别方法及其应用 |
CN116058814A (zh) * | 2021-11-01 | 2023-05-05 | 北京荣耀终端有限公司 | 心率检测方法及电子设备 |
CN115562499B (zh) * | 2022-11-16 | 2023-03-17 | 深圳市未来感知科技有限公司 | 基于智能指环的精准交互控制方法、系统及存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060028429A1 (en) * | 2004-08-09 | 2006-02-09 | International Business Machines Corporation | Controlling devices' behaviors via changes in their relative locations and positions |
TWI348639B (en) * | 2005-12-16 | 2011-09-11 | Ind Tech Res Inst | Motion recognition system and method for controlling electronic device |
US20090265671A1 (en) * | 2008-04-21 | 2009-10-22 | Invensense | Mobile devices with motion gesture recognition |
US9317110B2 (en) * | 2007-05-29 | 2016-04-19 | Cfph, Llc | Game with hand motion control |
US8219028B1 (en) * | 2008-03-31 | 2012-07-10 | Google Inc. | Passing information between mobile devices |
FR2950713A1 (fr) * | 2009-09-29 | 2011-04-01 | Movea Sa | Systeme et procede de reconnaissance de gestes |
US9235241B2 (en) * | 2012-07-29 | 2016-01-12 | Qualcomm Incorporated | Anatomical gestures detection system using radio signals |
CN103793042B (zh) * | 2012-10-30 | 2019-11-19 | 程杭冲 | 一种人体运动信息交互及显示的系统和方法 |
US9442570B2 (en) * | 2013-03-13 | 2016-09-13 | Google Technology Holdings LLC | Method and system for gesture recognition |
US9244888B2 (en) * | 2013-03-15 | 2016-01-26 | Microsoft Technology Licensing, Llc | Inferring placement of mobile electronic devices |
CN103217895B (zh) * | 2013-04-07 | 2016-01-20 | 上海与德通讯技术有限公司 | 支持手势功能的电子腕表和电子通讯设备 |
US11243611B2 (en) * | 2013-08-07 | 2022-02-08 | Nike, Inc. | Gesture recognition |
US9513703B2 (en) * | 2013-12-27 | 2016-12-06 | Intel Corporation | Gesture-based waking and control system for wearable devices |
-
2014
- 2014-09-30 US US14/502,549 patent/US20160091965A1/en not_active Abandoned
-
2015
- 2015-09-28 KR KR1020177011940A patent/KR20170066539A/ko unknown
- 2015-09-28 CN CN201580052576.5A patent/CN106922185A/zh not_active Withdrawn
- 2015-09-28 JP JP2017516329A patent/JP2017537370A/ja active Pending
- 2015-09-28 EP EP15781219.9A patent/EP3201729A1/en not_active Withdrawn
- 2015-09-28 WO PCT/US2015/052542 patent/WO2016053822A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11209908B2 (en) | 2017-01-12 | 2021-12-28 | Sony Corporation | Information processing apparatus and information processing method |
KR101887314B1 (ko) * | 2017-12-14 | 2018-08-09 | 세종대학교산학협력단 | 무인 항공기의 원격 제어 장치 및 방법과, 무인 항공기에 부착되는 움직임 제어 장치 |
KR20220060876A (ko) * | 2020-11-05 | 2022-05-12 | 가톨릭관동대학교산학협력단 | 관성 정보 기반 낙하 시 충격 가속도 크기 추정 장치, 그 추정 방법 및 이를 포함하는 충격 보호 시스템 |
Also Published As
Publication number | Publication date |
---|---|
US20160091965A1 (en) | 2016-03-31 |
EP3201729A1 (en) | 2017-08-09 |
JP2017537370A (ja) | 2017-12-14 |
WO2016053822A1 (en) | 2016-04-07 |
CN106922185A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20170066539A (ko) | 웨어러블 및 모바일 디바이스를 통한 내츄럴 모션 기반의 제어 | |
Laput et al. | Sensing fine-grained hand activity with smartwatches | |
Garcia-Ceja et al. | Multi-view stacking for activity recognition with sound and accelerometer data | |
Xu et al. | InnoHAR: A deep neural network for complex human activity recognition | |
CN107205655B (zh) | 协调关系可穿戴物 | |
EP3059699B1 (en) | Neural network training method and recognition apparatus | |
CN105981083B (zh) | 智能可穿戴设备和用于优化输出的方法 | |
US9763049B2 (en) | Contextual information usage in systems that include accessory devices | |
Junker et al. | Gesture spotting with body-worn inertial sensors to detect user activities | |
CN105302541A (zh) | 配置可穿戴式装置 | |
JP2022500729A (ja) | 拡張現実システムの神経筋制御 | |
CN107683439A (zh) | 获得以及在电子手表上显示时间相关数据 | |
CN108886532A (zh) | 用于操作个人代理的装置和方法 | |
CN108780389A (zh) | 用于计算设备的图像检索 | |
KR20170029398A (ko) | 어플리케이션 제공 방법 및 이를 위한 전자 기기 | |
WO2015119637A1 (en) | Motion gesture input detected using optical sensors | |
WO2017165224A1 (en) | Systems and methods for wearable technology with creative expression | |
Cola et al. | Real-time identification using gait pattern analysis on a standalone wearable accelerometer | |
KR102573023B1 (ko) | 수면 유도 장치 | |
Bouton-Bessac et al. | Your Day in Your Pocket: Complex Activity Recognition from Smartphone Accelerometers | |
CN104407704A (zh) | 主导肢体确定方法和设备 | |
Li et al. | A single smartwatch-based segmentation approach in human activity recognition | |
Faye et al. | A two-level approach to characterizing human activities from wearable sensor data | |
EP4290339A1 (en) | Method for controlling wearable device, and wearable device | |
Mekruksavanich et al. | Deep Learning Approaches for HAR of Daily Living Activities Using IMU Sensors in Smart Glasses |