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

手写轨迹的获取方法、装置、设备及介质

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


手写轨迹的获取方法、装置、设备及介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种手写轨迹的获取方法、装置、设备及介质。

背景技术

近年来,基于计算机视觉技术辅助人们学习、工作的方法层出不穷,尤其是在书写、绘画等领域的轨迹分析,获取手写轨迹后进行分析。

手写轨迹的获取可以通过手写的数位板、电子屏幕或者带有传感器的笔等实现,成本较高,且不能用于真实的书写、绘画等场景。为了解决成本问题,相关技术中通过算法对手写时的视频处理来获取手写轨迹,但是这种方式的准确性较低。

发明内容

为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种手写轨迹的获取方法、装置、设备及介质。

根据本公开的一方面,提供了一种手写轨迹的获取方法,包括:

获取待处理视频,其中,所述待处理视频为记录手写过程的视频,所述待处理视频包括多个视频帧;

确定所述多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置;

基于轨迹优化参数对所述多个手写轨迹点的位置对应的轨迹序列进行优化处理;

基于优化处理后的轨迹序列确定至少一个手写轨迹。

根据本公开的另一方面,提供了一种手写轨迹的获取装置,包括:

获取模块,用于获取待处理视频,其中,所述待处理视频为记录手写过程的视频,所述待处理视频包括多个视频帧;

位置模块,用于确定所述多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置;

优化模块,用于基于轨迹优化参数对所述多个手写轨迹点的位置对应的轨迹序列进行优化处理;

轨迹模块,用于基于优化处理后的轨迹序列确定至少一个手写轨迹。

根据本公开的另一方面,提供了一种电子设备,包括:处理器;以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述手写轨迹的获取方法。

根据本公开的另一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述手写轨迹的获取方法。

本公开实施例中提供的上述手写轨迹的获取方法及装置,获取待处理视频,其中,待处理视频为记录手写过程的视频,待处理视频包括多个视频帧;确定多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置;基于轨迹优化参数对多个手写轨迹点的位置对应的轨迹序列进行优化处理;基于优化处理后的轨迹序列确定至少一个手写轨迹。采用上述技术方案,通过对记录手写过程的待处理视频的各视频帧识别得到多个手写轨迹点的位置,之后根据预先设置的轨迹优化参数能够对多个手写轨迹点的位置对应的轨迹序列进行优化处理,进而基于优化处理后的轨迹获取待处理视频对应的至少一个手写轨迹,由于轨迹优化参数的设置,通过对轨迹序列的优化处理能够有效提升手写轨迹的获取准确性。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本公开实施例提供的一种手写轨迹的获取方法的流程示意图;

图2为本公开实施例提供的另一种语手写轨迹的获取方法的流程示意图;

图3为本公开实施例提供的一种手写轨迹的获取装置的结构示意图;

图4为本公开实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。

本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。

近年来,基于计算机视觉技术辅助人们学习、工作的方法层出不穷,尤其是在书写、绘画等领域的轨迹分析,获取手写轨迹后进行分析。一部分应用可以基于用户所拍摄的静态图像进行分析,而在许多场景下,用户的行为是连续的、包含时序信息的,对这些信息进行分析,能更好的判别用户行为提示用户体验;比如在听写场景下判断错别字,如果算法只基于书写完成后的字符图像进行分析,确实能判断用户写的对不对,但无法判断用户书写的笔顺是否正确;再比如用户在摄像头前绘画时(摄像头拍摄绘画区域),如果能捕捉其笔尖的轨迹,就能在用户的绘画过程中实时进行分析、互动,并对用户的绘画过程做出更详细、准确的指导,相比只分析静态的绘画作品,加入轨迹信息的获取后,能获取到更丰富的用户行为信息。

