CN110456902A - Track user movements to control skeletal models in computer systems - Google Patents

Track user movements to control skeletal models in computer systems Download PDF

Info

Publication number
CN110456902A
CN110456902A CN201811147317.2A CN201811147317A CN110456902A CN 110456902 A CN110456902 A CN 110456902A CN 201811147317 A CN201811147317 A CN 201811147317A CN 110456902 A CN110456902 A CN 110456902A
Authority
CN
China
Prior art keywords
orientation
neural network
artificial neural
user
subset
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
CN201811147317.2A
Other languages
Chinese (zh)
Inventor
维克托·弗拉基米罗维奇·埃里温特塞夫
亚历山大·谢尔盖耶维奇·洛巴诺夫
阿列克谢·伊万诺维奇·卡尔塔绍夫
丹尼尔·奥尔古维奇·冈加洛夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Finch Technologies Ltd
Original Assignee
Finch Technologies Ltd
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
Priority claimed from US15/973,137 external-priority patent/US11474593B2/en
Priority claimed from US15/996,389 external-priority patent/US10416755B1/en
Application filed by Finch Technologies Ltd filed Critical Finch Technologies Ltd
Publication of CN110456902A publication Critical patent/CN110456902A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/005Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 with correlation of navigation data from several sources, e.g. map or contour matching
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/04Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by terrestrial means
    • G01C21/08Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by terrestrial means involving use of the magnetic field of the earth
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
    • G01C21/16Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
    • G01C21/165Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/20Three-dimensional [3D] animation
    • G06T13/40Three-dimensional [3D] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Measuring devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor or mobility of a limb
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Measuring devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor or mobility of a limb
    • A61B5/1121Determining geometric values, e.g. centre of rotation or angular range of movement
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Measuring devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor or mobility of a limb
    • A61B5/1126Measuring movement of the entire body or parts thereof, e.g. head or hand tremor or mobility of a limb using a particular sensing technique
    • A61B5/1128Measuring movement of the entire body or parts thereof, e.g. head or hand tremor or mobility of a limb using a particular sensing technique using image analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/01Indexing scheme relating to G06F3/01
    • G06F2203/012Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Geology (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)

Abstract

一种具有传感器模块和计算装置的系统。每个传感器模块具有被附接到用户的部位的惯性测量单元。人工神经网络被用于根据基于惯性的模块的测量结果来对用户的部位的取向做出预测。例如,人工神经网络可以被训练为基于使用惯性测量单元测量出的取向来预测使用光学跟踪系统测量出的取向和/或基于运动链中其他刚性部位的取向测量结果来预测运动链中的一些刚性部位的取向测量结果。例如,传感器模块可以包括共享共同传感器模块的不同子集;并且人工神经网络可以被用于对从不同子集针对共同传感器模块单独做出的不同预测进行组合。

A system having a sensor module and a computing device. Each sensor module has an inertial measurement unit attached to the user's part. An artificial neural network is used to make predictions about the orientation of the user's parts based on the measurements of the inertial-based modules. For example, an artificial neural network can be trained to predict orientations measured using an optical tracking system based on orientations measured using an inertial measurement unit and/or to predict some stiffness in the kinematic chain based on orientation measurements of other rigid parts of the kinematic chain Orientation measurements of the site. For example, the sensor modules may include different subsets that share a common sensor module; and the artificial neural network may be used to combine different predictions made individually for the common sensor module from the different subsets.

Description

跟踪用户移动以控制计算机系统中的骨架模型Track user movements to control skeletal models in computer systems

相关申请related application

本申请要求于2018年5月7日提交的且题为“Tracking User Movements toControl a Skeleton Model in a Computer System”的美国专利申请序列号15/973,137以及于2018年6月1日提交的且题为“Motion Predictions of Overlapping KinematicChains of a Skeleton Model used to Control a Computer System”的美国专利申请序列号15/996,389的优先权,所述申请的全部公开内容在此通过引用并入本文。This application claims U.S. Patent Application Serial No. 15/973,137, filed May 7, 2018, and entitled "Tracking User Movements to Control a Skeleton Model in a Computer System" and filed June 1, 2018, and entitled Priority to US Patent Application Serial No. 15/996,389 for "Motion Predictions of Overlapping Kinematic Chains of a Skeleton Model used to Control a Computer System," the entire disclosure of which is hereby incorporated by reference.

本申请涉及以下申请:于2018年1月11日提交的且题为“Correction ofAccumulated Errors in Inertial Measurement Units Attached to a User”的美国专利申请序列号15/868,745;于2018年1月8日提交的且题为“Tracking Torso Leaning toGenerate Inputs for Computer Systems”的美国专利申请序列号15/864,860;于2017年12月19日提交的且题为“Calibration of Inertial Measurement Units Attached toArms of a User and to a Head Mounted Device”的美国专利申请序列号15/847,669;于2017年11月20日提交的且题为“Calibration of Inertial Measurement Units Attachedto Arms of a User to Generate Inputs for Computer Systems”的美国专利申请序列号15/817,646;于2017年11月15日提交的且题为“Tracking Torso Orientation toGenerate Inputs for Computer Systems”的美国专利申请序列号15/813,813;于2017年10月24日提交的且题为“Tracking Finger Movements to Generate Inputs forComputer Systems”的美国专利申请序列号15/792,255;于2017年10月18日提交的且题为“Tracking Arm Movements to Generate Inputs for Computer Systems”的美国专利申请序列号15/787,555;以及于2017年4月20日提交的且题为“Devices for ControllingComputers based on Motions and Positions of Hands”的美国专利申请序列号15/492,915。上述相关申请的全部公开内容在此通过引入并入本文。This application is related to the following applications: U.S. Patent Application Serial No. 15/868,745, filed January 11, 2018, and entitled "Correction of Accumulated Errors in Inertial Measurement Units Attached to a User"; U.S. Patent Application Serial No. 15/864,860, entitled "Tracking Torso Leaning to Generate Inputs for Computer Systems"; filed December 19, 2017, and entitled "Calibration of Inertial Measurement Units Attached to Arms of a User and to a Head Mounted Device" U.S. Patent Application Serial No. 15/847,669; U.S. Patent Application Serial No. 15 filed November 20, 2017 and entitled "Calibration of Inertial Measurement Units Attached to Arms of a User to Generate Inputs for Computer Systems" /817,646; U.S. Patent Application Serial No. 15/813,813, filed November 15, 2017, and entitled "Tracking Torso Orientation to Generate Inputs for Computer Systems"; filed October 24, 2017, and entitled "Tracking Finger U.S. Patent Application Serial No. 15/792,255, filed October 18, 2017, and entitled "Tracking Arm Movements to Generate Inputs for Computer Systems"; and U.S. Patent Application Serial No. 15/492,915, filed April 20, 2017, and entitled "Devices for Controlling Computers based on Motions and Positions of Hands." The entire disclosures of the aforementioned related applications are hereby incorporated by reference.

技术领域technical field

本公开的至少一部分总体上涉及计算机输入装置,并且更具体地但不限于用于使用诸如移动电话、智能手表、类似移动装置的计算装置和/或其他装置来实施的虚拟现实和/或增强/混合现实应用的输入装置。At least a portion of the present disclosure relates generally to computer input devices, and more particularly but not limited to virtual reality and/or augmented/ Input device for mixed reality applications.

背景技术Background technique

美国专利申请公开号2014/0028547公开了一种用户控制装置,其具有组合的惯性传感器以用于检测装置的移动,以便在真实或虚拟的三维空间内进行指向和选择。US Patent Application Publication No. 2014/0028547 discloses a user control device with combined inertial sensors for detecting movement of the device for pointing and selection in real or virtual three-dimensional space.

美国专利申请公开号2015/0277559公开了一种安装在指环上的触摸屏,其具有无线地发送根据触摸屏上的事件生成的命令的无线收发器。US Patent Application Publication No. 2015/0277559 discloses a ring mounted touch screen with a wireless transceiver that wirelessly transmits commands generated from events on the touch screen.

美国专利申请公开号2015/0358543公开了一种运动捕捉装置,其具有多个惯性测量单元,以用于测量用户的手指和手掌的运动参数。US Patent Application Publication No. 2015/0358543 discloses a motion capture device having multiple inertial measurement units for measuring motion parameters of a user's fingers and palm.

美国专利申请公开号2007/0050597公开了一种具有加速度传感器和陀螺仪传感器的游戏控制器。美国专利申请号D772,986公开了用于无线游戏控制器的装饰性设计。US Patent Application Publication No. 2007/0050597 discloses a game controller with an acceleration sensor and a gyroscope sensor. US Patent Application No. D772,986 discloses a decorative design for a wireless game controller.

中国专利申请公开号103226398公开了使用微惯性传感器网络技术的数据手套,其中每个微惯性传感器是航姿参考系统,具有被封装在电路板中的三轴微机电系统(MEMS)微陀螺仪、三轴微加速度传感器和三轴地磁传感器。美国专利申请公开号2014/0313022和美国专利申请公开号2012/0025945公开了其他数据手套。Chinese Patent Application Publication No. 103226398 discloses a data glove using micro-inertial sensor network technology, wherein each micro-inertial sensor is an attitude reference system with a three-axis micro-electromechanical system (MEMS) micro-gyroscope packaged in a circuit board, Three-axis micro-acceleration sensor and three-axis geomagnetic sensor. Other data gloves are disclosed in US Patent Application Publication No. 2014/0313022 and US Patent Application Publication No. 2012/0025945.

美国专利申请公开号2016/0085310公开了根据图像数据跟踪手或身体姿势的技术,其中来自候选姿势池的最佳候选姿势被选择作为当前跟踪姿势。US Patent Application Publication No. 2016/0085310 discloses techniques for tracking hand or body poses from image data, where the best candidate pose from a pool of candidate poses is selected as the current tracked pose.

美国专利申请公开号2017/0344829公开了一种使用递归神经网络(RNN)的动作检测方案,其中将关节位置应用于递归神经网络(RNN)以确定表示视频帧中描绘的实体的动作的动作标签。US Patent Application Publication No. 2017/0344829 discloses an action detection scheme using a recurrent neural network (RNN), where joint positions are applied to the recurrent neural network (RNN) to determine action labels representing the actions of entities depicted in video frames .

以上讨论的专利文献的公开内容在此通过引入并入本文。The disclosures of the patent documents discussed above are hereby incorporated by reference.

附图说明Description of drawings

实施例通过示例而非限制示出在附图的图中,其中相同的附图标记表示相同的元件。Embodiments are shown by way of example and not limitation in the figures of the drawings, wherein like reference numerals refer to like elements.

图1示出了根据一个实施例的用于跟踪用户移动的系统。Figure 1 illustrates a system for tracking user movement according to one embodiment.

图2示出了根据一个实施例的用于控制计算机操作的系统。Figure 2 illustrates a system for controlling computer operations, according to one embodiment.

图3示出了根据一个实施例的可以通过跟踪用户移动来控制的骨架模型。Figure 3 illustrates a skeletal model that can be controlled by tracking user movements, according to one embodiment.

图4和图5示出了根据一个实施例的训练递归神经网络(RNN)并且使用RNN基于另一跟踪系统的移动测量结果来预测一个跟踪系统的移动测量结果的方法。4 and 5 illustrate a method of training a recurrent neural network (RNN) and using the RNN to predict movement measurements of one tracking system based on movement measurements of another tracking system, according to one embodiment.

图6和图7示出了根据一个实施例的训练递归神经网络(RNN)并且使用RNN基于其余跟踪装置来预测省略的跟踪装置的移动测量结果的方法。6 and 7 illustrate a method of training a recurrent neural network (RNN) and using the RNN to predict movement measurements for omitted tracking devices based on the remaining tracking devices, according to one embodiment.

图8和图9示出了根据一个实施例的使用人工神经网络(ANN)来跟踪用户移动的方法。8 and 9 illustrate a method of tracking user movement using an artificial neural network (ANN) according to one embodiment.

图10示出了根据一个实施例的使用双向长短期记忆(BLSTM)网络组合来自不同人工神经网络的结果。Figure 10 shows the results from different artificial neural networks combined using a Bidirectional Long Short-Term Memory (BLSTM) network, according to one embodiment.

图11示出了根据一个实施例的用于对来自针对具有重叠部位的运动链的不同人工神经网络的结果进行组合的另一种技术。FIG. 11 illustrates another technique for combining results from different artificial neural networks for kinematic chains with overlapping sites, according to one embodiment.

图12示出了根据一个实施例的用于训练针对具有重叠部位的多个运动链的多个人工神经网络的方法。Figure 12 illustrates a method for training multiple artificial neural networks for multiple kinematic chains with overlapping parts, according to one embodiment.

图13示出了根据一个实施例的用于使用单独的人工神经网络来预测为模块的多个运动链的重叠部位的运动测量结果的方法。Figure 13 illustrates a method for predicting motion measurements for overlapping parts of multiple kinematic chains as modules using separate artificial neural networks, according to one embodiment.

图14示出了根据一个实施例的用于使用具有针对多个运动链的多个人工神经网络的骨架模型的方法。Figure 14 illustrates a method for using a skeletal model with multiple artificial neural networks for multiple kinematic chains, according to one embodiment.

具体实施方式Detailed ways

以下描述和附图是说明性的,并且不应该被解释为限制性的。描述了许多具体细节以提供透彻理解。然而,在某些情况下,没有描述众所周知的或常规的细节以避免模糊该描述。对本公开中的一个或一实施例的引用不一定是对同一实施例的引用;并且,这样的引用意味着至少一个。The following description and drawings are illustrative and should not be construed as limiting. Numerous specific details are described to provide a thorough understanding. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure are not necessarily references to the same embodiment; and, such references mean at least one.

本文公开的至少一些实施例允许使用微机电系统(MEMS)惯性测量单元(IMU)对减少数量的用户的部位的跟踪和使用人工神经网络以控制计算机系统中的具有多于减少数量的经由关节连接的部位的骨架模型,其中每个部位可以被认为是刚性的并且通过关节处的旋转而相对于其他部位是可移动的。At least some embodiments disclosed herein allow tracking of a reduced number of user's parts using microelectromechanical systems (MEMS) inertial measurement units (IMUs) and use of artificial neural networks to control computer systems with more than a reduced number of articulated A skeletal model of the parts in , where each part can be considered rigid and movable relative to the other parts through rotations at the joints.

运动链是由关节连接的刚性部位的组件。用户的骨架模型或用户的部位可以被构造为以对应于用户的骨骼或骨骼组(其可以被认为是刚性部位)的方式由关节连接的刚性部位集合。A kinematic chain is an assembly of rigid parts connected by joints. The user's skeletal model or user's parts may be constructed as a collection of rigid parts connected by articulations in a manner corresponding to the user's bones or groups of bones (which may be considered rigid parts).

例如,头、躯干、左上臂和右上臂、左前臂和右前臂、手掌、手指指骨、拇指的掌骨、大腿、小腿和脚可以被认为是经由各种关节(诸如颈、肩、肘部、腕和指关节)连接的刚性部位。For example, the head, torso, upper left and right arms, left and right forearms, palms, finger phalanges, metacarpal bones of the thumb, thighs, calves, and feet can be considered and knuckles) the rigid part of the connection.

可以基于用户部位的身体部位和对应关节的刚性模型来构造用户的骨架模型;并且刚性部位的相对位置和/或取向共同表示用户和/或骨架模型的姿势。用户的骨架模型可以被用于控制对用户的化身的呈现、用于识别用户的手势输入和/或用于制作对用户的虚拟现实或增强现实呈现。A skeletal model of the user may be constructed based on rigid models of body parts and corresponding joints of the user's parts; and the relative positions and/or orientations of the rigid parts collectively represent the pose of the user and/or the skeletal model. The skeletal model of the user may be used to control the presentation of the user's avatar, to recognize the user's gesture input, and/or to author a virtual reality or augmented reality presentation of the user.

图1示出了根据一个实施例的用于跟踪用户移动的系统。Figure 1 illustrates a system for tracking user movement according to one embodiment.

图1示出了用户的各个部位,诸如用户的躯干(101)、用户的头(107)、用户的上臂(103和105)、用户的前臂(112和114)以及用户的手(106和108)。1 shows various parts of the user, such as the user's torso (101), the user's head (107), the user's upper arms (103 and 105), the user's forearms (112 and 114), and the user's hands (106 and 108). ).

在图1中所示应用中,用户的手(106和108)被认为是可绕用户的手腕移动的刚性部位。在其他应用中,还可以跟踪用户的手掌和手指骨骼相对于手指关节的移动(例如,以使用手的手指和手的手掌之间的相对位置来确定该用户做出的手势)。In the application shown in Figure 1, the user's hands (106 and 108) are considered rigid parts that can move around the user's wrist. In other applications, the movement of the user's palm and finger bones relative to the finger joints can also be tracked (eg, to use the relative positions between the fingers of the hand and the palm of the hand to determine gestures made by the user).

在图1中,用户佩戴若干传感器装置(111、113、115、117和119),其跟踪在应用中被认为或被识别为刚性的用户的部位的取向。In Figure 1, the user wears several sensor devices (111, 113, 115, 117 and 119) that track the orientation of parts of the user that are considered or identified as rigid in the application.

在图1中所示应用中,用户的刚性部位相对于用户的躯干(101)和相对于彼此是可移动的。刚性部位的示例包括头(107)、上臂(103和105)、前臂(112和114)和手(106和108)。诸如颈、肩、肘和/或腕的关节连接用户的刚性部位以形成一个或多个运动链。可以在计算装置(141)中对运动链进行建模以控制应用。In the application shown in Figure 1, the rigid parts of the user are movable relative to the user's torso (101) and relative to each other. Examples of rigid parts include the head (107), upper arms (103 and 105), forearms (112 and 114), and hands (106 and 108). Joints such as neck, shoulder, elbow and/or wrist connect rigid parts of the user to form one or more kinematic chains. The kinematic chain can be modeled in the computing device (141) to control the application.

为了跟踪运动链中刚性部位的相对位置/取向,可以将跟踪装置附接到运动链中的每个单个刚性部位以测量其取向。In order to track the relative position/orientation of the rigid parts in the kinematic chain, a tracking device can be attached to each individual rigid part in the kinematic chain to measure its orientation.

一般而言,可以使用本领域中已知的许多系统中的一个来跟踪参考系统(100)中的刚性部位的位置和/或取向。系统中的一些可以使用一个或多个相机来拍摄使用光学标记物标记的刚性部位的图像,并分析该图像以计算该部位的位置和/或取向。系统中的一些可以基于从被附接到刚性部位的跟踪装置发送出或在被附接到刚性部位的跟踪装置处接收到的信号(诸如射频信号、红外信号、超声波信号)来跟踪该刚性部位。信号可以对应于在跟踪装置中接收到的信号和/或从跟踪装置发射的信号。系统中的一些可以使用惯性测量单元(IMU)来对跟踪装置的位置和/或取向进行跟踪。In general, one of a number of systems known in the art can be used to track the position and/or orientation of rigid features in the reference system (100). Some of the systems may use one or more cameras to take images of a rigid site marked with optical markers and analyze the images to calculate the position and/or orientation of the site. Some of the systems may track a rigid site based on signals (such as radio frequency signals, infrared signals, ultrasonic signals) sent from or received at a tracking device attached to the rigid site . The signal may correspond to a signal received in the tracking device and/or a signal transmitted from the tracking device. Some of the systems may use an inertial measurement unit (IMU) to track the position and/or orientation of the tracking device.

在图1中,传感器装置(111、113、115、117和119)被用于跟踪一个或多个运动链中的刚性部位中的一些(例如,107、103、105、106、108),但是在来自一个或多个运动链中的其他刚性部位(101、112、114)中省略了传感器装置,以减少所使用的传感器装置的数量和/或因佩戴减少数量的传感器装置而改善用户体验。In FIG. 1 , sensor devices (111, 113, 115, 117, and 119) are used to track some of the rigid parts (e.g., 107, 103, 105, 106, 108) in one or more kinematic chains, but Sensor devices are omitted from other rigid locations (101, 112, 114) in the kinematic chain(s) to reduce the number of sensor devices used and/or to improve user experience by wearing a reduced number of sensor devices.

