掌桥专利:专业的专利平台
掌桥专利
首页

电子白板的书写方法、电子设备及存储介质

文献发布时间:2024-04-18 19:58:53


电子白板的书写方法、电子设备及存储介质

技术领域

本公开属于电子白板书写技术领域,具体涉及一种电子白板的书写方法、电子设备及存储介质。

背景技术

在现有技术中,电子白板书写广泛应用于教育、企业会议、远程协作等场景。然而,传统的电子白板书写存在手写延迟较大的问题。其原因主要为:电子白板书写的触控面板、显示器和处理器等硬件性能可能导致手写响应速度受限。当硬件性能不足以满足实时响应需求时,可能会引发手写延迟增大。较大的手写延迟会使得用户在书写过程中感受到明显的不适,导致书写体验下降。这可能影响用户的书写效果和效率。因此,有必要研究一种提高电子白板书写的使用体验的方案。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一,第一方面,提供一种电子白板的书写方法,所述方法包括:

响应于接收到的第n个触摸报点,删除第n-1个触摸报点与第n个预测报点之间的预测笔迹,并生成所述第n-1个触摸报点和所述第n个触摸报点之间的真实笔迹;所述第n个预测报点为基于所述第n-1个触摸报点通过预设算法计算得到的;n≥4,且n为正整数。

在一些实施例中,所述方法还包括:

基于预设算法根据所述第n-1个触摸报点计算得到第n个中间预测报点;

至少根据第n-3个触摸报点、第n-2个触摸报点、第n-1个触摸报点,计算角度变化量;

基于所述角度变化量对所述第n个中间预测报点进行调整,得到所述第n个预测报点。

在一些实施例中,所述基于所述角度变化量对所述第n个中间预测报点进行调整,得到所述第n个预测报点,包括:

根据所述角度变化量计算基于曲率的预测距离调整因子;

基于所述预测距离调整因子对所述第n个中间预测报点进行调整,得到所述第n个预测报点;其中,所述基于曲率的预测距离调整因子为:

distance_adjustment_factor=1/(1+k*angle1/π);其中,angle1为角度变化量,k为参数。

在一些实施例中,所述至少根据第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点,计算所述角度变化量,包括:至少根据所述第n-3个触摸报点、所述第n-2个触摸报点及所述第n-1个触摸报点得到至少两个向量;

确定所述至少两个向量中任意相邻两个向量所组成的夹角并计算出角度变化量。

在一些实施例中,所述基于所述预测距离调整因子对所述第n个中间预测报点进行调整,得到所述第n个预测报点,包括:

基于所述预测距离调整因子调整所述第n个中间预测报点的横坐标和纵坐标,得到所述第n个预测报点的横坐标和纵坐标;

基于所述第n个预测报点的横坐标和纵坐标得到所述第n个预测报点,其中,所述第n个预测报点的横坐标为:

adjusted_prediction_x=x+(prediction_x-x)*distance_adjustment_factor;

所述第n个预测报点的纵坐标为:

adjusted_prediction_y=y+(prediction_y-y)*distance_adjustment_factor,其中,x为第n-1个触摸报点的横坐标,prediction_x为所述第n个中间预测报点的横坐标,y为第n-1个触摸报点的纵坐标,prediction_y为所述第n个中间预测报点的纵坐标,distance_adjustment_factor为预测距离调整因子。

在一些实施例中,所述方法还包括:

响应于接收到每个触摸报点后,在内存中生成离屏渲染的笔迹图;

在删除所述第n-1个触摸报点与所述第n个预测报点之间的预测笔迹,并生成所述第n-1个触摸报点与所述第n个触摸报点之间的真实笔迹后,当所述第n-1个触摸报点与所述第n个预测报点之间存在遗留的预测笔迹时,

确定所述第n-1个触摸报点与所述第n个预测报点之间生成的预测笔迹所在的第一矩形区域及所述第n-1个触摸报点与所述第n个触摸报点之间生成的真实笔迹所在的第二矩形区域;

根据所述第一矩形区域与所述第二矩形区域确定出第三区域,通过所述离屏渲染的笔迹图更新所述第三区域当前所显示的笔迹图。

在一些实施例中,基于预设算法根据所述第n-1个触摸报点计算得到第n个中间预测报点,包括:

确定当前真实笔迹中第n-1个触摸报点的输入数据;

获取卡尔曼滤波算法;

根据所述第n-1个触摸报点的输入数据更新所述卡尔曼滤波算法的参数,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述第n-1个触摸报点的输入数据包括当前真实笔迹中触摸报点的数量;所述卡尔曼滤波算法的参数包括:噪声协方差矩阵参数和测量系统协方差矩阵参数;

所述获取卡尔曼滤波算法,根据所述第n-1个触摸报点的输入数据更新所述卡尔曼滤波算法的参数,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

获取卡尔曼滤波算法;

将所述当前真实笔迹中触摸报点的数量与笔迹阈值进行比较,得到比较结果;

根据与所述比较结果对应的参数更新策略,对卡尔曼滤波算法中的噪声协方差矩阵参数和测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述第n-1个触摸报点的输入数据还包括:第n-1个触摸报点的位置信息和第n-1个触摸报点的时间信息;

所述根据与所述比较结果对应的参数更新策略,对卡尔曼滤波算法中的噪声协方差矩阵参数和测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

响应于所述比较结果为当前真实笔迹中触摸报点的数量小于或等于笔迹阈值,根据所述第n-1个触摸报点的位置信息计算第n-1个触摸报点与第n-2个触摸报点的距离;

利用所述第n-1个触摸报点与第n-2个触摸报点的距离与所述第n-1个触摸报点的时间信息计算速度信息;

将所述速度信息利用自适应函数进行处理,得到输出结果,将所述输出结果作为所述噪声协方差矩阵参数,完成对所述噪声协方差矩阵参数的更新;

利用所述第n-1个触摸报点的位置信息作为所述测量系统协方差矩阵参数,完成对所述测量系统协方差矩阵参数的更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述第n-1个触摸报点的数据还包括:第n-1个触摸报点的位置信息和第n-1个触摸报点的时间信息;

所述根据与所述比较结果对应的参数更新策略,对卡尔曼滤波算法中的噪声协方差矩阵参数和/或测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

响应于所述比较结果为所述当前真实笔迹中触摸报点的数量大于笔迹阈值,根据所述第n-1个触摸报点的位置信息计算第n-1个触摸报点与第n-2个触摸报点的距离;

利用所述第n-1个触摸报点与第n-2个触摸报点的距离与所述第n-1个触摸报点的时间信息计算速度信息;

将所述速度信息利用自适应函数进行处理,得到输出结果,将所述输出结果作为所述噪声协方差矩阵参数,完成对所述噪声协方差矩阵参数的更新;

根据所述第n-1个触摸报点的位置信息计算第n-1个触摸报点与第n-2个触摸报点之间的向量与水平方向的夹角;

根据所述第n-1个触摸报点与第n-2个触摸报点的距离和/或所述夹角满足的条件确定对应的更新预测方式,基于所述更新预测方式对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述根据所述第n-1个触摸报点与第n-2个触摸报点的距离和/或所述夹角满足的条件确定对应的更新预测方式,基于所述更新预测方式对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

所述基于所述第n-1个触摸报点的位置信息进行插值预测处理,利用所述插值预测处理结果对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述根据所述第n-1个触摸报点与第n-2个触摸报点的距离和/或所述夹角满足的条件确定对应的更新预测方式,基于所述更新预测方式对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

判断所述第n-1个触摸报点与第n-2个触摸报点的距离是否大于设定的最大距离阈值;

响应于确定所述第n-1个触摸报点与第n-2个触摸报点的距离大于设定的最大距离阈值,基于所述第n-1个触摸报点的位置信息进行插值预测处理,利用所述插值预测处理结果对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,在所述判断所述第n-1个触摸报点与第n-2个触摸报点的距离是否大于设定的最大距离阈值之后,还包括:

响应于确定所述第n-1个触摸报点与第n-2个触摸报点的距离小于或等于所述最大距离阈值,判断所述第n-1个触摸报点与第n-2个触摸报点的距离是否小于最小距离阈值;

响应于确定所述第n-1个触摸报点与第n-2个触摸报点的距离大于或等于所述最小距离阈值,且,小于或等于所述最大距离阈值,判断所述夹角是否小于角度阈值;

响应于所述夹角大于或等于所述角度阈值,基于所述第n-1个触摸报点的位置信息进行插值预测处理,利用所述插值预测处理结果对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,在所述响应于确定所述第n-1个触摸报点与第n-2个触摸报点的距离大于或等于所述最小距离阈值,且,小于或等于所述最大距离阈值,判断所述夹角是否小于角度阈值之后,还包括:

响应于所述夹角小于所述角度阈值,利用所述第n-1个触摸报点的位置信息作为所述测量系统协方差矩阵参数,完成对所述测量系统协方差矩阵参数的更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述响应于确定所述第n-1个触摸报点与第n-2个触摸报点的距离小于或等于所述最大距离阈值,判断所述第n-1个触摸报点与第n-2个触摸报点的距离是否小于最小距离阈值之后,还包括:

响应于确定所述第n-1个触摸报点与第n-2个触摸报点的距离小于所述最小距离阈值,获取根据所述卡尔曼滤波算法得到的第n-1个中间预测报点,将所述第n-1个中间预测报点作为第n个中间预测报点。

在一些实施例中,所述基于所述第n-1个触摸报点的位置信息进行插值预测处理,利用所述插值预测处理结果对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

选取距离第n-1个触摸报点最近的第一预定数量的触摸报点;

在所述第一预定数量的触摸报点中的相邻两个触摸报点之间插入第二预定数量的插点;

从所述第一预定数量的触摸报点和所有插点中选择至少两个点作为目标点,根据所述目标点的位置信息对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新;得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,在所述第一预定数量的触摸报点中的相邻两个触摸报点之间插入第二预定数量的插点,包括:

通过贝塞尔曲线的插值方式在所述第一预定数量的触摸报点中的相邻两个触摸报点之间,插入第二预定数量的插点。

在一些实施例中,所述目标点包括:

所述第n-1个触摸报点和任一插点。

在一些实施例中,所述基于所述位置信息进行插值预测处理,利用所述插值预测处理结果对所述测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点,包括:

计算所述第n-1个触摸报点和第n-2个触摸报点的中点;

将所述中点和所述第n-1个触摸报点均作为目标点,分别根据所述目标点的位置信息对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新;得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

