发明内容
本公开实施例至少提供一种按摩轨迹生成方法、装置、设备及存储介质。
本公开实施例提供了一种按摩轨迹生成方法,所述方法包括:
获取目标用户在目标场景中的人体点云数据,以及人体模型的第一模型点云数据和针对所述人体模型上预设模型部位的预设按摩轨迹;
基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点;
基于所述多个人体部位点和所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述人体模型相对于所述目标用户的人体缩放系数;
基于所述缩放系数、所述预设按摩轨迹、所述人体点云数据和所述第二模型点云数据,确定针对所述目标用户的目标按摩轨迹。
一种可选的实施方式中,所述基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点,包括:
对所述第一模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第一模型点云数据变换至与所述人体点云数据重合的第二模型点云数据和所述第二模型点云数据的第一位姿信息;
基于所述人体点云数据和所述第一位姿信息,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点。
一种可选的实施方式中,所述基于所述人体点云数据和所述第一位姿信息,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点,包括:
基于所述第一位姿信息,将所述人体点云数据变换至所述人体模型的模型坐标系下,得到变换人体点云数据;
基于所述预设模型部位在所述模型坐标系下的坐标范围,确定所述变换人体点云数据中位于所述坐标范围内的多个人体部位点。
一种可选的实施方式中,所述基于所述多个人体部位点和所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述人体模型相对于所述目标用户的人体缩放系数,包括:
基于所述多个人体部位点,确定所述目标用户对应的人体部位的人体部位参数;
基于所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述预设模型部位的模型部位参数;
基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数。
一种可选的实施方式中,所述基于所述缩放系数、所述预设按摩轨迹、所述人体点云数据和所述第一模型点云数据,确定针对所述目标用户的目标按摩轨迹,包括:
按照所述第一位姿信息,将所述预设按摩轨迹转换至所述第二模型点云数据中,得到与所述第二模型点云数据适配的第一中间按摩轨迹;
按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹;
所述目标用户的目标按摩轨迹适配于所述第三模型点云数据。
一种可选的实施方式中,将所述第二模型点云数据和所述第一中间按摩轨迹分别作为目标点集,所述按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹,包括:
获得所述目标点集的点集中心以及所述点集中心所处的初始位置;
对所述目标点集进行点集坐标归一化处理,使所述点集中心移动至参考坐标系的原点;
针对移动后的所述目标点集中的每个点,将所述点的坐标的三个分量分别乘以所述缩放系数,以进行点集缩放;
基于所述初始位置与所述原点之间的距离,对缩放后的所述目标点集进行平移,使所述点集中心回到所述初始位置,完成缩放。
一种可选的实施方式中,针对得到所述目标用户的所述目标按摩轨迹,包括:
对所述第三模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第三模型点云数据变换至与所述人体点云数据重合的第四模型点云数据和第二位姿信息;
按照所述第二位姿信息对由所述第一中间按摩轨迹缩放得到的第二中间按摩轨迹进行转换,形成针对所述目标用户的目标按摩轨迹;
所述目标用户的目标按摩轨迹适配于所述第四模型点云数据。
一种可选的实施方式中,所述预设模型部位和对应的所述人体部位为肩颈部位,所述模型部位参数至少包括根据所述多个模型部位点识别出的模型颈部的第一直径、第一颈部中轴线在所述模型坐标系下的第一方向向量和所述第一颈部中轴线上第一颈部点的第一坐标,所述人体部位参数至少包括根据所述多个人体部位点识别出的人体颈部的第二直径、第二颈部中轴线在所述模型坐标系下的第二方向向量和所述第二颈部中轴线上第二颈部点的第二坐标。
一种可选的实施方式中,所述基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数,包括:
基于所述第一方向向量、所述第一坐标、所述第二方向向量和所述第二坐标,对所述模型颈部和所述人体颈部进行对齐处理;
在所述模型颈部和所述人体颈部对齐后,通过所述第一直径和所述第二直径,计算所述人体模型相对于所述目标用户的人体缩放系数。
一种可选的实施方式中,在得到所述目标按摩轨迹之后,所述方法包括:
针对所述目标按摩轨迹的多个轨迹点中每相邻两个轨迹点,在所述两个轨迹点之间插入至少一个插值轨迹点;
对所述多个轨迹点和确定出的多个插值轨迹点进行拟合,得到轨迹密度调整后的目标按摩轨迹。
本公开实施例还提供一种按摩轨迹生成装置,所述装置包括:
数据获取模块,用于获取目标用户在目标场景中的人体点云数据,以及人体模型的第一模型点云数据和针对所述人体模型上预设模型部位的预设按摩轨迹;
部位点确定模块,用于基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点;
缩放系数确定模块,用于基于所述多个人体部位点和所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述人体模型相对于所述目标用户的人体缩放系数;
按摩轨迹确定模块,用于基于所述缩放系数、所述预设按摩轨迹、所述人体点云数据和所述第一模型点云数据,确定针对所述目标用户的目标按摩轨迹。
一种可选的实施方式中,所述部位点确定模块具体用于:
对所述第一模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第一模型点云数据变换至与所述人体点云数据重合的第二模型点云数据和所述第二模型点云数据的第一位姿信息;
基于所述人体点云数据和所述第一位姿信息,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点。
一种可选的实施方式中,所述部位点确定模块在用于基于所述人体点云数据和所述第一位姿信息,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点时,具体用于:
基于所述第一位姿信息,将所述人体点云数据变换至所述人体模型的模型坐标系下,得到变换人体点云数据;
基于所述预设模型部位在所述模型坐标系下的坐标范围,确定所述变换人体点云数据中位于所述坐标范围内的多个人体部位点。
一种可选的实施方式中,所述缩放系数确定模块具体用于:
基于所述多个人体部位点,确定所述目标用户对应的人体部位的人体部位参数;
基于所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述预设模型部位的模型部位参数;
基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数。
一种可选的实施方式中,所述按摩轨迹确定模块具体用于:
按照所述第一位姿信息,将所述预设按摩轨迹转换至所述第二模型点云数据中,得到与所述第二模型点云数据适配的第一中间按摩轨迹;
按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹;
所述目标用户的目标按摩轨迹适配于所述第三模型点云数据。
一种可选的实施方式中,将所述第二模型点云数据和所述第一中间按摩轨迹分别作为目标点集,所述按摩轨迹确定模块在用于按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹时,具体用于:
获得所述目标点集的点集中心以及所述点集中心所处的初始位置;
对所述目标点集进行点集坐标归一化处理,使所述点集中心移动至参考坐标系的原点;
针对移动后的所述目标点集中的每个点,将所述点的坐标的三个分量分别乘以所述缩放系数,以进行点集缩放;
基于所述初始位置与所述原点之间的距离,对缩放后的所述目标点集进行平移,使所述点集中心回到所述初始位置,完成缩放。
一种可选的实施方式中,所述按摩轨迹确定模块在用于按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹时,具体用于:
对所述第三模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第三模型点云数据变换至与所述人体点云数据重合的第四模型点云数据和第二位姿信息;
按照所述第二位姿信息对由所述第一中间按摩轨迹缩放得到的第二按摩轨迹进行转换,形成针对所述目标用户的目标按摩轨迹;
所述目标用户的目标按摩轨迹适配于所述第四模型点云数据。
一种可选的实施方式中,所述预设模型部位和对应的所述人体部位为肩颈部位,所述模型部位参数至少包括根据所述多个模型部位点识别出的模型颈部的第一直径、第一颈部中轴线在所述模型坐标系下的第一方向向量和所述第一颈部中轴线上第一颈部点的第一坐标,所述人体部位参数至少包括根据所述多个人体部位点识别出的人体颈部的第二直径、第二颈部中轴线在所述模型坐标系下的第二方向向量和所述第二颈部中轴线上第二颈部点的第二坐标。
一种可选的实施方式中,所述缩放系数确定模块在用于基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数时,具体用于:
基于所述第一方向向量、所述第一坐标、所述第二方向向量和所述第二坐标,对所述模型颈部和所述人体颈部进行对齐处理;
在所述模型颈部和所述人体颈部对齐后,通过所述第一直径和所述第二直径,计算所述人体模型相对于所述目标用户的人体缩放系数。
一种可选的实施方式中,所述装置还包括轨迹点调整模块,所述轨迹点调整模块用于:
针对所述目标按摩轨迹的多个轨迹点中每相邻两个轨迹点,在所述两个轨迹点之间插入至少一个插值轨迹点;
对所述多个轨迹点和确定出的多个插值轨迹点进行拟合,得到轨迹密度调整后的目标按摩轨迹。
本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述的按摩轨迹生成方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的按摩轨迹生成方法的步骤。
本公开实施例提供的按摩轨迹生成方法、装置、设备及存储介质,通过获取目标用户在目标场景中的人体点云数据,以及人体模型的第一模型点云数据和针对所述人体模型上预设模型部位的预设按摩轨迹;基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点;基于所述多个人体部位点和所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述人体模型相对于所述目标用户的人体缩放系数;基于所述缩放系数、所述预设按摩轨迹、所述人体点云数据和所述第二模型点云数据,确定针对所述目标用户的目标按摩轨迹。
这样,通过获取针对人体模型的预设按摩轨迹,可以保证轨迹的有效性和准确性,进而通过目标用户的人体点云数据与第一模型点云数据之间的转换和配准,得到缩放系数,对预设按摩轨迹进行缩放,以准确有效地得出与目标用户适配目标按摩轨迹,不仅可以保证针对不同用户实现按摩轨迹的对应调整,达到自适应调整按摩轨迹的目的,还可以提高按摩位置和按摩穴位的准确性和稳定性,有利于提高按摩理疗的实际效果,提升用户体验。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,现在的通过按摩椅或者按摩机器人等科技手段为用户提供按摩理疗,其按摩轨迹、按摩力道、针对穴位和按摩部位等都是在机器中预先设置好的,只能按照设置的按摩轨迹、按摩部位和穴位等对用户进行按摩,而由于不同用户的高矮胖瘦等体型因素的不同和静止位置的差异,导致在实际按摩场景中,针对不同用户的适配性不佳,按摩理疗效果与预期存在差异。
基于上述研究,本公开提供了一种按摩轨迹生成方法,通过获取针对人体模型的预设按摩轨迹,可以保证轨迹的有效性和准确性,进而通过目标用户的人体点云数据与第一模型点云数据之间的转换和配准,得到缩放系数,对预设按摩轨迹进行缩放,以准确有效地得出与目标用户适配目标按摩轨迹,不仅可以保证针对不同用户实现按摩轨迹的对应调整,达到自适应调整按摩轨迹的目的,还可以提高按摩位置和按摩穴位的准确性和稳定性,有利于提高按摩理疗的实际效果,提升用户体验。
具体的,请参阅图1,图1为本公开实施例提供的一种按摩轨迹生成方法的流程图。如图1中所示,本公开实施例提供的按摩轨迹生成方法,可以应用于,包括:
S101:获取目标用户在目标场景中的人体点云数据,以及人体模型的第一模型点云数据和针对所述人体模型上预设模型部位的预设按摩轨迹。
该步骤中,在通过按摩机器人等方式为目标用户提供按摩理疗时,在所述目标用户进入到进行按摩理疗的目标场景中的情况下,可以采集所述目标场景中的点云数据,以获取采集的所述目标用户的人体点云数据,并且可以获取到预设的人体模型的第一模型点云数据,同时可以获取针对所述人体模型上预设模型部位的预设按摩轨迹。
其中,所述人体模型可以是预先设计好的,通过对大量用户的身高、体重、三围等身体参数进行参考后,设置的具有平均身高、平均体重和平均三维等参数的实体模型。所述人体模型的第一模型点云数据,和所述预设按摩轨迹的相关数据,可以是预先存储于数据库中的。
相应的,针对所述人体模型上预设模型部位的预设按摩轨迹,可以通过在所述人体模型上进行模拟按摩获取的轨迹,然后将之预先在按摩装置中存储好,在使用时可以直接使用,也可以通过在所述人体模型进行模拟按摩获取的轨迹,然后将之预先在按摩装置中存储好,在使用时,并且可以将所述人体模型放置于所述目标场景中以供参考,在使用时,可以调用相应的按摩轨迹,并与所述目标场景中放置所述人体模型进行匹配标定,以保证按摩装置在对此按摩后,可以减少因为机械运动导致的误差,在匹配标定后再进行新一次的使用轨迹进行按摩理疗。
优选的,本公开实施例可以采用将所述人体模型放置于所述目标场景中的方案。
其中,按摩轨迹,可以是指实现自动按摩的设备,例如按摩机器人等,携带如点阵波按摩端头等可以实现不同按摩理疗功能的按摩设备,在人体上相应部位进行移动的轨迹。
示例性的,请同时参阅图2,图2为本公开实施例体的按摩场景示意图。如图2中所示,以使用按摩机器人为用户提供肩周炎按摩理疗服务为例进行说明,在按摩理疗场景中,可以设置有按摩床,在按摩床边放置有携带点阵波按摩端头的机械手臂,作为按摩机器人,在按摩理疗过程中,用户可以行动至场景中的按摩床上,然后采集用户的人体点云数据,并且通过调用存储的数据等,来获取预先存储的人体模型的第一模型点云数据,以及人体模型上预设模型部位的预设按摩轨迹,如肩颈部位的按摩轨迹。进一步的,还可以将获取的按摩轨迹,先通过人体模型进行匹配和标定等,以调整按摩机器人由于反复的机械运动,导致的可能存在的误差。
S102:基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点。
该步骤中,在得到所述人体点云数据和所述第一模型点云数据后,可以对所述人体点云数据与所述第一模型点云数据进行校准、匹配和比对等处理,从而通过两者的比对,可以从所述人体点云数据中得出与所述预设按摩部位对应的多个人体部位点。
具体的,在对所述人体点云数据和所述第一模型点云数据之间的处理,可以是先对所述第一模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第一模型点云数据变换至与所述人体点云数据重合的第二模型点云数据和所述第二模型点云数据的第一位姿信息。
这里,在获取到所述第一模型点云数据和所述人体点云数据后,需要对两个点云数据进行对齐,具体的,为了方便后续数据的使用,减少数据变换次数,可以是将所述第一模型点云数据变换至与所述人体点云数据重合的位置,达到与所述人体点云数据重合,从而得到与所述第一模型点云数据对应的、变换后的第二模型点云数据,并且可以在点云数据配准的过程中同步得到所述人体点云数据的第一位姿信息。
其中,对所述第一模型点云数据和所述人体点云数据进行数据配准处理,可以是通过所述目标场景的对应的场景坐标系为基准,通过迭代最近点算法(Iterative ClosestPoints,ICP)等点云配准算法,实现点云坐标等的变换,以将两个点云进行配准。
在将所述第一模型点云数据变换至与所述人体点云数据重合的过程中,由于所述人体模型在所述目标场景中的初始位置是人为放置的,可以变化的,而ICP算法等对初始数据的敏感度高,所以所述人体模板在进行点云配准过程中由初始位姿等信息变换后得到的变换位姿等信息会有不同,而且由于所述人体模型的尺寸等时固定的,与所述目标用户之间是存在体型差异等因素的,所述人体模板与所述目标用户的真实人体是大概率无法重合的,所以所述第一模型点云数据在变换至所述人体点云数据的位置处时,两者之间也是大概率不会完全重合的,因此,可以是以两个点云各自的中心点为基准,中心点实现重合即可。
上述的中心点,可以是取模型和人体的中心,也可以是以需要按摩的部位的中心。
这样,可以实现人体点云数据和人体模型的点云数据的粗略对齐,为后续数据精细处理做好准备。
其中,对于所述第一位姿信息,可以通过对所述第一模型点云数据和所述人体点云数据进行配准的过程中,通过所述人体模型的位姿变化得知。
具体的,可以先基于所述人体模型在所述目标场景中的初始位姿信息以及所述第二模型点云数据,确定所述人体模型在经过点云变换后的第一位姿信息。
在实际应用中,以通过ICP算法对数据进行配准为例,ICP算法得到的位姿数据一般是包括位移(3个数值)和旋转(3个数值),分别对应所述人体模型的点云在移动前和移动后的相对位移和相对旋转。在移动前,所述人体模型是通过人工放置于所述目标场景中的一个确定的位置的,因此可以明确获知所述人体模型的初始位置和初始姿态,即可以获取所述人体模型对应的第一模型点云数据的初始位姿信息,进一步的,通过对点云配准的过程中所述第一模型点云数据对应的点云所移动的相对位移和相对旋转,结合初始位置和处置姿态,即可得知点云在移动后的位移(3个数值)和旋转(3个数值),从而确定出得到的所述人体模型在经过点云变换后得到的所述第二模型点云数据的第一位姿信息。
然后,可以基于所述人体点云数据和所述第一位姿信息,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点。
这里,在经过点云配准,得到所述第一位姿信息后,可以借助所述第一位姿信息,以及所述人体点云数据与所述第二模型点云数据之间大致重合的对应关系,得出所述人体点云数据和所述第一模型点云数据之间的对应关系,从而可以从所述人体点云数据中确定出与所述预设按摩部位对应的多个人体部位点。
具体的,请同时参阅图3,图3为本公开实施例的按摩轨迹生成方法中人体部位点的确定流程图。如图3中所示,对于确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点的具体过程,可以通过以下步骤实现:
S1031:基于所述第一位姿信息,将所述人体点云数据变换至所述人体模型的模型坐标系下,得到变换人体点云数据。
这里,由于在对点云进行变换后,所述人体点云数据和所述第二模型点云数据是属于基本重合的,所以可以认为所述人体点云数据与所述第二模型点云数据的位姿信息基本相同,因此可以将所述第二模型点云数据的第一位姿信息初步认为是所述人体点云数据的位姿信息。
虽然经过点云配准后,得到了所述第一位姿信息,但所述第一位姿信息是粗略估计出来的,属于偏低精度的位姿,无法准确得知所述人体点云数据中的人体部位点,因此,该步骤中,可以通过得到的所述第一位姿信息,借助所述目标用户的人体坐标系、所述目标场景的场景坐标系和所述人体模型的模型坐标系之间的映射关系,对所述人体点云数据进行进一步校准,以将所述人体点云数据变换至所述人体模型的模型坐标系下,得到所述人体点云数据经变换后的、在所述模型坐标系下的变换人体点云数据。
S1032:基于所述预设模型部位在所述模型坐标系下的坐标范围,确定所述变换人体点云数据中位于所述坐标范围内的多个人体部位点。
该步骤中,在得到所述变换人体点云数据后,可以通过预设部位对应的部位定位法,得出所述预设模型部位在所述模型坐标系下的坐标范围,通过所述坐标范围,即可筛选出所述变换人体点云数据中位于所述坐标范围内的多个人体部位点。
示例性的,对于所述模型坐标系,可以是以所述人体模型的左右手方向为模型坐标系的x轴方向,腹背方向为模型坐标系的y轴方向,头脚方向为模型坐标系的z轴方向,颈部表面的中心点作为模型坐标系的坐标原点,进而通过识别所述人体模型的颈部,得到颈部对应的坐标范围,在对变换人体点云数据进行筛选时,根据人体模型中颈部在z周的范围,按照该范围获取落入该范围的真实点云,即为人体部位点。相应的,还可以得到人体模型对应模型点云数据中,对应的模型部位点。
承接上述的S102,S103:基于所述多个人体部位点和所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述人体模型相对于所述目标用户的人体缩放系数。
该步骤中,在得到所述多个人体部位点后,通过多个人体部位点,以及在所述第一模型点云数据中识别出的与所述预设模型部位对应的多个模型部位点,将两者进行比对,可以得出所述人体模型相对于所述目标用户的人体缩放系数。
具体的,在一种可能的实时方式中,确定人体缩放系数,可以是通过以下步骤:
基于所述多个人体部位点,确定所述目标用户对应的人体部位的人体部位参数;
基于所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述预设模型部位的模型部位参数;
基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数。
以对目标用户进行肩颈理疗为例,在得到多个人体部位点后,可以使用点云库(Point Cloud Library,PCL)中积累的圆柱体分割(Cylinder model segmentation)模块,从得到的多个人体部位点中进一步分割识别,从而可以分割出通过所述多个人体部位点所能够拟合出的表示人体颈部的圆柱,进而可以从表示人体颈部的圆柱中识别出真实人体颈部的参数,相应的,也可以从多个模型部位点中进一步分割识别,以分割出通过多个模型部位点能够拟合出的表示模型颈部的圆柱,从表示模型颈部的圆柱中识别得到模型颈部的参数,如包括直径在内的7个相应参数,通过人体颈部的参数和模型颈部的参数,即可计算出两者之间的比例,既可以作为人体缩放系数。
其中,圆柱体分割(Cylinder model segmentation)模块,是由圆柱体参数估计和RANSAC(Random Sampling Consensus)组成,其中RANSAC具备很强的抗噪声能力,针对本实施例中确定出的颈部点集,其中包含的大量非颈部点,并且颈部本身不是严格的圆柱,因此使用RANSAC可以很好的减弱噪声点因此的影响。
在具体的应用场景中,所述预设模型部位和对应的所述人体部位为肩颈部位,所述模型部位参数至少包括根据所述多个模型部位点识别出的模型颈部(表示模型颈部的圆柱)的第一直径、第一颈部中轴线在所述模型坐标系下的第一方向向量和所述第一颈部中轴线上第一颈部点的第一坐标,所述人体部位参数至少包括根据所述多个人体部位点识别出的人体颈部(表示模型颈部的圆柱)的第二直径、第二颈部中轴线在所述模型坐标系下的第二方向向量和所述第二颈部中轴线上第二颈部点的第二坐标。
进一步的,对于计算所述人体缩放系数,可以是先对识别出的模型和人体的圆柱进行对其,即基于所述第一方向向量、所述第一坐标、所述第二方向向量和所述第二坐标,对所述模型颈部和所述人体颈部进行对齐处理,然后在在所述模型颈部和所述人体颈部对齐后,可以通过所述第一直径和所述第二直径,计算所述人体模型相对于所述目标用户的人体缩放系数。
S104:基于所述缩放系数、所述预设按摩轨迹、所述人体点云数据和所述第一模型点云数据,确定针对所述目标用户的目标按摩轨迹。
该步骤中,在得到所述缩放系数后,可以借助所述缩放系数,实现对由所述第一模型点云数据变换得到的所述第二模型点云数据和所述预设按摩轨迹的缩放,并通过缩放后的所述第二模型点云数据与所述人体点云数据之间的变换关系,将缩放后的轨迹变换至所述人体点云数据中,得到针对所述目标用户的目标按摩轨迹。
其中,在对所述预设按摩轨迹进行缩放的时候,可以是将所述预设按摩轨迹分散缩放,即通过对所述预设按摩轨迹中所包括的多个按摩点(对应人体和模型的穴位点等)的位置进行缩放变换,实现轨迹的变换。
具体的,请同时参阅图4,图4为本公开实施例的按摩轨迹生成方法中按摩轨迹的变换流程图。如图4中所示,通过所述缩放系数对所述预设按摩轨迹进行变换,可以通过以下步骤实现:
S1041:按照所述第一位姿信息,将所述预设按摩轨迹转换至所述第二模型点云数据中,得到与所述第二模型点云数据适配的第一中间按摩轨迹。
该步骤中,在对所述人体点云数据和所述第一模型点云数据进行配准的过程中,得到的所述第二模型点云数据是与所述人体点云数据基本重合的,因此,可以通过得到的所述第一位姿信息,对所述预设按摩轨迹进行转换,以将所述预设按摩轨迹转换至所述第二模型点云数据中,从而得到与所述第二模型点云数据适配的第一中间按摩轨迹,即可以认为所述第一中间按摩轨迹与所述人体点云数据的位姿是匹配的。
具体的,为了保证所述预设按摩轨迹在处理过程中的准确性,在转换的过程中,可以是先从所述第一点云数据中确定出与所述预设按摩轨迹中的每个按摩点相对应的3D点,并进行标记,然后从所述第二点云数据中找到与标记的3D点对应的3D点,从而拟合得到所述第一中间按摩轨迹。
S1042:按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹,所述目标用户的目标按摩轨迹适配于所述第三模型点云数据。
该步骤中,为了实现与所述人体点云数据的完全匹配,可以是先使用所述缩放系数,分别对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,甚至转换对齐等,得到对应的第三模型点云数据和目标按摩轨迹,这样,经过缩放得到所述第三模型点云数据,所代表的缩放后的所述人体模型,在尺寸、三维等数据上,基本上可以认为与所述目标用户的是相同,而目标按摩轨迹是同步缩放的,从参数上也可以认为基本是匹配的,所以所述目标用户的目标按摩轨迹不仅与所述目标用户的人体点云数据适配,与所述第三模型点云数据也是适配的。
在缩放时,可以是以所述第二模型点云数据和所述第一中间按摩轨迹对应的点云中心,例如中心点,为基准进行缩放。
具体的,在对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放时,可以将所述第二模型点云数据和所述第一中间按摩轨迹分别作为目标点集,在对所述目标点集进行缩放时,可以是先通过3D点的识别,获取所述目标点集的点集中心以及所述点集中心所处的初始位置,接着可以选取一个参考坐标系,如第二模型点云数据所处的变换后的模型坐标系、所述人体点云数据所处的人体坐标系或者所述目标场景的场景坐标系等,之后可以对所述目标点集进行点集坐标归一化处理,使所述点集中心移动至参考坐标系的原点,针对移动后的所述目标点集中的每个点,根据所述点在所述参考坐标系中的三维坐标(在三个方向上的三个分量),将所述点的坐标的三个分量分别乘以所述缩放系数,以进行点集缩放,得到所述点的新的坐标,最后,基于所述初始位置与所述原点之间的距离,对缩放后的所述目标点集进行平移,使所述点集中心回到所述初始位置,完成缩放。
具体的,对于所述第一中间按摩轨迹的缩放,缩放后的按摩轨迹是与缩放后得到的第三模型点云数据完全适配的,而所述第三模型点云数据是由所述第二模型点云数据缩放得到,所述第二模型点数据是经过数据配准以及变换的,并与所述人体点云数据基本重合,因此认为所述第三模型点云数据基本与所述人体点云数据一致,由所述第一中间按摩轨迹缩放后得到的按摩轨迹与所述人体点云数据基本适配,但是为了进一步减少缩放后的按摩轨迹与所述人体点云数据之间的偏差,使得最终得到的目标按摩轨迹与所述人体点云数据更加契合,更加适配于所述目标用户,因此,进一步的在缩放后还可以通过点云配准等方法,如ICP算法等,再对所述第三模型点云数据和所述人体点云数据进行数据配准处理,从而得到将所述第三模型点云数据变换至与所述人体点云数据重合的第四模型点云数据和第二位姿信息,其中,所述第二位姿信息为所述第四模型点云数据在所述目标场景中的位姿信息。
以ICP算法为例,由于ICP算法的计算结果对输入的初始值比较敏感,所以需要有准确的初始值,通过ICP算法对所述第三模型点云数据和所述人体点云数据进行数据配准,在进行点云配准过程中,可以获取到将所述第三模型变换至于所述人体点云数据重合的所述第四模型点云数据,以及变换过程中,产生的相对位移和相对旋转,再结合所述第三模型点云数据在所述目标场景中的位姿信息,即所述第一位姿信息,可以确定所述第二位姿信息,所述第二位姿信息,即所述第四模型点云数据在所述目标场景中的位姿信息。
接着,可以按照所述第二位姿信息对由所述第一中间按摩轨迹缩放得到的第二按摩轨迹进行转换,形成针对所述目标用户的目标按摩轨迹,所述目标用户的目标按摩轨迹适配于所述第四模型点云数据。
这里,在对所述第一中间按摩轨迹进行缩放处理的过程中,可以先对所述第一中间按摩轨迹进行单纯的缩放,从而可以得到单纯缩放,即放大或者缩小后对应的第二中间按摩轨迹,进一步在得到所述第二位姿信息后,可以通过所述第二位姿信息,对所述第二中间按摩轨迹进行变换,以得到变换至所述第四模型点云数据中的目标按摩轨迹,其即为针对所述目标用户可以使用进行按摩理疗的按摩轨迹。
其中,在对所述第二中间按摩轨迹进行变换时,为了保证所述第二中间按摩轨迹的信息准确性,可以是通过所述第二位姿信息,结合将所述第三模型点云数据中与所述第二中间按摩轨迹中的每个轨迹点对应的3D点,并进行标记,在数据配准得到所述第四模型点云数据中,可以从所述第四模型点云数据中筛选出配准后的、标记的3D点,从而拟合得到最终的目标按摩轨迹。
在一些可能的实施方式中,由于所述目标按摩轨迹是经过变换拟合的大的,在对点云进行变化得到按摩点时,尤其是在所述缩放系数大于1,即需要对预设按摩轨迹进行放大的话,会导致最终得到的所述目标按摩轨迹中相邻的两个按摩点的间隔变大,轨迹变的相对粗糙,按摩精度下降,因此,在得到所述目标按摩轨迹后,可以对所述目标按摩轨迹中的按摩点进行密度调整,以增加所述目标按摩轨迹中按摩点的数量,使得所述目标按摩轨迹更加精细,保证一定的按摩精度。
因此,在得到所述目标按摩轨迹后,可以针对所述目标按摩轨迹的多个轨迹点中每相邻两个轨迹点,在所述两个轨迹点之间插入至少一个插值轨迹点,然后对所述多个轨迹点和确定出的多个插值轨迹点进行拟合,得到轨迹密度调整后的目标按摩轨迹。
具体的,可以是先确定出所述目标按摩轨迹中的多个轨迹点,然后针对所述目标按摩轨迹中的每个轨迹点,确定用于生成所述轨迹点时使用的圆心点,接着针对所述多个圆心点中每相邻的两个圆心点,对所述两个圆心点进行插值处理,以在所述两个圆心点之间进行点的插入,从而得到所述两个圆心点之间的至少一个插值点,然后可以基于在所述多个圆心点中插入的多个插值点,采用生成预设按摩轨迹时的轨迹生成算法等方式,确定出与每个插值点对应的插值轨迹点,从而得到在两个轨迹点之间插入的至少一个插值轨迹点,然后对所述多个轨迹点和确定出的多个插值轨迹点进行拟合,即可得到轨迹集密度调整后的目标按摩轨迹。
其中,确定出的与所述多个轨迹点对应的多个圆心点位于同一直线上。
其中,在生成所述预设按摩轨迹时,是采用轨迹圆周的方式生成的,具体的,由于本实施方式中,所述预设按摩轨迹是一系列圆圈的组合,每一个圆圈贡献一个点,形成所述预设按摩轨迹,每一个圆圈的圆心依次排列在一条直线上,圆心等间距设置,因此,通过给定一段固定长度的线段,设置响应的点密度,即可插值得到多个圆心点,通过圆心点与按摩位置的角度、半径等因素,可以得到各按摩位置出的按摩点,从而生成对应的预设按摩轨迹,因此,在对目标按摩轨迹上轨迹点的密度进行调节时,可以借助生成轨迹点时的圆心点来增加,以保证各轨迹点和插值轨迹点的平滑。
本公开实施例提供的按摩轨迹生成方法,可以在保证预设按摩轨迹的有效性和准确性的情况下,进而通过点云数据多次转换和配准,得到缩放系数,对预设按摩轨迹进行缩放,以准确有效地得出与目标用户适配目标按摩轨迹,不仅可以保证针对不同用户实现按摩轨迹的对应调整,达到自适应调整按摩轨迹的目的,还可以提高按摩位置和按摩穴位的准确性和稳定性,有利于提高按摩理疗的实际效果,提升用户体验。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与按摩轨迹生成方法对应的按摩轨迹生成装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述按摩轨迹生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图5和图6,图5为本公开实施例提供的一种按摩轨迹生成装置的示意图之一,图6为本公开实施例提供的一种按摩轨迹生成装置的示意图之二。本公开实施例提供的按摩轨迹生成装置,可以是如按摩仪、按摩机器人等按摩装置的一部分,如作为按摩装置的某个部件存在,也可以是与按摩装置分开,单独存在的,其可以通过与按摩装置通信连接以实现生成轨迹的辅助功能。如图5中所示,本公开实施例提供的按摩轨迹生成装置500,包括:
数据获取模块510,用于获取目标用户在目标场景中的人体点云数据,以及人体模型的第一模型点云数据和针对所述人体模型上预设模型部位的预设按摩轨迹;
部位点确定模块520,用于基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点;
缩放系数确定模块530,用于基于所述多个人体部位点和所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述人体模型相对于所述目标用户的人体缩放系数;
按摩轨迹确定模块540,用于基于所述缩放系数、所述预设按摩轨迹、所述人体点云数据和所述第一模型点云数据,确定针对所述目标用户的目标按摩轨迹。
一种可选的实施方式中,所述部位点确定模块520具体用于:
对所述第一模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第一模型点云数据变换至与所述人体点云数据重合的第二模型点云数据和所述第二模型点云数据的第一位姿信息;
基于所述人体点云数据和所述第一位姿信息,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点。
一种可选的实施方式中,所述部位点确定模块520在用于基于所述人体点云数据和所述第一模型点云数据,确定所述人体点云数据中与所述预设按摩部位对应的多个人体部位点时,具体用于:
基于所述第一位姿信息,将所述人体点云数据变换至所述人体模型的模型坐标系下,得到变换人体点云数据;
基于所述预设模型部位在所述模型坐标系下的坐标范围,确定所述变换人体点云数据中位于所述坐标范围内的多个人体部位点。
一种可选的实施方式中,所述缩放系数确定模块530具体用于:
基于所述多个人体部位点,确定所述目标用户对应的人体部位的人体部位参数;
基于所述第一模型点云数据中与所述预设模型部位对应的多个模型部位点,确定所述预设模型部位的模型部位参数;
基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数。
一种可选的实施方式中,所述按摩轨迹确定模块540具体用于:
按照所述第一位姿信息,将所述预设按摩轨迹转换至所述第二模型点云数据中,得到与所述第二模型点云数据适配的第一中间按摩轨迹;
按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹;
所述目标用户的目标按摩轨迹适配于所述第三模型点云数据。
一种可选的实施方式中,将所述第二模型点云数据和所述第一中间按摩轨迹分别作为目标点集,所述按摩轨迹确定模块540在用于按照所述缩放系数,对所述第二模型点云数据和所述第一中间按摩轨迹进行缩放处理,得到所述第二模型点云数据缩放后对应的第三模型点云数据,以及所述目标用户的目标按摩轨迹时,具体用于:
获得所述目标点集的点集中心以及所述点集中心所处的初始位置;
对所述目标点集进行点集坐标归一化处理,使所述点集中心移动至参考坐标系的原点;
针对移动后的所述目标点集中的每个点,将所述点的坐标的三个分量分别乘以所述缩放系数,以进行点集缩放;
基于所述初始位置与所述原点之间的距离,对缩放后的所述目标点集进行平移,使所述点集中心回到所述初始位置,完成缩放。
一种可选的实施方式中,所述按摩轨迹确定模块540在用于得到所述目标用户的所述目标按摩轨迹时,具体用于:
对所述第三模型点云数据和所述人体点云数据进行数据配准处理,得到将所述第三模型点云数据变换至与所述人体点云数据重合的第四模型点云数据和第二位姿信息;
按照所述第二位姿信息对由所述第一中间按摩轨迹缩放得到的第二按摩轨迹进行转换,形成针对所述目标用户的目标按摩轨迹;
所述目标用户的目标按摩轨迹适配于所述第四模型点云数据。
一种可选的实施方式中,所述预设模型部位和对应的所述人体部位为肩颈部位,所述模型部位参数至少包括根据所述多个模型部位点识别出的模型颈部的第一直径、第一颈部中轴线在所述模型坐标系下的第一方向向量和所述第一颈部中轴线上第一颈部点的第一坐标,所述人体部位参数至少包括根据所述多个人体部位点识别出的人体颈部的第二直径、第二颈部中轴线在所述模型坐标系下的第二方向向量和所述第二颈部中轴线上第二颈部点的第二坐标。
一种可选的实施方式中,所述缩放系数确定模块530在用于基于所述人体部位参数和所述模型部位参数,计算所述人体模型相对于所述目标用户的人体缩放系数时,具体用于:
基于所述第一方向向量、所述第一坐标、所述第二方向向量和所述第二坐标,对所述模型颈部和所述人体颈部进行对齐处理;
在所述模型颈部和所述人体颈部对齐后,通过所述第一直径和所述第二直径,计算所述人体模型相对于所述目标用户的人体缩放系数。
一种可选的实施方式中,如图6中所示,所述按摩轨迹生成装置500还包括轨迹点调整模块550,所述轨迹点调整模块550用于:
针对所述目标按摩轨迹的多个轨迹点中每相邻两个轨迹点,在所述两个轨迹点之间插入至少一个插值轨迹点;
对所述多个轨迹点和确定出的多个插值轨迹点进行拟合,得到轨迹密度调整后的目标按摩轨迹。
本公开实施例提供的按摩轨迹生成装置,可以在保证预设按摩轨迹的有效性和准确性的情况下,进而通过点云数据多次转换和配准,得到缩放系数,对预设按摩轨迹进行缩放,以准确有效地得出与目标用户适配目标按摩轨迹,不仅可以保证针对不同用户实现按摩轨迹的对应调整,达到自适应调整按摩轨迹的目的,还可以提高按摩位置和按摩穴位的准确性和稳定性,有利于提高按摩理疗的实际效果,提升用户体验。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图1中的按摩轨迹生成方法,本公开实施例还提供了一种计算机设备700,如图7所示,为本公开实施例提供的计算机设备700结构示意图,包括:处理器710、存储器720、和总线730。所述存储器720存储有所述处理器710可执行的机器可读指令,当计算机设备700运行时,所述处理器710与所述存储器720之间通过总线730通信,所述机器可读指令被所述处理器710执行时能够执行前述的按摩轨迹生成方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的按摩轨迹生成方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的按摩轨迹生成方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。