综合虚拟试衣平台

【摘要】  综合虚拟试衣平台是一个完整的虚拟试衣体验系统,拥有电子商城、线下虚拟试衣设备、核心SAAS平台三个模块。人们可以在线上线下,通过鼠标选择场景、人物、衣物自动生成试衣动画,或是通过摄像头摆拍实时获取。用户可通过此平台体验从购买时预先通过虚拟试衣比较穿衣效果,到最终下单购买的完整流程。也可以通过线下设备二次体验多场景下的实时试衣效果。

【关键词】  虚拟换装,Unity3D,电子商城

目录

第1章 整体架构... 1

1.1 系统特点... 1

1.1.1 商城模块... 1

1.1.2 建模模块... 1

1.1.3 硬件模块... 1

1.2 系统实现... 2

第2章 电子商城模块... 3

2.1 商城概述... 3

2.2 商城实现... 3

2.2.1 基本功能... 3

2.2.2 核心功能... 4

2.3 重点和难点... 5

第3章 建模模块... 6

3.1 功能概述... 6

3.1.1 建模引擎... 6

3.2 功能实现... 6

3.2.1 人物模型... 6

3.2.2 虚拟场景... 7

3.2.3 衣物模型... 7

3.2.4 材质渲染... 7

3.2.5 运动效果... 7

3.3 重点和难点... 7

第4章 硬件模块... 9

4.1 硬件概述... 9

4.2 硬件方案... 9

4.2.1 相机方案... 9

4.2.2 芯片方案... 9

4.3 实现方案... 10

4.3.1 单片机介绍... 10

4.3.2 最小系统设计... 11

4.4 重点和难点... 13

结论... 14

参考文献... 15

 

 

图目录

图1.1 系统框架图... 2

图4.1 STM32F103R8T6引脚图... 12

图4.2 时钟电路原理图... 12

图4.3 复位电路原理图... 13

图4.4 电源滤波电路原理图... 13

 

 

第1章 整体架构

1.1 系统特点

完整的实时虚拟试衣平台,由以下三个基础模块构成:电子商城模块、建模系统、硬件模块。

1.1.1 商城模块

在线上展示中,电子商城无疑是最佳的用户入口。将用户预先录入的身体数据转化为3D模型,在商城对应商品入口处,结合建模系统中存在的仿真衣物、虚拟场景,动态展示试穿效果。

1.1.2 建模模块

Unity3D、Vuforia 作为优秀的虚拟现实开发引擎,支持深度学习动态建模、跨平台展示。虚拟场景、衣物仿真、人体骨骼等虚拟试衣必备模块都可通过Unity3D实时构建。结合独特的骨骼贴合算法,弹性算法,逼真的材质渲染,真实还原用户的试衣场景。

1.1.3 硬件模块

硬件模块由深度摄像头、单片机等构成。作为线下采集用户数据的通道,用户可以在摄像头前,通过抬手、转身等动作,实时录入人物模型信息。由摄像头通过主动式扫描对人体进行扫描导入,然后通过图像识别将身体模型转换为参数,传输到后台数据处理中心。

1.2 系统实现       

系统主要采用的技术包括三维动画建模、Unity3D引擎的C#脚本的编写、Vuforia的虚拟现实调配、摄像头图像采集与传输、图像智能分析、基于JAVA的SAAS平台搭建等,如图1-1所示。

 

图1.1 系统框架图

 

第2章 电子商城模块

2.1 商城概述

商城采用B/S模式,基于JAVA语言和MySQL数据库,分布式、集群架构。HTML、CSS结合的前端界面设计,系统分析和功能分析全面。智能UI设计,配合虚拟引擎展示模块,极大方便用户的选购,大幅提升用户购物体验。

2.2 商城实现

此商城主要涉及到商品展示、数据接口对接等内容。选购商品、收银台支付等,整个用户的实际购买流程在电商手机端、web端都可以得到完美呈现。

  1. 商品展示:推荐专区产品展示;新品热门产品区;虚拟换装商品区。
  2. 商品搜索:商品关键字搜索。
  3. 购物车:加入购物车、立即购买;修改、删除购物车内商品。
  4. 支付下单:订单查看、删除;订单支付;分享商品至微博、QQ等第三方社区。

2.2.1 基本功能

客户端功能需求分析:

购物用户的注册登录功能:在使用本购物系统的业务功能首先需要注册为本系统的会员.

商品搜索:可以搜索自己想要的商品信息;

浏览商品详细信息:客户能够浏览一个商品的详细信息包括虚拟试衣效果,价格,数量和介绍等信息;

预订功能:对自己喜欢的商品进行预订下单;

我的订单:对自己预订的商品的订单信息进行查看和管理功能;