诚然,上述手写轨迹的获取可以通过手写的数位板、电子屏幕或者带有传感器的笔等实现,但首先数位板会额外增加用户成本,长时间面对屏幕书写或绘画容易对视力造成影响,并且,不管是数位板还是电子屏幕,都与真实的笔触感受相差甚远,如果是绘画场景,数位板和电子屏幕上也无法使用真实的颜料进行绘画,书法场景也是类似,也即手写轨迹的获取不能用于真实的书写、绘画等场景。为了解决成本问题,相关技术中通过算法对手写时的视频处理来获取手写轨迹,但是这种方式的准确性较低。

为了改善以上至少一种问题,本公开实施例提供了一种手写轨迹的获取方法、装置、设备及介质,为便于理解,以下进行阐述说明。

图1为本公开实施例提供的一种手写轨迹的获取方法的流程示意图,该方法可以由手写轨迹的获取装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:

步骤101、获取待处理视频,其中,待处理视频为记录手写过程的视频,待处理视频包括多个视频帧。

其中,待处理视频可以为任意一个记录手写过程并且需要进行手写轨迹获取以便于后续分析的视频,手写过程可以是用户通过一个手写工具进行书写或绘画的过程,本公开实施例对手写工具不限,例如手写工具可以为用户的手指、钢笔、毛笔、中性笔等各种类型的笔等。并且,该待处理视频的类型和来源不限,例如待处理视频可以为通过视频采集设备实时拍摄得到的视频,也可以为从互联网上下载得到的视频。

视频帧可以为构成视频的最小单位,可以从待处理视频中提取得到,也即待处理视频通过提取可以得到多个视频帧。

步骤102、确定多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置。

其中,手写轨迹点可以是视频帧中用户的手写工具所在触点,该触点随着手写过程可以形成一个或多个轨迹,例如当手写工具为毛笔,手写轨迹点可以为视频中毛笔笔尖的触点。

在一些实施例中,确定多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置,可以包括:将多个视频帧输入关键点检测模型进行检测,得到多个手写轨迹点的位置。关键点检测模型可以是用于检测视频帧中手写轨迹点的位置的模型,具体可以采用深度学习模型,例如关键点检测模型可以采用CenterNet。

手写轨迹的获取装置可以将待处理视频的每个视频帧输入关键点检测模型中进行检测,当检测结果中首次出现手写轨迹点时,记录当前的视频帧为第一个有效视频帧,该有效视频帧中存在手写轨迹点,输出得到该有效视频帧对应的手写轨迹点的位置,也即手写轨迹点的坐标,一个有效视频帧对应一个手写轨迹点的位置。

步骤103、基于轨迹优化参数对多个手写轨迹点的位置对应的轨迹序列进行优化处理。

手写轨迹可以为上述待处理视频中手写过程形成的轨迹,本公开实施例中将上述手写轨迹点的位置按照先后顺序排列即可得到一个手写轨迹,也即一个手写轨迹可以通过具有先后顺序的至少一个手写轨迹点的位置来表示。轨迹序列可以包括至少一个手写轨迹点的位置,一个轨迹序列对应一个手写轨迹,多个手写轨迹点的位置对应的轨迹序列可以为一个或多个,当轨迹序列为一个,包括全部手写轨迹点的位置。轨迹序列中的手写轨迹点的位置按照各手写轨迹点对应视频帧在待处理视频的时间顺序进行排序。

其中,轨迹优化参数可以理解为预先设置的用于在手写轨迹的确定过程中对手写轨迹进行优化的参数。本公开实施例中,该轨迹优化参数可以包括第一距离阈值、第二距离阈值和/或预设像素阈值,第一距离阈值和预设像素阈值可以是用于判断是否结束上一手写轨迹的书写开始书写下一手写轨迹的两个阈值,也即第一距离阈值和预设像素阈值用于判断是否满足轨迹切分条件;第二距离阈值可以是用于判断两个手写轨迹点是否重叠的一个阈值,第一距离阈值和第二距离阈值可以针对两个手写轨迹点的位置之间的距离设置,第一距离阈值大于第二距离阈值,预设像素阈值可以是针对一个范围内的像素平均值设置,上述第一距离阈值、第二距离阈值、预设像素阈值的具体值可以根据实际情况设置,具体不限。

