香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。
简介:
亮点直击
-
将电影镜头设计引入图像到视频的合成过程中。
-
推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。
-
设计了专门的运动条件机制,以控制信号引导基于DiT的视频扩散模型,这些信号捕捉相机和对象的运动。结合了一个运动信号翻译模块,将描绘的场景空间运动意图翻译为屏幕空间的条件信号,用于视频生成。
-
在多样的真实世界照片上的评估证实了MotionCanvas在电影镜头设计中的有效性,突显了其在各种创意应用中的潜力。
一:总结速览
1:解决的问题
-
如何在图像到视频生成系统中实现直观的电影镜头设计。
-
如何有效捕捉用户在运动设计上的意图,包括相机运动和场景空间对象运动。
-
如何表示运动信息,使其能够被视频扩散模型有效利用,以合成图像动画。
2:提出的方案
-
引入MotionCanvas,将用户驱动的控制集成到图像到视频(I2V)生成模型中。
-
提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。
-
设计专门的运动条件机制,以控制信号引导基于DiT的视频扩散模型。
-
开发运动信号翻译模块,将场景空间的运动意图转化为屏幕空间的条件信号,用于视频生成。
3:应用的技术
-
结合经典计算机图形学和当代视频生成技术。
-
使用视频扩散模型(基于DiT)来合成图像动画。
-
运动信号翻译模块,用于将用户的运动意图转化为可用于视频生成的信号。
4:达到的效果
-
实现了3D感知的运动控制,而无需昂贵的3D相关训练数据。
-
在各种真实世界图像内容和镜头设计场景中展示了方法的有效性。
-
增强了数字内容创作的创意工作流程。
-
适应了各种图像和视频编辑应用,展现出在创意应用中的潜力。
二:MotionCanvas
本文的方法将静态图像动画化为短视频,反映用户的运动设计意图。如下图2所示,MotionCanvas由三个主要组件组成:(1) 运动设计模块,用于捕捉多样的场景感知运动意图,(2) 翻译模块,用于将这些意图转换为屏幕空间的运动信号,以及 (3) 运动条件视频生成模型。

1:运动设计模块 --捕捉用户意图
利用输入图像作为运动设计的画布,建立一个运动设计所依托的起始场景。此设置在运动设计中实现了3D场景感知,捕捉对象、相机和场景之间的空间关系。本文的统一界面便于对相机运动、对象的全局和局部运动以及它们的时间进行独立控制。
使用3D相机路径进行相机运动控制。 使用标准的小孔相机参数定义相机运动,将3D相机路径指定为每帧的外参 和内参 的序列:,其中 和 。为了设计相机路径,用户可以在关键时刻指定相机姿态(即相对于初始视图的平移向量和旋转角度)。完整的相机路径可以通过插值获得。为了让相机路径的指定过程对用户更直观,本文的系统还允许用户指定并混合 个基本运动模式(例如,平移、推拉)以及相应的方向和速度。然后,本文的方法将指定的运动模式转换为3D相机路径。
使用场景anchor的边界框进行对象全局运动控制。 在设计视频镜头时,控制对象在场景中的移动位置至关重要。认为这种全局对象控制应该以场景感知的方式定义,其中对象位置anchor在底层3D场景中的位置。为此,通过最小化地指定起始和结束框以及(可选的)中间关键框在输入图像上实现场景anchor边界框(bbox)的放置。通过将边界框放置anchor到由输入图像建立的固定视图,用户可以通过调整位置、比例和形状来描绘想象中的目标位置。这种场景感知的边界框放置为对象的位置、比例、姿态和相对于相机的距离提供了直观的控制。根据提供的关键位置和输出视频的预期持续时间,我们通过Catmull-Rom样条插值生成平滑的框轨迹。
使用点跟踪进行对象局部运动控制。 虽然全局对象运动定义了对象在场景中的位置变化,并且是我们镜头设计过程的主要关注点,但局部对象运动——描绘对象在位置上的运动(例如,抬起手臂、旋转头部)——也可以通过增加细节和逼真性来丰富镜头设计体验。受近期基于拖动编辑成功的启发,我们使用稀疏点轨迹来描绘局部运动。由于局部运动通常涉及复杂的几何关系和变形,稀疏点轨迹提供了一种灵活的方式来定义和操控这种运动。
定时控制。 对象和相机运动的定时控制能够实现协调设计,增强叙事流畅性和视觉连贯性。本文的系统自然支持这一点,允许用户直接沿运动轨迹分配时间线。
2:运动信号翻译模块
尽管运动意图最好在具有3D感知的场景中心方式中设计,视频生成模型通常更有效地针对2D屏幕空间的运动条件进行训练,这些数据在视图依赖投影后将所有运动类型混合在一起。这种差异产生的原因在于,从大规模普通视频中提取可靠的3D信息(如相机运动和3D对象跟踪)具有挑战性。为了解决这个问题,本文的关键思路不是设计一个直接处理场景空间运动信息的视频生成模型,而是将从上节中获得的场景空间运动设计翻译为可以从野外视频中可靠提取的时空定位的屏幕空间运动信号。
通过点跟踪实现相机运动。寻求一种屏幕空间运动信号,(1) 可以从普通视频中稳健提取,(2) 编码关于视频中相机运动的详细信息。关于人类视觉感知的研究提供了一个重要的见解:通过投影到图像平面上的稀疏场景点跟踪,能够可靠地恢复自我中心运动。这一见解已广泛应用于计算机视觉中的相机姿态估计和SLAM。受此启发,我们使用点跟踪来表示相机运动。注意,这些信息可以从真实视频中稳健提取。
在推理时,通过在输入图像上随机采样一组点,将3D相机路径转换为2D点轨迹。为了专注于属于静态背景的点,这些点更能反映相机运动,排除掉从YOLOv11 生成的 mask 中估计出的可能移动的对象区域。然后,使用一个现成的单目深度估计器来获取内在相机参数和深度图。最后,根据3D相机路径和深度扭曲这些点以创建相应的2D屏幕空间轨迹。
通过边界框轨迹实现场景感知对象运动。用户定义的场景空间边界框轨迹反映了运动意图,但在投影到屏幕上时会受到相机运动和透视的影响而失真。目标是将这种场景anchor的对象边界框转换为屏幕空间,以模拟通常从真实视频中提取的对象边界框序列。首先将场景空间边界框提升到2.5D,使用相机姿态和深度在各帧之间连续地重新投影到屏幕空间。初始边界框的深度被分配为其SAM2生成的语义 mask 内的平均深度。后续边界框使用以下两种方式之一:(1) 场景中某点的参考深度(例如,地面平面)或 (2) 透视一致性的深度(增大的边界框意味着向相机移动)。使用分配的深度和相机姿态变换,在时间 时的2.5D边界框 被投影到屏幕空间 ,具有校准的位置和大小:

其中
表示相机运动变换。
通过点轨迹分解实现对象的局部运动。 由于旨在利用场景anchor的点轨迹来描述对象的局部运动,重点在于将每个场景anchor的控制点 (通过使用之前计算的对象边界框的深度将控制点提升到场景空间获得)转换为相应的屏幕空间 。这涉及考虑相机和全局运动的变换:
其中
表示对象的全局运动变换。假设在局部运动相对于全局运动期间深度变化可以忽略不计——这是合理的假设,因为局部运动通常发生在类似的深度平面内(例如,挥手)——我们为所有局部运动点分配与其初始位置相同的深度。这简化了基于相机运动的变换
3:基于运动条件的视频生成
视频扩散模型已成为视频生成的主要范式。基于预训练的DiT I2V模型构建了本文的运动条件视频生成模型。该模型是DiT到视频生成的内部标准适配,类似于现有的开源适配。通过使用屏幕空间运动条件微调模型来适应本文的运动条件生成问题。
点轨迹条件 通过将每个点轨迹编码为一组紧凑的离散余弦变换(DCT)系数来表示N个点轨迹。由于点跟踪的低时间频率特性,我们可以将长轨迹压缩为K个系数(在本文的实验中,K=10),其中DC分量编码初始位置,明确地anchor轨迹的起始点。这种紧凑表示
提供了两个优势:(1)它简化了运动数据处理,允许灵活处理不同的轨迹密度,并通过预计算提高效率;(2)它通过上下文内条件无缝集成到DiT框架中。每个轨迹被视为一个单独的 token ,其 embedding 从DCT系数中得出。
边界框序列条件 边界框传达复杂的空间信息(位置、形状、姿态),并与轨迹分开注入以区分相机和对象的全局运动。我们通过首先将它们栅格化为独特的颜色编码 mask 来将边界框序列编码为时空 embedding ,从而形成一个RGB序列
。然后使用与基础DiT模型相同的预训练视频自动编码器(3D-VAE)将该序列编码为时空 embedding
。这些 embedding 被分块为 token 并添加到噪声视频潜在 token 中,如下图3所示。