在一些实施例中,所述方法还包括:

基于预设算法根据所述第n-1个触摸报点计算得到第n个中间预测报点;

响应于当前真实笔迹中触摸报点的数量大于等于M+N个,分别以第n-1个触摸报点及距离所述第n-1个触摸报点最近的M-1个触摸报点为曲线的起点,以所述曲线的起点所在的触摸报点的前N个触摸报点作为所述曲线的终点,生成M条曲线,并分别计算所述M条曲线的弓高;

基于所述M条曲线的弓高对所述第n个中间预测报点进行处理,得到所述第n个预测报点,M≥4,且M为正整数。

在一些实施例中,所述基于所述M条曲线的弓高对所述第n个中间预测报点进行处理,得到所述第n个预测报点,包括:

根据所述M条曲线的弓高确定所述M条曲线中直线次数;

当所述直线次数等于M时,计算所述第n个中间预测报点在第一方向和第二方向的延长距离,根据所述延长距离得到第n个预测报点,其中,所述延长距离为所述第n个中间预测报点和所述第n-1个触摸报点间距离的预设百分比的距离。

在一些实施例中,所述根据所述M条曲线的弓高确定所述M条曲线中直线次数,包括:

计算每条曲线的弓高;

当所述弓高小于设定距离时,所述直线次数加1;

当所述弓高大于或者等于所述设定距离时,所述直线次数减一,其中,所述直线次数初始化为0。

第二方面,本公开实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述任意一项所述的方法实施例。

第三方面,本公开实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行上述任意一项所述的方法实施例。

附图说明

图1为本公开实施例提供一种电子白板的书写方法流程图;

图2a-2b为本公开实施例提供的一种根据第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点,计算角度变化量的示意图;

图3为本公开实施例提供的又一种电子白板的书写方法流程图;

图4为本公开实施例提供了一种根据第n-1个触摸报点计算得到第n个中间预测报点方法流程图;

图5为本公开一个实施例以具体场景描述根据第n-1个触摸报点计算得到第n个中间预测报点方法的具体过程。

具体实施方式

为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。

除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

传统的电子白板书写存在手写延迟较大的问题。其原因主要为:目前,大尺寸电子白板书写的书写原理包括触控流程和渲染流程两个部分。触控流程中,电子白板的触控传感器接收触摸数据并反馈给书写应用,应用根据触摸数据构造笔迹数据。渲染流程中,应用层发出渲染更新请求,系统调度后进行统一渲染。手指或笔触摸屏幕后,笔迹显示到屏幕上的时间间隔构成书写延迟。为优化书写体验,需要从触控流程和渲染流程两个方向进行优化。

图1为本公开实施例提供一种电子白板的书写方法流程图。该方法包括:S101:响应于接收到的第n个触摸报点,删除第n-1个触摸报点与第n个预测报点之间的预测笔迹,并生成第n-1个触摸报点和第n个触摸报点之间的真实笔迹;其中,第n个预测报点为基于第n-1个触摸报点通过预设算法计算得到的;n≥4,且n为正整数。本公开实施例是通过预设算法根据当前触摸报点实时预测下一个触摸报点,并生成当前触摸报点与预测报点的预测笔迹,当获取到下一个真实的触摸报点时,将上次预测的预测笔记删除,并生成上一个触摸报点到当前真实触摸报点的真实笔迹,同时进行下次触摸报点的预测。通过这种实时预测和校正笔迹的方法,可以有效降低书写延迟,提高书写流畅度,从而显著提升电子白板书写的使用体验。

在一些实施例中,该方法除了包括步骤S101外还包括:S102、生成预测报点的步骤,对于生成每个预测报点的步骤可以包括如下步骤:

S1021:基于预设算法根据第n-1个触摸报点计算得到第n个中间预测报点。

S1022:至少根据第n-3个触摸报点、第n-2个触摸报点、第n-1个触摸报点,计算角度变化量。

S1023:基于所述角度变化量对所述第n个中间预测报点进行调整,得到所述第n个预测报点。

具体地,在步骤S1021中,基于预设算法根据第n-1个触摸报点计算得到第n个中间预测报点的预设算法,可以为卡尔曼滤波算法(Kalman filtering),卡尔曼滤波算法,是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。本公开实施例通过该算法可以根据当前的触摸报点提前预测下一个触摸报点。

进一步,在步骤S1022和步骤S1023中,为了提高预测报点的准确性,可以根据已经接收到的多个触摸报点对当前通过预设算法预测的预测报点进行调整。具体可以通过已经接收到的多个触摸报点角度变化量,判断触摸报点生成的真实笔迹的弯曲程度,以对通过预设算法预测的预测报点进行调整。

在一些实施例中,步骤S1022中,至少根据第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点,计算角度变化量,包括:至少根据第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点得到至少两个向量;确定至少两个向量中任意相邻两个向量所组成的夹角并计算出角度变化量。

图2a-2b为本公开实施例提供的一种根据第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点,计算角度变化量的示意图。在图2a中,以根据3个触摸报点计算角度变化量为例进行说明,假设在该实施例中n=5。如图2a所示,A、B、C三点分别表示第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点,由点C和点B组成第一向量1,由点B和点A组成第二向量2。由第一向量1和第二向量2组成的夹角为θ1,根据θ1计算角度变化量β,此时为角度变化量β为θ1。