在一些实施例中,优化处理可以包括轨迹切分处理,基于轨迹优化参数对多个手写轨迹点的位置对应的轨迹序列进行优化处理,可以包括:基于轨迹优化参数,对每个手写轨迹点的位置进行轨迹切分检测;基于轨迹切分检测结果对轨迹序列进行轨迹切分,得到优化处理后的轨迹序列。轨迹切分检测可以用于检测当前手写工具是否抬起,也即判断是否开始书写下一手写轨迹。

可选的,轨迹优化参数包括预设像素阈值,基于轨迹优化参数,对每个手写轨迹点的位置进行轨迹切分检测,可以包括:针对任一手写轨迹点的位置,响应于确定该手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值大于预设像素阈值,确定该手写轨迹点的位置满足轨迹切分条件。轨迹切分条件可以是当前手写工具抬起开始书写下一手写轨迹的具体表示,满足轨迹切分条件则表示轨迹被切分开始下一手写轨迹,不满足轨迹切分条件表示轨迹没有被切分。

其中,预设范围可以为预先设置的一个像素区域范围,当手写工具不同,该预设范围可以不同,例如当手写工具为钢笔时,该预设范围可以为5*5的像素区域范围。具体的,当轨迹优化参数仅包括预设像素阈值,手写轨迹的获取装置在对每个手写轨迹点的位置进行轨迹切分检测时,可以先确定该手写轨迹点的上一手写轨迹点周围的预设范围内的全部像素点的像素值,之后可以确定该预设范围内全部像素点的像素平均值,并将该像素平均值与预设像素阈值进行对比,若像素平均值大于该预设像素阈值,则可以确定该上一手写轨迹点周围不存在手写轨迹,也即确定此时手写工具抬起开始写新的手写轨迹,该手写轨迹点的位置的轨迹切分检测结果为满足轨迹切分条件;若像素平均值小于或等于该预设像素阈值,则可以确定该上一手写轨迹点周围存在手写轨迹,也即该手写轨迹点的位置的轨迹切分检测结果为不满足轨迹切分条件。

上述方案中,通过手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值是否大于预设像素阈值来判断待处理轨迹点是否满足轨迹切分条件,实际上是通过一个手写轨迹点周围是否存在笔迹来判断此时手写工具的尖端已经抬起或刚落笔还未开始书写,由于周围不存在手写轨迹时说明手写工具必然已经抬起,当确定手写工具抬起则可以确定手写轨迹点的位置满足轨迹切分条件,也即手写轨迹点为一个新的手写轨迹的初始轨迹点。通过增加上述手写轨迹点的位置是否满足轨迹切分条件的判断,避免将两个或多个手写轨迹误判为一个手写轨迹的问题,进而提升手写轨迹获取的准确性。

可选的,当轨迹优化参数仅包括第一距离阈值时,基于轨迹优化参数,对每个手写轨迹点的位置进行轨迹切分检测,包括:针对任一手写轨迹点的位置,如果该手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离大于第一距离阈值,则确定该手写轨迹点的位置满足轨迹切分条件;否则,确定该手写轨迹点的位置不满足轨迹切分条件。

手写轨迹的获取装置针对任一手写轨迹点的位置,可以提取轨迹序列中排序倒数第一的手写轨迹点,排序倒数第一的手写轨迹点可以是轨迹序列中添加顺序排序在最后的一个手写轨迹点,判断该手写轨迹点与该排序倒数第一的手写轨迹点的位置之间的距离是否大于上述第一距离阈值,若是,则确定该手写轨迹点的位置的轨迹切分检测结果为满足轨迹切分条件;否则,确定该手写轨迹点的位置的轨迹切分检测结果为不满足轨迹切分条件。上述两个手写轨迹点的位置之间的距离为欧式距离。

上述方案中,通过将手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离与第一距离阈值对比判定手写轨迹点的位置是否满足轨迹切分条件,距离大于第一距离阈值时,可以认为开始写新的手写轨迹,距离小于或等于第一距离阈值时,可以认为还在进行当前手写轨迹,从一定程度上可以避免将两个或多个手写轨迹误判为一个手写轨迹的问题,进而提升手写轨迹获取的准确性。