计算装置(141)具有预测模型(141),其被训练为基于传感器装置(111、113、115、117和119)的测量结果来生成对用户的部位(101、112、114、107、103、105、106和/或108)的预测的测量结果。The computing device (141) has a predictive model (141) that is trained to generate an estimate of the user's location (101, 112, 114, 107, 103, 105, 106 and/or 108) of the predicted measurements.

例如,预测模型(141)可以使用计算装置(141)中的人工神经网络来实施,以基于具有附接的传感器装置(111、113、115、117和119)的刚性部位(107、103、105、106、108)的取向的测量结果来预测已经省略了传感器装置的刚性部位(101、112、114)的取向的测量结果。For example, the predictive model (141) can be implemented using an artificial neural network in the computing device (141) to based on rigid parts (107, 103, 105) with attached sensor devices (111, 113, 115, 117 and 119) , 106, 108) to predict the orientation measurements of the rigid parts (101, 112, 114) of the sensor device have been omitted.

此外,人工神经网络可以被训练为基于使用不同技术(例如,IMU)测量取向的所附接的传感器装置(111、113、115、117和119)的测量结果来预测将由另一系统(例如,光学跟踪系统)测量的刚性部位(107、103、105、106、108)的取向的测量结果。Furthermore, the artificial neural network can be trained to predict what will be detected by another system (e.g. Optical tracking system) measurement results of the orientation of the rigid parts (107, 103, 105, 106, 108).

传感器装置(111、113、115、117、119)将其移动测量结果传送给计算装置(141),该计算装置(141)通过将从所附接的传感器装置(111、113、115、117和119)获得的测量结果作为输入而应用于以如下面进一步讨论的方式训练的人工神经网络来计算或预测刚性部位(107、103、105、106、108、101、112、114)的取向。The sensor devices (111, 113, 115, 117, 119) communicate their movement measurements to the computing device (141), which computes data from the attached sensor devices (111, 113, 115, 117 and 119) The obtained measurements are applied as input to an artificial neural network trained as discussed further below to calculate or predict the orientation of the rigid parts (107, 103, 105, 106, 108, 101, 112, 114).

在一些实施方式中,传感器装置(111、113、115、117和119)中的每个以独立于其他传感器装置的操作的方式将其测量结果直接传送到计算装置(141)。In some embodiments, each of the sensor devices (111, 113, 115, 117, and 119) communicates its measurements directly to the computing device (141) in a manner independent of the operation of the other sensor devices.

可替选的,传感器装置(111、113、115、117和119)中的一个可以用作基本单元,其从一个或多个其他传感器装置接收测量结果并将捆绑和/或组合的测量结果发送到计算装置(141)。在一些情况下,人工神经网络被实施在基本单元中并被用于生成被传送到计算装置(141)的预测的测量结果。Alternatively, one of the sensor devices (111, 113, 115, 117, and 119) may serve as a base unit that receives measurements from one or more other sensor devices and sends bundled and/or combined measurements to the computing device (141). In some cases, an artificial neural network is implemented in the base unit and used to generate predicted measurements that are communicated to the computing device (141).

优选地,经由个人区域无线网络(例如,蓝牙连接)或局域无线网络(例如,Wi-Fi连接)进行的无线连接被用于促进从传感器装置(111、113、115、117和119)到计算装置(141)的通信。Preferably, a wireless connection via a personal area wireless network (e.g., a Bluetooth connection) or a local area wireless network (e.g., a Wi-Fi connection) is used to facilitate communication from the sensor devices (111, 113, 115, 117, and 119) to Communication of a computing device (141).

可替选地,有线连接可以被用于促进传感器装置(111、113、115、117和119)中的一些之间和/或与计算装置(141)的通信。Alternatively, wired connections may be used to facilitate communication between some of the sensor devices (111, 113, 115, 117 and 119) and/or with the computing device (141).

例如,被附接到或保持在用户的对应的手(106或108)中的手模块(117或119)可以接收对应的臂模块(115或113)的运动测量结果,并将对应的手(106或108)和对应的上臂(105或103)的运动测量结果发送到计算装置(141)。For example, a hand module (117 or 119) attached to or held in a user's corresponding hand (106 or 108) may receive motion measurements of a corresponding arm module (115 or 113) and send the corresponding hand ( 106 or 108) and corresponding upper arm (105 or 103) motion measurements are sent to the computing device (141).

手(106)、前臂(114)和上臂(105)可以被认为是运动链,针对其人工神经网络可以被训练为基于来自被附接到手(106)和上臂(105)的传感器装置(117和115)(而前臂(114)上没有对应的装置)的传感器输入来预测由光学跟踪系统生成的取向测量结果。The hand (106), forearm (114) and upper arm (105) can be considered a kinematic chain for which the artificial neural network can be trained based on input from sensor devices (117 and 105) attached to the hand (106) and upper arm (105). 115) (without a corresponding device on the forearm (114)) to predict the orientation measurements generated by the optical tracking system.

可选地或组合地,手模块(例如,117)可以将其测量结果与对应的臂模块(115)的测量结果进行组合,以按于2017年10月18日提交的且题为“Tracking Arm Movements toGenerate Inputs for Computer Systems”的美国专利申请序列号15/787,555中公开的方式来计算被连接在手(106)和上臂(105)之间的前臂的取向,所述申请的全部公开内容在此通过引用并入本文。Alternatively or in combination, the hand module (e.g., 117) can combine its measurements with those of the corresponding arm Movements to Generate Inputs for Computer Systems" US Patent Application Serial No. 15/787,555", the entire disclosure of which is hereby Incorporated herein by reference.

例如,手模块(117和119)和臂模块(115和113)可以分别经由于2017年4月20日提交的且题为“Devices for Controlling Computers based on Motions and Positionsof Hands”的美国专利公开号5,199,480中讨论的基本单元(或游戏控制器)和臂/肩模块来实施,所述申请的全部公开内容在此通过引用并入本文。For example, the hand modules (117 and 119) and the arm modules (115 and 113) can be obtained via U.S. Patent Publication No. 5,199,480, filed April 20, 2017 and entitled "Devices for Controlling Computers based on Motions and Positions of Hands," respectively. The base unit (or game controller) and arm/shoulder modules discussed in , the entire disclosure of which is hereby incorporated by reference.

在一些实施方式中,头模块(111)被配置为基本单元,其接收来自手模块(117和119)和臂模块(115和113)的运动测量结果并将测量结果数据进行捆绑以便发送到计算装置(141)。在一些情况下,计算装置(141)被实施为头模块(111)的部分。头模块(111)还可以使用针对对应的运动链而被训练过的人工神经网络来根据臂模块(115和113)的取向和/或头模块(111)的取向确定出躯干(101)的取向,所述对应的运动链包括上臂(103和105)、躯干(101)和/或头(107)。In some embodiments, the head module (111) is configured as a base unit that receives motion measurements from the hand modules (117 and 119) and arm modules (115 and 113) and bundles the measurement data for sending to the computing device (141). In some cases, computing device (141) is implemented as part of head module (111). The head module (111) may also use an artificial neural network trained for the corresponding kinematic chain to determine the orientation of the torso (101) from the orientation of the arm modules (115 and 113) and/or the orientation of the head module (111) , the corresponding kinematic chain includes upper arms (103 and 105), torso (101) and/or head (107).

为了确定躯干(101)的取向,在图1中所示系统中,手模块(117和119)是可选的。In order to determine the orientation of the torso (101), the hand modules (117 and 119) are optional in the system shown in Figure 1 .

此外,在一些情况下,头模块(111)不被用于跟踪用户的躯干(101)的取向。Furthermore, in some cases, the head module (111) is not used to track the orientation of the user's torso (101).

典型地,传感器装置(111、113、115、117和119)的测量结果被校准以与共同参考系统(诸如坐标系(100))对准。Typically, the measurements of the sensor devices (111, 113, 115, 117 and 119) are calibrated to align with a common reference system, such as the coordinate system (100).

在校准之后,用户的手、臂(105、103)、头(107)和躯干(101)可相对于彼此和相对于坐标系(100)移动。传感器装置(111、113、115、117和119)的测量结果提供了用户的手(106和108)、上臂(105、103)和头(107)相对于坐标系(100)的取向。计算装置(141)使用预测模型(116)根据上臂(105、103)的当前取向、用户的头(107)的当前取向、和/或用户的手(106和108)的当前取向以及其取向历史来计算、估计或预测躯干(101)和/或前臂(112和114)的当前取向。After calibration, the user's hands, arms (105, 103), head (107) and torso (101) are movable relative to each other and relative to the coordinate system (100). The measurements of the sensor devices (111, 113, 115, 117 and 119) provide the orientation of the user's hands (106 and 108), upper arms (105, 103) and head (107) relative to the coordinate system (100). The computing device (141) uses the predictive model (116) based on the current orientation of the upper arms (105, 103), the current orientation of the user's head (107), and/or the current orientation of the user's hands (106 and 108) and their orientation history. to calculate, estimate or predict the current orientation of the torso (101) and/or forearms (112 and 114).

可选地或组合地,计算装置(141)还可以例如使用于2017年10月18日提交的且题为“Tracking Arm Movements to Generate Inputs for Computer Systems”的美国专利申请序列号15/787,555中公开的技术根据手(106和108)和上臂(105和103)的取向来计算前臂的取向,所述申请的全部公开内容在此通过引用并入本文。Alternatively or in combination, the computing device (141) can also be used, for example, as disclosed in U.S. Patent Application Serial No. 15/787,555 filed on October 18, 2017 and entitled "Tracking Arm Movements to Generate Inputs for Computer Systems" The technique for calculating the orientation of the forearm from the orientation of the hands (106 and 108) and upper arms (105 and 103), the entire disclosure of which application is hereby incorporated by reference.

本文公开的至少一些实施例允许在不需要额外传感器模块被附接到躯干(101)和前臂(112和114)的情况下,根据上臂(105和103)的取向、头(107)的取向和/或手(106和108)的取向来确定或估计躯干(101)和/或前臂(112和114)的取向。At least some embodiments disclosed herein allow, without the need for additional sensor modules to be attached to the torso (101) and forearms (112 and 114), based on the orientation of the upper arms (105 and 103), the orientation of the head (107) and and/or the orientation of the hands (106 and 108) to determine or estimate the orientation of the torso (101) and/or forearms (112 and 114).

图2示出了根据一个实施例的用于控制计算机操作的系统。例如,可以按图1中所示方式经由将臂模块(115和113)分别附接到上臂(105和103)、将头模块(111)附接到头(107)和/或手模块(图117和119)来实施图2的系统。Figure 2 illustrates a system for controlling computer operations, according to one embodiment. For example, the arm modules (115 and 113) may be attached to the upper arms (105 and 103), respectively, the head module (111) to the head (107) and/or the hand module (Fig. 117) in the manner shown in FIG. and 119) to implement the system of FIG. 2 .

在图2中,头模块(111)和臂模块(113)具有微机电系统(MEMS)惯性测量单元(IMU)(121和131),其测量运动参数并确定头(107)和上臂(103)的取向。In Figure 2, the head module (111) and arm module (113) have microelectromechanical systems (MEMS) inertial measurement units (IMUs) (121 and 131) that measure motion parameters and determine the head (107) and upper arm (103) orientation.

类似地,手模块(117和119)也可以具有IMU。在一些应用中,手模块(117和119)测量手(106和108)的取向,并且不单独跟踪手指的移动。在其他应用中,手模块(117和119)具有单独的IMU,以用于手(106和108)的手掌的取向以及手(106和108)上的至少一些手指的至少一些指骨的取向的测量。可以在于2017年10月24日提交的且题为“Tracking FingerMovements to Generate Inputs for Computer Systems”的美国专利序列号15/792,255中找到手模块的示例,所述申请的全部公开内容在此通过引用并入本文。Similarly, the hand modules (117 and 119) may also have an IMU. In some applications, the hand modules (117 and 119) measure the orientation of the hands (106 and 108) and do not separately track the movement of the fingers. In other applications, the hand modules (117 and 119) have separate IMUs for measurements of the orientation of the palm of the hand (106 and 108) and the orientation of at least some of the phalanges of at least some of the fingers on the hand (106 and 108) . An example of a hand module can be found in U.S. Patent Serial No. 15/792,255, filed October 24, 2017, and entitled "Tracking FingerMovements to Generate Inputs for Computer Systems," the entire disclosure of which is incorporated herein by reference. into this article.

IMU(131和121)中的每个具有传感器组件集合,其能够确定相应的IMU沿多个轴的移动、位置和/或取向。该组件的示例是:MEMS加速度计,其测量加速度的投影(物体的真实加速度与重力加速度之间的差异);MEMS陀螺仪,其测量角速度;以及磁力计,其测量空间中的某一点处的磁场的大小和方向。在一些实施例中,IMU使用三轴和两轴(例如,没有磁力计)中的传感器的组合。Each of the IMUs (131 and 121) has a set of sensor assemblies capable of determining the movement, position and/or orientation of the respective IMU along multiple axes. Examples of this component are: MEMS accelerometers, which measure the projection of acceleration (the difference between an object's true acceleration and the acceleration due to gravity); MEMS gyroscopes, which measure angular velocity; and magnetometers, which measure The magnitude and direction of the magnetic field. In some embodiments, the IMU uses a combination of sensors in three and two axes (eg, no magnetometer).

计算装置(141)具有预测模型(116)和运动处理器(145)。来自头模块(111)、臂模块(例如,113和115)和/或手模块(例如,117和119)的IMU(例如,131、121)的测量结果被用在在预测模块(116)中,以生成没有附接的传感器模块的部位中的至少一些(诸如躯干(101)和前臂(112和114))的预测的测量结果。该预测的测量结果和/或IMU(例如,131、121)的测量结果被用在运动处理器(145)中。The computing device (141) has a predictive model (116) and a motion processor (145). Measurements from the IMUs (eg, 131, 121) of the head module (111), arm modules (eg, 113 and 115) and/or hand modules (eg, 117 and 119) are used in the prediction module (116) , to generate predicted measurements of at least some of the parts without attached sensor modules, such as the torso (101) and forearms (112 and 114). The predicted measurements and/or measurements of the IMU (eg, 131, 121) are used in the motion processor (145).

运动处理器(145)具有用户的骨架模型(143)(例如,图3所示)。运动处理器(145)根据用户的对应部位的移动/取向来控制骨架模型(143)的部位的移动。例如,由手模块(117和119)、臂模块(113和115)、头模块(111)传感器模块的IMU测量出的和/或由预测模块(116)基于IMU测量结果预测出的手(106和108)、前臂(112和114)、上臂(103和105)、躯干(101)、头(107)的取向被用于设置骨架模型(143)的对应部位的取向。The motion processor (145) has a skeletal model (143) of the user (eg, as shown in Figure 3). The motion processor (145) controls the movement of the parts of the skeletal model (143) according to the movement/orientation of the corresponding parts of the user. For example, hand (106) as measured by the IMUs of the hand modules (117 and 119), arm modules (113 and 115), head module (111) sensor modules and/or predicted by the prediction module (116) based on IMU measurements. and 108), forearms (112 and 114), upper arms (103 and 105), torso (101), head (107) are used to set the orientation of corresponding parts of the skeleton model (143).

由于躯干(101)没有单独附接的传感器模块,所以使用预测模型(116)利用来自包括躯干(101)的运动链上的传感器模块的传感器测量结果来预测躯干(101)的移动/取向。例如,预测模型(116)可以用包括头(107)、躯干(101)和上臂(103和105)的运动链的运动模式来训练,并且可以被用于基于头(107)、躯干(101)和上臂(103和105)的运动历史以及头(107)和上臂(103和105)的当前取向来预测躯干(101)的取向。Since the torso (101) has no separately attached sensor modules, the movement/orientation of the torso (101) is predicted using a predictive model (116) utilizing sensor measurements from sensor modules on the kinematic chain including the torso (101). For example, the predictive model (116) can be trained with motion patterns comprising a kinematic chain of the head (107), torso (101) and upper arms (103 and 105), and can be used for head (107), torso (101) The orientation of the torso (101) is predicted using the movement history of the upper arms (103 and 105) and the current orientation of the head (107) and upper arms (103 and 105).

类似地,由于前臂(112或114)没有单独附接的传感器模块,所以使用预测模型(116)利用来自包括前臂(112或114)的运动链上的传感器模块的传感器测量结果来预测前臂(112或114)的移动/取向。例如,预测模型(116)可以用包括手(106)、前臂(114)和上臂(105)的运动链的运动模式来训练,并且可以被用于基于手(106)、前臂(114)、上臂(105)的运动历史以及手(106)和上臂(105)的当前取向来预测前臂(114)的取向。Similarly, since the forearm (112 or 114) does not have a separately attached sensor module, the predictive model (116) is used to predict the forearm (112 or 114) movement/orientation. For example, the predictive model (116) can be trained with motion patterns including a kinematic chain of the hand (106), forearm (114), and upper arm (105), and can be used to (105) motion history and the current orientation of the hand (106) and upper arm (105) to predict the orientation of the forearm (114).

骨架模型(143)由运动处理器(145)控制,以生成在计算装置(141)中运行的应用(147)的输入。例如,骨架模型(143)可以被用于对视频游戏、虚拟现实、混合现实或增强现实等中的计算装置(141)的用户的臂(112、114、105和103)、手(106和108)、头(107)和躯干(101)的化身/模型的移动进行控制。The skeletal model (143) is controlled by the motion processor (145) to generate input for an application (147) running in the computing device (141). For example, the skeletal model (143) may be used to model the arms (112, 114, 105, and 103), hands (106, and 108) of a user of the computing device (141) in video games, virtual reality, mixed reality, or augmented reality, etc. ), the movement of the avatar/model of the head (107) and torso (101) is controlled.

优选地,臂模块(113)具有用于处理来自臂模块(113)的IMU(131)的传感器信号的微控制器(139)和用于将臂模块(113)的运动/取向参数发送到计算装置(141)的通信模块(133)。类似地,头模块(111)具有用于处理来自头模块(111)的IMU(121)的传感器信号的微控制器(129)和用于将头模块(111)的运动/取向参数发送到计算装置(141)的通信模块(123)。Preferably, the arm module (113) has a microcontroller (139) for processing sensor signals from the IMU (131) of the arm module (113) and for sending the motion/orientation parameters of the arm module (113) to the computing A communication module (133) of a device (141). Similarly, the head module (111) has a microcontroller (129) for processing sensor signals from the IMU (121) of the head module (111) and for sending motion/orientation parameters of the head module (111) to the computing A communication module (123) of a device (141).

可选地,臂模块(113)和头模块(111)分别具有LED指示器(137和127),以指示模块(113和111)的操作状态。Optionally, the arm module (113) and head module (111) have LED indicators (137 and 127), respectively, to indicate the operating status of the modules (113 and 111).

可选地,臂模块(113)分别具有触觉致动器(138)以向用户提供触觉反馈。Optionally, the arm modules (113) each have a tactile actuator (138) to provide tactile feedback to the user.

可选地,头模块(111)具有显示装置(127)和/或按钮及其他输入装置(125),诸如触摸传感器、麦克风、相机等。Optionally, the head module (111) has a display device (127) and/or buttons and other input devices (125), such as touch sensors, microphones, cameras and the like.

在一些实施方式中,头模块(111)被类似于臂模块(113)并经由条带而被附接到头(107)或被固定到头戴式显示装置的模块代替。In some embodiments, the head module (111) is replaced by a module similar to the arm module (113) and attached to the head (107) via straps or fixed to the head mounted display device.

在一些应用中,手模块(119)可以用类似于臂模块(113)并经由手持或经由条带而被附接到手的模块来实施。可选地,手模块(119)具有按钮和其他输入装置,诸如触摸传感器、操纵杆等。In some applications, the hand module (119) may be implemented with a module similar to the arm module (113) and attached to the hand via the hand or via a strap. Optionally, the hand module (119) has buttons and other input devices, such as touch sensors, joysticks, and the like.

