一种人体身高信息获取方法以及采用该方法的试衣柜系统与流程

文档序号:12022672阅读:261来源:国知局
一种人体身高信息获取方法以及采用该方法的试衣柜系统与流程

本发明涉及服装服务领域,尤其涉及一种人体身高信息获取方法以及采用该方法的试衣柜系统。



背景技术:

很长一段时间里人们在定制衣服的时候,需要人工获取人体各部分尺码。如果在定制店里,这种靠人工来获取人体尺寸信息的手段就会加大人力成本、耗时,而且测量尺寸不统一。为了解决以上问题,试衣柜系统应运而生。试衣柜系统可以自动弹出人体相应尺码的衣服供客户试穿,省去了人工量体裁衣与客户身体接触的尴尬,减少了人力成本,使定制衣服走向统一化、智能化。在该系统中,需要通过人体身高、肩宽、腰围、臀围等尺寸信息自动选择衣服尺码并弹开柜门,其中肩宽、腰围、臀围等尺寸信息尺寸可以通过3d传感器(其中含有图像传感器)就可以全部获得,但是受到头发及饰物遮挡的影响,图像传感器难以获取人体头顶位置信息,使得人体身高信息难以获取。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种人体身高信息获取方法以及采用该方法的试衣柜系统。

本发明解决其技术问题所采用的技术方案是:构造一种人体身高信息获取方法,用于对图像采集模块采集到的图像进行分析获取人体身高信息,该图像中的人体脚跟处设置有一具有多个标志点的标杆,所述方法包括:

s1、根据样本数据建立人体头部弧顶位置与脸部特征之间的神经网络模型,该神经网络模型的输入变量为人体脸部特征,输出变量为人体头部弧顶位置;

s2、根据图像中的多个标志点确定每个像素与物理高度之间的映射关系;

s3、基于所述神经网络模型确定图像中的人体头部弧顶位置;

s4、确定人体头部弧顶位置与一个选定的标志点之间的像素距离,并根据步骤s2中得到的映射关系以及选定的标志点的物理高度,计算人体头部弧顶位置所对应的物理高度。

在本发明所述的人体身高信息获取方法中,所述人体脸部特征包括多个特征点;

所述步骤s3包括:

s31、基于人脸检测算法对图像中进行人脸检测,获取人脸的位置;

s32、基于人脸特征点定位算法提取出人脸的特征点,将各特征点的位置输入神经网络模型,得到的输出作为人体头部弧顶位置的坐标。

在本发明所述的人体身高信息获取方法中,所述步骤s2包括:确定图像中的两个标志点之间的像素距离pd,根据标杆上的该两个标志点之间已知的物理高度sd,计算得到每个像素与物理高度之间的映射关系为:每个像素的物理高度s=sd/pd。

在本发明所述的人体身高信息获取方法中,如果人体头部弧顶位置的高度方向上的像素坐标为v,选定的标志点的高度方向上的像素坐标为vs;

所述步骤s4包括:

s41、确定人体头部弧顶位置与选定的标志点之间的像素距离为|vs-v|;

s42、基于以下公式计算得到人体头部弧顶位置所对应的物理高度:

h=(v-vs)×s+l

其中,s表示每个像素的物理高度,l表示选定的标志点的物理高度。

在本发明所述的人体身高信息获取方法中,所述步骤s1包括:

s11、选择作为输入的特征点,以人体头部弧顶位置作为输出;

s12、确定激活函数f(x)=ln(1+ex),则建立的神经网络模型为:

其中,a(3)表示输出,x表示输入,n表示特征点的个数,表示为第l层第i单元输入加权和,表示为第l层第j单元与第l+1层第i单元之间的联接参数,为第l+1层第i单元的偏置项,组成的行向量,b(l)组成的列向量;

s13、利用样本数据对该神经网络模型进行训练,确定上述模型中的待定参数的数值。

在本发明所述的人体身高信息获取方法中,所述步骤s13之后还包括:

s14、利用另一批样本数据对该训练好的神经网络模型进行误差分析。

在本发明所述的人体身高信息获取方法中,所述步骤s1之前还包括:

