视频扩散模型迎来革新!NUS提出TPDiff框架:训练成本减半,推理速度飙升!

AWS S3文件上传性能优化:Java SDK多线程与分段上传实战指南 本文详细介绍了如何通过Java SDK优化AWS S3文件上传性能,重点讲解多线程并发上传与分段上传(Multipart Upload)技术的实战应用。通过动态调整分段策略、线程池配置及内存优化技巧,可显著提升大文件上传效率,实测显示组合方案比单线程上传提速近5倍。文章还涵盖加密上传、断点续传等高级场景解决方案,并提供了完整的性能对比测试数据。 阅读详情

🌐 社群导航

🔗 点击加入➡️【AIGC/LLM/MLLM/3D/自动驾驶】 技术交流群

🔗 点击加入➡️【2-3月CCF投稿】交流群

最新论文解读系列

论文名:TPDiff: Temporal Pyramid Video Diffusion Model                

论文链接:https://arxiv.org/pdf/2503.09566 

项目链接:https://showlab.github.io/TPDiff/ 

导读

视频扩散模型的发展揭示了一个重大挑战:巨大的计算需求。为了缓解这一挑战,我们注意到扩散的逆过程具有内在的熵减特性。鉴于视频模态中的帧间冗余,在高熵阶段保持全帧率是不必要的。基于这一见解,我们提出了TPDiff,一个统一的框架来提高训练和推理效率。通过将扩散过程划分为几个阶段,我们的框架在扩散过程中逐步提高帧率,仅在最后阶段以全帧率运行,从而优化计算效率。为了训练多阶段扩散模型,我们引入了一个专门的训练框架:分阶段扩散。通过在对齐的数据和噪声下求解扩散的分区概率流常微分方程(ODE),我们的训练策略适用于各种扩散形式,并进一步提高了训练效率。全面的实验评估验证了我们方法的通用性,证明了训练成本的降低和推理效率的提高。

简介

随着扩散模型的发展,视频生成取得了重大突破。最先进的视频扩散模型不仅使个人能够进行艺术创作,还在机器人技术和虚拟现实等其他领域展现出巨大潜力。尽管视频扩散模型性能强大,但对空间和时间分布进行联合建模的复杂性使得它们的训练成本高得令人望而却步。此外,随着对长视频需求的增加,训练和推理成本也将相应持续增加。

图片

图1. 我们方法的概述。我们的方法采用渐进帧率,如图(a)和(b)所示,仅在最后阶段使用全帧率,从而在训练和推理中都大大优化了计算效率,如图(c)所示。

方法

1. 预备知识

去噪扩散隐式模型DDIM通过在潜在空间中操作扩展了DDPMs。与DDPM类似,在正向过程中,DDIM根据噪声调度将真实数据转换为一系列中间样本,最终转换为高斯噪声:

其中  和  表示总时间步长。在向潜变量添加噪声后,我们通常会训练一个神经网络  来预测所添加的噪声。形式上, 使用以下目标进行训练:

给定一个预训练的扩散模型 ,可以通过求解相应的概率流常微分方程(ODE)来生成新数据。去噪扩散隐式模型(DDIM)本质上是一个一阶常微分方程求解器,它通过以下方式制定了一个去噪过程,从样本  生成 :

(3)

图片

图 2. 方法。a) 时间金字塔视频扩散模型的流程。我们将扩散过程划分为多个帧率递增的阶段。在每个阶段,新帧最初是从现有帧进行时间插值得到的。b) 我们的训练策略:分阶段扩散。在普通扩散模型中,沿常微分方程路径的噪声方向指向真实数据分布。在分阶段扩散中,噪声方向指向当前阶段的终点。

其中 

。

流匹配 基于流的生成模型旨在学习一个速度场 ,该速度场将高斯噪声   转换为真实数据  的分布。流匹配采用噪声  和数据  之间的线性插值:

它训练一个神经网络  来匹配速度场,然后针对给定的边界条件  求解常微分方程以获得流。流匹配损失函数如下:

(5)