例如,在于2017年10月24日提交的且题为“Tracking Finger Movements toGenerate Inputs for Computer Systems”的美国专利申请序列号15/792,255、于2017年10月18日提交的且题为“Tracking Arm Movements to Generate Inputs for ComputerSystems”的美国专利申请序列号15/787,555、和/或于2017年4月20日提交的且题为“Devices for Controlling Computers based on Motions and Positions of Hands”的美国专利申请序列号15/492,915中公开的手持模块可以被用于实施手模块(117和119),所述申请的全部公开内容在此通过引用并入本文。For example, U.S. Patent Application Serial No. 15/792,255, filed October 24, 2017, and entitled "Tracking Finger Movements to Generate Inputs for Computer Systems," filed October 18, 2017, and entitled "Tracking Arm Movements to Generate Inputs for Computer Systems," and/or U.S. Patent Application Serial No. 15/787,555, filed April 20, 2017, and entitled "Devices for Controlling Computers based on Motions and Positions of Hands" The handheld modules disclosed in 15/492,915, the entire disclosure of which is hereby incorporated by reference, may be used to implement the hand modules (117 and 119).

当手模块(例如,117或119)跟踪手掌和所选择的指骨组的取向时,以预测模式(116)捕捉到的手的运动链的运动模式可以被用在预测模型(116)中以预测不佩戴传感器装置的其他指骨的取向。When the hand module (e.g., 117 or 119) tracks the orientation of the palm and the selected set of phalanges, the motion pattern of the kinematic chain of the hand captured in the prediction mode (116) can be used in the prediction model (116) to predict Orientation of other phalanges not wearing sensor device.

图2示出了作为示例的手模块(119)和臂模块(113)。一般而言,用于跟踪躯干(101)的取向的应用典型地使用如图1中所示的两个臂模块(113和115)。头模块(111)可以可选地被用于进一步改善对躯干(101)的取向的跟踪。手模块(117和119)还可以被用于提供额外的输入和/或用于预测/计算用户的前臂(112和114)的取向。Figure 2 shows a hand module (119) and an arm module (113) as an example. In general, applications for tracking the orientation of the torso (101) typically use two arm modules (113 and 115) as shown in Figure 1 . The head module (111) may optionally be used to further improve tracking of the orientation of the torso (101). The hand modules (117 and 119) may also be used to provide additional input and/or to predict/calculate the orientation of the user's forearms (112 and 114).

典型地,模块(例如,113或111)中的IMU(例如,131或121)从加速度计生成加速度数据,从陀螺测试仪/陀螺仪生成角速度数据,和/或从磁力计生成取向数据。微控制器(139和129)执行预处理任务,诸如对传感器数据进行滤波(例如,阻挡在特定应用中未使用的传感器)、应用校准数据(例如,以校正由计算装置(141)计算出的平均累积误差)、将三轴中的运动/位置/取向数据变换成四元数、以及将经预处理的结果封装成数据包(例如,使用数据压缩技术)以用于以降低的带宽要求和/或通信时间将其发送到主计算装置(141)。Typically, an IMU (eg, 131 or 121 ) in a module (eg, 113 or 111 ) generates acceleration data from an accelerometer, angular velocity data from a gyrometer/gyroscope, and/or orientation data from a magnetometer. The microcontrollers (139 and 129) perform pre-processing tasks such as filtering sensor data (e.g., to block sensors that are not used in a particular application), applying calibration data (e.g., to correct mean cumulative error), transforming motion/position/orientation data in three axes into quaternions, and packaging the preprocessed results into data packets (e.g., using data compression techniques) for use with reduced bandwidth requirements and / or communication time to send it to the host computing device (141).

微控制器(129、139)中的每个可以包括存储器,其存储控制相应微控制器(129或139)的操作的指令,以执行对来自IMU(121、131)的传感器数据的主要处理和控制通信模块(123、133)和/或其他组件(诸如LED指示器(137)、触觉致动器(138)、按钮和其他输入装置(125)、显示装置(127)等)的操作。Each of the microcontrollers (129, 139) may include memory that stores instructions that control the operation of the respective microcontroller (129 or 139) to perform the primary processing and processing of sensor data from the IMU (121, 131) Controlling the operation of communication modules (123, 133) and/or other components such as LED indicators (137), tactile actuators (138), buttons and other input devices (125), display devices (127), etc.

计算装置(141)可以包括一个或多个微处理器和存储用于实施运动处理器(145)的指令的存储器。运动处理器(145)还可以经由硬件(诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA))来实施。The computing device (141) may include one or more microprocessors and memory storing instructions for implementing the motion processor (145). The motion processor (145) may also be implemented via hardware such as an Application Specific Integrated Circuit (ASIC) or Field Programmable Gate Array (FPGA).

在一些情况下,模块(111、113、115、117和/或119)中的一个被配置为主要输入装置;并且其他模块被配置为次要输入装置,其经由主要输入装置而被连接到计算装置(141)。次要输入装置可以使用其连接的主要输入装置的微处理器来执行预处理任务中的一些任务。即使当模块不具有经由主要输入装置而被连接到计算装置的次要输入装置时,直接与计算装置(141)通信的模块也被认为是主要输入装置。In some cases, one of the modules (111, 113, 115, 117, and/or 119) is configured as a primary input device; and the other module is configured as a secondary input device that is connected to the computer via the primary input device device (141). The secondary input device may use the microprocessor of its connected primary input device to perform some of the pre-processing tasks. A module that communicates directly with the computing device (141) is considered a primary input device even when the module does not have a secondary input device connected to the computing device via the primary input device.

在某些情况下,计算装置(141)指定所请求的输入数据的类型以及输入数据的条件和/或频率;并且模块(111、113、115、117和/或119)在该条件下和/或根据由计算装置(141)指定的频率来报告所请求的输入数据。可以针对不同类型的输入数据(例如,加速度计测量结果、陀螺仪/陀螺测试仪测量结果、磁力计测量结果、位置、取向、速度)指定不同的报告频率。In some cases, the computing device (141) specifies the type of input data requested and the conditions and/or frequency of the input data; and the modules (111, 113, 115, 117, and/or 119) under the conditions and/or Or report the requested input data according to the frequency specified by the computing means (141). Different reporting frequencies may be specified for different types of input data (eg, accelerometer measurements, gyroscope/gyrometer measurements, magnetometer measurements, position, orientation, velocity).

一般而言,计算装置(141)可以是数据处理系统,诸如移动电话、台式计算机、膝上型计算机、头戴式虚拟现实显示器、个人媒体播放器、平板计算机等。In general, the computing device (141) may be a data processing system such as a mobile phone, desktop computer, laptop computer, head-mounted virtual reality display, personal media player, tablet computer, or the like.

图3示出了根据一个实施例的可以通过跟踪用户移动来控制的骨架模型。例如,图3的骨架模型可以被用在图2的运动处理器(145)中。Figure 3 illustrates a skeletal model that can be controlled by tracking user movements, according to one embodiment. For example, the skeletal model of Figure 3 may be used in the motion processor (145) of Figure 2 .

图3中所示的骨架模型包括躯干(232)以及左上臂和右上臂(203和205),其可以经由肩关节(234和241)相对于躯干(232)移动。骨架模型还可以包括前臂(215和233)、手(206和208)、颈、头(207)、腿和脚。在一些情况下,手(206)包括经由关节(例如,244)而被连接到手指的指骨(例如245)和拇指的掌骨的手掌。The skeletal model shown in Figure 3 includes a torso (232) and upper left and right arms (203 and 205), which are movable relative to the torso (232) via shoulder joints (234 and 241). The skeletal model may also include forearms (215 and 233), hands (206 and 208), neck, head (207), legs and feet. In some cases, hand (206) includes a palm connected via joints (eg, 244) to phalanges (eg, 245) of the fingers and metacarpals of the thumb.

图3中所示的骨架模型的刚性部位的位置/取向由图1中所示的测量出的用户的对应部位的取向进行控制。例如,骨架模型的头(207)的取向根据使用头模块(111)测量出的用户的头(107)的取向来配置;骨架模型的上臂(205)的取向根据使用臂模块(115)测量出的用户的上臂(105)的取向来配置;以及,骨架模型的手(206)的取向根据使用手模块(117)测量出的用户的手(106)的取向来配置;等等。The position/orientation of the rigid parts of the skeletal model shown in FIG. 3 is controlled by the measured orientation of the corresponding parts of the user shown in FIG. 1 . For example, the orientation of the skeletal model's head (207) is configured according to the orientation of the user's head (107) measured using the head module (111); and the orientation of the skeletal model's hand (206) is configured according to the orientation of the user's hand (106) measured using the hand module (117); and so on.

预测模型(116)可以具有针对不同运动链的不同运动模式训练的多个人工神经网络。The predictive model (116) may have multiple artificial neural networks trained for different motion patterns of different kinematic chains.

例如,锁骨运动链可以包括上臂(203和205)、由锁骨(231)表示的躯干(232)以及可选地由肩关节(241和234)和颈连接的头(207)。锁骨运动链可以被用于基于锁骨运动链的运动历史和上臂(203和205)以及头(207)的当前取向来预测躯干(232)的取向。For example, a clavicle kinematic chain may include upper arms (203 and 205), torso (232) represented by clavicles (231), and optionally head (207) connected by shoulder joints (241 and 234) and neck. The clavicle kinematic chain may be used to predict the orientation of the torso (232) based on the motion history of the clavicle kinematic chain and the current orientation of the upper arms (203 and 205) and head (207).

例如,前臂运动链可以包括通过肘关节(242)和腕关节(243)连接的上臂(205)、前臂(215)和手(206)。前臂运动链可以被用于基于前臂运动链的运动历史以及上臂(205)和手(206)的当前取向来预测前臂(215)的取向。For example, a forearm kinematic chain may include upper arm (205), forearm (215) and hand (206) connected by elbow joint (242) and wrist joint (243). The forearm kinematic chain can be used to predict the orientation of the forearm (215) based on the motion history of the forearm kinematic chain and the current orientation of the upper arm (205) and hand (206).

例如,手运动链可以包括手(206)的手掌、手(206)上的手指的指骨(245)以及由手(206)中的关节连接的手(206)上的拇指的掌骨。手运动链可以被用于基于手运动链的运动历史以及使用手模块(例如,117或119)中的IMU跟踪的手掌以及指骨和掌骨的子集的当前取向来预测指骨和掌骨的取向。For example, the hand kinematic chain may include the palm of the hand (206), the phalanges (245) of the fingers on the hand (206), and the metacarpal bones of the thumb on the hand (206) connected by joints in the hand (206). The hand kinematic chain can be used to predict the orientation of the phalanges and metacarpals based on the motion history of the hand kinematic chain and the current orientation of the palm and a subset of the phalanges and metacarpals tracked using the IMU in the hand module (eg, 117 or 119).

例如,躯干运动链可以包括锁骨运动链,并且还包括前臂和/或手和腿。例如,腿运动链可以包括脚、小腿和大腿。For example, a trunk kinematic chain may include a clavicle kinematic chain, and also include forearms and/or hands and legs. For example, a leg kinematic chain may include feet, calves, and thighs.

可以使用监督机器学习技术来训练预测模型(116)的人工神经网络,以基于运动链中的其他部位的取向来预测运动链中的部位的取向,使得具有预测的取向的部位不必佩戴单独的传感器装置来跟踪其取向。Supervised machine learning techniques can be used to train the artificial neural network of the predictive model (116) to predict the orientation of parts in the kinetic chain based on the orientation of other parts in the kinetic chain, so that parts with predicted orientations do not have to wear separate sensors device to track its orientation.

此外,可以使用监督机器学习技术来训练预测模型(116)的人工神经网络,以基于使用另一跟踪技术测量出的该运动链中的部位的取向来预测可以使用一种跟踪技术来测量的运动链中的部位的取向。In addition, supervised machine learning techniques can be used to train the artificial neural network of the predictive model (116) to predict motion that can be measured using one tracking technique based on the orientation of parts in the kinematic chain measured using another tracking technique The orientation of the sites in the chain.

例如,如图2中所示的跟踪系统使用IMU(例如,111、113、...、)来测量模块(111、113、...、119)的取向。基于惯性的传感器提供良好的用户体验,对传感器的使用具有较少的限制,并且可以以有计算效率的方式来实施。然而,在某些情况下,基于惯性的传感器可能不如某些跟踪方法准确,并且可能具有漂移误差和/或通过时间积分累积的误差。For example, a tracking system as shown in FIG. 2 uses an IMU (eg, 111, 113, ...,) to measure the orientation of a module (111, 113, ..., 119). Inertial based sensors provide a good user experience, have fewer constraints on sensor usage, and can be implemented in a computationally efficient manner. However, in some cases, inertial-based sensors may not be as accurate as some tracking methods and may have drift errors and/or errors that accumulate through time integration.

例如,光学跟踪系统可以使用一个或多个相机来跟踪在相机的视场中的光学标记物的位置和/或取向。当光学标记物在相机的视场内时,由相机捕捉到的图像可以被用于计算光学标记物的位置和/或取向以及因此使用光学标记物标记的部位的取向。然而,光学跟踪系统可能不像基于惯性的跟踪系统那样用户友好,并且部署起来可能是更昂贵的。此外,当光学标记物在相机的视场以外时,光学标记物的位置和/或取向无法通过该光学跟踪系统来确定。For example, an optical tracking system may use one or more cameras to track the position and/or orientation of optical markers in the camera's field of view. When the optical marker is within the camera's field of view, images captured by the camera may be used to calculate the position and/or orientation of the optical marker and thus the orientation of the site marked with the optical marker. However, optical tracking systems may not be as user-friendly as inertial-based tracking systems and may be more expensive to deploy. Furthermore, the position and/or orientation of the optical marker cannot be determined by the optical tracking system when the optical marker is outside the camera's field of view.

预测模型(116)的人工神经网络可以被训练为基于由基于惯性的跟踪系统产生的测量结果来预测由该光学跟踪系统产生的测量结果。因此,基于惯性的测量结果中的漂移误差和/或累积误差可以被减少和/或抑制,这减少了对基于惯性的跟踪系统进行重新校准的需要。The artificial neural network of the predictive model (116) can be trained to predict measurements produced by the optical tracking system based on measurements produced by the inertial-based tracking system. Thus, drift errors and/or cumulative errors in the inertial-based measurements may be reduced and/or suppressed, which reduces the need for recalibration of the inertial-based tracking system.

图4示出了用于训练递归神经网络(RNN)(307)的方法。例如,图4的方法可以被用于生成图1和/或图2的预测模型(116)。Figure 4 shows a method for training a recurrent neural network (RNN) (307). For example, the method of FIG. 4 may be used to generate the predictive model of FIG. 1 and/or FIG. 2 (116).

在图4中,使用两个跟踪系统(301和302)来跟踪/测量人体运动(303)。例如,图2的基于惯性的系统可以被用作跟踪系统A(301);并且光学跟踪系统可以被用作跟踪系统B(302)。In Figure 4, two tracking systems (301 and 302) are used to track/measure human motion (303). For example, the inertial-based system of FIG. 2 can be used as tracking system A (301); and an optical tracking system can be used as tracking system B (302).

例如,人可以佩戴包含针对基于惯性的系统的IMU(例如,121,131,......)的传感器装置(111、113、115、117和119)。为了训练递归神经网络(RNN)(307),可以将光学标记物附接到针对光学跟踪系统(例如,302)的人。For example, a person may wear a sensor device (111, 113, 115, 117, and 119) that includes an IMU (eg, 121, 131, . . . ) for an inertial-based system. To train the recurrent neural network (RNN) (307), optical markers can be attached to the person for the optical tracking system (eg, 302).

可选地,光学标记物可以被集成在传感器装置(111、113、115、117和119)上以跟踪用于包括递归神经网络(RNN)(307)的预测模型(116)的训练的运动(303)。Optionally, optical markers may be integrated on sensor devices (111, 113, 115, 117, and 119) to track motion for training of a predictive model (116) comprising a recurrent neural network (RNN) (307) ( 303).

可选地,额外的光学标记物被附接到用户未佩戴包含IMU的传感器装置的某些部位。例如,如图1中所示,用户的前臂(112和114)和躯干(101)不具有用于经由基于惯性的系统(例如,301)来测量其取向的附接的IMU;然而,用户的前臂(112和114)和躯干(101)可以具有光学标记物以使用光学跟踪系统(例如,302)来测量其取向。Optionally, additional optical markers are attached to certain parts of the user not wearing the IMU-containing sensor device. For example, as shown in FIG. 1 , the user's forearms (112 and 114) and torso (101) do not have an attached IMU for measuring their orientation via an inertial-based system (e.g., 301); however, the user's The forearms (112 and 114) and torso (101) may have optical markers to measure their orientation using an optical tracking system (eg, 302).

一般而言,光学跟踪系统(例如,302)可以用另一跟踪系统来代替,所述另一跟踪系统基于红外信号、超声波信号、射频识别标签(RFID)信号等进行取向测量。此外,跟踪系统的组合可以被用作跟踪系统B(302)以获得对人体运动(303)的最准确的测量结果B(306)。跟踪系统B(302)被用于测量未由跟踪系统A(301)测量的人的部位和可选地由跟踪系统A(301)测量的人的部位中的至少一些的取向。In general, the optical tracking system (eg, 302 ) can be replaced with another tracking system that makes orientation measurements based on infrared signals, ultrasonic signals, radio frequency identification tag (RFID) signals, or the like. Furthermore, a combination of tracking systems can be used as tracking system B (302) to obtain the most accurate measurement of body motion (303) B (306). Tracking system B (302) is used to measure the orientation of at least some of the parts of the person not measured by tracking system A (301) and optionally the parts of the person measured by tracking system A (301).

在人佩戴用于跟踪系统A(301)和跟踪系统B(302)的传感器模块和光学标记物之后,该人可以执行涉及运动链的各种运动模式的多个动作序列。After a person wears the sensor modules and optical markers for tracking system A (301) and tracking system B (302), the person can perform multiple action sequences involving various motion patterns of the kinematic chain.

该序列可以从诸如如图1中所示的姿势的共同的校准姿势开始。可以在于2017年12月19日提交的且题为“Calibration of Inertial Measurement Units Attached toArms of a User and to a Head Mounted Device”的美国专利申请序列号15/847,669、于2017年11月20日提交的且题为“Calibration of Inertial Measurement Units Attachedto Arms of a User to Generate Inputs for Computer Systems”的美国专利申请序列号15/817,646中找到校准姿势的示例,所述申请的全部公开内容在此通过引用并入本文。The sequence may start with a common calibration pose such as the pose shown in FIG. 1 . may be found in U.S. Patent Application Serial No. 15/847,669, filed December 19, 2017, and entitled "Calibration of Inertial Measurement Units Attached to Arms of a User and to a Head Mounted Device," filed November 20, 2017 An example of a calibration posture is found in U.S. Patent Application Serial No. 15/817,646, entitled "Calibration of Inertial Measurement Units Attached to Arms of a User to Generate Inputs for Computer Systems," the entire disclosure of which is hereby incorporated by reference This article.

可以使用跟踪系统A和B(301和302)同时测量/跟踪人的部位(诸如头(107)、臂(103、105、112、114)和手(106和108)以及躯干(101))的位置和/或取向,以分别生成测量结果A和B(305和306)。Tracking systems A and B (301 and 302) can be used to simultaneously measure/track parts of a person such as head (107), arms (103, 105, 112, 114) and hands (106 and 108) and torso (101) position and/or orientation to generate measurements A and B respectively (305 and 306).

