本发明涉及数据分析技术领域,尤其涉及一种体型预测方法及设备。
背景技术:
现如今,人们越来越关注自己的身体健康状态,尤其是自己的体型。但是现在人们只可以通过一些健康指标采集设备(例如体脂称)来获取自己当前的一些身体健康指标(例如体重或者身高等)而让人们可以方便获知自己的当前健康状态(例如体重是否增加或者身高是否增加等),并不能获取用户的体型图像数据。而且现有的这些身体健康指标采集设备只有简单的数据采集记录的功能或者是只能根据采集到的数据对个人目前的健康状态进行简单评估,而不能对未来的体型状态进行预测。因此现有的身体健康指标采集设备与测量方法不能让用户提前预知自己未来的体型状态,从而让用户很难根据实际情况调整健身保养计划,进而影响了用户的体验。
技术实现要素:
针对上述问题,本发明的目的在于提供一种能够预测体型且具有良好用户体验的体型预测方法及设备。
为了实现上述目的,本发明一方面提供了一种体型预测方法,其包括以下步骤:获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图;对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线;计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率;根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率;根据预测得到的每个采样点的曲率得到预测的轮廓图。
进一步地,所述步骤“对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线”具体为:在当前时刻的所述轮廓图中建立二维坐标系;按照预定的像素间距对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并将获取到的采样点以坐标的形式进行保存;根据预设的拟合算法对每一个采样点所对应的坐标进行曲线拟合,以获取当前时刻的所述轮廓曲线。
进一步地,所述步骤“根据预测得到的每个采样点的曲率得到预测的轮廓图”具体为:在每一个采样点绘制具有与所述采样点对应的曲率的切线,以获取相邻的两个所述采样点的切线的交点;依次连接所述交点,以形成所述预测的轮廓图。
进一步地,所述体型预测方法还包括:当判断当前时刻的信息量大于预设的阈值时,根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;其中,所述信息量包括保存在预设的轮廓图库中的轮廓图的数量以及同一个采样点在当前时刻所对应的曲率与当前时刻之前的预定时刻阶段内的某一个对应的曲率的两者之间的差异值。
进一步地,所述体型预测还包括:获取并保存当前时刻采集到的用户的身体指数数据;其中,所述身体指数数据具体为用户的身体指数的指数数据,所述身体指数至少包括以下其中之一:体重指数、身体质量指数、体脂率指数以及肌肉密度指数;根据同一个身体指数在当前时刻以及当前时刻之前的预定时刻阶段内所对应的指数数据,获取相应的身体指数函数;根据所述身体指数函数预测用户在预定的未来时间的身体指数数据。
进一步地,在所述步骤“根据所述身体指数函数预测用户在预定的未来时间的身体指数数据”之后还包括:根据预设的数据训练模型将当前时刻的所述身体指数数据与当前时刻的所述轮廓图建立映射关系,并保存所述映射关系;其中,所述预设的数据训练模型包括若干组一一对应的预设的轮廓图和预设的身体指数数据;获取所述预测的轮廓图以及获取与当前时刻的所述身体指数数据具有映射关系的当前时刻的所述轮廓图;根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图。
进一步地,所述步骤“根据预测得到的每个采样点的曲率得到预测的轮廓图”之后还包括:根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图。
进一步地,所述步骤“根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图”具体为:获取所述预测的轮廓图和当前时刻的所述当前轮廓图;其中,所述当前轮廓图包括当前轮廓曲线与当前参照点,所述当前轮廓曲线是由预设的边缘检测算法对当前时刻的所述标准姿态图进行分析得出的,所述当前参照点是由预设的图像算法对当前时刻的所述标准姿态图进行分析得出的;所述预测的轮廓图包括预测轮廓曲线与预测参照点,所述预测轮廓曲线是根据预测得到的每个采样点的曲率而得到的,所述预测参照点是根据所述当前参照点得到的;获取所述当前参照点与所述预测参照点,并将所述当前参照点与所述预测参照点重合,以使得当前时刻的所述轮廓图与所述预测的轮廓图重叠;获取所述当前轮廓曲线与所述预测轮廓曲线的重合区域与非重合区域,将所述重合区域渲染为预设的颜色,并判断所述重合区域是否位于所述预测轮廓曲线围成的闭合区域中;若是则将所述非重合区域渲染为所述预设的颜色;若否则将所述非重合区域渲染为图像背景色。
本发明另外一方面还提供了一种体型预设设备,其包括:轮廓图获取模块,用于获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图;轮廓曲线获取模块,用于对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线;曲率计算模块,用于计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率;曲率函数获取模块,用于根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;曲率预测模块,用于根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率;轮廓图预测模块,用于根据预测得到的每个采样点的曲率得到预测的轮廓图。
进一步地,所述轮廓曲线获取模块包括:坐标建立单元,用于在当前时刻的所述轮廓图中建立二维坐标系;采样单元,用于按照预定的像素间距对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并将获取到的采样点以坐标的形式进行保存;拟合单元,用于根据预设的拟合算法对每一个采样点所对应的坐标进行曲线拟合,以获取当前时刻的所述轮廓曲线。
本发明提供的所述体型预测方法及所述体型预测设备,通过获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图;并且对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线;接着计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率;然后根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;再然后根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率;最后根据预测得到的每个采样点的曲率得到预测的轮廓图,从而实现用户的体型预测的过程。因此本发明能够预测出用户的体型,从而可以让用户根据自己的预测体型调整自己的健身计划,所以本发明具有良好的用户体验。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种体型预测方法流程图;
图2是本发明实施例提供的一种体型预测设备的结构示意图;
图3是图2提供的轮廓曲线获取模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,本发明一方面提供了一种体型预测方法,其包括步骤S10至步骤S15:
S10,获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图。
其中,所述标准姿态图指的是摄像头对用户在标准姿态状态下所拍摄出来的图像。例如,如果是全身拍摄,则所述标准姿态状态可以为:用户赤足、双腿伸直站立,两腿跨度与肩部同宽,两手臂微抬与体侧呈45度角;其中,男士穿短裤,女士穿运动短裤和运动短上衣,且男士与女士均需露出全部面部、手臂、腿部、腰腹部区域。以便所述摄像头对所述预定的部位进行图像采集。此外,在所述摄像头进行图像采集的过程中,用户的正面面对全身高的体型预测设备(例如镜面显示设备)以及所述体型预测设备的高清摄像头。
需要说明的是,所述用户的预定部位在本发明实施例中优选为用户的全身,当然还可以为用户的手部,面部或者腿部等,在此不做具体限定。
此外,所述标准姿态应只要能全面展示预定部位的形态特征且用户能方便做出该动作即可(方便用户进行重复动作),本发明不做具体限定。
需要说明的是,当前时刻的所述轮廓图是根据预设的边缘检测算法对当前时刻的所述标准姿态图进行图像轮廓边缘检测而得出的。优选地,所述预设的边缘检测算法为Canny算法。此外,所述预设的边缘检测算法还可以为Roberts算法、Prewitt算法、Sobel算法或者Log算法等,在此不做具体限定。此外,优选地,所述标准姿态图为用户的预定部位的身体轮廓曲线(还可以包括用户的预定部位的参照点)所构成的一个闭合区域而形成的一幅图像,所述身体轮廓曲线(或者所述瞳孔中心点)与所述当前身体轮廓图中的背景区域的颜色是不相同的,例如所述身体轮廓曲线可以为黑色,所述背景区域为白色或者所述身体轮廓曲线可以为红色,所述背景区域为黄色等。
S11,对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线。
其中,优选地,步骤S11具体包括步骤S110至步骤S112:
S110,在当前时刻的所述轮廓图中建立二维坐标系。
在这里,以用户的正面全身的当前时刻的所述轮廓图举例说明:请参见图,将所述轮廓图中的两脚的底部的同一切线作为X轴(以两脚底部的同一切线作为X轴是因为人体的体型在发生变化的过程中,人体的两脚的底部所在的平面是几乎不发生变化的),以两脚的底部所构成的线段的中线作为Y轴(以两脚的底部所构成的线段的中线作为Y轴是因为人的身体相对于该中线几乎对称),以此建立当前时刻的所述轮廓图的二维坐标系。又例如当所述轮廓图为用户的头部轮廓图时,可以以用户的两个瞳孔中心点的连线作为基准线,然后作一条平行于所述基准线的且与头部的底部相切的第一切线,将所述第一切线作为X轴,再然后作一条垂直于该X轴且与头部的侧边相切的第二切线,并将所述第二切线作为Y轴,从而建立头部的二维坐标系。需要说明的是,所述头部轮廓图的瞳孔中心点是由预设的图像算法对摄像头拍摄出来的头部图像进行分析而获取出来的,例如所述头部轮廓图的瞳孔中心点可以通过开源计算机视觉库(Open Source Computer Vision Library,OpenCV)中的FaceDetector控件来获取,即对所述头部图像调用FaceDetector控件时,FaceDetector控件会自动定位所述头部图像中的两个瞳孔中心像素,该两个瞳孔中心像素即为所述头部轮廓图中的两个所述瞳孔中心点。
当所述轮廓图为用户其他身体部位的轮廓图时,建立二维坐标系的过程可以参考上述两个例子,在此不再赘述。
S111,按照预定的像素间距对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并将获取到的采样点以坐标的形式进行保存。
即,以所述轮廓图中的某一行(或某一列)的像素中的某一个像素(例如所述轮廓图中的最左边或者最下边的像素)为起始采样点,然后对该行(或该列)的像素逐一进行采样,直到将该行(或该列)中的所有像素点采样完毕,将该行(或该列)中获取到的轮廓图中的轮廓曲线的像素以坐标的形式按照采样时间的先后顺序保存在预设的采样点点阵中。接着以该行(或该列)为基准按照预定的像素间距(例如一个像素或者两个像素等)获取所述轮廓图中下一行(或下一列)的像素,按照相同的采样顺序对该行(或该列)中的像素进行逐一采样,将该行(或该列)中获取到的轮廓图中的轮廓曲线的像素以坐标的形式按照采样时间的先后顺序保存在所述预设的采样点点阵中。以此类推,可以获取出所述轮廓图中的轮廓曲线的相应的采样点。其中,每一个获取到的轮廓图都有一个与其唯一对应的预设的采样点点阵。
在此,以上述的已经建立二维坐标系的用户的正面全身的轮廓图举一个例子:将所述正面全身轮廓图的y坐标设为0,而x坐标由所述正面全身轮廓图的左边缘向所述正面全身轮廓图的右边缘逐个像素点(即坐标点)递增(即由x轴负方向向x轴正方向递增),直到将所述当前身体轮廓图的左边缘与右边缘的之间的y坐标为0的所有像素点逐一检索完,并依次将检索到轮廓像素的采样点以坐标的形式进行表示,例如P01(x1,0),P02(x2,0),P03(x3,0),P04(x4,0)等;然后对所述当前身体轮廓图的左边缘与右边缘的之间的Y轴的坐标为1的所有轮廓像素点进行检索,并依次将检索到轮廓像素的采样点以坐标的形式进行表示,例如P11(x1,1),P12(x2,1),P13(x3,1),P14(x4,1)等;依次将y的坐标以1的增量递增,直到当在所述当前身体轮廓图的左边缘与右边缘的之间没有检索到轮廓像素点时,停止检索与采样,最终将所述当前时刻的正面全身轮廓图得到的所有的采样点以坐标的形式依次存放在预设的采样点点阵中。可以理解的是,用户的其他身体部位的轮廓图的边界采样与所述正面全身轮廓图的边界采样的过程相同,在此不再赘述。
S112,根据预设的拟合算法对每一个采样点所对应的坐标进行曲线拟合,以获取当前时刻的所述轮廓曲线。
将得到的每一个所述预设的采样点点阵中的所述采样点利用拟合函数进行拟合,即,通过将要拟合的所有所述采样点的坐标数据(x,y)全部导入到拟合函数polyfit中,可以得到当前时刻的所述轮廓图的轮廓曲线函数:y=f(x),该轮廓曲线函数即代表该轮廓图的轮廓曲线。其中,每一个所述轮廓曲线与每一个所述预设的采样点点阵对应,即,每一个所述轮廓曲线与该预定部位的每一张轮廓图对应。
S12,计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率。
当当前时刻的所述轮廓图获取到相应的轮廓曲线时,计算与当前时刻的所述轮廓图对应的所述预设的采样点点阵中的每一个采样点在当前时刻的所述轮廓曲线上的曲率。其中,所述预设的采样点点阵中的每一个采样点的曲率的获取过程为:
首先将当前时刻的所述轮廓曲线的函数转换成相应的参数方程形式:即将y=f(x)转换成其中,x,y分别代表每一个所述轮廓曲线的函数的x、y坐标。然后根据以下公式求出所述预设的采样点点阵中的每一个采样点P(x,y)的在所述轮廓曲线上的曲率:
将获取到的与每一个采样点的对应的所述曲率按照每一个采样点在所述预设的采样点点阵中的保存时间的先后顺序(即采样点的采样时间的先后顺序)存储在预设的曲率数据库中。其中,每一个所述轮廓图的所述预设的采样点点阵与所述预设的曲率数据库一一对应。其中,在当前时刻的所述轮廓图之前的轮廓图的相应采样点所对应的曲率也是按照采样时间的先后顺序保存在所述预设的曲率数据库中的。
S13,根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数。
即获取所述预设的曲率数据库中的同一个所述采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率。在此,以上述的采样点P01(x1,y1)为例,通过统计获得采样点P01在所述预设的曲率数据库中的保存时间在t1~tn时间段内的所对应的曲率,获得采样点P01的相应的曲率数据库Ktn=[Kt1,Kt2……,Ktn],将采样点P01的曲率数据库放入相应的曲线拟合工具中,选择平滑曲线进行拟合,获得采样点P01在保存时间范围内用于表示其所对应的曲率变化情况的曲率函数表达式K=f(t)。依次类推,可以获取出每一个所述采样点点阵中的每一个采样点的所对应的曲率函数。
S14,根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率。
即,通过将每一个采样点点阵中的同一个采样点的预定的未来时刻输入到对应的曲率函数中,即可获取出该采样点在预定的未来时刻的预测的曲率。以此类推,可获取出每一个采样点点阵中的每一个采样点的预测的曲率。
S15,根据预测得到的每个采样点的曲率得到预测的轮廓图。
优选地,步骤S15具体包括步骤S150至步骤S151:
S150,在每一个采样点绘制具有与所述采样点对应的曲率的切线,以获取相邻的两个所述采样点的切线的交点。
根据所述当前身体轮廓图中的每一个采样点所对应的预测的曲率,在所述当前身体轮廓图中的每一个所述采样点绘制具有相应曲率的切线,这样可以获取相邻的两个所述采样点的切线的交点。
S151,依次连接所述交点,以形成所述预测的轮廓图。
以平滑曲线的方式依次连接相邻的两个交点以形成所述预测的轮廓图。需要说明的是,获取到的所述预测的轮廓图可以通过相关设备(例如全身高的镜面显示设备)的显示屏进行显示。
在本发明实施例中,通过获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图;并且对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线;接着计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率;然后根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;再然后根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率;最后根据预测得到的每个采样点的曲率得到预测的轮廓图,从而实现用户的体型预测的过程。因此本发明能够预测出用户的体型,从而可以让用户根据自己的预测体型调整自己的健身计划,所以本发明具有良好的用户体验。
为了便于对本发明实施例的理解,在此提供本发明实施例的一些优选实施例:
第一种优选实施例:
所述体型预测方法还包括:
S16,当判断当前时刻的信息量大于预设的阈值时,根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;其中,所述信息量包括保存在预设的轮廓图库中的轮廓图的数量以及同一个采样点在当前时刻所对应的曲率与当前时刻之前的预定时刻阶段内的某一个对应的曲率的两者之间的差异值。
例如,当所述预设的身体轮廓图库中的身体轮廓图的数量大于10张时,这时才根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;或者是当检测出同一个采样点在当前时刻所对应的曲率与当前时刻之前的预定时刻阶段内的某一个对应的曲率的两者之间的差异值大于百分之十时,这时才就根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数。其中,所述像素采样点的曲率的获取过程具体请参考上述的步骤S120与步骤S121,在此不再赘述。需要说明的是,因为如果现有的相应的信息量达不到预设的阈值时,表明如下两种情况的其中一种:1、表明现有获取过的轮廓图的数量偏少,这样会得不到相对准确的所述曲率函数,因此当获取到的轮廓图的数量大于预定的阈值时才开始计算采样点的曲率函数,可以获取到更加准确的曲率函数,从而根据更加准确的曲率函数可以获取到更加准确的预测的轮廓图;2、或者是表明现有的身体轮廓图相对于以前获取的轮廓图的同一个采样点的曲率的变化幅度不大,即说明用户的体型的变化幅度不大,因此就无需再进行曲率函数的计算,而是直接显示出当前时刻的所述轮廓图,这样可以减少不必要的程序运行和数据运算,从而提高了相应的体型预测设备的CPU的工作效率。
在本优选实施例中,通过当判断出当前时刻的信息量大于预设的阈值时,才根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,并得到每个采样点的曲率函数,这样可以获取出更加准确的曲率函数或者是提高CPU的工作效率。
第二种优选实施例:
所述体型预测方法还包括:
S17,获取并保存当前时刻采集到的用户的身体指数数据;其中,所述身体指数数据具体为用户的身体指数的指数数据,所述身体指数至少包括以下其中之一:体重指数、身体质量指数、体脂率指数以及肌肉密度指数。
其中,所述身体指数数据由相应的身体检测设备来获取的,例如体重指数数据、体脂率指数数据以及肌肉密度指数数据由体脂称来获取。需要说明的是,所述身体指数数据还可以包括其他类型的身体指数数据,例如蛋白质指数(由蛋白质测量仪来获取)或者皮肤水分指数(由水分传感器测量得到)等,在此不做具体限定。
S18,根据同一个身体指数在当前时刻以及当前时刻之前的预定时刻阶段内所对应的指数数据,获取相应的身体指数函数。
例如根据体重指数在当前时刻以及当前时刻之前的预定时刻阶段内所对应的指数数据,获取相应的体重指数函数。同理,所述身体指数的其他指数获取相应的身体指数函数的过程与体重指数获取体重指数函数相同,在此不再赘述。
S19,根据所述身体指数函数预测用户在预定的未来时间的身体指数数据。
即将未来的某一时刻输入到相应的所述身体指数函数中,就可以获取出未来某一时刻的相应的身体指数数据;例如,将未来的某一时刻输入到所述体重指数函数中,可以获取出相应的未来时间的体重指数数据。需要说明的是,当获取出预定的未来时间的身体指数数据时,这是可以将预定的未来时间的身体指数数据在相应的体型预设设备的显示屏上进行显示。
在本优选实施例中,通过获取并保存当前时刻采集到的用户的身体指数数据,并根据同一个身体指数在当前时刻以及当前时刻之前的预定时刻阶段内所对应的指数数据,获取相应的身体指数函数,最后根据所述身体指数函数预测用户在预定的未来时间的身体指数数据,从而实现用户的相应的身体指数的预测过程。因此本优选实施例能够预测出用户的未来时间的身体指数,从而可以让用户根据自己的未来时间的身体指数调整自己的健身计划,进而进一步提高用户的使用体验。
第三种优选实施例:
在所述步骤“根据所述身体指数函数预测用户在预定的未来时间的身体指数数据”之后还包括:
S20,根据预设的数据训练模型将当前时刻的所述身体指数数据与当前时刻的所述轮廓图建立映射关系,并保存所述映射关系;其中,所述预设的数据训练模型包括若干组一一对应的预设的轮廓图和预设的身体指数数据。
根据预设的数据训练模型将当前时刻的所述身体指数数据与当前时刻的所述轮廓图建立映射关系的具体过程为:将获取到的当前时刻所述轮廓图与获取到的当前时刻所述身体指数数据放到所述预设的数据训练模型中进行遍历对比,找到一组匹配的Map<Key,Image>,以此代表所述当前身体轮廓图和所述当前身体指数数据的映射关系。其中,Map<Key,Image>中的Key代表的是一组预设的身体指数数据(即包括体重指数数据、体脂率指数数据以及身体质量指数数据等),Image代表的是一张预设的轮廓图。这样,通过输入所述当前身体指数数据就可以获取出与所述当前身体指数数据对应的所述当前身体轮廓图,或者是输入所述当前身体轮廓图就可以获取出与所述当前身体轮廓图对应的所述当前身体指数数据。需要说明的是,所述数据训练模型是通过预先的大量取样而获得的,所述数据训练模型包含各个年龄段、不同性别、不同身高、不同体重、不同人种用户的身体标准姿态状态下的预设的轮廓图和与所述预设的轮廓图对应的预设的身体指数数据,其中,训练模型中每一组所述预设的身体指数数据对应一张所述所述预设的轮廓图。
S21,获取所述预测的轮廓图以及获取与当前时刻的所述身体指数数据具有映射关系的当前时刻的所述轮廓图。
即,在获取所述预测的轮廓图的同时通过在所述预设的数据训练模型中输入当前时刻的所述身体指数数据可以获取与当前时刻的所述身体指数数据具有映射关系的当前时刻的所述轮廓图。
S22,根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图。
其中,优选地,所述步骤“根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图”具体为步骤S220至步骤S224:
S220,获取所述预测的轮廓图和当前时刻的所述当前轮廓图;其中,所述当前轮廓图包括当前轮廓曲线与当前参照点,所述当前轮廓曲线是由预设的边缘检测算法对当前时刻的所述标准姿态图进行分析得出的,所述当前参照点是由预设的图像算法对当前时刻的所述标准姿态图进行分析得出的;所述预测的轮廓图包括预测轮廓曲线与预测参照点,所述预测轮廓曲线是根据根据预测得到的每个采样点的曲率而得到的,所述预测参照点是根据所述当前参照点得到的。
优选地,所述预设的边缘检测算法为Canny算法。此外,所述预设的边缘检测算法还可以为Roberts算法、Prewitt算法、Sobel算法或者Log算法等,在此不做具体限定。根据预测得到的每个采样点的曲率而得到的所述预测轮廓曲线的过程请参考上述的步骤S150至步骤S151,在此不再赘述。需要说明的是,所述当前参照点(当轮廓图为所述正面全身轮廓图时,所述参照点优选为上述的瞳孔中心点)可以通过上述的FaceDetector控件来获取。
S221,获取所述当前参照点与所述预测参照点,并将所述当前参照点与所述预测参照点重合,以使得当前时刻的所述轮廓图与所述预测的轮廓图重叠。
S222,获取所述当前轮廓曲线与所述预测轮廓曲线的重合区域与非重合区域,将所述重合区域渲染为预设的颜色,并判断所述重合区域是否位于所述预测轮廓曲线围成的闭合区域中。
S223,若是则将所述非重合区域渲染为所述预设的颜色。
S224,若否则将所述非重合区域渲染为图像背景色。
其中,当所述当前轮廓曲线与所述预测轮廓曲线之间的所述非重合区域位于所述预测轮廓曲线围成的闭合区域中,表明用户未来的体型相对于现有的体型在变大(例如变胖);而当所述当前轮廓曲线与所述预测轮廓曲线之间的所述非重合区域位于所述当前轮廓曲线围成的闭合区域中,表明用户的体型在变小(例如变瘦)。
优选地,渲染的具体过程为:当所述非重合区域位于所述预测轮廓曲线围成的闭合区域中时,以所述当前轮廓曲线最靠近由所述非重合区域与重合区域的轮廓曲线的像素点P(x,y)为例,获取像素点P的灰度值,将所述灰度值乘以70%得到新的灰度值,将新的灰度值赋值给像素点P临近的1~3个重合区域像素或者非重合区域像素,以此类推,直至所述重合区域的所有像素点和所述非重合区域的所有像素点都获得新的灰度值,最终实现所述重合区域与所述非重合区域的渲染。当所述非重合区域位于所述当前轮廓曲线围成的闭合区域中时,将所述非重合区域的像素调整为图像(例如当前时刻的所述轮廓图)背景色(例如图像背景色是纯白,就将所述非重合区域的像素调整为白色,从效果上看是把当前时刻的所述轮廓图中的超出所述预测的轮廓图的部分抹除)。
在本优选实施例中,通过根据预设的数据训练模型将当前时刻的所述身体指数数据与当前时刻的所述轮廓图建立映射关系,然后获取所述预测的轮廓图以及获取与当前时刻的所述身体指数数据具有映射关系的当前时刻的所述轮廓图,最后根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图(即经过渲染的轮廓图)。因此本优选实例可以实现对用户体型的预测,从而可以让用户根据自己的预测体型调整自己的健身计划,所以本发明具有良好的用户体验。
第四种优选实施例:
在所述步骤“根据预测得到的每个采样点的曲率得到预测的轮廓图”之后还包括:
S22,根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图。
其中,优选地,所述步骤“根据获取到的当前时刻所述轮廓图与所述预测的轮廓图获取最终的预测的轮廓图”具体为上述步骤的步骤S220至步骤S222,具体请参考上述内容,在此不再赘述。
在本优选实施例中,通过所述当前身体轮廓图与当前时刻获取到的所述预测的身体轮廓图得出最终的预测的身体轮廓图(即经过渲染的轮廓图)。因此本优选实例可以实现对用户体型的预测,从而可以让用户根据自己的预测体型调整自己的健身计划,所以本发明具有良好的用户体验。
请参见图2,本发明另外一方面还提供了一种体型预测设备,其包括:轮廓图获取模块10,用于获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图;轮廓曲线获取模块11,用于对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线;曲率计算模块12,用于计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率;曲率函数获取模块13,用于根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;曲率预测模块14,用于根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率;轮廓图预测模块15,用于根据预测得到的每个采样点的曲率得到预测的轮廓图。
优选地,请参见图3,所述轮廓曲线获取模块11包括:坐标建立单元110,用于在当前时刻的所述轮廓图中建立二维坐标系;采样单元111,用于按照预定的像素间距对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并将获取到的采样点以坐标的形式进行保存;拟合单元112,用于根据预设的拟合算法对每一个采样点所对应的坐标进行曲线拟合,以获取当前时刻的所述轮廓曲线。
在本发明实施例中,通过所述轮廓图获取模块10获取当前时刻采集到的用户的预定部位的标准姿态图,并根据当前时刻的所述标准姿态图获取对应的当前时刻的轮廓图;并且通过所述轮廓曲线获取模块11对当前时刻的所述轮廓图进行边界采样,以获取相应的采样点,并根据获取的所有采样点拟合得到当前时刻的轮廓曲线;接着通过所述曲率计算模块12计算并保存每个所述采样点在当前时刻的所述轮廓曲线上的曲率;然后通过所述曲率函数获取模块13根据同一个采样点在当前时刻以及当前时刻之前的预定时刻阶段内所对应的曲率,得到每个采样点的曲率函数;再然后通过所述曲率预测模块14根据每个采样点所对应的曲率函数预测每个采样点在预定的未来时刻的曲率;最后通过所述轮廓图预测模块15根据预测得到的每个采样点的曲率得到预测的轮廓图,从而实现用户的体型预测的过程。因此本发明能够预测出用户的体型,从而可以让用户根据自己的预测体型调整自己的健身计划,所以本发明具有良好的用户体验。
以上所揭露的仅为本发明一些较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。