1.本公开涉及震颤消除。具体地,本公开涉及人机接口中的震颤消除。
背景技术:2.震颤是一种不自主的肌肉收缩和松弛,涉及一个或多个身体部位(最常见的是手部)的振动或抽搐运动。它通常具有节奏性成分,因此可在一定程度上表现为临床特征和个体特征。原因有很多,许多原因涉及神经退行性疾病,诸如帕金森氏病或其他神经系统疾病。最常见的类型是原发性震颤,其通常在4hz至8hz的频率下发生。同样常见的是肌张力障碍性震颤,这是由于运动障碍肌张力障碍而导致的。震颤通常无法治愈,尽管各种药物可在某些情况下减轻症状的严重程度。
3.许多震颤患者能够过上正常的生活,但有些活动会受到这种症状的严重影响。一种活动是使用常规人机接口。患有震颤的用户在使用需要物理交互的装置时将(诸如,计算机鼠标、操纵杆或触控板)会受到严重损害。尽管在一些情况下可避开这些接口(例如,通过使用语音输入),但很多情况(例如,计算机辅助设计(cad))下,这是唯一实际可行的用户接口类型。
4.已经提出了各种装置来通过主动干预减少震颤(us6234045和wo2015/128090讲授了震颤消除装置),并且公司诸如liftware提供了稳定装置,但是这些装置由于它们干预的性质而损害了用户与用户接口装置交互的能力。已采用各种方法来修改与适配器(wo2015/164128)、定制环境(us2009/0089718)和装置驱动器(us6561993)的人机交互,但这些方法涉及用户的计算环境中的显著干预,并且通常对其他计算环境可见或以其他方式显而易见。这会影响用户的隐私,并且会使他们的损伤情况被其他人清楚地看到。非常期望实现以保护用户隐私并且使其症状的性质不会被其他人清楚地看到的方式允许患有震颤的用户有效地使用物理用户接口的解决方案。
技术实现要素:5.在第一方面,本公开提供了一种用于震颤消除的用户接口装置,该用户接口装置包括:用户接口,该用户接口用于从物理用户输入确定位置;震颤学习模块;震颤消除模块;和位置输出端,所述位置输出端用于提供位置数据的有时序输出流;其中
6.该震颤学习模块适于被训练,以通过比较由用户利用预先确定的表示产生的位置数据的有时序输出流来识别该用户的震颤模式;并且该震颤消除模块适于将该用户的该学习到的震颤模式应用于消除由该用户产生的位置数据的有时序流中的震颤,以创建已针对用户震颤进行校正的位置数据的输出流。
7.虽然震颤是不自主的,但是它们通常被表征为是针对个体的(us7236156提供了用于基于震颤识别个体的系统的一个示例)。使用适当的技术诸如傅里叶线性组合的震颤建模(ieee trans biomed eng.2016 nov;63(11):2336-2346.“a quatemion weighted fourier linear combiner for modeling physiological tremor”,adhikari k et al)
和利用支持向量机进行的运动滤波(“tremor detection using motion filtering and svm”,soran b et al,in proceedings of the 21st international conference on pattern recognition(icpr2012))已用于此目的。本方法建立在以下这种能力上:表征震颤,以创建个性化用户接口解决方案,其中震颤被表征,然后被消除以允许以无震颤形式提供用户输入。
8.这种震颤学习模块可包括机器学习模型,诸如分类器,例如感知器。可在另选实施方案中使用其他机器学习方法,诸如支持向量机。此处,预先确定的表示可包括预先确定的图案集。到机器学习模型的输入可以是通过由用户利用预先确定的表示产生的位置数据的有时序输出流的多项式回归提供的。在这种情况下,到机器学习模型的输入可包括多项式的阶数和系数。
9.这种用户输入装置可包括所有所述功能元件都驻留在其内的单个物理装置。这可以是例如鼠标、触控板或操纵杆。以此方式,在使用中的用户输入装置可能难以有效地与相同类型的常规用户输入装置区分开,即使其已被训练为消除或补偿特定用户的震颤。该装置可产生与常规装置相同类型的输出,并且可使用常规驱动器来进行操作。虽然在训练阶段期间可能需要不同的布置以易于训练,但在实际使用期间(“运行阶段”),对于外部交互人员或系统,用户输入装置可能在物理上和逻辑上都看起来是完全常规的。
10.在第二方面,本公开提供了一种利用用户接口装置消除用户震颤的方法,该用户接口装置包括用户接口和位置输出端,该用户接口用于从物理用户输入确定位置,该位置输出端用于提供位置数据的有时序输出流,该方法包括:根据针对预先确定的表示的用户输入训练用户接口装置中的震颤学习模块,以获得用户的震颤模式;在训练之后,当用户通过用户接口提供用户输入时,该用户接口装置使用震颤模式来消除震颤,以从位置输出端提供输出数据的震颤已消除的有时序流。
具体实施方式
11.现在参考附图仅以举例的方式描述本公开的具体实施方案,其中:
12.图1示出了在其中使用物理用户输入来提供位置信息的示例性人机接口;
13.图2示意性地示出了常规物理输入用户接口中的元件;
14.图3示意性地示出了根据本公开的实施方案的物理输入用户接口中的元件;
15.图4示出了根据本公开的实施方案的在用户移动表示层中执行的示例性步骤;
16.图5示出了根据本公开的实施方案的使用震颤学习模块在训练阶段中执行的示例性步骤;
17.图6示出了图5的训练模块的代表性输出;
18.图7示出了使用多项式回归进行的可与图5的方法结合使用的示例性拟合过程;
19.图8示出了在本公开的实施方案中在训练阶段中使用的学习过程;并且
20.图9示出了根据本公开的实施方案的从震颤学习和训练到震颤消除的完整过程的阶段。
21.图1提供了本公开的实施方案的例示性上下文。计算机1具有相关联的显示器3,该显示器中示出了具有光标4的在很大程度上空白的屏幕。提供了提供可用于移动光标4的物理输入的另选方式。第一种方式是计算机鼠标2a。第二种方式是操纵杆2b。第三种方式触控
板2c。在每种情况下,用户移动(拖动鼠标2a、抓握并拉动或推动操纵杆2b或手指或触控笔沿着触控板2c的表面移动)被转换为光标在整个显示器上的移动。这可用于遍历或修改在显示器上呈现的文档或其他对象。
22.处于其常规形式的这些物理输入装置可由相同的一组元件表示。用户输入层21获取物理动作,并且通过技术代理(例如,其可以是针对鼠标的光学位置检测或针对触摸板的电容感测)将该物理动作转换为位置数据。物理动作将通常随时间而变化,并且移动捕获层22可用于提供由位置和时间值构成的输出流。该输入流将使用装置23的内部架构来转换为到计算机1的输入,该输入可用于移动光标4,该内部架构可针对不同类型的输入装置而变化(并且此处,与类型无关,因为技术人员将了解适于不同输入装置类型的常规架构)。
23.在根据本公开的实施方案的提出的系统中,用户输入层31基本上相同,并且存在具有不同功能的移动捕获层34,但还存在两个中间层。一个是移动表示层32(类似于移动捕获层34),其产生由位置和时间对组成的输出。然而,在这种情况下,移动表示层32的输出未针对震颤进行校正,而移动捕获层34(在已进行训练过程之后)将被校正。移动表示层可被认为是震颤检测模块32。下一个层是充当震颤学习模块33的训练层-一旦训练和学习过程完成,其还将指示需要应用哪些校正来消除震颤。移动捕获层34现在通过如震颤学习模块33所表征的针对用户震颤进行校正来包括震颤消除的功能,因此该移动捕获层可被认为是震颤消除模块34。移动捕获层34的输出如前所述使用装置35的内部架构来转换为到计算机1的输入,该输入可用于移动光标4。
24.优选地,这些新的或经修改的层(震颤检测模块32、震颤学习模块33和震颤消除模块34)中的每个层在硬件中实施并且内置到用户输入装置中。以此方式,用户输入装置本身可能看起来难以区分,或者作为该类型(没有任何可见的“适配器”)的常规用户输入装置的正常设计变体。以此方式,在用户工作环境中保护用户隐私。
25.提供用户输入装置的输出的方式也保护了用户隐私,因为该输出与将从无震颤用户接收到的输出基本上相同-计算机本身不需要区分根据本公开的用户输入装置的输出和相同类型的常规用户输入装置的输出。不需要特殊驱动器或中间软件层。这是因为在训练之后,用户完全以常规方式使用用户输入装置。这样使用的结果将是包含震颤的数据流(时间和位置),该数据流是由震颤检测模块32输出的。在训练(在下文所描述的实施方案中,通过使用机器学习技术以及使用回归模型来提供)之后,震颤学习模块33将已学习到用户的震颤模式。然后,震颤消除模块34可使用这些震颤模式来从初始流中消除震颤,以产生已从中消除震颤的输出流,因此该输出流与使用常规用户输入装置从无震颤用户接收到的输出流基本上相同。由于在这两种情况下输出流将是相同的,因此本公开的实施方案可由于不需要其他系统修改而以不打扰和隐私保护的方式与所有人机接口解决方案无缝交互。
26.现在将更详细地描述这些模块。
27.如前所述,震颤检测模块32以与常规用户输入装置中的正常移动捕获层非常相似的方式进行操作。输入层31通过适当的技术(机械移动、光学检测和电容感测是示例性的)提供信号,并且用户交互机制的特征限定用户输入装置(其鼠标、触控板和操纵杆是非限制性示例)的类型。震颤检测模块32对输入层31处的信号进行采样,该输入层通常提供位置和时间值的流,并且这些值可通常通过分段线性函数在两个维度上(对于常规计算机接口,原则上,在三个维度上)表示。就部件而言,不需要对于相关类型的常规用户输入装置是不存
在的任何部件,因为唯一的显著差异在于,在常规用户输入装置中,该层提供来自装置的输出流,而在这种布置中,提供了附加层。
28.震颤学习模块33在常规用户输入装置中没有对应物。该部件被设计成确定表征个体的震颤的震颤模式。该部件通过训练来进行该操作,用户被要求使用用户输入装置来提供一系列预定义图(例如,字母、数字、符号、线、多边形、曲线)。震颤学习模块33使用预定义图和分段线性用户描述作为输入,并且通过使用统计和机器学习技术(诸如回归模型和分类)将这些输入用于从用户震颤中提炼用户的正常移动。通过足够的训练,震颤学习模块33建立个性化用户震颤模型。这可以是在主动使用用户输入装置之前进行的一次性步骤,但这也可以是在初始训练之后继续改进以改善结果的过程。
29.震颤消除模块34使用另外两个模块来消除用户震颤。从震颤检测模块32接收作为线性分段表示的原始用户输入。由个性化用户震颤模块33限定的震颤模式在数学变换中使用以从由震颤检测模块产生的分段线性表示中消除用户震颤。震颤消除模块34的输出是震颤已消除的输出流(值已简单地改变以校正震颤),其特征与震颤检测模块的输出相似。从系统中的下一个元件的视图来看,该实施方案的输出和相同技术类型的常规用户输入装置的输出之间不存在差异。
30.这些模块中的每个模块可以使得用户输入装置的现有结构不需要改变的方式内置到常规用户输入装置结构中(通常使用适当编程的附加硬件,这需要例如小的附加电路板)。由于用户输入装置的输入方法和输出格式可能是常规的,因此可在没有任何附加软件或硬件设置的情况下进行训练时使用该用户输入装置。以此方式,用户可在不同的情况下使用用户输入装置,有效地将该用户输入装置与不同装置一起使用,并且在不损害用户隐私的情况下使用该用户输入装置。如此处所描述的实施方案不限于用于单个用户-在针对特定用户进行训练时,可针对不同个体重新训练装置。在实施方案中,还可存储多于一个用户配置文件,其中在使用中确定要使用哪个用户配置文件。
31.如先前所指示,本公开的实施方案可使用各种不同的用户输入装置结构。此处明确讨论了鼠标、触控板和操纵杆,但原则上,本公开适用于用户手部、手指或手控对象(诸如触控笔)与计算机用户交互区域之间的任何形式的交互。本公开的实施方案可涉及显式计算装置诸如平板电脑、膝上型计算机或个人计算机,但还涉及多功能装置诸如智能手机,或者集成在另一个装置内(例如,集成在车辆内或电气设备上)作为控制器的计算装置。用户输入装置的输出可在使用这些装置中的任一个装置的软件中用于任何适当目的,包括从基本光标移动到更复杂的功能,诸如在图形编辑包中的手写输入或绘图输入。
32.震颤检测模块32基本上是常规的用户交互层,其从物理输入层31诸如触摸屏(电阻、电容、光学等)、操纵杆或鼠标(此处由于可使用任何适当的常规技术而无需对上述中的任一者进行任何进一步讨论,并且技术人员将容易地了解如何构建适当接口或重新利用现有技术来提供一个接口)接收输入41。震颤检测模块32从该物理输入层31提取输出42。通常,来自这种装置的单个输出值是位置值(对于二维装置,通常是相对于原点测量的(x,y)坐标对),并且输出的正常形式是值的有时序性流43,通常,这将涉及以预先确定的采样率测量的值,但原则上可包括明确的时间值,或者可忽略位置不改变的测量值。
33.为了根据本公开的实施方案的震颤校正的目的,可将有时序集中的相邻值认为通过直线连接。这表示作为连接相邻点的一系列小直线区段的整个用户动作-这是近似于用
户的实际平滑移动的分段线性模型。如果后续过程需要,则可使用线性插值来添加附加点。
34.震颤学习模块33具有两个功能。一个功能是学习特定用户的震颤模式以建立针对该用户的特定震颤模型-这是训练阶段。另一个功能是为震颤消除模块34提供已学习的特定震颤模型,以用于消除相关联用户的震颤。
35.为了允许用户输入装置对于外部系统完全充当常规用户输入装置,可能期望在装置上提供一种物理机制(诸如,按钮或卡扣)来证实其处于“使用”状态或“训练”状态。否则,可能有必要存在至少与将指示用户输入装置具有训练状态和使用状态的计算装置的某种软件交互,这种某种软件交互会将使用复杂化并损害用户隐私。在训练阶段中,通常需要与外部计算装置交互,如下文所讨论的。
36.现在将参考图5至图8更详细地描述训练状态。训练状态通常将作为一次性离线(就用户输入装置未用于计算机系统的其他用户输入任务而言)阶段来执行,意图在于针对用户个性化用户输入装置,以便消除该用户的震颤模式。该阶段可被重复或扩展以提供更好的结果,或者该阶段可针对不同的用户重新执行,以针对该新用户重新个性化用户输入装置。理论上,可能可存储多于一个用户输入曲线,使得用户输入装置可易于由已针对其训练该用户输入装置的多个用户中的任一个用户使用。
37.在第一步骤中,需要建立51训练阶段(参考图5),当经训练的用户输入装置用于使用相关用户的震颤模式的模型来向计算机系统提供震颤已消除的输入时,将该训练阶段与“运行阶段”区分开。如下文将讨论的,可能可在运行阶段期间进一步改进这种模型,但本公开教导至少初始训练阶段允许构建有效模型。
38.在训练阶段中,有必要获得与已知输出对应的用户输入。为了实现这一点,在与用户输入装置连接的计算装置上运行用户输入装置训练程序可能是实际可行的。这将被设计成提供下面所指示的功能,并且因此提供用于建立用户震颤模型并且将其安装在震颤学习模块33内的过程。已编程的计算设备和用户输入装置一起形成训练系统。
39.一旦已建立训练阶段,训练系统就为用户提供52预定义任务,这些预定义任务可以是固定集合或较大集合的子集。个别任务可能涉及例如用字母表写字母或数字,或者绘制简单的多边形。用于每个这种任务的用户输入被震颤检测模块32捕获521作为位置值的有时序流,然后这些值如先前所描述的以分段线性形式进行表示。对该输入(用户移动点的有时序集(xi,yi)或分段线性表示,这取决于技术)执行522曲线拟合方法(诸如,多项式回归或分段回归)。构建高次多项式以为用户的实际输入提供最佳拟合,通常此类拟合方法以第一次多项式开始并且逐渐增加更高阶项,从而将多项式的次数增加到m阶(其中m是最高阶项的阶数)。该过程可继续直到偏差误差e(通过最小二乘法或另一种适当方法来计算)下降到低于合适的低值(比如,0.001),此时该任务被充分训练523。将使用相似的方法来训练多个任务,这些任务可能全部是新任务,或者在一些实施方案中,用户可能需要执行多于一次相同的任务,并且该过程继续53直到已完成54适当数量的任务。
40.图6示出了这种方法。示出了许多任务对象61,针对每个任务对象的用户输入62在此之后示出。然后在多项式拟合过程之后将用户输入描述为高阶多项式63。
41.多项式回归(如图7所示)具有以下形式:
[0042][0043]
其以矩阵符号表示为:
[0044][0045]
或其中
[0046]
此时,存在多个任务对象和相关联的高级多项式表示,这些高级多项式表示对应于用户在表示这些任务对象时的输入。用户的震颤模式可由机器学习从这些输入中导出。首先,震颤学习模块33针对每个任务学习54用户输入移动和任务的原始对象之间的映射。所获得的拟合曲线的特征(次数和系数)然后可由机器学习分类模型用于将多项式表示和与相关任务相关联的预定义对象或形状相关联地归类。多类感知器(整体描述于https://en.wikipedia.org/wiki/perceptron中)是一种适当的机器学习技术,用于学习从拟合多项式到训练对象的映射;支持向量机(https://en.wikipedia.org/wiki/support-vector machine)是另一种所述机器学习技术。
[0047]
考虑到感知器方法,可根据以下过程进行学习。如果a表示输入参数(多项式的系数和次数)集,并且b表示系统的输出(目标对象),然后特征表示函数f(a,b)将每个可能的输入-输出对映射到实值向量(特征向量)。乘法加权因子w与用于在可能的输入中进行选择的得分一起应用,其中
[0048][0049]
迭代训练示例,根据计算出的误差将权重修改为:
[0050][0051]
供模型学习的最终权重稍后用于组合用于新输入的特征向量。对于作为训练集的一部分的符号,已建立权重,但也可基于其与经训练符号(例如,作为两个已经训练的符号的组合)的关系来解读另外的其他符号。在没有清楚标识的情况下,可从候选符号中为用户提供选择,因此用户可选择与用户意图匹配的预测(这在实施方案中可用作另外的训练步骤)。在输入不是呈待识别的符号的形式而是呈任意形状的形式的情况下,来自经训练符号(其可定义例如用户如何表示直线或特定类型的曲线)的输入的相同组合可用于提供任意输入的最佳预测。然而,通常,所获得的训练数据越多,并且在训练数据中提供的形状越复杂,对先前未见过的符号或任意输入的预测将越好。
[0052]
使用这种方法,为用户开发了震颤模式的个性化模型(用户的个性化层)。这就是训练阶段的输出。通常,将根据系统希望捕获的形状和对象的复杂性来预定义用于建立个性化层的任务集(例如,如果需要针对自由绘图训练系统,这可能详细和复杂得多,并且如果仅需要将系统训练为识别多个离散输入中的哪个离散输入是用户正在寻求表示的,这可能没那么复杂)。图8表示模型学习过程(其从拟合多项式81开始,这些拟合多项式变成表征输入82(此处,多项式的次数和系数))至机器学习过程83(在这种情况下,多类感知器),该机器学习过程建立与测试对象84的对应关系。
[0053]
用户的震颤模式模型在运行阶段中被震颤消除模块用于消除用户的输入。在训练阶段,用户向系统提供任意输入。这些用户移动被捕获为(x,y)坐标并变换为分段线性表示。然后,模块(在飞行时)计算高次多项式表示以近似于用户输入,如先前分别针对震颤检测模块和震颤学习模块所描述的。
[0054]
拟合多项式的特征(次数和系数)然后通过用户的个性化模型(震颤学习模块内的预训练分类模型)。该分类输出被认为是用户(具有震颤症状)预期执行的实际动作、对象或形状。
[0055]
然后将从分类框架获得的这种输出(使用机器学习来识别用户的预期输出)转换回用户移动的正常数字表示(一系列屏幕坐标)以表示预期用户动作。这是与震颤检测模块的输出相同的形式的信息,但对震颤进行了校正。
[0056]
图9示出了该完整过程。震颤检测模块提供用户输入表示91,作为被转换为(x,y)表示的裸用户输入。在训练阶段92中,震颤学习模块针对各种任务对象的表示获取该类型的用户输入,然后其执行多项式拟合并且使用机器学习过程中的多项式参数来建立个性化层。在运行阶段93中,如前所述将用户输入拟合到多项式,然后将其提供给经训练的模型以确定用户的预期输入,然后将其渲染为(x,y)坐标并且作为输出提供给模型。
[0057]
以此方式,经训练的用户输入装置提供与将由用户使用的常规用户输入装置在该用户未经历震颤的情况下产生的输出对应的输出。这允许用户向特定软件(诸如例如绘图和cad软件)提供输入,该特定软件不会展现用户的震颤并反映用户的意图(它即起隐私保护作用,也是有效的输入)。
[0058]
用户输入装置本身可具有常规外观,其可包括小附加硬件部件(诸如小附加电路板),该小附加硬件部件可隐藏在操纵杆或鼠标(或其他输入装置)的现有壳体内,并且可通过蓝牙或通过电线以传统方式与计算设备通信。由于在训练之后完全在用户输入装置内部提供震颤消除,因此不需要与计算装置的附加连接,并且装置驱动器可与相同类型的常规用户输入装置相同。
[0059]
存在一些外部装置类型,诸如桌面交互式显示器,其中其将可能无法直接通过鼠标或操纵杆提供用户输入。然而,可通过投影或共享(经由蓝牙或另一种本地网络技术)屏幕的表面及其在与用户输入装置相关联的显示器上的内容来提供解决方案。可以上述方式提供用户输入,并且以这种方式提供的用户输入从与用户输入装置相关联的显示器共享到外部设备显示器。这允许患有震颤的用户与这些装置有效地交互。这种方法可用于提供绘图类型的交互,但也可用于键盘输入。
[0060]
本公开的实施方案的其他用途是可能的。一种方法是简单地测量震颤以及其随着时间的发展,用户可简单地从未经训练的状态完成训练阶段,并且将所得用户震颤模型与在较早时间确定的用户震颤模型进行比较。这可用于识别和了解震颤状况的渐进变化。
[0061]
如本领域技术人员将理解的,以上描述的实施方案是示例性的,落入本公开的实质和范围内的另外的实施方案可以由本领域技术人员根据以上阐述的原理和实施例来开发。