可选的,轨迹优化参数包括第一距离阈值和预设像素阈值,基于轨迹优化参数,对每个手写轨迹点的位置进行轨迹切分检测,包括:针对任一手写轨迹点的位置,如果该手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离大于第一距离阈值,则确定该手写轨迹点的位置满足轨迹切分条件;或者,如果该手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离小于或等于第一距离阈值并且该手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值大于预设像素阈值,则确定该手写轨迹点的位置满足轨迹切分条件。

当轨迹优化参数包括第一距离阈值和预设像素阈值时,手写轨迹的获取装置针对任一手写轨迹点的位置,判断该手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离是否大于上述第一距离阈值,若是,则确定该手写轨迹点的位置的轨迹切分检测结果为满足轨迹切分条件。如果该手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离小于或等于上述第一距离阈值,判断该手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值是否大于预设像素阈值,若是,则确定该手写轨迹点的位置的轨迹切分检测结果为满足轨迹切分条件。如果该手写轨迹点与轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离小于或等于上述第一距离阈值,并且判断该手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值小于预设像素阈值,则确定该手写轨迹点的位置的轨迹切分检测结果为满足轨迹切分条件。

上述方案中,轨迹优化参数包括第一距离阈值和预设像素阈值时,通过距离对比以及轨迹点周围像素判定两种方式共同判断手写轨迹点的位置是否满足轨迹切分条件,进一步提升了是否开始新的手写轨迹的判定的准确性,进而有效提升后续手写轨迹获取的准确性。

可选的,基于轨迹切分检测结果对轨迹序列进行轨迹切分,得到优化处理后的轨迹序列,可以包括:将轨迹序列确定为待处理序列;针对待处理序列中任一手写轨迹点的位置:如果该手写轨迹点的位置满足轨迹切分条件,将该手写轨迹点的位置以及该手写轨迹点之后的各手写轨迹点的位置添加至下一轨迹序列,并将下一轨迹序列更新为新的待处理轨迹序列返回继续处理;如果该手写轨迹点的位置不满足轨迹切分条件,将该手写轨迹点的位置添加至目标轨迹序列;直到多个手写轨迹点均处理完成,得到至少一个目标轨迹序列,其中,每个待处理序列对应一个目标轨迹序列。

下一轨迹序列是相对于待处理序列新构建的一个轨迹序列。目标轨迹序列可以是最终确定的轨迹序列。手写轨迹的获取装置可以将包括全部手写轨迹点的位置的轨迹序列确定为待处理序列;之后可以按照待处理序列中手写轨迹点的排序依次进行处理,针对任一手写轨迹点的位置,如果该手写轨迹点的位置满足轨迹切分条件,则可以构建下一轨迹序列将该手写轨迹点的位置以及该手写轨迹点之后的各手写轨迹点的位置添加至下一轨迹序列,并将下一轨迹序列更新为新的待处理轨迹序列返回继续处理;如果该手写轨迹点的位置不满足轨迹切断条件,则构建目标轨迹序列并将该手写轨迹点的位置添加至目标轨迹序列。针对每个待处理序列以及每个手写轨迹点的位置均重复执行上述步骤,直到全部手写轨迹点的位置全部处理完成,得到至少一个目标轨迹序列,一个待处理序列对应可以得到一个目标轨迹序列,此时的至少一个目标轨迹序列为经过轨迹优化处理的轨迹序列。

步骤104、基于优化处理后的轨迹序列确定至少一个手写轨迹。

手写轨迹的获取装置在基于轨迹优化参数对多个手写轨迹点的位置对应的轨迹序列进行优化处理之后可以得到优化处理后的轨迹序列,优化处理后的轨迹序列包括至少一个目标轨迹序列,基于每个目标轨迹序列中包括的手写轨迹点的位置按照其对应视频帧在上述待处理视频的时间序列进行排列得到对应的一个手写轨迹,进而可以获取至少一个手写轨迹。

