视频级虚拟试衣技术在淘宝的产品化实践
作为一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的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内容生成能力,能够从供给端缓解内容生产成本高的问题,通过源源不断的低成本供给…...
Redis安装及其AnotherRedisDesktopManagera安装使用
一、Redis安装 1. 下载Redis安装包 通过网盘分享的文件:Redis 链接: https://pan.baidu.com/s/1elAT8mk3EIoYQQ3WoVVoNg?pwd7yrz 提取码: 7yrz 2. 解压Redis安装包 下载完成后,将Redis安装包解压到一个指定的目录,例如:C:\Re…...
2025系统架构师(一考就过):案例之四:架构复用、架构评估、特定架构(DSSA)、架构开发方法(ABSD)
二、软件架构复用 ◆软件产品线是指一组软件密集型系统,它们共享一个公共的、可管理的特性集,满足某个特定市场或任务的具体需要,是以规定的方式用公共的核心资产集成开发出来的。即围绕核心资产库进行管理复用、集成新的系统。 ◆软件架构…...
软件工程应试复习(考试折磨版)
针对学校软件工程考试,参考教材《软件工程导论(第6版)》1-8章 学习的艺术:不断地尝试,我一定会找到高效用的方法,让学习变成一门艺术,从应试备考中解救出我的时间同胞们。 好嘞!既然…...
Kafka可视化工具EFAK(Kafka-eagle)安装部署
Kafka Eagle是什么? Kafka Eagle是一款用于监控和管理Apache Kafka的开源系统,它提供了完善的管理页面,例如Broker详情、性能指标趋势、Topic集合、消费者信息等。 源代码地址:https://github.com/smartloli/kafka-eagle 前置条件…...
本地部署SenseVoice(包括离线设备操作)
Anaconda3 Anaconda Installers and Packages SenseVoice 魔搭社区 FFmpeg FFmpeg 安装Anaconda3(Windows) 下载完成后,自定义路径后安装。在开始菜单中出现Anaconda Prompt说明安装成功。 安装Anaconda3(Linuxÿ…...
sql server 复制从备份初始化数据
参考 : 从备份初始化订阅(事务) - SQL Server | Microsoft Learn sql server 复制默认是用快照初始化数据的,也支持从备份初始化数据,参考如上...
MySQL 复合索引
MySQL 复合索引详解 引言 在实际业务场景中,多条件组合查询是最常见的操作之一。例如,根据“用户ID 时间范围”查询订单,或根据“商品分类 价格区间”筛选商品。此时,单列索引可能无法满足性能需求,而**复合索引&am…...
蓝桥杯备赛(C/C++组)
README: 本笔记是自己的备考笔记,按照官网提纲进行复习!适合有基础,复习用。 一、总考点 试题考查选手解决实际问题的能力,对于结果填空题,选手可以使用手算、软件、编程等方法解决,对于编程大…...
人类驾驶的人脑两种判断模式(反射和预判)-->自动驾驶两种AI模式
一种模式是直觉模式,判断是基于条件反射,视觉感知 触发到 直接条件反射(从经历中沉淀形成的神经信息闭环),类似现在自动驾驶技术的传统AI模式。 另一种模式是物理时空图式推理模式,判断是基于预判预测&…...
C语言机试编程题
编写版本:vc2022 1.求最大/小值 #include<stdio.h> int main(){int a[50],n;int max, min;printf("请输入您要输入几个数");scanf_s("%d", &n);printf("请输入您要比较的%d个数\n",n);for (int i 0; i<n; i) {scanf_…...
SmartMediakit之音视频直播技术的极致体验与广泛应用
引言 在数字化时代,音视频直播技术已经深入到各个行业和领域,成为信息传递和交流的重要手段。视沃科技自2015年成立以来,一直致力于为传统行业提供极致体验的音视频直播技术解决方案,其旗下的大牛直播SDK凭借强大的功能和卓越的性…...
NVIDIA GEFORCE GTX1050显卡如何搭建AI人脸识别技术环境
NVIDIA GEFORCE GTX1050显卡如何搭建AI人脸识别技术环境!实际上,这个显卡虽然是入门级的,但是依然可以满足你的入门学习要求。 你的显卡是 NVIDIA GTX 1050,显存为 2GB,虽然它的性能不如高端显卡(如RTX 3060、3090等),但对于学习和研究 人脸识别技术,尤其是进行基础的…...
华为数通Datacom认证体系详解:从HCIA到HCIE的进阶路径
华为数通Datacom(Data Communication)课程是华为认证体系中的核心方向之一,聚焦企业网络通信与数据通信技术,适合从事网络规划、部署和运维的人员。 一、数通Datacom课程体系 华为数通Datacom认证分为 三个级别,逐级递…...
【运维】内网服务器借助通过某台可上外网的服务器实现公网访问
背景: 内网服务器无法连接公网,但是办公电脑可以连接内网服务器又可以连接公网。 安装软件 1、frp 2、ccproxy 配置 1、内网服务器 # 内网服务器启动frp服务配置文件参考vi frps.ini# frps.ini [common] bind_port 7000# 备注: bind_port端口可以随意配置。配置完…...
Spring之Bean的生命周期过程中调用的方法
1。这个部分除了6,9都在这了 package com.example.springbootdemo3.lifebeean;import org.springframework.beans.BeansException; import org.springframework.beans.factory.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.con…...
Vue 中动态实现进度条
在 Vue 中动态实现进度条,基本上有两种常见的方法:直接通过 Vue 数据绑定控制样式,或者利用外部库来实现更复杂的功能。我们会深入探讨这两种方式,并且详细说明每种方法的实现步骤、优缺点以及使用场景。 1. 使用 Vue 数据绑定来…...
Qt互斥锁(QMutex)的使用、QMutexLocker的使用
Qt互斥锁【QMutex】的使用、QMutexLocker的使用 Chapter1 Qt互斥锁(QMutex)的使用、QMutexLocker的使用一、QMutexLocker和QMutex实现示例图二、QMutex和QMutexLocker的关系(个人理解)三、QMutex使用和QMutexLocker使用1.QMutex的使用2.QMutexLocker的使…...
Python开发 Flask框架面试题及参考答案
目录 Flask 的核心设计理念是什么?与 Django 相比有哪些显著差异? 解释 Flask 框架的核心理念及其作为 “微框架” 的优缺点 Flask 的依赖库有哪些?简述 Werkzeug 和 Jinja2 的作用 什么是 WSGI?Flask 如何基于 WSGI 实现服务端与应用的交互 解释 RESTful API 的设计原…...
DeepSeek模型昇腾部署优秀实践
2024年12月26日,DeepSeek-V3横空出世,以其卓越性能备受瞩目。该模型发布即支持昇腾,用户可在昇腾硬件和MindIE推理引擎上实现高效推理,但在实际操作中,部署流程与常见问题困扰着不少开发者。本文将为你详细阐述昇腾 De…...
【cv】vs2022配置opencv
release下配置包含目录和库目录 E:\sdk\sdk_cuda12.3\opencv490\include E:\sdk\sdk_cuda12.3\opencv490\include\opencv2 E:\sdk\sdk_cuda12.3\opencv490\lib release下配置包含链接器输入的依附依赖项 opencv_world490.lib release编译文件夹下需手动复制opencv_world49…...
RabbitMQ系列(五)基本概念之Queue
在 RabbitMQ 中,Queue(队列) 是存储消息的容器,也是消息传递的核心载体。以下是其核心特性与作用的全方位解析: 一、Queue 的定义与核心作用 消息存储容器 Queue 是 RabbitMQ 中实际存储消息的实体,生产者…...
从二维随机变量到多维随机变量
二维随机变量 设 X X X和 Y Y Y是定义在同一样本空间 Ω \varOmega Ω上的两个随机变量,称由它们组成的向量 ( X , Y ) (X, Y) (X,Y)为二维随机变量,亦称为二维随机向量,其中称 X X X和 Y Y Y是二维随机变量的分量。 采用多个随机变量去描述…...
IP-----动态路由OSPF
这只是IP的其中一块内容,IP还有更多内容可以查看IP专栏,前一章内容为GRE和MGRE ,可通过以下路径查看IP-------GRE和MGRE-CSDN博客,欢迎指正 注意!!!本部分内容较多所以分成了两部分在下一章 5.动态路由OS…...
RabbitMQ操作实战
1.RabbitMQ安装 RabbitMQ Windows 安装、配置、使用 - 小白教程-腾讯云开发者社区-腾讯云下载erlang:http://www.erlang.org/downloads/https://cloud.tencent.com/developer/article/2192340 Windows 10安装RabbitMQ及延时消息插件rabbitmq_delayed_message_exch…...
python-leetcode-不同路径
62. 不同路径 - 力扣(LeetCode) class Solution:def uniquePaths(self, m: int, n: int) -> int:dp [1] * n # 仅保留一行for i in range(1, m):for j in range(1, n):dp[j] dp[j-1]return dp[-1]...
【react】快速上手基础教程
目录 一、React 简介 1.什么是 React 2.React 核心特性 二、环境搭建 1. 创建 React 项目 2.关键配置 三、核心概念 1. JSX 语法 表达式嵌入 样式处理 2. 组件 (Component) 3. 状态 (State) 与属性 (Props) 4. 事件处理 合成事件(SyntheticEvent) 5. …...
【愚公系列】《Python网络爬虫从入门到精通》033-DataFrame的数据排序
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…...
一周一个Unity小游戏2D反弹球游戏 - 移动的弹板(触屏版)
前言 上文中实现了用鼠标移动控制弹板的移动,本文将实现手指触屏时弹板跟随手指移动的功能,并通过使用Unity自带的Device Simulator Devices Package来验证和模拟触屏设备的使用场景。 安装Device Simulator Devices Package 打开Unity Package Manager&…...
深度学习-11.用于自然语言处理的循环神经网络
Deep Learning - Lecture 11 Recurrent Networks for Natural Language Processing 介绍文本表示用数字表示单词词嵌入(word embedding) 机械翻译编码器 - 解码器循环模型(Encoder-decoder recurrent models)双向循环网络 注意力机制(方法&am…...
2025年软考报名费用是多少?全国费用汇总!
软考报名时间终于确定了!想要参加2025年软考的同学们注意啦!特别是那些一年只有一次考试机会的科目,千万不要错过哦!这里为大家整理了各地的报名时间、科目、费用等信息,快来看看吧! 一、2025年软考时间安…...
el-input实现金额输入
需求:想要实现一个输入金额的el-input,限制只能输入数字和一个小数点。失焦数字转千分位,聚焦转为数字,超过最大值,红字提示 效果图 失焦 聚焦 报错效果 // 组件limitDialog <template><el-dialog:visible.s…...
C++11相较于C++98的新特性介绍:列表初始化,右值引用与移动语义
一,列表初始化 1.1C98中传统的{} C98中一般数组和结构体可以使用{}进行初始化: struct Date {int _year;int _month;int _day; };int main() {int a[] { 1,2,3,4,5 };Date _date { 2025,2,27 };return 0; } 1.2C11中的{} C11以后想统一初始化方式&…...
ISIS(中间系统到中间系统)——基础
ISIS是一项通用的动态路由协议,其隶属于链路状态路由协议,最初运行与OSI七层的网络层,采用组播地址224.0.0.14和224.0.0.15两个组波段,由于其较高的拓展性与高速收敛,被大多数运营商网络所使用 起源 ISIS最初是由国际…...
如何使用useContext进行全局状态管理?
在 React 中,使用 useContext 进行全局状态管理是一种有效的方法,尤其在需要在多个组件之间共享状态时。useContext 允许你在组件树中传递数据,而无需通过每个组件的 props 逐层传递。以下是关于如何使用 useContext 进行全局状态管理的详细指…...
docker容器网络配置及常用操作
Linux内核实现名称空间的创建 ip netns(网络名称空间)命令 可以借助ip netns命令来完成对 Network Namespace 的各种操作。ip netns命令来自于iproute安装包,一般系统会默认安装,如果没有的话,请自行安装。 注意&am…...
GMII(Gigabit Media Independent Interface)详解
一、GMII的定义与作用 GMII(千兆介质无关接口)是用于千兆以太网(1Gbps)的标准化接口,连接 MAC层(数据链路层)与 PHY芯片(物理层)。其核心目标是支持高速数据传输&#x…...
Wireshark Lua 插件教程
本⽂主要介绍 Lua 脚本在 Wireshark 中的应⽤, Lua 脚本可以在 Wireshark 中完成如下功能: 从⽹络包中提取数据, 或者统计⼀些数据包(Dumper) 需要解析⼀种 Wireshark 不提供原⽣⽀持的协议(Dissector) ⽰例 协议解析 VREP 协议是 NOGD 框架对于 TRIP 协议的⼀种延伸和扩展…...
【多模态大模型】GLM-4-Voice端到端语音交互机器人VoiceAI
写在前面:开源选手中最能打的 GLM-4-Voice,由智谱 AI 和清华大学共同研发,并发表论文 “GLM-4-Voice: Towards Intelligent and Human-Like End-to-End Spoken Chatbot”,旨在打造智能且类人化的端到端语音聊天机器人。GLM-4-Voi…...
Unity 列表滚动到指定位置
使用场景 策划提出需求:当玩家打开领奖界面时,奖励列表需要自动滑动到可以领奖的奖励栏处或者正在进行的任务栏处。 思路 1、将Content设置好对齐方式和锚点 子物体的预制体和Content:pivot轴心点设置为(0,1),并且设置为左上角对齐。 2、主…...
使用Crawlee可破题js渲染采集数据
使用 Crawlee 实现自动化爬虫流程 1. Crawlee 简介 Crawlee 是一个强大的爬虫框架,用于快速构建和维护可靠的爬虫。它支持多种爬虫类型,包括基于 Cheerio 和 Playwright 的爬虫,能够高效处理静态和动态网页。 2. 项目目标 通过自动化脚本实…...
小红的字母游戏(A组)
链接:登录—专业IT笔试面试备考平台_牛客网 来源:牛客网 题目描述 小红有一个长度为 nnn 的字符串 sss,仅包含小写字母,小红可以选出 kkk 个字符,组成一个新的字符串 ttt,对于 ttt 的每一个字符 tit_it…...
MFC线程
创建线程 HANDLE m_hThread; m_hThread CreateThread(NULL, 0, save_snapshot, (LPVOID)this, 0, &iThreadId);开启线程循环等待 DWORD WINAPI save_snapshot(LPVOID pVoid) {while (true){//持续循环等待事件到达。接收到事件信号后才进入if。if (::WaitForSingleObjec…...
目标检测YOLO实战应用案例100讲-面向无人机图像的小目标检测
目录 知识储备 YOLO v8无人机拍摄视角小目标检测 数据集结构 环境部署说明 安装依赖 模型训练权重和指标可视化展示 训练 YOLOv8 PyQt5 GUI 开发 主窗口代码 main_window.py 使用说明 无人机目标跟踪 一、目标跟踪的基本原理 二、常用的目标跟踪算法 基于YOLOv…...
【Java分布式】Nacos注册中心
Nacos注册中心 SpringCloudAlibaba 也推出了一个名为 Nacos 的注册中心,相比 Eureka 功能更加丰富,在国内受欢迎程度较高。 官网:https://nacos.io/zh-cn/ 集群 Nacos就将同一机房内的实例划分为一个集群,一个服务可以包含多个集…...
VSCode轻松调试运行.Net 8.0 Web API项目
1.背景 我一直都是用VS来开发.NetCore项目的,用的比较顺手,也习惯了。看其他技术文章有介绍VS Code更轻量,更方便。所以我专门花时间来使用VS Code,看看它是如何调试代码、如何运行.Net 8.0 WebAPI项目。这篇文章是一个记录的过程…...
PageHelper新发现
PageHelper 背景解决reasonablepageSizeZero 背景 今天发现了一个很有趣的现象,接手一个很老的项目springmvc项目、使用PageHelper分页实现常见的后端接口分页功能。但是发现当页码参数大于实际的页码数时、正常不应该返回数据,但是目前确一直返回数据不…...
python编写liunx服务器登陆自动巡检脚本
前言: 用户需要一份用Python编写的Linux系统巡检脚本,检查内存、磁盘、CPU使用率,还有网络连通性。 首先,我得确定用户的使用场景。可能用户是系统管理员,需要定期监控服务器状态,确保系统正常运行。 或者…...
基于 Flink CDC YAML 的 MySQL 到 Kafka 流式数据集成
本教程的演示都将在 Flink CDC CLI 中进行,无需一行 Java/Scala 代码,也无需安装 IDE。 这篇教程将展示如何基于 Flink CDC YAML 快速构建 MySQL 到 Kafka 的 Streaming ELT 作业,包含整库同步、表结构变更同步演示和关键参数介绍。 准备阶段…...
数据结构——并查集
AcWing - 算法基础课 Acwing——合并集合 代码如下: #include <bits/stdc.h>using namespace std; #define fs first #define sc second #define endl \n #define all(x) x.begin(), x.end() typedef long long ll; typedef pair<int, int> PII;cons…...