在图2b中,以根据4个触摸报点计算角度变化量为例进行说明,仍以n=5为例。如图2b所示,A、B、C、D四点分别表示第n-4个触摸报点、第n-3个触摸报点、第n-2个触摸报点及第n-1个触摸报点。由点D和点C组成第三向量3,由点C和点B组成第一向量1,由点B和点A组成第二向量2。由第三向量3与第一向量1组成夹角θ2,由第一向量1和第二向量2组成的夹角θ1,根据θ2和θ1计算角度变化量β。此时角度变化量β可以为θ1和θ2的平均值,还可以为θ1和θ2按照预设的权重的和,本公开实施例对此不做限制。

在一些实施例中,步骤S1023,基于角度变化量对第n个中间预测报点进行调整,得到第n个预测报点,包括:根据角度变化量计算基于曲率的预测距离调整因子;基于预测距离调整因子对第n个中间预测报点进行调整,得到第n个预测报点;其中,基于曲率的预测距离调整因子为:

distance_adjustment_factor=1/(1+k*angle1/π);其中,angle1为角度变化量,k为参数。

在一些实施例中,基于预测距离调整因子对第n个中间预测报点进行调整,得到第n个预测报点,包括:基于预测距离调整因子调整第n个中间预测报点的横坐标和纵坐标,得到第n个预测报点的横坐标和纵坐标;基于第n个预测报点的横坐标和纵坐标得到第n个预测报点,其中,第n个预测报点的横坐标为:adjusted_prediction_x=x+(prediction_x-x)*distance_adjustment_factor;第n个预测报点的纵坐标为:

adjusted_prediction_y=y+(prediction_y-y)*distance_adjustment_factor,其中,x为第n-1个触摸报点的横坐标,prediction_x为第n个中间预测报点的横坐标,y为第n-1个触摸报点的纵坐标,prediction_y为第n个中间预测报点的纵坐标,distance_adjustment_factor为预测距离调整因子。

图3为本公开实施例提供的又一种电子白板的书写方法流程图。如图3所示,该方法除不仅包括上述的步骤S101和/或S102,还可以包括以下步骤:

S105:响应于接收到每个触摸报点后,在内存中生成离屏渲染的笔迹图。

S106:在删除第n-1个触摸报点与第n个预测报点之间的预测笔迹,并生成第n-1个触摸报点与第n个触摸报点之间的真实笔迹后,当第n-1个触摸报点与第n个预测报点之间存在遗留的预测笔迹时,确定第n-1个触摸报点与第n个预测报点之间生成的预测笔迹所在的第一矩形区域及第n-1个触摸报点与第n个触摸报点之间生成的真实笔迹的第二矩形区域。

S107:根据第一矩形区域与第二矩形区域确定出第三区域,通过离屏渲染的笔迹图更新第三区域当前所显示的笔迹图。

具体地,在本公开实施例中,每接收到一个触摸报点后,就会根据该触摸报点生成实际笔迹,并在内存中生成离屏渲染的笔迹图。当显示屏幕上的预测笔迹存在残留时,就会用离屏渲染的笔迹图对应更新屏幕上的笔迹图。

以下对于步骤S102,基于预设算法根据第n-1个触摸报点计算得到第n个中间预测报点的具体步骤进行说明。

图4为本公开实施例提供了一种根据第n-1个触摸报点计算得到第n个中间预测报点方法流程图,如图4所示包括:

步骤101,确定第n-1个触摸报点的输入数据。

具体实施时,触摸报点第n-1个触摸报点相关的输入数据包括:第n-1个触摸报点一些相关输入数据,和/或,至少一个历史触摸报点(例如,第n-1个触摸报点的前N个触摸报点)的相关输入数据,其中,N为正整数。

步骤102,获取卡尔曼滤波算法,根据第n-1个触摸报点的输入数据更新卡尔曼滤波算法的参数,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

具体实施时,预先将卡尔曼滤波算法中的各项参数进行初始化处理,然后再根据第n-1个触摸报点的输入数据对这些参数进行校正更新,使得更新后的卡尔曼滤波算法更够匹配第n-1个触摸报点的笔迹生成特点。使得基于该更新后的卡尔曼滤波算法进行笔迹预测处理,得到与第n-1个触摸报点对应的笔迹预测结果更加准确。将其输出至终端的应用层,这样应用才能就可以根据输出的笔迹预测结果进行笔迹绘制,同时将笔迹绘制结果在显示屏上进行显示,以供用户查看。

通过上述方案,进行笔迹预测过程中,只需要保存卡尔曼滤波算法的各项参数即可,无需保存大量的数据,内存消耗少,由于卡尔曼滤波算法可以直接根据第n-1个触摸报点的输入数据对各项参数进行更新,因此各项参数可以根据第n-1个触摸报点的输入数据进行不断的调整,使得卡尔曼滤波算法能够适应各种场景的笔迹输入预测方案,进而有效提高笔迹输入预测方案的泛化性。

在一些实施例中,第n-1个触摸报点的输入数据包括当前真实笔迹中触摸报点的数量;卡尔曼滤波算法的参数包括:噪声协方差矩阵参数和测量系统协方差矩阵参数。

步骤102包括:

步骤1021,获取卡尔曼滤波算法。