综上,本公开实施例提供的上述手写轨迹的获取方法,获取待处理视频,其中,待处理视频为记录手写过程的视频,待处理视频包括多个视频帧;确定多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置;基于轨迹优化参数对多个手写轨迹点的位置对应的轨迹序列进行优化处理;基于优化处理后的轨迹序列确定至少一个手写轨迹。采用上述技术方案,通过对记录手写过程的待处理视频的各视频帧识别得到多个手写轨迹点的位置,之后根据预先设置的轨迹优化参数能够对多个手写轨迹点的位置对应的轨迹序列进行优化处理,进而基于优化处理后的轨迹获取待处理视频对应的至少一个手写轨迹,由于轨迹优化参数的设置,通过对轨迹序列的优化处理能够有效提升手写轨迹的获取准确性。

示例性的,图2为本公开实施例提供的另一种手写轨迹的获取方法的流程示意图,如图2所示,在一种可行的实施方式中,当优化处理包括去重处理,轨迹优化参数包括第二距离阈值,基于轨迹优化参数对多个手写轨迹点的位置对应的轨迹序列进行优化处理,可以包括:基于第二距离阈值对轨迹序列进行去重处理,将去重后的轨迹序列作为优化处理后的轨迹序列,基于第二距离阈值对轨迹序列进行去重处理,将去重后的轨迹序列作为优化处理后的轨迹序列,可以包括如下步骤:

步骤201、如果轨迹序列中相邻手写轨迹点的位置之间的距离小于第二距离阈值,确定该相邻手写轨迹点为两个待去重轨迹点。

其中,去重处理可以是针对轨迹序列中两个或两个以上的手写轨迹点对其中位置变化幅度较小的两个手写轨迹点删除其中一个的处理,也即去除轨迹序列中重复的手写轨迹点的处理。第二距离阈值可以是用于判断两个手写轨迹点是否重叠的一个阈值,也即判断两个手写轨迹点的位置之间的距离是否较小的阈值,具体的值可以根据实际情况设置。

相邻手写轨迹点可以包括轨迹序列中前后相邻的两个手写轨迹点,轨迹序列中的手写轨迹点的位置按照各手写轨迹点对应视频帧在待处理视频的时间顺序进行排序。待去重轨迹点可以为需要进行去重处理的手写轨迹点。

手写轨迹的获取装置可以提取轨迹序列中多个相邻手写轨迹点,每个相邻手写轨迹点包括位置相邻的两个手写轨迹点,表示为第一手写轨迹点和第二手写轨迹点,针对每个相邻手写轨迹点,确定第一手写轨迹点和第二手写轨迹的位置之间的距离,该距离为欧式距离,之后可以将该距离与上述第二距离阈值进行对比,若该距离小于第二距离阈值,则确定第一手写轨迹点和第二手写轨迹点为两个待去重轨迹点,之后可以执行步骤202;如果相邻轨迹点的位置之间的距离小于第二距离阈值,则该相邻手写轨迹点的两个手写轨迹点均不属于待去重轨迹点,不进行去重处理。

步骤202、基于预设去重规则,对两个待去重轨迹点的位置进行去重。

其中,预设去重规则可以是预先设置的对待去重轨迹点进行选择和删除的具体规则,该规则可以根据实际情况设置,例如预设去重规则可以设置为删除两个待去重轨迹点中的任意一个。

在一些实施例中,基于预设去重规则,对两个待去重轨迹点的位置进行去重,可以包括:若两个待去重轨迹点中包括所在轨迹序列中排序第一或排序倒数第一的手写轨迹点,则将除排序第一或排序倒数第一的手写轨迹点之外的另一待去重轨迹点的位置删除;若两个待去重轨迹点中不包括所在轨迹序列中排序第一和排序倒数第一的手写轨迹点,确定两个待去重轨迹点中第一手写轨迹点与其前一手写轨迹点的位置之间的第一距离,以及第二手写轨迹点与其后一手写轨迹点的位置之间的第二距离;在第一距离大于或等于第二距离时,将第二手写轨迹点的位置删除;在第一距离小于第二距离时,将第一手写轨迹点的位置删除。

