基于多视角深度传感器的虚拟试鞋方法

文档序号:1506358 发布日期:2020-02-07 浏览:5次 >En<

阅读说明:本技术 基于多视角深度传感器的虚拟试鞋方法 (Virtual shoe fitting method based on multi-view depth sensor ) 是由 朱康 张迎梁 于 2019-05-08 设计创作,主要内容包括:基于多视角深度传感器的虚拟试鞋方法,设置工作区域,将若干深度传感器的视角覆盖工作区域;用户站在工作区域内,深度传感器采集其数据,然后确定脚部的位置、方向和大小;将鞋的三维模型投影至当前相机视角下,并与实时场景的RGB数据进行融合。利用多视角深度传感器即可实现对场景人员脚部关键点进行提取,然后配合任意角度的RGB传感器显示虚拟试鞋效果,完全模拟了用户面对试鞋镜真实试鞋的视觉效果体验。可以精准计算用户的脚部尺寸,消除了复杂的用户操作。(The virtual shoe fitting method based on the multi-view depth sensors comprises the steps of setting a working area, and covering the working area with the view angles of a plurality of depth sensors; the user stands in the working area, the depth sensor collects the data, and then the position, the direction and the size of the foot are determined; the three-dimensional model of the shoe is projected to the current camera view angle and fused with the RGB data of the real-time scene. The key points of the feet of scene personnel can be extracted by utilizing the multi-view depth sensor, then the virtual shoe fitting effect is displayed by matching with the RGB sensor at any angle, and the visual effect experience of a user on the real shoe fitting of the shoe fitting mirror is completely simulated. The foot size of the user can be accurately calculated, and complex user operation is eliminated.)

基于多视角深度传感器的虚拟试鞋方法

技术领域

本发明涉及计算机三维图像处理领域,具体地说是一种基于多视角深度传感器的虚拟试鞋方法。

背景技术

随着互联网技术的兴起,全球产业进入了互联网时代。在日常的生产生活中,网络购物日益成为一种主流的消费模式。对于网络购买鞋类产品时,选择理想样式,和合适的尺码成为了用户的一大困扰。究其原因,单一利用卖家拍摄的单一平面鞋类展示效果作为选择样式的依据,与用户实际的心理预期有一定的差距。另外,中国鞋类厂商的鞋码标准使用不广泛,常用欧码或美码代替;而不同厂商、不同鞋类产品之间鞋码,造成码数不准、尺码混乱的问题很难解决。这两个原因导致了商家面临退货率飙升的问题,同时浪费了物流业的社会效率。

随着三维重建、VR/AR和AI等技术以及计算机CPU/GPU处理器性能的爆发式发展,虚拟试鞋业务随之兴起。利用计算机视觉、计算机图形学和计算成像等领域的相关技术,厂商可以预先对鞋类产品进行三维建模,在用户挑选鞋类产品时可以实时的进行预览对应产品的三维影像,或者利用AR/VR穿戴式设备,将鞋类产品模型与用户场景进行融合,使得用户在挑选过程中能够实时模拟自身穿着该产品的实际视觉效果。

当前虚拟试鞋技术大致分为三类:

1.直接在互联网页面上展示由三维重建技术获得的鞋类产品的三维模型的立体效果,用户可以通过操作完成不同视角的预览鞋类产品。这类技术大大提升了以往只能靠卖家拍摄的单一平面鞋类展示效果。但是,这种技术对于用户而言,仍然无法得知该类产品的穿着效果以及鞋码的选择。

2.利用VR/AR穿戴式设备,将三维重建技术获得的鞋类产品的三维模型投射到现实场景,利用计算机视觉等相关技术,对人体和鞋进行融合,继而获得用户穿戴该类产品的视觉效果。但是,一方面受到用户视角和AR/VR视场角等相关方面的原因,很难有理想的效果;另一方面,对于用户而言,购置VR/AR设备以及配套的计算单元,成本相当高。