2. 时间金字塔扩散

现有视频扩散模型的核心模块——注意力机制,在序列长度方面呈现出二次复杂度。我们的目标是减少视频生成中的序列长度并降低计算成本。我们的方法基于两个关键见解:1) 连续视频帧之间存在相当大的冗余。2) 扩散过程的早期阶段保持低信噪比(SNR),导致信息含量极少。这表明在这些初始时间步以全帧率运行是不必要的。基于这些见解,我们提出了如图 2 所示的时间金字塔视频扩散。与使用固定帧率的传统视频扩散模型相比,我们的框架在去噪过程中逐步提高帧率。

详细来说,我们将扩散过程划分为多个阶段,每个阶段具有不同的帧率,并使用单个模型来学习所有阶段的数据分布。我们创建  个阶段 ,其中  表示总时间步长。第  阶段的帧率降低到原始帧率的 。这确保只有最后一个阶段以全帧率运行,从而优化计算效率。尽管具有效率优势,但普通扩散模型不支持多阶段训练和推理。因此,剩余的挑战是:1) 如何以统一的方式训练多阶段扩散模型,这将在 3.3 节和 3.4 节中介绍;2) 如何进行推理,这将在 3.5 节中讨论。

3. 训练策略

在阶段  中,我们将  表示为起始和结束时间步,将  和  分别表示为起点和终点。训练的目标是在每个阶段将  的分布转换为  的分布。为了实现这一目标,关键在于获得分阶段的 1) 目标,即在去噪扩散隐式模型(DDIM)中的  和在流匹配中的 ,以及 2) 中间隐变量 ,其中 。接下来,我们将介绍一个名为分阶段扩散的统一训练框架。

分阶段扩散 为了确保通用性,认识到不同的扩散框架具有如方程 1 和方程 4 所示的相似形式,我们提出一种统一的扩散形式:

其中  和  的形式取决于所选的扩散框架。我们的推导基于方程 6,而不限制  和  的参数化。考虑到具有不同帧率的阶段之间的连续性,我们通过以下方式得到  和 :

其中  和  是沿时间轴进行  次下采样和上采样。我们从方程 7 中前一阶段的终点推导出当前阶段的起点,以连接相邻阶段,这对于推理至关重要,将在 3.5 节中介绍。然而,这种设计也会导致边界分布偏移,我们无法直接从方程 7 和方程 8 中获得训练目标。相反,我们应该在每个阶段根据边界条件  和  计算添加的噪声。幸运的是,DPM 求解器推导了扩散常微分方程(ODE)路径上任意两点  和  之间的关系,这种关系也可以应用于我们方法中的任何阶段。因此,在阶段  中,用  替换 ,用  替换 ,我们可以将中间隐变量  表示为  的函数:

其中 ,并且  是  的反函数。方程 9 由两部分组成:一个由  给出的确定性缩放因子,以及噪声  的指数加权积分。如果  在阶段  中是一个常数,记为 ,则上述积分等价于:

虽然在任何阶段强制  为恒定值具有挑战性,但我们可以利用数据 - 噪声对齐来将其值限制在一个狭窄的范围内。具体来说,在向视频添加噪声之前,我们通过最小化如图 3 所示的视频 - 噪声对之间的总距离,预先确定每个视频的目标噪声分布,从而确保数据 - 噪声对齐,并且方程 9 近似等同于方程 10。对齐过程可以使用 SciPy以如算法 1 所示的一行代码实现。

图片

图3. 数据 - 噪声对齐。对于每个训练样本,(a) 普通扩散训练在整个噪声分布中随机采样噪声,导致训练期间的常微分方程(ODE)路径具有随机性。(b) 相比之下,我们的方法在最接近的范围内采样噪声,使训练期间的ODE路径近似确定。

算法1 数据 - 噪声对齐

我们的实验表明,这种近似是有效的,并且不会影响模型的性能。

通过数据 - 噪声对齐,我们可以将方程10应用于该阶段的任何点,包括终点 。通过将  和  代入方程10,经过简单变换,我们得到阶段  的噪声  的表达式:

