揭秘京东基于计算机智能和仿真技术的虚拟试衣系统

开发 后端
虚拟试衣技术是增加服装电商销量,减少退货率的有力武器,十多年来全世界不断有公司在研发实用的商业解决方案,虚拟试衣商业解决方案的难点主要在于试衣效果(个性化程度),用户操作难度(易用性),运营成本(虚拟试衣模特与服装的制作)这三者的良好平衡上。

虚拟试衣技术是增加服装电商销量,减少退货率的有力武器,十多年来全世界不断有公司在研发实用的商业解决方案,虚拟试衣商业解决方案的难点主要在于试衣效果(个性化程度),用户操作难度(易用性),运营成本(虚拟试衣模特与服装的制作)这三者的良好平衡上。

一款实用的虚拟试衣商业解决方案应该具有良好的个性化试衣效果(用户可接受),简单的用户交互(用户可上手),低廉的运营成本(商家可接受)。国内外的虚拟试衣产品

德国弗劳恩霍夫学会的科学家们用三维仪扫描用户身材,手工建立服装建模的方式解决虚拟试衣技术问题,试衣效果较好,但易用性低,一般用户很难独立操作,三维扫描仪价格较高,用户无法做到人手一台,服装的建模成本也很高,商家难以接受。

H&M公司开发出标准试衣模特加服装搭配的虚拟试衣产品,但服装只能在标准模特身上试穿,模特不能调整身材,也不能换成用户的头像,成本低廉,但没有达到个性化试衣的目的,用户仍然只能看到别人(标准模特)试衣的效果,用户接受度低,实用程度不高。

加拿大MyVirtualModel公司的解决方案是通过用户的头像照片和身材参数建立三维虚拟试衣模特,试衣模特的长相和身材与用户相似,仿真度高,试穿效果好,但用户建立虚拟试衣模特的操作难度较高,易用性差,服装制作的难度和成本也较高,商家接受度低。

爱沙尼亚的Fits.Me公司研究出精确的服装褶皱仿真算法,服装的尺码仿真度很高,已获得大笔的风险投资(约1000万美元),但服装适应范围很窄,目前以衬衫为主,服装制作成本也很高(约150美金/件)。

他们还研究出了试衣机器人,该机器人有2000块不同的身体模块,可以模拟大部分人的体形特征,在成衣制造商那里收集各种数据存成照片汇入数据库,当你网购的时候,只需在网站输入你的穿衣数据,试衣机器人会重现出穿衣情况,这个方案的难题在于对海量的服装需要在机器人身上逐一拍照,每种服装需要拍摄各种身材下的试穿效果照片,拍摄工作量大,不能支持服装搭配(搭配数据海量),不能支持用户头像,并且目前也只有上半身的机器人。

国内也有不少公司也推出了虚拟试衣间产品,但基本都是采用简单的二维拼图技术,达不到个性化虚拟试衣的目的,效果不好,用户接受度低。

 

y京东虚拟试衣系统的特点:

我们来定义一下个性化虚拟试衣的功能要求:

1、虚拟试衣模特可以使用用户自己的头像;

2、虚拟试衣模特的身材可以自由调节;

3、虚拟试衣模特的姿势可以自由调节;

4、用户可以在虚拟试衣模特身上自由搭配服装;

我们再定义一下个性化虚拟试衣产品的商业化要求:

1、试衣效果较好,对用户网上购衣具有参考价值;

2、用户操作难度低,易用性强;

3、不依赖特殊硬件,对用户没有额外的成本要求;

4、服装制作速度快,成本低,商家可以接受;

我们的研究成果是从智能和仿真两个技术方向解决个性化虚拟试衣的功能和商业化要求,目前已经做到通过用户头像照片半自动建立用户试衣模特,通过服装照片快速生成可以试穿的虚拟服装,通过仿真技术模拟服装在不同身材,不同姿势模特身上的试穿效果,易用性较好,成本低,是目前业界最接近商业化的解决方案之一。京东虚拟试衣系统技术原理

京东虚拟试衣系统实现了服装的平拍(或立体拍)正面照片映射到个性化试衣模特身上的算法,服装的平拍正面照片包含了服装正面的全部图像信息,服装的袖子和主体之间没有重叠,服装映射到个性化试衣模特身上时根据模特的身材特征做出适当的变形,体现出服装和模特之间的关系,能够在服装尺码和搭配上给用户视觉提示。

虚拟试衣模特是正面3D的,在正面和3D的约束下,服装只需要提供正面照片,免除3D建模,成本低廉,3D技术使试衣模特在Z方向具有深度信息,可以感受灯光的影响,产生立体感,比2D技术的试衣模特更加具有真实感。