3.利用三维重建技术的脚部建模设备进行虚拟试鞋。用户只需要站立在设备的相关区域,设备经过一段时间利用机器视觉和三维重建技术对人体脚部进行测量和计算,最终完成脚部的三维建模,然后与鞋类产品的三维模型进行适配。这种方案对于鞋码检测较为精准,但是一方面由于设备规格的限制,用户无法进行多角度的移动旋转脚部进行全方位视觉体验;另一方面由于造价较高,对于用户而言成本较高。另外,即使由商家购置相关设备用于线下虚拟试鞋体验,由于设备需要精准对脚部进行三维建模,需要用户进行脱鞋站立,同时脚部建模过程持续一段时间,存在一定的不方便。

CN201610008004.3号中国专利申请公开了三维虚拟试鞋方法和系统,将使用者的脚部模型和鞋模型结合起来,实现了虚拟鞋子与真实顾客脚形的融合,通过试穿效果的动态展示,顾客可在最短时间内快速浏览不同鞋子款式的试穿效果,还可以观看不同饰品、背景下的试穿效果,可以避免物流资源的浪费以及退换货带来的时间浪费,提高网络购鞋的用户体验。该方案利用采集设备进行完整的人员脚部模型重建,然后去做与鞋模型的贴合,增加了计算过程,较为复杂。

CN201710336343.9号中国专利申请公开了本发明公开了一种试鞋系统,包括用于获取三维脚部数据并存储至脚型数据库的足部三维扫描装置、用于调取三维脚部数据与鞋型数据库中的三维鞋型数据且进行比对并推送适合鞋子的控制终端以及将购买者引导至实体店的移动终端,能够先进行虚拟试鞋,购买者通过虚拟试鞋挑选好自己所需要的鞋子之后,在通过移动终端引导购买者去实体店进行实体试鞋。该方案同样要对对脚部进行重建。

此外,还有诸如CN201710413212.6号专利申请所公开的一种线上辅助测量脚码大小的方法,步骤是:1、用户信息获取;2、服务器自动运算;3、服务器提供用户鞋码信息,具有测试方便、快捷、可以自助完成,大大方便人们在线上买鞋的方便程度。即用特制的标定卡去做脱鞋后脚步大小测量的,并且他对用户拍摄的角度有严格的限定。

CN201810848062.6号中国专利申请公开一种在线虚拟试鞋方法,包括:在用户脚部穿戴空间标记袜的情况下,获取所述用户的脚部图像;销售终端用预设三维脚部模型对比用户的脚部图像后生成用户脚部三维模型;销售终端从用户脚部三维模型上获取用户脚部尺寸;销售终端根据鞋码选用预存的三维鞋模型,并投射到用户脚部三维模型上,生成试三维试鞋模型。在线虚拟试鞋方法可使消费者在买鞋前通过虚拟现实技术在线虚拟试鞋,提高消费者在线买鞋的合脚率,该方案利用特制的袜子制作标记,来进行对脚部关键点进行提取,然后同样要做脚部三维重建。

发明内容

本发明为解决现有的问题,旨在提供一种基于多视角深度传感器的虚拟试鞋方法。

为了达到上述目的,本发明采用的技术方案包括如下步骤:

步骤一,设置工作区域,将若干深度传感器的视角覆盖工作区域;

步骤二,用户站在工作区域内,深度传感器采集其数据,然后确定脚部的位置、方向和大小;

步骤三,将鞋的三维模型投影至当前相机视角下,并与实时场景的RGB数据进行融合。

步骤一中,确定深度传感器与世界坐标系的关系,设定第i台深度传感器采集的深度图像信息为

Figure BDA0002052760460000032

RGB传感器采集的彩色图像信息为Ic,深度图像信息上的任意像素点为p(u,v),其值为该点的深度信息记为d,该像素点对应的世界坐标系下的三维点Pw(x,y,z),存在如下关系:

Figure BDA0002052760460000031