模型训练 由于采用了潜在扩散模型,所有RGB空间数据都通过3D-VAE编码器压缩为潜在空间内的 token 。运动条件模型使用流匹配损失进行优化。设定真实视频潜在变量为 ,噪声为 ,噪声输入在时间步 通过线性插值 生成。模型 预测速度 。训练目标是:
其中,
分别表示输入图像、点轨迹、边界框和文本提示。请注意,我们还保留了文本条件,以提供在控制视频内容变化方面的额外灵活性。训练完成后,清晰的视频潜在 token 可以通过输入图像、文本提示和屏幕空间运动信号生成,然后解码回RGB帧。
4:通过自回归生成可变长度视频
生成可变长度视频对于电影叙事很有益。通过自回归生成实现了这一点,这比直接建模长视频更具计算效率,并反映了复杂视频镜头通常由短而简单的镜头顺序拼接而成的事实。虽然本文的图像到视频框架自然支持无需训练的自回归长视频生成,但发现这通常会导致明显的运动不连续性,因为单个条件图像缺乏足够的时间运动信息。为了解决这个问题,在训练MotionCanvasAR时增加了对短视频剪辑(16帧)的额外条件。这种重叠短剪辑策略使每个生成步骤都基于先前的时空上下文,从而实现自然过渡。在推理过程中,模型生成任意长度的视频,每次生成迭代时独立控制运动。为了进一步优化输入的运动信号并使其与训练设置对齐,我们通过结合用户意图与反向追踪的运动重新计算屏幕空间运动信号。这种方法确保了更平滑和一致的运动生成。
三:应用
MotionCanvas允许灵活控制场景中相机和对象的运动。这使得本文的主要应用成为电影镜头设计框架,允许用户交互式地管理镜头的关键运动方面。此外,运动表示的灵活性使得在各种简单的视频编辑任务中自然应用本文的框架成为可能。
1:联合相机和对象控制的镜头设计
如下图 4 所示,框架能够在场景感知的方式下精确且独立地控制对象和相机的运动,从而设计出高度动态且视觉吸引力强的镜头,同时紧密遵循所提供的运动设计。

在上图 4 中,值得注意的是,在两个示例中,每列的结果都遵循相同的相机运动,而对象运动则根据相应的指定对象控制进行变化。通过在场景感知的方式下放置边界框,用户可以实现各种场景空间效果。例如,这使得在底部示例中,可以让汽车保持静止(第一行)或在道路上前进(第二行)和后退(第三行)。重要的是,这种场景anchor的运动在相机运动独立变化时得以保留。这突显了场景感知对象运动控制的重要性。
具有复杂轨迹的长视频。为了生成具有复杂相机和对象运动的长视频,本文的框架采用“规范-生成”循环。这种方法允许用户为每个段定义运动信号,然后以自回归方式生成视频片段。受动画工作流程的启发 [39, 50],MotionCanvas结合关键帧和插值来创建复杂的运动路径。具体而言,用户可以为对象和相机运动设置关键帧,然后系统在这些关键帧之间插值以生成平滑且连贯的轨迹。
如下图 5 所示,本文的方法可以生成具有复杂相机运动控制序列的长视频。为每个输入图像展示了两个视频结果,这些结果来自相同的相机控制(请注意,这两个视频生成了几乎相同的相机运动),同时有意控制不同的对象运动。

2:对象局部运动控制
MotionCanvas还支持控制对象的局部运动,以潜在支持基于拖拽的编辑和生成。用户可以通过直接在对象自身坐标内指定拖拽轨迹来定义局部对象运动。这些点轨迹然后被转换为合适的屏幕空间点轨迹,以对视频生成模型进行条件化,考虑到相机和对象的全局运动。如下图 6 所示,本文的方法可以生成多样且细致的局部运动,使得生成对象运动的不同变体成为可能(例如,婴儿手臂移动的不同方式)。