服务端功能分析:

后台登录功能:管理员通过已分配的最小权限的管理员账号即可登陆系统后台,并拥有相应权限对应的功能;

商品管理:对商品进行增加、修改、删除、查询、发布、推广操作;

用户管理:管理员可查看会员信息,并对会员信息进行增加、修改、删除、查询,对不同的会员修改权限、权益等;

订单管理:管理员可以根据订单详情,分配订单数据,及时处理订单,对有问题的订单退换货操作等。

2.2.2 核心功能

在电子商城中,主要由三个核心部分组成,MySQL数据库,通讯中间件,基于JAVA的管理系统。

1.数据库:利用MySQL作为后台储存的数据库,主要有以下几部分

(1)用户表存放用户信息,注册登录等;

(2)收货地址放置收获地址,一个用户多个收货地址;

(3)商品分类表存放所有商品与级别分类(包括一级分类、二级分类);

(4)商品表存放商品具体信息;

(5)购物车包含多个商品信息以及用户id(标识哪个用户的购物车);

(6)用户订单表存放所有的订单记录,一个用户多个订单,具体包含订单号等字段信息;

(7)订单详情表存放一个订单所有的商品信息;

(8)支付信息表存放跟踪订单的支付情况信息(何时下单未支付、何时完成支付等)。

2.中间件是介于独立客户端和独立后台处理系统之间的独立系统软件或是服务程序,由分布式应用的特性决定,各个模块之间都需要借助该类中间件以达到在不同技术,不同平台,不同设备间共享资源、分配数据的目的。中间件由其特性决定,必须高于服务器操作系统/客户机,以达到管理计算机资源和网络通讯的目的。在多个独立应用程序、独立系统之间,仅仅拥有数据接口还不能完全实现信息交换、通讯的目的。分配中间件,用以达到管理各个组件使其各个部分能达到交换信息的目的也是必须的。因此,我们引入了Dubbo、Zookeeper等分布式常用中间件使得整个系统耦合度大大降低,以便于独立开发、部署、测试,提升开发效率。更易于系统级别的横向扩展,服务的复用性更高。

3.基于JAVA的管理系统:在管理数据库上我们选择了使用基于JAVA开发语言的管理系统,能够让我在后台系统中设计具体的模块分区,同时JAVA加MySQL也给我的开发带来了以下的优点:

(1)MySQL是一个快速、多线程、多用户的SQL数据库服务器;
  

(2)MySQL的核心程序采用完全的多线程编程;
  

(3)MySQL可运行在不同的操作系统下;
 

(4)MySQL有一个非常灵活而且安全的权限和口令系统;
 

(5)MySQL支持ODBC for Windows;
  

(6)MySQL支持大型的数据库;
 

(7)MySQL拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性;
  

(8)强大的查询功能;
  

(9)JAVA为MySQL提供了强力支持,JAVA中提供了一整套的MySQL函数,对MySQL进行了全方位的支持。

2.3 重点和难点

(1)软件和硬件的要求大幅提升

实时“虚拟试衣”展示模块对硬件的带宽与处理速度有较高要求。因此采用高并发、分布式架构能有效提升整体效率。然而此架构对开发人员有着较高的技术要求。

(2)硬件数据包丢失

硬件模块单片机数据发送效率较低,可能存在数据断流等情况,需要使用消息队列对数据包进行分批次处理、同步。

(3)算法精度要求较高

模型、人物同步部分中,对骨骼贴合算法、服装弹性算法精确度要求较高。

 

第3章 建模模块

3.1 功能概述

在虚拟换装系统的建模部分中主要包含以下几个部分:人物模型设计、人物动画设计、服装设计、场景设计、交互设计。

3.1.1 建模引擎

在建模部分我们需要使用两款优秀的虚拟现实建模引擎Vuforia与unity3D。

Unity 是一款由 Unity Technologies 研发的跨平台2D / 3D 游戏引擎,可以用于研发电子游戏,Unity 还是被广泛用于建筑可视化、实时三维动画等类型互动内容的综合型创作工具。

Vuforia Engine是AR开发中使用最广泛的平台,支持领先的手机,平板电脑和眼镜。开发人员可以轻松地为Android,iOS和UWP应用程序添加高级计算机视觉功能,以创建与对象和环境实际交互的AR体验。

3.2 功能实现

实时虚拟试衣模块中对应的“人物模型设计、人物动画设计、服装设计、场景设计、交互设计“具体实现如下。

3.2.1 人物模型

根据用户预先输入的身体数据,或根据摄像头录入的图像数据分析,采用3DMAX、Unity3D等专业建模软件,在预设框架内根据用户的属性,利用C#编写相应算法,自动生成对应的人物模型,并提供多种的选择方案供用户自由选择。

