计算与测试
基于体模型优化的虚拟试衣算法
李晓璇, 伍新华, 刘 钢
(武汉理工大学 计算机学院,湖北 武汉 430000 )
摘 要 : 针对目前虚拟试衣人体模型存在的精度和时效上的问题,提出了一种基于体素八叉树的优化的体模型的高效、真实感强的虚拟试衣算法。将空间划分为若干体素,与人体表面相交的体素构成人体表面模型,且体素采用八叉树结构存储。通过Kinect采集的人物的深度图像来计算八叉树中体素的符号距离函数(SDF);使用Marching cube融合图像彩色纹理并渲染出逼真的三维人体模型;提出了碰撞检测响应算法。实验结果表明,提出的方法增强了人物模型的真实感,八叉树结构有效缩短了碰撞检测时间,具有较强的实用价值。
关键词 : 虚拟试衣; 体素; 体模型; 八叉树; 碰撞检测
0 引 言
计算机电子商务迅速发展起来后,网上交易己经成为服装业的热门销售方式。为了与电子商务发展相适应,方便人们网上购买服装合体美观,需要真人三维模型的服装展示,方便快速地看到试衣效果。应用于虚拟试衣的真人三维模型需要通过三维人体表面重建[1~3]获得。
有些基于软件的人体建模是根据人体体型特征,利用通用建模软件3Dmax[4],杨鲁等人[5]构建标准化三维人体模型。吕珍等人[6~8]利用OpenGL结合Delphi读取现有三维软件3Dmax中的人体与服装三维数据3 DS文件,进行人体模型的简单服装试穿,减少了实现的复杂度。还有些是基于人体照片信息的人体建模,利用拍摄人物的二维图像,通过提取人体轮廓线、特征尺寸等快速生成三维个性化人体模型[9,10]。Geisen G R等人[11]采用神经网络系统与图像识别方法检测头部关键特征点,通过标定点定位其他特征点。这两类方法能快速构建的人体模型,但不够精确,应用场合有限。
(1)防止二次污染。在经济技术适用性满足常州市河道清淤特点的前提下,比选并引进国内外先进的清淤技术和设备,多进行试点,推广环保清淤。同时开展对河道底泥的分析研究,制定出有针对性的疏浚底泥后续处理的方法,防止二次污染的发生。
方差分析结果表明,播种方式对苗高影响差异极显著(FC=262.02>F0.01(2,2)=99.0),播种时间、种实采后处理方法对苗高影响差异不显著(FB=1.29、FA=0.952,均小于F0.05(2,2)=19.0),各因素对粗糠树苗高影响的顺序依次为播种方式>播种时间>种实采后处理。在温棚中播种粗糠树的苗高最大,其次是露地低床,露地营养袋播种苗高最小,结合多重比较结果(表3)可以看出,用剥除果皮的种子,10月15日在温棚苗床播种苗高最大。
基于三维扫描的人体建模是利用三维人体扫描设备扫描人体获得人体表面的点云数据,通过对点云数据进行降噪、精简、孔洞修补、表面重建等构建个性化的三维人体模型。应用该方法构建的三维人体模型精确,应用场合广泛,但由于在进行三维重构时大多数都涉及到点云计算和点云拼接,而生成点云的计算量相当大,三维重构的时间长度。
随着我国经济的不断发展,我们逐渐进入信息社会。在当前电视行业快速发展的时代,众多的电视节目为了吸引人们的眼球不断地进行创新,越来越多不同种类的节目逐渐进入人们的视野。但是,新闻节目仍然是众多电视节目中最有影响力以及权威性的节目。为了适应当前时代的发展,新闻播音主持的方式需要做出一定的改变。传统严肃的主持方式已经无法满足人们的需求,而新闻播音主持的好坏对于新闻节目的收视有着比较大的影响。为了提高新闻节目的收视率,新闻播音主持应该掌握个性化的主持风格,将很好的新闻效果展示给观众,从而满足大众群体的需求。
为了提高重建人物模型的精度和速度,提出了基于Kinect[12,13]的人体模型构建方法。利用Kinect采集的图像信息构建三维试穿者模型,并提出使用体素八叉树[14]存储体模型,以及布料与此人体模型的碰撞算法及布料自碰撞算法。体素八叉树的结构可以提升查询速度,减少内存消耗,同时此树形结构在虚拟试衣的布料与人体模型的碰撞阶段,也可以显著减少人体与布料的碰撞测试的数量,节省虚拟试衣响应时间。
1 构建体素八叉树
(i ,j )T=π (x )
图1 构建流程
2 基于体素八叉树的体重构方法
Hoppe等人通过构造点到物体表面的符号距离函数 (signed distance function,SDF)来重建物体表面。因此,可以用SDF表达物体的3D几何结构,SDF为0的体素即为物体所在处。本文将SDF定义为每一个体素的中心点到模型表面对应点的有向距离值。
本文设计的体缓存为8×8×8的体素块,每个体素有一个索引坐标:(0,0,0)~(7,7,7)。由于体素块与坐标轴对齐,因此,由索引坐标为(0,0,0)的体素的中心点的坐标p o 和体素的边长r ,可计算索引(x ,y ,z )的坐标o i
(1)
获取到深度图像后,为了根据当前深度图计算SDF值,需要先找到每个体素中心点在当前深度图中的投影点,然后结合投影点深度值计算投影点的三维点坐标,最后精确计算出体素中心点与投影点之间的距离即可求出每个体素中心点到当前帧深度图像所观察到的表面的距离。
图2 体素中心点到表面距离
像素点(i ,j )T在当前的摄像机姿态形成的坐标系下的深度z d ,此时该投影点在三维坐标系下的坐标为
孩子上初中后,辛娜结束了相夫教子,她找了一份工作,在一家地产企业做销售。窗口行业,免不了要涂脂抹粉展现魅力。举手投足间,辛娜展现了一种成熟少妇的风韵,极具自信和魅力。职业套装下的那两条长腿也如一对复苏的蝮蛇,彼此交替地焕发出某种足以致命的毒素。
x =(x ,y ,z )T=R T(x G -t )
(2)
而将三维空间上的点C =[(x ,y ,z )]T投影到二维图像平面得到的相应的点的坐标为
(3)
式中f x ,f y 为相机在x 轴和y 轴方向上的焦距,c x ,c y 表示偏移值。结合式(2)和式(3),将该体素在当前帧坐标系下对应的坐标点投影到二维图像平面的坐标为
体素八叉树采用空间分解法建树并用叶节点保存体素信息,所有的节点操作都可以简化为对树结构的遍历。构建过程中利用如图1(a)所示的体缓存的特殊结构,其长、宽、高与场景全局坐标系x ,y ,z 坐标轴平行,左下角和右上角两点坐标决定了一个区域,用点序列表达为〈A ,G 〉=〈(x ,y ,z ),(x ′,y ′,z ′)〉,其中,x <x ′,y <y ′,z <z ′。然后分别以X =(G .x +A .x )/2,Y =(G .y +A .y )/2,Z =(G .z +A .z )/2平面作为划分体缓存立方体的平面,这样递归划分直到节点为空或者其只包含一个体素。构建流程图1(b)中,虚线表示省略根节点R 和非叶节点N 之间其他层次的非叶节点。根节点R 表示整个空间区域,非叶节点N 最终被分解成8个不再分解的子区域L 每个叶节点L 包含一个体素,体素的边长为1。
(4)
以一个体素为例,如图2所示,对假定的体素,可以获得其在三维空间的坐标x G ,并根据当前的摄像机的姿态即旋转和平移量R ,t (已经通过光流法计算得到较为准确值),则该体素的中心点C 在当前帧坐标系下对应的坐标为
(5)
体素中心点到表面的距离即为体素中心点与点在当前坐标系中的距离为
(6)
此时,负值表示体素在表面因为距离表面越近的体素对重构的影响更大,所以希望距离表面越近的体素有更高的权重,而距离表面越远的体素权重可以较低,因此需要对不同的体素设置不同的权重。使用的权重函数为
w =(v ·n )2
(7)
式中v 为视线方向单位向量,n 为像素中心点的法向量,w 值越小表示误差越小。
基于每帧深度图像计算得到的SDF合成为一个SDF,所有体素的合成可并行进行。
假设所有的距离测量都是正态分布的,将每帧深度图像计算得到的SDF值合成的一个SDF值即为对SDF函数Ψ 观察数据的似然最大时的解
(8)
即最优的ψ 是所有测量的加权平均,D (x )即当前帧图像合并成的一个SDF值,这个值和权重可随着新的深度图的加入增量式更新
(9)
在虚拟试衣过程中,由于重力等各种外力的作用,为了有效避免布料“穿透”人体模型或布料相互“穿透”,必须在虚拟试衣过程中对布料裁片和人体模型以及裁片自身进行碰撞检测及响应。根据前面构建的体模型的八叉树结构,提出将布料进行三角剖分后对布料裁片构建AABB 包围盒八叉树,对裁片—人体模型碰撞以及裁片自碰撞进行检测,可以有效提高碰撞检测速度。
由于入库河道具有行洪、排涝、引水、灌溉等功能,在河道生态建设时,应根据不同的功能要求规划设计不同的横断面形式。横向植被配置应考虑多层次性,不同位置不同植被。
(10)
式中d i (x )和w i (x )为第i 帧图像求得的SDF值和权重值。
最后根据三原色(RGB)图像和计算出的权重值进行色彩融合,估计出模型的彩色纹理,并使用Marching cubes[15]算法得到等值面的点面信息,并在人体模型与布料的碰撞检测中用到该数据,最后进行三维立体的渲染并将结果显示出来。
求解水电站日负荷优化分配的混合整数非线性规划模型//申建建,张秀飞,王健,程春田,李秀峰//(19):34
3 碰撞检测与响应
W i+1 (x )=W i (x )+w i+1 (x )
本区所圈定的石墨矿(化)体基本位于自然电场电位负异常浓集区,区内自电负异常区段由石墨矿化带的碳质成分引起,范围较大,而个别激电异常地段因第四系风成砂土覆盖、地形切割、测线效应及硫化物富集干扰等多种因素引起的影响,与矿体对应性有一定的偏差,但整体上仍能反映石墨矿(化)体的存在,具有一定的有效性,在视极化率跳跃性强的高值激电异常地段可能存在多层隐伏石墨矿(化)体。
3.1 碰撞检测
3)如果结点相交,就继续遍历,最后在叶节点进行体素与布料三角片的相交测试。
1)在对虚拟物体进行碰撞检的时候,首先检查这两个模型的层次包围盒树根结点是否发生相交,若没有,则可断定两个物体间没有发生碰撞,如果两个根节点包围盒发生了相交,暂时还不能断定在两物体间一定有碰撞发生,有待对子树结点进行进一步碰撞检测。
2)如果在某个结点上,两个物体的包围盒不相交,那么以此结点为根结点的所有子树就不再需要进行相应的碰撞检测。可以大大减小检测次数,提高仿真速度。
时代的发展对创新型人才的需求也不断提升,面对与日俱增的社会压力与考验,要求学生冷静、客观地分析问题,以准确表达自己的想法,促进学生思维能力的发展。初中数学教学中,教师在教学中关注学生逻辑思维能力的培养,可以实现逻辑思维的锻炼及培养,培养学生的创新能力,促进学生更好的发展。
本文采用AABB 层次包围盒法,对布料裁片构建AABB 八叉树,对裁片—人体模型的碰撞区域进行检测,并及时响应处理。其具体过程为:
C/C复合材料具有导热性能优异、热膨胀系数低、耐腐蚀、摩擦性能好等优点[1-3],与轴配合工作时能自润滑,是一种优良的自润滑减磨材料,在汽车轴承、航空发动机密封环、密封圈等精密零部件领域具有广阔的应用前景[4-6].
在由八叉树结构确定了可能发生碰撞的包围盒节点后,采用《实施碰撞测试算法技术》[16]一书中所提到的三角片与三角片求交测试来具体进一步判断包围盒中的物体是否发生碰撞。
3.2 自碰撞算法
在虚拟试衣过程中,除了2D裁片与人体模型之间的碰撞外,由于裁片的动态变形,使得裁片间也有碰撞发生,因此必须进行裁片的自碰撞检测。
本文通过计算2D裁片相邻三角形法线夹角来对裁片自碰撞检测进行处理。通过分析,只有当裁片的相邻三角形法线的夹角较大时才有可能发生碰撞。建立2D裁片表面三角形邻域内的三角形列表,计算相邻三角形法线的夹角。设置角度阈值p ,只有当三角形法线夹角大于p 时,才进行碰撞检测,有效减少参与检测的碰撞元素,提高了检测效率。
4 实 验
如图3所示为本文提出的虚拟试衣算法的流程。首先,使用体素八叉树表示人体模型,并利用体感传感器Kinect完成人体模型的构建与更新;随后使用质点—弹簧模型进行衣物模拟;最后利用体素八叉树与质点弹簧模型实现对人体试衣的虚拟模拟。
图3 本文算法流程
通过手持Kinect摄像机围绕三维模型旋转1周获取三维模型的深度和彩色图像数据。在实验中扫描三维模型大约需要150 s,共采集到了2 400多帧数据。经过实验发现,保留220~260帧图像数据既可以有效地减少耗时也可以满足三维模型重构的精确度。
图4(a)为当前帧深度图像;图4(b)为当前帧深度图像;图4(c)中数据表示在体素化过程中每个体素中存储的占有该体素的对应物体点的颜色和SDF值。因为当前帧图像为第一帧,体素中的数据只是第一帧的图像信息;图4(d)表示为根据图4(c)中的数据重构到该帧图像时得到的三维模型。
校园足球课堂规则需要在师生的共同讨论下制定,双方都需要遵守。只要求学生遵守的课堂规则是不妥当的,这不是民主的规则,学生的思想会受到压制。民主的课堂氛围有利于学生生动活泼学习,健康快乐成长。另外,教师的身教重于言传。如果教师能够身体力行,是对学生最好的课堂秩序的目的性教育。
图4 第1帧图像的深度图像、RGB图像、属性值和重构结果
不同帧之间图像根据相机姿态计算得到两帧图像之间的重合部分,将两帧图像重合部分进行融合,将融合后的结果进行重构,得到清晰完整真实的三维人体模型。采用流行的弹簧—质点模型来进行布料的模拟。对于受力分析得到的常微分方程采用Verlet算法进行积分,并将网格划分为三角片。图5是用一个40×40的网格进行下落模拟的效果图。
图5 布料下落与人体的碰撞
布料在下落的过程中和与人体模型触后,形状随着时间变化而改变,不停留在人体上方。实验结果显示使用此体重构算法实现了显示逼真性的要求。
我们哥几个嘴上说着不接哥们儿朝洛蒙的电话。我去柜台上结完账出来时,看见哥几个都穿好了衣服,开始往地铁站走。地铁站黑乎乎的,这么晚了哪还有车!我们哥几个就叫停了一辆路过的出租车,扔给司机两百块钱,让他加足马力,抄近路直奔六环外冲去。
另外,本文对基于OBB包围盒和基于八叉树碰撞检测的实验数据进行对比,实验表明,对同一实验模型,OBB包围盒的创建时间是本算法的3.44倍,由实验结果可知,八叉树精确划分包围盒的简单性优于OBB,而OBB包围盒树中各结点上包围盒的方向任意性使得其需要更多的存储空间。
对两种算法的碰撞检测的各项指标进行了比较,八叉树精确划分包围盒的整体性能要好于OBB,其碰撞检测的速度约是OBB的1.475倍。该算法在速度上较OBB方法有所提高,为解决各种复杂环境中的碰撞检测问题提供了一条有效的途径,在虚拟试衣中多次换装的情况下极有优势。
5 结束语
本文以Kinect为传感器,实现基于体素八叉树的虚拟试衣人体模型的重建,并提出了基于此体模型的布料碰撞算法。实验结果表明,运用本文的方法,在提高重构的人体精度的同时,可以有效缩短碰撞检测的时间。
参考文献 :
[1] 林存瑞.面向个性化服装定制的三维人体重建研究[D].上海:东华大学,2010.
[2] 王征.基于视频的三维人体重建和运动捕捉[D].天津:天津大学,2009.
[3] SMOLYANSKIY N,HUITEMA C,LIANG L,et al.Real-time 3D face tracking based on active appearance model constrained by depth data[J].Image & Vision Computing,2014,32(11):860-869.
[4] 刘雁,王建军.浅谈3Dmax在人头建模中的方法与技巧[J].电子世界,2014(15):106-106.
[5] 杨鲁.基于MAYA的三维建模在虚拟现实技术中的应用[J].电脑知识与技术,2015,11(10):189-191.
[6] 吕珍,谢倩,祝双武,等.OpenGL导入3DS模型模拟服装试穿[J].西安工程大学学报,2014(4):440-444.
[7] 刘芳,刘贤梅.3DS文件读取、绘制与控制方法的研究与应用[J].计算机工程与设计,2009,30(19):4575-4578.
[8] 张晨,刘锦高.基于OpenGL和OpenCV的三维模型重建与数据处理[J].信息通信,2012(5):3-5.
[9] 朱紫阳,施霞萍,陈家训.基于部件分解的三维服装人体建模[J].计算机工程,2009,35(2):271-273.
[10] YUAN M,KHAN I R,FARBIZ F,et al.A mixed reality virtual clothes try-on system[J].IEEE Transactions on Multimedia,2013,15(8):1958-1968.
[11] GEISEN G R,MASON C P,HOUSTON V L,et al.Automatic detection, identification,and registration of anatomical landmarks[C]∥Proceedings of Human Factors & Ergonomics Society Annual Meeting,1995:750-753.
[12] 余涛.Kinect应用开发实践:用最自然的方式与机器对话[M].北京:机械工业出版社,2012.
[13] 朱涛,金国栋,芦利斌.Kinect应用概述及发展前景[J].现代计算机,2013(4):8-11.
[14] LAINE S,KARRAS T.Efficient sparse voxel octrees[J].IEEE Transactions on Visualization & Computer Graphics,2011,17(8):1048.
[15] NEWMAN T S,YI H.A survey of the marching cubes algorithm[J].Computers & Graphics,2006,30(5):854-879.
[16] 埃里克森,刘天慧.实时碰撞检测算法技术[M].北京:清华大学出版社,2010.
Virtual fitting algorithm based on volume model optimization
LI Xiao-xuan, WU Xin-hua, LIU Gang
(School of Computer Science and Technology ,Wuhan University of Technology ,Wuhan 430000 ,China )
Abstract : Aiming at the problems of precision and time-effect of virtual fitting human body model at present,an efficient and realistic virtual fitting algorithm for volume model based on voxel octree is proposed.Space are divided into several voxels,voxel intersects with body surface form body surface model,and voxel uses octree structure to store.Calculate the symbolic distance function(SDF)of voxels in octree by depth images collected by Kinect.Marching cube is used to fuse the color texture of the image and render the realistic 3D human model.A collision detection response algorithm is proposed.The experimental results show that the method enhances realistic sense of human model,and the octree structure can effectively shorten the time of collision detection,which is of great practical value.
Keywords : virtual fitting; voxel; volume model; octree; collision detection
DOI :10.13873/J.1000—9787(2019)05—0110—04
中图分类号 : TP 242.62
文献标识码: A
文章编号: 1000—9787(2019)05—0110—04
收稿日期 :2018—03—19
作者简介 :
李晓璇(1994-),女,硕士研究生,研究方向为计算机视觉。