s0、确定深度误差与身高误差之间的关系为:其中,δd为深度误差,δl表示身高误差,l表示图像中的物体高度,d1为已知的测量位置;根据该关系分析l的取值对深度误差与身高误差之间的影响,进而根据该影响确定相机对人体的视野选取原则。

本发明还公开了一种试衣柜系统,包括具有多个柜门的柜体、控制模块、图像采集模块和控制模块,所述控制模块用于如上所述的方法确定包含人体身高的多种尺寸信息,并根据该多种尺寸信息打开柜体中的相应的柜门。

实施本发明的人体身高信息获取方法以及采用该方法的试衣柜系统,具有以下有益效果:本发明所用到的人体身高信息获取方法,对获取的图像通过建立的神经网络模型以及在竖直标杆上设置标志点,在有头发及饰物遮挡的影响的情况下依然可以计算得到人体头部弧顶位置,比以往通过超声波等测试装备更省成本。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是试衣柜系统的结构示意图;

图2是设置标志点的示意图;

图3是人体身高信息获取方法的流程图;

图4是步骤s0中确定深度误差与身高误差之间的关系的原理图;

图5是基于asm算法提取人脸特征点的效果图;

图6是基于形状回归算法提取人脸特征点的效果图;

图7是选择作为神经网络模型的输入的特征点的具体实施例;

图8是神经网络模型的示意图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。

参考图1和图2,试衣柜系统包括具有多个柜门11的试衣柜1、控制模块2、图像采集模块,所述图像采集模块包括:图像传感器5(可以安装在试衣柜1的柜体上,也可以独立安装)、测量台4、标杆3。试衣人员站在测量台4的脚印上,后脚跟与测量台4台面上的脚印图案的后脚跟对齐,紧靠标杆,通过图像传感器5拍摄图片后,送完控制模块2进行分析,就可以计算得到人体身高信息以及其他尺寸信息,进而根据该这些信息确定合适的衣服尺寸并控制相应的柜门11打开。

下面结合该系统,详细说明本发明的人体身高信息获取方法。该方法用于对图像采集模块采集到的图像进行分析获取人体身高信息,该图像中的人体脚跟处设置有一具有多个标志点的标杆。参考图3,所述方法主要分为以下几大步骤:

s1、根据样本数据建立人体头部弧顶位置与脸部特征之间的神经网络模型,该神经网络模型的输入变量为人体脸部特征,输出变量为人体头部弧顶位置;

s2、根据图像中的多个标志点确定每个像素与物理高度之间的映射关系;

s3、基于所述神经网络模型确定图像中的人体头部弧顶位置;

s4、确定人体头部弧顶位置与一个选定的标志点之间的像素距离,并根据步骤s2中得到的映射关系以及选定的标志点的物理高度,计算人体头部弧顶位置所对应的物理高度。

关于步骤s4:

该步骤的原理是将人体身高分为两部分高度:第一部分高度是选定的标志点对应的物理高度,这个是预先就可以获知的;第二部分高度是选定的标志点与人体头部弧顶位置的高度,这部分高度是通过将图像中的人体头部弧顶位置与选定的标志点之间的像素距离转换为物理高度得到。

结合图2,假如将第9个标志点作为选定的标志点,其物理高度为l。则需要确定的仅仅是第二部分高度,即第9个标志点与人体头部弧顶位置的物理高度。如果人体头部弧顶位置的高度方向上的像素坐标为v,选定的标志点的高度方向上的像素坐标为vs,则人体头部弧顶位置与选定的标志点之间的像素距离为|vs-v|;则根据步骤s2中确定的每个像素与物理高度之间的映射关系,即可将人体头部弧顶位置与选定的标志点之间的像素距离转换为物理高度,假如步骤s2中每个像素的物理高度用s表示,则人体头部弧顶位置所对应的物理高度:

h=(v-vs)×s+l(a)

关于步骤s2:

因为任意两个标志点之间的实际物理高度是已知的,所以采集图像后,根据图像中同样的两个标志点的像素距离就可以获知每个像素对应多少的物理高度。

假如图像中的两个标志点之间的像素距离为pd,标杆上的该两个标志点之间的已知的物理高度sd,计算得到每个像素与物理高度之间的映射关系则为:每个像素的物理高度s=sd/pd。