虚拟试衣模特具有关节和蒙皮,可以改变姿势和身材,姿势的改变通过关节旋转实现,身材的改变通过关节位置的变化和蒙皮的变化实现。

虚拟试衣模特包含,颈关节,左肩膀,左手肘,左手腕,右肩膀,右手肘,右手腕,腰关节,左髋关节,左膝关节,左踝关节,右髋关节,右膝关节,右踝关节共14个关节。

另外注意,LVS需要向托管商至少申请多一个ip来做Visual IP,貌似是不能用本身的IP来做VIP的。要做好LVS管理员,确实得跟进学习很多有关网络通信方面的知识,就不再是一个HTTP那么简单了。

为保证关节转动时人体的外轮廓过渡自然,蒙皮之间通过高次贝塞尔曲线平滑。

虚拟试衣模特需要和人体皮肤配准,关节与真实人体对应,网格上的每一点通过UV坐标映射到皮肤上的像素点。

UV坐标是指u,v纹理贴图坐标的简称,它定义了图片上每个点的位置的信息。这些点与3D模型是相互联系的,以决定表面纹理贴图的位置。就好像虚拟的"创可贴",UV就是将图像上每一个点精确对应到模型物体的表面。

在点与点之间的间隙位置由软件进行图像光滑插值处理.这就是UV贴图。UV坐标的取值范围一般是[0,1]图像的左上角UV坐标值是[0,0],图像的右下角UV坐标值是[1,1]。

在初始图中,模特身体图和虚拟试衣模特骨骼图是匹配的,轮廓线内所有三角形的顶点在图像的中的位置正好等于其UV坐标值,模特身体不发生任何变形。

U=X/W

V=Y/H

式中:X是顶点到图片左边的像素距离,W是图片在X方向的总像素数量,Y是顶点到图片上边的像素距离,H是图片在Y方向总像素数量。

虚拟试衣模特的头部由128个点确定边缘,每个点向中心连线和旁边的点组成三角形,所有的三角形组成人脸轮廓包括内部填充,人脸边缘还有一排小三角形使边缘具有渐淡的虚化效果,使人脸和背景的结合更加自然融洽。

用户头像自动从用户上传的照片中提取,这里有一个关键技术:自动定位头像边缘。

人脸定位通过OpenCV的“haarcascade_frontalface_alt.xml”模板,调用detectMultiScale函数获取人脸定位矩形框,该矩形框的中点是三角形的中心点。

人脸的边缘点通过人脸边缘检测自动定位,检测的方法是:

***步,自动检测照片中的头像位置,以头像为中心对照片进行自动裁剪,保留头像,裁剪掉其他无用的部分。

第二步,以用户头像为中心画两个直径不同的圆圈,***个圆圈的直径和头像的直径相同,第二个圆圈的直径是头像直径的1.5倍。

第三步,设定圆圈内部为头像,***个圆圈和第二个圆圈之间的部分可能是头像,第二个圆圈的外部为背景,使用GrabCut算法初步获得头像范围。

第四步,将第三步初步获得的头像范围用封闭曲线包围起来,并在曲线上均匀分布8个控制点。

第五步,用户可以微雕曲线上的控制点,使曲线更加靠近头像边缘,也可以不调整。

第六步,将曲线的外部设定为可能是背景,曲线的内部设定为可能是头像,再次使用GrabCut算法获得精确的头像边缘。

头像边缘调整过程中,关键点之间的曲线使用Catmull-Rom曲线插值算法生成,Catmull-Rom算法通过4个关键点P0,P1,P2,P3获取位于P1和P2之间的任意点,用参数t来确定点和P1,P2的位置关系,t=0表示点和P1重合,t=1表示点和P2重合,t在[0,1]之间表示点位于P1至P2之间。

P1至P2之间的点通过以下公式求出:

式中,q(t)表示由参数t确定的位于P1-P2之间的点。t的取值范围[0,1]

为了使头像和软件中事先准备好的模特身体完整地结合在一起,需要对头像的肤色进行检测,用检测的结果调整身体的肤色,使两者的肤色基本一致。

肤色检测的算法为:

***步,将虚拟试衣模特身体图片中的肤色分解成RGB分量并求平均值;

第二步,定位用户头像的边缘,并用曲线将边缘连接起来形成封闭区域;

第三步,将曲线包围的封闭区域分成头发区域和脸部区域两个封闭区域;

第四步,对脸部区域内每一个像素点判断是否为属于肤色范围;

第五步,对脸部区域内属于肤色范围的所有像素点求RGB分量平均值;

第六步,将第五步得到的RGB分量平均值除以***步得到的RGB分量平均值得到身体肤色RGB分量调节因子;