然后,我们可以通过将  代入方程10轻松得到阶段  中的任何中间点 。因此,我们可以使用我们方法中得到的  和  计算相应的损失,并以与普通扩散训练相同的方式优化模型参数。请注意,上述推导并未限制  和  的表达式,这使得我们的方法适用于不同的扩散框架。我们还注意到,如图2所示, 的方向指向当前阶段的终点,而不是普通扩散模型中的最终目标。通过减小中间点与其目标点之间的距离,我们的方法促进了训练过程,并进一步加速了模型收敛。

4 实际实现

实际上,对于常微分方程(ODE)路径是弯曲的扩散框架,如去噪扩散隐式模型(DDIM),我们可以将  和  代入方程10和方程11以得到  和 。对于流匹配,由于它可以将任何先验分布转换为其他分布,我们可以将每个阶段建模为一个完整的流匹配过程,从而得到一个更简单的表达式:

其中 。并且阶段  的目标是:

金字塔流忽略的一个方面是噪声 - 数据对齐,这导致先验分布的方差增加,从而阻碍了模型收敛。值得注意的是,如果我们将每个阶段建模为一个完整的DDIM过程,模型将无法收敛。这是因为单个模型很难拟合多个弯曲的ODE轨迹。

总之,我们在算法2中可视化了我们方法的训练过程。

算法2 分阶段扩散

5 推理策略

训练完成后,我们可以使用标准采样算法来求解每个阶段的反向ODE。然而,需要仔细处理阶段连续性。

一个阶段完成后,我们首先通过插值在时间维度上对  进行上采样,使其帧率翻倍。随后,我们对  进行缩放,并注入额外的随机噪声,以匹配训练期间  的分布:

缩放因子  确保均值连续性,而  用于补偿方差差异。考虑使用最近时间上采样的最简单情况并降低噪声的影响,我们推导出方程14为(详细推导见附录A.1):

其中,

实验

1. 实验设置

我们在去噪扩散隐式模型(DDIM)和流匹配(flow matching)中都实现了我们的方法。由于大多数视频扩散模型都是基于预训练的图像模型构建的,因此我们的实验基于两个图像模型:MiniFlux和SD1.5。这两个模型分别在流匹配和去噪扩散隐式模型下进行训练。我们通过在视频数据上微调MiniFlux的所有参数,将其扩展为MiniFlux-vid,并采用AnimateDiff将SD1.5扩展为视频模型。在所有实验中,阶段数设置为3,并且每个阶段均匀划分。我们的实验在英伟达H100 GPU上进行。

数据集 我们从Open-VID1M中选择大约  个高质量的文本 - 视频对来构建我们的数据集。该数据集包含运动得分和美学得分均在前  ,或者至少有一个得分在前  的视频。MiniFlux-vid和AnimateDiff的分辨率分别为384p和256x256。

基线模型 我们将我们的方法与在普通扩散框架下训练的视频扩散模型进行比较。为了证明我们的方法不会导致性能下降,我们训练了两个基线模型:在普通流匹配和去噪扩散隐式模型框架下的MiniFlux-vid和AnimateDiff,不使用时间金字塔。我们在我们精心挑选的数据集上使用与我们的方法相同的超参数从头开始训练这些基线模型。为了证明我们的方法相对于现有方法的有效性,我们还在我们的数据集上从头开始训练了modelscope和OpenSora。

图4. 定性比较。在每对视频中,第一行展示了使用普通扩散训练的模型的结果,第二行展示了我们方法的结果。前两对视频由MiniFlux-vid生成,其余的由AnimateDiff生成。

评估 我们从两个角度评估我们的模型:生成质量和效率。为了评估生成质量,我们采用VBench中的定量指标来比较我们的方法与现有模型的性能。对于效率,我们可视化收敛曲线以直观地展示训练效率。具体来说,为了评估模型在训练过程中的生成能力,我们遵循常见做法,使用来自MSRVTT的验证视频进行零样本生成评估。我们在训练过程中系统地计算弗雷歇视频距离(FVD)值,并展示FVD - GPU小时曲线以证明我们方法的训练效率。我们还报告平均推理时间以验证推理效率。