此外,得益于专门的运动翻译模块,该模块考虑了局部运动与相机运动以及对象全局运动之间的协调,可以在不同的相机和对象动态下实现一致的对象局部运动控制(上图 6 底部)。这为将局部对象运动控制纳入上述镜头设计框架打开了可能性。
3:附加应用:简单的视频编辑
运动迁移。本文的方法可以适应于从源视频向与初始帧具有结构相似性的输入图像执行运动迁移。通过利用多功能的屏幕空间条件表示,框架能够有效捕捉并迁移对象和相机运动,即使是涉及3D变换的情况,也无需显式3D相机姿态提取。如下图 7 所示,苹果的旋转运动可以被迁移到狮子的头部旋转。

视频编辑。运动迁移的概念可以扩展以促进视频编辑,其中输入图像通过图像编辑从第一帧派生。利用多功能的屏幕空间条件表示,本文的方法将提取的对象和相机运动传播到派生图像,确保一致且真实的动态,类似于 [25]。上图 7 显示了两个示例,其中在初始帧上执行的编辑通过从原始视频中提取的运动信号传播,生成了一个完整编辑的视频。
四:实现细节
数据。 从内部数据集中收集了约110万高质量视频。通过使用DEVA 进行全景分割,从视频中提取边界框,并将这些边界框拟合到提取的 mask 上。通过链式光流(使用RAFT)计算稀疏点跟踪注释。为了确保可靠的运动数据,设定了有效跟踪长度的阈值。还根据关键词(如向量、动画)过滤掉了一部分视频,以专注于自然视频数据。边界框进一步通过相邻帧的交并比(IoU)、尺寸变化比、位置变化(欧几里得距离)以及相关对象与我们移动对象列表的相关性进行优化。最终,获得了约60万条具有良好运动质量和高保真注释的视频。在训练过程中,以80%的概率随机选择N个点轨迹,其中N ∼ U(0, 100)。此外,有10%的概率选择仅来自移动对象区域的点,另有10%的概率选择来自非移动对象区域的点。
模型。 视频生成模块是从一个预训练的图像到视频的DiT模型微调而来,进行了100K步的训练,使用批量大小为256的AdamW优化器,学习率为,权重衰减为0.1。训练主要涉及32帧和64帧的视频,采样率为12和24 FPS,分辨率为640×352。在推理过程中,应用了无分类器指导的文本条件。
1:相机运动控制质量
本文采用旋转误差(RotErr.)、平移误差(TransErr.)和CamMC作为指标,遵循[15, 46]。此外,还计算了Frechet Inception Distance(FID)和Frechet Video Distance(FVD)来评估生成视频的质量。这些指标是在从RealEstate-10K 测试集中随机抽取的1K视频上计算的(@640×352,14帧)。将本文的方法与两种最先进的相机运动控制图像到视频方法进行比较:MotionCtrl和CameraCtrl。定量结果如下表1所示。需要注意的是,MotionCtrl和CameraCtrl都是在RealEstate10K训练集上训练的,该训练集包含与测试集相同领域的视频。然而,本文的方法在零样本设置中在所有指标上都优于它们。


2:3D感知对象运动控制质量
根据[49],在VIPSeg过滤后的验证集上计算ObjMC和FID,该验证集在排除没有移动物体的视频后包含116个样本(@640×352,14帧)。我们与DragAnything、MOFA-Video和TrackDiffusion进行比较,量化结果如下表2所示。本文的方法在控制精度(ObjMC)和帧质量(FID)上都优于其他基线,如图9进一步证实。DragAnything和MOFA-Video中的显式变形引入了对象失真,而TrackDiffusion对欧几里得坐标的依赖阻碍了收敛,导致不准确。通过为边界框引入时空表示,本文的方法实现了精确的对象运动控制(例如,位置、大小和姿态)。


3:联合相机和对象控制
进行了一项用户研究,以评估在3D场景感知上下文中联合相机和对象运动控制的感知质量。将本文的方法与基于拖拽的I2V方法进行比较:DragAnything和MOFA-Video。注意,现有方法没有设计用于3D感知控制,因此我们直接采用场景空间点轨迹作为基线的输入,遵循其原始设置。除了用于对象局部运动控制的点轨迹外,还提供了来自边界框序列和基于深度的变形的点轨迹,用于对象和相机的全局运动控制。参与者被要求根据运动依从性、运动质量和帧保真度选择最佳结果。35名参与者的回应统计结果汇总在下表3中。本文的方法在所有评估方面始终优于竞争对手。视觉结果如下图10所示,其中两个基线方法均未能在3D感知的方式下共同捕捉复杂对象的全局运动(即身体的移动)、局部运动(即放下手)和相机运动。相比之下,本文的MotionCanvas生成了遵循所有类型控制的运动,这要归功于其统一的框架和运动表示设计。