步骤一中,选取若干地面的像素点及其坐标,利用矩阵的SVD分解算法拟合得到参数A,B,C,D,从而定位了在以深度传感器相机坐标系为世界坐标系的地面平面,p(u,v)对应的三维点Pw(x,y,z)均处于同一平面S:f(A,B,C,D)=0下,满足:S:A*(P)w(x)+B*(P)w(y)+C*(P)w(z)+D=0(2)。

步骤一中,在世界坐标系中设虚拟深度传感器Cv,设定它内外参数Kv,Rv和tv,根据Cd和Cv的坐标关系,通过将Cd获取的深度信息Id映射到Cv得到新视角下的场景点之间的深度关系图像数据Iv

进一步地,Cv相对于世界坐标系的外参变换H4×4关系满足:

Figure BDA0002052760460000041

根据H可以获得外参数Rv和tv

步骤二中,在用户进入有效区域前,积累采集场景的深度信息,加权平均后定义为背景深度信息

Figure BDA0002052760460000042

当用户进入有效区域后实时采集到的每一帧深度信息

Figure BDA0002052760460000043

与之做差,小于一定阈值的点为是背景点,赋零值;反之,则认为该像素点为前景点,赋当前帧的深度值,即:

其中th为深度传感器的系统误差。

步骤二中,将Cd拍摄到的深度信息转化为三维点云,然后利用Cv从上向下观测得到顶视信息;根据公式(1)

Figure BDA0002052760460000045

上每一个有效像素点pd都可以得到Cv相机坐标系下的三维点Pd,然后通过Cv的内参Kv以及相对于Cd的外参数Rv2d和tv2d反投影得到像素点pv,进而得到

Figure BDA0002052760460000046

即:

Figure BDA0002052760460000047

其中,在各自计算过程的最后一步加入连通域检测机制,选取最大的连通域作为脚部信息的待选区域,从而将剩余的区域作为噪声区域进行过滤。

步骤二中,在顶视图Iv的脚部区域中,以连通域操作对潜在的双脚进行分割,对当前存在的连通区域进行筛选,得到足印1的掩码图F1和足印2的掩码图F2;针对Fi,i∈[1,2],以足印各像素点在图像中的位置(u,v)计算一个合适的外切矩形来定位足印的位置。

其中,外切矩形的计算为:

第一,将Fi分别向图像坐标系的x,y轴方向投影,取得其长度L和W;

第二,如果L=W,表明足印的主方向为45°或135°;当L≠W,通过L/W的关系可以计算出当前主方向的角度;

第三,根据角度和45°的差异△θ,进而计算旋转矩阵,使得坐标系进行旋转后,重新计算L和W;

第四,迭代此操作直到计算的L=W,同时累计记录旋转关系∑△θ;最终得到一个外接足印的方形;其方形对角线得到直线L1:y=kx+b,该直线为脚的主方向。

步骤二中,确定脚尖方向:

第一,在侧视图中统计脚部区域的像素纵向位置,得到最大值vmax;和最小值vmin

第二,在侧视图中统计脚部区域的像素纵向位置v<vmin+r·(vmax-vmin)的像素点集合{p|vp<vmin+r·(vmax-vmin)};其中r为脚踝在整体脚部信息中的比例关系,一般取r∈[0.2,0.4]。

第三,根据公式(1)和公式(5)将上述像素点集合重投影映射到顶视深度信息中,形成顶视深度数据的一个像素集合点,并计算这个集合的位置中心,记为pc;过点pc、斜率为-1/k的直线记为Le:y-yp=-1/k(x-xp),而直线L分别于Lc,Le,Ld交于一点,分别记为pllc、plle和plld

第四,如果||pllc-p11e||2>||plld-p11e||2,则认为pllc为脚尖位置,反之则认为plld为脚尖位置。

步骤二中,确定脚部长度:Cv视角下的脚尖位置pt和脚后跟位置ph,根据公式(1)易得在Cv视角下的三维坐标点

Figure BDA0002052760460000051

Figure BDA0002052760460000052

的正上方设置一点

Figure BDA0002052760460000054

其中thz是小于Cv视角下地面Z的任意数据;