2. 定量结果

表1. 基线模型和我们方法的推理效率。所有模型的总去噪步数均设置为30。

表2展示了我们的方法与基线模型的定量比较。与现有方法相比,我们的模型以更高的总分取得了更好的结果。与普通扩散模型相比,我们的方法在大多数方面都有改进,这表明它在不影响性能的前提下提高了效率。这进一步表明,普通视频扩散模型在时间建模方面存在大量冗余,而我们的方法有效地消除了这些冗余。

图5显示,与普通扩散模型相比,我们的方法在训练中实现了和2.13倍的加速。这种加速主要源于两个因素:1) 噪声 - 数据配对:通过将噪声与数据对齐,我们降低了训练中的随机性。模型学习的是近乎确定性的常微分方程(ODE)路径,而不是多个相交ODE路径的期望。2) 更短的平均序列长度。由于注意力机制的计算复杂度与序列长度呈二次方关系,我们的方法平均所需的计算复杂度显著降低。例如,要生成长度为的视频,我们方法中注意力模块的平均计算成本减半,从普通扩散模型中的降至 。如表1所示,这种优势也体现在更快的推理速度上。

图片

图5. 普通扩散模型和我们的方法在(a) 去噪扩散隐式模型(DDIM)、(b) 流匹配上的收敛曲线。我们展示了两种方法在消耗不同GPU时长下的弗雷歇视频距离(FVD)。与普通方法相比,我们的方法实现了更高的训练效率。

图片

图6. 推理策略的消融研究。我们的方法生成的视频平滑、质量高,而没有推理重加噪的基线模型生成的视频有明显闪烁。

图片

图7. 数据 - 噪声对齐的消融研究。与基线模型相比,我们的方法可以生成更清晰的视频。

表2. 基线方法和我们方法的视频生成质量比较。

3. 定性结果

如图4所示,我们展示了我们的方法与普通视频扩散模型之间的定性比较。我们的方法生成的结果显示在第二列,基线方法的输出显示在第一列。显然,我们的方法能够生成语义准确性更高、动作幅度更大的视频。例如,在提示语 “一个男人在火星上说话” 下,基线方法生成的人物只是摇头而不说话,未能完全符合提示语。相比之下,我们的方法准确地生成了指定的动作,与给定提示语的匹配度更高。此外,对于AnimateDiff,基线方法生成的视频几乎是静止的,而我们的方法实现了幅度更自然合理的动作。

4. 消融实验

我们对两个关键设计进行了消融实验:数据 - 噪声对齐和再去噪推理策略。

数据 - 噪声对齐的消融实验 为了证明数据 - 噪声对齐的有效性,我们设计了一个未进行对齐训练的基线方法。图7和表3展示了我们的方法与该变体的比较。我们的方法能够生成高质量且流畅的视频,而基线方法产生模糊的结果。这是因为,在未进行对齐的情况下,从公式9到公式10的近似会产生更大的误差。因此,通过公式10和公式11计算得到的和与真实值存在偏差,导致结果模糊。

表3. 数据噪声对齐消融实验。

图片

图8. 普通扩散模型与我们的方法在训练5000步后的对比。我们的方法即使在训练早期也能生成时间上稳定的视频,而普通方法则不能。提示词为“一片宁静的向日葵田景象”。

去噪推理策略消融实验 如图6所示,我们通过比较有去噪和无去噪的推理来研究该策略的效果。结果表明,虽然不使用校正噪声仍能生成大致连贯的视频,但不可避免地会导致闪烁和模糊的结果。

总结

在本文中,我们提出了一种用于视频扩散模型的通用加速框架。我们引入了TPDiff,这是一个在扩散过程中逐步提高帧率的框架。此外,我们设计了一个名为分阶段扩散的专用训练框架,它适用于任何形式的扩散。我们的实验表明,我们的方法加速了不同帧上的训练和推理。