3.2.2 虚拟场景

场景搭配是用户在试穿衣物的时候无法达到但是又十分需要的一个功能。在虚拟试衣中虚拟场景就变得更加重要,利用Unity3D的场景功能,独特的光源特效,360度无死角的观察方式,让用户可以从各种场景体验衣物的实际效果。方便用户预览并体验。场景预设或是通过自定义场景,都可以很好的提升用户的体验。

3.2.3 衣物模型

优秀的GUI表现出的衣物亦是本系统的核心之一。用户单击鼠标即可快速更换。

3.2.4 材质渲染

材质是衣服的制作核心之一。衣物材质需要有较高的还原度,低还原度的衣物数据对用户的体验会造成偏差。Unity3D中独特的材质系统可以很好还原物品的真实效果。

3.2.5 运动效果

运动效果是人物运动和衣物相结合的综合效果。在Unity3D和Vuforia中预设的运动引擎能耐很好的帮助我们打好基础,结合我们独有的骨骼贴合算法、弹性算法,其运动效果能更好的体现。

3.3 重点和难点

(1)基于Unity3D框架的C#语言难度较高

基于Unity3D的C#语言对编程要求较高,需要有较高的编码水平。在C#的使用中,Unity3D根据自身特性定制了属于自己的C#框架,因此C#用法有着一定的变化。

(2)全英文环境编程以及国内资料缺失

Unity3D建模软件从生疏到熟练需要一定的学习时间,全英文的配置环境无疑对开发者有更高的编码要求。国内数据较为缺乏,国外相关资料需要绕过国家安全局的审查机制。全英文的资料文档依旧是对编程开发人员英语水平的一种考验。

(3)虚拟物品的数据还原度

衣物材质无疑是重点之一,Unity3D虽然有丰富的材质系统,优秀的渲染算法,但是和现在的色彩依旧存在一定差距。需要有更优秀的解决方案。

(4)整体效果的呈现调配

整体效果呈现:单模块的任务完成后,整体呈现需要将各个部分组合成一个完整的场景。整体调试对单模块的适应性有着更高的要求。

 

第4章 硬件模块

4.1 硬件概述

硬件模块主要由相机与单片机模组构成。

4.2 硬件方案

硬件方案主要由相机方案和芯片方案组成。

4.2.1 相机方案

深度相机Kinect,市场上售价只要800元左右,通过此相机采集的数据,可以基本满足软件设计需求,完成虚拟试衣的设计。

优点:具有较大的红外传感器尺寸,并且(相对于其他深度相机)具有较宽阔的视场角,生成的深度图质量比较高。此外,Kinect的SDK非常给力,SDK中提供了同时最多进行六个人的骨架追踪、基本的手势操作和脸部跟踪,支持Cinder和Open Frameworks,并且具有内置的Unity 3D插件。

缺点:比如一台电脑只能连接一个Kinect设备,只能在Windows8及以上的操作系统上使用等。

4.2.2 芯片方案

市面上芯片的种类有很多,虚拟试衣场景有以下数种选择方案:

方案一: 51单片机,STC12C5A60S2 ATM89C51型单片机

方案二: ARM单片机,STM32F103,STM32F030型单片机

方案三: DSP单片机,TMS320F28335

方案比较:

1.   在系统设计要求中要求设备处理速度快,能处理复杂的运算,显然上面51单片机速度不够快,以24M晶振来计算,STC12C5A60S2的指令周期为1/24us。而上面STM32F030的单片机来计算,主频48M,三级流水线,指令周期约为,1/48us。差距一倍,但是STM32F030是32位单片机,而STC12C5A60S2是8位单片机,所以在数据的处理上STM32F030还要再快4倍,并且32位数据长度在乘除运算上快的更加明显。

2.   在价格方面比较,STM32F103R8T6型号单片机,LQFP48封装,51个独立IO引脚,串口,ADC,定时器,外部中断等外设。价格只要32美分,约合人民币3元。而stc 20引脚的单片机价格就在2元左右,STM32F103R8T6在价格上完爆51单片机。

3.   顾名思义DSP被称为数字信号处理器。顾名思义,DSP主要用于数字信号处理领域起很大的优势,非常适合于高密度,大数据容量以及重复运算的信号处理。现在已经广泛运用于通信、雷达、航空、便携式计算机、仪器仪表等领域。DSP有一件优势是别的微控制器芯片所不能比的,主要是它的运算速度和内部自带的运算硬件乘法器以及区别于其他单片机的特殊指令。一般的微控制器都是用软件来进行乘法,对于程序的依靠性更大,这样会导致运行速度慢。它的强大数据处理能力和高运算速度,是两大特色。芯片内置高速SRAM。外部可寻址64K字节和I/O,令周期在25ns到50ns,实时性处理比一般的单片机快上2倍左右,主要用于多路和复杂信号的处理。

