【论文阅读】FreePCA
FreePCA: Integrating Consistency Information across Long-short Frames in Training-free Long Video Generation via Principal Component Analysis
-
原文摘要
-
问题背景
-
核心挑战:
-
长视频生成通常依赖在短视频上训练的模型,但由于视频帧数增加会导致数据分布偏移(distribution shift)。这表现为:
-
局部信息需保持视觉和运动质量。
-
全局信息需确保整体外观一致性。
-
-
-
现有方法缺陷:
- 当前训练无关的方法难以平衡局部与全局信息,因为视频中的外观和运动高度耦合,导致生成结果出现运动不一致或视觉质量下降。
-
-
核心发现
-
PCA的应用:
-
作者发现,通过主成分分析(PCA),可以将视频特征解耦为:
-
全局一致性外观(由主要成分主导,表征稳定特征)。
-
局部运动强度(由次要成分主导,表征动态变化)。
-
-
-
关键优势:
- 这种解耦允许分别优化全局一致性和局部质量,避免两者相互干扰。
-
-
FreePCA
-
特征解耦:
-
在PCA空间中,通过余弦相似度度量分离外观和运动特征:
-
外观特征:从主成分中提取,确保跨帧一致性。
-
运动特征:从次要成分中提取,保留动态细节。
-
-
-
渐进式融合:
-
逐步整合解耦后的特征,以:
-
保持原始短视频的生成质量。
-
实现长视频中帧间的平滑过渡。
-
-
-
噪声统计复用:
- 重用初始噪声的均值统计量,进一步强化时间一致性。
-
-
1. Introduction
1.1 研究背景与问题定义
-
长视频生成的瓶颈:
-
现有视频扩散模型通常在短视频数据集上训练,直接生成长视频会导致分布偏移(distribution shift),表现为:
-
质量下降
-
运动缓慢
-
语义丢失
-
-
-
现有方法的局限性:
- 全局对齐方法(Global Aligned):
- 直接输入长序列噪声生成视频,但忽略局部质量,导致运动贫乏。
- 局部拼接方法(Local Stitched):
- 通过滑动窗口生成短视频再拼接,但窗口间一致性差。
- 频域融合方法:
- 如通过全局噪声增强一致性,但依赖长帧特征,牺牲了生成灵活性。
- 全局对齐方法(Global Aligned):
-
核心问题:如何平衡全局一致性(长视频稳定性)与局部质量(短视频细节)?
1.2 核心发现与动机
- 局部与全局信息的互补性:
- 局部信息(通过滑动窗口提取):保留模型训练分布,确保视觉和运动质量。
- 全局信息(通过长序列生成):提供跨帧一致性,但质量较低。
- PCA的启发性应用:
- 受背景分割任务启发(PCA分离静态背景与动态前景),作者发现:
- 时间维度的PCA可将视频特征解耦为:
- 一致外观(全局主成分,表征稳定特征)
- 运动强度(局部次要成分,表征动态变化)
- 时间维度的PCA可将视频特征解耦为:
- 这一发现为解耦与融合全局/局部信息提供了理论依据。
- 受背景分割任务启发(PCA分离静态背景与动态前景),作者发现:
1.3 FreePCA方法概述
提出一种Training-Free的长视频生成框架,通过PCA实现:
- 一致性特征分解(Consistency Feature Decomposition):
- 将全局特征(长帧生成)和局部特征(滑动窗口生成)投影到PCA空间。
- 通过余弦相似度划分主次成分:
- 高相似成分(外观一致)→ 从全局特征中提取,补充局部特征。
- 因为一致性特征在全局特征中更稳定,所以用全局补充局部。
- 低相似成分(运动变化)→ 保留局部特征的动态细节。
- 高相似成分(外观一致)→ 从全局特征中提取,补充局部特征。
- 渐进式融合(Progressive Fusion):
- 滑动窗口时,逐步增加全局一致性特征的融合比例,确保平滑过渡。
- 噪声均值复用:重用初始噪声的统计量,进一步强化时间一致性。
-
优势:
-
training-free,兼容多种视频扩散模型
-
支持多提示生成(multi-prompt)和连续视频生成
-
2. Related Work
2.1 Text-to-Video Diffusion Models
- 早期方法:
- 基于VAE(变分自编码器)和GAN(生成对抗网络)的视频生成技术,但受限于生成质量和时序一致性。
- 扩散模型的发展:
- 扩散模型(Diffusion Models)凭借高保真生成能力成为主流
- 关键技术改进:
- 3D卷积与时序注意力:增强帧间连贯性。
- 运动模块微调:兼容LoRA,提升实用性和适配性。
- 潜空间视频扩散:通过降维提升生成效率。
- 高质量图像引导:利用图像数据提升视频视觉质量。
-
现存问题:
-
受计算资源和高质量视频数据稀缺的限制,现有模型仅能生成固定长度的短视频,难以直接扩展至长视频。
-
FreePCA的定位:无需额外训练,基于短视频扩散模型生成长视频。
-
2.2 Long Video Generation
- 基于训练的方法:
- GAN-based和Diffusion-based方法需大量计算资源。
- 训练无关的方法(FreePCA的对比基线):
- 外推法(Extrapolation):
- 优点:保留原始生成质量。
- 缺点:窗口间一致性差。
- 内插法(Interpolation):
- 优点:全局一致性较好。
- 缺点:牺牲运动多样性和局部细节。
- 外推法(Extrapolation):
-
FreePCA的创新点:
-
结合外推与内插的优势:
- 从外推法中保留局部质量(滑动窗口生成)。
- 从内插法中提取全局一致性(PCA解耦外观与运动)。
-
无需训练:避免资源消耗,直接适配现有模型。
-
3. Observation and Analysis
3.1 PCA的动机与发现
-
动机:
-
PCA的启发性应用:
-
受视频分割任务中PCA分离静态背景(一致性)与动态前景(运动)的启发,作者发现PCA在时间维度上可解耦视频特征:
-
高一致性成分:对应全局外观(如场景、主体结构)。
-
低一致性成分:对应局部运动(如动态细节)。
-
-
-
-
验证方法:
-
边缘检测与PSNR量化:
- 对PCA分解后的各成分,用Canny边缘检测生成叠加边缘图。
- 一致性判定:
- 若边缘集中且结构清晰(下图中的b),则PSNR > 35dB;
- 若分散混乱(下图中的c),则PSNR < 35dB。
-
统计对比全局与局部方法:
-
对100组生成视频的PCA分析显示(下图中的表格):
- 全局方法(长帧生成):64%视频含高一致性成分。
- 局部方法(滑动窗口):仅37%视频含高一致性成分。
-
结论:全局方法更易保留一致性,但牺牲运动多样性;局部方法反之。
-
-
3.2 特征解耦与互补性分析
-
可视化PCA观察
-
余弦相似度划分特征:
在PCA空间中,比较全局与局部特征的余弦相似度:
- 高相似成分(外观一致):全局特征更平滑(下图中的c),局部特征更混沌(下图中的d)。
- 低相似成分(运动变化):局部特征变化强度比全局特征变化强度大(下图中的f),保留丰富动态信息。
-
-
物理意义:
-
外观与运动的解耦:
- PCA明确分离了两种特征,而传统方法因耦合性难以区分。
-
互补必要性:
-
全局特征的高一致性可修正局部窗口的闪烁问题。
-
局部特征的高运动强度可弥补全局生成的动态贫乏。
-
-
3.3 与现有方法的差异
-
对比方法:
-
局部拼接法:
- 依赖滑动窗口,未显式建模全局一致性,导致窗口间不连贯。
-
频域融合法:
- 直接融合全局与局部特征,但未解耦外观与运动,导致细节丢失。
-
-
FreePCA的创新:
-
解耦能力:PCA提供明确的特征分离(外观vs运动),而传统方法仅隐式混合。
-
精准融合:
- 仅用全局的高相似成分增强一致性。
- 保留局部的低相似成分维持运动多样性。
-
4. Method
4.1 Consistency Feature Decomposition
-
输入特征:
时空Transformer模块的输入特征为 x ∈ R ( b × h × w ) × F × c x \in \mathbb{R}^{(b \times h \times w) \times F \times c} x∈R(b×h×w)×F×c,其中:-
b , h , w b, h, w b,h,w:批大小、高度、宽度
-
F F F:长视频的总帧数(目标帧数)
-
c c c:通道数
-
预训练模型限制:模型仅在短视频( f f f帧, f < F f < F f<F)上训练,直接输入长序列会导致分布偏移。
-
核心任务:
- 从长视频(全局)和滑动窗口(局部)的特征中,解耦出一致性外观和运动强度特征。
-
-
全局与局部特征提取
-
全局特征(Global Feature):
-
输入整个长序列 x x x 到时序注意力模块(
Temp
),得到 x global ∈ R ( b × h × w ) × F × c x_{\text{global}} \in \mathbb{R}^{(b \times h \times w) \times F \times c} xglobal∈R(b×h×w)×F×c。 -
对齐操作:按滑动窗口位置切片,得到与局部特征对齐的 x global i ∈ R ( b × h × w ) × f × c x^i_{\text{global}} \in \mathbb{R}^{(b \times h \times w) \times f \times c} xglobali∈R(b×h×w)×f×c:
x global i = Slice i ( Temp ( x ) ) x^i_{\text{global}} = \text{Slice}^i(\text{Temp}(x)) xglobali=Slicei(Temp(x))
-
-
局部特征(Local Feature):
-
对第 i i i 个滑动窗口( f f f帧)应用时序注意力,得到 x local i ∈ R ( b × h × w ) × f × c x^i_{\text{local}} \in \mathbb{R}^{(b \times h \times w) \times f \times c} xlocali∈R(b×h×w)×f×c:
x local i = Temp ( Slice i ( x ) ) x^i_{\text{local}} = \text{Temp}(\text{Slice}^i(x)) xlocali=Temp(Slicei(x)) -
关键差异:
- 全局特征因长序列输入存在分布偏移,需通过注意力熵缩放(缩放因子 λ = log f F \lambda = \sqrt{\log_f F} λ=logfF)调整Query值。
-
-
-
PCA投影与特征解耦
-
PCA投影矩阵计算:
-
对全局特征 x global i x^i_{\text{global}} xglobali 进行PCA预处理(数据归一化、协方差矩阵分解、特征值排序),得到变换矩阵 P ∈ R f × f P \in \mathbb{R}^{f \times f} P∈Rf×f:
P = T PCA ( x global i ) P = \mathbb{T}_{\text{PCA}}(x^i_{\text{global}}) P=TPCA(xglobali) -
降维操作:将 x global i x^i_{\text{global}} xglobali 和 x local i x^i_{\text{local}} xlocali 从 R ( b × h × w ) × f × c \mathbb{R}^{(b \times h \times w) \times f \times c} R(b×h×w)×f×c 重塑为 R f × ( b × h × w × c ) \mathbb{R}^{f \times (b \times h \times w \times c)} Rf×(b×h×w×c),再投影到主成分空间:
z global i , z local i = P ⋅ x global i , P ⋅ x local i z^i_{\text{global}}, z^i_{\text{local}} = P \cdot x^i_{\text{global}}, P \cdot x^i_{\text{local}} zglobali,zlocali=P⋅xglobali,P⋅xlocali
-
-
基于余弦相似度的特征选择:
-
计算全局与局部特征在主成分空间中的余弦相似度 s s s,按相似度排序:
s ( 1 ) , … , s ( f ) = CosSim ( z global i , z local i ) s_{(1)}, \dots, s_{(f)} = \text{CosSim}(z^i_{\text{global}}, z^i_{\text{local}}) s(1),…,s(f)=CosSim(zglobali,zlocali)n ( 1 ) , … , n ( f ) = argsort ( s ( 1 ) , … , s ( f ) ) n_{(1)}, \dots, n_{(f)} = \text{argsort}(s_{(1)}, \dots, s_{(f)}) n(1),…,n(f)=argsort(s(1),…,s(f))
-
解耦策略:
-
一致性外观特征( z con i z^i_{\text{con}} zconi):选取相似度最高的前 k k k 个主成分(来自全局特征):
z con i = z global i [ n ( 1 ) , … , n ( k ) ] z^i_{\text{con}} = z^i_{\text{global}}[n_{(1)}, \dots, n_{(k)}] zconi=zglobali[n(1),…,n(k)] -
运动强度特征( z mot i z^i_{\text{mot}} zmoti):保留剩余主成分(来自局部特征):
z mot i = z local i [ n ( k + 1 ) , … , n ( f ) ] z^i_{\text{mot}} = z^i_{\text{local}}[n_{(k+1)}, \dots, n_{(f)}] zmoti=zlocali[n(k+1),…,n(f)]
-
-
-
4.2 Progressive Fusion
-
渐进式融合的核心动机
-
核心问题:直接替换局部特征中的全部一致性成分可能破坏原始生成质量,需平衡融合强度与灵活性。
-
解决思路:
- 动态调整融合比例:随着滑动窗口的推进,逐步增加一致性特征的融合量(避免突变)。
- 保护局部质量:限制最大融合比例(
K_max=3
),确保运动细节不被过度覆盖。
-
-
渐进式融合的具体实现
-
动态选择主成分数量 k:
-
对第
i
个滑动窗口,按以下规则选择融合的主成分数k
:
k = min ( i , K max ) , K max = 3 k = \min(i, K_{\text{max}}), \quad K_{\text{max}}=3 k=min(i,Kmax),Kmax=3- 早期窗口(i ≤ 3):
k = i
(逐步增加融合比例)。 - 后期窗口(i > 3):
k = 3
(达到最大融合比例)。
- 早期窗口(i ≤ 3):
-
-
特征拼接与逆投影:
-
将解耦后的 z con i z^i_{\text{con}} zconi(一致性)与 z mot i z^i_{\text{mot}} zmoti(运动)沿时间维度拼接:
z fuse i = Concat ( z con i , z mot i ) z^i_{\text{fuse}} = \text{Concat}(z^i_{\text{con}}, z^i_{\text{mot}}) zfusei=Concat(zconi,zmoti) -
通过PCA逆变换矩阵 P T P^T PT 映射回原始空间:
x fuse i = P T ⋅ z fuse i x^i_{\text{fuse}} = P^T \cdot z^i_{\text{fuse}} xfusei=PT⋅zfusei
-
-
重叠窗口平均:
- 对重叠部分的帧特征取平均,消除边界伪影,最终输出 x fuse ∈ R ( b × h × w ) × F × c x_{\text{fuse}} \in \mathbb{R}^{(b \times h \times w) \times F \times c} xfuse∈R(b×h×w)×F×c。
-
-
去噪过程的阶段性策略
-
DDIM去噪步骤(50步)的分阶段处理:
- 前25步:完整应用FreePCA(优先建立全局一致性)。
- 后25步:仅用局部方法(保留细节生成能力)。
-
理论依据:
- 扩散模型早期生成场景布局和主体结构(需全局一致性),后期细化细节(需局部多样性)[6]。
-
4.3 Reuse Mean Statistics
-
动机:
- 直接噪声重调度会限制生成多样性,而时序均值能反映外观一致性。
-
实现步骤:
-
初始噪声生成:
ϵ t ∼ N ( 0 , 1 ) , t = 1 , 2 , . . . , F \epsilon_t \sim \mathcal{N}(0, 1), \quad t=1,2,...,F ϵt∼N(0,1),t=1,2,...,F -
均值替换:将后续窗口的噪声均值对齐到首窗口:
ϵ j : j + f ′ = ϵ j : j + f − mean ( ϵ j : j + f ) + mean ( ϵ 1 : f ) \epsilon'_{j:j+f} = \epsilon_{j:j+f} - \text{mean}(\epsilon_{j:j+f}) + \text{mean}(\epsilon_{1:f}) ϵj:j+f′=ϵj:j+f−mean(ϵj:j+f)+mean(ϵ1:f)- 其中 j = n f + 1 j = nf + 1 j=nf+1(
n
为整数),确保覆盖所有窗口。
- 其中 j = n f + 1 j = nf + 1 j=nf+1(
-
帧顺序随机化:对调整后的噪声 ϵ \epsilon ϵ 进行帧间打乱( s h ( ⋅ ) sh(·) sh(⋅)),增强生成灵活性。
-
-
优势:
- 保持外观一致性的同时,避免严格噪声约束导致的场景单一化。
5. Experiments
5.1 Implement Details
-
Setup
-
目标模型:
- VideoCrafter2 和 LaVie(基于16帧短视频训练的公开扩散模型)。
- 目标:扩展生成长视频(64帧),无需微调,直接应用于推理阶段。
-
测试数据:
- 使用 VBench[20] 的 326个文本提示词(涵盖多样场景与动作)。
-
-
Evaluation Metrics
-
两类评估维度:一致性(Consistency) 和 质量(Quality),共6项指标:
维度 指标 计算方法 物理意义 一致性 Subject Consistency 基于 DINO 特征计算帧间物体相似度 主体(如人物、物体)是否稳定不变 Background Consistency 基于 CLIP 特征计算帧间背景相似度 场景(如天空、建筑)是否连贯 Overall Consistency 基于 ViCLIP 特征计算帧间语义与风格相似度 整体视频的语义和风格一致性 质量 Motion Smoothness 使用 AMT视频插值模型 评估运动平滑度 动作是否自然流畅 Dynamic Degree 基于 RAFT光流 计算相邻帧运动强度 视频动态丰富性(避免静态或卡顿) Imaging Quality 使用 MUSIQ(SPAQ数据集训练)评估单帧图像质量 画面清晰度、色彩、细节等 -
基线方法(Baseline)
-
对比三类训练无关的长视频生成方法:
-
Direct Sampling:
- 直接输入64帧噪声,用短视频模型生成(无任何优化)。
- 问题:分布偏移导致质量骤降(主体消失、运动迟缓)。
-
FreeNoise:
-
通过噪声重调度强制对齐帧间噪声分布,提升一致性。
-
局限:噪声约束过强,生成场景单一。
-
-
FreeLong:
-
在频域融合低频全局特征与高频局部注意力图。
-
局限:未解耦外观与运动,细节丢失。
-
-
-
-
相关文章:
【论文阅读】FreePCA
FreePCA: Integrating Consistency Information across Long-short Frames in Training-free Long Video Generation via Principal Component Analysis 原文摘要 问题背景 核心挑战: 长视频生成通常依赖在短视频上训练的模型,但由于视频帧数增加会导致数…...
leetcode 383. Ransom Note
题目描述 代码 class Solution { public:bool canConstruct(string ransomNote, string magazine) {vector<int> table(26,0);for(char ch : magazine){table[ch-a];}for(char ch : ransomNote){table[ch-a]--;if(table[ch-a] < 0)return false;}return true;} };...
SAF利用由Varjo和AFormX开发的VR/XR模拟器推动作战训练
通过将AFormX的先进军用飞行模拟器与Varjo的行业领先的VR/XR硬件相结合,斯洛文尼亚武装部队正以经济高效、沉浸式的训练方式培训战斗机飞行员,以提高其战术准备和作战效率。 挑战:获得战术军事航空训练的机会有限 军事航空训练长期以来一直…...
基于公共卫生大数据收集与智能整合AI平台构建测试:从概念到实践
随着医疗健康数据的爆发式增长,如何有效整合、分析和利用这些数据已成为公共卫生领域的重要挑战。传统方法往往难以应对数据的复杂性、多样性和海量性,而人工智能技术的迅猛发展为解决这些挑战提供了新的可能性。基于数据整合与公共卫生大数据的AI平台旨在构建一个全面的生态…...
【Pandas】pandas DataFrame clip
Pandas2.2 DataFrame Computations descriptive stats 方法描述DataFrame.abs()用于返回 DataFrame 中每个元素的绝对值DataFrame.all([axis, bool_only, skipna])用于判断 DataFrame 中是否所有元素在指定轴上都为 TrueDataFrame.clip([lower, upper, axis, inplace])用于截…...
深度学习基础--目标检测常见算法简介(R-CNN、Fast R-CNN、Faster R-CNN、Mask R-CNN、SSD、YOLO)
博主简介:努力学习的22级本科生一枚 🌟;探索AI算法,C,go语言的世界;在迷茫中寻找光芒🌸 博客主页:羊小猪~~-CSDN博客 内容简介:常见目标检测算法简介…...
嵌套路由~
### 作业 - App.vue vue <script setup></script> <template> <router-link to"/home">首页</router-link> <router-link to"/profile">个人资料</router-link> <router-link to"/posts"&g…...
影楼精修-牙齿美型修复算法解析
本文介绍影楼修图中的牙齿美型修复功能的算法实现。 我们大部分人的牙齿看起来都可能会有一些问题,比如牙齿不平整,大门牙,牙齿泛黄,牙齿发黑,牙齿残缺等等,拍照之后影响美观度,正是这个爱美的…...
k8s之ingress
在前面我们已经知道,Service对集群之外暴露服务的主要方式有两种:NodePort 和 LoadBalance,但是这两种方式,都有一定的缺点 NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就更加明显,L4转发,无法根据http header和path进行路由转发…...
PDF文档解析新突破:图表识别、公式还原、手写字体处理,让AI真正读懂复杂文档!
要想LLM大模型性能更佳,我们需要喂给模型看得懂的高质量数据。那有没有一种方法,能让我们把各种文档“读懂”,再喂给大模型使用呢? 如果你用传统OCR工具直接从PDF中提取文本,结果往往是乱序、缺失、格式错乱。因为实际…...
Ubuntu 第11章 网络管理_常用的网络配置命令
为了管理网络,Linux提供了许多非常有用的网络管理命令。利用这些命令,一方面可以有效地管理网络,另一方面出现网络故障时,可以快速进行诊断。本节将对Ubuntu提供的网络管理命令进行介绍。 11.2.1 ifconfig命令 关于ifconfig命令&…...
C++ 观察者模式详解
观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象间的一对多依赖关系,当一个对象(主题)状态改变时,所有依赖它的对象(观察者)都会自动得到通知并更新。 核…...
不止是UI库:React如何重塑前端开发范式?
React:引领现代前端开发的声明式UI库 在当今快速发展的前端世界,React以其声明式、组件化和高效的特性,稳坐头把交椅,成为构建交互式用户界面的首选JavaScript库。本文将带你快速了解React的核心魅力、主要优势以及生态发展&…...
MapReduce报错 HADOOP_HOME and hadoop.home.dir are unset.
运行课程讲解内容出现这个报错: 1、在电脑里解压之前发过的Hadoop安装包 2、配置用户变量 3、配置系统变量 4、配置系统Path变量 5、下载链接的两个文件: 链接: https://pan.baidu.com/s/1aCcpGGR1EE4hEZW624rFmQ?pwd56tv 提取码: 56tv –来自百度…...
深入探索Laravel框架中的Blade模板引擎
Laravel是一个广泛使用的PHP框架,以其简洁、优雅和强大的功能著称。Blade是Laravel内置的模板引擎,提供了一套简洁而强大的模板语法,帮助开发者轻松构建视图层。本文将深入探讨Blade模板引擎的特性、使用方法和最佳实践。 1. Blade模板引擎简…...
分析NVIDIA的股价和业绩暴涨的原因
NVIDIA自2016年以来股价与业绩的持续高增长,是多重因素共同作用的结果。作为芯片行业的领军企业,NVIDIA抓住了技术、战略、市场与行业趋势的机遇。以下从技术创新、战略布局、市场需求、财务表现及外部环境等维度,深入分析其成功原因…...
P2572 [SCOI2010] 序列操作 Solution
Description 给定 01 01 01 序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),并定义 f ( l , r ) [ ( ∑ i l r a i ) r − l 1 ] f(l,r)[(\sum\limits_{il}^r a_i)r-l1] f(l,r)[(il∑rai)r−l1]. 执行 m m m 个操作&am…...
初等数论--欧拉函数积性的证明
文章目录 1. 简介2. 证明一:唯一分解定理容斥原理3. 证明二:中国剩余定理4. 引理证明5. 参考 1. 简介 欧拉函数 ϕ ( n ) \phi(n) ϕ(n)表示在小于等于 n n n的正整数中与 n n n互质的个数。 如 ϕ ( 6 ) 2 ( 1 5 ) ϕ ( 12 ) 4 ( 1 5 7 11 ) \phi(…...
MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议
核心定义 MCP(Model Context Protocol)是专为LLM(大语言模型)应用设计的标准化协议,通过安全可控的方式向AI应用暴露数据和功能。主要提供以下能力: 标准化的上下文管理安全的功能调用接口跨平台的数据交…...
Midscene.js Chrome 插件实战:AI 驱动的 UI 自动化测试「喂饭教程」
Midscene.js Chrome 插件实战:AI 驱动的 UI 自动化测试「喂饭教程」 前言一、Midscene.js 简介二、环境准备与插件安装1. 安装 Chrome 插件2. 配置模型与 API Key三、插件界面与功能总览四、实战演练:用自然语言驱动网页自动化1. 典型场景一(Action):账号登录步骤一:打开…...
Python在大数据机器学习模型的多模态融合:深入探索与实践指南
一、多模态融合的全面概述 1.1 多模态融合的核心概念 多模态融合(Multimodal Fusion)是指将来自不同传感器或数据源(如图像、文本、音频、视频、传感器数据等)的信息进行有效整合,以提升机器学习模型的性能和鲁棒性。在大数据环境下,多模态融合面临着独特的挑战和机遇: 数…...
C++ 访问者模式详解
访问者模式(Visitor Pattern)是一种行为设计模式,它允许你将算法与对象结构分离,使得可以在不修改现有对象结构的情况下定义新的操作。 核心概念 设计原则 访问者模式遵循以下设计原则: 开闭原则:可以添…...
实验-有限状态机2(数字逻辑)
目录 一、实验内容 1.1 介绍 1.2 内容 二、实验步骤 2.1 电路原理图 2.2 步骤 2.3 状态图 4.4 状态转换表和输出表 2.5 具体应用场景 三、调试 四、实验使用环境 五、实验小结与思考 5.1 遇到的问题及解决方法 5.2 实验收获 一、实验内容 1.1 介绍 在解决更复…...
IC解析之TPS92682-Q1(汽车LED灯控制IC)
目录 1 IC特性介绍2 主要参数3 接口定义4 工作原理分析TPS92682-Q1架构工作模式典型应用通讯协议 控制帧应答帧协议5 总结 1 IC特性介绍 TPS92682 - Q1 是德州仪器(TI)推出的一款双通道恒压横流控制器,同时还具有各种电器故障保护,…...
数据结构-堆
目录 heapq 导入 初始化 插入元素 返回最小值 PriorityQueue 导入 初始化 入队 出队 堆是一颗树,其每个节点都有一个值,且(小根堆:每个父节点都小于等于其子节点 (在进树时不断进行比较 STL中的 priority…...
提升编程效率的利器:Zed高性能多人协作代码编辑器
在当今这个快节奏的开发环境中,一个高效、灵活的代码编辑器无疑对开发者们起着至关重要的支持作用。Zed,作为来自知名编辑器Atom和语法解析器Tree-sitter的创造者的心血之作,正是这样一款高性能支持多人合作的编辑神器。本文将带领大家深入探…...
【25软考网工】第六章 网络安全(1)网络安全基础
博客主页: christine-rr-CSDN博客 专栏主页: 软考中级网络工程师笔记 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新二十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你! 今日…...
Java中的包装类
目录 为什么要有包装类 包装类的作用 基本数据类型和包装类的对应关系 包装类的核心功能 装箱(Boxing)和拆箱(Unboxing) 装箱: 拆箱: 类型转换 字符串<----->基本类型 进制转换 自动装箱与…...
催缴机器人如何实现停车费追缴“零遗漏”?
面对高达35%的停车欠费率,传统人工催缴模式因效率低、成本高、覆盖有限等问题,难以应对海量欠费订单的挑战。本文带大家探究“催缴机器人”如何实现停车费追缴“零遗漏”,实现从“被动催缴”到“主动管理”的跨越。 智慧停车欠费自动化追缴系…...
Oracle 执行计划中的 ACCESS 和 FILTER 详解
Oracle 执行计划中的 ACCESS 和 FILTER 详解 在 Oracle 执行计划中,ACCESS 和 FILTER 是两个关键的操作类型,它们描述了 Oracle 如何检索和处理数据。理解这两个概念对于 SQL 性能调优至关重要。 ACCESS(访问) ACCESS 表示 Ora…...
使用FastAPI微服务在AWS EKS中构建上下文增强型AI问答系统
系统概述 本文介绍如何使用FastAPI在AWS Elastic Kubernetes Service (EKS)上构建一个由多个微服务组成的AI问答系统。该系统能够接收用户输入的提示(prompt),通过调用其他微服务从AWS ElastiCache on Redis和Amazon DynamoDB获取相关上下文,然后利用AW…...
oracle dblink varchar类型查询报错记录
在使用Oracle DBLink(数据库链接)查询VARCHAR类型数据时,有时会遇到报错问题。这些错误可能与数据类型转换、字符集设置、数据库版本兼容性等因素有关。本文将详细分析常见的报错原因及其解决方法。 一、常见报错及其原因 1. ORA-01722: in…...
计算人声录音后电平的大小(dB SPL->dBFS)
计算人声录音后电平的大小 这里笔记记录一下,怎么计算已知大小的声音,经过麦克风、声卡录制后软件内录得的音量电平值。(文章最后将计算过程整理为Python代码,方便复用) 假设用正常说话的声音大小65dB(SP…...
Android kernel日志中healthd关键词意义
Android kernel日志中healthd关键词意义 在kernel的healthd日志中会打印电池信息。通常比较关心的是电池温度,剩余电量,电压,电池健康,电池状况等。 level:剩余电量。 voltage:电压。 temperatureÿ…...
操作系统面试问题(4)
32.什么是操作系统 操作系统是一种管理硬件和软件的应用程序。也是运行在计算机中最重要的软件。它为硬件和软件提供了一种中间层,让我们无需关注硬件的实现,把心思花在软件应用上。 通常情况下,计算机上会运行着许多应用程序,它…...
【nestjs】一般学习路线
nestjs中文文档 其实几个月前也对nestjs进行了学习,前前后后看了很多文档、博客,另外也找了相应的代码看了,但最后也还是一知半解,只是知道大概怎么写,怎么用。 这次下定决心再次看一遍,从代码学习到文档…...
多线程面试题总结
基础概念 进程与线程的区别 进程:操作系统资源分配的基本单位,有独立内存空间线程:CPU调度的基本单位,共享进程资源对比: 创建开销:进程 > 线程通信方式:进程(IPC)、线程(共享内存)安全性:进程更安全(隔离),线程需要同步线程的生命周期与状态转换 NEW → RUNNABLE …...
面试常考算法2(核心+acm模式)
15. 三数之和 核心代码模式 class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> ansnew ArrayList<>();Arrays.sort(nums);int lennums.length;int pre2000000;for(int i0;i<len-2;i){while(i<len-…...
虚拟文件系统
虚拟文件系统(Virtual File System,VFS)是操作系统内核中的一个抽象层,它为不同的文件系统(如ext4、NTFS、FAT32等)提供统一的访问接口。通过VFS,用户和应用程序无需关心底层文件系统的具体差异…...
机器学习与深度学习的区别与联系:多角度详细分析
机器学习与深度学习的区别与联系:多角度详细分析 引言 随着人工智能技术的快速发展,机器学习和深度学习已成为当今科技领域的核心驱动力。尽管这两个术语经常被一起提及,甚至有时被互换使用,但它们之间存在着明显的区别和紧密的…...
c++:迭代器(Iterator)
目录 🚪什么是迭代器? 🔧 迭代器的本质 为什么不用普通数组或下标? STL容器的迭代器并不是共用一个类型! 迭代器的类型(Iterator Categories) 📦 常见容器的迭代器类型 ✅ 迭…...
MindSpore框架学习项目-ResNet药物分类-数据增强
目录 1.数据增强 1.1设置运行环境 1.1.1数据预处理 数据预处理代码解析 1.1.2数据集划分 数据集划分代码说明 1.2数据增强 1.2.1创建带标签的可迭代对象 1.2.2数据预处理与格式化(ms的data格式) 从原始图像数据到 MindSpore 可训练 / 评估的数…...
python打卡day20
特征降维------特征组合(以SVD为例) 知识点回顾: 奇异值的应用: 特征降维:对高维数据减小计算量、可视化数据重构:比如重构信号、重构图像(可以实现有损压缩,k 越小压缩率越高&#…...
2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索
2025数维杯数学建模B题完整限量论文:马拉松经济的高质量发展思路探索,先到先得 B题完整论文https://www.jdmm.cc/file/2712066/ 近年来,我国马拉松赛事数量呈现 “ 先井喷、后调整、再复苏 ” 的显著 变化。据中国田径协会数据, …...
深入解析WPF中的3D图形编程:材质与光照
引言 在Windows Presentation Foundation (WPF) 中创建三维(3D)图形是一项既有趣又具有挑战性的任务。为了帮助开发者更好地理解如何使用WPF进行3D图形的渲染,本文将深入探讨GeometryModel3D类及其相关的材质和光源设置。 1、GeometryModel3D类简介 GeometryMode…...
python格式化小数加不加f的区别
一直好奇这个f是必须加的吗,但是不论是搜索还是ai都给不出准确的回复,就自己测试了一下 结论是不带f指定的是总的数字个数,包含小数点前的数字 带f的就是仅指小数点后数字个数 需要注意的是不带f的话数字是会用科学计数法表示的ÿ…...
【MySQL】存储引擎 - FEDERATED详解
📢博客主页:https://blog.csdn.net/2301_779549673 📢博客仓库:https://gitee.com/JohnKingW/linux_test/tree/master/lesson 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! &…...
window 显示驱动开发-线性内存空间段
线性内存空间段是显示硬件使用的经典段类型。 线性内存空间段符合以下模型: 它虚拟化位于图形适配器上的视频内存。GPU 直接访问它;也就是说,无需通过页面映射进行重定向。它在一维地址空间中以线性方式进行管理。 驱动程序将DXGK_SEGMENTDESCRIPTOR结…...
uniapp-商城-46-创建schema并新增到数据库
在后台页面中,数据管理是关键。最初,数据可能是通过代码硬编码在页面中,但这种方式缺乏灵活性和扩展性。为了适应实际需求,应使用数据库来存储数据,允许用户自行添加和更新信息。通过数据库,后台页面可以动…...
Go语言的宕机恢复,如何防止程序奔溃
Go语言中的panic机制用于处理程序中无法继续执行的严重错误。当程序触发panic时,当前函数的执行会立即停止,程序开始逐层向上回溯调用栈,执行每个函数的defer语句,直到到达recover函数或者程序崩溃退出。通过recover函数ÿ…...