可以使用监督机器学习技术来训练递归神经网络(RNN)(307),以基于由跟踪系统A(301)(例如,如图2中所示的基于惯性的系统)生成的测量结果A(305)来预测由跟踪系统B(302)(例如,光学跟踪系统、另一跟踪系统或跟踪系统的组合)生成的测量结果B(306)。监督机器学习技术调整递归神经网络(RNN)(307)中的参数以使实际测量结果B(306)与使用测量结果A(305)作为该递归神经网络(RNN)(307)的输入而做出的预测之间的差异最小化。具有经调整的参数的递归神经网络(RNN)(307)提供了RNN模型(309),其可以被用作图1和/或图2中的预测模型(116)。Supervised machine learning techniques may be used to train a recurrent neural network (RNN) (307) based on measurements A (305) generated by a tracking system A (301) (e.g., an inertial-based system as shown in FIG. 2 ). to predict measurements B (306) generated by tracking system B (302) (eg, an optical tracking system, another tracking system, or a combination of tracking systems). Supervised machine learning techniques adjust the parameters in the recurrent neural network (RNN) (307) so that the actual measurement B (306) is different from that made using measurement A (305) as input to the recurrent neural network (RNN) (307). The difference between the predictions is minimized. A recurrent neural network (RNN) (307) with tuned parameters provides an RNN model (309), which can be used as the predictive model (116) in FIG. 1 and/or FIG. 2 .

递归神经网络(RNN)(307)可以包括长短期记忆(LSTM)单元的网络,以选择性地记忆基于其做出预测的状态的历史。A recurrent neural network (RNN) (307) may include a network of long short-term memory (LSTM) cells to selectively remember the history of states based on which predictions are made.

可以以预定时间间隔对由执行人体运动(303)的人执行的动作序列进行采样,以获得用于训练递归神经网络(RNN)(307)的测量结果(305和306)。A sequence of actions performed by a person performing a human movement (303) may be sampled at predetermined time intervals to obtain measurements (305 and 306) for training a recurrent neural network (RNN) (307).

在某些情况下,一些动作序列被重复多次和/或以不同的速度重复;并且时间测量结果的缩放和/或双指数平滑处理可以被应用于输入参数,以对准序列的数据集和/或使时间尺度标准化。In some cases, some action sequences are repeated multiple times and/or at different speeds; and scaling and/or double-exponential smoothing of the time measurements can be applied to the input parameters to align the sequence of data sets and /or normalize the time scale.

在RNN模型(309)被训练为具有预测使用跟踪系统B(302)生成的测量结果B(306)的能力之后,不再有必要使用跟踪系统B(302)。例如,可以在制造设施和/或开发商的设施中开发RNN模型(309)。传感器模块(例如,111、113、...、119)的用户不需要佩戴光学标记物或在跟踪系统B(302)中使用的其他装置,如图5中所示。After the RNN model (309) has been trained with the ability to predict the measurements B (306) generated using tracking system B (302), it is no longer necessary to use tracking system B (302). For example, the RNN model may be developed (309) at a manufacturing facility and/or at a developer's facility. A user of a sensor module (eg, 111 , 113 , . . . , 119 ) does not need to wear an optical marker or other device used in tracking system B ( 302 ), as shown in FIG. 5 .

图5示出了根据一个实施例的用于使用RNN基于另一跟踪系统的移动测量结果来预测一个跟踪系统的移动测量结果的方法。Figure 5 illustrates a method for predicting movement measurements of one tracking system based on movement measurements of another tracking system using an RNN, according to one embodiment.

在图5中,跟踪系统A(301)(例如,图2中所示的基于惯性的系统)被用于在没有跟踪系统B(302)(例如,光学跟踪系统)的情况下跟踪用户的用户运动(304)。使用跟踪系统A(301)(例如,图2中所示的基于惯性的系统)测量出的用户运动(304)的测量结果A(315)被用在RNN模型(309)中,以生成对将由跟踪系统B(302)生成的测量结果B的预测(316)。对测量结果B的预测(316)可以被提供给运动处理器(145)以控制骨架模型(143)(例如,如图3中所示),犹如跟踪系统B(302)被用于获得该测量结果一样。In FIG. 5, tracking system A (301) (e.g., the inertial-based system shown in FIG. 2) is used to track a user without tracking system B (302) (e.g., an optical tracking system). Movement (304). Measurements A (315) of user motion (304) measured using tracking system A (301) (e.g., the inertial-based system shown in FIG. 2 ) are used in the RNN model (309) to generate pairs of Predictions (316) of measurements B generated by system B (302) are tracked. The prediction (316) of measurement B may be provided to the motion processor (145) to control the skeletal model (143) (e.g., as shown in Figure 3), as if the tracking system B (302) was used to obtain the measurement Same result.

例如,具有LSTM单元的RNN模型(309)可以被训练为使用由具有IMU的传感器模块生成的运动链的部位的取向测量结果来预测由光学跟踪系统针对运动链生成的取向测量结果。For example, an RNN model (309) with LSTM units can be trained to use orientation measurements of parts of a kinematic chain generated by a sensor module with an IMU to predict orientation measurements generated by an optical tracking system for a kinematic chain.

例如,将传感器模块(113和119)附接到前臂运动链中的上臂(103)和手(119),所述前臂运动链使用从传感器模块(113和119)中的IMU(例如,131)生成的测量结果。RNN模型(309)根据用户运动(304)序列的IMU测量结果来预测将由光学跟踪系统不仅针对前臂运动链中的前臂(112)而且针对上臂(103)和手(108)生成的取向测量结果。预测的取向测量结果被用在运动处理器(145)中以对包括前臂(233)、上臂(203)和手(208)的骨架(143)的对应的前臂运动链进行配置。For example, sensor modules (113 and 119) are attached to the upper arm (103) and hand (119) in a forearm kinematic chain using an IMU (e.g., 131) from the sensor modules (113 and 119) Generated measurement results. The RNN model (309) predicts orientation measurements to be generated by the optical tracking system not only for the forearm (112) but also for the upper arm (103) and hand (108) in the forearm kinematic chain from the IMU measurements of the user motion (304) sequence. The predicted orientation measurements are used in the motion processor (145) to configure the corresponding forearm kinematic chain of the skeleton (143) including the forearm (233), upper arm (203) and hand (208).

在一些情况下,不必使用利用一种技术实施的跟踪系统(例如,光学跟踪系统)来对利用另一种技术实施的跟踪系统(例如,基于惯性的跟踪系统)的测量结果进行校准。预测模型(116)可以在不使用多个训练技术的情况下被训练为预测缺少传感器模块的部位的取向,如图6中所示。In some cases, it is not necessary to use a tracking system implemented with one technology (eg, an optical tracking system) to calibrate measurements of a tracking system implemented with another technology (eg, an inertial-based tracking system). The predictive model ( 116 ) can be trained to predict the orientation of regions lacking sensor modules without using multiple training techniques, as shown in FIG. 6 .

图6示出了用于训练递归神经网络(RNN)(337)来预测缺少传感器模块的测量结果的方法。Figure 6 shows a method for training a recurrent neural network (RNN) (337) to predict measurements of missing sensor modules.

在图6中,测量佩戴跟踪装置A(331)和跟踪装置B(332)两者的人的人体运动(303)。例如,跟踪装置A(331)对应于头模块(111)、臂模块(113和115)和手模块(117和119),如图1和/或图2中所示。在图1中,前臂(112和114)和躯干(101)缺少传感器模块。In FIG. 6, the body motion (303) of a person wearing both tracking device A (331) and tracking device B (332) is measured. For example, tracking device A ( 331 ) corresponds to head module ( 111 ), arm modules ( 113 and 115 ), and hand modules ( 117 and 119 ), as shown in FIG. 1 and/or FIG. 2 . In Figure 1, the forearms (112 and 114) and torso (101) lack sensor modules.

为了训练递归神经网络(RNN)(337)来预测缺少的传感器模块的测量结果,图6的方法使用跟踪装置B(332),其是被附接到前臂(112和114)和躯干(101)的额外IMU模块。额外的IMU模块可以类似于臂模块(113)并且经由臂带、条带和/或其他方式而被附接到前臂(112和114)和躯干(101),以将该模块附接到执行人体运动的人上的相应位置。To train a recurrent neural network (RNN) (337) to predict missing sensor module measurements, the method of FIG. 6 uses tracking device B (332), which is attached to the forearms (112 and 114) and additional IMU module. Additional IMU modules can be attached to the forearms (112 and 114) and torso (101) similar to the arm module (113) via arm straps, straps, and/or otherwise to attach the module to the performing body Corresponding position on the moving person.

监督机器学习技术可以被应用于递归神经网络(RNN)(337),其使用由跟踪装置A(331)生成的测量结果A(335)来预测由跟踪装置B(333)生成的测量结果B(336)。监督机器学习调整递归神经网络(RNN)(337)的参数以使测量结果B(336)与通过将测量结果A(335)作为输入应用于递归神经网络(RNN)(337)而做出的预测之间的差异最小化。递归神经网络(RNN)(337)及其经训练的参数提供了RNN模型(339),其可以被用于做出对跟踪装置B(332)的测量结果的预测。因此,当使用RNN模型(339)时,可以省略跟踪装置B(332),如图7中所示。Supervised machine learning techniques can be applied to a recurrent neural network (RNN) (337) that uses measurements A (335) generated by tracking device A (331 ) to predict measurements B ( 336). Supervised machine learning adjusts the parameters of the recurrent neural network (RNN) (337) so that measurement B (336) matches the prediction made by applying measurement A (335) as input to the recurrent neural network (RNN) (337) minimize the difference between them. A Recurrent Neural Network (RNN) (337) and its trained parameters provide an RNN model (339) that can be used to make predictions about the measurements of tracking device B (332). Therefore, when using the RNN model (339), the tracker B (332) can be omitted, as shown in FIG. 7 .

图7示出了根据一个实施例的用于使用利用图6的方法训练的RNN基于附接的传感器模块的移动测量结果来预测缺少传感器模块的移动测量结果的方法。FIG. 7 illustrates a method for predicting movement measurements of missing sensor modules based on movement measurements of attached sensor modules using an RNN trained with the method of FIG. 6 , according to one embodiment.

在图7中,跟踪装置A(331)(例如,图1和/或图2中的111、113、115、117和119)被用于在没有跟踪装置B(332)的情况下跟踪用户的用户运动(304)。使用跟踪装置A(331)(例如,111、113、115、117和119)测量出的用户运动(304)的测量结果A(345)作为输入被用于RNN模型(339)以生成对将由跟踪装置B(332)生成的测量结果B(332)的预测(346),犹如使用了跟踪装置B(332)一样。测量结果A(345)和对测量结果B的预测(346)可以被提供给运动处理器(145)以控制骨架模型(143)(例如,如图3中所示),犹如使用了跟踪装置A(331)和跟踪装置B(332)两者一样。In FIG. 7, tracking device A (331) (e.g., 111, 113, 115, 117, and 119 in FIGS. 1 and/or 2) is used to track the user's User Movement (304). Measurements A (345) of user motion (304) measured using tracking devices A (331) (e.g., 111, 113, 115, 117, and 119) are used as input to the RNN model (339) to generate pairs of Prediction (346) of measurements B (332) generated by device B (332) as if tracking device B (332) was used. Measurement A (345) and prediction for measurement B (346) may be provided to motion processor (145) to control skeletal model (143) (e.g., as shown in FIG. 3 ) as if tracking device A were used (331) and tracking device B (332) are both the same.

例如,具有LSTM单元的RNN模型(339)可以被训练为使用由具有IMU的传感器模块生成的运动链的其余部位的取向测量结果来预测由具有IMU的传感器模块针对运动链的一个或多个部位生成的取向测量结果,使得对于运动链的一个或多个部位可以省略具有IMU的传感器模块。For example, an RNN model (339) with an LSTM unit can be trained to use orientation measurements of the remaining parts of the kinematic chain generated by the sensor module with the IMU to predict one or more parts of the kinematic chain generated by the sensor module with the IMU. Orientation measurements are generated such that the sensor module with the IMU can be omitted for one or more parts of the kinematic chain.

例如,将传感器模块(113和119)附接到前臂运动链中的上臂(103)和手(119),所述前臂运动链使用从传感器模块(113和119)中的IMU(例如,131)生成的测量结果。RNN模型(339)根据针对用户运动(304)序列的IMU测量结果来预测将由具有IMU的传感器模块(例如,类似于臂模块(113))生成的取向测量结果,犹如这样的传感器模块被附接到前臂运动链中的前臂(112)一样。针对前臂(112)的预测的取向测量结果(346)和针对上臂(103)和手(119)的测量结果被一起用在运动处理器(145)中以对包括前臂(233)、上臂(203)和手(208)的骨架(143)的对应的前臂运动链进行配置。For example, sensor modules (113 and 119) are attached to the upper arm (103) and hand (119) in a forearm kinematic chain using an IMU (e.g., 131) from the sensor modules (113 and 119) Generated measurement results. The RNN model (339) predicts from the IMU measurements for the sequence of user motions (304) the orientation measurements that would be generated by a sensor module with an IMU (e.g., similar to the arm module (113)), as if such a sensor module were attached To the forearm (112) in the forearm kinematic chain. The predicted orientation measurements (346) for the forearm (112) and the measurements for the upper arm (103) and hand (119) are used together in the motion processor (145) to map the orientation of the forearm (233), upper arm (203) ) and the corresponding forearm kinematic chain of the skeleton (143) of the hand (208).

由于可以在没有实际使用传感器模块来跟踪前臂(112)的取向的情况下从传感器模块(113和119)的使用获得预测(346),因此执行用户运动(304)的用户不必在前臂(112)上佩戴额外的传感器模块。因此,改善了用户体验;并且降低了用户的跟踪系统的成本。Since the prediction (346) can be obtained from the use of the sensor modules (113 and 119) without actually using the sensor module to track the orientation of the forearm (112), the user performing the user motion (304) does not have to be on the forearm (112) Wear an additional sensor module on the top. Thus, the user experience is improved; and the cost of the tracking system for the user is reduced.

图8示出了用于训练人工神经网络来预测取向测量结果的方法。Figure 8 shows a method for training an artificial neural network to predict orientation measurements.

图8的方法包括将跟踪装置附接(401)到人的至少一个运动链,其包括与一个或多个运动链上的第二跟踪装置分离的第一跟踪装置。The method of FIG. 8 includes attaching ( 401 ) a tracking device to at least one kinematic chain of a person including a first tracking device detached from a second tracking device on the one or more kinematic chains.

例如,第一跟踪装置是上臂(105)上的臂模块(115)和手(106)上的手模块(117);并且一个或多个第二跟踪装置包括在前臂运动链上的前臂(114)上的跟踪装置,所述前臂运动链包括经由肘关节和腕关节连接的上臂(105)、前臂(114)和手(106)。前臂(114)上的跟踪装置将前臂运动链上的臂模块(115)和手模块(117)分开。臂模块(115)和手模块(117)包括IMU以跟踪其在基于惯性的跟踪系统中的取向,并且可以具有光学标记物以使用光学跟踪系统单独地测量其取向。前臂(114)上的跟踪装置可以是被用于测量其在光学跟踪系统中的取向的光学标记物,并且可以可选地包括IMU以跟踪其在基于惯性的跟踪系统中的取向。当前臂(114)上的跟踪装置使得能够在基于惯性的跟踪系统和光学跟踪系统两者中进行跟踪时,前臂(114)上的跟踪装置可以以与臂模块(115)相同的方式来实施。For example, the first tracking device is an arm module (115) on the upper arm (105) and a hand module (117) on the hand (106); and one or more second tracking devices include the forearm (114) on the forearm kinematic chain ), the forearm kinematic chain includes an upper arm (105), a forearm (114) and a hand (106) connected via an elbow joint and a wrist joint. A tracking device on the forearm (114) separates the arm module (115) from the hand module (117) on the forearm kinematic chain. The arm module (115) and hand module (117) include IMUs to track their orientation in an inertial-based tracking system, and may have optical markers to measure their orientation separately using the optical tracking system. The tracking device on the forearm (114) may be an optical marker used to measure its orientation in an optical tracking system, and may optionally include an IMU to track its orientation in an inertial-based tracking system. The tracking device on the forearm (114) may be implemented in the same manner as the arm module (115) as it enables tracking in both inertial-based and optical tracking systems.

图8的方法还包括执行(403)涉及至少一个运动链的多个动作(303)序列。动作(303)序列从共同的校准姿势(例如,如图1中所示或另一个姿势)开始。动作可以被设计为模拟应用(147)(诸如虚拟现实游戏、增强现实应用等)中的典型动作。The method of Figure 8 also includes performing (403) a sequence of actions (303) involving at least one kinematic chain. The sequence of actions (303) starts with a common calibration pose (eg, as shown in Figure 1 or another pose). Actions may be designed to simulate typical actions in applications (147) such as virtual reality games, augmented reality applications, and the like.

图8的方法还包括:在序列中记录(405)第一跟踪装置和第二跟踪装置的取向,其中使用第一系统(301)(例如,基于惯性的跟踪系统)和第二系统(302)(例如,光学跟踪系统)两者来跟踪第一跟踪装置的取向,并且使用第二系统(302)来跟踪一个或多个第二跟踪装置的取向。可选地,一个或多个第二跟踪装置的取向还可以使用第一系统(301)(例如,基于惯性的跟踪系统)来跟踪,并且被用于其中第二系统(302)不能够测量一个或多个第二跟踪装置的取向的情况。例如,当处于某一位置,前臂(114)上的光学标记物在光学跟踪系统的跟踪相机的视场以外时,从被附接到前臂(114)的IMU确定出的取向可以被用于生成前臂的取向测量结果(114)。例如,当光学标记物在动作序列中的模糊位置之前和/或之后可见时,从前臂(114)的IMU测量结果获得的前臂(114)的取向测量结果可以经由来自光学跟踪系统的测量结果而被校准,以便以基本上与来自光学跟踪系统的测量结果相同的提高的准确性计算出该模糊位置处的前臂的取向。The method of FIG. 8 also includes recording (405) the orientations of the first tracking device and the second tracking device in a sequence wherein the first system (301) (e.g., an inertial-based tracking system) and the second system (302) (eg, an optical tracking system) both to track the orientation of a first tracking device, and a second system (302) is used to track the orientation of one or more second tracking devices. Optionally, the orientation of one or more second tracking devices can also be tracked using the first system (301) (e.g., an inertial-based tracking system), and used where the second system (302) is not capable of measuring a or the orientation of multiple second tracking devices. For example, the orientation determined from the IMU attached to the forearm (114) can be used to generate Orientation measurements of the forearm (114). For example, orientation measurements of the forearm (114) obtained from IMU measurements of the forearm (114) may be obtained via measurements from the optical tracking system when optical markers are visible before and/or after ambiguous positions in the motion sequence. is calibrated so that the orientation of the forearm at this ambiguous location is calculated with substantially the same improved accuracy as the measurements from the optical tracking system.

图8的方法还包括:训练(407)人工神经网络(例如,307)以基于由第一系统(301)(例如,基于惯性的跟踪系统)测量出的第一跟踪装置的取向来预测由第二系统(302)(例如,光学跟踪系统)测量出的第一跟踪装置和第二跟踪装置的取向。The method of FIG. 8 also includes training (407) the artificial neural network (e.g., 307) to predict the orientation of the first tracking device based on the orientation of the first tracking device measured by the first system (301) (e.g., an inertial-based tracking system). The orientations of the first tracking device and the second tracking device are measured by a second system (302) (eg, an optical tracking system).

在一些情况下,使用单独的人工神经网络来单独训练不同的运动链。经训练的网络可以被单独地用于各个运动链,以提高计算效率。可替选地,可以针对整个骨架(143)的运动模型来训练人工神经网络以用于通用应用。In some cases, separate artificial neural networks are used to train different kinematic chains individually. The trained network can be used individually for each kinematic chain to improve computational efficiency. Alternatively, the artificial neural network can be trained on the motion model of the whole skeleton (143) for general application.

经训练的人工神经网络可以使用强化学习技术来重新训练,以提高其在一些运动场景中的预测准确性。A trained artificial neural network can be retrained using reinforcement learning techniques to improve its predictive accuracy in some sports scenarios.

图9示出了用于使用利用图8的方法训练的人工神经网络来跟踪用户移动的方法。FIG. 9 illustrates a method for tracking user movement using an artificial neural network trained using the method of FIG. 8 .