在上面的性能比较中,这三种主控制器的设计和开发方式相比较各有自己的优势也能实现对本次产品控制的功能要求,但从单片机技术门槛的低开发成本和适合初学者进行学习和调试使用在性能还是价格上,STM32F103R8T6单片机都占具了本设计的所有优势,所以本系统采用STM32F103R8T66型号的单片机作为本设计的主控芯片。

4.3 实现方案

4.3.1 单片机介绍

本设计采用的主控芯片是意法半导体公司的STM32F103R8T6单片机。这款微控制器采用ARM Cortex-M3 32位嵌入式处理器架构,各方面性能测试取得优异的好成绩。

4.3.2 最小系统设计

该款微控制器有可编程电压监测、掉电监测器,内部镶嵌4至16MHz高速石英晶体振荡器,内部镶嵌了8MHz出厂校准的RC振荡器,内嵌40KHz的RC振荡器,内部带有32KB字节闪存程序存储器,6KBRAM,三个同步16位定时器同时工作而且每个定时器有多达四个用于同时输入捕获/输出比较/PWM或脉冲计数的通道;两个看门狗;一个RTC时钟;两个16位16通道ADC,单片机最快转换速率达到1MHz;51个可用的IO口;两个硬件SPI;两个硬件IIC;三个串口,一个USB。工作电压为2.6-3.6V,LQFP48封装。STM32F103R8T6单片机引脚封装图如图4-1。

 

图4.1 STM32F103R8T6引脚图

本设计微控制器的主频为48MHz,因内部有锁相环,所以使用8MHz的外部晶振在起振,在晶振的两端加一个10MΩ的电阻效果会更好,因为本设计的主频并不是好,所以可以加电阻。此图为晶体振荡器的原理电路如图3-1-2。

图4.2 时钟电路原理图

本设计的微控制器是高电平复位,复位电路采用标准的RC复位电路。原理图如图3-1-3。

图4.3 复位电路原理图

为了让系统稳定的运行,防止电源波动对微控制器的干扰。所以电源电压需要足够稳定,在电源与地之间并联两个电容起到减少电压波动的干扰,电感则减少电流波动所产生的干扰。原理图如图3-1-4。

图4.4 电源滤波电路原理图

根据改变BOOT0和BOOT1引脚的高低电平可以设置4种启动状态,本设计全部拉低,从Flash启动程序。

因为本设计用到的单片机是3.3V的电压进行供电,74HC573锁存器所要用到的电源电压为5V,而3.3V的电压很难驱动5V的锁存器,然后就用到了电平转换电路。当输入低电平的时候GS开启,SD导通低电平直接驱动IO;当单片机输入高电平信号的时候由于电路设计的原因GS不开启,SD截止高电平直接由5V电压直接驱动IO,这样就实现低电压对高电压的控制。

4.4 重点和难点

(1)硬件数据与服务器后台的联通

数据的联通是软硬结合产品的一个重点和难点。

(2)摄像头采集数据后的动态分析。

摄像头采集的图像数据需要有专门的算法获取人员身体数据,以减小对服务器的数据处理压力,并提升实时动作的成像速度。

 

 

结论

本论文设计与开发了基于Java、Unity3D、STM32的综合虚拟试衣系统平台。目的是设计能完整体验用户从线上购物到虚拟试衣辅助购物或线下门店辅助购物的全套软件硬件产品。

 

 

参考文献

[1] 董叶芊.Unity3d产品虚拟展示技术的应用研究.无线互联科技, 2017, (17) :144-145.

[2] 陈晨, 武志云.3D虚拟试衣间的设计与实现.纺织科技进展, 2010 (6) :84-87.

[3] 曾宇.基于unity3D开发引擎的虚拟试衣间的设计.科技风, 2017 (6) :1-1.

[4]  Joseph Yiu.The Definitive Guide to the ARM Cortex-M3[M].北京:航空航天大学出版社,2009.

[5]  Stephen Prata.C Primer Plus[M].北京:人民邮电出版社,2005.

[6] 郭霖.第一行代码:Android[M].北京:人民邮电出版社, 2016.

[7] 曹功靖玲,王晖,吴达.Real流媒体技术及其在远程教学中的应用 计算机应用研究[M].长沙:国防科学技术大学多媒体研发中心,2011.

[8] 罗建川,刘守印,胡君红,彭新生.实时传输协议RTP的研究及其应用 计算机工程与应用[M].武汉:华中师范大学,2014.

[9] 杨正洪.Objective-C程序设计[M].北京:清华大学出版社,2013.

 

  • 11
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值