上述预设去重规则还可以根据不同手写轨迹点之间的距离和在所在轨迹序列中的排序确定,具体的,手写轨迹的获取装置可以先判断两个待去重轨迹点中是否包括所在轨迹序列中排序第一或排序倒数第一的手写轨迹点,若包括,则保留排序第一或排序倒数第一的手写轨迹点,将另一待去重轨迹点的位置从当前轨迹序列中删除;若不包括,则将两个待去重轨迹点中排序在前的表示为第一手写轨迹点,排序在后的表示为第二手写轨迹点,之后可以确定第一手写轨迹点与该第一手写轨迹点的前一手写轨迹点的位置之间的第一距离,以及第二手写轨迹点与该第二手写轨迹点的后一手写轨迹点的位置之间的第二距离,并将第一距离和第二距离进行对比;若第一距离大于或等于第二距离,则将第二手写轨迹点的位置从轨迹序列中删除;否则,将第一手写轨迹点的位置从轨迹序列中删除。

假设将前后相邻两个待去重轨迹点表示为q1和q2,去重过程可以包括:(1)若q1为轨迹序列中第一个手写轨迹点,也即排序第一的手写轨迹点,则保留q1,将q2的位置从轨迹序列中移除;若q1不是轨迹序列中排序第一的手写轨迹点,且q2为当前轨迹序列中最后一个手写轨迹点,也即排序倒数第一的手写轨迹点,则保留q2,将q1的位置从轨迹序列中移除;(2)若q1、q2不符合(1)中,也即q1或q2均不在轨迹序列的两端,则计算q1与q1的前一个手写轨迹点的位置之间的欧式距离记作d1,计算q2与q2的后一个手写轨迹点的位置之间的欧式距离记作d2;(3)若d2≤d1,则将q2的位置从轨迹序列中移除,若d2>d1,则将q1的位置从当前轨迹序列中移除。

手写轨迹的获取装置针对轨迹序列中全部相邻手写轨迹点均完成上述去重处理,得到去重后的轨迹序列,将该去重后的轨迹序列确定为优化后的轨迹序列,之后可以基于优化处理后的轨迹序列确定至少一个手写轨迹。

用户书写时手写工具可能在某处停留一段时间,这段时间获取的视频帧中的手写轨迹点的位置的变化幅度,但轨迹序列中存在这些噪声点会对后续分析产生影响。因此本公开实施例中,可以增加对获得的至少一个轨迹序列的去重操作,将重复的手写轨迹点删除,实现了对至少一个轨迹序列的去噪和标准化处理,进一步提升了手写轨迹的获取准确性,并在后续应用时获得更加准确的分析结果。

在一些实施例中,手写轨迹的获取方法还可以包括:基于待处理视频的视频采集帧率和书写速度,确定轨迹优化参数中的第一距离阈值和第二距离阈值,其中,基于待处理视频的视频采集帧率和书写速度,确定轨迹优化参数中的第一距离阈值和第二距离阈值,包括:将书写速度的最大值与视频采集帧率的商确定为第一距离阈值;将书写速度的最小值与视频采集帧率的商确定为第二距离阈值。

其中,视频采集帧率可以是待处理视频对应的单位时间内采集的视频帧的数量。书写速度可以包括通过对上述待处理视频统计分析得到手写过程的最大书写速度和最小书写速度,单位可以为每秒移动的像素数量。本公开实施例中,手写轨迹的获取装置获取上述待处理视频的视频采集帧率和书写速度,则第一距离阈值可以设置为书写速度的最大值与视频采集帧率的商,第二距离阈值可以设置为书写速度的最小值与视频采集帧率的商,假设视频采集帧率表示为Z,书写速度的最大值表示为c1,书写速度的最小值表示为c2,则第一距离阈值表示为M,M=c1/z,第二距离阈值表示为N,N=c2/z。可以理解的是,上述根据视频采集帧率和书写速度确定第一距离阈值和第二距离阈值的方式仅为示例,而非限定。

