一种非接触式人体数据采集方法与流程

文档序号:17443542发布日期:2019-04-17 05:09阅读:485来源:国知局
一种非接触式人体数据采集方法与流程

本发明涉及人体表面数据获取技术领域,尤其涉及一种非接触式人体数据采集方法。



背景技术:

现在越来越多的人通过网络进行购物,但在网购或定制衣服时,往往存在不确定衣服尺寸是否合适的问题,用户自己给出的数据可能不准确,导致购物时可能存在一定的障碍。



技术实现要素:

本发明所要解决的技术问题在于提供一种能够通过人体不同角度的图像获取人体表面数据的方法。

本发明是通过以下技术方案解决上述技术问题的:

一种非接触式人体数据采集方法,包括以下步骤:

步骤1:获取用户穿着布满编码标签的服装时不同视角的图像,其中每个编码标签的形态唯一;

步骤2:对图像进行预处理;

步骤3:剔除不可用编码标签;

步骤4:识别可用编码标签,判断图像是否满足条件;

步骤5:计算编码标签中心二维像素坐标;

步骤6:将编码标签中心二维像素坐标转换为人体在世界坐标系内的三维坐标;

步骤7:利用三维坐标计算人体表面数据。

优选地,用户穿着的服装为紧身衣,所述紧身衣上规则排列有编码标签;所述编码标签包括沿周向均匀设置的多个编码点,所述编码点为黑色或白色,编码标签在紧身衣上的背景为白色,编码点中至少具有一个黑点。

优选地,所述编码标签的圆心位置设置有一定位点,所述定位点面积大于编码点面积;所述定位点和编码点以及编码标签外形轮廓均为圆形,定位点中间具有圆形空白形成圆环。

优选地,步骤2中对图像的预处理方法包括灰度化处理、直方图均衡化算法、中值滤波算法、二值化处理、区域生长法和掏空内部算法。

优选地,步骤3剔除不可用编码标签的方法包括以下步骤:

-椭圆拟合:

在图像物理坐标系中,椭圆存在以下关系:

对上式中的各参数求导取零得到:

同时结合约束条件a+c=1,得到:

其中,ucenter,vcenter,a,b,θ分别为拟合出的椭圆的中心坐标,长轴,短轴和倾斜角;

-圆度检测:

圆度表征函数为:

l=2πb+4(a-b)

area=π×a×b

其中,l表示周长,area表示圆面积,当cllipse大于预设的阈值时,剔除该编码标签;

-残差验证:

对编码标签进行拟合后,对于椭圆边缘上的任一点(x,y),满足以下关系:

xx=(x-ucenter)cosθ+(y-vcenter)sinθ*(x-ucenter)cosθ+(y-vcenter)sinθ

yy=(x-ucenter)sinθ+(y-vcenter)cosθ*(x-ucenter)sinθ+(y-vcenter)cosθ

其中,ucenter为中心横坐标,vcenter为中心纵坐标,ru为椭圆长轴,rv为椭圆短轴,θ为倾斜旋转角度;

椭圆上的点(x,y)的实际观察值与回归估计值之间的残差为:

num为椭圆边缘轮廓上的像素点数量,需要计算所有边缘上的点的残差和对应得到的各自拟合残差;引入残差阈值ferror(max),如果ferror>ferror(max),则剔除该编码标签。

优选地,步骤4中识别编码标签的方法为:

将椭圆形的编码标签仿射变换为单位圆,仿射变换公式为:

其中,x是仿射变换前椭圆上的点坐标,x0是椭圆的中心点坐标,a,b分别是椭圆的长轴和短轴长度,α为椭圆的旋转角,x″是仿射变换后单位圆上的点的坐标;

对于具有n个编码点的编码标签,以经过仿射变换成为单位圆的编码标签上的任意黑色编码点为起点,按照顺时针或逆时针顺序,以定位点中心为圆心每隔作为一个二进制位读取编码点,如果该位的编码点的所有像素的平均灰度值大于阈值,则编码为1,否则编码为0,读取一周得到该编码标签的二进制数值;然后以原起始点顺时针或逆时针旋转角度δθ作为新的起始点,重新读取该编码标签的二进制数值,重复n次,得到以每个编码点为起始点的n个二进制数串,以其中最小的二进制数值作为该编码标签的解码数值。

优选地,若相邻角度的图像具有至少8个相同的有效编码标签,则认为图像满足条件。

