CN111899318B - 数据的处理方法、装置及计算机可读存储介质 - Google Patents
数据的处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111899318B CN111899318B CN202010811365.8A CN202010811365A CN111899318B CN 111899318 B CN111899318 B CN 111899318B CN 202010811365 A CN202010811365 A CN 202010811365A CN 111899318 B CN111899318 B CN 111899318B
- Authority
- CN
- China
- Prior art keywords
- data
- data point
- change
- rate
- point
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 47
- 230000008859 change Effects 0.000 claims abstract description 242
- 238000001914 filtration Methods 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 28
- 238000012545 processing Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 15
- 238000005314 correlation function Methods 0.000 claims description 3
- 230000002123 temporal effect Effects 0.000 claims description 2
- 230000003044 adaptive effect Effects 0.000 abstract description 14
- 230000009471 action Effects 0.000 abstract description 3
- 230000000875 corresponding effect Effects 0.000 description 50
- 210000000988 bone and bone Anatomy 0.000 description 22
- 238000010586 diagram Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 10
- 238000009499 grossing Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 6
- 238000012935 Averaging Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000000629 knee joint Anatomy 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/70—Denoising; Smoothing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
公开了一种数据的处理方法、装置及计算机可读存储介质。该数据处理方法包括:对于骨骼动画中的多个关节点中的每个关节点,获取所述关节点的关节运动数据,其中所述关节运动数据指示所述关节点随时间变化的运动序列;对于所述关节点的关节运动数据中的每个数据点,确定所述数据点的运动数据值的瞬时变化率,并确定与所述数据点对应的滤波器参数;以及对于所述关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对所述数据点进行自适应地滤波。本公开实施例,通过基于关节运动数据中的每个数据点的运动数据值的瞬时变化率,确定与每个数据点相对应的不同滤波器参数,实现关节运动数据的自适应滤波,既能平滑噪声,又能保留动作的细节。
Description
技术领域
本发明涉及计算机图形处理领域,具体而言,涉及一种数据的处理方法、装置及计算机可读存储介质。
背景技术
骨骼蒙皮动画,又也叫骨骼动画,使用骨骼动画技术,可以塑造出各种各样、栩栩如生的动画角色。根据骨骼关节的平移或旋转数据实时更新关节的位置,这样整个人物就可以动起来。但是关节点的运动通常存在抖动,动画师需要对这些运动曲线进行降噪处理,让整个角色的动作更加平滑。
现有技术通常采用普通的巴特沃斯低通滤波器对运动曲线进行降噪处理,对于普通的巴特沃斯低通滤波器而言,一条信号中用一个唯一的截止频率可能无法在去噪和保留动作精度方面做到很好的平衡。一维欧拉(One-Euler)、卡尔曼(Kalman)等滤波器虽然在跟踪信号的变化趋势方面比较强,但过滤的结果和原来的信号会存在一定的帧时延。萨维茨基-戈莱(Savitzky–Golay)滤波器比较适用于微小的抖动,而且算法的参数也需要不断地调整才能得到一个比较好的结果。小波分析虽然能够分辨出不同时刻信号包含的频率,但是不同的基函数得到的效果可能会差异较大,需要不断尝试。而且小波分析在过滤频域信号后转回时域信号时可能会存在锯齿这种不连续的现象,不连续的信号大概率地伴随着抖动。
因此,需要一种改进的巴特沃斯低通滤波器来对骨骼动画数据进行自适应滤波,既能在平滑噪声的同时又能保留足够的动作细节。
发明内容
考虑到以上问题而做出了本发明。本发明的一个目的是提供一种数据的处理方法、装置及计算机可读存储介质。
本公开的实施例提供了一种数据处理方法,包括:对于骨骼动画中的多个关节点中的每个关节点,获取所述关节点的关节运动数据,其中所述关节运动数据指示所述关节点随时间变化的运动序列;对于所述关节点的关节运动数据中的每个数据点,确定所述数据点的运动数据值的瞬时变化率,并确定与所述数据点对应的滤波器参数;以及对于所述关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对所述数据点进行自适应地滤波。
根据本公开的实施例,其中,对于每个数据点确定所述数据点的运动数据值的瞬时变化率包括:确定所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率,作为前侧数据变化率;确定所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率,作为后侧数据变化率;以及基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率。
根据本公开的实施例,其中,确定所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率包括:确定所述数据点之前的前侧数据点区间,并在所述前侧数据点区间中选择至少一个数据点作为所述至少一个前侧数据点,所述前侧数据点区间包括所述数据点之前的第一预定数量的连续数据点并且不包括所述数据点;确定所述数据点与所述至少一个前侧数据点中每个数据点之间的变化率作为前侧变化率,以得到至少一个前侧变化率;以及确定所述至少一个前侧变化率的平均值,以得到所述平均变化率。其中,确定所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率包括:确定所述数据点之后的后侧数据点区间,并在所述后侧数据点区间中选择至少一个数据点作为所述至少一个后侧数据点,所述后侧数据点区间包括所述数据点之后的第二预定数量的连续数据点并且不包括所述数据点;确定所述数据点与所述至少一个后侧数据点中每个数据点之间的变化率作为后侧变化率,以得到至少一个后侧变化率;以及确定所述至少一个后侧变化率的平均值,以得到所述平均变化率;其中,所述第一预定数量和所述第二预定数量相同或不相同。
根据本公开的实施例,基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率包括:将所述至少一个前侧变化率的平均值除以所述至少一个前侧变化率的平均值与所述至少一个后侧变化率的平均值的和,得到第一比值,以作为所述至少一个前侧变化率的权重;以所述至少一个后侧变化率的平均值除以所述至少一个前侧变化率的平均值与所述至少一个后侧变化率的平均值的和,得到第二比值,以作为所述至少一个后侧变化率的权重;基于所述至少一个前侧变化率和所述至少一个后侧变化率的权重,对所述至少一个前侧变化率和所述至少一个后侧变化率进行加权平均以获得所述数据点的运动数据值的瞬时变化率。
根据本公开的实施例,其中,基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率包括:基于所述前侧数据变化率和所述后侧数据变化率,计算所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的变化率的权重,以及计算所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的变化率的权重,并对所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的变化率和所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的变化率进行加权平均以获得所述数据点的运动数据值的瞬时变化率。
根据本公开的实施例,其中,所述滤波器参数为滤波器截止频率;其中,所述确定与所述数据点对应的滤波器参数包括:作为所述数据点的运动数据值的瞬时变化率的函数,确定与所述数据点对应的滤波器截止频率。
根据本公开的实施例,所述数据处理方法,还包括:对与所述数据点对应的滤波器截止频率进行邻域嵌位,其中所述邻域嵌位包括:获取与所述数据点相邻的多个数据点中每个数据点的滤波器截止频率,以得到多个滤波器截止频率;以及确定所述多个滤波器截止频率中的最大值,并将所述最大值作为与所述数据点对应的滤波器截止频率。
根据本公开的实施例,其中,对于所述关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对所述数据点进行自适应地滤波包括:对于每个数据点,将所述数据点作为滤波中心数据点,以所述滤波中心数据点为中心,将连续的第三预定数量的数据点作为第三预定数量的滤波窗口数据点,并利用与所述滤波中心数据点对应的滤波器参数对所述滤波窗口数据点进行滤波,以对于每个滤波窗口数据点得到与所述滤波中心数据点相对应的初始滤波数据值;以及对于每个数据点,将所述数据点作为待平滑数据点,获取所述待平滑数据点的第三预定数量的初始滤波数据值,并基于所述第三预定数量的初始滤波数据值确定所述待平滑数据点的滤波数据值,其中,所述第三预定数量的初始滤波数据值是通过对所述数据点进行第三预定数量次数的滤波得到的,所述第三预定数量次数的滤波分别对应于以所述数据点的每个滤波窗口数据点为中心的滤波。
根据本公开的实施例,其中,基于所述第三预定数量的初始滤波数据值确定所述待平滑数据点的滤波数据值包括:对于所述待平滑数据点,确定所述第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重;以及对所述第三预定数量的初始滤波数据值进行加权平均,以确定所述待平滑数据点的滤波数据值。
根据本公开的实施例,其中,所述第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重是基于所述待平滑数据点的运动数据值变化率与所述初始滤波数据值所对应的滤波中心数据点的运动数据值变化率之间的差异而确定的。
根据本公开的实施例,其中,对于所述待平滑数据点,确定所述第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重包括:作为所述初始滤波数据值所对应的滤波中心数据点的运动数据值变化率与所述待平滑数据点的运动数据值的比值的指数函数,确定所述初始滤波数据值的权重。
根据本公开的实施例,其中,对于每个数据点,将所述数据点作为滤波中心数据点,以所述滤波中心数据点为中心,将连续的第三预定数量的数据点作为第三预定数量的滤波窗口数据点还包括:在所述关节运动数据的第一个数据点左侧和最后一个数据点右侧填充多个数据点,以使得能够取得以所述第一个数据点和所述最后一个数据点为中心的第三预定数量的滤波窗口数据点。
根据本公开的实施例,其中,所述关节运动数据包括关节移位数据和/或关节旋转数据。
根据本公开的实施例,其中,所述滤波器参数是巴特沃斯低通滤波器的截止频率。
本公开的实施例还提供了一种数据处理装置,包括存储器和处理器,其中所述存储器上存储有处理器可读的程序代码,当处理器执行所述程序代码时,执行如上所述的数据处理方法。
本公开的实施例还提供了一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行如上所述的数据处理方法。
本公开的实施例通过基于关节运动数据中的每个数据点的运动数据值的瞬时变化率,确定与每个数据点相对应的不同滤波器参数,实现关节运动数据的自适应滤波,既能平滑噪声,又能保留动作的细节。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对本公开实施例的附图作简单地介绍。明显地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A示出了骨骼动画技术中的人体骨骼拓扑的示意图;
图1B示出了图1A中标号为26的关节点的旋转的四条运动曲线;
图2A和图2B示意性地示出了与图1A的骨骼拓扑的膝关节的运动相对应的两条运动曲线;
图3示出了用普通巴特沃斯低通滤波器滤波对图2A中的运动曲线进行滤波前后的对比图;
图4示出了根据本公开实施例的数据处理方法的示意性流程图;
图5是示出滤波器截止频率与其相对应的数据点的运动数据值的瞬时变化率之间的关系的示意图;
图6示出了将滤波器截止频率进行邻域嵌位的示意图;
图7示出了确定一个数据点的运动数据值的瞬时变化率的方法的示意性流程图;
图8示出了对于关节运动数据中的每个数据点,利用所确定的滤波器参数对该数据点进行自适应地滤波的一个示例性方法的流程图;
图9是示出对于关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对该数据点进行自适应地滤波的一个示例性方法的示意图;
图10是示出了基于第三预定数量的初始滤波数据值确定待平滑数据点的滤波数据值的一种示例性方法的流程图;
图11示出了根据本公开实施例的数据处理方法的整体示意图;
图12A和图12B示出了利用根据本公开实施例的数据处理方法对运动曲线进行滤波以后的效果图;
图13示出了根据本公开实施例的数据处理方法的滤波效果与普通巴特沃斯低通滤波器的滤波效果对比图;
图14示出了根据本公开实施例的数据处理装置的示意性框图;
图15示出了根据本公开另一实施例的数据处理装置的示意图;
图16示意性地示出了实现本公开实施例的方法或装置的电子设备的示意性架构;
图17示出了根据本公开的实施例的存储介质的示意图;
图18示出了根据本公开实施例的数据处理方法所设计的适应性滤波插件的界面示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、完整地描述,显而易见地,所描述的实施例仅仅是本申请的部分实施例,而不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,也属于本申请保护的范围。
本说明书中使用的术语是考虑到关于本公开的功能而在本领域中当前广泛使用的那些通用术语,但是这些术语可以根据本领域普通技术人员的意图、先例或本领域新技术而变化。此外,特定术语可以由申请人选择,并且在这种情况下,其详细含义将在本公开的详细描述中描述。因此,说明书中使用的术语不应理解为简单的名称,而是基于术语的含义和本公开的总体描述。
虽然本申请对根据本申请的实施例的***中的某些模块做出了各种引用,然而,任何数量的不同模块可以被使用并运行在用户终端和/或服务器上。所述模块仅是说明性的,并且所述***和方法的不同方面可以使用不同模块。
本申请中使用了流程图来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,根据需要,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本公开实施例中提出了对数据处理的方法,其属于计算机视觉技术(ComputerVision,CV)的相关技术领域。计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能***。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、OCR、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3D技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
如本领域技术人员已知的,骨骼动画由两部分来表示,一部分是形成层次的一系列的骨骼,通常称为骨骼拓扑,另一部分是蒙在骨骼上的皮肤。骨骼拓扑由根骨骼以及相互连接的子骨骼组成。图1A示出了骨骼动画技术中的人体骨骼拓扑的示意图。如图1A所示,标号1-27是人体骨骼拓扑的各个关节点,标号为1的关节点是父节点,作为父节点的骨骼在运动时会影响其所有的子节点的骨骼,通过每根骨骼上不同的变换组合,可以得到骨骼拓扑的各种造型。
骨骼动画中定义了关键帧来表示某个时间点骨骼中每根骨头特定的变换,关键帧数据包含骨骼关节点的旋转和平移的变换信息。播放动画时根据骨骼关节的平移或旋转数据实时更新关节的位置,这样整个人物就可以动起来。在骨骼动画中,一个骨骼关节点的旋转或位移运动数据可以用多个参数来表示,例如,一个骨骼的旋转可以用一个四元数(w,x,y,z)表示,其中,w表示旋转的角度,x,y,z表示旋转轴。因此,一个骨骼关节点随时间旋转的运动可以用四个随时间变化的运动数据序列来表征。在Maya和3DMax等商业动画软件中制作或播放人体骨骼动画时,可以用运动曲线来表示每个关节点的运动数据序列,以便直观地观察到骨骼运动某个关节点的运动情况。如图1B所示,示出了标号为26的关节点的旋转的四条运动曲线,其中横坐标为时间轴,纵坐标表示各条曲线的波动。
图2A和图2B示意性地示出了与图1A的骨骼拓扑的膝关节点8的运动相对应的两条运动曲线。骨骼在运动时,速度或者方向的变换经常发生,并不是一个平稳的过程。从图2A和图2B中可以看出,这两条运动曲线左边的区域并不平滑,表示噪声比较多、关节点的运动存在抖动,右边的区域整体比较平滑,是一段正常的运动。
现有技术通常采用普通的巴特沃斯低通滤波器对运动曲线进行降噪处理,通过设置巴特沃斯低通滤波器的截止频率,可以过滤掉截止频率以上的信号分量,只保留截止频率以下的信号分量。但是只用具有一个截止频率的普通的巴特沃斯低通滤波器来对运动曲线进行滤波难以兼顾去除左边噪声和保留右边运动的细节的目标。截止频率设置得高时,能够保留右边的运动细节,但是左边的噪声会遗留地较多;截止频率设置得低时,能够较多地去除左边的噪声,但是也会过多地平滑了右边的数据段,导致原来的动作变形或者丢失动作细节。
如图3所示,示出了用只有一个截止频率的普通巴特沃斯(Butterworth)低通滤波器滤波对图2A中的运动曲线进行滤波前后的对比图。在图3中,虚线表示原始运动曲线,实线表示用普通巴特沃斯低通滤波器滤波后的运动曲线,可以看到曲线左边被平滑了一些,但是曲线右边的峰值被削弱了很多,这非常容易导致细节的丢失。
因此,需要一种改进的巴特沃斯低通滤波器来对骨骼动画数据进行自适应滤波,既能在平滑噪声的同时又能保留足够的动作细节。
本公开的实施例提供了一种数据处理方法。图4示出了根据本公开实施例的数据处理方法的示意性流程图,该数据处理方法包括步骤S401至S403。
在步骤S401中,对于骨骼动画中的多个关节点中的每个关节点,获取该关节点的关节运动数据,其中所述关节运动数据指示所述关节点随时间变化的运动序列。
根据本公开的实施例,关节运动数据是指示关节点随时间变化的运动数据序列。例如,关节运动数据可以包括关节移位和/或关节旋转这两个维度上的运动数据。例如,一个骨骼的旋转可以用一个四元数(w,x,y,z)表示,其中,w表示旋转的角度,x,y,z表示旋转轴,因此可以用四个运动数据序列来表征一个骨骼关节随时间变化的旋转运动。例如,在Maya和3DMax等商业动画软件中制作或播放人体骨骼动画时,可以用运动曲线来直观地表示每个关节点随时间的运动。
在步骤S402中,对于关节点的关节运动数据中的每个数据点,确定该数据点的运动数据值的瞬时变化率,并确定与该数据点对应的滤波器参数。
根据本公开的实施例,关节的运动数据序列中一个数据点的运动数据值的瞬时变化率可以指示该关节在相应的维度上(旋转或移位)的瞬时速度。瞬时变化率越大,表示此时该关节在相应的维度上的运动速度越快。例如,一个数据点的运动数据值的瞬时变化率可以是运动曲线在该数据点处的斜率。斜率越大,该关节点在相应的维度上运动的速度越快。关节点的运动数据值的瞬时变化率的示例性计算方式将在下文结合图6至图9进行详细说明。
根据本公开的实施例,与数据点相对应的滤波器参数可以是低通滤波器的截止频率,对于低通滤波器,当信号的频率低于低通滤波器的截止频率时,信号得以通过,当信号频率高于这个截止频率时,信号输出将被大幅衰减。根据本公开的实施例,不同帧率的骨骼动画对应于不同的低通滤波器截止频率范围,以巴特沃斯滤波器为例,当帧率为fps=1.0时,截止频率值的区间在[0.0,0.5]范围内。
如图3所示,只用具有一个截止频率的巴特沃斯低通滤波器对关节运动数据进行滤波,很容易导致运动细节的丢失。因此,根据本公开的实施例,针对每个数据点确定相应的滤波器参数(如这里所述的滤波器截止频率)来对关节运动数据进行滤波。
根据本公开的实施例,每个数据点所对应的滤波器截止频率的大小取决于该数据点的运动数据值的瞬时变化率。对于运动数据值的瞬时变化率较大的数据点,通常需要较大的滤波器截止频率来进行滤波,以尽量保留更多的动作细节。例如,滤波器截止频率与数据点的运动数据值的瞬时变化率正相关。图5是示出滤波器截止频率与其相对应的数据点的运动数据值的瞬时变化率之间的关系的示意图。
如图5所示,滤波器截止频率是与其相对应的数据点的运动数据值的瞬时变化率的正相关函数。当数据点的运动数据值的瞬时变化率较小时,所对应的关节运动速度比较慢,此时运动细节较少,需要的滤波器截止频率较小,随着瞬时变化率变大,关节运动速度较快,此时为了保留较多的运动细节,需要较大的滤波器截止频率。而随着关节运动速度继续增加,需要在除噪和保留细节之间进行折衷,如图5中第一段直线1和第二段直线2所示,第二段直线2的斜率小于第一段直线1,表明截止频率随数据点的运动数据值的瞬时变化率的增加而增加的速度变慢。而当瞬时变化率超过一定阈值时,滤波器截止频率所对应的滤波器截止频率将不再继续增加,如图5中,当数据点的运动数据值的瞬时变化率的值>12时,滤波器截止频率的值维持在0.5。应当理解,图5所示的滤波器截止频率与其相对应的数据点的运动数据值的瞬时变化率之间的关系仅是示意性的,本领域技术人员可以根据具体实际操作设置滤波器截止频率与其相对应的数据点的运动数据值的瞬时变化率之间的关系。
可选地,在一些示例中,在确定与每个数据点相对应的滤波器截止频率之后,可以对所确定的滤波器截止频率进行邻域嵌位。图6示出了将滤波器截止频率进行邻域嵌位的示意图,例如,对截止频率进行邻域嵌位是将与多个连续数据点相对应的多个滤波器截止频率的大小统一为该多个滤波器截止频率中的最大值。如图6所示,虚线表示原始的滤波器截止频率,实线表示将多个截止频率统一为了最大值后的滤波器截止频率。如图6所示,对于存在抖动的运动曲线,基于抖动曲线中的每个数据点的运动数据值的变化率确定的滤波器截止频率的值也存在噪声,对截止频率进行邻域嵌位可以对存在抖动的相邻数据点所对应的滤波器截止频率进行平滑。将连续多个数据点所对应的滤波器截止频率统一为最大值,这样可以避免部分数据点所对应的截止频率值过小而滤除了太多的信号细节,是对噪声滤除和信号保留的一种折衷。
在步骤S403中,对于该关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对该数据点进行自适应地滤波。本公开的实施例以巴特沃斯低通滤波器为例来进行说明,应当理解,本发明中的滤波器也可以是可以实现对骨骼动作数据进行低通滤波的其他滤波器。
根据本公开实施例的数据处理方法中,通过基于关节运动数据中的每个数据点的运动数据值的瞬时变化率,确定与每个数据点相对应的滤波器参数,实现关节运动数据的自适应滤波,既能平滑噪声,又能保留动作的细节。而且,通过对滤波器参数进行邻域嵌位,实现对相邻数据点所对应的滤波器截止频率值的平滑,避免部分数据点所对应的截止频率值过小而滤除了太多的信号细节。
以下,将参考图7描述图4中的步骤S402的操作。图7示出了确定一个数据点的运动数据值的瞬时变化率的方法的示意性流程图。
如图7所示,在步骤S701中,确定该数据点的运动数据值与该数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率,作为前侧数据变化率。
数据点的运动数据值与该数据点之前的一个前侧数据点的运动数据值之间的变化率是这两个运动数据点的运动数据值之间的差值除以这两个运动数据点之间的时间。
作为一个示例,所述至少一个前侧数据点可以是一个前侧数据点,可以确定该数据点与一个前侧数据点之间的变化率作为所述平均变化率。
作为另一示例,所述至少一个前侧数据点可以是多个前侧数据点,可以确定该数据点与多个前侧数据点之间的多个变化率,并对该多个变化率进行平均,以得到所述平均变化率。具体地,可以确定该数据点之前的前侧数据点区间,前侧数据点区间包括该数据点之前的多个连续数据点;然后,在所述前侧数据点区间中选择至少一个数据点作为所述至少一个前侧数据点,例如选择第一预定数量的数据点。接下来,计算所述数据点与所述至少一个前侧数据点中每个数据点之间的变化率作为前侧变化率,以得到至少一个前侧变化率。然后,确定所述至少一个前侧变化率的平均值,以得到所述平均变化率。
例如,在一个示例中,用f={x1,x2,x3,…,xn}表示一个关节运动数据序列,xi,i∈[1,n]表示关节运动数据序列中的第i个数据点,在xi前侧确定半闭区间[i-s,i),该半闭区间[i-s,i)包括s-1个数据点,在xi前侧的半闭区间[i-s,i)中随机取第一预定数量M个的前侧运动数据点,用集合L表示。计算{(xk,xi),xk∈L}两个数据点之间的变化率,用VL表示xi的运动数据值与M个(即,第一预定数量的)前侧运动数据点的运动数据值之间的变化率的集合,{v1i,v2i,v3i,…,vMi},并对集合VL中的变化率{v1i,v2i,v3i,…,vMi}求平均,以得到平均变化率averL,作为前侧数据变化率,即:
在步骤S702中,确定该数据点的运动数据值与该数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率,作为后侧数据变化率。
数据点的运动数据值与该数据点之后的一个后侧数据点的运动数据值之间的变化率是这两个运动数据点的运动数据值之间的差值除以这两个运动数据点之间的时间。
作为一个示例,所述至少一个后侧数据点可以是一个后侧数据点,可以确定该数据点与一个后侧数据点之间的变化率作为所述平均变化率。
作为另一示例,所述至少一个前侧数据点可以是多个后侧数据点,可以确定该数据点与多个后侧数据点之间的多个变化率,并对该多个变化率进行平均,以得到所述平均变化率。具体地,可以确定该数据点之后的后侧运动数据点区间,该后侧数据点区间包括该数据点之后的多个后侧运动数据点,第二预定数量N和步骤S701中的第一预定数量M可以相同也可以不同。然后,在所述后侧数据点区间中选择至少一个数据点作为所述至少一个后侧数据点,例如选择第二预定数量的数据点。接下来,计算所述数据点与所述至少一个后侧数据点中每个数据点之间的变化率作为后侧变化率,以得到至少一个后侧变化率。然后,确定所述至少一个后侧变化率的平均值,以得到所述平均变化率。
例如,继续步骤S701中的示例,在xi后侧确定半闭区间(i,i+s],该半闭区间(i,i+s]包括s-1个数据点,在xi后侧的半闭区间(i,i+s]中随机取第二预定数量N个的后侧运动数据点,用集合R表示,计算{(xi,xk),xk∈R}两个数据点之间的变化率,用VR表示xi的运动数据值与N个(即,第二预定数量的)后侧运动数据点的运动数据值之间的变化率的集合,VR={vi1,vi2,vi3,…,viN},并对集合VR中的变化率{vi1,vi2,vi3,…,viN}求平均,以得到平均变化率averR,作为后侧数据变化率,即:
在步骤S703中,基于所述前侧数据变化率和所述后侧数据变化率,确定该数据点的运动数据值的瞬时变化率。
例如,可以根据以下的等式(1),基于步骤S701和S702中所确定的前侧数据变化率和后侧数据变化率,来求出集合VL和集合VR中的每个变化率的权重,并根据以下的等式(2)对集合VL中的变化率{v1i,v2i,v3i,…,vMi}和集合VR中的变化率{vi1,vi2,vi3,…,viN}进行加权平均,以得到xi的运动数据值的瞬时变化率。
其中,w1是集合VL中的变化率的权重,w2是集合VR中的变化率的权重,vi是xi的运动数据值的瞬时变化率,M表示第一预定数量,N表示第二预定数量。
下面参考图8来描述图4中的步骤S403的操作。图8示出了对于该关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对该数据点进行自适应地滤波的一个示例性方法的流程图。
如图8所示,在步骤S801中,对于每个数据点,将该数据点作为滤波中心数据点,以该滤波中心数据点为中心,将连续的第三预定数量的数据点作为第三预定数量的滤波窗口数据点,并利用与该滤波中心数据点对应的滤波器参数对该滤波窗口数据点进行滤波,以对于每个滤波窗口数据点得到与所述滤波中心数据点相对应的初始滤波数据值。
本领域技术人员应当理解,对一个单独的数据点滤波并没有意义,需要将滤波器施加到一段连续的数据点。如图9所示,图9是示出对于关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对该数据点进行自适应地滤波的一个示例性方法的示意图。
在图9中,以xi为例,以xi作为滤波中心数据点,并以xi为中心,将连续的第三预定数量W个的数据作为第三预定数量W个的滤波窗口数据点,用Fi表示具有与xi所对应的滤波器参数的滤波器,将Fi施加到以xi为中心的W个滤波窗口数据点进行滤波的结果可以表示为:
表示Fi作用在数据点xi-W/2+1所得到的初始滤波数据值,即对于数据点xi-W/2+1得到的与所述滤波中心数据点xi相对应的初始滤波数据值。
此外,可选地,在利用与该滤波中心数据点对应的滤波器参数对该滤波窗口数据点进行滤波之前,可以对关节运动数据进行填充。例如,如图9所示,对于关节运动数据序列的第一个数据点和最后一个数据点,为了获得W个滤波窗口数据点,需要在关节运动数据序列的左右进行填充。具体地,在所述关节运动数据的第一个数据点左侧填充多个数据点,以使得能够取得以所述第一个数据点为中心的第三预定数量的滤波窗口数据点;以及在所述关节运动数据的最后一个数据点右侧填充多个数据点,以使得能够取得以所述最后一个数据点为中心的第三预定数量的滤波窗口数据点。例如可以采用奇函数形式的镜像(reflect)填充。对数据的填充方式不限于此,还可以采取其他的数据填充方法,例如偶函数形式的镜像填充。
如图9所示,Fi,Fi-1,Fi-2分别表示具有第i个数据点、第i-1个数据点和第i-2个数据点所对应的滤波器参数的滤波器。本公开的实施例针对每一个数据点所对应的滤波器参数构造了一个相应的滤波器,然而,本领域技术人员可以理解,可以对同一个滤波器设置分段的滤波器截止频率,即每当以一个不同的数据点为滤波中心数据点进行滤波的时候,重新设置滤波器的截止频率。
从图9可以看出,数据点xi会被Fi-W/2+1,Fi-W/2+2,…,Fi,…,Fi+W/2这W个滤波器作用,得到这W个初始滤波数据值。因此,在经过步骤S801的处理之后,对于每个数据点xi得到了W个初始滤波数据值,W即为每个滤波器所对应的滤波窗口数据点的数量,即第三预定数量的初始滤波数据值。在对于每个数据点xi获得了第三预定数量W个初始滤波数据值之后,需要基于W个初始滤波数据值确定该数据点最终的滤波数据值,以实现对该数据点的平滑。
接下来,在步骤S802中,对于每个数据点,将所述数据点作为待平滑数据点,获取所述待平滑数据点的第三预定数量的初始滤波数据值,并基于所述第三预定数量的初始滤波数据值确定所述待平滑数据点的滤波数据值,其中,所述第三预定数量的初始滤波数据值是通过对所述数据点进行第三预定数量次数的滤波得到的,所述第三预定数量次数的滤波分别对应于以所述数据点的每个滤波窗口数据点为中心的滤波。
具体地,对于第i个数据点,将该数据点作为待平滑数据点,获取该待平滑数据点的第三预定数量W个的初始滤波数据值,并基于该W个初始滤波数据值确定该待平滑数据点的滤波数据值,其中,W个初始滤波数据值是通过对该数据点进行W次数的滤波得到的,W次数的滤波分别对应于以第i个数据点的每个滤波窗口数据点为中心的滤波,这里,第i个数据点xi的每个滤波窗口数据点即为以第i个数据点为中心所选择的W个滤波窗口数据点中的每个滤波窗口数据点。再次参考图9,第i个数据点的W个初始滤波数据值即为其是以{xi-W/2+1,xi-W/2+2,…,xi,…xi+W/2}为中心的滤波作用于第i个数据点xi所产生的。
图10是示出了基于第三预定数量的初始滤波数据值确定待平滑数据点的滤波数据值的一种示例性方法的流程图。
如图10所示,在步骤S1001中,对于待平滑数据点,确定第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重。
如图9所示,令数据点xi为待平滑数据点,数据点xi会被Fi-W/2+1,Fi-W/2+2,…,Fi,…,Fi+W/2这W个滤波器滤波,得到这W个(即第三数量的)初始滤波数据值。例如,/>是滤波器Fi-W/2+1对xi进行滤波产生的初始滤波数据值。滤波器截止频率是与其相对应的数据点的运动数据值的瞬时变化率的正相关函数,若数据点xi-W/2+1的运动数据值的瞬时变化率较低,滤波器Fi-W/2+1将会采用较低的滤波器截止频率,此时滤波器Fi-W/2+1对xi滤波后产生的初始滤波数据值/>会被滤除更多的信息。而如果xi的运动数据值的瞬时变化率较高,需要保留更多动作细节信息,则需要将初始滤波数据值/>的权重降低。
根据本公开的实施例,第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重是基于待平滑数据点的运动数据值变化率与初始滤波数据值所对应的滤波中心数据点的运动数据值变化率之间的差异而确定的。
作为一个示例,待平滑数据点的一个初始滤波数据值的权重是该初始滤波数据值所对应的滤波中心数据点的运动数据值变化率与待平滑数据点的运动数据值的比值的指数函数,例如该指数函数为以e为底的指数函数。
具体地,该以e为底的指数函数可以是如下的等式(4):
其中,vk是数据点xk的运动数据值的变化率,vi是数据点xi的运动数据值的变化率。xk是以xi为中心滤波数据点的滤波窗口数据点中的一个数据点。wk,i是数据点xk所对应的滤波器Fk对xi进行滤波后产生的初始滤波数据值的权重。从wk,i的计算公式可以看出,第i个数据点与第k个数据点的运动数据值的瞬时变化率差异越大,滤波器Fk对第i个数据点的影响权重越小。
在步骤S1002中,基于步骤S1001中所确定的带平滑数据点的第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重,对第三预定数量的初始滤波数据值进行加权平均,以确定待平滑数据点的滤波数据值。
具体地,加权平均的算法可以如下方的等式(5)所示:
其他骨骼运动数据点的滤波数据值的计算方式与上述方法类似。
图11示出了根据本公开实施例的数据处理方法的整体示意图。
如图11所示,根据本公开的实施例的数据处理方法,在获取关节点的关节运动数据之后,首先对关节运动数据进行两端填充。然后确定关节运动数据中的每个数据点的运动数据值的瞬时变化率,再根据所确定的运动数据值的瞬时变化率确定与该数据点对应的滤波器参数,即滤波器截止频率,并对滤波器截止频率做邻域嵌位。最后基于邻域嵌位后的滤波器截止频率来对关节运动数据中的每个数据点进行滤波和平滑,即可得到自适应滤波后的数据。
由此,以上所述的根据本公开实施例的数据处理方法,通过针对关节运动数据中的每一个数据点,采用多个滤波器参数对该数据点进行自适应滤波以得到相应的多个初始滤波数据值,并根据不同滤波器参数的影响权重对多个初始滤波数据值进行加权平均得到该数据点的最终滤波数据值,从而实现对关节运动的关节运动数据进行自适应滤波,既能平滑噪声,又能保留动作的细节。
图12A和图12B示出了利用根据本公开实施例的数据处理方法对运动曲线进行滤波以后的效果图。
在图12A和图12B中,虚线为原始运动曲线,实线为利用根据公开实施例的数据处理方法进行自适应滤波后的运动曲线,图12A中的运动曲线的左边部分存在抖动,右边部分是正常的运动曲线。图12B中的运动曲线是不存在抖动的正常的运动曲线。在图12A中,根据本公开实施例的数据处理方法能够平滑曲线左边部分的抖动,同时能够保持曲线右边部分的正常细节。而在图12B中,经过根据公开实施例的数据处理方法进行自适应滤波后的运动曲线与原始曲线保持吻合。
图13示出了根据本公开实施例的数据处理方法的滤波效果与普通巴特沃斯低通滤波器的滤波效果对比图。
在图13中,虚线3表示原始运动曲线,实线1表示普通巴特沃斯低通滤波器对原始运动曲线进行滤波后的效果图,实线2表示根据本公开实施例的数据处理方法对原始运动曲线进行滤波后的效果图。根据图13,我们可以看到,对于原始运动曲线的左边存在抖动的部分,根据本公开实施例的数据处理方法比普通巴特沃斯低通滤波器的滤波效果更平滑,但对于右边运动运动数据值的瞬时变化率比较快的区域,依然能够保留曲线原来的细节(与原始运动曲线重合)。
由此,根据效果图可以看到,根据本公开的实施例的数据处理方法基于关节运动数据中的每个数据点的运动数据值的瞬时变化率,确定与每个数据点相对应的不同滤波器参数,实现关节运动数据的自适应滤波,使得自适应滤波后的数据在去噪和保留动作精度方面得到了很好的平衡。
本公开的实施例提供了一种数据处理装置。图14示出了根据本公开实施例的数据处理装置的示意性框图。如图14所示,数据处理装置1400可以包括数据获取单元1401,滤波器参数确定单元1402和滤波器单元1403。
数据获取单元1401可以被配置为对于骨骼动画中的多个关节点中的每个关节点,获取该关节点的关节运动数据,其中该关节运动数据指示该关节点随时间变化的运动序列。
根据本公开的实施例,例如,关节运动数据包括关节移位数据和/或关节旋转数据。
滤波器参数确定单元1402可以被配置为对于该关节点的关节运动数据中的每个数据点,确定该数据点的运动数据值的瞬时变化率,并确定与该数据点对应的滤波器参数。
根据本公开的实施例,滤波器参数确定单元1402确定数据点的运动数据值的瞬时变化率包括:确定该数据点的运动数据值与该数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率,作为前侧数据变化率;确定该数据点的运动数据值与该数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率,作为后侧数据变化率;以及基于该前侧数据变化率和该后侧数据变化率,确定该数据点的运动数据值的瞬时变化率。
根据本公开的实施例,滤波器参数确定单元1402确定其中,确定所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率包括:确定所述数据点之前的前侧数据点区间,并在所述前侧数据点区间中选择至少一个数据点作为所述至少一个前侧数据点,所述前侧数据点区间包括所述数据点之前的第一预定数量的连续数据点并且不包括所述数据点;确定所述数据点与所述至少一个前侧数据点中每个数据点之间的变化率作为前侧变化率,以得到至少一个前侧变化率;以及确定所述至少一个前侧变化率的平均值,以得到所述平均变化率;其中,确定所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率包括:确定所述数据点之后的后侧数据点区间,并在所述后侧数据点区间中选择至少一个数据点作为所述至少一个后侧数据点,所述后侧数据点区间包括所述数据点之后的第二预定数量的连续数据点并且不包括所述数据点;确定所述数据点与所述至少一个后侧数据点中每个数据点之间的变化率作为后侧变化率,以得到至少一个后侧变化率;以及确定所述至少一个后侧变化率的平均值,以得到所述平均变化率;其中,所述第一预定数量和所述第二预定数量相同或不相同。
根据本公开的实施例,滤波器参数确定单元1402基于前侧数据变化率和后侧数据变化率,确定数据点的运动数据值的瞬时变化率包括:基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率包括:将所述至少一个前侧变化率的平均值除以所述至少一个前侧变化率的平均值与所述至少一个后侧变化率的平均值的和,得到第一比值,以作为所述至少一个前侧变化率的权重;以所述至少一个后侧变化率的平均值除以所述至少一个前侧变化率的平均值与所述至少一个后侧变化率的平均值的和,得到第二比值,以作为所述至少一个后侧变化率的权重;基于所述至少一个前侧变化率和所述至少一个后侧变化率的权重,对所述至少一个前侧变化率和所述至少一个后侧变化率进行加权平均以获得所述数据点的运动数据值的瞬时变化率。
根据本公开的实施例,滤波器参数确定单元1402基于前侧数据变化率和后侧数据变化率,确定数据点的运动数据值的瞬时变化率包括:基于所述前侧数据变化率和所述后侧数据变化率,计算所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的变化率的权重,以及计算所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的变化率的权重,并对所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的变化率和所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的变化率进行加权平均以获得所述数据点的运动数据值的瞬时变化率。
滤波器单元1403可以被配置为对于关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对该数据点进行自适应地滤波。
根据本公开的实施例,对于关节点的关节运动数据中的每个数据点,滤波器单元1403利用所确定的滤波器参数对该数据点进行自适应地滤波包括:对于每个数据点,将该数据点作为滤波中心数据点,以该滤波中心数据点为中心,将连续的第三预定数量的数据点作为第三预定数量的滤波窗口数据点,并利用与该滤波中心数据点对应的滤波器参数对该滤波窗口数据点进行滤波,以对于每个滤波窗口数据点得到与所述滤波中心数据点相对应的初始滤波数据值;以及对于每个数据点,将该数据点作为待平滑数据点,获取该待平滑数据点的第三预定数量的初始滤波数据值,并基于该第三预定数量的初始滤波数据值确定该待平滑数据点的滤波数据值,其中,该第三预定数量的初始滤波数据值是通过对该数据点进行第三预定数量次数的滤波得到的,该第三预定数量次数的滤波分别对应于以该数据点的每个滤波窗口数据点为中心的滤波。
根据本公开的实施例,滤波器单元1403基于第三预定数量的初始滤波数据值确定待平滑数据点的滤波数据值包括:对于该待平滑数据点,确定第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重;以及对该第三预定数量的初始滤波数据值进行加权平均,以确定该待平滑数据点的滤波数据值。
根据本公开的实施例,对于待平滑数据点,滤波器单元1403确定第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重包括:作为该初始滤波数据值所对应的滤波中心数据点的运动数据值变化率与待平滑数据点的运动数据值的比值的exp函数,确定该初始滤波数据值的权重。
数据获取单元1401,滤波器参数确定单元1402和滤波器单元1403可以通过软件、硬件、固件或它们的任意组合来实现。
本公开的实施例还提供了一种数据处理装置,图15示出了根据本公开另一实施例的数据处理装置的示意性框图。例如,如图15所示,数据处理装置1500可以包括一个或多个处理器1501和一个或多个存储器1502。一个或多个存储器1502中存储有计算机可执行指令,该计算机可执行指令当由一个或多个处理器1501执行时,可以执行如上所述的数据处理方法。一个或多个存储器1502和一个或多个处理器1501可以通过总线***和/或其它形式的连接机构(未示出)互连。
例如,一个或多个存储器1502和一个或多个处理器1501可以设置在单机之中,也可以设置服务器端,还可以设置在云端,以用于执行如上所述的数据处理方法中的一个或多个步骤。
例如,一个或多个处理器1501可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。一个或多个处理器1501可以为通用处理器或专用处理器,可以控制数据处理装置1500中的其它组件以执行期望的功能。
例如,一个或多个存储器1502可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。
此外,根据本申请实施例的方法或装置也可以借助于图16所示的电子设备的架构来实现。图16示意性地示出了该电子设备的架构。如图16所示,电子设备1600可以包括总线1601、一个或多个CPU 1602、只读存储器(ROM)1603、随机存取存储器(RAM)1604、连接到网络的通信端口1605、输入/输出组件1606、硬盘1607等。电子设备1600中的存储设备,例如ROM 1603或硬盘1607可以存储本申请提供的方法的处理和/或通信使用的各种数据或文件以及CPU所执行的程序指令。电子设备1600还可以包括用户界面。当然,图16所示的架构只是示例性的,在实现不同的设备时,根据实际需要,可以省略或添加图16示出的电子设备中的一个或至少两个组件。
本公开的实施例还提供了一种计算机可读存储介质。图17示出了根据本公开的实施例的存储介质的示意图1700。如图17所示,所述计算机存储介质1702上存储有计算机可执行指令1701。当所述计算机可执行指令1701由处理器运行时,可以执行参照以上附图描述的根据本公开实施例的数据处理的方法。所述计算机可读存储介质包括但不限于例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。
本公开的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行根据本公开实施例的数据处理方法。
本公开的实施例提供了数据处理方法、装置和存储介质,根据本公开的实施例的数据处理方法通过基于关节运动数据中的每个数据点的运动数据值的瞬时变化率,确定与每个数据点相对应的不同滤波器参数,实现关节运动数据的自适应滤波,既能平滑噪声,去除关节运动的抖动,又能保留快速运动的动作的细节。
图18示出了根据本公开实施例的数据处理方法所设计的适应性滤波插件的界面示意图。
图18所示的适应性滤波插件例如可以应用于Maya等商业动画软件。在Maya中,对骨骼动画数据进行处理的基本操作方式有两种,一种是选择曲线段,一种是选择关节。选择曲线段时只对选中的曲线段进行滤波,选择关节时对关节的所有曲线进行滤波。例如,当选中要进行滤波处理的曲线或曲线段之后,可以利用如图18所示的界面来对所选择的曲线或曲线段进行适应性滤波相关的操作。如图18所示,适应性滤波插件的界面中包含:平滑强度滚动条、撤销操作、重做按钮、计算按钮,以及左下角的当前操作结果反馈窗口。各个部分的功能介绍如下:
计算按钮用于实用性滤波计算;
撤销按钮用于撤销上一次的计算;
重做按钮用于重做上一次的撤销内容;
平滑强度滚动条用于控制平滑的强度,值越大表示越平滑,与原来运动曲线的差异也会一定程度地增大。用户可以首先体验下最小值和最大值的效果,建立感性的认知;
反馈窗口展示一些操作描述,例如可以在反馈窗口中显示滤波后的曲线。
例如,可以选择如图2A和图2B所示的曲线中的左侧椭圆部分,在选择了左侧椭圆部分之后,点击图18中的计算按钮,可以对所选择的曲线段进行滤波,并且可以在反馈窗口中显示滤波后的曲线段。
再例如,可以选择图1A的右侧所示的关节26的所有曲线,在选择了所有曲线之后,点击图18中的计算按钮,可以对所选择的曲线进行滤波,并且可以在反馈窗口中显示滤波后的曲线。
此外,可以点击撤销按钮和重做按钮来对比滤波前后的区别。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的***中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。所述单元仅是说明性的,并且所述***和方法的不同方面可以使用不同单元。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。
Claims (15)
1.一种用于骨骼动画的数据处理方法,包括:
对于骨骼动画中的多个关节点中的每个关节点,获取所述关节点的关节运动数据,其中所述关节运动数据指示所述关节点随时间变化的运动序列;
对于所述关节点的关节运动数据中的每个数据点,确定所述数据点的运动数据值的瞬时变化率,并确定与所述数据点对应的滤波器参数,所述滤波器参数是所述数据点的运动数据值的瞬时变化率的正相关函数;以及
对于所述关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对所述数据点进行自适应地滤波。
2.根据权利要求1所述的数据处理方法,其中,对于每个数据点确定所述数据点的运动数据值的瞬时变化率包括:
确定所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率,作为前侧数据变化率;
确定所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率,作为后侧数据变化率;以及
基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率。
3.根据权利要求2所述的数据处理方法,
其中,确定所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的平均变化率包括:
确定所述数据点之前的前侧数据点区间,并在所述前侧数据点区间中选择至少一个数据点作为所述至少一个前侧数据点,所述前侧数据点区间包括所述数据点之前的第一预定数量的连续数据点并且不包括所述数据点;
确定所述数据点与所述至少一个前侧数据点中每个数据点之间的变化率作为前侧变化率,以得到至少一个前侧变化率;以及
确定所述至少一个前侧变化率的平均值,以得到所述平均变化率;
其中,确定所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的平均变化率包括:
确定所述数据点之后的后侧数据点区间,并在所述后侧数据点区间中选择至少一个数据点作为所述至少一个后侧数据点,所述后侧数据点区间包括所述数据点之后的第二预定数量的连续数据点并且不包括所述数据点;
确定所述数据点与所述至少一个后侧数据点中每个数据点之间的变化率作为后侧变化率,以得到至少一个后侧变化率;以及
确定所述至少一个后侧变化率的平均值,以得到所述平均变化率;
其中,所述第一预定数量和所述第二预定数量相同或不相同。
4.根据权利要求3所述的数据处理方法,其中,基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率包括:
将所述至少一个前侧变化率的平均值除以所述至少一个前侧变化率的平均值与所述至少一个后侧变化率的平均值的和,得到第一比值,以作为所述至少一个前侧变化率的权重;
以所述至少一个后侧变化率的平均值除以所述至少一个前侧变化率的平均值与所述至少一个后侧变化率的平均值的和,得到第二比值,以作为所述至少一个后侧变化率的权重;
基于所述至少一个前侧变化率和所述至少一个后侧变化率的权重,对所述至少一个前侧变化率和所述至少一个后侧变化率进行加权平均,以获得所述数据点的运动数据值的瞬时变化率。
5.根据权利要求2所述的数据处理方法,其中,基于所述前侧数据变化率和所述后侧数据变化率,确定所述数据点的运动数据值的瞬时变化率包括:
基于所述前侧数据变化率和所述后侧数据变化率,计算所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的变化率的权重,以及计算所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的变化率的权重,以及
对所述数据点的运动数据值与所述数据点之前的至少一个前侧数据点的运动数据值之间的变化率和所述数据点的运动数据值与所述数据点之后的至少一个后侧数据点的运动数据值之间的变化率进行加权平均以获得所述数据点的运动数据值的瞬时变化率。
6.根据权利要求1所示的数据处理方法,
其中,所述滤波器参数为滤波器截止频率;
其中,所述确定与所述数据点对应的滤波器参数包括:
作为所述数据点的运动数据值的瞬时变化率的函数,确定与所述数据点对应的滤波器截止频率。
7.根据权利要求6所示的数据处理方法,还包括:对与所述数据点对应的滤波器截止频率进行邻域嵌位,其中所述邻域嵌位包括:
获取与所述数据点相邻的多个数据点中每个数据点的滤波器截止频率,以得到多个滤波器截止频率;以及
确定所述多个滤波器截止频率中的最大值,并将所述最大值作为与所述数据点对应的滤波器截止频率。
8.根据权利要求1所示的数据处理方法,其中,对于所述关节点的关节运动数据中的每个数据点,利用所确定的滤波器参数对所述数据点进行自适应地滤波包括:
对于每个数据点,将所述数据点作为滤波中心数据点,以所述滤波中心数据点为中心,将连续的第三预定数量的数据点作为第三预定数量的滤波窗口数据点,并利用与所述滤波中心数据点对应的滤波器参数对所述滤波窗口数据点进行滤波,以对于每个滤波窗口数据点得到与所述滤波中心数据点相对应的初始滤波数据值;以及
对于每个数据点,将所述数据点作为待平滑数据点,获取所述待平滑数据点的第三预定数量的初始滤波数据值,并基于所述第三预定数量的初始滤波数据值确定所述待平滑数据点的滤波数据值,其中,所述第三预定数量的初始滤波数据值是通过对所述数据点进行第三预定数量次数的滤波得到的,所述第三预定数量次数的滤波分别对应于以所述数据点的每个滤波窗口数据点为中心的滤波。
9.根据权利要求8所示的数据处理方法,其中,基于所述第三预定数量的初始滤波数据值确定所述待平滑数据点的滤波数据值包括:
对于所述待平滑数据点,确定所述第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重;以及
对所述第三预定数量的初始滤波数据值进行加权平均,以确定所述待平滑数据点的滤波数据值。
10.根据权利要求9所示的数据处理方法,其中,所述第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重是基于所述待平滑数据点的运动数据值变化率与所述初始滤波数据值所对应的滤波中心数据点的运动数据值变化率之间的差异而确定的。
11.根据权利要求9所述的数据处理方法,其中,对于所述待平滑数据点,确定所述第三预定数量的初始滤波数据值中的每个初始滤波数据值的权重包括:
作为所述初始滤波数据值所对应的滤波中心数据点的运动数据值变化率与所述待平滑数据点的运动数据值的比值的指数函数,确定所述初始滤波数据值的权重。
12.根据权利要求8所述的数据处理方法,其中,对于每个数据点,将所述数据点作为滤波中心数据点,以所述滤波中心数据点为中心,将连续的第三预定数量的数据点作为第三预定数量的滤波窗口数据点还包括:
在所述关节运动数据的第一个数据点左侧填充多个数据点,以使得能够取得以所述第一个数据点为中心的第三预定数量的滤波窗口数据点;
在所述关节运动数据的最后一个数据点右侧填充多个数据点,以使得能够取得以所述最后一个数据点为中心的第三预定数量的滤波窗口数据点。
13.根据权利要求1所述的数据处理方法,其中,所述关节运动数据包括关节移位数据和/或关节旋转数据。
14.一种用于骨骼动画的数据处理装置,包括存储器和处理器,其中,所述存储器上存储有处理器可读的程序代码,当处理器执行所述程序代码时,执行根据权利要求1-13中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有指令,所述指令在被处理器执行时,使得所述处理器执行如权利要求1-13中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010811365.8A CN111899318B (zh) | 2020-08-13 | 2020-08-13 | 数据的处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010811365.8A CN111899318B (zh) | 2020-08-13 | 2020-08-13 | 数据的处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111899318A CN111899318A (zh) | 2020-11-06 |
CN111899318B true CN111899318B (zh) | 2023-08-25 |
Family
ID=73229270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010811365.8A Active CN111899318B (zh) | 2020-08-13 | 2020-08-13 | 数据的处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111899318B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385618B (zh) * | 2022-01-17 | 2024-04-12 | 大数金科网络技术有限公司 | 一种基于权重的数据智能补充方法 |
CN115290185A (zh) * | 2022-09-05 | 2022-11-04 | 江苏徐工国重实验室科技有限公司 | 抗振动滤波方法、装置和工程机械 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168819A (zh) * | 2012-02-28 | 2014-11-26 | 皇家飞利浦有限公司 | 用于监视生命体征的设备和方法 |
CN108564599A (zh) * | 2018-04-08 | 2018-09-21 | 广东省智能制造研究所 | 一种人体运动速度估计方法 |
CN109064487A (zh) * | 2018-07-02 | 2018-12-21 | 中北大学 | 一种基于Kinect骨骼节点位置追踪的人体姿势比较方法 |
CN110401784A (zh) * | 2018-04-24 | 2019-11-01 | 展讯通信(天津)有限公司 | 自适应调节滤波强度的运动平滑方法、***及视频设备 |
CN110570455A (zh) * | 2019-07-22 | 2019-12-13 | 浙江工业大学 | 一种面向房间vr的全身三维姿态跟踪方法 |
-
2020
- 2020-08-13 CN CN202010811365.8A patent/CN111899318B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104168819A (zh) * | 2012-02-28 | 2014-11-26 | 皇家飞利浦有限公司 | 用于监视生命体征的设备和方法 |
CN108564599A (zh) * | 2018-04-08 | 2018-09-21 | 广东省智能制造研究所 | 一种人体运动速度估计方法 |
CN110401784A (zh) * | 2018-04-24 | 2019-11-01 | 展讯通信(天津)有限公司 | 自适应调节滤波强度的运动平滑方法、***及视频设备 |
CN109064487A (zh) * | 2018-07-02 | 2018-12-21 | 中北大学 | 一种基于Kinect骨骼节点位置追踪的人体姿势比较方法 |
CN110570455A (zh) * | 2019-07-22 | 2019-12-13 | 浙江工业大学 | 一种面向房间vr的全身三维姿态跟踪方法 |
Non-Patent Citations (1)
Title |
---|
廖培鸿.《发电厂的计算机控制》.水利电力出版社,1987,(第1978版),38-41. * |
Also Published As
Publication number | Publication date |
---|---|
CN111899318A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9542729B2 (en) | Image processing device, method of controlling image processing device, and program for causing computer to execute the same method | |
JP5213486B2 (ja) | 対象物追跡装置および対象物追跡方法 | |
Zhang et al. | Multi-observation blind deconvolution with an adaptive sparse prior | |
CN110070611B (zh) | 一种基于深度图像融合的人脸三维重建方法和装置 | |
CN111899318B (zh) | 数据的处理方法、装置及计算机可读存储介质 | |
Erofeev et al. | Perceptually Motivated Benchmark for Video Matting. | |
US9478033B1 (en) | Particle-based tracking of objects within images | |
CN104217406B (zh) | 一种基于剪切波系数处理的sar图像降噪方法 | |
US20210158593A1 (en) | Pose selection and animation of characters using video data and training techniques | |
CN108305268B (zh) | 一种图像分割方法及装置 | |
Hsieh et al. | Automatic trimap generation for digital image matting | |
JP2010108496A (ja) | データをあらわす属性を選択する方法、コンピューター読み取り可能な媒体、生成モデルを形成する方法および生成モデルを形成するシステム | |
CN109498001B (zh) | 睡眠质量评估方法和装置 | |
CN112084855B (zh) | 一种基于改进ransac方法对视频流的外点剔除方法 | |
CN111507304B (zh) | 自适应刚性先验模型训练方法、人脸跟踪方法及相关装置 | |
CN114757855B (zh) | 动作数据修正方法、装置、设备及存储介质 | |
CN110856014B (zh) | 动态图像生成方法、装置、电子设备及存储介质 | |
US20210158565A1 (en) | Pose selection and animation of characters using video data and training techniques | |
CN112802060B (zh) | 一种单目标跟踪方法和装置 | |
Shang et al. | Joint Video Multi-Frame Interpolation and Deblurring under Unknown Exposure Time | |
CN110610185B (zh) | 图像的显著目标的检测方法、装置及设备 | |
JP5901353B2 (ja) | 画像処理装置 | |
CN115035230B (zh) | 视频渲染处理方法、装置、设备及存储介质 | |
CN117314976B (zh) | 一种目标物跟踪方法及数据处理设备 | |
CN116524112A (zh) | 基于rgbd视频数据融合算法的三维人脸重建方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |