视频级虚拟试衣技术在淘宝的产品化实践
作为一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的AIGC内容生成能力,能够从供给端缓解内容生产成本高的问题,通过源源不断的低成本供给倒推消费生态的建立。过去一年,我们通过在视频生成、图文联合生成、个性化文案、人设Agent等核心技术上的持续攻关,AIGC内容生成在手淘多个场景取得了规模化落地价值。本专题《淘宝的AIGC内容生成技术总结》是我们摸索出的一部分实践经验,我们将开启一段时间的内容AI专题连载,欢迎大家一起交流进步。
第一篇《淘宝内容AI团队2024年8篇论文总结》
第二篇《内容AI: 目标驱动的图像生成》
第三篇《OpenAI o1模型的前世今生》
第四篇《多模态人物视频驱动技术回顾与业务应用》
背景介绍
视频虚拟试穿任务定义为将指定服饰穿着到视频中的人物身上,以实现视频级别的服饰上身展示效果。在此之前,大多数的方法主要聚焦在基于图像的虚拟试穿领域。然而,仅仅依靠静态图像进行虚拟试穿存在一定的局限性,静态试衣图不够生动活泼,并且也无法充分展现服饰所具有的更多物理特性。当直接把基于图像的试穿方法逐帧应用到视频级别的输入时,所生成的换衣视频常常会因为帧与帧之间的不一致性,从而导致时间上出现不连续的情况。从更细节的维度来看,我们对图像换衣和视频换衣的价值进行了系统性的对比,具体内容可参见下方表格。
图像换衣 | 视频换衣 | 评价 | |
动态展示 | ❌ | ✅ | 视频虚拟换衣可以展示服装在不同角度和动作下的效果,更加立体和真实。 |
物理特性 | ❌ | ✅ | 视频虚拟换衣可以在动态展示中,让用户对衣物的质感、剪裁和摆动等物理特性有更全面的了解。 |
吸引力 | ❌ | ✅ | 视频能够吸引用户的眼球,增强用户参与感和体验感,提高他们对产品的兴趣。 |
信息价值 | ⭐️️⭐️️️️ | ⭐️️⭐️️⭐️️⭐️️⭐️️ | 在视频中,服装的移动、光影变化等细节都更容易展示,让用户对服装材质和款式有更详细的认识。 |
商业价值 | ⭐️️⭐️️️️ | ⭐️️⭐️️⭐️️⭐️️⭐️️ | 视频可以更好展示商品特性,吸引用户注意力,提升点击率促进成交;视频更容易融入丰富的营销内容,比如广告、动态展示等。 |
难度 | ⭐️️⭐️️⭐️️ | ⭐️️⭐️️⭐️️⭐️️⭐️️ | 不论是数据收集还是建模训练,视频虚拟试衣模型研发难度要远高于图像换衣。 |
成本 | ⭐️️⭐️️️️ | ⭐️️⭐️️⭐️️⭐️️⭐️️ | 视频换衣模型的参数量和计算的FLOPs都高于图像换衣模型,这导致视频换衣的训练和推理的成本更高。 |
成熟度 | ⭐️️⭐️️⭐ | ⭐️️⭐️️ | 图像换衣因为起步早、难度成本较低,相较于视频换衣技术成熟度更高一些,不过视频换衣也达到了业务可用水平 |
图像换衣和视频换衣的价值对比
根据我们之前的研究,我们假设视频虚拟试穿的任务从技术的层面可以分解为两个关键方面。
我们关注的是单帧结果的真实性和自然性,同时还要确保服装与人物形象的一致性。这意味着我们需要在每一帧中精确地呈现出人物的皮肤颜色、纹理和形状,以及服装的颜色、纹理和款式,使其看起来就像真实的人物在试穿一样。
我们还关注人的动作和服装在整个视频中的连贯性。这意味着我们需要在视频中平滑地过渡不同帧之间的动作,并确保服装的颜色和款式与前一帧保持一致。
针对这两个方面,我们提出了一个流畅换衣视频生成方案,实现了高清、高帧率、连贯、一致性的换衣视频。
服饰 | 图像换衣 | 视频换衣 |
直观对比图像和视频换衣效果
我们依托视频换衣生成方案,针对不同业务场景进行了一系列的建设工作,打造出了三种类型的产品级能力。具体内容呈现在如下表所示当中。
产品级能力 | 应用场景 |
营销视频自动投放 | 面向平台,自动圈选缺乏营销视频的品类,并生成相应的含有卖点信息的营销视频以供投放 |
模特试穿素材生成 | 面向商家,帮助商家便捷的产出高质量试穿视频,丰富其店铺营销素材 |
买家试穿效果生成 | 面向买家,帮助买家直观的看到自己心仪的服饰上身后的效果 |
产品级能力和应用场景对应关系
算法能力建设
早期的方案对视频换衣技术的可行性进行了验证。在早期的方案中,成功地初步实现了将一件衣服移植到视频中的模特身上这一功能,并且很好地保留了服饰的款式、纹理等重要特性。然而,早期方案存在一些局限性,导致其无法达到业务可用的水准。具体来说,有以下几个方面的问题:其一,训练数据集的规模较小,这使得模型的泛化能力相对较弱。其二,由于受到基础模型能力的限制,无法生成非常精细的视频细节。其三,受限于传统的 2D VAE 和双 UNet 结构,模型无法有效地使用高清且长时序的训练数据。其四,受限于重建损失,很多服饰的 logo 细节无法得到准确还原。以上这些局限性使得视频换衣的产出结果常常出现模糊、畸形、伪影、logo 损失等问题。针对上述这些问题,我们对视频换衣的整体框架进行了系统性的升级,具体涵盖以下几个方面:
持续迭代DiT方案的人物垂领图生视频(img2video)基础模型,作为视频换衣模型的预训练,提升模型对服饰电商领域的泛化性,DiT 结构在参数量和数据集的规模扩展方面更加容易。
运用 3D vae,对视频的空间时序进行压缩处理,这显著地提升了输入数据的分辨率以及帧率。
建立了高质量视频级换衣数据收集链路,持续扩增优质、多样的视频换衣数据。以及精心设计的视频换衣模型训练以及推理方案。
产品能力建设
▐ 模版库建设
为了提升用户与换衣产品的交互门槛,我们建设了一个具备高质量且多样化的模版库以及一个能够做到精确匹配商品与模版的机制。使得用户得以在仅仅输入一个服饰图或者商品ID的前提下,就能一键生成完整的试穿视频。
真实风格模版生成
首先,我们精心收集了一批授权的服饰类营销视频,并且安排专业人员进行了细致的人工标注。在众多视频中,挑选出一批适用于淘宝服饰展示的原始视频。接着,运用视频级重绘(video2video)方法,以标注的授权视频为蓝本,模仿其风格成功生成一段全新的视频,极大地丰富了平台自有版权的模版视频的数量和多样性。
(左)参考视频(中)生成模版(右)生成模版换衣
基于真实风格模版所生成的完整换衣视频内容具体如下。这个视频是依据输入的商品,成功匹配到了多个真实风格的模版片段。随后,通过一系列自动化的后期处理步骤,包括智能剪辑、讲解文案生成、智能配乐以及语音生成技术(TTS)等,最终为 C 端用户完整地展示了一个有关“风衣”类服饰的营销广告视频。
(左)原始视频片段手工拼接,(右)基于真实风格模版所生成的完整换衣视频
模版与服饰匹配能力
考虑到服饰的调性和算法生成的局限性,在自动化生产基于视频换衣的营销视频时,将服饰和模版做随机匹配是不合常理的,例如无衣兜服饰配插兜动作,男性模版配吊带女装等。
(左)插兜动作输入视频。(右)换上无衣兜服饰后效果
(左)男性视频模版。(右)换上女装后的效果
为了系统性解决服饰与候选模版不搭调的问题,我们提出了一个对输入服饰和候选模版进行精确匹配的方法,首先我们对服饰和视频模版定义了最多30种标签,我们通过大规模图文模型对模版库离线提取出相应标签,对于每一个输入的服饰,我们通过图文大模型判断其合法性,并实时提取出对应的标签,最终通过一套匹配规则将两者关联起来。
模版和服饰的打标与匹配
▐ 产品形态建设
为了帮助商品更好的被展示,我们设计了一套成品模特试穿视频生成链路。这套链路可以仅仅根据输入的服饰itemid或者商品图,自动生成符合商品特性的、时长约1分钟的多分镜、多姿态模特换衣视频。这意味着用户可以轻松地通过我们的平台,选择他们想要展示的服饰,并生成一系列精美的试穿视频。除了生成视频之外,我们的系统还串联了配乐、tts、文案生成等功能,可以进一步提升视频的展示效果。通过这些能力,1)平台可以批量产出帮助商家成交导流的视频内容;2)商家可以制作出更加吸引人的服饰展示广告视频,吸引更多的潜在客户。3)买家可以上传自己视频,来身临其境的感受心仪服饰的上身效果。
通过我们的产品,用户可以轻松地制作出高质量的服饰展示广告视频,并展示商品卖点和特性。我们的目标是通过展示服饰在人体上的逼真效果,来促成交易,提升销售额。
For平台-批量化营销视频生成
产品介绍
此产品支持根据圈选的一系列服饰商品的ID,自动化的选择商品展示图并匹配合适的视频模版。对于常见的男女老少的初夏秋冬季服饰都能支持。目前该能力已经落地。
批量化营销视频生成链路
效果展示
其中,我们的营销视频自动投放能力,目前已经应用在一些场景。以下为该算法的实际输出效果。
输入服饰图和对应商品ID | 生成视频 | 输入服饰图和对应商品ID | 生成视频 |
服饰搭配生成的营销视频效果
For商家-模特试穿素材生成
产品介绍
除了能够依据自动圈选的商品池来自动生成完整的营销视频之外,我们同时也是面向商家端的创意工具。我们拥有帮助商家利用商品图制作出模特试穿短片以及混剪视频的能力。详细而言,在商家端,当商家上传一张服饰图,或者是一组服饰图的组合品时,系统会为商家自动推荐适宜的换衣模版。商家既可以在候选模版集中进行挑选,也可以自行上传多个换衣模版。最终,我们将会产出与之对应的视频换衣结果。目前该产品在推进落地中。
面向商家的模特试穿素材生成产品示意图
商家与系统的一轮交互流程
效果展示
服饰 | 模版 | 生成结果 |
![]() | ||
![]() |
模特试穿展示
For买家-个性化试穿效果生成
产品介绍
我们的产品能力上还设计了支持C端买家的功能,根据用户选择的服饰和用户自己的视频生成对应的服饰换衣视频。帮助买家身临其境的感受试穿后的形象。目前该产品还在设计筹备中。
真实买家视频
由于视频换衣对输入视频形式要求较高,我们设计了基于模版-服饰匹配系统的匹配度评价方法,对用户上传视频提取模版标签(参见【模版与服饰匹配能力】章节),同时提取输入服饰的标签,并计算出视频与服饰之间的匹配度,对低分模版返回模版改进建议,如上半身模版不适合换下装、性别不符、背景季节不合适、场景人物过多等。
虚拟买家视频
为了降低用户与系统交互成本,我们还建设了根据用户人脸形象生成合适模版,具体来说,首先根据用户人脸以及用户提供的外形信息(如身高、体重、年龄等)生成一个全身形象,再通过pose driven的Image-to-Video模型生成一个符合标准的模版视频。
效果展示
服饰 | 用户视频 | 生成视频 |
总结
我们在过去一段时间对视频级虚拟换衣的基础模型和产品能力建设做了一系列的迭代更新,在部分业务场景上已经初步取得了一定的正向效果,未来我们还为继续提升基础模型能力,继续完善产品化能力,帮助平台、商家、买家更好的服务。
团队介绍
我们是淘宝业务技术内容AI团队-视频生成组,专注于服饰时尚领域,持续迭代服饰上身视频生成基础模型和下游服饰应用模型效果,并持续完善 FashionVideoGen 服饰视频产品化解决方案,面向商家和内容场域,做更灵活可控和多样化的视频生成产品化能力,让AIGC技术充分发挥业务价值。欢迎关注。
¤ 拓展阅读 ¤
3DXR技术 | 终端技术 | 音视频技术
服务端技术 | 技术质量 | 数据算法
相关文章:

视频级虚拟试衣技术在淘宝的产品化实践
作为一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的AIGC内容生成能力,能够从供给端缓解内容生产成本高的问题,通过源源不断的低成本供给…...

音视频-WAV格式
1. WAV格式说明: 2. 格式说明: chunkId:通常是 “RIFF” 四个字节,用于标识文件类型。(wav文件格式表示)chunkSize:表示整个文件除了chunkId和chunkSize这 8 个字节外的其余部分的大小。Forma…...
c++ std::array使用笔记
c array使用笔记 1. 构造2. 成员类型3. 元素访问4. 容量相关5. 填充与交换6. 比较操作7. 迭代器总结 array 是 C 标准库中的一个容器模板,它封装了一个固定长度的内建数组,并提供了类似于其他 STL 容器的接口。与内建数组相比, array 提供了…...

第39天:安全开发-JavaEE应用SpringBoot框架Actuator监控泄漏Swagger自动化
时间轴: Java知识点: 功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等. 框架库:MyBatis,SpringMVC,SpringBoot…...

浏览器JS打不上断点,一点就跳到其他文件里。浏览器控制台 js打断点,指定的位置打不上断点,一打就跳到其他地方了。
关闭JavaScript 源代码映射,F12开发者模式 设置->偏好设置->源代码/来源->JavaScript 源代码映射。 肯定不是这个原因导致的,但这个办法可以暂时解决问题,点完这个东西就隐藏了webpack,有懂的来讲讲。 又浪费一个小时…...