4:消融研究
相机运动表示。 构建了几个基线来研究本文的相机运动表示的有效性:高斯图(2D高斯模糊稀疏光流图)、Plucker embedding和我们提出的基于DCT系数的轨迹编码。量化比较如下表4所示。由于固有的模糊性(特别是在更密集的控制下),高斯图变体在精确相机控制方面表现不佳,倾向于生成静态相机运动(高FVD)。值得注意的是,Plucker embedding 变体需要在带有3D相机姿态标签的视频数据集上进行训练(即,遵循[15]的RealEstate10K训练集)。它在这个域内静态测试集上表现良好,但未能生成对象运动(下图11‘猫’)且缺乏普适性。此外,本文的轨迹编码效率极高,仅引入少量系数 token ,同时为相机内在和外在控制提供稳健的性能。


边界框条件。 进一步评估了本文的边界框条件。应用了[43]中提出的另一种条件设计,将边界框坐标连接到视觉 token 上(Ourscoord)。上表2的最后两列结果表明本文的时空颜色编码图条件的优越性。欧几里得坐标 token 与视觉 token 融合的难度导致低ObjMC。
5:结论
MotionCanvas,一个统一的I2V合成系统,能够灵活控制相机和对象运动,实现电影镜头设计。通过运动信号翻译模块,MotionCanvas将直观的3D运动规划转换为精确的2D控制信号,用于训练视频模型,而无需依赖3D注释,从而拓宽了训练数据的来源。综合评估显示,MotionCanvas在生成多样化、高质量的视频方面有效地反映了用户的运动意图。
参考文档:论文链接:https://arxiv.org/pdf/2502.04299
git 链接:https://motion-canvas25.github.io/
相关文章:
香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。
简介: 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…...
基于STM32的学习环境控制系统设计
🤞🤞大家好,这里是5132单片机毕设设计项目分享,今天给大家分享的是学习环境控制。 设备的详细功能见网盘中的文章《21、基于STM32的学习环境控制系统设计》: 链接:https://pan.baidu.com/s/1uWSZX2zbZwy9sY…...
snort3.0-ubuntu18.04 64入侵检测安装与使用ailx10ailx10知乎知识会员
在日常生活中,很多人怀疑自己的手机、电脑被监控了,担心自己的隐私泄漏,实际上最佳的检测方式就是终端检测,也就是EDR,但是就是有那么多的人在网上大放厥词,说任何EDR杀毒软件都检测不到监控,毕…...
使用亚马逊针对 PyTorch 和 MinIO 的 S3 连接器进行模型检查点处理
2023 年 11 月,Amazon 宣布推出适用于 PyTorch 的 S3 连接器。适用于 PyTorch 的 Amazon S3 连接器提供了专为 S3 对象存储构建的 PyTorch 数据集基元(数据集和数据加载器)的实现。它支持用于随机数据访问模式的地图样式数据集和用于流式处理…...
408-数据结构
数据结构在学什么? 1.用代码把问题信息化 2.用计算机处理信息 ch1 数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 ch2 //假设线性表…...
spring cloud 使用 webSocket
1.引入依赖,(在微服务模块中) <!-- Spring WebSocket --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency> 2.新建文件 package com.ruoyi.founda…...
安科瑞 Acrel-2000ES:解锁储能管理新高度,引领能源未来!
安科瑞 崔丽洁 在能源转型的关键时期,高效的储能管理成为众多企业和项目的核心需求。今天,就给大家介绍一款储能管理的 “神器”—— 安科瑞 Acrel-2000ES 储能能量管理系统。 安科瑞电气可是行业内的 “明星企业”,2003 年成立,2…...
基于Django以及vue的电子商城系统设计与实现
基于Django以及vue的电子商城系统设计与实现 引言 随着电子商务的快速发展,越来越多的企业和个人选择搭建线上商城,以提供更加便捷的购物体验。本文基于Python开发了一套电子商城系统,后端采用Django框架,前端使用Vue.js&#x…...
电脑变慢、游戏卡顿,你的SSD固态可能快坏了!
电脑用久了,很多人都会感觉速度变慢,开机变慢、文件复制时间变长,甚至莫名其妙的卡顿。你可能怀疑是系统问题,或者内存不够,但往往被忽略的一个关键因素——你的硬盘,可能正在悄悄老化。 硬盘寿命不是永久的…...
开源机器人+具身智能 解决方案+AI
开源机器人、具身智能(Embodied Intelligence)以及AI技术的结合,可以为机器人领域带来全新的解决方案。以下是这一结合的可能方向和具体方案: 1. 开源机器人平台 开源机器人平台为开发者提供了灵活的基础架构,可以在此基础上结合具身智能和AI技术。以下是一些常用的开源机…...
AI使用场景简单测试
前言 今天来分享下AI的2个实用场景,我这里是使用的博主:小虚竹,搭建的AI服务,用的ChatGPT 4O模型,主要是试了3个场景,服装设计、直播带货话术、检验报告分析。 一、服装设计 对于最后需要的裁片设计上的尺寸…...
Foundation CSS 可见性
Foundation CSS 可见性 引言 在网页设计中,CSS可见性是一个至关重要的概念。它决定了元素在网页上是否可见,以及如何显示。Foundation CSS 是一个流行的前端框架,它提供了丰富的工具和组件来帮助开发者构建响应式和可访问的网页。本文将深入探讨 Foundation CSS 中的可见性…...
【并发控制、更新、版本控制】.NET开源ORM框架 SqlSugar 系列
系列文章目录 🎀🎀🎀 .NET开源 ORM 框架 SqlSugar 系列 🎀🎀🎀 文章目录 系列文章目录一、并发累计(累加)1.1 单条批量累计1.2 批量更新并且字段11.3 批量更新并且字段list中对应的…...
DeepSeek-R1本地搭建
1. 前言 现在deepseek火上天了,因为各种应用场景,加上DeepSeek一直网络异常,所以本地部署Deepseek成为大家的另一种选择。 目前网络上面关于DeepSeek的部署方式有很多,但是太麻烦了,本文是一篇极为简单的DeepSeek本地部署方式&…...
查出 product 表中所有 detail 字段包含 xxx 的完整记录
您可以使用以下 SQL 查询语句来查出 product 表中所有 detail 字段包含 oss.kxlist.com 的完整记录: SELECT * FROM product WHERE INSTR(detail, oss.kxlist.com) > 0;下面是detail字段包含的完整内容 <p><img style"max-width:100%;" src…...
python技术可以开发的应用类型有哪些?
Python 是一种功能强大且灵活的编程语言,广泛应用于多个领域。以下是一些常见的 Python 应用程序开发领域及其具体案例: 1. Web 开发 Python 提供了多个流行的 Web 框架,如 Django 和 Flask,用于构建 Web 应用程序。 示例:使用 Flask 构建简单的 Web 应用 Python复制 …...
Redis存储⑥Redis五大数据类型之 Zset
目录 1. Zset 有序集合 1.1 Zset 有序集合常见命令 zadd zcard zcount zrange zrevrange zrangebyscore(弃用) zpopmax bzpopmax zpopmin bzpopmin zrank zrevrank zscore zrem zremrangebyrank zremrangebyscore zincrby 1.2 Zset有…...
Kafka 读写示例
一、概述 Kafka 是一款流行的分布式消息队列系统,具有高吞吐量、可扩展性和持久性等优点。本文将介绍如何使用 Kafka 进行消息的生产和消费。 二、Kafka 生产者 1. 生产者配置 以下是一些常用的 Kafka 生产者配置参数: 参数描述bootstrap.serversKafka 集群的地址,用于生…...
将Excel中的图片保存下载并导出
目录 效果演示 注意事项 核心代码 有需要将excel中的图片解析出来保存到本地的小伙子们看过来!!! 效果演示 注意事项 仅支持xlsx格式:此方法适用于Office 2007及以上版本的.xlsx文件,旧版.xls格式无法使用。 图片名…...
SQL注入之布尔和时间盲注,sqli-labs
实验环境: sqli-labs,小皮面板搭建,edge浏览器 apache:2.4.39,MySQL:5.7 PHP:5.39 Python(pycharm2023):3 less-8 布尔盲注: 1.我这里是采用最简单的直接采…...
Ubuntu 22.04完整安装Xinference及解决依赖报错
注:文中使用的环境为Ubuntu 22.04 LTS CUDA 12.4.1 1、创建conda环境 conda create -n xinference python3.11 -y conda activate xinference2、安装Xinference pip install "xinference[all]"3、解决报错 Pytorch报错 根据Pytorch安装指引进行安装…...
基于云计算、大数据与YOLO设计的火灾/火焰目标检测
摘要:本研究针对火灾早期预警检测需求,采用在Kaggle平台获取数据、采用云计算部署的方式,以YOLO11构建模型,使用云计算服务器训练模型。经训练,box loss从约3.5降至1.0,cls loss从约4.0降至1.0,…...
C与C++的区别,类型转换,引用
1.从C到C 语言的区别 C语言 编译性语言 面向过程语言灵活 移植性好 效率高shell 解释性语言 面向过程语言Linux运维C 编译性语言 面向对象面向对象语言效率最高的 应用领域:系统开发(APP开发,服务器开发),引擎开发,游戏开发&…...
YOLO自定义数据集实现K折交叉验证——K-Fold Cross Validation
实现K折交叉验证(K-Fold Cross Validation)对于YOLO(You Only Look Once)自定义数据集的目标检测任务可以显著提升模型的可靠性和泛化能力。 1. 数据集准备 首先,你需要确保你的数据集符合YOLO的格式,具体…...
刚体的力+射线相关知识点+延迟函数
AddForceAtPosition cube0.AddForceAtPosition(Vector3.forward*5,target.transform.position); force:给cube0一个力,控制cube0的移动; position:cube0和所给点的连线力得大小,这个力跟移动方向有夹角,会造成cube0…...
集合家族详情
一、Java集合框架全景图 1.1 核心接口层次结构 graph TDA[Iterable] --> B[Collection]B --> C1[List]B --> C2[Set]B --> C3[Queue]C1 --> D1[ArrayList]C1 --> D2[LinkedList]C2 --> E1[HashSet]C2 --> E2[TreeSet]C3 --> F1[PriorityQueue]G[M…...
go语言简单快速的按顺序遍历kv结构(map)
文章目录 需求描述用map实现按照map的key排序用二维切片实现用结构体实现 需求描述 在go语言中,如果需要对map遍历,每次输出的顺序是不固定的,可以考虑存储为二维切片或结构体。 假设现在需要在页面的下拉菜单中展示一些基础的选项ÿ…...
【竞技宝】LOL-LPL:EDG3-0零封LNG
北京时间2月12日,英雄联盟LPL2025正在如火如荼的进行之中,昨日迎来LNG对阵EDG,以下是本场比赛的详细战报。 第一局: EDG:杰斯、赵信、维克托、女枪、芮尔 LNG:猴子、猪妹、飞机、韦鲁斯、布隆 首局比赛,EDG在蓝色方,LNG在红色方。阵容方面,EDG点出了杰斯、赵信、维克托、女枪…...
在fedora41中安装钉钉dingtalk_7.6.25.4122001_amd64
在Fedora-Workstation-Live-x86_64-41-1.4中安装钉钉dingtalk_7.6.25.4122001_amd64.deb 到官网下载钉钉Linux客户端com.alibabainc.dingtalk_7.6.25.4122001_amd64.deb https://page.dingtalk.com/wow/z/dingtalk/simple/ddhomedownload#/ 一、直接使用dpkg命令安装deb包报错…...
看期货用的指标,可以提示买卖点和K线转折变颜色的主图指标源码下载
A:MA(CLOSE,17)ABS(MA(CLOSE,17)-REF(MA(CLOSE,17),1)); B:MA(CLOSE,17)MA(CLOSE,17)-REF(MA(CLOSE,17),1); 分界线:IF(MA(CLOSE,17)<B,B,MA(CLOSE,17)),COLORFF00FF,LINETHICK2; 操作线:分界线-(EMA(C,3)-分界线),COLOR00FFFF,LINETHICK2; GUP:MA(C,5),COLORWHITE,LINE…...