Figure BDA0002052760460000057

Figure BDA0002052760460000058

三个点确定了用户脚部在三维空间中的位置、方向和大小;根据Cv的外参,该三个点可转化为世界坐标系下的三个点Pt、Ph和Pu;向量PhPt的方向确定了脚部的方向,模值确定了脚长。

步骤三中,对于鞋三维模型进行预处理,将其坐标系的原点移动至脚后跟中心,x轴方向指向脚尖方向,y轴方向垂直于脚底面向上;在渲染环境的世界坐标系下,将模型移动到Ph点后缩放至Pt与脚尖重合。

然后,在渲染环境的世界坐标系下,设置一个与Cc完全一致的相机;利用渲染算法进行渲染得到RGB渲染帧数据Is,该数据的有效区域即为鞋类产品在用户脚部方向和位置投影在Cc视角下的具体视觉效果;无效区域置零值;

最后,将Cc视角下的渲染帧Is有效像素逐一融合至Cc视角下拍摄帧数据Ic,形成最终的融合数据,推至显示设备,供用户进行视觉效果体验。

本发明的方法归纳为:

准备阶段:设置场景,对深度相机组和观测视角的RGB相机进行内外参数标定,设定前视相机的相机坐标系与世界坐标系重合,其他两个相机的旋转平移关系相对于前视相机。

采集阶段:实时采集深度相机组的深度数据和观测视角的RGB相机的RGB图像数据。其中深度相机组参与计算,故在此步骤对每个深度相机的背景深度图(无人员走动的情况下)分别选取若干属于地面的像素点,生成三维坐标点,拟合地面参数。同时,记录当前帧,作为背景图,参与后续计算。

计算阶段:

根据拟合的地面参数,计算顶视虚拟相机内外参数,视角垂直于地面向下,视野中心在地面与深度相机组光心交于的地面点重心相交。

采集当前帧的深度数据,与对应视角下留存的背景深度信息做差值,在阈值范围内对前景区域进行提取。并利用连通域去除散点噪声。

根据各自深度相机的内外参,将各自帧前景深度信息投影至顶视虚拟相机视角下,形成足印掩模图。

对顶视足印掩模图,利用连通域检测和足印面积阈值,将可能存在的双脚进行分割,形成单独的左脚掩模图和右脚掩模图。

对单脚掩模图进行二维坐标轴投影,计算投影长度(L,W);当L≠W时,计算与坐标轴的对应角度(θ=arctan(L/W)),然后按角度残差△θ=θ-π/4旋转坐标系,然后对新的坐标系重新计算投影长度。迭代这一过程,直到新计算的L=W。此时表明在最新的坐标系中,足印的主方向处于坐标系的45°方向。由此可以得到足印主方向上的点在原始坐标系中的位置。然后利用其主方向可以得到外接足印的2组对应垂直的直线。

在v中,向顶部虚拟相机映射点云时,额外记录腿部点云(距离虚拟相机小于一定阈值的点),映射后对该部分点云进行重心计算,得到腿部在地面上的重心映射点位置。

足印主方向上离腿部重心点近的一侧归为脚后跟,另外一侧定位脚尖。至此,我们在足印主方向上确定了脚的朝向。

根据脚尖、脚后跟、虚拟相机的内外参数,最终分别确定了两个脚部关键点的三维坐标。

对于其中一个足印的关键点,以脚后跟为原点,脚尖为x轴方向,脚尖上方点方向为y轴,叉乘可以得到处于地面的z轴。如果另一只脚的关键点均在这个z轴的正方向上,说明建轴脚为左脚,另一只脚为右脚。反之,建轴脚为右脚,另一只脚为左脚。

融合阶段:根据足部关键点三维坐标进行鞋模型的对应角度渲染,然后根据观测视角的RGB相机的内外参数,将渲染图片与RGB图像融合,最终形成融合后的AR场景。