具体实施时,该卡尔曼滤波算法可以是初始状态的卡尔曼滤波算法(即各项参数均是初始参数值),也可以是上一个触摸报点经过笔迹预测处理后的卡尔曼滤波算法。

步骤1022,将当前真实笔迹中触摸报点的数量与笔迹阈值进行比较,得到比较结果。

其中,对应的笔迹阈值的数量可以根据实际进行设定或者调整,例如可以是20、30或者其他的值。

该比较结果包括:当前真实笔迹中触摸报点的数量大于笔迹阈值,或者,当前真实笔迹中触摸报点的数量小于等于笔迹阈值。

步骤1023,根据与比较结果对应的参数更新策略,对卡尔曼滤波算法中的噪声协方差矩阵参数(processNoiseCov)和测量系统协方差矩阵参数(measurementNoiseCov)进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算第n个中间预测报点。

具体实施时,可以根据不同的比较结果(当前真实笔迹中触摸报点的数量大于笔迹阈值,或者,当前真实笔迹中触摸报点的数量小于等于笔迹阈值)确定不同的参数更新策略,使得基于相应的参数更新策略更新的卡尔曼滤波算法更够适应不同笔迹输入的状态,进而使得笔迹预测处理的准确度得到进一步的提升。

在一些实施例中,第n-1个触摸报点的输入数据还包括:第n-1个触摸报点的位置信息(例如,坐标x_(k-1),y_(k-1))和第n-1个触摸报点的时间信息(例如,时间戳t)。

步骤1023包括:

步骤A1,响应于比较结果为当前真实笔迹中触摸报点的的数量小于或等于笔迹阈值,根据第n-1个触摸报点的位置信息计算第n-1个触摸报点与第n-2个触摸报点的距离(distance)。

具体实施时,如果当前真实笔迹中触摸报点是初始的触摸报点,没有上一个触摸报点,则确定上一个触摸报点与第n-1个触摸报点相同,对应的距离distance为0。

步骤A2,利用第n-1个触摸报点与第n-2个触摸报点的距离与第n-1个触摸报点的时间信息计算速度信息。

具体实施时,将距离distance与时间信息t进行比值运算,得到速度信息。

步骤A3,将速度信息利用自适应函数进行处理,得到输出结果,将输出结果作为噪声协方差矩阵参数(processNoiseCov),完成对噪声协方差矩阵参数的更新。

具体实施时,对应的自适应函数为:

步骤A4,利用第n-1个触摸报点的位置信息作为测量系统协方差矩阵参数,完成对测量系统协方差矩阵参数的更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算第n个中间预测报点。

具体实施时,将第n-1个触摸报点的位置信息x_(k-1),y_(k-1))作为测量系统协方差矩阵参数,得到更新后的卡尔曼滤波算法,通过更新后的卡尔曼滤波算法进行运算,能够对第n-1个触摸报点进行笔迹预测,得到笔迹预测结果即第n个中间预测报点,将得到的笔迹预测结果输出。

通过上述方案,能够针对当前真实笔迹中触摸报点数量小于等于笔迹阈值的情况进行笔迹预测处理,进而保证在该情况下得到的笔迹预测结果更符合该情况的特点,笔迹预测结果的准确性得到有效提高。

在一些实施例中,第n-1个触摸报点的数据还包括:第n-1个触摸报点的位置信息和第n-1个触摸报点的时间信息;

步骤1023包括:

步骤B1,响应于比较结果为第n-1个触摸报点的数量大于笔迹阈值,根据第n-1个触摸报点的位置信息计算第n-1个触摸报点与第n-2个触摸报点的距离。

步骤B2,利用第n-1个触摸报点与第n-2个触摸报点的距离与第n-1个触摸报点的时间信息计算速度信息。

步骤B3,将速度信息利用自适应函数进行处理,得到输出结果,将输出结果作为噪声协方差矩阵参数,完成对噪声协方差矩阵参数的更新。

具体实施时,上述步骤B1至B3的过程与上述步骤A1至A3的过程同理,这里就不再赘述。

步骤B4,根据第n-1个触摸报点的位置信息计算第n-1个触摸报点与第n-2个触摸报点之间的向量与水平方向的夹角(angle)。

步骤B5,根据第n-1个触摸报点与第n-2个触摸报点之间的距离和/或夹角满足的条件确定对应的更新预测方式,基于更新预测方式对所述测量系统协方差矩阵参数进行更新,利用更新后的卡尔曼滤波算法进行笔迹预测处理,得到第n个中间预测报点。

具体实施时,由于计算得到的第n-1个触摸报点与第n-2个触摸报点之间的距离和夹角满足的条件不同,对卡尔曼滤波算法中的测量系统协方差矩阵参数的更新方式不同,进而得到的更新后的卡尔曼滤波算法不同。这样使得更新后的卡尔曼滤波算法更够依据第n-1个触摸报点与第n-2个触摸报点之间的距离和/或夹角满足的条件,进行适应性的变化更新,有效提高更新后的卡尔曼滤波算法的泛化性,并且还能提高笔迹预测结果的准确性。

在一些实施例中,步骤B5包括:基于第n-1个触摸报点的位置信息进行插值预测处理,利用插值预测处理结果对测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

具体地,如果仅当相邻报点距离大于一定阈值时才插值容易造成过渡的地方曲线不平滑,因此在本公开实施例中所有触摸报点间均进行插值预测处理。