图9的方法包括:将跟踪装置附接(411)到用户的至少一个运动链,其包括第一跟踪装置,但在与一个或多个运动链中的第一跟踪装置分离的部位上不包括第二跟踪装置;执行(413)从校准姿势开始的涉及至少一个运动链的动作(304)序列;使用第一系统(301)而不是第二系统(302)来生成(415)序列中的第一跟踪装置的取向测量结果;将取向测量结果应用(417)到先前经训练的(例如,使用图9的方法)人工神经网络,以基于由第一系统(301)跟踪的第一跟踪装置的测量结果来预测由第二系统(302)测量出的至少一个运动链的取向;并且通过将取向测量结果应用于人工神经网络来生成(419)至少一个运动链的预测的取向测量结果。The method of FIG. 9 includes attaching (411) a tracking device to at least one kinematic chain of the user that includes a first tracking device but does not include a tracking device at a location separate from the first tracking device in one or more kinematic chains second tracking device; perform (413) a sequence of actions (304) involving at least one kinematic chain starting from a calibration pose; use the first system (301) instead of the second system (302) to generate (415) the first in the sequence Orientation measurements of a tracking device; applying (417) the orientation measurements to a previously trained (e.g., using the method of FIG. 9 ) artificial neural network to measuring to predict the orientation of the at least one kinematic chain measured by the second system (302); and generating (419) the predicted orientation measurement of the at least one kinematic chain by applying the orientation measurement to the artificial neural network.

例如,计算系统包括:多个传感器模块(例如,111、113、115、117和/或119)和计算装置(141)。传感器模块中的每个具有惯性测量单元(例如,121或113)并且被附接到用户的部位(例如,107、113、115、106或108)以生成标识用户的相应部位的取向序列的运动数据。惯性测量单元包括微机电系统(MEMS)陀螺仪,并且还可以包括磁力计和MEMS加速度计。计算装置将由传感器模块测量出的取向序列作为输入提供给人工神经网络(例如,116),获得作为来自人工神经网络(例如,116)的输出的用户的部位的至少一个取向测量结果,使用从人工神经网络获得的取向测量结果来配置或设置代表用户的骨架模型(143)的运动链中的刚性部位的取向,并且根据骨架模型(143)的状态来控制应用(147)。For example, a computing system includes a plurality of sensor modules (eg, 111, 113, 115, 117, and/or 119) and a computing device (141). Each of the sensor modules has an inertial measurement unit (e.g., 121 or 113) and is attached to a part of the user (e.g., 107, 113, 115, 106, or 108) to generate motion identifying a sequence of orientations for the corresponding part of the user. data. The inertial measurement unit includes a microelectromechanical system (MEMS) gyroscope, and may also include a magnetometer and a MEMS accelerometer. The computing device provides as input the sequence of orientations measured by the sensor modules to the artificial neural network (e.g., 116), obtains as an output from the artificial neural network (e.g., 116) at least one orientation measurement of the user's part, using data obtained from the artificial neural network (e.g., 116). The orientation measurements obtained by the neural network configure or set the orientation of rigid parts in the kinematic chain of the skeletal model (143) representing the user, and control the application (147) according to the state of the skeletal model (143).

例如,人工神经网络可以是先前被训练为做出与使用光学跟踪系统生成的取向测量结果匹配的预测的递归神经网络。递归神经网络包含长短期记忆(LSTM)单元,以记忆从输入取向序列导出的状态历史集合,以便预测运动链的当前取向。For example, the artificial neural network may be a recurrent neural network previously trained to make predictions that match orientation measurements generated using the optical tracking system. The recurrent neural network contains long short-term memory (LSTM) units to memorize a set of state histories derived from a sequence of input orientations in order to predict the current orientation of the kinematic chain.

由于人工神经网络可以预测使用光学跟踪技术生成的取向测量结果,因此不使用光学跟踪来跟踪用户的该部位(以及用户的其他部位)。Optical tracking is not used to track this part of the user (and other parts of the user) since the artificial neural network can predict orientation measurements generated using optical tracking technology.

例如,使用多个传感器模块中的一个来跟踪用户的部位的取向;并且人工神经网络被用于改善基于IMU的测量结果以消除漂移误差和/或累积误差。For example, one of multiple sensor modules is used to track the orientation of the user's part; and an artificial neural network is used to improve the IMU-based measurements to eliminate drift and/or cumulative errors.

例如,甚至不使用包含惯性测量单元的传感器模块来跟踪用户的部位的取向,这是因为其取向可以使用将运动链中用户的其他部位的取向测量结果作为输入应用于人工神经网络来预测。For example, the orientation of the user's part is not even tracked using a sensor module containing an inertial measurement unit, since its orientation can be predicted using orientation measurements of other parts of the user in the kinematic chain applied as input to an artificial neural network.

例如,多个传感器模块(例如,111、113、115、117和/或119)跟踪与骨架模型(143)的运动链中的刚性部位(例如,207、203、205、206和/或208)的子集相对应的用户的部位(例如,107、103、105、106和/或108);并且未被跟踪的与用户的部位(例如,114、114或101)相对应的刚性部位(例如,215、223或232)在该运动链中使刚性部位(例如,207、203、205、206和/或208)的子集分开。For example, a plurality of sensor modules (e.g., 111, 113, 115, 117, and/or 119) track rigid locations (e.g., 207, 203, 205, 206, and/or 208) in a kinematic chain with the skeletal model (143) The user's parts corresponding to a subset of (for example, 107, 103, 105, 106, and/or 108); and the rigid parts (for example, , 215, 223, or 232) separate a subset of rigid sites (eg, 207, 203, 205, 206, and/or 208) in the kinematic chain.

例如,人工神经网络可以被训练为对使用单独的跟踪系统生成的取向测量结果进行预测;并且人工神经网络提供由单独的跟踪系统针对被附接了多个传感器模块(例如,111、113、115、117和/或119)的用户的部位(例如,107、103、105、106和/或108)而生成的预测的取向测量结果作为输出。For example, an artificial neural network can be trained to predict orientation measurements generated using a separate tracking system; , 117, and/or 119) of the user's location (eg, 107, 103, 105, 106, and/or 108) to generate predicted orientation measurements as output.

例如,为了训练人工神经网络,将传感器模块集合附接到执行多个运动序列的人,以从该传感器模块集合生成第一取向测量结果和第二取向测量结果。监督机器学习技术被用于训练人工神经网络以基于第一取向测量结果来预测第二取向测量结果。For example, to train an artificial neural network, a set of sensor modules is attached to a person performing a plurality of motion sequences to generate a first orientation measurement and a second orientation measurement from the set of sensor modules. Supervised machine learning techniques are used to train the artificial neural network to predict the second orientation measurement based on the first orientation measurement.

例如,使用第一技术来测量第一取向测量结果;使用第二技术来测量第二取向测量结果;并且人工神经网络被训练为基于使用第一技术(例如,基于IMU的跟踪)生成的测量结果来预测使用第二技术(例如,光学跟踪)做出的测量结果。For example, a first orientation measurement is measured using a first technique; a second orientation measurement is measured using a second technique; and the artificial neural network is trained based on the measurements generated using the first technique (e.g., IMU-based tracking) to predict measurements made using a second technique (eg, optical tracking).

例如,当发现人工神经网络在一些场景中具有不准确的预测时,可以基于结合这些场景做出的另外测量结果,使用强化学习技术来进一步训练人工神经网络。For example, when an artificial neural network is found to have inaccurate predictions in some scenarios, reinforcement learning techniques may be used to further train the artificial neural network based on additional measurements made in conjunction with those scenarios.

在一些情况下,第二取向测量结果标识多个传感器模块的取向;并且第一取向测量结果标识多个传感器模块子集的取向,使得使用一种跟踪技术(例如,基于IMU的跟踪)得出的传感器模块子集的测量结果可以与人工神经网络一起被用于预测使用另一种跟踪技术(例如,光学跟踪)得出的整个传感器模块集合的测量结果。In some cases, the second orientation measurement identifies the orientation of the plurality of sensor modules; and the first orientation measurement identifies the orientation of a subset of the plurality of sensor modules such that a tracking technique (e.g., IMU-based tracking) is used to derive Measurements of a subset of sensor modules in can be used with an artificial neural network to predict measurements of the entire collection of sensor modules using another tracking technique (eg, optical tracking).

在其他情况下,第一取向测量结果标识多个传感器模块的第一子集的取向;并且第二取向测量结果标识多个传感器模块的第二子集的取向,使得来自传感器装置的一个子集的测量结果可以被用于预测由传感器装置的另一子集得出的测量结果。In other cases, the first orientation measurement identifies the orientation of a first subset of the plurality of sensor modules; and the second orientation measurement identifies the orientation of a second subset of the plurality of sensor modules such that from a subset of sensor devices Measurements of can be used to predict measurements made by another subset of sensor devices.

骨架模型(143)可以包括多个ANN模型。ANN模型中的每个被训练为使用利用跟踪系统A(301)(例如,基于IMU的系统,诸如图2中所示的系统)获得的测量结果来预测本将使用跟踪系统B(302)(例如,光学跟踪系统)测量的运动链的部位的运动测量结果。然而,当两个ANN模型被用于预测具有重叠部位的两个运动链的运动测量结果时,ANN模型可以针对相同的重叠部位生成不同的预测。The skeleton model (143) may include multiple ANN models. Each of the ANN models is trained to use measurements obtained with tracking system A (301) (e.g., an IMU-based system such as the system shown in FIG. 2) to predict what would have happened using tracking system B (302) ( For example, an optical tracking system) measures motion measurements of parts of a kinematic chain. However, when two ANN models are used to predict motion measurements of two kinematic chains with overlapping parts, the ANN models can generate different predictions for the same overlapping parts.

例如,前臂ANN模型可以被用于预测包含手(106)、前臂(114)和上臂(105)的前臂链的运动/取向测量结果。锁骨ANN模型可以被用于预测包含左上臂(105)、躯干(101)和右上臂(103)(以及可选地头(107))的锁骨链的运动/取向测量结果。For example, a forearm ANN model can be used to predict motion/orientation measurements of a forearm chain comprising the hand (106), forearm (114) and upper arm (105). The clavicle ANN model can be used to predict motion/orientation measurements of the clavicle chain comprising the upper left arm (105), torso (101) and upper right arm (103) (and optionally the head (107)).

使用前臂ANN模型,上臂(105)被预测为具有通常与使用锁骨ANN模型预测出的上臂(105)的取向不同的取向。Using the forearm ANN model, the upper arm (105) is predicted to have a generally different orientation than the orientation of the upper arm (105) predicted using the clavicle ANN model.

为了使用前臂ANN模型和锁骨ANN模型两者,另外的ANN可以被用于考虑由前臂ANN模型和锁骨ANN模型生成的差异,并且以与以下结合图10讨论的方式类似的方式来预测上臂(105)的取向。To use both the forearm ANN model and the clavicle ANN model, an additional ANN can be used to account for the differences generated by the forearm ANN model and the clavicle ANN model, and predict the upper arm in a manner similar to that discussed below in connection with FIG. 10 (105 )orientation.

图10示出了根据一个实施例的使用双向长短期记忆(BLSTM)网络来组合来自不同人工神经网络的结果。Figure 10 illustrates the use of a Bidirectional Long Short-Term Memory (BLSTM) network to combine results from different artificial neural networks, according to one embodiment.

在图10中,装置集合(A,...,C,...,E)被用于在时间实例(time instance)1,2,...,t处生成其取向测量结果,其中时间实例按顺序编号以供识别。相邻时间实例可以具有固定的、预定的时间间隔,或者取决于运动的速度的可变的时间间隔。In Fig. 10, a set of devices (A, ..., C, ..., E) is used to generate its orientation measurements at time instances 1, 2, ..., t, where time Instances are numbered sequentially for identification. Adjacent time instances may have a fixed, predetermined time interval, or a variable time interval depending on the speed of the motion.

在图10中,两个RNN模型(511和513)被用于运动测量结果(诸如用户的部位和/或在虚拟现实应用或增强现实应用中表示用户的骨架模型(143)的对应的刚性部位的取向)的预测。一个RNN模型(511)被训练用于运动链X(例如,前臂运动链)的运动测量结果的预测;并且另一个RNN模型(513)被训练用于运动链Y(例如,锁骨运动链)的运动测量结果的预测。例如,使用手模块(117)和臂模块(115)来跟踪前臂运动链,以针对对应RNN模型(例如,511)生成其取向的输入测量结果;并且使用臂模块(113和115)和可选地头模块(111)来跟踪锁骨运动链,以针对另一个对应的RNN模型(例如,513)生成其取向的输入测量结果。可以使用共享共同的传感器装置(诸如臂模块(115))的两个传感器装置集合(例如,115和117;以及113、115和111)来执行对前臂运动链的跟踪和对锁骨运动链的跟踪。前臂运动链和锁骨运动链共享共同的部位(例如,上臂(105)),其取向使用共同的传感器装置C(诸如臂模块(115))来测量。In Figure 10, two RNN models (511 and 513) are used for motion measurements such as parts of the user and/or corresponding rigid parts of the skeletal model (143) representing the user in a virtual or augmented reality application orientation) predictions. One RNN model (511) is trained for prediction of motion measurements of kinematic chain X (e.g., forearm kinematic chain); and another RNN model (513) is trained for kinematic chain Y (e.g., clavicle kinematic chain) Prediction of motion measurements. For example, use the hand module (117) and arm module (115) to track the forearm kinematic chain to generate input measurements of its orientation for the corresponding RNN model (e.g., 511); and use the arm modules (113 and 115) and optionally The head module (111) tracks the clavicle kinematic chain to generate input measurements of its orientation for another corresponding RNN model (eg, 513). Tracking of the forearm kinematic chain and tracking of the clavicle kinematic chain can be performed using two sets of sensor devices (e.g., 115 and 117; and 113, 115, and 111) sharing a common sensor device, such as the arm module (115) . The forearm kinematic chain and clavicle kinematic chain share a common site (eg, upper arm (105)), whose orientation is measured using a common sensor device C, such as arm module (115).

根据来自用于在时间实例1,2,...,t处的运动链X(例如,前臂运动链)的装置(例如,117和115)的取向测量结果的序列(501,...,505),RNN模型(511)生成预测的测量结果(515)的部分,其包括在时间实例t-1和t+1处共同的传感器装置C(例如,臂模块(115))的预测的取向(517)。装置C(例如,臂模块(115))也被用于生成运动链Y(例如,锁骨运动链)的输入(505)。According to the sequence of orientation measurements (501, . . . , 505), the RNN model (511) generates a portion of the predicted measurements (515) comprising the predicted orientation of the sensor device C (e.g., the arm module (115)) in common at time instances t−1 and t+1 (517). Device C (eg, arm module (115)) is also used to generate input (505) for kinematic chain Y (eg, clavicle kinematic chain).

在一个实施方式中,装置(A,...,C和E)提供在时间实例1,2,...,t中的每个处的取向测量结果(501,...,505,...,509)。当在时间实例t处的测量结果被提供给RNN模型(511和513)时,RNN模型(511和513)生成在t之前的时间实例t-1处和在t之后的时间实例t+1处共享装置C的预测测量结果(517和519)。当在时间实例t-1之后的时间实例t处的输入测量结果变得可用时,RNN模型(511和513)可以可选地对在时间实例t-1处的测量结果的预测进行更新。In one embodiment, the devices (A, ..., C and E) provide orientation measurements (501, ..., 505, . . . ., 509). When the measurement at time instance t is provided to the RNN model (511 and 513), the RNN model (511 and 513) generates The predicted measurements of device C are shared (517 and 519). When input measurements at time instance t after time instance t-1 become available, the RNN model (511 and 513) may optionally update the prediction of the measurement at time instance t-1.

例如,当针对时间实例1,2,...,t-2,将输入测量结果的序列作为输入提供给RNN模型(511和513)时,RNN模型(511和513)可以生成在最后时间实例t-2之前的时间实例t-3处和在最后时间实例t-2之后的时间实例t-1处共享装置C的预测的测量结果。在针对时间实例t-1和t的输入测量结果被另外添加到RNN模型(511和513)之后,RNN模型(511和513)可以可选地使用在时间实例t-1和t处的输入测量结果来对时间实例t-1处的测量结果的预测进行更新。For example, when a sequence of input measurements is provided as input to the RNN model (511 and 513) for time instances 1, 2, ..., t-2, the RNN model (511 and 513) can generate The predicted measurements of device C are shared at time instance t-3 before t-2 and at time instance t-1 after the last time instance t-2. After the input measurements for time instances t-1 and t are additionally added to the RNN model (511 and 513), the RNN model (511 and 513) can optionally use the input measurements at time instances t-1 and t The prediction of the measurement at time instance t-1 is updated as a result.

可替选地,过去时间实例的预测测量结果被存储并作为输入被用于BLSTM网络(521)。例如,基于在时间实例1,2,...,t-2处的输入测量结果的序列来生成在时间实例t-1处装置C的预测的取向测量结果,其在时间实例1,2,...,t处的输入测量结果序列允许RNN模型(511和513)生成时间实例t+1处装置C的预测的取向测量结果时被存储和用在BLSTM网络(521)中。Alternatively, predicted measurements of past time instances are stored and used as input to the BLSTM network (521). For example, a predicted orientation measurement of device C at time instance t-1 is generated based on a sequence of input measurements at time instances 1, 2, ..., t-2, which at time instances 1, 2, ..., the sequence of input measurements at t is stored and used in the BLSTM network (521) when allowing the RNN models (511 and 513) to generate predicted orientation measurements for device C at time instance t+1.

根据来自装置(例如,115、111和113)针对时间实例1,2,...,t处运动链Y(例如,锁骨运动链)的取向测量结果序列(505,...,509),RNN模型(513)生成预测的测量结果(519)的部分,包括在时间实例t-1和t+1处装置C(例如,臂模块(115))的预测的取向(517)。From the sequence of orientation measurements (505, ..., 509) of the kinematic chain Y (e.g., the clavicle kinematic chain) at time instances 1, 2, ..., t from the devices (e.g., 115, 111, and 113), The RNN model (513) generates portions of predicted measurements (519), including predicted orientations (517) of device C (eg, arm module (115)) at time instances t-1 and t+1.

由于装置C(例如,臂模块(115))在运动链X(例如,前臂运动链)和运动链Y(例如,锁骨运动链)两者中,因此在时间实例t-1和t+1处针对装置C生成不同的预测的测量结果(515和519)。在时间t-1和t+1处的不同预测作为输入被提供给双向长短期记忆(BLSTM)网络(521),以生成时间实例t处装置C(例如,臂模块(115))的预测的取向。Since device C (e.g., arm module (115)) is in both kinematic chain X (e.g., forearm kinematic chain) and kinematic chain Y (e.g., clavicle kinematic chain), at time instances t−1 and t+1 Different predicted measurements are generated for device C (515 and 519). The different predictions at time t-1 and t+1 are given as input to a Bidirectional Long Short-Term Memory (BLSTM) network (521) to generate the orientation.

可以使用监督机器学习技术来训练双向长短期记忆(BLSTM)网络(521)。A Bidirectional Long Short Term Memory (BLSTM) network (521) may be trained using supervised machine learning techniques.

例如,跟踪系统A(301)(例如,基于IMU的跟踪系统)可以被用于生成输入测量结果A(305),包括针对运动链X(例如,前臂运动链)的输入测量结果和针对运动链Y(例如,锁骨运动链)的输入测量结果。跟踪系统B(302)(例如,光学跟踪系统)可以被用于生成期望的测量结果B(306),其包括针对运动链X(例如,前臂运动链)的期望的测量结果和针对运动链Y(例如,锁骨运动链)的期望的测量结果。RNN模型(511和513)被分开训练以根据输入测量结果A(305)来预测期望的测量结果B(306)。此外,RNN模型(511和513)的输出作为输入被用于BLSTM网络(521),BLSTM网络(521)还被训练为如在由跟踪系统B(302)生成的测量结果B(306)中那样来预测装置C的期望的测量结果。For example, tracking system A (301) (e.g., an IMU-based tracking system) may be used to generate input measurements A (305), including input measurements for kinematic chain X (e.g., forearm kinematic chain) and for kinematic chain X (e.g., forearm kinematic chain). Input measurements for Y (eg, clavicle kinematic chain). Tracking system B (302) (e.g., an optical tracking system) may be used to generate desired measurements B (306), which include desired measurements for kinematic chain X (e.g., forearm kinematic chain) and for kinematic chain Y (eg, the clavicle kinematic chain) for the desired measurement. The RNN models (511 and 513) are trained separately to predict the desired measurement B (306) from the input measurement A (305). Furthermore, the output of the RNN model (511 and 513) is used as input to the BLSTM network (521), which is also trained as in the measurement result B (306) generated by the tracking system B (302). To predict the expected measurement results of device C.