和现有技术相比,本发明针对上述虚拟试鞋业务的现状,利用多视角深度传感器即可实现对场景人员脚部关键点进行提取,然后配合任意角度的RGB传感器显示虚拟试鞋效果。首先,可以实时地进行用户脚部与鞋类产品的三维模型的融合,并可以在任意视角下进行展示,同时用户无需有任何额外的(例如脱鞋,站立在相关设备上等待计算建模等)操作过程,完全模拟了用户面对试鞋镜真实试鞋的视觉效果体验。其次,本发明可以在用户感受虚拟试鞋的视觉效果体验过程中,精准计算用户的脚部尺寸,该部分数据可以作为用户选择鞋类产品鞋码的参考依据。最后,本发明利用多视角的深度相传感器,相对于其他产品,成本较低;同时消除了复杂的用户操作,便于使用。

附图说明

图1为本发明实施例的所使用的系统的结构示意图,其中的RGB传感器为系统观测视角;

图2为侧视深度传感器Cd和虚拟顶视深度传感器Cv相机坐标系关系示意图;

图3a为本发明实施例的操作说明图;

图3b、3c分别为脚部在侧视深度传感器Cd和虚拟顶视深度传感器Cv视角下的数据合成图;

图4为确定户脚部主方向的示意图;

图5a、图5b分别为用户脚部侧视和顶视数据联合计算关键数据的示意图;

图6为判断用户左右脚关系的示意图。

具体实施方式

现结合附图对本发明作进一步地说明。

参见图1至图6,图1至图6展示的是本发明的一个实施例,构建一个虚拟试鞋工作区域,区域正前方配置一套显示设备,显示设备下方放置三个RGBD相机,其视角覆盖工作区域。当用户站在区域内,RGBD相机对区域内进行数据采集,然后利用计算机视觉相关技术定位用户的脚的位置、方向和大小,然后根据三维空间几何关系,利用计算机图形学相关渲染技术将已存在的鞋类产品的三维模型投影至当前相机视角下,并于实时场景的RGB数据进行融合,并投射至显示设备中,从而完成虚拟试鞋的视觉效果展示。

首先计算世界坐标系与相机坐标系。

本实施例中存在三台深度传感器。根据现有相机标定理论和技术,在世界坐标系下,第i台深度传感器的旋转矩阵为

Figure BDA0002052760460000081

平移向量为以及内参矩阵为同理可得唯一一台用于用户观测视角的RGB传感器的对应参数分别为Rc、tc和Kc。我们设定第i台深度传感器采集的深度图像信息为

Figure BDA0002052760460000084

RGB传感器采集的彩色图像信息为Ic。同时设定深度图像信息上的任意像素点为p(u,v),其值为该点的深度信息,记为d,该像素点对应的世界坐标系下的三维点Pw(x,y,z)。二者存在如下关系:

其中(cx,cy)为深度传感器的光心参数,(fx,fy)为深度传感器的横向和纵向的焦距数据,它们都来源于深度传感器的内参数Kc

然后计算基于深度信息的地面信息拟合及顶视虚拟相机。首先参见图1,虚拟试鞋有效区域(传感器可以覆盖的区域)在没有人员走动的情况下,可以认为完全是一片平整的地面(而且事实上在系统部署过程中,可以完全保证这一点)。当无人员走动的情况下,深度传感器对这一区域进行采集的深度信息在世界坐标系下应该是一个平面。由此可以知道,Id上任意一个有效像素点p(u,v)(所谓有效是指深度传感器实际采集的深度图像信息实际存在部分零值点,为无效点)对应的三维点Pw(x,y,z)均处于同一平面S:f(A,B,C,D)=0下,即满足:

S:A*(P)w(x)+B*(P)w(y)+C*(P)w(z)+D=0(7)

由公式(2)可以得知为了拟合这个平面,至少需要多于四个点位数据。所以在当前无人员走动的深度图像信息中选取属于该地面平面的若干像素点(为了减少误差,点位应该多于4个;为了防止过拟合,点位应该少于20个),并求出对应的三维坐标点。然后利用矩阵的SVD分解算法,拟合得到参数A,B,C,D。从而定位了在以深度传感器相机坐标系为世界坐标系的地面平面S:f(A,B,C,D)=0。