【教程4>第1章>第12节】通过Verilog读取txt格式数据进行测试并将结果导入到matlab 我们在verilog的testbench中,调用txt文件,将上述正弦样本数据作为测试激励输入到verilog模块中。通过这个方法,可以将一些较为复杂的数据导入到verilog中,进行FPGA数据处理模块的开发。即通过w方式打开一个新的txt文件,然后将verilog的输出保存到XY1.txt文件中。这个部分是txt文件的路径,实际使用时,修改为您自己的路径,或者将txt文件放在和我一样的路径中。这个是数据长度,matlab产生的txt多少长度,这个参数就修改为多少长度。这个txt就是保存这段数据的文件。 阅读详情

相关推荐

峰岹FU6832L双核电机控制芯片实战:从FOC算法到BLDC/PMSM驱动开发

在嵌入式系统和电机控制领域,磁场定向控制(FOC)是实现无刷直流电机(BLDC)和永磁同步电机(PMSM)高效、平稳运行的核心算法。其原理是通过坐标变换将三相交流量分解为直流量,实现类似直流电机的转矩与磁场解耦控制,从而提升效率、降低噪音与振动。这项技术的工程价值在于能以更低的处理器开销实现高性能驱动,广泛应用于消费电子、工业自动化与智能家电。本文以峰岹FU6832L芯片为例,深入解析其独特的双核架构——将实时性要求极高的FOC运算交由专用硬件引擎处理,解放主控CPU处理应用逻辑,并结合PID参数整定、电流

weixin_29570795的博客 522

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 379

【重磅干货】介质损耗因数(tanδ)揭秘:如何精准定位材料劣化最严重的温度?附权威研究PDF!

是评估绝缘材料性能的核心指标,能直接反映材料内部能量损耗和微观结构变化。通过分析tanδ-温度曲线的峰值点,可精准定位材料劣化最严重的温度。:极化损耗峰值的温度点(如环氧树脂的80℃)是材料性能拐点,需重点关注!:图3对比了5种材料的tanδ-温度曲线,峰值温度差异高达50℃!在电力设备、电子元器件等领域,材料的老化与温度密切相关。:[《介质损耗峰值温度在设备寿命预测中的应用》]在不同温度下测量tanδ,绘制曲线图。:[《多材料介质损耗峰值温度对比研究》]:基于tanδ峰值温度开发的。

mubiao05的博客 1351

UML面向对象-分析、建模与设计(第三版·微课视频·题库版)顺序图画图

该顺序图展示了客户端(Client)通过事务对象(Transaction)与ODBC代理(ODBCProxy)的交互过程。客户端创建事务,设置操作参数并提交,事务调用代理完成数据设置,最后销毁事务。整个流程体现了对象间协作与生命周期管理,清晰展现了系统内部调用顺序与状态变化。

一亩高粱 33

Cursor聊天记录迁移工具:实现跨设备AI对话同步与备份

在软件开发中,数据持久化与迁移是常见需求,尤其当工具依赖本地存储时。SQLite作为轻量级关系型数据库,因其嵌入式、零配置特性,常被用于存储应用状态与用户数据。其WAL(预写式日志)模式提升了并发性能,但也增加了数据操作复杂性。通过命令行工具与JSON序列化技术,可以实现结构化数据的提取、转换与安全迁移,这对于保障开发资产的连续性与可移植性具有重要价值。例如,在AI辅助编程场景下,开发者与AI的对话记录包含关键的问题分析、解决方案与决策逻辑,是重要的上下文资产。cursor-chat-transfer工具正

weixin_42551967的博客 536

避开这5个坑!Tushare数据获取与清洗的常见问题解决方案

本文详细解析了使用Tushare进行金融数据分析时常见的5大问题,包括Token失效、数据缺失、频率限制等,并提供了Python实战解决方案。通过智能填充策略、队列化管理和分层存储设计,帮助开发者高效获取和清洗金融数据,提升量化分析效率。特别适合金融数据分析师和Python开发者参考。

