CN117332812A - 执行触摸运动预测的深度机器学习 - Google Patents
执行触摸运动预测的深度机器学习 Download PDFInfo
- Publication number
- CN117332812A CN117332812A CN202311095727.8A CN202311095727A CN117332812A CN 117332812 A CN117332812 A CN 117332812A CN 202311095727 A CN202311095727 A CN 202311095727A CN 117332812 A CN117332812 A CN 117332812A
- Authority
- CN
- China
- Prior art keywords
- motion
- computing devices
- motion prediction
- user input
- input object
- 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
Links
- 230000033001 locomotion Effects 0.000 title claims abstract description 335
- 238000010801 machine learning Methods 0.000 title description 21
- 239000013598 vector Substances 0.000 claims abstract description 146
- 238000013528 artificial neural network Methods 0.000 claims abstract description 89
- 230000000306 recurrent effect Effects 0.000 claims abstract description 58
- 238000012549 training Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 22
- 230000009471 action Effects 0.000 claims description 20
- 125000004122 cyclic group Chemical group 0.000 claims description 5
- 230000008859 change Effects 0.000 claims description 4
- 230000007787 long-term memory Effects 0.000 claims 1
- 230000004044 response Effects 0.000 description 19
- 230000015654 memory Effects 0.000 description 14
- 230000008901 benefit Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000005259 measurement Methods 0.000 description 6
- 230000002123 temporal effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013480 data collection Methods 0.000 description 2
- 230000002779 inactivation Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005057 finger movement Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
- G06F3/0383—Signal control means within the pointing device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
- G06F3/04162—Control or interface arrangements specially adapted for digitisers for exchanging data with external devices, e.g. smart pens, via the digitiser sensing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
- G06F3/04883—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03545—Pens or stylus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种预测用户输入对象的运动的实施方法,包括:训练运动预测模型;训练包括通过运动预测模型反向传播损失函数;损失函数包括描述一个或多个误差向量的一个或多个长度的第一和除以一个或多个真值向量的一个或多个长度的第二和的误差比;获得与用户输入对象相关联的第一组运动数据,其描述用户输入对象随时间的位置;将第一组运动数据输入到模型的循环神经网络中;接收运动预测向量作为模型的输出,运动预测向量描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置,运动预测向量包括在预测的未来位置中的每一个之间延伸到预测的未来位置的紧接的后续预测的未来位置的各个预测向量;以及呈现已经根据未来位置修改的显示屏。
Description
本申请是申请日为2017年08月17日、申请号为201780055187.7、发明名称为“执行触摸运动预测的深度机器学习”的发明专利申请的分案申请。
技术领域
本公开一般涉及机器学习。更具体地,本公开涉及执行用户输入运动预测的深度机器学习。
背景技术
用户可以使用用户输入对象(诸如,例如一个或多个手指、由用户操作的触笔或其他用户输入对象)向计算设备提供用户输入。具体地,在一个示例中,用户可以使用用户输入对象来触摸触敏显示屏或其他触敏组件。用户输入对象与触敏显示屏的交互使得用户能够向计算设备提供用户输入。
然而,在某些现有计算设备中,在触摸事件的结果显示在屏幕上之前,由触敏显示屏检测到的触摸事件必须经过相当大的处理堆栈。例如,触摸输入处理堆栈可以包括用于液晶显示器(Liquid Crystal Display,LCD)屏幕的固件、内核、渲染和垂直同步(VerticalSynchronization,V-Sync)的组合。处理堆栈还可以包括由消耗触摸输入的各个程序完成的软件处理。
处理堆栈的大小和复杂性引入了“触摸时延”的问题,其中在触摸事件发生时和设备似乎响应触摸事件时之间发生延迟。触摸时延是影响设备性能的重大挑战。
虽然利用更好的软件调度可以减少一些触摸时延,但是无论处理堆栈组织得有多好,存在用于处理触摸事件并且然后该触摸事件到达屏幕的最小时间量。
发明内容
本公开的实施例的方面和优点将在以下描述中部分阐述,或者可以从描述来学习,或者可以通过实施例的实践来学习。
本公开的一个示例方面针对一种预测用户输入对象的运动的计算机实施的方法。该方法包括由一个或多个计算设备获得与用户输入对象相关联的第一组运动数据。第一组运动数据描述用户输入对象随时间的位置。该方法包括由一个或多个计算设备将第一组运动数据输入到机器学习运动预测模型的循环神经网络中。该方法包括由一个或多个计算设备接收运动预测向量作为运动预测模型的输出,其中该运动预测向量描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置。
本公开的另一示例方面针对预测用户输入对象的运动的计算设备。该计算设备包括至少一个处理器。该计算设备包括机器学习运动预测模型,其中该机器学习运动预测模型包括循环神经网络。该运动预测模型被训练为接收指示用户输入对象的运动的运动数据,并且响应于接收到运动数据而输出用户输入对象的预测的未来位置。该计算设备包括存储指令的至少一个有形、非暂时性计算机可读介质,其中当该指令由至少一个处理器运行时,使得至少一个处理器获得与用户输入对象相关联的第一组运动数据。第一组运动数据描述用户输入对象随时间的位置。指令的运行使得至少一个处理器将第一组运动数据输入到运动预测模型的循环神经网络中。指令的运行使得至少一个处理器接收运动预测向量作为运动预测模型的输出,其中该运动预测向量描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置。指令的运行使得至少一个处理器执行与由运动预测向量描述的一个或多个预测的未来位置相关联的一个或多个动作。
本公开的另一示例方面针对包括用户计算设备的计算系统。该用户计算设备包括至少一个处理器和至少一个非暂时性计算机可读介质。该至少一个非暂时性计算机可读介质存储机器学习运动预测模型,其中该机器学习运动预测模型被配置为接收指示用户输入对象的运动的运动数据,并且响应于接收到运动数据而输出用户输入对象的预测的未来位置。运动预测模型由损失函数通过运动预测模型的反向传播来训练。损失函数包括描述一个或多个误差向量分别的一个或多个长度的第一和除以一个或多个真值向量分别的一个或多个长度的第二和的误差比。该至少一个非暂时性计算机可读介质存储当由至少一个处理器运行时,使得用户计算设备使用机器学习运动预测模型来获得用户输入对象的预测的未来位置的指令。
更具体地,提供了一种预测用户输入对象的运动的计算机实施的方法,该方法包括:由一个或多个计算设备基于一组训练数据来训练机器学习的运动预测模型;其中,由所述一个或多个计算设备训练运动预测模型包括由所述一个或多个计算设备通过运动预测模型反向传播损失函数;并且其中,所述损失函数包括描述一个或多个误差向量分别的一个或多个长度的第一和除以一个或多个真值向量分别的一个或多个长度的第二和的误差比;由一个或多个计算设备获得与用户输入对象相关联的第一组运动数据,所述第一组运动数据描述用户输入对象随时间的位置;由所述一个或多个计算设备将第一组运动数据输入到所述机器学习的运动预测模型的循环神经网络中;由所述一个或多个计算设备接收运动预测向量作为运动预测模型的输出,其中所述运动预测向量描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置,其中,所述运动预测向量包括在所述一个或多个预测的未来位置中的每一个之间延伸到所述一个或多个预测的未来位置的紧接的后续预测的未来位置的各个预测向量;以及由所述一个或多个计算设备呈现已经根据用户输入对象的所述一个或多个预测的未来位置修改的显示屏。
本公开的其他方面针对各种系统、装置、非暂时性计算机可读介质、用户界面和电子设备。
参考以下描述和所附权利要求,本公开的各种实施例的这些和其他特征、方面和优点将变得更好理解。并入本说明书并构成本说明书的一部分的附图图示了本公开的示例实施例,并与说明书一起用来解释相关原理。
附图说明
针对本领域普通技术人员之一的实施例的详细讨论在参考附图的说明书中阐述,其中:
图1描绘了根据本公开的示例实施例的示例计算系统的框图。
图2描绘了根据本公开的示例实施例的示例运动预测模型的框图。
图3描绘了根据本公开的示例实施例的示例运动预测模型的框图。
图4描绘了根据本公开的示例实施例的示例运动预测模型的框图。
图5描绘了根据本公开的示例实施例的预测用户输入对象的运动的示例方法的流程图。
图6描绘了根据本公开的示例实施例的训练运动预测模型的示例方法的流程图。
图7描绘了根据本公开的示例实施例的示例运动向量的图形示图。
图8描绘了根据本公开的示例实施例的示例运动向量的图形示图。
具体实施方式
概述
通常,本公开针对利用机器学习来执行用户输入运动预测的系统和方法。具体地,本公开的系统和方法可以包括并使用机器学习运动预测模型,其中该机器学习运动预测模型被训练为接收指示用户输入对象的运动的运动数据,并且响应于接收到运动数据而输出用户输入对象的预测的未来位置。例如,用户输入对象可以是用户的手指或由用户操作的触笔。
具体地,根据本公开的一方面,运动预测模型可以包括循环神经网络(例如,深度循环神经网络)。在一个示例中,用户计算设备可以获得描述用户输入对象随时间的位置的运动数据。计算设备可以将运动数据输入到运动预测模型的循环神经网络中,并且接收运动预测向量作为运动预测模型的输出。运动预测向量可以描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置。
计算设备可以使用由运动预测模型输出的运动预测向量来减少或甚至消除触摸时延。具体地,计算设备可以响应于或以其他方式基于用户输入对象的预测的未来位置来执行操作,从而消除等待接收用户输入动作的剩余部分并通过大的处理堆栈处理输入动作的剩余部分的需要。
为了提供示例,本公开的计算设备可以将描述与用户触摸动作的初始部分(例如,向左划动动作的初始部分)相关联的手指运动/位置的运动数据输入到运动预测模型的循环神经网络中。响应于接收到运动数据,运动预测模型可以预测与用户触摸动作的剩余部分(例如,向左划动动作的剩余部分)相关联的手指运动/位置。计算设备可以响应于预测的手指运动/位置而执行动作(例如,渲染其中所显示的对象已经被向左划动的显示屏)。这样,计算设备不需要等待并且然后处理用户触摸动作的剩余部分。因此,计算设备能够更快地响应触摸事件并减少触摸时延。例如,高质量运动预测可以使得触摸时延能够减少到人类用户不可感知的水平。
更具体地,本公开的方面适用于经由用户输入对象的运动接收用户输入的计算设备。示例用户输入对象包括用户的一个或多个手指、由用户操作的触笔或其他用户输入对象。具体地,在一个示例中,用户可以使用用户输入对象来触摸计算设备的触敏显示屏或其他触敏组件。用户输入对象相对于触敏显示屏的运动使得用户能够向计算设备提供用户输入。
具体地,计算设备可以生成或以其他方式获得描述用户输入对象随时间的位置的一组运动数据。例如,可以收集和处理从各种传感器(例如,触敏显示屏或其他用户输入组件)接收的数据,以生成一组运动数据。作为一个示例,一组运动数据可以包括对象位置和时间的一个或多个条目。例如,一组运动数据可以包括提供用户输入对象在x维和y维上的位置以及与每个位置相关联的时间戳的一个或多个条目。
作为另一示例,一组运动数据可以包括一个或多个条目,其中该一个或多个条目描述用户输入对象在x维和y维上的位置的改变,以及与每对x值的改变和y值的改变相关联的时间戳或时间的改变。在一些实施方式中,当检测到用户输入对象的附加运动时,一组运动数据被迭代地更新、刷新或生成。如上所述,一组运动数据可以输入到运动预测模型中,以获得关于用户输入对象的针对一个或多个未来时间的未来位置的预测。
在又一实施方式中,计算设备可以收集描述用户输入对象的附加数据,并且可以将这样的数据与一组运动数据一起输入到运动预测模型中。例如,可以收集关于触敏显示屏上的用户输入对象压力、触敏显示屏上的用户输入对象半径或其他用户输入对象参数的信息(例如,传感器数据),并且将其提供给运动预测模型,用于预测用户输入对象的未来位置。
根据本公开的另一方面,在一些实施方式中,运动预测模型包括两个阶段。在第一阶段中,计算设备将一组运动数据输入到循环神经网络(例如,长短期记忆(Long Short-Term Memory,LSTM)神经网络、门控循环单元(Gated Recurrent Unit,GRU)神经网络或其他形式的循环神经网络)中。响应于接收到一组运动数据,循环神经网络输出高维上下文向量。
在运动预测模型的第二阶段中,高维上下文向量输入到前馈神经网络中。此外,在一些实施方式中,计算设备将时间向量与高维上下文向量一起输入到前馈神经网络中。时间向量可以提供期望由运动预测模型预测的时间长度(例如10ms、20ms等)的列表。因此,时间向量可以描述用户输入对象的位置将被预测的一个或多个未来时间。响应于接收到高维上下文向量和时间向量,前馈网络可以输出描述用户输入对象的针对由时间向量描述的每个时间或时间长度的预测的未来位置的运动预测向量。例如,运动预测向量可以包括对于每个未来时间的x维和y维中的位置的一对值,或者对于每个未来时间的x维和y维中的改变的一对值。
使用如上所述的两阶段运动预测模型可以提供许多益处。作为一个示例,使用两阶段运动预测模型消除了与被包括在训练数据中的时间指示(例如,时间戳)与由模型在实际现场使用期间观察到的时间指示之间的差异相关联的问题。
在一些实施方式中,第二阶段的前馈网络可以用循环解码器神经网络代替。在其他实施方式中,上述两阶段混合运动预测模型可以用单个堆叠循环神经网络(例如,LSTM神经网络)代替。具体地,在这样的实施方式中,时间向量和一组运动数据都可以输入到循环神经网络中。响应于接收到时间向量和一组运动数据,循环神经网络可以输出运动预测向量。
在一些实施方式中,计算设备可以以在线方式将用户输入对象的运动数据馈送到循环神经网络中。例如,在现场使用期间,在从(多个)相关传感器(例如,触敏显示屏)接收到用户输入对象运动更新的每个实例中,最新的运动数据更新(例如,x、y和时间的改变的值)可以馈送到循环神经网络中。因此,当针对用户输入对象收集附加运动数据时,可以迭代地执行运动数据收集和运动预测。这样,使用循环神经网络提供的一个益处是有能力在如上所述的以在线方式输入新的运动更新时保持来自先前更新的上下文。
根据本公开的另一方面,可以使用新颖的损失函数在真值(ground-truth)运动数据上训练本文所述的运动预测模型。更具体地,训练计算系统可以使用包括用户输入对象的多组真值运动数据的训练数据集来训练运动预测模型。例如,训练数据集可以包括描述用户输入对象的大量先前观察到的运动轨迹的运动数据。
在一些实施方式中,为了训练运动预测模型,一组真值运动数据的第一部分输入到要被训练的运动预测模型中。响应于接收到这样的第一部分,运动预测模型输出预测一组真值运动数据的剩余部分的运动预测向量。
在这样的预测之后,训练计算系统可以应用或以其他方式确定将由运动预测模型输出的运动预测向量与运动预测模型试图预测的真值运动数据的剩余部分进行比较的损失函数。训练计算系统可以通过运动预测模型来反向传播(例如,通过执行沿时间的截断反向传播)损失函数。
具体地,根据本公开的一方面,在一些实施方式中,损失函数可以采取新颖的误差比的形式或者以其他方式包括新颖的误差比。误差比可以定义为一个或多个误差向量的长度的和除以试图被预测的一个或多个真值向量的长度的和。在其他实施方式中,可以使用和的平方而不是和本身。在一些实施方式中,训练计算系统可以一次性确定整个小批量训练数据的损失函数。
使用如本文所述的依赖于“平均值比”或“总和平均值”的误差比防止了除以如果单独考虑每个误差向量/真值向量组合将会出现的零误差,因为将会有其中真值向量为空或零的一些实例(例如,用户输入对象的零运动)。
使用本文所述的误差比还改进了运动预测模型的尺度不变性。例如,训练数据和/或现场使用数据中的一些或全部可以被格式化为以像素为单元(这通常取决于分辨率)描述运动或位置。因此,使用误差比使得能够进行单元不可知的训练。然而,在其他实施方式中,除了本文所述的误差比之外或替换本文所述的误差比,损失函数还可以包括其他误差测量。例如,替换的误差测量包括均方根误差、L1损失、L2损失或其他测量。
根据本公开的另一方面,在一些实施方式中,计算设备可以为同时向设备提供输入的两个或更多个用户输入对象中的每一个实施运动预测模型的单独实例。作为一个示例,如果用户使用两个手指来与触敏屏交互,则两个手指中的每一个的单独运动数据可以分别输入到两个单独的并行运动预测模型中。例如,每个模型可以为其对应的用户输入对象(例如,手指)的每个传入位置更新提供一个预测。
此外,在一些实施方式中,只要针对每个运动预测模型的对应的用户输入对象而接收到位置更新,每个运动预测模型就可以被保持。换句话说,在每个用户输入对象的使用期中,可以针对每个用户输入对象保持循环神经网络。例如,特定手指的“使用期”可以跨越手指与触敏屏接触的持续时间。在用户输入对象的使用期之后,计算设备可以清除与用于用户输入对象的运动预测模型的循环神经网络相关联的高速缓存。以这种方式,循环神经网络可以使用其内部存储器来更好地预测用户输入对象在用户输入对象的使用期内的运动。
根据本公开的另一方面,计算设备的应用、程序或其他组件(例如,手写识别应用)可以消耗运动预测向量或以其他方式被提供有运动预测向量。应用可以将用户输入对象的预测的未来位置视为用户输入对象似乎已经被移动到这样的预测的位置。例如,手写识别应用可以基于由运动预测向量提供的预测的未来位置来识别手写。因此,应用不需要等待用户输入动作的剩余部分被接收并通过大的处理堆栈来处理,从而减少了时延。
因此,本公开为触摸时延的技术问题提供了技术的、基于机器学习的解决方案。本公开的一个示例益处是改进了预测质量。具体地,本文所述的神经网络是极好的函数逼近器,并且与多项式相比提供了更丰富的预测能力。这样,如果恰当地训练,本公开的运动预测模型可以提供优异的预测精度。
除了减少的触摸时延之外,本公开可以带来许多附加技术益处,包括例如更平滑的手指跟踪、改进的手写识别、对用户可操纵对虚拟对象(例如,游戏内的对象)的更快和更精确的用户控制、以及在用户运动输入被提供给计算设备的场景中的许多其他益处。
本公开的另一示例技术益处是其相对低的存储器使用/要求。具体地,本文所述的神经网络有效地总结训练数据并将其压缩成紧凑形式(例如,神经网络本身)。这大大减少了存储和实施预测算法所需的存储器量。
本公开的另一示例技术益处是改进的可扩展性。具体地,通过神经网络对运动数据进行建模相对于开发手工运动预测算法而言大大减少了所需的研究时间。例如,对于手工运动预测算法,设计者将需要在数据上迭代该算法,并设计独特的方法来处理不同的场景。相比之下,为了使用如本文所述的神经网络,可以在适当的训练数据上训练网络,并且如果训练系统允许,这可以大规模地进行。此外,当新的训练数据可用时,可以很容易地修改神经网络。
现在参考附图,将进一步详细讨论本公开的示例实施例。
示例设备和系统
图1描绘了根据本公开的示例实施例的预测用户输入对象的运动的示例计算系统100。系统100包括通过网络180通信地耦合的用户计算设备102、机器学习计算系统130和训练计算系统150。
用户计算设备102可以是任何类型的计算设备,诸如,例如个人计算设备(例如,膝上型或台式)、移动计算设备(例如,智能手机或平板电脑)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
用户计算设备102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等,以及其组合。存储器114可以存储数据116和由处理器112运行使得用户计算设备102执行操作的指令118。
用户计算设备102可以存储或包括一个或多个运动预测模型120。例如,一个或多个运动预测模型120可以通过网络180从机器学习计算系统130接收,存储在用户计算设备存储器114中,并且由一个或多个处理器112使用或以其他方式实施。在一些实施方式中,用户计算设备102可以实施单个运动预测模型120的多个并行实例(例如,以为多个用户输入对象执行并行运动预测)。
用户计算设备102还可以包括通过用户输入对象的运动接收用户输入的用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或触笔)的触摸敏感的触敏组件(例如,触敏显示屏或触摸板)。然而,用户输入组件122可以包括能够通过用户输入对象的运动接收用户输入的其他组件。例如,用户输入组件122可以通过计算机视觉系统跟踪用户输入对象的运动,其中该计算机视觉系统分析由设备102的相机或通过使用雷达(例如,微型雷达)收集的影像,以检测基于非触摸手势的用户输入。因此,用户输入对象相对于用户输入组件122的运动使得用户能够向计算设备102提供用户输入。
机器学习计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等,以及其组合。存储器134可以存储数据136和由处理器132运行使得机器学习计算系统130执行操作的指令138。
在一些实施方式中,机器学习计算系统130包括一个或多个服务器计算设备,或者以其他方式由一个或多个服务器计算设备实施。在机器学习计算系统130包括多个服务器计算设备的实例中,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或其某个组合来操作。
机器学习计算系统130存储或以其他方式包括一个或多个机器学习运动预测模型140。例如,运动预测模型140可以是或可以以其他方式包括各种机器学习模型,诸如神经网络(例如,深度循环神经网络)或其他多层非线性模型。参考图2-图4讨论示例运动预测模型140。
机器学习计算系统130可以经由与通过网络180通信地耦合的训练计算系统150的交互来训练运动预测模型140。训练计算系统150可以与机器学习计算系统130分离,或者可以是机器学习计算系统130的一部分。
训练计算系统150包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核心、微处理器、ASIC、FPGA、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器154可以包括一个或多个非暂时性计算机可读存储介质,诸如RAM、ROM、EEPROM、EPROM、闪存设备、磁盘等,以及其组合。存储器154可以存储数据156和由处理器152运行使得训练计算系统150执行操作的指令158。在一些实施方式中,训练计算系统150包括一个或多个服务器计算设备,或者以其他方式由一个或多个服务器计算设备实施。
训练计算系统150可以包括模型训练器160,其中该模型训练器160使用各种训练或学习技术(诸如,例如向后传播(例如,沿时间的截断反向传播))训练存储在机器学习计算系统130处的机器学习模型140。模型训练器160可以执行许多泛化技术(例如,权重衰减、随机失活(dropout)等)以改进正被训练的模型的泛化能力。
具体地,模型训练器160可以基于一组训练数据142训练运动预测模型140。训练数据142可以包括真值运动数据(例如,描述所记录的用户输入对象路径、轨迹、位置或其他运动数据的真值向量)。在一些实施方式中,训练示例可以由用户计算设备102(例如,基于由用户计算设备102的用户执行的用户输入动作)提供。因此,在这样的实施方式中,提供给用户计算设备102的模型120可以由训练计算系统150在从用户计算设备102接收的用户特定运动数据上训练。
模型训练器160包括用于提供期望功能的计算机逻辑。模型训练器160可以以控制通用处理器的硬件、固件和/或软件来实施。例如,在一些实施方式中,模型训练器160包括存储在存储设备上、加载到存储器中并由一个或多个处理器运行的程序文件。在其他实施方式中,模型训练器160包括存储在有形计算机可读存储介质(诸如RAM硬盘、或光学或磁性介质)中的一组或多组计算机可运行指令。
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,因特网)或其某个组合,并且可以包括任何数量的有线或无线链路。一般来说,通过网络180的通信可以使用各种通信协议(例如,TCP/IP、HTTP、SMTP、FTP)、编码或格式(例如,HTML、XML)和/或保护方案(例如,VPN、安全HTTP、SSL),经由任何类型的有线和/或无线连接来承载。
图1图示了可以用于实施本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实施方式中,用户计算设备可以包括模型训练器和训练数据集。在这样的实施方式中,运动预测模型可以在用户计算设备处被本地训练和使用。
示例运动预测模型
图2描绘了根据本公开的示例实施例的示例运动预测模型200。运动预测模型200包括循环神经网络202。例如,循环神经网络202可以是深度循环神经网络。例如,循环神经网络202可以是多层LSTM神经网络或多层GRU神经网络。
循环神经网络202可以接收用户输入对象的最近运动历史206作为输入。例如,最近的运动历史206可以采取位置更新的形式。最近的运动历史206可以描述用户输入对象随时间的位置。
作为一个示例,运动历史206可以包括对象位置和时间的一个或多个条目。例如,一组运动数据可以包括提供用户输入对象在x维和y维上的位置以及与每个位置相关联的时间戳的一个或多个条目。
作为另一示例,运动历史206可以包括一个或多个条目,其中该一个或多个条目描述用户输入对象在x维和y维上的位置的改变,以及与每对x值的改变和y值的改变相关联的时间戳或时间的改变。
在一些实施方式中,运动历史206以在线方式输入到循环神经网络202中。例如,在现场使用期间,在从(多个)相关传感器(例如,触敏显示屏)接收到用户输入对象运动更新206的每个实例中,最新的运动数据更新206(例如,x、y和时间的改变的值)可以馈送到循环神经网络202中。这样,由循环神经网络202提供的一个益处是有能力在如上所述的以在线方式输入新的运动更新206时保持来自先前更新206的上下文。
在又一实施方式中,描述用户输入对象的附加数据可以与运动历史206一起输入到循环神经网络202中。例如,可以收集关于触敏显示屏上的用户输入对象压力、触敏显示屏上的用户输入对象半径或其他用户输入对象参数的信息(例如,传感器数据),并且将其提供给循环神经网络202。
响应于接收到运动历史206,循环神经网络202可以输出高维上下文向量210。例如,高维上下文向量210可以具有超过一百维的特征。
运动预测模型200还包括前馈神经网络204。前馈神经网络204接收高维上下文向量210。此外,前馈神经网络204接收描述至少一个未来时间208的信息。例如,信息208可以是提供期望由运动预测模型200预测的时间长度(例如,10ms、20m、30m等)的列表的时间向量。
响应于接收到高维上下文向量210和至少一个未来时间208,前馈神经网络204输出运动预测向量212。运动预测向量212可以描述用户输入对象的针对至少一个未来时间208中的每一个未来时间的预测的未来位置。
作为另一示例,图3描绘了根据本公开的示例实施例的另一示例运动预测模型300。运动预测模型300包括循环神经网络302。循环神经网络302可以类似于图2的循环神经网络202。
然而,在图3的模型300中,循环神经网络302包括一个用户输入对象的最近运动历史304和描述至少一个未来时间306的信息。响应于接收到运动历史304和至少一个未来时间306,循环神经网络302输出运动预测向量308。运动预测向量308可以描述用户输入对象的针对至少一个未来时间306中的每一个未来时间的预测的未来位置。
作为又一示例,图4描绘了根据本公开的示例实施例的另一示例运动预测模型400。模型400高度类似于图2的模型200,如图2和图4所示的各种组件和数据的相同附图标记所指示的。然而,模型400包括循环解码器神经网络404,代替图2的模型200的前馈网络204。
示例方法
图5描绘了根据本公开的示例实施例的预测用户输入对象的运动的示例方法500的流程图。
在502处,计算设备获得与用户输入对象相关联的第一组运动数据。第一组运动数据可以描述用户输入对象随时间的位置。例如,可以收集和处理从各种传感器(例如,触敏显示屏或其他用户输入组件)接收的数据,以生成一组运动数据。作为一个示例,一组运动数据可以包括对象位置和时间的一个或多个条目。例如,一组运动数据可以包括提供用户输入对象在x维和y维上的位置以及与每个位置相关联的时间戳的一个或多个条目。
作为另一示例,一组运动数据可以包括一个或多个条目,其中该一个或多个条目描述用户输入对象在x维和y维上的位置的改变,以及与每对x值的改变和y值的改变相关联的时间戳或时间的改变。在一些实施方式中,当检测到用户输入对象的附加运动时,一组运动数据被迭代地更新、刷新或生成。因此,例如,可以在接收到位置更新时以迭代方式执行方法500。
在504处,计算设备将第一组运动数据输入到运动预测模型的循环神经网络中。在一些实施方式中,在504处,计算设备可以收集描述用户输入对象的附加数据,并且可以将这样的数据与一组运动数据一起输入到运动预测模型中。例如,可以收集关于触敏显示屏上的用户输入对象压力、触敏显示屏上的用户输入对象半径或其他用户输入对象参数的信息(例如,传感器数据),并且将其提供给运动预测模型,用于预测用户输入对象的未来位置。
在一些实施方式中,运动预测模型包括两个阶段。在第一阶段中,计算设备将一组运动数据输入到循环神经网络(例如,长短期记忆(LSTM)神经网络、门控循环单元(GRU)神经网络或其他形式的循环神经网络)中。响应于接收到一组运动数据,循环神经网络输出高维上下文向量。
在运动预测模型的第二阶段中,高维上下文向量输入到前馈神经网络中。此外,在一些实施方式中,计算设备将时间向量与高维上下文向量一起输入到前馈神经网络中。时间向量可以提供期望由运动预测模型预测的时间长度(例如10ms、20ms等)的列表。因此,时间向量可以描述用户输入对象的位置将被预测的一个或多个未来时间。
响应于接收到高维上下文向量和时间向量,前馈网络可以输出描述用户输入对象的针对由时间向量描述的每个时间或时间长度的预测的未来位置的运动预测向量。具体地,再次参考图5,在506处,计算设备接收运动预测向量作为运动预测模型的输出,其中该运动预测向量描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置。
在一些实施方式中,第二阶段的前馈网络可以用循环解码器神经网络代替。在其他实施方式中,上述两阶段混合运动预测模型可以用单个堆叠循环神经网络(例如LSTM神经网络)代替。具体地,在这样的实施方式中,在504处,时间向量和一组运动数据都可以输入到循环神经网络中。在506处,响应于接收到时间向量和一组运动数据,循环神经网络可以输出运动预测向量。
在一些实施方式中,在504处,计算设备可以以在线方式将用户输入对象的运动数据馈送到循环神经网络中。例如,在现场使用期间,在502处从(多个)相关传感器(例如,触敏显示屏)接收到用户输入对象运动更新的每个实例中,在504处,最新的运动数据更新(例如,x、y和时间的改变的值)可以馈送到循环神经网络中。因此,当针对用户输入对象收集附加运动数据时,可以迭代地执行在502处的运动数据收集和在504-506处的运动预测。这样,使用循环神经网络提供的一个益处是有能力在如上所述的以在线方式输入新的运动更新时保持来自先前更新的上下文。
在508处,计算设备执行由包括通过运动预测向量描述的一个或多个预测的未来位置的输入动作请求的一个或多个动作。例如,用户输入对象的预测的未来位置可以被视为其似乎由用户输入组件(例如,触敏显示屏)接收。因此,用户输入对象的预测的位置可以用于完成用户输入动作(例如,向左划动动作),该用户输入动作的初始部分由在502处获得的一组运动数据描述。因此,预测的未来用户输入对象位置可以对应于所请求的动作(例如,由向左划动所请求的计算动作),并且(多个)所请求的动作(例如,渲染显示屏,使得先前显示在屏幕上的项目已经被向左划动)可以在508处执行。
图6描绘了根据本公开的示例实施例的训练运动预测模型的示例方法600的流程图。具体地,根据本公开的另一方面,可以使用新颖的损失函数在真值运动数据上训练本文所述的运动预测模型。训练计算系统可以使用包括用户输入对象的多组真值运动数据的训练数据集来训练运动预测模型。例如,训练数据集可以包括描述用户输入对象的大量先前观察到的运动轨迹的运动数据。
作为示例,图7描绘了根据本公开的示例实施例的示例运动向量的图形示图。具体地,图7图示了一组真值运动数据,其中该一组真值运动数据包括四个真值运动向量:700、702、704和706。这些真值运动向量700、702、704和706可以形成可用于训练模型的一组真值运动数据。真值运动向量700、702、704和706可以描述先前观察到的用户输入对象轨迹/迹线。出于解释的目的提供图7作为一个简化示例,并且本公开不限于图7所示的示例。
再次参考图6,在602处,计算设备将一组真值运动数据的第一部分输入到运动预测模型中。例如,在602处,计算设备可以将第一真值运动向量700输入到运动预测模型中。提供第一真值运动向量700的输入仅作为示例。在其他实例中,在602处,可以输入多于一个真值运动向量。
响应于接收到这样的第一部分,运动预测模型输出预测一组真值运动数据的剩余部分的运动预测向量。因此,在604处,计算设备接收运动预测向量作为运动预测模型的输出。
作为示例,再次参考图7,响应于接收到第一真值运动向量700,运动预测模型可以输出识别用户输入对象的三个预测的未来位置的运动预测向量。这个运动预测向量由预测向量722、724和726共同图形地呈现。例如,第一预测的向量722从用户输入对象的最后已知位置延伸到用户输入对象的第一预测的未来位置;第二预测的向量724从第一预测的未来位置延伸到第二预测的未来位置;并且第三预测的向量726从第二预测的未来位置延伸到第三预测的未来位置。提供在运动预测向量中包括三个预测的未来位置仅作为一个示例。运动预测向量可以包括(例如,由输入时间向量引导的)任何数量(例如,一个或多个)的预测的未来位置。
再次参考图6,在606处,计算设备确定描述运动预测向量和一组真值运动数据的第二部分之间的差异的损失函数。例如,根据本公开的一方面,在一些实施方式中,损失函数可以采取新颖的误差比的形式或者以其他方式包括新颖的误差比。误差比可以定义为一个或多个误差向量的长度的和除以试图被预测的一个或多个真值向量的长度的和。在其他实施方式中,可以使用和的平方而不是和本身。在一些实施方式中,训练计算系统可以一次性确定整个小批量训练数据的损失函数。
作为示例,再次参考图7,可以基于预测向量722、724、726分别和对应的真值运动向量702、704和706之间的差异来分别定义一组误差向量742、744和746。继续该示例,误差比可以定义为向量742、744和746的长度的和除以向量702、704和706的长度的和。在一些实施方式中,针对整批训练数据来确定该误差比,而不仅仅是针对单对真值数据和运动预测向量。
使用如本文所述的依赖于“平均值比”或“总和平均值”的误差比防止了除以如果单独考虑每个误差向量/真值向量组合将会出现的零误差,因为将会有其中真值向量为空或零的一些实例(例如,用户输入对象的零运动)。
使用本文所述的误差比还改进了运动预测模型的尺度不变性。例如,训练数据和/或现场使用数据中的一些或全部可以被格式化为以像素为单元(这通常取决于分辨率)描述运动或位置。因此,使用误差比使得能够进行单元不可知的训练。然而,在其他实施方式中,除了本文所述的误差比之外或替换本文所述的误差比,损失函数还可以包括其他误差测量。例如,替换的误差测量包括均方根误差、L1损失、L2损失或其他测量。
再次参考图6,在608处,计算设备基于损失函数训练运动预测模型。例如,计算设备可以执行沿时间的截断向后传播,以通过运动预测模型反向传播损失函数。可以在608处可选地执行许多泛化技术(例如,权重衰减、随机失活等),以改进正被训练的模型的泛化能力。
已经在608处训练了模型之后,可以将该模型提供给用户计算设备并存储在用户计算设备处,用于在用户计算设备处预测用户输入对象的运动。更具体地,在602-608中描述的训练过程可以重复几次(例如,直到目标损失函数不再改进)以训练模型。
作为另一示例,图8描绘了根据本公开的示例实施例的示例运动向量的图形示图。具体地,图8示出了一组真值运动数据,其中该一组真值运动数据包括四个真值运动向量:800、802、804和806。这些真值运动向量800、802、804和806可以形成可用于训练模型的一组真值运动数据。真值运动向量800、802、804和806可以描述先前观察到的用户输入对象轨迹/迹线。出于解释的目的提供图8作为一个简化示例,并且本公开不限于图8所示的示例。
继续该示例,响应于接收到第一真值运动向量800,运动预测模型可以输出识别用户输入对象的三个预测的未来位置的运动预测向量。这个运动预测向量由预测向量822、824和826共同图形地呈现。例如,第一预测的向量822从用户输入对象的最后已知位置延伸到用户输入对象的第一预测的未来位置;第二预测的向量824从用户输入对象的最后已知位置延伸到第二预测的未来位置;并且第三预测的向量826从用户输入对象的最后已知位置延伸到第三预测的未来位置。提供在运动预测向量中包括三个预测的未来位置仅作为一个示例。运动预测向量可以包括(例如,由输入时间向量引导的)任何数量(例如,一个或多个)的预测的未来位置。
此外,一组误差向量842、844和846可以基于预测向量822、824、826分别和由真值运动向量802、804和806提供的对应的位置之间的差异来分别定义。继续该示例,误差比可以定义为向量842、844和846的长度的和除以向量802的长度、向量802+804的长度和向量802+804+806的长度的和。在一些实施方式中,针对整批训练数据来确定该误差比,而不仅仅是针对单对真值数据和运动预测向量。
附加公开
本文讨论的技术参考了服务器、数据库、软件应用和其他基于计算机的系统,以及采取的动作、和发送到及来自这样的系统的信息。基于计算机的系统的固有灵活性允许组件之间和组件中的任务和功能的各种可能的配置、组合以及划分。例如,本文讨论的过程可以使用单个设备或组件、或者组合工作的多个设备或组件来实施。数据库和应用可以在单个系统上实施,也可以跨多个系统分布。分布式组件可以顺序或并行操作。
虽然已经针对本主题的各种具体示例实施例详细描述了本主题,但是每个示例通过解释而不是限制本公开来提供。本领域技术人员在得到对上述内容的理解后,可以容易地做出这样的实施例的变更、变化和等同物。因此,本发明并不排除包括将对本领域普通技术人员显而易见的对本主题的这样的修改、变化和/或添加。例如,作为一个实施例的一部分图示或描述的特征可以与另一实施例一起使用,以产生又一实施例。因此,意图是本公开覆盖这样的变更、变化和等同物。
具体地,尽管图5和图6出于图示和讨论的目的分别描述了以特定顺序执行的步骤,但是本公开的方法不限于特定图示的顺序或布置。在不偏离本公开的范围的情况下,方法500和600的各个步骤可以以各种方式省略、重新布置、组合和/或调整。
Claims (10)
1.一种预测用户输入对象的运动的计算机实施的方法,该方法包括:
由一个或多个计算设备基于一组训练数据来训练机器学习的运动预测模型;
其中,由所述一个或多个计算设备训练运动预测模型包括由所述一个或多个计算设备通过运动预测模型反向传播损失函数;并且
其中,所述损失函数包括描述一个或多个误差向量分别的一个或多个长度的第一和除以一个或多个真值向量分别的一个或多个长度的第二和的误差比;
由一个或多个计算设备获得与用户输入对象相关联的第一组运动数据,所述第一组运动数据描述用户输入对象随时间的位置;
由所述一个或多个计算设备将第一组运动数据输入到所述机器学习的运动预测模型的循环神经网络中;
由所述一个或多个计算设备接收运动预测向量作为运动预测模型的输出,其中所述运动预测向量描述用户输入对象的分别针对一个或多个未来时间的一个或多个预测的未来位置,其中,所述运动预测向量包括在所述一个或多个预测的未来位置中的每一个之间延伸到所述一个或多个预测的未来位置的紧接的后续预测的未来位置的各个预测向量;以及
由所述一个或多个计算设备呈现已经根据用户输入对象的所述一个或多个预测的未来位置修改的显示屏。
2.根据权利要求1所述的计算机实施的方法,由所述一个或多个计算设备获得与用户输入对象相关联的第一组运动数据包括由所述一个或多个计算设备获得与用户的手指或由用户操作的触笔相关联的第一组运动数据,所述第一组运动数据描述手指或触笔相对于触敏屏的运动。
3.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备将第一组运动数据输入到所述机器学习的运动预测模型的循环神经网络中包括由一个或多个计算设备将第一组运动数据输入到机器学习的运动预测模型的长短期记忆(LSTM)神经网络中。
4.根据前述权利要求中任一项所述的计算机实施的方法,还包括:
由所述一个或多个计算设备接收高维上下文向量作为循环神经网络的输出;以及
由所述一个或多个计算设备将高维上下文向量和描述所述一个或多个未来时间的时间向量输入到运动预测模型的前馈神经网络中;
其中,由所述一个或多个计算设备接收运动预测向量作为运动预测模型的输出包括由所述一个或多个计算设备接收运动预测向量作为前馈神经网络的输出。
5.根据前述权利要求中任一项所述的计算机实施的方法,还包括:
由所述一个或多个计算设备接收高维上下文向量作为循环神经网络的输出;以及
由所述一个或多个计算设备将高维上下文向量和描述所述一个或多个未来时间的时间向量输入到运动预测模型的循环解码器神经网络中;
其中,由所述一个或多个计算设备接收运动预测向量作为运动预测模型的输出包括由所述一个或多个计算设备接收运动预测向量作为循环解码器神经网络的输出。
6.根据前述权利要求中任一项所述的计算机实施的方法,其中:
由所述一个或多个计算设备将第一组运动数据输入到机器学习的循环神经网络中包括由所述一个或多个计算设备将第一组运动数据和描述所述一个或多个未来时间的时间向量输入到循环神经网络中;以及
由所述一个或多个计算设备接收运动预测向量作为运动预测模型的输出包括由所述一个或多个计算设备接收运动预测向量作为循环神经网络的输出。
7.根据前述权利要求中任一项所述的计算机实施的方法,其中,由一个或多个计算设备获得与用户输入对象相关联的第一组运动数据包括:
由所述一个或多个计算设备获得第一组运动数据,其中所述第一组运动数据提供描述用户输入对象在x维中的位置的改变的至少一个值、描述用户输入对象在y维中的位置的改变的至少一个值、以及描述时间的改变的至少一个值;或者
由所述一个或多个计算设备获得第一组运动数据,其中所述第一组运动数据提供描述用户输入对象在x维中的至少两个位置的至少两个值、描述用户输入对象在y维中的至少两个位置的至少两个值、以及描述至少两个时间的至少两个值。
8.根据前述权利要求中任一项所述的计算机实施的方法,其中,当检测到用户输入对象的附加运动时,所述该组运动数据被迭代更新,并且其中:
由所述一个或多个计算设备获得第一组运动数据包括由所述一个或多个计算设备迭代地获得分别更新用户输入对象随时间的位置的多个运动更新;
由所述一个或多个计算设备将第一组运动数据输入到循环神经网络包括由所述一个或多个计算设备迭代地将多个运动更新中的每一个运动更新在它们被迭代地获得时输入到循环神经网络中;
由所述一个或多个计算设备接收运动预测向量作为运动预测模型的输出包括由所述一个或多个计算设备迭代地接收多个运动预测向量作为运动预测模型的输出;以及
由所述一个或多个计算设备呈现显示屏包括由所述一个或多个计算设备迭代地呈现已经根据用户输入对象的所述一个或多个预测的未来位置修改的显示屏。
9.根据前述权利要求中任一项所述的计算机实施的方法,其中:
由所述一个或多个计算设备呈现已经根据用户输入对象的所述一个或多个预测的未来位置修改的显示屏包括由所述一个或多个计算设备呈现已经根据预测的划动动作修改的显示屏。
10.根据前述权利要求中任一项所述的计算机实施的方法,其中,所述运动预测模型包括循环神经网络。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/259,917 US10514799B2 (en) | 2016-09-08 | 2016-09-08 | Deep machine learning to perform touch motion prediction |
US15/259,917 | 2016-09-08 | ||
PCT/US2017/047300 WO2018048598A1 (en) | 2016-09-08 | 2017-08-17 | Deep machine learning to perform touch motion prediction |
CN201780055187.7A CN109716361B (zh) | 2016-09-08 | 2017-08-17 | 执行触摸运动预测的深度机器学习 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055187.7A Division CN109716361B (zh) | 2016-09-08 | 2017-08-17 | 执行触摸运动预测的深度机器学习 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117332812A true CN117332812A (zh) | 2024-01-02 |
Family
ID=59714158
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055187.7A Active CN109716361B (zh) | 2016-09-08 | 2017-08-17 | 执行触摸运动预测的深度机器学习 |
CN202311095727.8A Pending CN117332812A (zh) | 2016-09-08 | 2017-08-17 | 执行触摸运动预测的深度机器学习 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780055187.7A Active CN109716361B (zh) | 2016-09-08 | 2017-08-17 | 执行触摸运动预测的深度机器学习 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10514799B2 (zh) |
EP (2) | EP4369159A1 (zh) |
CN (2) | CN109716361B (zh) |
DE (1) | DE202017105184U1 (zh) |
WO (1) | WO2018048598A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10699185B2 (en) * | 2017-01-26 | 2020-06-30 | The Climate Corporation | Crop yield estimation using agronomic neural network |
KR102302643B1 (ko) | 2017-04-21 | 2021-09-14 | 제니맥스 미디어 인크. | 모션 벡터들 예측에 의한 플레이어 입력 모션 보상을 위한 시스템들 및 방법들 |
KR20200010640A (ko) * | 2018-06-27 | 2020-01-31 | 삼성전자주식회사 | 모션 인식 모델을 이용한 자체 운동 추정 장치 및 방법, 모션 인식 모델 트레이닝 장치 및 방법 |
WO2020039273A1 (en) * | 2018-08-21 | 2020-02-27 | Sage Senses Inc. | Method, system and apparatus for touch gesture recognition |
CN110890930B (zh) | 2018-09-10 | 2021-06-01 | 华为技术有限公司 | 一种信道预测方法、相关设备及存储介质 |
WO2020058560A1 (en) * | 2018-09-17 | 2020-03-26 | Nokia Solutions And Networks Oy | Object tracking |
CN110162175B (zh) * | 2019-05-16 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 基于视觉的触觉测量方法、装置、设备及存储介质 |
TWI719591B (zh) * | 2019-08-16 | 2021-02-21 | 緯創資通股份有限公司 | 物件追蹤方法及其電腦系統 |
US11205065B2 (en) * | 2019-10-18 | 2021-12-21 | Alpine Electronics of Silicon Valley, Inc. | Gesture detection in embedded applications |
US11717748B2 (en) | 2019-11-19 | 2023-08-08 | Valve Corporation | Latency compensation using machine-learned prediction of user input |
CN110865767A (zh) * | 2019-11-20 | 2020-03-06 | 深圳传音控股股份有限公司 | 应用程序的运行方法、装置、设备及存储介质 |
WO2021137849A1 (en) * | 2019-12-30 | 2021-07-08 | Google Llc | Distributed machine-learned models across networks of interactive objects |
GB2591765B (en) * | 2020-02-04 | 2023-02-08 | Peratech Holdco Ltd | Classifying mechanical interactions |
CN113448482B (zh) * | 2020-03-25 | 2024-09-13 | 华为技术有限公司 | 触控屏的滑动响应控制方法及装置、电子设备 |
JP7163545B2 (ja) | 2020-03-30 | 2022-11-01 | 東芝情報システム株式会社 | タッチパネル装置及びタッチパネル用プログラム |
CN113496268B (zh) * | 2020-04-08 | 2024-07-05 | 北京图森智途科技有限公司 | 一种轨迹预测方法和装置 |
CN114092751A (zh) * | 2020-07-09 | 2022-02-25 | 北京图森未来科技有限公司 | 一种轨迹预测方法和装置 |
WO2022081157A1 (en) * | 2020-10-15 | 2022-04-21 | Google Llc | Transporter network for determining robot actions |
CN114418159B (zh) * | 2021-10-29 | 2023-01-03 | 中国科学院宁波材料技术与工程研究所 | 肢体运动轨迹及其预测误差的预测方法、系统和电子装置 |
CN114224577B (zh) * | 2022-02-24 | 2022-05-17 | 深圳市心流科技有限公司 | 智能假肢的训练方法、装置、电子设备、智能假肢及介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4752906A (en) | 1986-12-16 | 1988-06-21 | American Telephone & Telegraph Company, At&T Bell Laboratories | Temporal sequences with neural networks |
JP2676397B2 (ja) | 1989-01-05 | 1997-11-12 | 株式会社エイ・ティ・アール視聴覚機構研究所 | 動的システムの運動軌道生成方法 |
US5105468A (en) | 1991-04-03 | 1992-04-14 | At&T Bell Laboratories | Time delay neural network for printed and cursive handwritten character recognition |
US5412754A (en) | 1992-06-30 | 1995-05-02 | At&T Corp. | Reverse time delay neural network for pattern generation |
US5742702A (en) | 1992-10-01 | 1998-04-21 | Sony Corporation | Neural network for character recognition and verification |
US5930781A (en) | 1992-10-27 | 1999-07-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Neural network training by integration of adjoint systems of equations forward in time |
US5812698A (en) | 1995-05-12 | 1998-09-22 | Synaptics, Inc. | Handwriting recognition system and method |
US6038338A (en) | 1997-02-03 | 2000-03-14 | The United States Of America As Represented By The Secretary Of The Navy | Hybrid neural network for pattern recognition |
US6610917B2 (en) | 1998-05-15 | 2003-08-26 | Lester F. Ludwig | Activity indication, external source, and processing loop provisions for driven vibrating-element environments |
US20120056846A1 (en) | 2010-03-01 | 2012-03-08 | Lester F. Ludwig | Touch-based user interfaces employing artificial neural networks for hdtp parameter and symbol derivation |
US9354804B2 (en) * | 2010-12-29 | 2016-05-31 | Microsoft Technology Licensing, Llc | Touch event anticipation in a computing device |
US20130009896A1 (en) | 2011-07-09 | 2013-01-10 | Lester F. Ludwig | 3d finger posture detection and gesture recognition on touch surfaces |
US8194926B1 (en) | 2011-10-05 | 2012-06-05 | Google Inc. | Motion estimation for mobile device user interaction |
US9224090B2 (en) | 2012-05-07 | 2015-12-29 | Brain Corporation | Sensory input processing apparatus in a spiking neural network |
US20130297539A1 (en) | 2012-05-07 | 2013-11-07 | Filip Piekniewski | Spiking neural network object recognition apparatus and methods |
US8487896B1 (en) * | 2012-06-27 | 2013-07-16 | Google Inc. | Systems and methods for improving image tracking based on touch events |
US9703473B2 (en) | 2013-01-24 | 2017-07-11 | Facebook, Inc. | Predicting touch input |
US10181098B2 (en) * | 2014-06-06 | 2019-01-15 | Google Llc | Generating representations of input sequences using neural networks |
US9678506B2 (en) * | 2014-06-19 | 2017-06-13 | Skydio, Inc. | Magic wand interface and other user interaction paradigms for a flying digital assistant |
US9248834B1 (en) | 2014-10-02 | 2016-02-02 | Google Inc. | Predicting trajectories of objects based on contextual information |
WO2016106238A1 (en) * | 2014-12-24 | 2016-06-30 | Google Inc. | Augmenting neural networks to generate additional outputs |
WO2016172872A1 (zh) * | 2015-04-29 | 2016-11-03 | 北京旷视科技有限公司 | 用于验证活体人脸的方法、设备和计算机程序产品 |
CN105787582A (zh) * | 2015-12-24 | 2016-07-20 | 清华大学 | 股票风险预测方法和装置 |
-
2016
- 2016-09-08 US US15/259,917 patent/US10514799B2/en active Active
-
2017
- 2017-08-17 CN CN201780055187.7A patent/CN109716361B/zh active Active
- 2017-08-17 WO PCT/US2017/047300 patent/WO2018048598A1/en unknown
- 2017-08-17 CN CN202311095727.8A patent/CN117332812A/zh active Pending
- 2017-08-17 EP EP23210871.2A patent/EP4369159A1/en active Pending
- 2017-08-17 EP EP17758380.4A patent/EP3510529B1/en active Active
- 2017-08-29 DE DE202017105184.6U patent/DE202017105184U1/de active Active
-
2019
- 2019-11-25 US US16/693,947 patent/US11740724B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP4369159A1 (en) | 2024-05-15 |
US20180067605A1 (en) | 2018-03-08 |
EP3510529B1 (en) | 2023-12-27 |
CN109716361A (zh) | 2019-05-03 |
CN109716361B (zh) | 2023-09-15 |
DE202017105184U1 (de) | 2018-01-03 |
US11740724B2 (en) | 2023-08-29 |
US20200089366A1 (en) | 2020-03-19 |
WO2018048598A1 (en) | 2018-03-15 |
EP3510529A1 (en) | 2019-07-17 |
US10514799B2 (en) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109716361B (zh) | 执行触摸运动预测的深度机器学习 | |
US10261685B2 (en) | Multi-task machine learning for predicted touch interpretations | |
JP6854921B2 (ja) | タスク固有のポリシーおよび共有ポリシーをもつマルチタスクニューラルネットワークシステム | |
US10832154B2 (en) | Predictive controller adapting application execution to influence user psychological state | |
JP6666457B2 (ja) | リカレントニューラルネットワークモデルの圧縮 | |
EP3559865B1 (en) | Data-efficient reinforcement learning for continuous control tasks | |
US20180189647A1 (en) | Machine-learned virtual sensor model for multiple sensors | |
CN110832433B (zh) | 基于传感器的组件激活 | |
US20240212347A1 (en) | Memory-guided video object detection | |
US10387161B2 (en) | Techniques for capturing state information and performing actions for threads in a multi-threaded computing environment | |
US20130141326A1 (en) | Gesture detecting method, gesture detecting system and computer readable storage medium | |
CN113302605A (zh) | 鲁棒且数据效率的黑盒优化 | |
Wodziński et al. | Sequential classification of palm gestures based on A* algorithm and MLP neural network for quadrocopter control | |
EP3446258B1 (en) | Model-free control for reinforcement learning agents | |
WO2017105866A1 (en) | Control system using input-aware stacker | |
CN116710927A (zh) | 用于值函数的优化和期望数据的生成的监督vae | |
CN115511779A (zh) | 图像检测方法、装置、电子设备和存储介质 | |
CN112966592A (zh) | 手部关键点检测方法、装置、设备和介质 | |
US9927917B2 (en) | Model-based touch event location adjustment | |
CN115079832A (zh) | 虚拟现实场景的显示处理方法及虚拟现实设备 | |
Mohamed | Eye-gesture control of computer systems via artificial intelligence | |
CN114723855A (zh) | 图像生成方法及装置、设备和介质 | |
CN118051143B (zh) | 一种平板电脑误触监测方法、系统、装置及介质 | |
CN115061576B (zh) | 用于虚拟现实场景的注视位置预测方法及虚拟现实设备 | |
KR20220015232A (ko) | 딥러링 기반 시선추적 방법과 이를 사용한 시선데이터 기록 및 시계열 2d 그래프 시각화 기반 분석 방법 |
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 |