conda环境管理 kernel注册到jupyter notebook
本文核心目的:解决jupyter notebook找不到自己想要的指定conda环境 首先安装anaconda,在win搜索框打开anaconda prompt 按下ctrlc终止操作的时间很长。需要输入y来确认操作。 国内镜像源不能使用代理服务访问。要尝试代理服务的打开与关闭 下面是cond…...

【SpringBoot】【log】 自定义logback日志配置
前言:默认情况下,SpringBoot内部使用logback作为系统日志实现的框架,将日志输出到控制台,不会写到日志文件。如果在application.properties或application.yml配置,这样只能配置简单的场景,保存路径、日志格…...
15.7 LangChain 版智能销售顾问实战:构建企业级知识驱动型对话系统
LangChain 版智能销售顾问实战:构建企业级知识驱动型对话系统 关键词:LangChain 销售系统、知识图谱集成、对话状态管理、生产级部署、多链协同优化 1. LangChain 销售系统架构设计 1.1 模块化架构全景图 #mermaid-svg-42MLuD3aMcpX0y8c {font-family:"trebuchet ms&q…...

计算机网络基础:揭开网络世界的神秘面纱
计算机网络基础:揭开网络世界的神秘面纱 前言一、计算机网络的定义与基本概念1.1 计算机网络的定义1.2 计算机网络的基本组成 二、计算机网络的分类2.1 按地域范围分类2.2 按拓扑结构分类 三、计算机网络体系结构3.1 OSI 参考模型3.2 TCP/IP 参考模型 四、网络通信协…...
工会考试知识点分享
工会考试涵盖工会基础知识、劳动法及相关法律法规、时政等内容,以下是一些常见的知识点分享: 工会基础知识 工会的性质与职能:工会是职工自愿结合的工人阶级的群众组织,基本职责是维护职工合法权益,同时还具有组织、…...
az devops login报错:Failed to authenticate using the supplied token.
PowerShell,az devops login报错: Failed to authenticate using the supplied token. 检查了一下PAT token是对的。 检查命令: az devops login --organization https://dev.azure.com/xxxxxxxx/ 乍一看好像没问题问题,然后想…...