f9g0h的博客 425

AI 视频进入智能体时代:一条短片,如何从灵感走到成片?

AI 视频创作正在从单点生成走向完整流程。本文结合 Adobe Firefly 的新动向,梳理从确定目标、准备授权素材、设计画面到配音字幕和发布前复核的五步方法,并介绍 Aivo容剪如何辅助团队衔接创作环节。

AIVOClaw的博客 145

手把手教你学Simulink--FIR滤波器的设计与优化仿真

FIR滤波器的设计目标通常包括指定的频率响应特性(如低通、高通、带通或带阻),以及特定的应用需求(如线性相位、最小化误差等)。Simulink提供了一个直观且强大的平台来模拟这些设计,并允许用户通过调整参数实时观察其对系统性能的影响。明确你的系统需求,比如输入信号类型(如正弦波组合)、采样率、FIR滤波器的设计参数(如滤波器类型、阶数、截止频率等)。假设我们需要设计一个低通FIR滤波器,用来去除高于1kHz的所有频率成分,保留低于1kHz的信号成分。采样率为8kHz。

MHD0815的博客 348

AI动画视频生成器免费在线怎么用?新手完整操作教程

AI动画视频生成器让零基础用户也能快速制作动画内容,本文拆解在线创作全流程:剧本构思、角色场景设定、提示词撰写、分镜生成、后期剪辑导出。对比免费版与付费版本的差异,讲解免费工具常见限制,分享素材导入、提升画面一致性的实操技巧,解答角色跑脸、提示词难写等高频问题,同时介绍适合短剧团队的规模化创作方案,帮助个人创作者和团队按需挑选AI动画工具。

2601_96477822的博客 370

手把手教你学pcie--性能调优 - 中断机制优化

在PCIe系统开发中,中断机制是主机与设备之间通信的重要组成部分。然而,不当的中断设计可能导致CPU负载过高、延迟增加等问题。本文将详细介绍如何优化PCIe系统的中断机制,提升系统性能和响应速度。传统中断(INTx):通过专用引脚发送中断信号,可能引发冲突且效率较低。消息中断(MSI):通过内存写操作发送中断消息,避免冲突并提高效率。扩展消息中断(MSI-X):基于MSI改进,支持更多独立中断向量,适用于复杂场景。选择合适的中断模式对系统性能至关重要。

MHD0815的博客 299

CycloneDDS(C++版本)开源代码在Linux(X86平台)系统上编译生成可执行文件的详细步骤

cyclonedds里面已经有现成的实例供我们参考,在根目录下的example目录下面,我们打开此目录,此目录下有CMakeLists.txt文件以及一些其他的文档,我们需要在此目录(example目录)下编译构建出。我们可以看到cyclonedds-cxx-master包下的example目录下有很多文件,包括CMakeLists.txt等,其中我们要构建的可执行文件所需要的源文件等就在。此过程会稍微慢一点。之后会报错,如下:(图片中是c版本出现的问题截图,不影响,c++也是这个影响,问题是一样的)

qq_42595610的博客 1252

视频解说交付前,用 Python 检查字幕时轴与证据镜头是否对齐

用普通 SRT 和 Python 标准库复现两类字幕错误:时轴重叠,以及结论比证据画面提前出现。附可运行示例、修正结果和人工审片边界。

linan96的博客 149

CRC_16---ModBus 计算方法及代码实现

1、 CRC寄存器初始值为 0xFFFF;即16个字节全为1; 2、 CRC-16 / ModBus的多项式0xA001H (1010 0000 0000 0001B) ; ‘H’表示16进制数,‘B’表示二进制数。 计算步骤为: (1).预置 16 位寄存器为十六进制 0xFFFF(即全为 1) ,称此寄存器为 CRC 寄存器; (2).把第一个 8 位数据与 16 位 CRC 寄存器的低位相异或,把结果放于 CRC 寄存器; (3).检测相异或后的CRC寄存器的最低位,若最低位为1,CRC寄存器

1万+

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 243

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