在一些实施例中,步骤B5包括:

步骤B51,判断第n-1个触摸报点与第n-2个触摸报点的距离是否大于设定的最大距离阈值。

步骤B52,响应于确定第n-1个触摸报点与第n-2个触摸报点之间的距离大于设定的最大距离阈值,基于第n-1个触摸报点的位置信息进行插值预测处理,利用插值预测处理结果对测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

具体实施时,如果第n-1个触摸报点与第n-2个触摸报点之间的距离大于设定的最大距离阈值,证明当第n-1个触摸报点与第n-2个触摸报点距离较远,为了提高两点之间的平滑效果,采用插值预测处理的方式加入插点得到插值预测处理结果,然后再根据该插值预测处理结果对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新。这样得到的更新后的卡尔曼滤波算法,能够更加符合距离较大的输入点的特点,进而使得笔迹预测结果更加准确。在一些实施例中,在步骤B51之后,还包括:

步骤B53,响应于确定第n-1个触摸报点与第n-2个触摸报点之间的距离小于或等于最大距离阈值,判断第n-1个触摸报点与第n-2个触摸报点之间的距离是否小于最小距离阈值。

步骤B54,响应于确定第n-1个触摸报点与第n-2个触摸报点之间的距离大于或等于最小距离阈值,且,小于或等于最大距离阈值,判断夹角是否小于角度阈值。

步骤B55,响应于夹角大于或等于角度阈值,基于第n-1个触摸报点的位置信息进行插值预测处理,利用插值预测处理结果对测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

具体实施时,当第n-1个触摸报点与第n-2个触摸报点之间的距离在最小距离阈值至最大距离阈值的范围内时,如果上述计算得到的夹角也大于或等于角度阈值,证明当第n-1个触摸报点正处于曲线的拐点处。此时为了保证拐点的曲线圆滑拐弯的效果,需要进行插值预测处理加入插点得到插值预测处理结果,然后再根据该插值预测处理结果对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新。这样得到的更新后的卡尔曼滤波算法,能够更加符合处于拐弯状态的输入点的特点,进而使得笔迹预测结果更加准确。

在一些实施例中,在步骤B54之后,还包括:

步骤B54’,响应于夹角小于角度阈值,利用第n-1个触摸报点的位置信息作为测量系统协方差矩阵参数,完成对测量系统协方差矩阵参数的更新,得到更新后的卡尔曼滤波算法;并基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

具体实施时,当第n-1个触摸报点与第n-2个触摸报点之间的距离在最小距离阈值至最大距离阈值的范围内时,如果上述计算得到的夹角小于角度阈值,证明当第n-1个触摸报点的轨迹接近于直线。此时不需要进行插值预测处理,直接将第n-1个触摸报点的位置信息作为卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新。这样得到的更新后的卡尔曼滤波算法,能够更加符合处于直线书写状态的输入点的特点,进而使得笔迹预测结果更加准确。

在一些实施例中,在步骤B53之后,还包括:

步骤B53’,响应于确定第n-1个触摸报点与第n-2个触摸报点之间的距离小于最小距离阈值,获取卡尔曼滤波算法对于第n-1个中间预测报点,将第n-1个中间预测报点作为第n个中间预测报点。

具体实施时,如果第n-1个触摸报点与第n-2个触摸报点的距离小于最小距离阈值,此时笔迹移动较小,不需要进行笔迹预测处理,可以调取卡尔曼滤波算法针对第n-1个中间预测报点的预测结果作为第n个中间预测报点的笔迹预测结果。

在一些实施例中,步骤B52或步骤B55中的插值预测处理过程包括:

步骤C1,选取距离第n-1个触摸报点最近的第一预定数量的输入点。

具体实施时,该第一预定数量m的输入点中包括:第n-1个触摸报点,和该第n-1个触摸报点之前的m-1个历史触摸报点。该第一预定数量m可以是2、3、4或5等,可以根据实际需要进行设定或更改。优选为m=3,例如第n-1个触摸报点为a,a之前的两个输入点为b和c。则对应的第一预定数量的输入点包括:c、b、a。

步骤C2,在第一预定数量的输入点中的相邻两个输入点之间插入第二预定数量的插点。

具体实施时,可以在相邻两个输入点之间插入第二预定数量(例如,2、3、或4个,优选3个)插点,具体插入方式可以是等距离平均插入,也可以是按照一定距离差值插入。例如,第一预定数量的输入点和所有插点为:c、c1、c2、c3、b、b1、b2、b3、a。

步骤C3,从第一预定数量的输入点和所有插点中选择至少两个点作为目标点,根据所述目标点的位置信息对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新,得到更新后的卡尔曼滤波算法。

步骤C4,基于更新后的卡尔曼滤波算法计算所述第n个中间预测报点。

具体实施时,将第一预定数量的输入点和所有插点按照位置顺序进行排列,可以从中选取多个点作为目标点,利用该目标点对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新。这样能够使得更新后的卡尔曼滤波算法进行笔迹预测的结果更加平滑,进而基于该笔迹预测结果绘制的笔迹更加顺畅。

在一些实施例中,步骤C2包括:

通过贝塞尔曲线的插值方式在所述第一预定数量的输入点中的相邻两个输入点之间,插入第二预定数量的插点。