第七步,将身体图片中的肤色RGB分量分别乘以第六步得到RGB分量调节因子,以匹配用户头像肤色;

第八步,将匹配好肤色的身体图片和用户头像组合在一起得到整体感良好的完整虚拟试衣模特。

如果满足公式的条件,则颜色属于肤色范围。虚拟试衣中的服装分为上衣,裤子和配饰,每种服装都有相应的结构,比如上衣结构: 

结构由关键控制点和3D网格构成,关键控制点起到骨架的作用,可以调节服装的尺寸和形状,3D网格用于渲染出具有立体感和质感的服装效果。京东iPad版虚拟试衣产品

for iPad v1.1版的主界面左侧是虚拟试衣模特,右侧是服装列表,分成上装,下装,鞋子,配饰4类(后续版本还会增加其他品类),下面的横条是工具栏,用户点击工具栏上的文字切换相应的功能。

用户可以用内置的虚拟试衣模特试衣,也可以体验个性化试衣,要体验个性化试衣首先需要用户提供一张正面免冠头像照片,就像证件照一样。点击工具栏上的“用户拍照”即可用iPad内置的摄像头拍摄一张头像照片,拍摄照片的时候需要注意背景,光线和姿势,选择干净的浅色背景为佳,光线明亮均匀,头部保持正向,目光平视为好。

照片拍好后几秒钟后会告知用户识别结果,如果识别成功,用户可以选择性别,并进入头像个性化界面。界面左侧是软件帮用户自动建立的虚拟试衣模特,界面右侧是用户的头像照片和软件自动识别出的头像轮廓,如果用户对软件识别出的轮廓精确度不够满意,可以在这个界面上手动修饰一下。

移动完小圆点,用户会发现小圆点之间的红色的头像轮廓线变得非常光滑,缺乏一些头像的细节,比如耳朵,头发的复杂边缘,这时可以点击一下下边工具条上的“美化边缘”按钮,软件会自动帮用户找到这些细节所在,使右边的虚拟试衣模特看上去更加真实,更加自然。

软件会自动帮用户识别头像的位置,大小和肤色,准确地将头像和虚拟试衣模特的身体结合在一起,虚拟试衣模特身体的肤色会和头像的颜色自动匹配。

有时候,由于用户头像照片中的光线,姿势,发型的差异,精确度会有些差异,比如虚拟试衣模特的头部显得有点偏,大小不太合适,这时用户可以非常方便的在这个界面进行微调。

好了,现在虚拟模特的头像调好了,头像已经个性化了,但身材还没有调节,请点击下边工具条最右边的“确认头像”按钮进入身材个性化界面。

在这个界面中,首先用户可以用手指滑动左侧上边的两个滑动条调节虚拟试衣模特的身高和体重,身高和体重的变化会立刻反映在界面中间的虚拟试衣模特身上,调节好身高和体重后,如果对身材还有一些个性化需求,则可以有8个体型特征可以调节,个性化完毕,请点击面工具条最右侧的“完成确认”进入虚拟试衣界面。

现在,你可以尽情地给你的虚拟试衣模特搭配服装了,点击虚拟试衣界面右侧的服装列表上服装即可给虚拟试衣模特穿脱衣服,衣服含有层次属性,用户只要点击(或者拖拽到虚拟试衣模特身上)即可,服装会按正确的层次试穿,比如西装一定会穿在衬衫的外面,不管用户先穿西装还是衬衫。

本文作者:京东研发CTO办公室资深架构师 赵刚

责任编辑:王雪燕 来源: 京东
相关推荐

2017-07-18 16:44:38

英特仿真华为大数据

2019-06-12 12:08:50

戴尔

2013-07-04 10:07:18

谷歌量子计算机

2021-06-07 09:00:00

科技深度学习技术

2017-07-13 10:31:28

亚马逊仓储大数据

2021-08-23 17:48:16

人工智能虚拟现实VR

2012-04-13 16:52:41

阿凡达超级计算机Linux

2017-12-25 08:39:21

网络技术应用

2011-04-02 13:46:39

2011-04-02 13:40:30

2011-04-02 13:44:04

2010-04-02 09:42:24

2014-04-10 09:40:51

System 360计算机计算机系统

2011-12-28 13:30:36

云计算Amazon超级计算机

2021-06-16 11:13:49

曙光

2012-09-03 10:05:32

好奇号美国宇航局

2013-03-06 10:03:11

虚拟化超级计算机大型机

2023-06-02 22:40:26

物联网机智云

2017-03-10 15:30:21

机智云机智玛莉智能管家

2017-07-28 10:38:13

大数据云计算
点赞
收藏

51CTO技术栈公众号