由于实际测量中人体头顶位置的深度和标志点位置并不一致从而导致了计算误差,如下图4所示,其中f表示焦距,o为投影中心,l表示物体高度,其深度(物距或工作距)分别为d1、d2时对应的投影为l1、l2,在理想情况下物体平行于像平面。由相似三角形原理可知:假设d1为已知的测量位置,l已知,则表示像平面中单位长度所代表的物体尺寸,由可知l在d2时的测量高度:令d2=d1+δd,其中δd为深度误差。因此深度误差所引起的物体高度偏差为:变形为由此可知,在d1不变的情况下,l越小,δd所带来的影响越小,因此相机对人体的视野选取原则应该是:在满足人体身高测量的同时,应该使得相机对人体的视野尽量小。上面提到,步骤s4中在最后计算身高时实际上只用选定一个标志点进行计算,步骤s2中在计算s时至少要利用两个标志点,因此该选取原则实际上是保证图像中有两个标志点即可。

关于标杆上的标志点的设置:

因为个人身高有差异,所以拍摄到图片中的标志点可能不同,因此从人体脚跟附近开始往上在竖直标杆上设置多个标志点,如图2所示。通常获得相机内参数的标定方法是张正友平面标定算法,本发明假定相机内参数已知(在本发明中,只用到了内参数中的焦距f分析深度误差对测量造成的影响),具体步骤如下:如图2所示,标杆上标志点中心之间间距t,单位mm,标杆顶端标志点中心到标杆底端间距t。在相机空间中,由于人体后脚跟位置和头顶位置的深度信息接近,因此垂直标杆于测量台面上,使其在台面上后脚跟附近,由于实际中很难使得标杆和头顶位置的深度信息一致,导致了上述提到的测量上由于深度误差引起的测量误差。

关于步骤s1和s3:

上述公式(a)中v为人体头部弧顶位置的高度方向上的像素坐标,其实际上就是通过步骤s3确定,而步骤s3中用到的神经网络模型是通过步骤s1建立的。该神经网络模型的输入变量为人体脸部特征,输出变量为人体头部弧顶位置。也就说如果要获取人体头部弧顶位置,则需要确定人体脸部特征。所述人体脸部特征包括多个特征点。因此,所述步骤s3包括:

s31、基于人脸检测算法对图像中进行人脸检测,获取人脸的位置;

s32、基于人脸特征点定位算法提取出人脸的特征点(眼睛、眉毛、鼻子、嘴巴、脸部外轮廓),将各特征点的位置输入神经网络模型,得到的输出作为人体头部弧顶位置的坐标。

根据解剖学理论,头顶的位置与人的眼睛、眉毛、嘴巴、鼻子、下巴的位置有关。为了得到头顶的位置,需知道人脸的位置以及人脸五官的位置。采用人脸检测算法得到人脸的位置以及采用人脸特征点定位算法得到人脸五官的位置。

其中,人脸检测算法可以采用viola-jones算法,也即基于harr特征集成adaboost算法实现。人脸定位算法的基本思路是:人脸的纹理特征和各个特征点之间的位置约束结合。可以采用主动形状模型(简称:asm)或aam或形状回归。

asm的基本思想如下:1)选取一组人脸图像的训练样本,用形状向量描述人脸的形状;2)将训练集中各样本对齐,使样本间形状尽可能相似,再用主成分分析(pca分析)对对齐后的形状向量统计建模;3)在形状向量未知的测试样本上,用局部纹理模型搜索满足统计描述范围的最优形状。

具体的,asm包括模型训练和特征点搜索两部分。

模型训练包括训练样本,生成形状向量;形状向量归一化;形状向量pca分析。在pca分析中,训练集中的任何一个形状向量都可以通过平均形状和形状变化参数进行近似表示:

这里p是形状向量的协方差矩阵的前t个特征向量,p=(p1,p2,...,pt),b为特征向量对应的特征值,为平均形状。

特征点搜索包括建立初始形状模型、查找特征点新的位置坐标以及调整模型参数。

在查找特征点新的位置坐标过程中,对于模型中的第i个特征点,在垂直于其前后两个特征点连线方向上以其为中心两边各选择l(l>m)个像素,然后计算这l个像素的灰度值导数并归一化从而得到一个局部特征。