其次,由于系统中RGB传感器采集到的是人员脚部的侧视信息(侧视的目的是最大限度的获取有效脚部信息),但由于相机的倾角和人员站立的位置关系,使得侧视传感器无法根据采集的深度信息判定人员脚部和其他部位的深度关系,所以需要在世界坐标系中部署一台虚拟深度传感器Cv。这台传感器不是真实存在的,但一经设定它内外参数Kv,Rv和tv,根据Cd和Cv的坐标关系,可以将Cd获取的深度信息Id映射到Cv得到新视角下的场景点之间的深度关系图像数据Iv。考虑到虚拟试鞋的场景因素,Cv应该部署在场景有效区域的正上方并垂直于地面向下拍摄,这样可以使得Iv中地面处于同一深度,且用户的脚部深度信息始终处于距离地面一定高度的范围内。为了便于计算,我们设定Cv的内参与Cd一致,即Kv=Kd。如图2所示,设xv轴平行于Cd的odxdyd平面平行且平行于地面S。即:

Figure BDA0002052760460000101

由上述分析可知Cv垂直于地面向下拍摄,故其zv轴与地面平面方程的法线向量n=(A,B,C)一致。即:

Figure BDA0002052760460000102

综合

Figure BDA0002052760460000103

Figure BDA0002052760460000104

易知

Figure BDA0002052760460000105

为了Cv能够最大限度的获取有效数据,故Cv的原点ov设定于

Figure BDA0002052760460000106

i∈[1,N]的

Figure BDA0002052760460000107

轴与地面交点(共有N个交点)的重心点Pi(x,y,z)的正上方l处,即其中l可以根据Cd的实际平均高度估算。由上述一系列分析,可以得到Cv相对于Cd的外参变换H4×4关系满足:

Figure BDA0002052760460000109

从而根据H可以获得外参数Rv和tv

至此,整个系统(视觉采集和场景)可以用

Figure BDA00020527604600001010

i∈[1,N],Cv的内外参数、深度信息以及地面平面S:(A,B,C,D)描述。Cc仅用于最终的针对用户的虚拟试鞋效果展示。

接着提取基于深度信息的脚部信息。当用户站立在系统的有效区域内,

Figure BDA00020527604600001011

可以实时采集到包含用户腿部、脚部以及和场景环境的融合RGB图像和深度数据。对于定位脚部而言,首要的任务是完成对用户腿部和脚部与场景环境的分割。传统的分割利用RGB的相关信息(边缘、前后景关系等)进行分割算法和抠图算法的计算,很难做到实时性。所以针对虚拟试鞋系统的特殊性(相机系统固定,拍摄区域为固定平面),本实施例在用户进入有效区域前,积累采集场景的深度信息,加权平均后定义为背景深度信息

Figure BDA00020527604600001012

当用户进入有效区域后实时采集到的每一帧深度信息

Figure BDA00020527604600001013

与之做差,小于一定阈值的点我们认为是背景点,赋零值;反之,则认为该像素点为前景点,赋当前帧的深度值,即:

其中th为深度传感器的系统误差。即在误差允许范围内只包含用户腿部和脚部深度信息。

顶视虚拟相机深度数据的恢复。根据公式(6),

Figure BDA0002052760460000113

上每一个有效像素点pd都可以得到Cv相机坐标系下的三维点Pd,然后通过Cv的内参Kv以及相对于Cd的外参数Rv2d和tv2d反投影得到像素点pv,进而得到

Figure BDA0002052760460000114

Figure BDA0002052760460000115

这个操作过程相当于将Cd拍摄到的深度信息转化为三维点云,然后利用Cv从上向下观测,得到的顶视信息。值得注意的是,为了排除腿部运动导致

Figure BDA0002052760460000116

