一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

虚拟试衣方法及装置与流程

2022-05-18 14:11:00 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,特别是涉及一种虚拟试衣方法及装置。


背景技术:

2.随着互联网和电子商务的不断普及和发展,网上购买服装已经成为人们很常见的消费方式之一。然而网上购买服装时仅仅依靠服装的平面展示或者模特身着服装的平面或视频展示,无法给予用户充分的参考。用户常常因为购买的服装实际穿着后与预期不一致而发生退货,这无论对于卖家还是买家都会带来时间和经济上的损失,因此亟需一种帮助用户实现虚拟试衣的方式。


技术实现要素:

3.有鉴于此,本技术提供了一种虚拟试衣方法及装置。具体技术方案如下:
4.根据第一方面,提供了一种虚拟试衣方法,包括:
5.接收用户的服装试穿请求;
6.获取所述用户的身材指标数据,以及,确定所述用户请求试穿服装的模特图像,所述模特图像中包含身着所述服装的模特;
7.对所述用户的身材指标数据和所述模特的身材指标数据进行比例计算,利用计算得到的比例信息对所述模特的各身材指标在所述模特图像中的尺寸信息进行换算,得到各身材指标的目标尺寸信息;
8.按照所述目标尺寸信息对从所述模特图像中抠图得到的人体轮廓部分进行仿射变换;
9.将仿射变换后得到的人体轮廓部分与从所述模特图像中抠图得到的图像背景进行合成处理,得到所述用户的试衣图像。
10.根据本技术实施例一可实现的方式,该方法还包括:
11.对所述模特图像进行抠图处理,得到人体轮廓部分和图像背景;以及,
12.对所述模特图像进行身材指标关键点检测,得到所述模特图像中模特的身材指标关键点和各身材指标在所述模特图像中的尺寸信息。
13.根据本技术实施例一可实现的方式,该方法还包括:
14.从服装数据库中获取服装的视频数据;
15.依据预设的规则或者用户的选择,从所述视频数据中获取服装的视频素材;
16.对所述服装的视频素材中的各图像帧进行人体检测;
17.将检测到人体的图像帧分别作为模特图像执行所述换算、放射变换和合成处理,得到各图像帧对应的试衣图像;
18.将所述试衣图像替换所述视频素材中对应的图像帧,得到所述用户的试衣视频。
19.根据本技术实施例一可实现的方式,该方法还包括:
20.从服装数据库中获取服装的图像数据;
21.对所述图像数据进行人体检测,将检测到人体的图像作为所述服装的图像素材;
22.依据预设的规则或者用户的选择,从所述服装的图像素材中获取模特图像。
23.根据本技术实施例一可实现的方式,针对服装数据库中具备试衣功能的服装的模特图像均预先执行所述抠图处理和所述身材指标关键点检测的步骤,并存储模特图像对应的人物轮廓、各身材指标在模特图像中的尺寸信息至预设的存储空间;
24.响应于所述服装试穿请求,查询所述存储空间以得到用户请求试穿服装的模特图像所对应的人物轮廓、图像背景以及各身材指标在模特图像中的尺寸信息。
25.根据本技术实施例一可实现的方式,利用所述目标尺寸信息对从所述模特图像中抠图得到的人体轮廓进行仿射变换包括:
26.从各身材指标关键点中选取贝塞尔曲线的控制点;
27.利用贝塞尔曲线对所述人体轮廓进行仿射变换,使得各身材指标在所述模特图像中达到对应的目标尺寸。
28.根据本技术实施例一可实现的方式,所述将仿射变换后得到的人体轮廓部分与从所述模特图像中抠图得到的图像背景进行合成处理,得到所述用户的试衣图像包括:
29.将仿射变换后得到的人体轮廓部分按照变换前人体轮廓部分的中心位置叠加至所述图像背景之上,其中对于人体轮廓部分与所述图像背景重叠的像素采用人体轮廓部分的像素,对合成后缺失的像素进行图像背景填充,得到所述用户的试衣图像。
30.根据本技术实施例一可实现的方式,在对所述用户的身材指标数据和所述模特的身材指标数据进行比例计算之前,还包括:
31.判断所述用户的身材指标数据和所述模特的身材指标数据是否相同,如果是,将所述模特图像作为所述用户的试衣图像;否则,继续执行对所述用户的身材指标数据和所述模特的身材指标数据进行比例计算的步骤。
32.根据本技术实施例一可实现的方式,该方法还包括:
33.在展示所述试衣图像的界面上进一步展示所述用户的各身材指标数据、向用户推荐的服装尺码信息和触发试穿其他服装的组件中的至少一种。
34.根据第二方面,提供了一种虚拟试衣装置,包括:
35.请求接收单元,被配置为接收用户的服装试穿请求;
36.数据获取单元,被配置为获取所述用户的身材指标数据,以及,确定所述用户请求试穿服装的模特图像,所述模特图像中包含身着所述服装的模特;
37.尺寸换算单元,被配置为对所述用户的身材指标数据和所述模特的身材指标数据进行比例计算;利用计算得到的比例信息对所述模特的各身材指标在所述模特图像中的尺寸信息进行换算,得到各身材指标的目标尺寸信息;
38.仿射变换单元,被配置为按照所述目标尺寸信息对从所述模特图像中抠图得到的人体轮廓部分进行仿射变换;
39.图像合成单元,被配置为将仿射变换后得到的人体轮廓部分与从所述模特图像中抠图得到的图像背景进行合成处理,得到所述用户的试衣图像。
40.根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述的方法的步骤。
41.根据第四方面,提供了一种电子设备,其特征在于,包括:
42.一个或多个处理器;以及
43.与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行上述第一方面中任一项所述的方法的步骤。
44.根据本技术提供的具体实施例,本技术可以具备以下优点:
45.1)本技术依据用户的身材指标数据将原本模特身着服装的模特图像进行个性化变换,变换为符合用户身材的试衣图像,帮助用户实现了虚拟试衣。
46.2)本技术能够使得用户获取到符合自身身材尺码的试衣观感,降低用户购买的服装实际穿着后与预期不一致而发生退货的概率,无论对于卖家还是买家都能够减少因此带来的时间和经济上的损失。
47.3)本技术中能够利用服装数据库中大量的视频数据或图像数据来获取服装的视频素材和图像素材,基于这些丰富的素材为用户提供虚拟试衣。用户能够通过视频或图像等多媒体方式获取试衣效果,用户体验更好。
48.4)本技术可以针对服装数据库中具备试衣功能的服装的模特图像均预先执行抠图处理和身材指标关键点检测的处理,并存储模特图像对应的人物轮廓、图像背景、各身材指标在模特图像中的尺寸信息至预设的存储空间。响应于来自用户的服装试穿请求时,查询存储空间以得到用户请求试穿服装的模特图像所对应的人物轮廓以及各身材指标在模特图像中的尺寸信息。这种实现方式中仅需要针对服装数据库中具备试衣功能的服装的模特图像执行一次抠图处理和身材指标关键点检测的处理,将处理结果存储到存储空间。在接收到服装试穿请求后直接利用预先处理的结果即可,降低了对设备性能的影响,提高了效率。
49.5)基于服装丰富的视频素材和图像素材,实现了服装素材的智能批量预加工。该虚拟试衣方式作为一种工具提供给商家,商家无需额外的生产成本,只需要提供服装素材即可覆盖其服装商品的虚拟试衣,能够实现在低成本情况下的广覆盖。
50.当然,实施本技术的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
51.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1示出了可以应用本技术实施例的示例性系统架构;
53.图2为本技术实施例提供的虚拟试衣方法的主要流程图;
54.图3为本技术实施例提供的对服装数据库进行预处理的流程图;
55.图4是本技术实施例提供的臀部关键点的示意图;
56.图5是本技术实施例提供的模特图像与变换后的试衣图像的示意图;
57.图6是本技术实施例提供的一展示试衣图像的界面示意图;
58.图7示出根据一个实施例的虚拟试衣装置的示意性框图;
59.图8示例性的展示出了电子设备的架构。
具体实施方式
60.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本技术保护的范围。
61.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
62.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
63.取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
64.图1示出了可以应用本技术实施例的示例性系统架构。如图1所示,该系统架构可以包括终端设备101和102,网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
65.用户可以使用终端设备101和102通过网络103与服务器104交互。终端设备101和102上可以安装有各种应用,例如电子商务类应用、网页浏览器应用、通信类应用等。
66.终端设备101和102可以是各种有屏设备的用户设备,包括但不限于智能手机、平板电脑、智能电视、pc(个人计算机)、可穿戴式设备、pda(个人数字助理)等等。其中,可穿戴式设备可以包括诸如智能手表、智能眼镜、虚拟现实设备、增强现实设备、混合现实设备(即可以支持虚拟现实和增强现实的设备)等等。
67.服务器104可以是单一服务器,也可以是多个服务器构成的服务器群组,还可以是云服务器。云服务器又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(vps,ⅵirtual private server)服务中存在的管理难度大,服务扩展性弱的缺陷。
68.本技术所提供的虚拟试衣装置可以设置并运行于上述服务器104。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
69.用户可以通过终端设备101或102向服务器104发送服装试穿请求,由服务器104采用本技术实施例提供的方法将该用户的试衣图像返回给终端设备101或102。
70.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
71.图2为本技术实施例提供的虚拟试衣方法的主要流程图,该方法可以由图1所示系统架构中的服务器端执行。如图2中所示,该方法可以包括以下步骤:
72.步骤201:接收服装试穿请求。
73.步骤202:获取用户的身材指标数据,以及,确定用户请求试穿服装的模特图像,模特图像中包含身着服装的模特。
74.步骤203:对用户的身材指标数据和模特的身材指标数据进行比例计算,利用计算得到的比例信息对模特的各身材指标在模特图像中的尺寸信息进行换算,得到各身材指标的目标尺寸信息。
75.步骤204:按照目标尺寸信息对从模特图像中抠图得到的人体轮廓部分进行仿射变换。
76.步骤205:将仿射变换后得到的人体轮廓部分与从模特图像中抠图得到的图像背景进行合成处理,得到用户的试衣图像。
77.可以看出,本技术依据用户的身材指标数据将原本模特身着服装的模特图像进行个性化变换,变换为符合用户身材的试衣图像,使得用户能够获取到符合自身身材尺码的试衣观感,降低用户购买的服装实际穿着后与预期不一致而发生退货的概率,无论对于卖家还是买家都能够减少因此带来的时间和经济上的损失。
78.下面对上述各步骤进行详细描述。首先结合实施例对上述步骤201即“接收服装试穿请求”进行详细描述。
79.用户使用终端设备在电子商务网站上浏览服装类商品时,通常看到的都是模特身着服装的图像或视频,视频中也包含模特身着服装的图像。在本技术中将模特身着服装的图像称为模特图像。但模特通常是身材比较好的,但对于普通大众而言身材是各异的,模特穿上好看的服装穿在自己身上不一定好看,因此,用户往往希望看到服装穿在与自己身材一致的人身上时的效果。这种情况就可以通过本技术的方式进行试衣。
80.用户可以通过触发电子商务网站或应用的页面上预设的试穿组件,向服务器端发送服装试穿请求。也可以通过专门的试穿类小程序、试穿类应用等中预设的特定页面或页面上预设的试穿组件,向服务器端发送服务试穿请求。本技术所涉及的页面,也可以称为web页面,可以是基于超文本标记语言(hypertext markup language,html)编写的网页(web page),即html页面,或者还可以是基于html和java语言编写的网页,即java服务器页面(java server page,jsp),或者还可以为其他语言编写的网页,本实施例对此不进行特别限定。
81.服装试穿请求至少携带用户的信息以及用户请求试穿服装的信息。其中,用户的信息可以是用户的标识信息,也可以是用户的身材指标数据。服装的信息可以是服装的标识信息,也可以是用户请求试穿服装的模特图像信息。
82.下面结合实施例对上述步骤202即“获取用户的身材指标数据,以及,确定用户请求试穿服装的模特图像,模特图像中包含身着服装的模特”。
83.作为其中一种可实现的方式,用户可以在电子商务网站、电子商务应用、试穿类小程序、试穿类应用等预先设置用户属性信息,该用户属性信息中可以包括用户的身材指标数据。这种情况下,服装试穿请求中仅需要携带用户的标识信息,依据该用户的标识信息就能够获取到该用户的身材指标数据。
84.作为另一种可实现的方式,用户可以在发送服装试穿请求时,可以在所浏览的页面或者专门的页面上填写用户的身材指标数据,服装试穿请求携带该身材指标数据。这种情况下,服务器可以从服装试穿请求中获取用户的身材指标数据。
85.其中,本技术实施例中涉及的身材指标数据就是通常所说的“尺寸信息”,可以包括但不限于诸如胸围、腰围、臀围、肩宽、袖长、裤长等指标的数据,还可以包括诸如尺码信息等数据。
86.作为其中一种可实现的方式,用户可以在电子商务网站、电子商务应用、试穿类小程序、试穿类应用等页面上选择模特图像进行试穿,此时发送的服装试穿请求中可以携带该选择的模特图像信息。服务器根据服装试穿请求携带的模特图像信息获取对应的模特图像。
87.作为另一种可实现的方式,用户在电子商务网站、电子商务应用、试穿类小程序、试穿类应用等页面上选择要试穿的服装,此时发送的服装试穿请求中可以携带该选择的服装的标识信息。服务器根据服装试穿请求携带的服装的标识信息,从服装图像数据库中获取对应的模特图像。若该服装的标识信息对应多张模特图像,则可以对该多张模特图像均进行本技术实施例中的处理后,分别返回对应的试衣图像。也可以从多张模特图像中选择至少一张进行本技术实施例中的处理后,返回对应的试衣图像。还可以将多张模特图像的信息提供给用户,由用户选择其中至少一张,服务器对用户选择的模特图像进行本技术实施例中的处理后,返回对应的试衣图像。
88.下面结合实施例对上述步骤203即“对用户的身材指标数据和模特的身材指标数据进行比例计算,利用计算得到的比例信息对模特的各身材指标在模特图像中的尺寸信息进行换算,得到各身材指标的目标尺寸信息”进行详细描述。
89.本步骤中首先对用户和模特的身材指标数据进行比例计算,能够得到用户和模特的各身材指标的比例。举个例子,假设用户臀围为120cm,模特臀围为100cm,那么用户与模特的臀围比例为1.2。
90.利用计算得到的比例信息对模特的各身材指标在模特图像中的尺寸信息进行换算就是将计算得到的比例信息作为比例尺,将用户的各身材指标数据变换到图像中。其中,用户的各身材指标数据的单位例如采用cm(厘米),变换后在图像中对应的目标尺寸信息的单位是像素点的距离,单位采用pixel(像素)。
91.接续上面的例子,假设用户臀围为120cm,模特臀围为100cm,那么用户与模特的臀围比例为1.2,如果模特图像中模特身着服装的臀部边缘的关键点之间的最大距离(例如体现为臀部最左边到最右边)为200个像素,那么根据比例信息进行变换后,模特图像中臀部边缘的关键点之间的最大距离应为200*1.2=240个像素。对于其他各身材指标进行类似变换,最终可以得到各身材指标在模特图像中的目标尺寸信息。
92.在执行本步骤之前,需要预先获取模特的各身材指标在模特图像中的尺寸信息。这种情况下,可以如图3中所示,预先对服装数据库执行以下预处理的步骤:
93.步骤301:从服装数据库中获取服装的模特图像。
94.作为一种可实现的方式,可以从服装数据库中获取服装的图像数据。这些图像数据可以是商家提供并预先存储于服装数据库中的。对这些图像数据进行人体检测,将检测到人体的图像作为服装的图像素材。
95.用户请求虚拟试衣时,可以依据一定的规则从服装的图像素材中获取模特图像,例如,依据服装的标识从图像素材中选择默认的模特图像,或者选择质量最高的模特图像,或者随机选择等等。
96.用户请求虚拟试衣时,也可以将图像素材提供给用户,让用户从图像素材中选择模特图像来进行试衣。这种情况下,用户请求虚拟试衣时需要携带图像的标识信息。
97.作为另一种可实现的方式,若服装数据库中不仅存储有图像,还存储有大量服装的视频数据,或者仅包括视频数据,这些视频数据包含模特身着服装进行展示的视频,但除此之外,视频数据中还可能包含单纯服装(不包含模特)的视频内容。这种情况下,可以从服装数据库中获取服装的视频数据,依据预设的规则或者用户的选择,从视频数据中获取服装的视频素材。对视频素材中的各图像帧进行人体检测,将检测到人体的图像帧作为模特图像。
98.其中预设的规则可以是质量符合预设要求、预先设置默认的视频素材或者随机从中选择等等。用户的选择指的是可以将服装的视频数据提供给用户,用户从中选择一段视频作为服装的视频素材。
99.在视频素材场景下,最终可以得到用户的试衣视频,具体将在后续实施例中涉及。
100.可以看出,能够利用服装数据库中大量的视频数据或图像数据来获取服装的视频素材和图像素材,基于这些丰富的素材为用户提供虚拟试衣。用户能够通过视频或图像等多媒体方式获取试衣效果,用户体验更好。
101.其中,对图像进行人体检测可以采用任意的人体检测模型来实现。近年来基于深度学习的目标检测迅速发展,本技术实施例中可以采用诸如基于faster-rcnn(faster-region convolutional neural networks,快速区域卷积神经网络)、mask-rcnn(掩码区域卷积神经网络)、fpn(feature pyramid networks,特征金字塔网络)、yolo(you only look once,你只需看一次)、sapd(soft anchor-point detector,软锚点检测)等模型。本技术对于采用的具体人体检测模型并不加以限制。
102.步骤302:对模特图像进行抠图处理,得到人体轮廓部分和图像背景。
103.本步骤中对模特图像进行抠图处理,目的是为了分离图像中的前景和背景信息,其中前景就是人体轮廓所包含的部分,即人体部分。这部分的实现可以采用诸如deep image matting(深度图像抠图)、background matting(背景抠图)、semantic human matting(人体语义抠图)、modnet(motion and apperance based moving object detection network,基于运动和外观的运动目标检测网络)等抠图算法。本技术并不对具体的抠图算法进行限制,可以采用已有的抠图算法进行处理。
104.本步骤对模特图像进行抠图处理后,得到人体轮廓部分和图像背景两部分。
105.步骤303:对模特图像进行身材指标关键点检测,得到模特图像中模特的身材指标关键点和各身材指标在模特图像中的尺寸信息。
106.本步骤中应用了人体关键点检测技术,人体关键点检测技术目前大多应用于人体姿态估计,本技术则将人体关键点检测技术应用于虚拟试衣这一场景。更具体地,基于人体关键点检测技术确定模特图像中人体的各身材指标关键点,例如,胸部关键点、腰部关键点、臀部关键点、肩部关键点、胳膊关键点、腿部关键点等等。
107.举个例子,臀部关键点可以体现为臀部区域边缘的关键点,如图4中所示。其他身材指标关键点的形态类似。
108.确定出模特图像中模特的身材指标关键点后,就可以基于各身材指标关键点确定出各身材指标在模特图像中的尺寸信息。例如,确定出臀部关键点后可以确定出臀部区域,
将臀部区域关键点之间在人体横向方向上的距离最大值作为臀围在模特图像中的尺寸信息,该尺寸信息可以体现为占图像中像素的数量,例如臀围为200pixel。
109.上述步骤302和步骤303可以并行执行,也可以采用任意的顺序先后执行,图3中仅示意性示出了其中一种可用的顺序。
110.需要说明的是,上述步骤301~303可以在接收到来自用户的服装试穿请求后,实时执行。即接收到用户的服装试穿请求后,从服装数据库中获取所请求试穿服装的模特图像,然后进行抠图和关键点检测处理,分别得到人体轮廓部分、模特图像中模特的身材指标关键点和各身材指标在所述模特图像中的尺寸信息。但这种实现方式在每次接收到服装试穿请求时都进行实时计算,对设备性能的影响较大,效率较低。
111.作为一种优选的实施方式,可以针对服装数据库中具备试衣功能的服装的模特图像均预先执行上述抠图处理和身材指标关键点检测的处理,并存储模特图像对应的人物轮廓、各身材指标在模特图像中的尺寸信息至预设的存储空间。响应于来自用户的服装试穿请求时,查询存储空间以得到用户请求试穿服装的模特图像所对应的人物轮廓以及各身材指标在模特图像中的尺寸信息。也就是说,这种实现方式中仅需要针对服装数据库中具备试衣功能的服装的模特图像执行一次抠图处理和身材指标关键点检测的处理,将处理结果存储到存储空间。在接收到服装试穿请求后直接利用预先处理的结果即可,降低了对设备性能的影响,提高了效率。
112.可以看出,上述实现方式针对服装数据库中的模特图像进行批量“预加工”(即进行抠图处理和身材指标关键点检测处理,得到人物轮廓部分、图像背景、模特图像中模特的身材指标关键点和各身材指标在模特图像中的尺寸信息),该虚拟试衣方式作为一种工具提供给商家,无需服装商家额外花费生产成本进行建模,只需要提供服装素材即可覆盖其服装商品的虚拟试衣,覆盖面更广且生产成本更低。
113.下面结合实施例对上述步骤204即“按照目标尺寸信息对从模特图像中抠图得到的人体轮廓部分进行仿射变换”进行详细描述。
114.本步骤实际上是将人体轮廓部分变换到与用户身材相符合的大小,由于步骤203中已经得到了各身材指标的目标尺寸信息,该目标尺寸信息体现的就是用户的各身材指标在模特图像中的大小,因此,本次仿射变换的目标就是将人体轮廓部分的各身材指标变换到各身材指标的目标尺寸。
115.在之前的人体关键点检测过程中,已经检测出各身材指标的关键点,例如胸部关键点、腰部关键点、臀部关键点、肩部关键点、胳膊关键点、腿部关键点等等。本步骤中的仿射变换可以分别利用各身材指标的关键点对各身材指标对应的人体区域进行仿射变换。例如,利用臀部关键点,将人体轮廓部分中臀部区域进行仿射变换,使得变换后达到臀围的目标尺寸。
116.本步骤中的仿射变换是在不改变图像内容的前提下对图像像素进行的空间几何变换,主要是对抠图得到的人体轮廓部分基于中心点进行缩放处理。本技术对于仿射变换的算法并不加以限制,但在对各身材指标对应的人体区域进行仿射变换的过程中,需要考虑到各关键点之间以及各人体区域之间的光滑连接,避免发生畸变现象,因此,可以利用贝塞尔曲线进行仿射变换。
117.具体地,可以从各身材指标关键点中选取贝塞尔曲线的控制点;利用贝塞尔曲线
对人体轮廓进行仿射变换,使得各身材指标在模特图像中达到对应的目标尺寸。也就是说,将人体边缘作为贝塞尔曲线,在对各人体区域进行仿射变换(即对贝塞尔曲线的控制点进行仿射变换)后再计算对应的贝塞尔曲线,使得变换后人体区域对应的人体边缘仍符合贝赛尔曲线。该部分的具体实现可以采用目前已有技术,在此不做详述。
118.另外,由于四肢的区域对于仿射变换整体性影响不大,因此对于四肢的尺寸,即袖长、裤长等对应的目标尺寸信息,可以对四肢区域独立进行变换。对于身体的各区域例如胸部区域、腰部区域、臀部区域、肩部区域等利用贝塞尔曲线进行仿射变换。
119.下面结合实施例对上述步骤205即“将仿射变换后得到的人体轮廓部分与从模特图像中抠图得到的图像背景进行合成处理,得到用户的试衣图像”进行详细描述。
120.本步骤的合成处理可以看做是将仿射变换后的人体轮廓部分叠加在图像背景上。作为其中一种可实现的方式,可以将仿射变换后得到的人体轮廓部分按照变换前人体轮廓部分的中心位置叠加至图像背景之上。
121.其中在上述合成过程中,可能存在人体轮廓部分与图像背景发生像素重叠,那么对于人体轮廓部分与图像背景重叠的像素采用人体轮廓部分的像素。也可能因为用户尺寸较小导致仿射变换后的人体轮廓部分小于原本的人体轮廓,这样在叠加时会出现缺失的像素(即图像背景和人体轮廓部分均未覆盖到),则可以对合成后缺失的像素进行图像背景填充,得到用户的试衣图像。
122.得到用户的试衣图像之后,服务器可以将该试衣图像发送给终端设备进行展示。如果模特图像本来就是图像素材的形式,则向用户展示得到的试衣图像。如果模特图像是来自于视频素材中的图像帧,则利用得到的试衣图像替换原本对应的图像帧,得到试衣视频。该试衣视频是按照用户的身材展示的模特身着服装的内容,而视频中非模特图像的图像帧则未发生变更。
123.如图5中所示,(a)示出的是模特身着服装的原始的模特图像,(b)示出了按照用户的各身材指标执行图2所示流程中的处理后的模特图像,可以看出,图像背景未发生变化,人体轮廓部分依据用户的身材进行了仿射变换。这样用户就能够直观地看到按照用户身材展示的服装状况,降低了仅凭模特身着服装的图像而造成用户实际着装后不符合预期的概率。
124.除此之外,在展示试衣图像的界面上,还可以进一步展示用户的各身材指标数据,用户可以通过界面上的特定组件修改身材指标数据,修改后重新执行图2所示流程生成新的试衣图像。
125.作为另一种可实现的方式,在展示试衣图像的界面上,还可以展现依据用户的各身材指标数据向用户推荐的服装尺码信息。例如,在界面上展示“推荐:xl码”,以供用户在看到试衣图像之余,还能够获知适合自己的服装尺码,以方便用户快速地下单。
126.作为另一种可实现的方式,在展示试衣图像的界面上,还可以展现触发试穿其他服装的组件。用户点击该组件后,可以选择试穿其他服装,或者按顺序试穿下一件服装,或者随机试穿下一件服装,等等。
127.图6示意性示出了在展示试衣图像的界面上展示用户的各身材指标数据、向用户推荐的服装尺码信息和触发试穿其他服装的组件。
128.在实际应用中还可能存在用户的身材指标数据恰好和模特的身材指标数据相同
的情况,对于这种情况则模特图像就是用户的试衣图像。因此,在上述步骤203即“对用户的身材指标数据和模特的身材指标数据进行比例计算”之前,可以首先判断用户的身材指标数据和模特的身材指标数据是否相同,如果是,则将模特图像作为用户的试衣图像。否则,继续执行上述步骤203。
129.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
130.根据另一方面的实施例,提供了一种虚拟试衣装置。图7示出根据一个实施例的虚拟试衣装置的示意性框图,该装置设置于图1所示架构中的服务器端,可以为位于服务器端的应用,或者还可以为位于服务器端的应用中的插件或软件开发工具包(software development kit,sdk)等功能单元。如图7所示,该装置700包括:请求接收单元701、数据获取单元702、尺寸换算单元703、仿射变换单元704和图像合成单元705,还可以进一步包括:抠图处理单元706、关键点检测单元707和人体检测单元708。其中各组成单元的主要功能如下:
131.请求接收单元701,被配置为接收服装试穿请求。
132.服装试穿请求至少携带用户的信息以及用户请求试穿服装的信息。其中,用户的信息可以是用户的标识信息,也可以是用户的身材指标数据。服装的信息可以是服装的标识信息,也可以是用户请求试穿服装的模特图像信息。
133.数据获取单元702,被配置为获取用户的身材指标数据,以及,确定用户请求试穿服装的模特图像,模特图像中包含身着服装的模特。
134.尺寸换算单元703,被配置为对用户的身材指标数据和模特的身材指标数据进行比例计算;利用计算得到的比例信息对模特的各身材指标在模特图像中的尺寸信息进行换算,得到各身材指标的目标尺寸信息。
135.仿射变换单元704,被配置为按照目标尺寸信息对从模特图像中抠图得到的人体轮廓部分进行仿射变换。
136.图像合成单元705,被配置为将仿射变换后得到的人体轮廓部分与从模特图像中抠图得到的图像背景进行合成处理,得到用户的试衣图像。
137.作为其中一种可实现的方式,图像合成单元705可以将仿射变换后得到的人体轮廓部分按照变换前人体轮廓部分的中心位置叠加至图像背景之上,其中对于人体轮廓部分与图像背景重叠的像素采用人体轮廓部分的像素,对合成后缺失的像素进行图像背景填充,得到用户的试衣图像。
138.抠图处理单元706,被配置为对模特图像进行抠图处理,得到人体轮廓部分。
139.关键点检测单元707,被配置为对模特图像进行身材指标关键点检测,得到模特图像中模特的身材指标关键点和各身材指标在模特图像中的尺寸信息。
140.人体检测单元708,被配置为从服装数据库中获取服装的视频数据,对视频数据中的各图像帧进行人体检测,从检测到人体的图像帧中获取模特图像;或者,从服装数据库中获取服装的图像数据,对图像数据进行人体检测,从检测到人体的图像中获取模特图像。
141.作为一种优选的实施方式,上述抠图处理单元706和关键点检测单元707可以针对服装数据库中具备试衣功能的服装的模特图像均预先执行抠图处理和身材指标关键点检测的处理,并存储模特图像对应的人物轮廓、各身材指标在模特图像中的尺寸信息至预设的存储空间。
142.响应于服装试穿请求,仿射变换单元704和尺寸换算单元703查询存储空间以得到用户请求试穿服装的模特图像所对应的人物轮廓以及各身材指标在模特图像中的尺寸信息。
143.作为其中一种可实现的方式,仿射变换单元704可以从各身材指标关键点中选取贝塞尔曲线的控制点;利用贝塞尔曲线对人体轮廓进行仿射变换,使得各身材指标在模特图像中达到对应的目标尺寸。
144.更进一步地,该装置还可以包括判断单元(图7中未示出),被配置为判断用户的身材指标数据和模特的身材指标数据是否相同,如果是,则将模特图像作为用户的试衣图像。否则,触发尺寸换算单元703执行对用户的身材指标数据和模特的身材指标数据进行比例计算的处理。
145.需要说明的是,本技术实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。
146.另外,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述方法实施例中任一项所述的方法的步骤。
147.以及一种电子设备,包括:
148.一个或多个处理器;以及
149.与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行前述方法实施例中任一项所述的方法的步骤。
150.其中,图8示例性的展示出了电子设备的架构,具体可以包括处理器810,视频显示适配器811,磁盘驱动器812,输入/输出接口813,网络接口814,以及存储器820。上述处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,与存储器820之间可以通过通信总线830进行通信连接。
151.其中,处理器810可以采用通用的cpu、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本技术所提供的技术方案。
152.存储器820可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器820可以存储用于控制电子设备800运行的操作系统821,用于控制电子设备800的低级别操作的基本输入输出系统(bios)822。另外,还可以存储网页浏览器823,数据存储管理系统824,以及虚拟试衣装置825等等。上述虚拟试衣装置825就可以是本技术实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本技术所提供的技术方案时,相关的程序代码保存在存储器820中,并由处理器810来调用执行。
153.输入/输出接口813用于连接输入/输出模块,以实现信息输入及输出。输入输出/
模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
154.网络接口814用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
155.总线830包括一通路,在设备的各个组件(例如处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,与存储器820)之间传输信息。
156.需要说明的是,尽管上述设备仅示出了处理器810、视频显示适配器811、磁盘驱动器812、输入/输出接口813、网络接口814,存储器820,总线830等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本技术方案所必需的组件,而不必包含图中所示的全部组件。
157.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
158.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
159.以上对本技术所提供的方法和装置进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献