优选地,步骤5采用灰度加权质心法计算原图像中编码标签定位点圆孔的一阶矩,提取编码标签在图像像素坐标系中的定位点中心二维像素坐标计算公式为:

其中,(x0,y0)为定位点中心坐标,f(x,y)为编码标签区域内像素点(x,y)的灰度值,经二值化的灰度化处理后,f(x,y)=255,m,n为编码标签区域的像素点行数和列数,p为特征区域所有像素点的数量,p=i×j。

优选地,步骤6中对于符合要求的相邻视角的图像,其每一组对应点互相匹配约束的编码标签定位点中心二维坐标分别为

则根据对极几何原理,每组对应点满足

采用归一化八点算法计算f基础矩阵,

将p1和p2代入(1)式得:

展开上式,得:

u2u1f11+u2v1f12+u2f13+v2u1f21+v2v1f22+v2f23+u1f31+v1f32+f33=0(3)

此时,如果有n对点符合上述约束方程,则(3)式可以改写为如下:

当n取8个点时,用最小二乘法,求解(4)式,为了避免出现多余无用解,增加约束条件即求公式(4)最小,同时满足f归一化,计算得到基础矩阵f;

利用人体表面图像提取至少连续7行×7列的编码标签阵列作为标定模板,编码标签之间的平面距离在制作紧身衣时已经确定,在标定模板对应的区域与相机图像平面基本平行时,忽略z轴误差,得到模板角点3d坐标,对应角点的2d坐标步骤5中已经求出,通过参照连续相邻的至少5张图像计算相机内参矩阵a,因为相机成像对极几何约束条件成立:

相机内参矩阵a的线性算法如下:

将2d点坐标(xi,yi)和对应的3d点坐标(xi,yi,zi)分别代入上式,求解超定方程组,得到

分解后即可得到相机内参矩阵a;

另外,内参矩阵满足以下关系:

e=atfa

通过计算得到本质矩阵e;并对本质矩阵e进行奇异分解,

e=udvt=u(d1d2)vt=(ud1ut)(ud2vt)

其中,

得到,

[t]x=ud1ut

r=ud2vt

其中,t和r为相机外部参数矩阵;

计算投影矩阵m:

m2=a×[rt]

其中r和t是相机外参;二维像素点坐标p到三维空间点坐标p的投影关系为:

展开得到:

经过展开整理得到关于x,y,z的线性方程:

借助最小二乘法即可求出三维空间点的三维坐标。

优选地,由三维坐标计算人体表面数据的方法为:

①对于非封闭的长度尺寸:直接定位编码标签对应的身体位置三维空间坐标,通过欧式距离求解,

其中pi=(xi,yi,zi)和pj=(xj,yj,zj)为人体表面三维空间两个待测点的三维空间坐标点;

②:对于封闭曲线长度尺寸:

1)选取n个基本处于同一横截面上的特征编码标签为初始编码标签集合,利用最小二乘法拟合出一个人体空间横截面,拟合方程为:

ax+by+cz+d=0

人体横截面都不是与z轴平行,所以c≠0;故方程变形为:

z=a0x+a1y+a2

(xi,yi,zi)i=0,1,2,...,n-1

其中,n≥5;通过计算得到参数a0,a1,a2,拟合出人体横截面表达式;

2)寻找临近截面的编码标签,该编码标签定位点中心坐标p=(x,y,z)与截面的垂直距离小于预设的阈值或倾斜角小于预设的阈值,即

dist(p,横截面)≤t(或θ)

该编码标签即可加入截面边缘曲线拟合编码标签集合,直至集合中编码标签数量足够拟合人体横截面边缘二维曲线;在该曲线上采用三次样条插值计算方法拟合计算得到该横截面边缘曲线长度;将需要计算的曲线分成n份,每份上均为不高于三次的多项式拟合函数

s(xj)=yj

其中,(xj,yj),j=1,2,…,n为曲线上点的坐标值;

且每份的拟合函数均满足二阶连续导数约束条件,通过计算每份s(xj)值,累加所有n份既得曲线周长。

本发明提供的非接触式人体数据采集方法的优点在于:用户只需要穿着定制的衣服进行拍照即可获得自己的身体表面数据,在网购时商家能够得到用户准确的身体数据,便于进行服装定制,操作简单,便于推广。

附图说明

图1是本发明的实施例所提供的紧身衣的示意图;

图2是本发明的实施例所提供的编码标签的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。

一种非接触式人体数据采集方法,包括以下步骤:

步骤1:用户穿着布满编码标签的服装,其中每个编码标签的形态唯一,获取用户穿着该服装时不同视角的图像;