在图10中,BLSTM网络(521)在生成时间实例t处装置C的预测的取向(523)时,不使用从RNN模型(511和513)预测的时间实例t处装置C的预测的取向测量结果。In Figure 10, the BLSTM network (521) does not use the predicted orientation measure of device C at time instance t predicted from the RNN models (511 and 513) when generating the predicted orientation of device C at time instance t (523) result.

在其他实施方式中,BLSTM网络(521)可以接收另外的输入,诸如在时间实例t处由装置C测量出的取向、在时间实例t之前由装置C测量出的(一个或多个)取向、和/或在时间实例t和/或其他时间实例处由运动链X和Y中的其他装置测量出的取向。In other embodiments, the BLSTM network (521) may receive additional inputs such as an orientation measured by device C at time instance t, an orientation(s) measured by device C prior to time instance t, and/or orientations measured by other devices in the kinematic chain X and Y at time instance t and/or other time instances.

图10示出了组合两个运动链的示例。该系统可以被扩展到组合多于两个的运动链。例如,可以使用感测装置(119,113)来跟踪左前臂运动链;可以使用感测装置(117和115)来跟踪右前臂运动链;并且可以使用感测装置(113、115和可选地111)来跟踪锁骨运动链。左前臂运动链和锁骨运动链共享使用共同装置(113)来跟踪的共同部位(103);并且右前臂运动链和锁骨运动链共享使用共同装置(115)来跟踪的共同部位(105)。针对左前臂运动链和锁骨运动链的RNN模型可以针对其共享装置(113)和部位(103)生成不同的预测的取向测量结果;并且针对右前臂运动链和锁骨运动链的RNN模型可以针对其共享装置(115)和部位(105)生成不同的预测的取向测量结果。可以使用两个BLSTM网络(例如,521),一个用于组合对左前臂运动链和锁骨运动链中的共享装置(113)的不同预测,并且另一个用于组合对右前臂运动链和锁骨运动链中的共享装置(115)的不同预测。BLSTM网络(例如,521)分别生成共享装置(113和115)的预测的取向。Figure 10 shows an example of combining two kinematic chains. The system can be extended to combine more than two kinematic chains. For example, the left forearm kinematic chain can be tracked using sensing devices (119, 113); the right forearm kinematic chain can be tracked using sensing devices (117 and 115); and the sensing devices (113, 115 and optionally 111) to track the clavicle kinematic chain. The left forearm kinematic chain and the clavicle kinematic chain share a common site (103) tracked using a common device (113); and the right forearm kinematic chain and the clavicle kinematic chain share a common site (105) tracked using a common device (115). RNN models for the left forearm and clavicle kinematic chains can generate different predicted orientation measurements for their shared device (113) and site (103); and RNN models for the right forearm and clavicle kinematic chains can generate different predicted orientation measurements for their The shared device (115) and site (105) generate different predicted orientation measurements. Two BLSTM networks (e.g., 521) can be used, one for combining different predictions for the shared device (113) in the left forearm kinematic chain and clavicle kinematic chain, and another for combining the right forearm kinematic chain and clavicle kinematic chain Different projections for shared devices (115) in the chain. The BLSTM network (eg, 521) generates the predicted orientations of the shared devices (113 and 115), respectively.

可替选地,单个BLSTM网络(例如,521)可以被用于组合对左前臂运动链和锁骨运动链中的共享装置(113)的不同预测以及对右前臂运动链和锁骨运动链中的共享装置(115)的不同预测,以分别生成共享装置(113和115)的预测的取向。Alternatively, a single BLSTM network (e.g., 521) can be used to combine the different predictions for the shared device (113) in the left forearm and clavicle kinematic chains and the sharing in the right forearm and clavicle kinematic chains different predictions of the device (115) to generate the predicted orientations of the shared devices (113 and 115), respectively.

图10示出了使用BLSTM网络(521)来组合运动链的示例。一般而言,也可以使用其他人工神经网络和/或递归神经网络。Figure 10 shows an example of combining a kinematic chain using a BLSTM network (521). In general, other artificial neural networks and/or recurrent neural networks may also be used.

图11示出了根据一个实施例的用于对来自针对具有重叠部位的运动链的不同人工神经网络的结果进行组合的另一种技术。FIG. 11 illustrates another technique for combining results from different artificial neural networks for kinematic chains with overlapping sites, according to one embodiment.

在图11中,装置(A,...,C,...,E)以类似于图10中讨论的方式生成针对不同运动链X和Y的RNN模型(512和514)的输入取向测量结果(501,...,505,...,509)。In Fig. 11, devices (A, ..., C, ..., E) generate input orientation measurements for RNN models (512 and 514) of different kinematic chains X and Y in a manner similar to that discussed in Fig. 10 result(501,...,505,...,509).

在图11中,预测的取向(535)包括针对时间实例t处装置C预测的取向(537和539),其中在运动链X和Y中共享装置C。来自针对不同运动链(X和Y)的RNN模型(512和514)的不同预测(537和539)的平均值(531)被计算作为在时间实例t处装置C的预测的取向(533)。In FIG. 11 , the predicted orientation (535) includes the predicted orientation (537 and 539) for device C at time instance t, where device C is shared in kinematic chains X and Y. The mean (531) of the different predictions (537 and 539) from the RNN models (512 and 514) for the different kinematic chains (X and Y) is computed as the predicted orientation of device C at time instance t (533).

优选地,为了减小针对相同装置C做出的不同预测(537和539)之间的差异,当使用两个RNN模型(512和514)时,对RNN模型(512和514)进行调整。对RNN模型(512和514)做出调整,以使预测(537和539)接近在时间实例t处由装置C生成的输入取向测量结果。Preferably, when using two RNN models (512 and 514), the RNN models (512 and 514) are adjusted in order to reduce the discrepancy between different predictions (537 and 539) made for the same device C. Adjustments are made to the RNN model (512 and 514) so that the predictions (537 and 539) approximate the input orientation measurements generated by device C at time instance t.

例如,被应用于由装置C生成的输入测量结果(505)的RNN模型(512和514)的遗忘率可以被减小,以使装置C的预测的取向接近由装置C测量出的取向。For example, the forgetting rate of the RNN model (512 and 514) applied to the input measurements generated by device C (505) may be reduced so that the predicted orientation of device C approaches the orientation measured by device C.

例如,被应用于由除装置C以外的装置生成的输入测量结果(例如,501和509)的RNN模型(512和514)的遗忘率可以被增大,以使装置C的预测的取向接近由装置C测量出的取向。For example, the forgetting rates of RNN models (512 and 514) applied to input measurements (e.g., 501 and 509) generated by devices other than device C may be increased so that device C's predicted orientation is closer to that generated by The orientation measured by device C.

例如,被应用于由装置C生成的输入测量结果(505)的RNN模型(512和514)的权重可以被增大,以使装置C的预测的取向接近由装置C测量出的取向。For example, the weights of the RNN models (512 and 514) applied to the input measurements generated by device C (505) may be increased so that the predicted orientation of device C approaches the orientation measured by device C.

例如,被应用于由除装置C以外的装置生成的输入测量结果(例如,501和509)的RNN模型(512和514)的权重可以被减小,以使装置C的预测的取向接近由装置C测量出的取向。For example, the weights of the RNN models (512 and 514) applied to the input measurements (e.g., 501 and 509) generated by devices other than device C may be reduced so that the predicted orientation of device C is closer to that produced by device C C measured orientation.

在一些情况下,当RNN模型(512和514)被一起使用时,RNN模型(512和514)还被训练为使装置C的预测的测量结果(537和539)之间的差异最小化。In some cases, when the RNN models (512 and 514) are used together, the RNN models (512 and 514) are also trained to minimize the difference between the predicted measurements (537 and 539) of device C.

在一些实施方式中,平均值(531)包括使用机器学习技术获得的权重,以预测使用光学跟踪系统得出的取向测量结果。可选地,平均值(531)还以使用监督机器学习技术获得的权重来接收时间实例t处装置C的取向测量结果。In some embodiments, the average (531 ) includes weights obtained using machine learning techniques to predict orientation measurements made using the optical tracking system. Optionally, the average (531) also receives the orientation measurements of device C at time instance t with weights obtained using supervised machine learning techniques.

图10和图11的技术可以被组合和一起使用。例如,在针对共享装置C的预测(例如537和539)中产生减小差异的图11中的经调整的RNN模型(512和514)可以在图10中被用于代替单独训练的RNN模型(511和513);并且BLSTM网络(521)可以被用于根据预测的取向(517和519)来生成预测的取向(523),所述预测的取向(517和519)与由单独训练的RNN模型(511和513)生成的那些预测相比具有减小的差异。此外,平均值(531)的输出可以作为输入被提供给BLSTM网络(521)。The techniques of Figures 10 and 11 can be combined and used together. For example, the tuned RNN models (512 and 514) in FIG. 11 that produced reduced variance in predictions for shared device C (e.g., 537 and 539) could be used in FIG. 10 in place of the separately trained RNN models ( 511 and 513); and the BLSTM network (521) can be used to generate a predicted orientation (523) from the predicted orientation (517 and 519) that is compatible with the RNN model trained separately (511 and 513) generated predictions with reduced variance compared to those. Furthermore, the output of the average (531) can be provided as input to the BLSTM network (521).

在一个实施方式中,针对运动链X生成两个RNN模型(511和512)。当在不跟踪运动链Y的情况下跟踪运动链X时,在不考虑在运动链X和Y之间的装置C的预测之间的差异的情况下被训练的RNN模型(511)被使用。当跟踪运动链X和运动链Y两者时,被训练和/或调整为使运动链X和Y之间的装置C的预测之间的差异减小的RNN模型(512)被使用。In one embodiment, two RNN models (511 and 512) are generated for the kinematic chain X. When tracking kinematic chain X without tracking kinematic chain Y, the RNN model ( 511 ) trained without considering the difference between device C's predictions between kinematic chains X and Y is used. When tracking both kinematic chain X and kinematic chain Y, an RNN model trained and/or tuned to reduce the difference between device C's predictions between kinematic chains X and Y is used (512).

可替选地,在RNN模型(512和514)被训练为使共享装置C的不同预测(537和539)之间的差异减小之后,RNN模型(512和514)可以被单独地使用。例如,当在不跟踪运动链Y的情况下跟踪运动链X时,使用RNN模型(512);并且当在不跟踪运动链X的情况下跟踪运动链Y时,使用RNN模型(514)。Alternatively, the RNN models (512 and 514) may be used individually after the RNN models (512 and 514) have been trained to reduce the variance between the different predictions (537 and 539) of the shared device C. For example, when tracking kinematic chain X without tracking kinematic chain Y, the RNN model is used (512); and when kinematic chain Y is not tracked, the RNN model is used (514).

图12示出了根据一个实施例的用于训练针对具有重叠部位的多个运动链的多个人工神经网络的方法。例如,图12的方法可以被用于生成图10的RNN模型(511和513)和BLSTM网络(521)和/或图11的RNN模型(512和514)。Figure 12 illustrates a method for training multiple artificial neural networks for multiple kinematic chains with overlapping parts, according to one embodiment. For example, the method of FIG. 12 may be used to generate the RNN model (511 and 513) and the BLSTM network (521) of FIG. 10 and/or the RNN model (512 and 514) of FIG. 11 .

图12的方法包括训练(551)第一RNN(例如,511或512)来预测第一运动链(例如,前臂运动链)的取向测量结果。使用来自跟踪系统A(301)(例如,基于IMU的跟踪系统)的测量结果A(305)做出预测,以与来自跟踪系统B(302)(例如,光学跟踪系统)的测量结果B匹配。The method of Figure 12 includes training (551) a first RNN (eg, 511 or 512) to predict orientation measurements of a first kinematic chain (eg, forearm kinematic chain). Predictions are made using measurements A (305) from tracking system A (301) (eg, an IMU-based tracking system) to match measurements B from tracking system B (302) (eg, an optical tracking system).

图12的方法还包括以类似于第一RNN(例如,511或512)的训练(551)的方式训练(553)第二RNN(例如,511或512)来预测与第一运动链(例如,前臂运动链)共享至少一个部位(例如,上臂)的第二运动链(例如,锁骨运动链)的取向测量结果。The method of FIG. 12 also includes training (553) a second RNN (e.g., 511 or 512) in a manner similar to the training (551) of the first RNN (e.g., 511 or 512) to predict Forearm kinematic chain) shares orientation measurements of a second kinematic chain (eg, clavicle kinematic chain) of at least one site (eg, upper arm).

图12的方法还包括训练(555)第三RNN(例如,521)来至少部分地基于从第一RNN和第二RNN针对至少一个部位(例如,上臂)生成的预测结果预测第一运动链(例如,前臂运动链)和第二运动链(例如,锁骨运动链)之间共享的至少一个部位(例如,前臂)的取向测量结果。The method of FIG. 12 also includes training (555) a third RNN (e.g., 521) to predict a first kinematic chain (e.g., For example, orientation measurements of at least one site (eg, forearm) shared between a forearm kinematic chain) and a second kinematic chain (eg, clavicle kinematic chain).

可选地,图12的方法还可以包括训练第一RNN(例如,511或512)和第二RNN(例如,511或512)以减小第一RNN(例如,511或512)和第二RNN(例如,511或512)之间针对第一运动链(例如,前臂运动链)和第二运动链(例如,锁骨运动链)之间共享的至少一个部位(例如,上臂)的预测差异。Optionally, the method of FIG. 12 may also include training the first RNN (for example, 511 or 512) and the second RNN (for example, 511 or 512) to reduce the first RNN (for example, 511 or 512) and the second RNN Predicted differences between (eg, 511 or 512 ) for at least one site (eg, upper arm) shared between a first kinematic chain (eg, forearm kinematic chain) and a second kinematic chain (eg, clavicle kinematic chain).

当第一RNN(例如,511或512)和第二RNN(例如,511或512)被训练为减小其针对第一运动链(例如,前臂运动链)和第二运动链(例如,锁骨运动链)中的共享部位的预测差异时,第三RNN(例如,521)的训练可以被跳过;并且平均值(531)可以被用于组合不同的预测(例如,537和539)。When the first RNN (e.g., 511 or 512) and the second RNN (e.g., 511 or 512) are trained to reduce the The training of the third RNN (eg, 521 ) can be skipped when the predictions for shared parts in the chain) differ; and the average (531 ) can be used to combine the different predictions (eg, 537 and 539 ).

图13示出了根据一个实施例的用于使用单独的人工神经网络来预测为模块的多个运动链的重叠部位的运动测量结果的方法。例如,图13的方法可以被用在图10中所示的系统中。Figure 13 illustrates a method for predicting motion measurements for overlapping parts of multiple kinematic chains as modules using separate artificial neural networks, according to one embodiment. For example, the method of FIG. 13 may be used in the system shown in FIG. 10 .

图13的方法包括:从多个运动感测装置(例如,111、113、115、117、119)接收(561)传感器测量结果;将来自运动感测装置的第一子集(例如,111、113、115)的传感器测量结果作为输入应用(563)于第一RNN(例如,511或512),以获得具有第一部位集合(例如,头(107)、躯干(101)和上臂(103和105))的第一运动链的第一预测的测量结果;将来自运动感测装置的第二子集(例如,117和115,和/或113和119)的传感器测量结果作为输入应用(565)于第二RNN(513或514),以获得具有第二部位集合(例如,手(106)、前臂(114)和上臂(105);和/或手(108)、前臂(112)和上臂(103))的第二运动链的第二预测的测量结果;以及将第一预测的测量结果(例如,517或537)的至少一部分和第二预测的测量结果(例如,519或539)的一部分应用(567)于第三RNN(例如,521),以获得在第一运动链和第二运动链两者中的至少一个部位(例如,105或103)的第三预测的测量结果(例如,523)。The method of FIG. 13 includes: receiving (561) sensor measurements from a plurality of motion sensing devices (e.g., 111, 113, 115, 117, 119); 113, 115) sensor measurements are applied (563) as input to a first RNN (e.g., 511 or 512) to obtain 105)) first predicted measurements of a first kinematic chain; sensor measurements from a second subset of motion sensing devices (e.g., 117 and 115, and/or 113 and 119) are applied as input (565 ) in the second RNN (513 or 514) to obtain a set of parts with a second set (for example, hand (106), forearm (114) and upper arm (105); and/or hand (108), forearm (112) and upper arm (103)) second predicted measurements of the second kinematic chain; and combining at least a portion of the first predicted measurements (e.g., 517 or 537) with the second predicted measurements (e.g., 519 or 539) A portion is applied (567) to a third RNN (e.g., 521) to obtain a third predicted measurement (e.g., , 523).

图14示出了根据一个实施例的用于使用具有针对多个运动链的多个人工神经网络的骨架模型的方法。例如,图14的方法可以被用在图10或图11中所示的系统中。Figure 14 illustrates a method for using a skeletal model with multiple artificial neural networks for multiple kinematic chains, according to one embodiment. For example, the method of FIG. 14 may be used in the systems shown in FIG. 10 or FIG. 11 .

图14的方法包括从多个运动感测装置(例如,111、113、115、117和/或119)接收(581)传感器测量结果。The method of FIG. 14 includes receiving ( 581 ) sensor measurements from a plurality of motion sensing devices (eg, 111 , 113 , 115 , 117 , and/or 119 ).

如果(583)该装置跟踪第一运动链(例如,头(107)、躯干(101)、上臂(105和103))的运动,则图14的方法还包括使用传感器测量结果的至少一部分从第一RNN(511或512)获得(585)预测的运动测量结果(例如,517和/或537)。If (583) the device tracks motion of a first kinematic chain (e.g., head (107), torso (101), upper arms (105 and 103)), the method of FIG. An RNN (511 or 512) obtains (585) the predicted motion measurements (eg, 517 and/or 537).

如果(587)该装置跟踪第二运动链(例如,手(106)、前臂(114)和上臂(105);或者手(108)、前臂(112)和上臂(103))的运动,则图14的方法还包括使用传感器测量结果的至少一部分从第二RNN(513或514)获得(589)预测的运动测量结果(519和/或539)。If (587) the device tracks the motion of a second kinematic chain (e.g., hand (106), forearm (114), and upper arm (105); or hand (108), forearm (112), and upper arm (103)), then Fig. The method of 14 also includes obtaining (589) predicted motion measurements (519 and/or 539) from the second RNN (513 or 514) using at least a portion of the sensor measurements.

如果(591)该装置跟踪第一运动链和第二运动链两者,则图14的方法还包括使用来自第一RNN和第二RNN(511和513)的预测的运动测量结果(例如,517和519)的至少一部分从第三RNN(例如,521)获得(593)第一链和第二链的共同部位的预测的运动测量结果(523)。If (591) the device tracks both the first kinematic chain and the second kinematic chain, the method of FIG. 14 also includes using predicted motion measurements (e.g., 517 and 519 ) obtain ( 593 ) from a third RNN (eg, 521 ) predicted motion measurements ( 523 ) of common parts of the first strand and the second strand.

在一些情况下,响应于确定该装置跟踪第一运动链和第二运动链两者,第一RNN(511)和第二RNN被调整为减小针对第一链和第二链的共同部位做出的预测之间的差异。In some cases, in response to determining that the device tracks both the first and second kinematic chains, the first RNN (511) and the second RNN are adjusted to reduce difference between the forecasts.

例如,系统可以包括:多个传感器模块(例如,111、113、115、117和/或119);以及计算装置(141),其被耦合到多个传感器模块。For example, a system may include: a plurality of sensor modules (eg, 111, 113, 115, 117, and/or 119); and a computing device (141) coupled to the plurality of sensor modules.