具体实施时,利用贝塞尔曲线的圆滑特点,进行插点插入,使得插入的插点与相邻的两个输入点能够平滑过渡。这样进一步使得更新后的卡尔曼滤波算法进行笔迹预测处理得到的笔迹预测结果的顺畅效果得到提高。

在一些实施例中,所述目标点包括:第n-1个触摸报点和任一插点。

具体实施时,可以选择第n-1个触摸报点和靠近当前输入点的第二个插点(也可以选择其他的插点,例如,靠近当前输入点的第一个插点)作为目标点,对卡尔曼滤波算法中的测量系统协方差矩阵参数进行更新。例如,c、c1、c2、c3、b、b1、b2、b3、a,9个点中选取a和b2两个点作为目标点。

图5为本公开一个实施例以具体场景描述根据第n-1个触摸报点计算得到第n个中间预测报点方法的具体过程。

如图5所示,主要实施步骤包括:

步骤201,用户书写笔迹。

步骤202,采样获取笔迹的触摸报点。

步骤203,根据当前笔迹中触摸报点的数量确定对卡尔曼滤波算法进行不同的更新预测策略,进行笔迹预测。

步骤204,输出笔迹的第n个中间预测报点到应用层。

步骤205,应用层根据第n个中间预测报点进行笔迹绘制。

针对步骤203中卡尔曼滤波算法进行笔迹预测的流程包括:

1、(1)初始化卡尔曼滤波器相关参数:过程噪声协方差矩阵参数processNoiseCov,转换矩阵参数transitionMatrix,以及测量系统协方差矩阵参数measurementNoiseCov,和估计协方差矩阵参数errorCovPost,初始值为默认参数。

(2)判断第n-1个触摸报点是笔迹的第几个点,根据点是否超出笔迹阈值N,送入不同的策略中。

2、如果当前笔迹中触摸报点的数量在N个点内,笔迹预测分为以下几个主要的步骤:

(1)输入第n-1个触摸报点的坐标x_(k-1),y_(k-1),和时间戳t。

(2)使用时间戳计算出当前笔迹的速度,使用第n-2个触摸报点和第n-1个触摸报点的距离和时间戳差值进行相除处理,计算速度。

(3)使用速度作为自适应函数的输入,自适应函数为:

其中x为输入的速度值,输出的值output作为更新卡尔曼滤波processNoiseCov的参数,processNoiseConv能够调整预测点的平滑和对折线敏感的程度。

(4)调用卡尔曼滤波算法,使用第n-1个触摸报点的坐标(x_(k-1),y_(k-1))更新参数measurementNoiseCov:

measurementNoiseCov=measurementNoiseCov(x_(k-1),y_(k-1)),得到更新后的卡尔曼滤波算法。

(5)利用更新后的卡尔曼滤波算法输出预测点坐标x_k,y_k。

(6)等待下一次输入。

3、如果第n-1个触摸报点的数量超过N个点,笔迹预测分为以下几个主要的步骤:

(1)输入第n-1个触摸报点的坐标x_(k-1),y_(k-1),和时间戳t;

(2)使用时间戳计算出当前笔迹的速度,使用第n-2个触摸报点和第n-1个触摸报点的距离和时间戳差值进行相除处理,计算速度。

(3)使用速度作为自适应函数的输入,自适应函数为:

其中x为输入的速度值,输出的值output作为更新卡尔曼滤波processNoiseCov的参数。

(4)计算第n-1个触摸报点与第n-2个触摸报点之间的距离distance以及两点形成的向量与水平方向的夹角angle。

(5)根据第n-1个触摸报点与第n-2个触摸报点之间的距离distance和夹角angle满足的条件,调用卡尔曼滤波算法对滤波器进行校正更新,之后做笔迹预测,具体为:

1)如果第n-1个触摸报点与第n-2个触摸报点之间的距离distance小于等于设定最大距离阈值,同时形成的夹角angle也满足相应角度阈值时,即认为此时处于曲线的拐点处,需要进行插值预测处理,从而实现预测的笔迹曲线的圆滑的效果。

2)如果第n-1个触摸报点与第n-2个触摸报点之间的距离distance小于等于设定最大距离阈值,且大于等于设定最小距离阈值,但此时夹角angle并没有满足角度阈值,即认为此时笔迹轨迹接近于直线时不需要插值预测,直接使用第n-1个触摸报点的坐标(x_(k-1),y_(k-1))更新参数measurementNoiseCov,并进行笔迹预测处理得到笔迹预测结果。

3)如果第n-1个触摸报点与第n-2个触摸报点之间的距离distance非常小,即距离小于最小距离阈值时,此时不做预测处理,将第n-1个中间预测报点的结果作为第n-1个中间预测报点的结果输出,从而减小延迟时间。

4)如果第n-1个触摸报点与第n-2个触摸报点之间的距离distance大于设定的最大距离阈值时,此时同样选择做插值预测处理。

上述步骤中的插值预测处理的过程包括:

通过选择距离第n-1个触摸报点最近的三个点,利用贝塞尔曲线做插值,相邻两点间插入三个点,即插值后得到九个点,为了减少延迟时间只选择当前点及插值的倒数第二个点对滤波器进行校正及预测。