参考图1,优选实施例中,用户穿着的服装设计为紧身衣1,所述紧身衣1上规则设置有用于识别的编码标签2,所述编码标签2包括沿周向均匀设置的多个编码点21。

结合图2,为了便于识别,所述编码点21设置为黑色或白色,编码标签2在紧身衣1上的背景设置为白色,从而在图像中仅能看到黑色编码点21,每个编码标签2至少具有一个黑色编码点21。

为了便于确定编码标签2的位置,编码点21围成的圆周的圆心位置还设置有一定位点22,所述定位点22的面积大于编码点21面积,为了进一步提高定位精度,在定位点22的中间还具有一圆形空白从而形成圆环形的定位点22。

一般通过相机或手机拍照获取不同角度的图像,拍照时可以让用户改变角度进行拍摄,也可以在不同角度同时进行拍摄;由于拍摄时会存在角度倾斜,编码标签2的图案会发生畸变,为了便于处理,定位点22和编码点21及编码标签2的外轮廓均选用圆形图案,圆形在视角倾斜时会畸变为椭圆,进行数学处理时仅需要考虑5个参数即可定义描述椭圆,并可以通过最小二乘法方便的实现椭圆拟合计算。

步骤2:对图像进行预处理;

处理方法包括灰度化处理去掉不用的彩色信息、直方图均衡化算法增强图像效果、中值滤波算法去掉无用噪声的图案、二值化处理突出图案边缘轮廓、区域生长法的聚类思想实现图像分割和合并,最后采用掏空内部算法提取轮廓。

上述处理方法均为现有技术中已经公开的方法,本领域技术人员根据需要选择具体的方法即可,此处不再赘述。

步骤3:剔除不可用编码标签2;

剔除不可用编码标签2的方法包括以下步骤:

-椭圆拟合:

在图像物理坐标系中,椭圆存在以下关系:

对上式中的各参数求导取零得到:

同时结合约束条件a+c=1,得到:

其中,ucenter,vcenter,a,b,θ分别为拟合出的椭圆的中心坐标,长轴,短轴和倾斜角;

-圆度监测:

圆度表征函数定义为:

l=2πb+4(a-b)

area=π×a×b

其中,l表示周长,area表示圆面积,当cllipse大于预设的阈值时,剔除该编码标签2;

-残差验证:

对编码标签2进行椭圆拟合后,对于椭圆边缘上的任一点(x,y),满足以下关系:

xx=(x-ucenter)cosθ+(y-vcenter)sinθ*(x-ucenter)cosθ+(y-vcenter)sinθ

yy=(x-ucenter)sinθ+(y-vcenter)cosθ*(x-ucenter)sinθ+(y-vcenter)cosθ

椭圆上的点(x,y)的实际观察值与回归估计值之间的残差为:

num为椭圆边缘轮廓上的像素点数量,需要计算所有边缘点的残差和对应得到的各自拟合残差;引入残差阈值ferror(max),如果ferror>ferror(max),则剔除该编码标签2。

步骤4:识别可用编码标签2,判断图像是否满足条件;

将椭圆形的编码标签2仿射变换为单位圆,仿射变换公式为:

其中,x是仿射变换前椭圆上的点坐标,x0是椭圆的中心点坐标,a,b分别是椭圆的长轴和短轴长度,α为椭圆的旋转角,x″是仿射变换后单位圆上的点的坐标;

对于具有n个编码点21的编码标签2,以经过仿射变换成为单位圆的编码标签2上的任意黑色编码点21为起点,按照顺时针或逆时针顺序,以定位点22中心为圆心每隔作为一个二进制位读取编码点21,如果该位的编码点21的所有像素的平均灰度值大于阈值,即编码点21为黑色,则编码为1,若编码点21为白色,则编码为0,读取一周得到该编码标签2的二进制数值;然后以原起始点顺时针或逆时针旋转角度δθ作为新的起始点,重新读取该编码标签2的二进制数值,重复n次,得到以每个编码点21为起始点的n个二进制数串,以其中最小的二进制数值作为该编码标签2的解码数值。在判断时可以根据需要将二进制数值改为十进制。

经过识别验证,需要确保相邻角度的图像中至少具有8个相同的有效编码标签2,否则认为图像不满足要求,需重新提供该角度的图像。

步骤5:计算编码标签2的定位点22中心二维像素坐标;

编码标签2的中心点像素二维坐标采用灰度加权质心法提取,其实质是计算原图像圆孔的一阶矩,得到:

其中,(x0,y0)为定位点22中心坐标,f(x,y)为特征点区域内像素点(x,y)的灰度值,经步骤2的二值化灰度处理后,f(x,y)=255,m,n为编码标签2的定位点22区域像素的行数和列数,p为特征区域所有像素点的数量,p=i×j。

步骤6:将编码标签2的定位点22中心像素二维坐标转换为人体对应世界坐标系内的三维坐标;

对于符合要求的相邻视角的图像,依据其互相匹配约束条件的编码标签2的定位点22中心二维坐标分别为p1、p2,其二维坐标分别为:

则根据对极几何原理,每组对应点满足

采用归一化八点算法计算得到基础矩阵f,

将p1和p2代入(1)式得:

展开上式,得:

u2u1f11+u2v1f12+u2f13+v2u1f21+v2v1f22+v2f23+u1f31+v1f32+f33=0(3)

此时,如果有n对点符合上述约束方程,则(3)式可以改写为如下:

当n取8个点时,用最小二乘法,求解(4)式,为了避免出现多余无用解,增加约束条件即求公式(4)最小,同时满足f归一化,计算得到基础矩阵f。

利用人体表面图像提取至少连续7行×7列的编码标签2阵列作为标定模板,编码标签2之间的平面距离在制作紧身衣时已经确定,在标定模板对应的区域与相机图像平面基本平行时,忽略z轴误差,得到模板角点3d坐标,对应角点的2d坐标步骤5中已经求出,通过参照连续相邻的至少5张图像计算相机内参矩阵a,因为相机成像对极几何约束条件成立:

相机内参矩阵a的线性算法如下:

将2d点坐标(xi,yi)和对应的3d点坐标(xi,yi,zi)分别代入上式,求解超定方程组,得到

分解后即可得到相机内参矩阵a;

另外,内参矩阵满足以下关系:

e=atfa

通过计算得到本质矩阵e,对本质矩阵e进行奇异分解:

e=udvt=u(d1d2)vt=(ud1ut)(ud2vt)

其中,

得到,

[t]x=ud1ut

r=ud2vt

其中,t和r为相机外部参数矩阵;

计算投影矩阵m:

m2=a×[rt]

其中r和t是相机外参;二维像素点坐标p到三维空间点坐标p的投影关系为:

展开得到:

经过展开整理得到关于x,y,z的线性方程:

借助最小二乘法即可求出三维空间点的三维坐标。

步骤7:利用三维坐标计算人体表面数据。

①对于非封闭的长度尺寸:直接定位编码标签2对应的身体位置三维空间坐标,通过欧式距离求解,

其中pi=(xi,yi,zi)和pj=(xj,yj,zj)为人体表面三维空间两个待测点的三维空间坐标点;

②:对于封闭曲线长度尺寸:

1)选取n个基本处于同一横截面上的特征编码标签2为初始编码标签2集合,利用最小二乘法拟合出一个人体空间横截面,拟合方程为:

ax+by+cz+d=0

人体横截面都不是与z轴平行,所以c≠0;故方程变形为:

z=a0x+a1y+a2

(xi,yi,zi)i=0,1,2,...,n-1

其中,n≥5;通过计算得到参数a0,a1,a2,拟合出人体横截面表达式;

2)寻找临近截面的编码标签2,该编码标签2的定位点22中心坐标p=(x,y,z)与截面的垂直距离小于预设的阈值或倾斜角小于预设的阈值,即

dist(p,横截面)≤t(或θ)

该编码标签2即可加入截面边缘曲线拟合编码标签2集合,直至集合中编码标签2数量足够拟合人体横截面边缘二维曲线;在该曲线上采用三次样条插值计算方法拟合计算得到该横截面边缘曲线长度;将需要计算的曲线分成n份,每份上均为不高于三次的多项式拟合函数

s(xj)=yj

其中,(xj,yj),j=1,2,…,n为曲线上点的坐标值;

且每份的拟合函数均满足二阶连续导数约束条件,通过计算每份s(xj)值,累加所有n份既得曲线周长。

在使用时,商家只需要为客户提供本实施例公开的紧身衣即可,客户可以自行拍照获得人体图像,并上传至指定服务器进行计算,从而获得准确的人体表面数据,商家可以根据数据为用户订制服装,甚至可以直接将紧身衣快递给用户,极大地便利了订制服装的网购业务,而且紧身衣本身的制造成本较低,不会额外增加商家成本,便于推广使用。

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