中脚部信息被腿部信息遮挡,所以公式(10)中Z小于一定阈值的将直接被舍弃。这个阈值可以定义为l-h,其中l为上文提到的Cv相对于地面的距离,它将是

Figure BDA0002052760460000117

计算过程中Z的最大值,h为一般脚底到脚踝距离,设定为250mm。

此外,在

Figure BDA0002052760460000118

和Iv均会随机出现一定的离散噪声,为了保证脚部数据的准确性,需要去除这些随机散点噪声。可以在各自计算过程的最后一步加入连通域检测机制,并选取最大的连通域作为脚部信息的待选区域,从而将剩余的区域作为噪声区域进行过滤。

至此,参见图3a至图3c,得到了脚部(近似脚底到脚踝部分)的多角度侧视信息

Figure BDA0002052760460000119

以及顶视信息

Figure BDA00020527604600001110

由于N个深度相机已经标定在了同一个世界坐标系下,所以每一台深度相机从每个视角计算的到的

Figure BDA00020527604600001111

整合在一起,形成了一个相对完整的俯视足印

Figure BDA00020527604600001112

参见图3a至图3c,基于顶视图的脚部位置计算及方向预测。

首先,在顶视图Iv的脚部区域中,以连通域操作对潜在的双脚进行分割(所谓潜在是指用户在体验过程中可能只有一只脚在指定区域的地面上)。利用联通域的像素数量作为足印的面积,以提前设定好的足印面积阈值,对当前存在的连通区域进行筛选。从而得到足印1的掩码图F1和足印2的掩码图F2

其次,参见图4,针对Fi,i∈[1,2],以足印各像素点在图像中的位置(u,v)计算一个合适的外切矩形来定位足印的位置。第一,将Fi分别向图像坐标系的x,y轴方向投影,取得其长度L和W。第二,通过图可以看出,如果L=W,表明足印的主方向恰好为45°或135°。当L≠W,我们可以通过L/W的关系可以计算出当前主方向(所谓主方向指的是脚尖和脚后跟的连线,鞋长方向)的大致角度。第三,根据当前角度和45°的差异△θ,进而计算旋转矩阵,使得坐标系进行旋转后,重新计算L和W。第四,迭代此操作直到计算的L=W,同时累计记录旋转关系∑△θ。最终可以得到一个外接足印的方形,其对角线即为足印的主方向或其垂直方向,然后将外接方形的坐标旋转-45°,即为原始图像坐标系下的方形位置。

方形对角线(即主方向)得到直线L1:y=kx+b,该直线为该脚的主方向。然后利用k和-1/k两个斜率遍历需按照脚部区域的边界,最终Iv中脚部区域由La:y=kx+bmin、Lb:y=kx+bmax、Lc:y=-1/kx+bmin和Ld:y=-1/kx+bmax四条直线围成的矩形区域所确定。

至此,如图4所示,确定了Cv视角下脚部的主方向(L:y=kx+b)以及位置信息(La,Lb,Lc,Ld四条直线合围的矩形区域)。

接着,基于融合相机视角的脚部方向综合预测。由于L所确定的主方向是双向的,所以还需要进一步确定脚尖方向(或者脚后跟方向),从而唯一确定用户脚部的前向(或者后向)。经过观察人类脚部构造可知,脚踝距离脚尖的距离一定远远大于脚踝距离脚后跟的距离。同时侧视图中,由于前视相机和场景的关系,可以得知脚踝一定高于脚底(即脚踝的像素纵向位置小于脚底的像素纵向位置)。由此两点,产生如下计算方案:

在侧视图中,统计脚部区域的像素纵向位置,得到最大值vmax(认为是脚底最低处)和最小值vmin(认为是脚踝最高处)

在侧视图中统计脚部区域的像素纵向位置v<vmin+r·(vmax-vmin)的像素点集合{p|vp<vmin+r·(vmax-vmin)}。其中r为脚踝在整体脚部信息中的比例关系,考虑到误差和数据有效性,一般取r∈[0.2,0.4]。