上述方案中,基于待处理视频的视频采集帧率和用户的书写速度来确定轨迹优化参数中的第一距离阈值和第二距离阈值,使得这两个轨迹优化参数的设置更加准确,与视频采集帧率和书写速度强相关,进而提升了后续手写轨迹获取的准确性。

对应于前述手写轨迹的获取方法,本公开实施例还提供了一种手写轨迹的获取装置,

图3为本公开实施例提供的一种手写轨迹的获取装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图3所示,手写轨迹的获取装置300包括:

获取模块301,用于获取待处理视频,其中,所述待处理视频为记录手写过程的视频,所述待处理视频包括多个视频帧;

位置模块302,用于确定所述多个视频帧中手写轨迹点的位置,得到多个手写轨迹点的位置;

优化模块303,用于基于轨迹优化参数对所述多个手写轨迹点的位置对应的轨迹序列进行优化处理;

轨迹模块304,用于基于优化处理后的轨迹序列确定至少一个手写轨迹。

在上述装置中,通过对记录手写过程的待处理视频的各视频帧识别得到多个手写轨迹点的位置,之后根据预先设置的轨迹优化参数能够对多个手写轨迹点的位置对应的轨迹序列进行优化处理,进而基于优化处理后的轨迹获取待处理视频对应的至少一个手写轨迹,由于轨迹优化参数的设置,通过对轨迹序列的优化处理能够有效提升手写轨迹的获取准确性。

在一些实施方式中,所述轨迹序列中的手写轨迹点的位置按照各手写轨迹点对应视频帧在所述待处理视频的时间顺序进行排序,所述优化处理包括轨迹切分处理,优化模块303包括:

检测单元,用于基于所述轨迹优化参数,对每个手写轨迹点的位置进行轨迹切分检测;

切分单元,用于基于轨迹切分检测结果对所述轨迹序列进行轨迹切分,得到优化处理后的轨迹序列。

在一些实施方式中,所述轨迹优化参数包括预设像素阈值,检测单元用于:

针对任一手写轨迹点的位置,响应于确定该手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值大于所述预设像素阈值,确定该手写轨迹点的位置满足轨迹切分条件。

在一些实施方式中,所述轨迹优化参数包括第一距离阈值和预设像素阈值,检测单元用于:

针对任一手写轨迹点的位置,如果该手写轨迹点与所述轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离大于所述第一距离阈值,则确定该手写轨迹点的位置满足轨迹切分条件;

或者,如果该手写轨迹点与所述轨迹序列中排序倒数第一的手写轨迹点的位置之间的距离小于或等于所述第一距离阈值并且该手写轨迹点的上一手写轨迹点周围预设范围内的像素平均值大于所述预设像素阈值,则确定该手写轨迹点的位置满足轨迹切分条件。

在一些实施方式中,切分单元用于:

将所述轨迹序列确定为待处理序列;

针对所述待处理序列中任一手写轨迹点的位置:

如果该手写轨迹点的位置满足轨迹切分条件,将该手写轨迹点的位置以及该手写轨迹点之后的各手写轨迹点的位置添加至下一轨迹序列,并将所述下一轨迹序列更新为新的待处理轨迹序列返回继续处理;

如果该手写轨迹点的位置不满足轨迹切分条件,将该手写轨迹点的位置添加至目标轨迹序列;

直到所述多个手写轨迹点均处理完成,得到至少一个目标轨迹序列,其中,每个待处理序列对应一个目标轨迹序列。

在一些实施方式中,所述优化处理包括去重处理,优化模块303用于:

基于所述第二距离阈值对所述轨迹序列进行去重处理,将去重后的轨迹序列作为优化处理后的轨迹序列,

其中,所述基于所述第二距离阈值对所述轨迹序列进行去重处理,将去重后的轨迹序列作为优化处理后的轨迹序列,包括:

如果所述轨迹序列中相邻手写轨迹点的位置之间的距离小于第二距离阈值,确定该相邻手写轨迹点为两个待去重轨迹点;

基于预设去重规则,对所述两个待去重轨迹点的位置进行去重。

在一些实施方式中,优化模块303用于:

若所述两个待去重轨迹点中包括所在轨迹序列中排序第一或排序倒数第一的手写轨迹点,则将除所述排序第一或排序倒数第一的手写轨迹点之外的另一待去重轨迹点的位置删除;

若所述两个待去重轨迹点中不包括所在轨迹序列中排序第一和排序倒数第一的手写轨迹点,确定所述两个待去重轨迹点中第一手写轨迹点与其前一手写轨迹点的位置之间的第一距离,以及第二手写轨迹点与其后一手写轨迹点的位置之间的第二距离;

在所述第一距离大于或等于所述第二距离时,将所述第二手写轨迹点的位置删除;

在所述第一距离小于所述第二距离时,将所述第一手写轨迹点的位置删除。

在一些实施方式中,所述装置还包括阈值模块,用于:

基于所述待处理视频的视频采集帧率和书写速度,确定所述轨迹优化参数中的第一距离阈值和第二距离阈值,

其中,基于所述待处理视频的视频采集帧率和书写速度,确定所述轨迹优化参数中的第一距离阈值和第二距离阈值,包括:

将所述书写速度的最大值与所述视频采集帧率的商确定为所述第一距离阈值;

将所述书写速度的最小值与所述视频采集帧率的商确定为所述第二距离阈值。

本公开实施例所提供的手写轨迹的获取装置可执行本公开任意实施例所提供的手写轨迹的获取方法,具备执行方法相应的功能模块和有益效果。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置实施例的具体工作过程,可以参考方法实施例中的对应过程,在此不再赘述。

本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。

本公开示例性实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。所述存储器存储有能够被所述至少一个处理器执行的计算机程序,所述计算机程序在被所述至少一个处理器执行时用于使所述电子设备执行根据本公开实施例的方法。

本公开示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。

本公开示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本公开实施例的方法。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的XYZ方法。所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。

图4为本公开实施例提供的一种电子设备的结构示意图。参考图4,现将描述可以作为本公开的服务器或客户端的电子设备400的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

如图4所示,电子设备400包括计算单元401,其可以根据存储在只读存储器(ROM)402中的计算机程序或者从存储单元408加载到随机访问存储器(RAM)403中的计算机程序,来执行各种适当的动作和处理。在RAM 403中,还可存储电子设备400操作所需的各种程序和数据。计算单元401、ROM 402以及RAM 403通过总线404彼此相连。输入/输出(I/O)接口405也连接至总线404。

电子设备400中的多个部件连接至I/O接口405,包括:输入单元406、输出单元407、存储单元408以及通信单元409。输入单元406可以是能向电子设备400输入信息的任何类型的设备,输入单元406可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元407可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元408可以包括但不限于磁盘、光盘。通信单元409允许电子设备400通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。

计算单元401可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元401的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元401执行上文所描述的各个方法和处理。例如,在一些实施例中,手写轨迹的获取方法均可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元408。在一些实施例中,计算机程序的部分或者全部可以经由ROM 402和/或通信单元409而被载入和/或安装到电子设备400上。在一些实施例中,计算单元401可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行手写轨迹的获取方法。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

如本公开使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 获取用户轨迹的方法、装置、系统和存储介质
  • IoT设备的权限获取方法、装置、存储介质及电子装置
  • 用于识别空中手写的方法、装置、设备以及计算机可读存储介质
  • 消息配置方法、消息获取方法、装置、设备及存储介质
  • 处理模版获取方法、表格处理方法、装置、设备及介质
  • 轨迹获取方法、轨迹获取装置、存储介质和电子设备
  • 基于图像帧的手写轨迹提取方法、装置、存储介质及设备
技术分类

06120116509956