在原来的特征点周围2l+1个像素范围内,共有2(l-m)+1长度为2m+1的局部灰度纹理特征,在这个范围内找到一个马氏距离最小的2m+1的局部灰度纹理,以这个2m+1的中心点为原来特征点的新位置,称为suggestedpoint。

将模型中所有的特征点都计算得到新的位置后,就可以获得模型的一个suggestedshapex,这样由原来的特征点到新的计算得到的suggestedshapex存在一个位移,把每一点的位移都放在一起,构成一个位移向量dx

dx=(dx1,dy1,dx2,dy2,...,dxk,dyk)(2)

其中,k为特征点个数。

在模型参数调整过程中,计算得到一个位移向量后,即可调整当前的模型的参数。修改旋转、缩放、平移的量使得当前模型调整后与suggestedshapex的位置最为接近。即把模型中的特征点调整到与通过局部灰度模型找到的suggestedpoint的位置最为接近。

更新参数db满足下列公式:

db=ptdx(3)

其中,b的变化量为db,pt为公式(1)中协方差矩阵p的逆,dx为位移向量。

任意形状向量都可以用公式(1)和(3)表达出来。

更新参数δx满足下列公式

δx=pdb(4)

根据以上介绍,可以得到人脸特征点(眉毛、眼睛、鼻子、嘴巴、下巴)的位置。其中,效果图见图5,圆点为人脸特征点。图5(a)为人脸平均特征点图,图5(b)为asm迭代3次的特征点图,图5(c)为asm收敛的特征点图。其它类似的方法包括aam等。

形状回归:形状回归方法以级联的方式预测脸部形状s。从一个初始的形状s0,s通过一级一级地估计形状增量δs进阶式改善的。在一个通用形式下,一个形状增量δst在t(取10)级回归为:

δst=wtφt(i,st-1)(5)

其中,i为输入图片,st-1为前一阶段的形状;φt为特征映射函数;wt为线性回归矩阵。φt依赖于i和st-1。在这种方式下学到的特征是指的是作为一个“形状编码”特征。通过将δs加入到st-1,将回归带入到下一级。

为学习φt,我们提出了正则化方法:φt被分解为一组独立的特征映射函数,比如每一个通过独立的在第l个地标点的周围的区域回归学习到的。这个提出的正则化方法可以有效的筛选出主要的噪声和判别性较弱的特征,降低学习的复杂度,从而导致更好地泛化性能。为学习每一个我们使用基于回归的集成树去归纳二值特征。为预测地标点landmark,这个二值特征编码了一个区域内的直觉性的结构信息。在集成了所有的局部二值特征去组成特征映射φt之后,我们为全图的形状估计判别性的学习了wt

根据上述介绍,人脸的形状回归可以很好的回归出人头顶的位置,效果见图6。其中,圆点为特征点,图6(a)为人脸初始特征点图,头顶的位置包括在形状s中,图6(b)为图6(a)第5次迭代回归生成的特征点图,图6(c)为图6(a)第10次迭代回归生成的特征点图。

下面详细介绍本发明的神经网络模型。

所述步骤s1包括:

s11、选择作为输入的特征点,以人体头部弧顶位置作为输出;

s12、确定激活函数f(x)=ln(1+ex),则建立的神经网络模型为:

其中,a(3)表示输出,x表示输入,n表示特征点的个数,表示为第l层第i单元输入加权和(包括偏置单元),表示为第l层第j单元与第l+1层第i单元之间的联接参数,第l+1层第i单元的偏置项,为第l层所有单元与第l+1层第i单元之间的联接参数,即为组成的行向量,b(l)为第l+1层的偏置项,即为组成的列向量;

s13、利用样本数据对该神经网络模型进行训练,确定上述模型中的待定参数的数值。

优选的,s13之后还包括:

s14、利用另一批样本数据对该训练好的神经网络模型进行误差分析。

参考图7,对于一个人头,基于上述asm或形状回归得到的特征点,以两眼角连线的水平方向为x轴、过鼻根点竖直方向为y轴,建立直角坐标系。同时从解剖学颅骨构造角度出发,对输入层的特征进行了一个针对性的选取,如图7所示,