本地化部署会议视频软件如何替换旧平台?账号迁移、历史数据与用户培训怎么安排?

账号先映射:身份与权限验证通过,再开放使用。资料分级处理:能查、能读、权限正确,比“全部搬完”更重要。切换可恢复:入口、增量数据和业务通知都要纳入回退方案。培训按岗位落地:让用户完成真实任务,而不是只听功能介绍。这套方法适合政企、集团及医疗等具有长期资料留存、多终端接入和业务集成需求的组织。小规模替换可以简化批次与流程,但不应省略权限验证、备份恢复和关键会议演练。

hz56789的博客 292

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

打字就能剪视频的AI工具

AI 会替代剪辑师吗?这个问题和“AI 会替代程序员吗”一样,问错了方向。会用 AI 工具的人,正在替代不会用的人。一个剪辑师用传统方式花三天做的宣传片,另一个人用 UniCut 一天做完,质量差不多,市场会选谁,答案很明显。工具的进化从来不是把专业的人淘汰掉,而是把专业的门槛拆掉。浏览器已经打开了,剩下的就是你愿不愿意试一下。体验地址:https://unicut.h5ds.com/开源仓库:https://github.com/mtsee/unicut。

d676015863的博客 165

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

AI 礼盒开箱视频怎么做?让商品亮相更有仪式感

AI商品视频通过精细设计开箱动作与场景节奏,将礼盒从静态包装转化为沉浸式送礼体验。从暖光布景、情感化构图到手部停顿、商品细节特写,每一帧都传递“精致”与“珍视”。以珠宝礼盒为例,俯拍视角下,红色对开门展开如舞台揭幕,银色项链在深蓝夜空衬底中缓缓呈现,掌心承托、缓慢转动,强化视觉记忆。结尾平铺构图,礼盒与商品共存,情绪由期待落至静谧珍藏。全程无文字,靠画面叙事,实现仪式感与品牌调性的深度融合。

yunhhhhh的博客 130

RN鸿蒙空间音频实战

示例仓库:https://atomgit.com/m0_37170006/react-native-ohos-spatial-audio 社区导引:框架源码与版本发布见 https://atomgit.com/CPF-RN/ohos_react_native/tree/0.84-main CPF-RN 鸿蒙社区:https://atomgit.com/CPF-rn。

buhuisuanfa的博客 2万+

通过 AIGC 生成视频何时才能告别“抽卡”!

如果视频的主体内容已经符合要求,只存在错误字幕或局部画面瑕疵时,重新生成不仅增加成本,还可能改变原本满意的部分。针对这类问题,WAND-EraseVibe+ 提供了视频擦除与画面重建能力。根据腾讯云披露的技术方案,该工具采用基于隐空间 Transformer 的生成式修复架构,先将视频画面编码为隐空间特征,在特征层推断并重建需要修复的区域,再解码为视频画面。白模前置、垂直场景调优和局部修复分别作用于不同环节,目的都是减少为了获得可用内容而付出的重复生成成本。

Enweitech Software Works 163

网页视频资源识别与本地化管理:从 HTTP 流媒体技术到完整的视频工作流

现代网页视频技术已经从简单的文件传输发展到分段传输、自适应码率和浏览器端媒体处理。这使视频播放体验不断改善,也让资源识别和本地管理变得更加复杂。对于技术人员而言,理解 HTTP、HLS、MPEG-DASH 和 MSE 的基本工作机制,有助于更准确地分析网页视频的传输过程。对于视频创作者和研究人员而言,建立从内容发现、资源识别到本地整理的完整工作流,可能比单纯寻找一个下载工具更有长期价值。

m0_68263549的博客 453

Android 音频 Player 体系

Android 音频框架中,"Player"是统一抽象的音频播放实例,涵盖 AudioTrack、MediaPlayer 等。每个 Player 由唯一 piid 标识,通过 PlayerBase 注册至 PlaybackActivityMonitor,状态机管理其生命周期(idle→started→stopped→released)。关键事件如 portId 绑定、静音(位掩码标识主静音、音量为0等)、设备切换等均通过 PLAYER_UPDATE_* 通知系统。静音原因以掩码形式记录,日志中“source