例如,如当前输入点为a点,选择a点前两个点b和c点,相邻两点间插入三个点后得到9给点,即c、c1、c2、c3、b、b1、b2、b3、a。选择a和b2点对卡尔曼滤波算法的参数measurementNoiseCov进行更新校正,更新校正完成后进行笔迹预测处理。

(6)利用更新后的卡尔曼滤波算法输出预测点坐标x_k,y_k。

(7)等待下一次输入。

在一些实施例中,该方法不仅包括上述步骤S101和/或步骤S102,还包括以下步骤:

S110:基于预设算法根据第n-1个触摸报点计算得到第n个中间预测报点;

S120:响应于当前真实笔迹中触摸报点的数量大于等于M+N个,分别以第n-1个触摸报点及距离所述第n-1个触摸报点最近的M-1个触摸报点为曲线的起点,以所述曲线的起点所在的触摸报点的前N个触摸报点作为所述曲线的终点,生成M条曲线,并分别计算所述M条曲线的弓高。

S130:基于M条曲线的弓高对第n个中间预测报点进行处理,得到第n个预测报点,M≥4,且M为正整数。

在一些实施例中,步骤S130包括:根据M条曲线的弓高确定M条曲线中直线次数;当直线次数等于M时,计算第n个中间预测报点在第一方向和第二方向的延长距离,根据延长距离得到第n个预测报点,其中,延长距离为第n个中间预测报点和第n-1个触摸报点间距离的预设百分比的距离。

在一些实施例中,根据M条曲线的弓高确定M条曲线中直线次数,包括:

计算每条曲线的弓高;当所述弓高小于设定距离时,直线次数加1;当弓高大于或等于第一设定距离时,直线次数减一,其中,直线次数初始化为0。

具体地,该预设算法可以为卡尔曼滤波算法(Kalman filtering),卡尔曼滤波算法,是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。本公开实施例通过该算法可以根据当前的触摸报点提前预测下一个触摸报点。

本公开实施例中,为了增大每次预测的范围,进一步提升延迟时间,根据当前真实笔迹中的多个触摸报点判断当前真实笔迹是否为直线。当判断当前真实笔迹为直线时,则在第n个中间预测报点的基础上延长预设的预测距离。

具体地,始终根据当前触摸报点的前M+N个点组成的笔迹轨迹判断当前真实笔迹是否近似为直线。判断直线的方式有很多种,可以根据曲率,也可以根据轨迹的方向变化等等。本公开实施例采用的是弓高,即将当前触摸报点组成M条曲线,例如分别将当前触摸报点及距离当前触摸报点的最近的M-1个触摸报点分别为M条曲线的起点ps,将距离曲线起点的前N个触摸报点为曲线的终点pe,起点和终点的连线为弦长,曲线上的点到弦长最小的距离为弓高,因此分别计算M条曲线上除起点和终点外的所有触摸报点到弦长的最短距离。如果弓高hArc小于设定距离diatance_thr,则认为当前一段笔迹近似为直线,直线次数line_times加1,如果弓高大于设定距离,则认为当前一段笔迹近似为曲线,此时直线次数line_times减1。对连续M个曲线均判断是否为直线,直线次数line_times最大为笔迹的总数量M,直线次数line_times最小为0。当line_times等于M时才认为当前笔迹是直线,此时分别在当前预测报点的x和y方向上延长当前预测报点和当前触摸报点间距离的百分比。即:

在x方向延长的距离为extend_width=current_prediction.x-current_input.x。

在x方向延长的距离为extend_height=current_prediction.y-current_input.y。

调整后的第n个中间预测报点在x轴的坐标值:

output.x=current_prediction.x+percent*extend_width。

调整后的第n个中间预测报点在y轴的坐标值:

output.y=current_prediction.y+percent*extend_height。其中,

current_prediction.x为根据预测算法计算得到的n个中间预测报点在x方向的坐标,current_prediction.y为根据预测算法计算得到的n个中间预测报点在y方向的坐标,current_input.x为第n-1个触摸报点在x方向的坐标,current_input.y第n-1个触摸报点在y方向的坐标,percent为预设的百分比。

其中,触摸报点数量M+N可以设置为20,若触摸报点数太少形成的轨迹太短不足以判断是否是直线。另外,生成的曲线的条数M,与每条曲线中包含的触摸报点的数量N+1可以相同也可以不相同,相邻曲线的起点也不一定相邻。比如,当前真实笔迹中触摸报点的数量为20,生成的曲线条数M为3条,每条曲线中包括10个触摸报点,即N=9。则第一条曲线的起点可以为第20个触摸报点,终点为第10个触摸报点;第二条曲线的起点为第17个触摸报点,终点为第7个触摸报点;第三条曲线的起点为第14个触摸报点,终点为第4个触摸报点。当这三条曲线的弓高均小于第一设定距离时,则判断三条曲线均为直线,因此可判断当前真实笔迹为直线,计算第21个中间预测报点在第一方向和第二方向的延长距离,根据延长距离得到第21个预测报点。当这三条曲线的弓高存在大于或者等于第一设定距离时,则可判断当前真实笔迹为曲线,此时根据预设算法计算的第21个中间预测报点即为最终的第21个预测报点。

本公开实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行程序时实现如上述任意一项电子白板书写的方法实施例。

本公开实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行上述任意一项电子白板书写的方法实施例。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

技术分类

06120116506631