Halcon图像预处理算子 sobel算子、傅里叶变换算子、卷积算子
滤波类型算子适用噪声特点均值滤波mean_image高斯噪声平滑均匀,可能额模糊边缘中值滤波median_image椒盐噪声保留边缘,抑制脉冲噪声高斯滤波gauss_filter高斯噪声加权平均,边缘更平滑 均值滤波 mean_image(Image,ImageMean,MaskWidth,MaskHe…...
Java Web应用中获取客户端的真实IP地址
Java Web应用中获取客户端的真实IP地址,尤其在存在代理服务器的情况下。 代码示例: public static String getClientIP(HttpServletRequest request) {String ip = parseCommaSeparatedIPs(request.getHeader("X-Forwarded-For"));if (isInvalid(ip)) {ip = pars…...
洛谷————P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎
P11559 【MX-X7-T0】[LSOT-3] 嗯欧哎 题目背景 原题链接:MXOJ Next。 嗯欧哎是欧哎界的知名比赛。本题可以用来检验嗯欧哎是否发挥出了真实水平。 此名称纯属虚构,不影射任何现实中的比赛或机构的名称。如有雷同,纯属巧合。 题目描述 一…...

2020年SCI1区TOP:异质综合学习和动态多群体粒子群算法HCLDMS-PSO,深度解析+性能实测
目录 1.摘要2.改进策略3.结果展示4.参考文献5.代码获取 1.摘要 本文提出了一种异质综合学习和动态多群体粒子群算法(HCLDMS-PSO),该算法在综合学习(CL)策略的基础上,通过利用整个种群的全局最优经验来生成…...

FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台
文章目录 前言一、生态系统1. 金融AI代理(Financial AI Agents)2. 金融大型语言模型(Financial LLMs)3. LLMOps4. 数据操作(DataOps)5. 多源LLM基础模型(Multi-Source LLM Foundation Models&am…...

【windows driver】 开发环境简明安装教程
一、下载路径 https://learn.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads 二、安装步骤: 1、安装Visual Studio IDE 笔者建议安装最新版本,可以向下兼容。发文截止到目前,VS2022是首选,当前笔者由于项…...
强制完整性级别(MIL)和用户账户控制(UAC)的联系与区别
强制完整性级别(MIL) 和 用户账户控制(UAC) 都是 Windows 操作系统中的安全机制,旨在增强系统的安全性并防止恶意软件和攻击者在系统中获得更高的权限。尽管它们有共同的目标,但它们的工作原理、应用范围和…...

性能附录:如何计算并发用户数(摘自高楼老师《性能30讲》)
高楼老师《性能30讲》: 性能测试实战30讲-极客时间 感兴趣的同学可以去读一下,个人感觉写的非常好 目录 什么是并发? 在线用户数、并发用户数怎么计算 总结 什么是并发? 我们假设上图中的这些小人是严格按照这个逻辑到达系统的,那显然,…...

视频推拉流EasyDSS点播平台云端录像播放异常问题的排查与解决
EasyDSS视频直播点播平台是一个功能全面的系统,提供视频转码、点播、直播、视频推拉流以及H.265视频播放等一站式服务。该平台与RTMP高清摄像头配合使用,能够接收无人机设备的实时视频流,实现无人机视频推流直播和巡检等多种应用。 最近&…...

测试微信模版消息推送
进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...

C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁
赛门铁克威胁猎手团队最新报告披露,数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据,严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能,但SEMR…...