aningxiaoxixi的博客 142

[黎阳之光] 边海防无人机巡检实战教程:航线规划、目标发现与视频孪生联动一次讲透

本文给出的是简化版模型与参考框架,面向真实项目的完整落地,还需结合具体海域、设备与业务规则做针对性设计。它的角色不是替代固定感知,而是做“机动确认层”——雷达和固定视频负责发现,无人机负责在 10 分钟内飞到目标上空,把“有个点”变成“看清是什么”。数据流的关键指标:无人机视频接入孪生平台延迟不超过 800ms,位置上报频率 1Hz,吊舱角度反馈 10Hz。位置或角度一滞后,图上无人机的视野锥就会和实际画面错位,指挥员按图指挥就会指错地方。这样既不断档,又不烧钱。

m0_75019831的博客 308

15. 调用ComfyUI生成视频!

在“导演大师”中,我们不仅支持导出分镜导演包并一键导入运行,还为用户提供了极高的自定义自由度。许多创作者希望结合自己精心调试的 MiniMax H3 工作流来生成视频,这当然是完全支持的。通常有两种操作方式:一种是手动复制,将分镜的资产与提示词手动粘贴至本地工作流中;另一种则是更为高效的自动化方案——直接在“导演大师”中调用 ComfyUI 工作流,实现一键生成。本文将重点介绍后者的配置与使用全流程,帮助你打通从分镜脚本到视频直出的自动化链路。

2601_95544990的博客 284

面向强噪声工业场景的 KL‑2510 音频 DSP 模组设计与多场景落地分析

KL-2510是一款22×16mm邮票孔SMT封装音频模组,集成ADC/DAC、AI-ENC降噪(45–90dB)与AEC回声消除(100dB),支持USB免驱及模拟/PDM麦克风输入,具备4档硬件拾音增益,适配医疗、矿山、安防等复杂噪声场景。通过五类真实案例验证其在病房对讲、井下报警、门铃对讲等应用中的稳定性与易用性。重点提示:需接入AEC_IN参考信号、输出加分压电路、外设勿接3V3电源,避免烧毁。适用于空间紧凑、无算法团队的嵌入式项目,显著降低音频开发门槛。

R190_6589的博客 416

视频已经变模糊了,为什么还是会卡?

视频播放中画质忽清忽糊、画面转圈,根源在于下载速率与缓冲消耗不匹配。即使测速快,也未必能持续支撑高画质播放。自适应码率切换需综合考虑缓冲余量、持续吞吐与切换成本,盲目升档易导致卡顿。测试时应固定片源、模拟真实网络变化,记录缓冲、切换与停顿细节,结合下载、缓冲与轨道变化时间线分析问题,才能优化体验。稳定中等画质往往比频繁跳变更可接受。

NetworkSimulator的博客 258

翻译配音后音画对不上?用 ffmpeg + Python 把新音轨对齐到原视频时间轴

做视频出海、课程本地化的同学迟早会撞上这个坑:原片是中文 3 分钟口播,你换成英文 AI 配音后,要么配音在 2 分 10 秒就播完了、后面画面在放"默片",要么配音拖到 4 分钟、视频早黑屏了——也就是**音画不同步(A/V desync)**。 根因很简单:不同语言的"信息密度"不一样。同一段意思,英文往往比中文多 30%~50% 的音节,中文又比英文短。你把原音轨换成翻译后的配音,新音轨长度和原视频时间轴天然对不上。本文把"怎么测量偏差、怎么用 ffmpeg 把新音轨拉伸/压缩到刚好贴合原视频、...

weixin_60261120的博客 348
上一篇: AI创作从此无所不能!复旦大学提出UniCombine!多条件可控生成的终极武器!
下一篇: 浙大联合上海AI Lab提出Astrea!基于MoE的MLLM新框架!
DataSourceAI
博客等级 码龄3年 470粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值