根据公式(6)和公式(10)将上述像素点集合重投影映射到顶视深度信息中,形成顶视深度数据的一个像素集合点,并计算这个集合的位置中心,记为pc。过点pc、斜率为-1/k的直线记为Le:y-yp=-1/k(x-xp)。直线L分别于Lc,Le,Ld交于一点,分别记为pllc、plle和plld,如图4所示。

如果||pllc-p11e||2>||plld-p11e||2,则认为pllc为脚尖位置,反之则认为plld为脚尖位置。

至此,确定了Cv视角下的脚部的主方向,包括脚尖位置pt和脚后跟位置ph。脚部关键数据生成(渲染数据和脚长数据)。Cv视角下的脚尖位置pt和脚后跟位置ph,根据公式(6),易得在Cv视角下的三维坐标点

Figure BDA0002052760460000132

另在

Figure BDA0002052760460000133

的正上方设置一点

Figure BDA0002052760460000134

Figure BDA0002052760460000135

Figure BDA0002052760460000136

其中thz是小于Cv视角下地面Z的任意数据。由于向量和向量

Figure BDA0002052760460000138

相互垂直,故

Figure BDA0002052760460000139

Figure BDA00020527604600001310

三个点确定了用户脚部在三维空间中的位置、方向和大小。根据Cv的外参,该三个点可转化为世界坐标系下的三个点Pt、Ph和Pu。向量PhPt的方向确定了脚部的方向,模值确定了脚长。该脚长数据可作为用户选择鞋码的参考依据。判断左右脚以及关键点数据稳定性滤波。得到了F1和F2在世界坐标系下的两组关键

Figure BDA00020527604600001311

Figure BDA00020527604600001312

参见图5a、图5b和图6,易知

Figure BDA00020527604600001313

三点均在以

Figure BDA00020527604600001314

为原点,向量

Figure BDA00020527604600001315

为方向的坐标轴的正方向上(即右脚永远在左脚的右侧)。所以通过此,可以确定F1和F2的左右脚关系。

另外,由于在实时运行过程中,深度传感器在每一帧得到的深度信息在细节上都或多或少的会有出入,这些细节在一定程度上会影响足部关键数据的准确度,进而从视觉上会影响脚部的位置、方向和大小。故在此引入卡尔曼滤波器,以足部的位置、方向和长宽作为观测值,对当前关键点数据进行预测改进。鞋类产品渲染结果与实时场景帧数据融合。

首先,对于鞋类产品的三维模型进行预处理,将其坐标系的原点移动至脚后跟中心,x轴方向指向脚尖方向,y轴方向垂直于脚底面向上。在渲染环境的世界坐标系下,将模型移动到Ph点后缩放至Pt与脚尖重合。

然后,在渲染环境的世界坐标系下,设置一个与Cc完全一致的相机(包括内外参数)。然后利用渲染算法进行渲染得到RGB渲染帧数据Is,该数据的有效区域即为鞋类产品在用户脚部方向和位置投影在Cc视角下的具体视觉效果;无效区域置零值。

最后将Cc视角下的渲染帧Is有效像素逐一融合至Cc视角下拍摄帧数据Ic,形成最终的融合数据,推至显示设备,供用户进行视觉效果体验。

本实施例完全模拟了用户面对试鞋镜真实试鞋的视觉效果体验。可以实时地进行用户脚部与鞋类产品的三维模型的融合,并可以在任意视角下进行展示,同时用户无需有任何额外的诸如脱鞋、等待重建等操作过程;

本实施例可以在用户感受虚拟试鞋的视觉效果体验过程中,精准计算用户的脚部尺寸,该部分数据可以作为用户选择鞋类产品鞋码的参考依据;

本实施例利用单视角的RGBD相机,相对于其他产品,成本很低,同时消除了复杂的用户操作。

上面结合附图及实施例描述了本发明的实施方式,实施例给出的并不构成对本发明的限制,本领域内熟练的技术人员可依据需要做出调整,在所附权利要求的范围内做出各种变形或修改均在保护范围内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种构建人体点云的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!