x1表示眉眼距(眉毛外侧最高点与内侧眼角间的垂直高度,即眉毛外侧最高点到x轴的距离);x2表示中庭长(内侧眼角至鼻下点间的垂直距离,即鼻下点到x轴的距离);x3表示鼻下点至嘴角外侧点间的垂直距离为;x4表示下庭长(鼻下点至额下点间的垂直距离);x5表示内眼间距(眼角内端点之间的直线距离);x6表示外眼间距(眼角外端点之间的直线距离);x7表示眉间距(两眉毛外侧最高点之间的距离);x8表示嘴角距(左、右侧口角之间的直线距离);x9表示鼻间距(左、右侧鼻角之间的直线距离);y表示人头头顶的高度(人体头部弧顶位置)为(箭头所指的位置)。

从图7上我们可以看出,由于头发的遮挡,我们通过对像素的实际测量中,对于头顶的位置会不准确,本发明的方法即是为了统计出头顶的位置和脸部各骨骼位置的关系,从而较准确的确定头顶位置。

若有样本m个样本(x,y),其中x为n维特征向量,y为目标值。则样本集可表示为:f={(x(1),y(1)),(x(2),y(2),…,(x(m),y(m))},样本集中的(x,y)数据可以由图像采集系统配合一标准的身高测量系统(例如机械式身高测量系统),通过采集的图像中机械式测量系统的头顶卡尺位置换算获得。通常随机地将数据分成两部分,一部分作为训练集(train_set),另一部分作为测试集(test_set)。用x表示训练集的输入值,y表示训练集的目标值,建立线性回归(linearregression)模型:

xθ=y,

其中,表示为第i个样本的第j个特征,y(i)表示第i个样本的目标值,则通过nomalequation:θ=(xtx)-1xty可以求解出回归系数θ。

但是由于头顶位置和脸部各骨骼之间的关系可能是一种复杂的非线性关系,所以用神经网络来来实现头顶位置的确定,故建立了一个输入层、隐含层以及输出层三层的神经网络模型,如图8。

为了更好的说明,具体实施例中设立的神经网络模型采用:输入层包含9个神经元,隐含层包含11个神经元,输出层只含有一个输出单元。为防止梯度消失(gradientvanishingproblem)不收敛问题,激活函数采用relu函数,表达式为:f(x)=max(0,x)。其平滑版本为:

f(x)=ln(1+ex)(6)

其导数就是我们常用的激活函数sigmoid函数,即

神经网络模型bp训练过程如下:

1)进行前馈传导计算,利用前向传导公式,我们用表示为第l层第i单元输入加权和(包括偏置单元),表示为第l层第j单元与第l+1层第i单元之间的联接参数,第l+1层第i单元的偏置项。则通过隐含层则将带入式(6)得到隐含层的激活值(即图8中的an),对于输出层的激活值线性输出即可(即图8中的a)。

2)对输出层,计算:δ(3)=-(y-a(3))

3)对于隐含层,计算:

4)计算最终需要的偏导数的值:

其中,j为样本(x(i),y(i))代价函数:

故,对于给定一个包含m个样例{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))}的数据集,我们可以定义整体代价函数为(其中sl表示第l层神经元的个数):

式中第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过度拟合。

5)最终更新神经网络模型中的网络参数和:

即通过上述的步骤,不断地迭代优化过程我们可以得到最优的头顶的位置y。

6)神经网络回归模型误差分析:将test_set中的每一个样本x(i)输入到训练好的神经网络模型,获得预测值求其与真实值的误差:

这样可以获得一组样本误差值e(1),e(2),e(3),…,e(n),其中n为test_set中的样本数,从而获得样本误差值的均值μe和标准差σe。对于任意给定的一个新测量值与,在置信度为0.99的条件下,测量值的置信区间为[y+μe-3σe,y+μe+3σe],在置信度为0.95的条件下,置信区间为[y+μe-2σe,y+μe+2σe]。获得的测量值y可以通过本专利前述的图像像素高度转换为实际的物理高度。

综上所述,实施本发明的人体身高信息获取方法以及采用该方法的试衣柜系统,具有以下有益效果:本发明所用到的人体身高信息获取方法,对获取的图像通过建立的神经网络模型以及在竖直标杆上设置标志点,在有头发及饰物遮挡的影响的情况下依然可以计算得到人体头部弧顶位置,比以往通过超声波等测试装备更省成本。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1