每个相应的传感器模块(例如,111、113、115、117或119)具有惯性测量单元(例如,121,131,...)并且被附接到用户的部位以生成标识用户的部位的取向序列的运动数据。Each respective sensor module (e.g., 111, 113, 115, 117, or 119) has an inertial measurement unit (e.g., 121, 131, ...) and is attached to the user's part to generate an orientation identifying the user's part Sequence of motion data.

多个传感器模块包括第一子集(例如,111、113、115)和第二子集(例如,115和117),其共享第一子集和第二子集之间的共同传感器模块(例如,115)。The plurality of sensor modules includes a first subset (eg, 111, 113, 115) and a second subset (eg, 115 and 117) that share common sensor modules between the first and second subsets (eg, , 115).

计算装置(141)将由第一子集(例如,111、113、115)生成的取向测量结果(例如,501,...,505)作为输入提供给第一人工神经网络(511或512),并且获得作为来自第一人工神经网络(511或512)的输出的用户的共同部位(例如,105)(其上附接了共同传感器模块(例如,115))的至少一个第一取向测量结果(例如,517或537)。the computing means (141) provides as input to the first artificial neural network (511 or 512) the orientation measurements (eg, 501, ..., 505) generated by the first subset (eg, 111, 113, 115), and obtaining as an output from the first artificial neural network (511 or 512) at least one first orientation measurement ( For example, 517 or 537).

计算装置(141)还将由第二子集(例如,115和117)生成的取向测量结果(例如,505,...,509)作为输入提供给第二人工神经网络(513或154),并且获得作为来自第二人工神经网络(513或514)的输出的用户的共同部位(例如,105)的至少一个第二取向测量结果(例如,519或539)。The computing means (141) also provides orientation measurements (e.g., 505, ..., 509) generated by the second subset (e.g., 115 and 117) as input to the second artificial neural network (513 or 154), and At least one second orientation measurement (eg, 519 or 539) of a common part of the user (eg, 105) is obtained as an output from the second artificial neural network (513 or 514).

计算装置(141)根据用户的共同部位(例如,105)的至少一个第一取向测量结果(517或537)和用户的共同部位(例如,105)的至少一个第二取向测量结果(519或539)的组合(例如,521或531)生成用户的共同部位(例如,105)的预测的取向测量结果(例如,523)。The computing device (141) based on at least one first orientation measurement (517 or 537) of the user's common part (eg, 105) and at least one second orientation measurement (519 or 539) of the user's common part (eg, 105) ) combination (eg, 521 or 531) to generate a predicted orientation measurement (eg, 523) of the user's common part (eg, 105).

例如,第一人工神经网络和第二人工神经网络可以是包含长短期记忆(LSTM)单元的递归神经网络;并且可以使用至少包含双向长短期记忆(BLSTM)单元的第三人工神经网络(例如,521)来执行该组合。可替选地,可以经由对用户的共同部位(例如,105)的第一取向测量结果(537)和用户的共同部位(例如,105)的第二取向测量结果(539)进行平均来执行该组合。For example, the first artificial neural network and the second artificial neural network may be recurrent neural networks comprising long short-term memory (LSTM) units; and a third artificial neural network comprising at least bidirectional long short-term memory (BLSTM) units (e.g., 521) to perform the combination. Alternatively, this may be performed via averaging a first orientation measurement (537) of the user's common part (eg, 105) and a second orientation measurement (539) of the user's common part (eg, 105). combination.

例如,针对第一时间实例t预测共同部位的预测的取向测量结果(523);用户的共同部位(例如,105)的至少一个第一取向测量结果(517)包括:由第一人工神经网络(511或512)预测的在第一时间实例t之前的第二时间实例t-1处共同部位(例如,105)的取向测量结果;以及由第一人工神经网络(511或512)预测的在第一时间实例之后的第三时间实例处共同部位(例如,105)的取向测量结果;并且用户的共同部位(例如,105)的至少一个第二取向测量结果(519)包括:由第二人工神经网络(513或514)预测的在第一时间实例t之前的第二时间实例t-1处共同部位(例如,105)的取向测量结果;以及由第二人工神经网络(例如,513或514)预测的在第一时间实例t之后的第三时间实例t+1处共同部位(例如,105)的取向测量结果。For example, predicting predicted orientation measurements (523) of a common part for a first time instance t; at least one first orientation measurement (517) of a common part (e.g., 105) of a user comprising: generated by a first artificial neural network ( 511 or 512) predicted orientation measurements of a common site (eg, 105) at a second time instance t−1 before the first time instance t; and predicted by the first artificial neural network (511 or 512) at an orientation measurement of the common part (e.g., 105) at a third time instance subsequent to the one time instance; and at least one second orientation measurement (519) of the user's common part (e.g., 105) comprising: an orientation measurement of the common site (e.g., 105) predicted by the network (513 or 514) at a second time instance t−1 prior to the first time instance t; and a second artificial neural network (e.g., 513 or 514) Predicted orientation measurements of the common site (eg, 105 ) at a third time instance t+1 after the first time instance t.

在一些情况下,使用后续时间实例t处的测量结果(501,...,505,...,509)在人工神经网络(例如,511、514)中更新针对时间实例t-1做出的预测。In some cases, the measurements made for time instance t−1 are updated in the artificial neural network (e.g., 511, 514) using measurements (501, ..., 505, ..., 509) at subsequent time instances t-1. Prediction.

例如,对要使用光学跟踪系统(其被用于训练在该预测中所使用的人工神经网络)测量出的共同部位(例如,105)的预测的取向测量结果(523或533)进行预测,使得在人工神经网络已被训练好之后可以从该系统中去除该光学跟踪系统。For example, the predicted orientation measurements (523 or 533) of a common site (e.g., 105) to be measured using an optical tracking system (which is used to train the artificial neural network used in the prediction) are predicted such that The optical tracking system can be removed from the system after the artificial neural network has been trained.

计算装置(141)可以具有骨架模型(143)。所跟踪的用户的移动对骨架模型(143)的对应部位的移动进行控制。例如,第一子集(例如,111、113和115)跟踪用户的第一运动链(例如,头(107)、躯干(101)和上臂(103和105))以控制骨架模型(143)的对应运动链(例如,207、232、203和205)的移动;并且第二子集(例如,115和117)跟踪用户的第二链(例如,手(106)、前臂(114)和上臂(105))以控制骨架模型(143)的对应运动链(206、215、205)的移动。The computing device (141) may have a skeletal model (143). The tracked movement of the user controls the movement of the corresponding parts of the skeletal model (143). For example, a first subset (e.g., 111, 113, and 115) tracks the user's first kinematic chain (e.g., head (107), torso (101), and upper arms (103 and 105)) to control the motion of the skeletal model (143). movement of the corresponding kinematic chain (e.g., 207, 232, 203, and 205); and a second subset (e.g., 115 and 117) tracks the user's second chain (e.g., hand (106), forearm (114), and upper arm ( 105)) to control the movement of the corresponding kinematic chains (206, 215, 205) of the skeletal model (143).

在一些情况下,不使用被附接到第一部位(例如,躯干(101))的任何惯性测量单元来跟踪用户的运动链中的第一部位(例如,躯干(101))的取向;不使用被附接到第二部位(例如,前臂(114))的任何惯性测量单元来跟踪用户的运动链中的第二部位(例如,前臂(114))的取向;第一人工神经网络(例如,511或512)根据由第一子集(例如,111、113、115)生成的取向测量结果来预测第一部位(例如,躯干(101))的取向;并且第二人工神经网络(例如,513或514)根据由第二子集(例如,115和117)生成的取向测量结果来预测第二部位(例如,前臂(114))的取向。In some cases, the orientation of the first part (e.g., torso (101)) in the user's kinematic chain is not tracked using any inertial measurement unit attached to the first part (e.g., torso (101)); Use any inertial measurement unit attached to the second part (e.g., forearm (114)) to track the orientation of the second part (e.g., forearm (114)) in the user's kinematic chain; the first artificial neural network (e.g., , 511 or 512) to predict the orientation of the first part (e.g., torso (101)) from the orientation measurements generated by the first subset (e.g., 111, 113, 115); and the second artificial neural network (e.g., 513 or 514) Predict the orientation of the second part (eg, the forearm (114)) from the orientation measurements generated by the second subset (eg, 115 and 117).

每个惯性测量单元(例如,121、131、...)可以包括微机电系统(MEMS)陀螺仪和可选地磁力计和MEMS加速度计。Each inertial measurement unit (eg, 121 , 131 , . . . ) may include a microelectromechanical system (MEMS) gyroscope and optionally a magnetometer and MEMS accelerometer.

可以使用所使用系统中没有的单独的跟踪系统训练人工神经网络(例如,511、512、513、514、521)来跟踪用户的运动,以控制计算装置中的骨架模型(141)。例如,单独的跟踪系统可以是光学跟踪系统,其使用一个或多个相机来确定光学标记物的取向。为了生成训练数据集,可以将光学标记物放置在类似于被用于跟踪用户的运动的那些传感器模块的传感器模块上。The artificial neural network (eg, 511, 512, 513, 514, 521) may be trained to track the user's motion using a separate tracking system not present in the system used to control the skeletal model (141) in the computing device. For example, a separate tracking system may be an optical tracking system that uses one or more cameras to determine the orientation of optical markers. To generate the training data set, optical markers may be placed on sensor modules similar to those used to track the user's movements.

例如,多个传感器模块可以被附接到执行运动的人,以生成训练数据集。以类似于跟踪用户的运动的方式,多个传感器模块包括用于跟踪人的第一运动链(例如,107、101、103和105)的取向的传感器模块的第一子集(例如,111、113和115)以及用于跟踪人的第二运动链(106、114和105)的取向的传感器模块的第二子集(例如,117和115)。第一运动链和第二运动链具有人的共同部位(例如,105)。For example, multiple sensor modules can be attached to a person performing an exercise to generate a training data set. In a manner similar to tracking the motion of the user, the plurality of sensor modules includes a first subset of sensor modules (e.g., 111, 113 and 115) and a second subset of sensor modules (eg, 117 and 115) for tracking the orientation of the person's second kinematic chain (106, 114 and 105). The first kinematic chain and the second kinematic chain have a common part of the person (eg, 105).

除了使用传感器模块(例如,111、113、115、117)在人执行多个运动序列期间测量传感器模块的多个取向序列以外,单独的跟踪系统被用于在人执行多个运动序列期间独立于传感器模块的测量结果来测量传感器模块(例如,111、113、115和/或117)的取向。In addition to using the sensor modules (e.g., 111, 113, 115, 117) to measure multiple orientation sequences of the sensor modules during the multiple motion sequences performed by the person, a separate tracking system is used during the multiple motion sequences performed by the person independently of the The orientation of the sensor modules (eg, 111 , 113 , 115 and/or 117 ) is measured using the measurements of the sensor modules.

使用监督机器学习技术训练第一人工神经网络(例如,511或512)以使用来自第一子集(例如,111、113、115)的取向测量结果来预测从单独的跟踪系统生成的第一运动链(例如,107、101、103和105)的取向测量结果。A first artificial neural network (e.g., 511 or 512) is trained using supervised machine learning techniques to predict a first motion generated from a separate tracking system using orientation measurements from a first subset (e.g., 111, 113, 115) Orientation measurements of chains (eg, 107, 101, 103, and 105).

类似地,使用监督机器学习技术训练第二人工神经网络(例如,513或514)以使用来自第二子集(例如,115和117)的取向测量结果来预测从单独的跟踪系统生成的第二运动链(例如,106、114和105)的取向测量结果。Similarly, a second artificial neural network (e.g., 513 or 514) is trained using supervised machine learning techniques to use orientation measurements from a second subset (e.g., 115 and 117) to predict a second ANN generated from a separate tracking system. Orientation measurements of the kinematic chain (eg, 106, 114, and 105).

可以使用监督机器学习技术训练第三人工神经网络以根据从第一人工神经网络(例如,511或512)生成的人的共同部位(例如,105)的第一预测的取向测量结果(例如,537)以及从第二人工神经网络(例如,513或514)生成的人的共同部位(例如,105)的第二预测的取向测量结果(例如,539)来预测人的共同部位(例如,105)的取向测量结果。A third artificial neural network may be trained using supervised machine learning techniques to generate orientation measurements (e.g., 537) based on first predicted orientation measurements (e.g., 537) of a common part of a person (e.g., 105) generated from the first artificial neural network (e.g., 511 or 512). ) and a second predicted orientation measurement (eg, 539) of a common part of a person (eg, 105) generated by a second artificial neural network (eg, 513 or 514) to predict a common part of a person (eg, 105) Orientation measurement results.

可选地,第一人工神经网络和第二人工神经网络还可以(例如使用无监督的机器学习技术)被训练为减小分别从第一人工神经网络和第二人工神经网络做出的针对人的共同部位(例如,105)的预测之间的差异。Optionally, the first artificial neural network and the second artificial neural network may also be trained (e.g. using unsupervised machine learning techniques) to reduce the human-specific Differences between predictions for common sites (eg, 105 ).

本公开包括方法和执行这些方法的装置,包括执行这些方法的数据处理系统以及包含指令的计算机可读介质,所述指令在数据处理系统上被执行时致使该系统执行这些方法。The present disclosure includes methods and apparatus for performing these methods, including data processing systems for performing these methods, and computer-readable media containing instructions that, when executed on a data processing system, cause the system to perform the methods.

例如,计算装置(141)、臂模块(113、115)和/或头模块(111)可以使用一个或多个数据处理系统来实施。For example, computing device (141), arm modules (113, 115), and/or head module (111) may be implemented using one or more data processing systems.

典型的数据处理系统可以包括互连件(例如,总线和系统核逻辑),其互连(一个或多个)微处理器和存储器。微处理器典型地被耦合到缓冲存储器。A typical data processing system may include interconnects (eg, buses and system core logic) that interconnect the microprocessor(s) and memory. A microprocessor is typically coupled to a cache memory.

互连件将(一个或多个)微处理器和存储器互连在一起,并且经由(一个或多个)I/O控制器将它们互连到(一个或多个)输入/输出(I/O)装置。I/O装置可以包括显示装置和/或外围装置,诸如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机和本领域中已知的其他装置。在一个实施例中,当数据处理系统是服务器系统时,诸如打印机、扫描仪、鼠标和/或键盘的I/O装置中的一些是可选的。The interconnect interconnects the microprocessor(s) and memory together and via the I/O controller(s) to the input/output (I/O O) device. I/O devices may include display devices and/or peripheral devices such as mice, keyboards, modems, network interfaces, printers, scanners, cameras, and other devices known in the art. In one embodiment, some of the I/O devices, such as printers, scanners, mice, and/or keyboards, are optional when the data processing system is a server system.

互连件可以包括通过各种桥接器、控制器和/或适配器而彼此连接的一个或多个总线。在一个实施例中,I/O控制器包括用于控制USB外围设备的USB(通用串行总线)适配器和/或用于控制IEEE-1394外围设备的IEEE-1394总线适配器。The interconnect may include one or more buses connected to each other through various bridges, controllers, and/or adapters. In one embodiment, the I/O controller includes a USB (Universal Serial Bus) adapter for controlling USB peripherals and/or an IEEE-1394 bus adapter for controlling IEEE-1394 peripherals.

存储器可以包括以下中的一个或多个:ROM(只读存储器)、易失性RAM(随机存取存储器)和非易失性存储器,诸如硬盘驱动器、闪存等。The memory may include one or more of: ROM (Read Only Memory), volatile RAM (Random Access Memory), and non-volatile memory, such as hard drives, flash memory, and the like.

易失性RAM典型地被实施为动态RAM(DRAM),其需要连续地供电以便刷新或维护存储器中的数据。非易失性存储器典型地是磁性硬盘驱动器、磁性光学驱动器、光学驱动器(例如,DVD RAM)或者即使在该系统被断电之后也维护数据的其他类型的存储器系统。非易失性存储器也可以是随机存取存储器。Volatile RAM is typically implemented as dynamic RAM (DRAM), which requires continuous power in order to refresh or maintain data in the memory. Non-volatile memory is typically a magnetic hard drive, magnetic optical drive, optical drive (eg, DVD RAM), or other type of memory system that maintains data even after the system is powered down. Non-volatile memory can also be random access memory.

非易失性存储器可以是直接耦合到数据处理系统中的其余组件的本地装置。还可以使用远离系统的非易失性存储器,诸如通过网络接口(诸如调制解调器或以太网接口)而被耦合到数据处理系统的网络存储装置。Nonvolatile memory can be a local device that is directly coupled to the remaining components in the data processing system. Nonvolatile memory remote from the system, such as a network storage device coupled to the data processing system through a network interface such as a modem or Ethernet interface, also can be used.

在本公开中,一些功能和操作被描述为由软件代码执行或由软件代码引起以简化描述。然而,这样的表达还被用于指定由处理器(例如微处理器)执行代码/指令而产生功能。In the present disclosure, some functions and operations are described as being performed by or caused by software codes to simplify the description. However, such expressions are also used to designate that the execution of code/instructions by a processor (eg, a microprocessor) results in the functionality.

可替选地或组合地,这里描述的功能和操作可以使用具有或不具有软件指令的专用电路(诸如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA))来实施。实施例可以使用没有软件指令或者与软件指令相结合的硬连线电路来实施。因此,该技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。Alternatively or in combination, the functions and operations described herein may be implemented using dedicated circuitry with or without software instructions, such as using an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array (FPGA). Embodiments may be implemented using hardwired circuitry without or in combination with software instructions. Thus, the technology is neither limited to any specific combination of hardware circuitry and software nor to any specific source for the instructions executed by the data processing system.

尽管一个实施例可以被实施在功能完备的计算机和计算机系统中,但是各种实施例能够以各种形式被分布为计算产品,并且能够在不管被用于实际影响该分布的特定类型的机器或计算机可读介质如何下被应用。Although an embodiment may be implemented in fully functional computers and computer systems, the various embodiments can be distributed in various forms as computing products and can be distributed on a computer regardless of the particular type of machine or computer being used to actually effect the distribution. how computer readable media are used.

所公开的至少一些方面可以至少部分地被体现在软件中。即,可以在计算机系统或其他数据处理系统中响应于其处理器(诸如微处理器)执行存储器(诸如ROM、易失性RAM、非易失性存储器、缓存或远程存储装置)中所包含的指令序列而执行该技术。At least some of the disclosed aspects can be embodied, at least in part, in software. That is, information contained in memory (such as ROM, volatile RAM, non-volatile memory, cache memory, or remote storage) may be executed in a computer system or other data processing system in response to its processor (such as a microprocessor). sequence of instructions to execute the technique.

被执行以实施实施例的例程可以被实施为操作系统或被称为“计算机程序”的特定应用、组件、程序、对象、模块或指令序列的一部分。计算机程序典型地包括在计算机中的各种存储器和存储装置中的各种时间处的一个或多个指令集,并且其当在由计算机中的一个或多个处理器读取和执行时,致使计算机执行用于执行涉及各方面的要素所必需的操作。The routines executed to implement the embodiments may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions called a "computer program". A computer program typically includes one or more sets of instructions at various times in various memories and storage devices in a computer, and which, when read and executed by one or more processors in a computer, cause The computer performs operations necessary for performing elements involved in various aspects.

机器可读介质可以被用于存储软件和数据,其在由数据处理系统执行时致使执行各种方法。可执行的软件和数据可以被存储在各种位置(包括例如ROM、易失性RAM、非易失性存储器和/或高速缓存)中。此软件和/或数据的部分可以被存储在这些存储装置中的任何一个中。此外,可以从集中式服务器或对等网络获得数据和指令。可以在不同时间和在不同通信会话中或在相同通信会话中从不同的集中式服务器和/或对等网络获得数据和指令的不同部分。可以在执行应用之前以整体方式获得数据和指令。可替选地,数据和指令的部分可以在其被需要执行时而被动态地、及时地获得。因此,不要求数据和指令在特定时间实例以完全位于机器可读介质上。The machine-readable medium can be used to store software and data which, when executed by the data processing system, cause the performance of the various methods. Executable software and data may be stored in various locations including, for example, ROM, volatile RAM, non-volatile memory, and/or cache memory. Portions of this software and/or data may be stored in any of these storage devices. Additionally, data and instructions can be obtained from centralized servers or peer-to-peer networks. Different portions of data and instructions may be obtained from different centralized servers and/or peer-to-peer networks at different times and in different communication sessions or in the same communication session. Data and instructions can be obtained in bulk before the application is executed. Alternatively, portions of data and instructions may be obtained dynamically, just in time, as they are needed for execution. Thus, there is no requirement that the data and instructions reside entirely on the machine-readable medium at any particular instance of time.

计算机可读介质的示例包括但不限于非暂时性、可记录和不可记录类型介质,诸如易失性和非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、闪存装置、软盘和其他可移动的盘、磁盘存储介质、光学存储介质(例如,光盘只读存储器(CD ROM)、数字多功能盘(DVD)等),等等。计算机可读介质可以存储指令。Examples of computer readable media include, but are not limited to, non-transitory, recordable and non-recordable types of media such as volatile and nonvolatile memory devices, read only memory (ROM), random access memory (RAM), flash memory devices, floppy disks and other removable disks, magnetic disk storage media, optical storage media (eg, compact disk read only memory (CD ROM), digital versatile disk (DVD), etc.), and the like. A computer readable medium may store instructions.

指令还可以被体现在用于电、光、声或其他形式的传播信号的数字和模拟通信链路中,例如载波、红外信号、数字信号等。然而,传播的信号(诸如载波、红外信号、数字信号等)不是有形的机器可读介质,并且不配置为存储指令。Instructions may also be embodied in digital and analog communication links for electrical, optical, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, digital signals, and the like. However, a propagated signal (such as a carrier wave, infrared signal, digital signal, etc.) is not a tangible, machine-readable medium and is not configured to store instructions.

一般而言,机器可读介质包括以机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一个或多个处理器的组的任何装置等)可访问的形式提供(即,存储和/或传输)信息的任何机制。In general, machine-readable media include media that are provided (i.e., storage and and/or any mechanism for transmitting) information.

在各种实施例中,硬连线电路可以与软件指令结合使用以实施所述技术。因此,所述技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。In various embodiments, hard-wired circuitry may be used in conjunction with software instructions to implement the techniques. Thus, the techniques are not limited to any specific combination of hardware circuitry and software, nor to any specific source for instructions executed by a data processing system.

在前述说明书中,已经参考本公开的特定示例性实施例描述了本公开。将显而易见的是,在不脱离如在下面附权利要求中阐述的更广泛的精神和范围的情况下,可以对其进行各种修改。相应地,说明书和附图要被认为是说明性意义而非限制性意义。In the foregoing specification, the disclosure has been described with reference to specific exemplary embodiments thereof. It will be evident that various modifications may be made therein without departing from the broader spirit and scope as set forth in the following claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims (20)

1. a kind of system, the system comprises:
Multiple sensor modules, the corresponding sensor module of each of the multiple sensor module have Inertial Measurement Unit And the position of user is attached to generate the exercise data of the orientation sequence at the position for identifying the user;And
Computing device is coupled to the multiple sensor module and is configured as:
The orientation sequence measured by each corresponding sensor module is fed as input to artificial neural network Network;
Obtain the orientation measurement at the position of the user as the output from the artificial neural network;And
By according to rigid in the kinematic chain from the orientation measurement that the artificial neural network obtains to skeleton pattern Property position orientation configured control application, the skeleton pattern have by joint connect it is multiple rigidity positions.
2. system according to claim 1, wherein instructed using the orientation measurement generated using optical tracking system Practice the artificial neural network;The artificial neural network is the recurrence mind comprising at least one shot and long term memory (LSTM) unit Through network.
3. system according to claim 2, wherein the orientation at the position of the user without using optical tracking come with It track and is tracked without using sensor module comprising Inertial Measurement Unit;And the multiple sensor module pair with it is described The position of the corresponding user of the subset at the rigid position in kinematic chain tracks;And the subset at the rigidity position It is separated in the kinematic chain by the rigid position, the rigidity position and the use tracked without using sensor module The position at family is corresponding.
4. system according to claim 1, wherein the artificial neural network is trained to using optical tracking system The orientation measurement of generation is predicted;And the artificial neural network, which provides, to be directed to quilt by the optical tracking system The position of the user of the multiple sensor module is attached and the orientation measurement of prediction that generates is as output.
5. a kind of method, which comprises
It receives and is identified described in the user from multiple Inertial Measurement Units at the position for being attached to the user connected as joint The exercise data of the orientation sequence at position;
It is provided the orientation sequence at the position of the user measured by the Inertial Measurement Unit as input To artificial neural network;
Obtain the orientation measurement at the position of the user as the output from the artificial neural network;
According to the orientation measurement obtained from the artificial neural network come the rigidity in the kinematic chain to skeleton pattern The orientation at position is configured, and the skeleton pattern has the multiple rigid positions connected by joint;And
Application is controlled based on the state of the kinematic chain.
6. according to the method described in claim 5, wherein, the artificial neural network is to remember (LSTM) unit with shot and long term Recurrent neural network;The position of the user does not have the inertia measurement for measuring the attachment of the orientation at the position Unit;The artificial neural network also exports the prediction at the position of the user tracked using the Inertial Measurement Unit Orientation measurement;And the orientation measurement of the prediction generated by the artificial neural network is to by the inertia The accumulated error in the orientation sequence that measuring unit is measured is corrected.
7. a kind of method, which comprises
Multiple sensor modules are attached to people;
Multiple orientation sequences of the sensor module are measured during the people executes multiple motion sequences, are taken with generating first To measurement result and second orientation measurement result;And
It is described to be predicted based on the first orientation measurement result using supervision machine learning art training artificial neural network Second orientation measurement result.
8. according to the method described in claim 7, wherein, the artificial neural network is to remember (LSTM) unit with shot and long term Recurrent neural network;And the method also includes:
The other measurement result to the people is generated using the multiple sensor module;And
Using the other measurement result and intensified learning technology come to previously based on the first orientation measurement result and institute Second orientation measurement result is stated to be trained using the artificial neural network of supervision machine learning art training.
9. according to the method described in claim 7, wherein, measuring the first orientation measurement result using the first technology;And The second orientation measurement result is measured using the second technology;And the second orientation measurement result identifies the multiple sensing The orientation of device module;And the first orientation measurement result identifies the orientation of the subset of the multiple sensor module.
10. according to the method described in claim 7, wherein, the first orientation measurement result identifies the multiple sensor die The orientation of first subset of block;And the second orientation measurement result identifies the second subset of the multiple sensor module Orientation.
11. a kind of system, the system comprises:
Multiple sensor modules, the corresponding sensor module of each of the multiple sensor module have Inertial Measurement Unit And it is attached to the position of user, it is described to generate the exercise data of the orientation sequence at the position for identifying the user Multiple sensor modules include the first subset and second subset, and first subset and the second subset are shared in described first Common sensor module between subset and the second subset;
Computing device is coupled to the multiple sensor module and is configured as:
The orientation measurement generated by first subset is fed as input to the first artificial neural network;
Obtain as the output from first artificial neural network the user common sites at least one first Orientation measurement, the common sensor module are attached in the common sites of the user;
The orientation measurement generated by the second subset is fed as input to the second artificial neural network;
At least one second orientation for obtaining the common sites as the output from second artificial neural network is surveyed Measure result;And
By by described at least one first orientation measurement result described in the common sites and the common sites at least One second orientation measurement result is combined and generates the orientation measurement of the prediction of the common sites.
12. system according to claim 11, wherein first artificial neural network and second artificial neural network Network includes that shot and long term remembers (LSTM) unit;The combination is executed using third artificial neural network;The third is manually refreshing It include that two-way shot and long term remembers (BLSTM) unit through network;And the institute of the common sites is predicted for first time example State the orientation measurement of prediction;At least one described first orientation measurement result of the common sites includes:
It is described total by the second time instance before the first time example of first neural network prediction With the orientation measurement at position;And
It is described total by the third time instance after the first time example of first neural network prediction With the orientation measurement at position;And
At least one described second orientation measurement result of the common sites includes:
By second time instance place before the first time example of second neural network prediction State the orientation measurement of common sites;And
By the third time instance place after the first time example of second neural network prediction State the orientation measurement of common sites.
13. system according to claim 12, wherein first artificial neural network and second artificial neural network Network includes that shot and long term remembers (LSTM) unit;Via the first orientation measurement result to the common sites and described common The second orientation measurement result at position averagely executes the combination;To the institute of optical tracking system to be used measurement The orientation measurement for stating the prediction of common sites is predicted;First subset tracks the first movement of the user Chain is controlled with the movement of the correspondence kinematic chain to the skeleton pattern in the system;And the second subset tracks institute The second chain of user is stated, is controlled with the movement of the correspondence kinematic chain to the skeleton pattern in the system;And no The orientation of the first position in first kinematic chain of the user is tracked using Inertial Measurement Unit;It is surveyed without using inertia Measure the orientation of the second position in second kinematic chain of the unit to track the user;The first artificial neural network root The orientation of the first position is predicted according to the orientation measurement generated by first subset;And second people Artificial neural networks predict the orientation of the second position according to the orientation measurement generated by the second subset.
14. according to claim 1 or system described in 11, wherein the Inertial Measurement Unit includes MEMS (MEMS) Gyroscope;And the Inertial Measurement Unit further includes magnetometer and mems accelerometer.
15. a kind of method, which comprises
It receives and is identified described in the user from multiple Inertial Measurement Units at the position for being attached to the user connected as joint The exercise data of the orientation sequence at position, the multiple Inertial Measurement Unit include the first subset and second subset, described first Subset and second subset are shared in the common Inertial Measurement Unit between first subset and the second subset;
The orientation measurement generated by first subset is fed as input to the first artificial neural network;
Obtain at least one of the common sites of the user as the output from first artificial neural network First orientation measurement result, the common Inertial Measurement Unit are attached in the common sites of the user;
The orientation measurement generated by the second subset is fed as input to the second artificial neural network;
At least one second orientation for obtaining the common sites as the output from second artificial neural network is surveyed Measure result;And
By by described at least one first orientation measurement result described in the common sites and the common sites at least One second orientation measurement result is combined and generates the orientation measurement of the prediction of the common sites.
16. according to the method for claim 15, wherein the combination includes:
By described at least one first orientation measurement result described in the common sites and the common sites at least one Second orientation measurement result is fed as input to third artificial neural network;And
Obtain the orientation measurement of the prediction of the common sites as the output from the third artificial neural network As a result;
Wherein, first artificial neural network and second artificial neural network include shot and long term memory (LSTM) unit; And
The third artificial neural network includes two-way shot and long term memory (BLSTM) unit.
17. according to the method for claim 15, wherein the combination includes calculating as the described pre- of the common sites Described the second of the first orientation measurement results of the common sites of the orientation measurement of survey and the common sites The average value of orientation measurement.
18. a kind of method, which comprises
Multiple sensor modules are attached to people, the multiple sensor module includes the first kinematic chain for tracking the people Orientation the sensor module the first subset and the second kinematic chain for tracking the people orientation the sensing The second subset of device module, wherein the common sites of first kinematic chain and second kinematic chain with the people;
During the people executes multiple motion sequences, the multiple of the sensor module are measured using the sensor module It is orientated sequence;
During the people executes multiple motion sequences, the measurement result and use independently of the sensor module are individual Tracking system measures the orientation of the sensor module;
Using supervision machine learning art the first artificial neural network of training, to use the orientation from first subset to measure As a result the orientation measurement of first kinematic chain from the individual tracking system is predicted;
Using the supervision machine learning art the second artificial neural network of training, to use the orientation from the second subset Measurement result predicts the orientation measurement of second kinematic chain from the individual tracking system;And
Using supervision machine learning art training third artificial neural network, according to from first artificial neural network The orientation measurement and given birth to from second artificial neural network that the first of the common sites of the people generated is predicted At the people the common sites second prediction orientation measurement, to the orientation of the common sites of the people Measurement result is predicted.
19. according to the method for claim 18, wherein first artificial neural network and second artificial neural network Network includes shot and long term memory (LSTM) unit;And the third artificial neural network includes two-way shot and long term memory (BLSTM) Unit;
Wherein, in order to predict the orientations of the common sites of the people at first time example, the third artificial neuron Network receives following as input:
By the second time instance people before the first time example of first neural network prediction The common sites orientation;
By the third time instance people after the first time example of first neural network prediction The common sites orientation;
By second time instance place before the first time example of second neural network prediction State the orientation of the common sites of people;And
By the third time instance place after the first time example of second neural network prediction State the orientation of the common sites of people;And
Wherein, using first fortune at the first time example of first subset from the sensor module The orientation measurement of dynamic chain to by first neural network prediction the second time instance people's The orientation of the common sites is updated;And
Use second kinematic chain at the first time example of the second subset from the sensor module Orientation measurement to by first neural network prediction described in the second time instance people The orientation of common sites is updated.
20. according to the method for claim 18, further includes:
First artificial neural network and second artificial neural network are trained, with reduce it is following between the two Difference:
The orientation measurement of first prediction of the common sites of the people generated from first artificial neural network As a result;And
The orientation measurement of second prediction of the common sites of the people generated from second artificial neural network As a result.
CN201811147317.2A 2018-05-07 2018-09-29 Track user movements to control skeletal models in computer systems Pending CN110456902A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/973,137 2018-05-07
US15/973,137 US11474593B2 (en) 2018-05-07 2018-05-07 Tracking user movements to control a skeleton model in a computer system
US15/996,389 2018-06-01
US15/996,389 US10416755B1 (en) 2018-06-01 2018-06-01 Motion predictions of overlapping kinematic chains of a skeleton model used to control a computer system

Publications (1)

Publication Number Publication Date
CN110456902A true CN110456902A (en) 2019-11-15

Family

ID=68480436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811147317.2A Pending CN110456902A (en) 2018-05-07 2018-09-29 Track user movements to control skeletal models in computer systems

Country Status (2)

Country Link
CN (1) CN110456902A (en)
WO (1) WO2020009715A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340211A (en) * 2020-02-19 2020-06-26 腾讯科技(深圳)有限公司 Training method of action control model, related device and storage medium
CN113341564A (en) * 2020-03-03 2021-09-03 芬奇科技有限公司 a computer input device
CN114073516A (en) * 2020-08-18 2022-02-22 丰田自动车株式会社 Exercise state monitoring system, training support system, control method, and control program
CN115136101A (en) * 2020-02-21 2022-09-30 微软技术许可有限责任公司 System and method for deep learning based pedestrian dead reckoning for externally aware sensor enabled devices

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021211002A1 (en) * 2020-04-13 2021-10-21 Общество С Ограниченной Ответственностью "Психо Технолоджи" Method for optical-inertial tracking of a user

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515477A (en) * 1991-04-22 1996-05-07 Sutherland; John Neural networks
US20090322763A1 (en) * 2008-06-30 2009-12-31 Samsung Electronics Co., Ltd. Motion Capture Apparatus and Method
CN101689304A (en) * 2007-07-10 2010-03-31 皇家飞利浦电子股份有限公司 Object motion capture system and method
US20100307241A1 (en) * 2007-10-18 2010-12-09 Melexis Nv Combined mems accelerometer and gyroscope
US20110228251A1 (en) * 2010-03-17 2011-09-22 Microsoft Corporation Raster scanning for depth detection
US20140150521A1 (en) * 2012-12-03 2014-06-05 Vibrado Technologies, Inc. System and Method for Calibrating Inertial Measurement Units
US20170028551A1 (en) * 2015-07-31 2017-02-02 Heinz Hemken Data collection from living subjects and controlling an autonomous robot using the data
US20180020978A1 (en) * 2016-07-25 2018-01-25 Patrick Kaifosh System and method for measuring the movements of articulated rigid bodies

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8761437B2 (en) * 2011-02-18 2014-06-24 Microsoft Corporation Motion recognition

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515477A (en) * 1991-04-22 1996-05-07 Sutherland; John Neural networks
CN101689304A (en) * 2007-07-10 2010-03-31 皇家飞利浦电子股份有限公司 Object motion capture system and method
US20100307241A1 (en) * 2007-10-18 2010-12-09 Melexis Nv Combined mems accelerometer and gyroscope
US20090322763A1 (en) * 2008-06-30 2009-12-31 Samsung Electronics Co., Ltd. Motion Capture Apparatus and Method
US20110228251A1 (en) * 2010-03-17 2011-09-22 Microsoft Corporation Raster scanning for depth detection
US20140150521A1 (en) * 2012-12-03 2014-06-05 Vibrado Technologies, Inc. System and Method for Calibrating Inertial Measurement Units
US20170028551A1 (en) * 2015-07-31 2017-02-02 Heinz Hemken Data collection from living subjects and controlling an autonomous robot using the data
US20180020978A1 (en) * 2016-07-25 2018-01-25 Patrick Kaifosh System and method for measuring the movements of articulated rigid bodies

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111340211A (en) * 2020-02-19 2020-06-26 腾讯科技(深圳)有限公司 Training method of action control model, related device and storage medium
CN111340211B (en) * 2020-02-19 2020-11-24 腾讯科技(深圳)有限公司 Training method of action control model, related device and storage medium
CN115136101A (en) * 2020-02-21 2022-09-30 微软技术许可有限责任公司 System and method for deep learning based pedestrian dead reckoning for externally aware sensor enabled devices
CN113341564A (en) * 2020-03-03 2021-09-03 芬奇科技有限公司 a computer input device
CN114073516A (en) * 2020-08-18 2022-02-22 丰田自动车株式会社 Exercise state monitoring system, training support system, control method, and control program

Also Published As

Publication number Publication date
WO2020009715A3 (en) 2020-02-20
WO2020009715A2 (en) 2020-01-09

Similar Documents

Publication Publication Date Title
US10860091B2 (en) Motion predictions of overlapping kinematic chains of a skeleton model used to control a computer system
US11474593B2 (en) Tracking user movements to control a skeleton model in a computer system
US11009941B2 (en) Calibration of measurement units in alignment with a skeleton model to control a computer system
US11175729B2 (en) Orientation determination based on both images and inertial measurement units
US11079860B2 (en) Kinematic chain motion predictions using results from multiple approaches combined via an artificial neural network
US11587242B1 (en) Real-time processing of handstate representation model estimates
US10775946B2 (en) Universal handheld controller of a computer system
US10976863B1 (en) Calibration of inertial measurement units in alignment with a skeleton model to control a computer system based on determination of orientation of an inertial measurement unit from an image of a portion of a user
US10534431B2 (en) Tracking finger movements to generate inputs for computer systems
US20220155866A1 (en) Ring device having an antenna, a touch pad, and/or a charging pad to control a computing device based on user motions
US20210405750A1 (en) Methods and apparatus for predicting musculo-skeletal position information using wearable autonomous sensors
US11009964B2 (en) Length calibration for computer models of users to generate inputs for computer systems
US20230214027A1 (en) Reduction of Time Lag Between Positions and Orientations Being Measured and Display Corresponding to the Measurements
US10540006B2 (en) Tracking torso orientation to generate inputs for computer systems
CN110456902A (en) Track user movements to control skeletal models in computer systems
US11054923B2 (en) Automatic switching between different modes of tracking user motions to control computer applications
WO2021207033A1 (en) Input device to control a computing device with a touch pad having a curved surface configured to sense touch input
CN108279773B (en) A data glove based on MARG sensor and magnetic field positioning technology
US20210068674A1 (en) Track user movements and biological responses in generating inputs for computer systems
US20230011082A1 (en) Combine Orientation Tracking Techniques of Different Data Rates to Generate Inputs to a Computing System
US20210072820A1 (en) Sticky device to track arm movements in generating inputs for computer systems
US20230103932A1 (en) Motion Sensor Modules with Dynamic Protocol Support for Communications with a Computing Device
JP2025068411A (en) Learning device, operational information conversion device, and learning method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20191115

WD01 Invention patent application deemed withdrawn after publication