当前位置: 首页 > news >正文

【LLM多模态】Animatediff文生视频大模型

note

  • AnimateDiff框架:核心是一个可插拔的运动模块,它可以从真实世界视频中学习通用的运动先验,并与任何基于相同基础T2I的个性化模型集成,以生成动画。
  • 训练策略:AnimateDiff的训练包括三个阶段:
    • 领域适配器:微调以适应目标视频数据集的视觉分布。
    • 运动模块:在视频上训练以学习运动先验,同时保持基础T2I权重固定。
    • MotionLoRA:一种轻量级微调技术,用于适应新的运动模式,如不同的镜头类型。

文章目录

  • note
  • 一、AnimateDiff模型
    • 1. 相关背景
    • 2. 模型结构
      • (1)第一阶段:训练domain adapter
      • (2)第二阶段:训练运动模块 motion module
      • (3)第三阶段:训练MotionLoRA
    • 3. 相关实验
    • 4. 评测效果
    • 5. 可以进一步探索的点
    • 6. 总结
    • 7. 运镜介绍
  • Reference

十大问题:

  1. 论文试图解决什么问题
  2. 这是否是一个新的问题
  3. 这篇文章要验证一个什么科学假设
  4. 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?
  5. 论文中提到的解决方案之关键是什么?
  6. 论文中的实验是如何设计的?
  7. 用于定量评估的数据集是什么?代码有没有开源?
  8. 论文中的实验及结果有没有很好地支持需要验证的科学假设?
  9. 这篇论文到底有什么贡献?
  10. 下一步呢?有什么工作可以持续深入?

一、AnimateDiff模型

论文:AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning
ICLR 2024 paper

1. 相关背景

Q: 有哪些相关研究?
以往的相关研究:

  1. 文本到图像扩散模型(Text-to-image diffusion models):
  • GLIDE (Nichol et al., 2021):引入了文本条件并展示了分类器引导可以产生更令人满意的结果。
  • DALL-E2 (Ramesh et al., 2022):通过利用CLIP联合特征空间来改善文本-图像对齐。
  • Imagen (Saharia et al., 2022):结合了大型语言模型和级联架构以实现逼真的结果。
  • Stable Diffusion (Rombach et al., 2022):将扩散过程移动到自编码器的潜在空间以提高效率。
  • eDiff-I (Balaji et al., 2022):为不同生成阶段专门化了一个扩散模型集合。
  1. 个性化T2I模型(Personalizing T2I models):
  • DreamBooth (Ruiz et al., 2023):通过保留损失微调整个网络,并仅使用少量图像。
  • Textual Inversion (Gal et al., 2022):为每个新概念优化一个标记嵌入。
  • Low-Rank Adaptation (LoRA) (Hu et al., 2021):通过在基础T2I中引入额外的LoRA层并仅优化权重残差来加速微调过程。
  • 编码器方法 (Gal et al., 2023; Jia et al., 2023):解决个性化问题的方法。
  1. 动画化个性化T2I(Animating personalized T2Is):
  • Text2Cinemagraph (Mahapatra et al., 2023):提出了通过流预测生成电影摄影的方法。
  • Tune-a-Video (Wu et al., 2023):在单个视频上微调少量参数。
  • Text2Video-Zero (Khachatryan et al., 2023):介绍了一种无需训练即可通过基于预定义仿射矩阵的潜在包装来动画化预训练T2I的方法。
  1. 视频生成(Video generation):
  • Esser et al. (2023)、Zhou et al. (2022a)、Singer et al. (2022) 等:这些工作通常更新所有参数并修改原始T2I的特征空间,使其与个性化模型不兼容。
  • Align-Your-Latents (Blattmann et al., 2023):展示了在一般视频生成器中冻结的图像层可以个性化。
    这些研究为AnimateDiff提供了技术背景和方法论基础,尤其是在文本到图像生成、模型个性化以及视频生成方面。AnimateDiff在这些研究的基础上,提出了一种新的方法来生成动画,同时保持个性化T2I模型的视觉质量和领域知识。

Q: 这篇论文试图解决什么问题?
论文试图解决的问题是如何将现有的个性化文本到图像(T2I)扩散模型(如Stable Diffusion)转换为能够生成动画的模型,而无需对每个模型进行特定的调整或微调。论文提出了AnimateDiff框架,它通过一个预训练的运动模块,使得个性化的T2I模型能够生成具有动态效果的动画,同时保持原有的视觉质量和领域知识。这个框架的核心是一个即插即用的模块,它可以从真实世界的视频中学到可转移的运动先验知识,并将其应用于任何源自相同基础T2I的个性化T2I模型中。此外,论文还提出了MotionLoRA技术,这是一种轻量级的微调技术,允许预训练的运动模块适应新的运动模式,如不同的镜头类型,以较低的训练和数据收集成本。

2. 模型结构

A: 论文通过以下步骤解决了将个性化文本到图像(T2I)模型转换为动画生成器的问题:

  1. 设计AnimateDiff框架:
  • 提出了一个即插即用的运动模块,它可以从真实世界的视频数据中学习运动先验知识。
  • 该运动模块可以与任何源自相同基础T2I的个性化T2I模型无缝集成,形成个性化的动画生成器。
  1. 训练策略:
  • 通过提出的训练策略,运动模块有效地从真实世界视频中学习到转移的运动先验。
  • 训练过程分为三个阶段

(1)第一阶段:训练domain adapter

在这里插入图片描述
(1)第一阶段,训练domain adapter:微调一个领域适配器以适应目标视频数据集的视觉分布,确保运动模块专注于学习运动先验。并且通过lora微调训练,在基础T2I模型的自/交叉注意力层中引入低秩矩阵进行微调参数: Q = W Q z + AdapterLayer  ( z ) = W Q z + α ⋅ A B T z Q=\mathcal{W}^Q z+\text { AdapterLayer }(z)=\mathcal{W}^Q z+\alpha \cdot A B^T z Q=WQz+ AdapterLayer (z)=WQz+αABTz
训练数据:目标视频数据集,使用静态帧
训练方式:lora微调
训练目标:和T2I原始目标相同, L = E E ( x 0 ) , y , ϵ ∼ N ( 0 , I ) , t [ ∥ ϵ − ϵ θ ( z t , t , τ θ ( y ) ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{\mathcal{E}\left(x_0\right), y, \epsilon \sim \mathcal{N}(0, I), t}\left[\left\|\epsilon-\epsilon_\theta\left(z_t, t, \tau_\theta(y)\right)\right\|_2^2\right] L=EE(x0),y,ϵN(0,I),t[ϵϵθ(zt,t,τθ(y))22]

其中:
ϵ \epsilon ϵ 是添加的噪声 (从标准正态分布中采样的噪声)
ϵ θ ( z t , t , τ θ ( y ) ) \epsilon_\theta\left(z_t, t, \tau_\theta(y)\right) ϵθ(zt,t,τθ(y)) 是是去噪网络在给定潜在表示 zt 、时间步 t 和文本编码向量下预测的噪声, 其中:

  1. x 0 x_0 x0 是原始图像, y y y 是对应的文本提示
  2. τ θ ( ⋅ ) \tau_\theta(\cdot) τθ() 是文本编码器,将提示映射为emb
    3) z t z_t zt 是在时间步 t t t 的潜在表示,包含了原始数据 z 0 z_0 z0 和噪声 ϵ \epsilon ϵ 的信息

z t = α t ‾ z 0 + 1 − α t ‾ ϵ , ϵ ∼ N ( 0 , 1 ) z_t=\sqrt{\overline{\alpha_t}} z_0+\sqrt{1-\overline{\alpha_t}} \epsilon, \epsilon \sim \mathcal{N}(0,1) zt=αt z0+1αt ϵ,ϵN(0,1)

  • α ˉ t \bar{\alpha}_t αˉt 是预定的噪声比例,控制每一步噪声的强度

然后和 s d s d sd 一样预测噪声 :

L = E E ( x 0 1 : f ) , y , ϵ 1 ⋅ f ∼ N ( 0 , I ) , t [ ∥ ϵ − ϵ θ ( z t 1 : f , t , τ θ ( y ) ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{\mathcal{E}\left(x_0^{1: f}\right), y, \epsilon^{1 \cdot f} \sim \mathcal{N}(0, I), t}\left[\left\|\epsilon-\epsilon_\theta\left(z_t^{1: f}, t, \tau_\theta(y)\right)\right\|_2^2\right] L=EE(x01:f),y,ϵ1fN(0,I),t[ ϵϵθ(zt1:f,t,τθ(y)) 22]

(2)第二阶段:训练运动模块 motion module

(2)第二阶段,训练运动模块motion module:将基础T2I与领域适配器一起扩展(放在T2I模型的潜在表示层后),并引入新初始化的运动模块进行运动建模。
训练数据:视频数据集
目的:让T2I模型能生成连贯动画序列
动作:

  • 对T2I模型进行网络扩展,使得能够处理5d tensor,b×c×f ×h×w,其中f是frametime,帧时间维度
  • 让图像层能独立处理视频帧,所以将 frametime 维度并到 batch_size 维度,使得每帧独立通过图像层处理,之后会将feature map的维度reshape回 bxcxfxhxw
    训练方式:
  • 视频被3D VAE编码向量(这里没像cogvideox训练3d vae,直接使用AutoencoderKL变分自编码器),然后根据扩散过程添加噪声、预测噪声
  • 训练目标是最小化预测噪声与实际噪声之间的均方误差(MSE)
  • 更新motion module参数,同时保持领域适配器和基础T2I权重参数固定
    其他:
  • 输出投影层会用0初始化;self-attention中后面帧只能看到前面帧信息
  • Temporal Transformer在自注意力之前添加了正弦位置编码,确保了模块能够理解动画中帧的顺序(位置信息),从而捕捉到运动动态

(3)第三阶段:训练MotionLoRA

在这里插入图片描述
(3)第三阶段(MotionLoRA):使用少量参考视频和训练迭代,通过LoRA微调整个预训练的运动模块以适应新的运动模式。
训练数据:Reference视频数据
训练方式:

  • Lora微调,使得学习不同的视频镜头类型(如变焦、平移、滚动等)
  • 在motion模块的自注意力层中引入低秩矩阵进行Lora微调
    训练目标:motion模块、motionlora训练目标类似,都是先用预训练的sd auto-encoder将视频编码为隐向量,然后使用sd的前向扩散、预测噪声。
    提出了MotionLoRA,允许预训练的运动模块适应新的运动模式,如不同的镜头类型,以较低的训练和数据收集成本。

3. 相关实验

A: 论文进行了一系列实验来评估AnimateDiff和MotionLoRA的性能,包括:

  1. 社区模型评估:
  • 使用从Civitai等模型共享平台收集的多种代表性个性化T2I模型进行评估。
  • 这些模型涵盖了从2D卡通到真实照片的广泛领域,形成了全面的基准测试。
  1. 与基线比较:
  • 将AnimateDiff与现有的视频生成方法(如Text2Video-Zero和Tune-a-Video)以及商业工具(如Gen-2和Pika Labs)进行比较。
  • 通过用户研究和CLIP指标进行定量比较,关注文本对齐、领域相似性和运动平滑性三个方面。
  1. 用户研究:
  • 基于相同的个性化T2I模型,使用所有三种方法生成动画,然后让参与者根据上述三个方面对结果进行排名。
  • 使用平均用户排名(AUR)作为偏好度量,其中较高的分数表示更优越的性能。
  1. CLIP指标:
  • 使用CLIP模型评估领域相似性,计算动画帧与使用个性化T2I生成的参考图像之间的相似度。
  1. 消融研究:
  • 研究领域适配器在AnimateDiff中的影响,通过调整适配器层中的缩放因子来观察结果变化。domain adapter的scaler越大,则和目标数据集的分布越接近
  • MotionLoRA:当reference video数据越多,视频质量越好
  1. 可控生成:
  • 展示了AnimateDiff与ControlNet结合的能力,使用提取的深度图序列进行可控生成。
  • 与最近的视频编辑技术相比,AnimateDiff能够从随机采样的噪声生成动画,展现出精细的运动细节和高视觉质量。

4. 评测效果

和其他模型评测结果的比较:
在这里插入图片描述

其他指标:

  • AnimateDiff通过用户研究和CLIP指标进行了定量比较。
    • 用户研究基于文本对齐、领域相似性(视频和原始T2I模型生成风格的相似性)和运动平滑性三个方面对生成的动画进行排名。
    • CLIP指标则用于评估生成动画与参考图像之间的相似性。

5. 可以进一步探索的点

A: 尽管AnimateDiff在将个性化文本到图像模型转换为动画生成器方面取得了显著成果,但仍有一些潜在的研究方向可以进一步探索:

  1. 提高动画质量:
  • 研究更先进的运动建模技术,以进一步提高生成动画的质量和真实感。
  • 探索如何更好地结合视觉内容和运动信息,以生成更自然和连贯的动画。
  1. 优化MotionLoRA:
  • 研究如何进一步减少MotionLoRA所需的参考视频数量和训练迭代,以实现更高效的个性化运动模式适应。
  • 探索不同的网络架构和训练策略,以提高MotionLoRA的泛化能力和适应性。
  1. 多模态输入:
  • 研究如何将AnimateDiff扩展到处理多模态输入,例如结合文本、音频和图像信息来生成动画。
  • 探索如何利用多模态数据来提高动画的表达力和多样性。
  1. 内容控制和编辑:
  • 研究如何进一步提高AnimateDiff在内容控制方面的灵活性,例如允许用户在生成过程中动态调整动画内容。
  • 探索结合其他内容编辑技术,如图像和视频编辑工具,以实现更复杂的动画编辑功能。
  1. 跨领域适应性:
  • 研究AnimateDiff在不同领域(如艺术风格、文化背景)的适应性和通用性。
  • 探索如何使AnimateDiff更好地理解和适应不同领域的特定需求和约束。

6. 总结

A: 这篇论文介绍了AnimateDiff,这是一个实用的框架,用于在不需要特定调整的情况下,将个性化的文本到图像(T2I)扩散模型转换为动画生成器。

  1. 问题背景:现有的个性化T2I模型能够生成高质量的静态图像,但在生成动画方面存在挑战。作者提出了AnimateDiff,旨在解决这一问题。
  2. AnimateDiff框架:核心是一个可插拔的运动模块,它可以从真实世界视频中学习通用的运动先验,并与任何基于相同基础T2I的个性化模型集成,以生成动画。
  3. 训练策略:AnimateDiff的训练包括三个阶段:
  • 领域适配器:微调以适应目标视频数据集的视觉分布。
  • 运动模块:在视频上训练以学习运动先验,同时保持基础T2I权重固定。
  • MotionLoRA:一种轻量级微调技术,用于适应新的运动模式,如不同的镜头类型。
  1. 与现有方法的比较:AnimateDiff在用户研究和CLIP指标上与Text2Video-Zero和Tune-a-Video等方法进行了比较,显示出优越的性能。
  2. 消融研究:研究了领域适配器和运动模块设计对AnimateDiff性能的影响。

7. 运镜介绍

相机运动

  • 放大/缩小 (Zooming - in/out)
  • 平移 (panning): 水平移动相机
  • 倾斜 (tilting): 垂直移动相机
  • Dolly: 前后移动整个相机
  • Truck: 与小推车一样,只能从左向右移动相机
  • 底座 (Pedestal): 将相机固定在一个位置时上下垂直移动相机

Reference

[1] VAE(变分自动编码器)优势在哪里?
[2] AnimateDiff|让文生图动起来
[3] AnimateDiff:一款强大的制作丝滑动画视频插件,轻松让你的图片动起来

相关文章:

【LLM多模态】Animatediff文生视频大模型

note AnimateDiff框架:核心是一个可插拔的运动模块,它可以从真实世界视频中学习通用的运动先验,并与任何基于相同基础T2I的个性化模型集成,以生成动画。训练策略:AnimateDiff的训练包括三个阶段: 领域适配…...

PDB数据库中蛋白质结构文件数据格式

在PDB(Protein Data Bank)数据库中,蛋白质结构文件通常以两种主要格式存储:.pdb(PDB格式)和 .cif(CIF格式,Crystallographic Information File)。这两种文件格式记录了蛋白质的三维结构坐标信息以及实验数据,但它们的表达方式和用途有所不同。 1. PDB数据库中的结构…...

C++自动驾驶面试核心问题整理

应用开发 概述:比较基础,没啥壁垒,主要有linux开发经验即可 问题:基础八股,如计算机网络、操作系统、c11等基础三件套;中等难度算法题1-2道。 中间件开发(性能优化) 概述&am…...

2024寻找那些能精准修改PDF内容的工具

如今,我们使用 PDF 文档的频率不断攀升,很多时候收到的表格等资料都是 PDF 格式。若先进行格式转换后编辑,再转换回 PDF 格式,着实有些麻烦。那么,pdf怎么编辑修改内容呢?在这篇文章中,我将为大…...

POI操作EXCEL增加下拉框

文章目录 POI操作EXCEL增加下拉框 POI操作EXCEL增加下拉框 有时候通过excel将数据批量导入到系统,而业务操作人员对于一些列不想手动输入,而是采用下拉框的方式来进行选择 采用隐藏sheet页的方式来进行操作 String sheetName "supplier_hidden_s…...

新手教学系列——基于统一页面的管理后台设计(二)集成篇

在现代企业级应用中,后台管理系统不仅是业务运营的核心,还承担着数据管理、用户权限控制等重要功能。随着业务规模的不断扩大,系统架构逐渐向微服务转变,多个后端服务模块协同工作,如何高效地集成这些模块,确保系统的稳定性和可维护性,成为开发者亟需解决的问题。在《新…...

计算机毕业设计之:基于微信小程序的疫苗预约系统的设计与实现(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…...

Redis事务总结

1.事务介绍 Redis 事务是一个用于将多个命令打包在一起执行的功能,它可以确保这些命令按照顺序执行,并且具有原子性。这意味着事务中的命令要么全部执行,要么全部不执行,这有助于保持数据的一致性。 Redis 事务本质:…...

1.4 MySql配置文件

既然我们开始学习数据库,就不能像大学里边讲数据库课程那样简单讲一下,增删改查,然后介绍一下怎么去创建索引,怎么提交和回滚事务。我们学习数据库要明白怎么用,怎么配置,学懂学透彻了。当然MySql的配置参数…...

前后端分离集成CAS单点登录

修改nginx worker_processes 1; events {worker_connections 1024; } http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location /api/ {proxy_pass htt…...

全栈开发(四):使用springBoot3+mybatis-plus+mysql开发restful的增删改查接口

1.创建user文件夹 作为增删改查的根包 路径 src/main/java/com.example.demo/user 2.文件夹里文件作用介绍 1.User(实体类) package com.example.demo.user; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.IdType; impo…...

计算机组成原理==初识二进制运算

计算机组成原理 计算机算术概要 计算机算术是计算机组成原理中的一个重要部分,它涉及在计算机硬件中执行基本数学运算的方法和技术。计算机算术不仅包括简单的加减乘除运算,还包括更复杂的操作如浮点运算、位运算等。 1. 基本概念 数制:计…...

【machine learning-十-grading descent梯度下降实现】

grading descent 梯度下降参数更新方法 --导数和学习率 从导数项直观理解梯度下降 grading descent 算法就是更新参数,今天来学习下如何更新w和b 梯度下降 还是以线性回归的均方差损失函数如下为例: 损失函数的可视化图如下 : 横轴和纵轴分…...

python网络游戏

import socket import threading 客户端处理函数 def handle_client(client_socket, client_address): print(“[INFO] New connection from: {}”.format(client_address)) # 接收客户端消息并回复 while True:data client_socket.recv(1024).decode(utf-8)if not data:br…...

使用Charles抓包Android App数据

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 抓包环境准备 1. 下载安装charles charles下载地址:https://www.charlesproxy.com/latest-release/download.do 2. SSL代理设置 3. http代理和…...

通信工程学习:什么是VM虚拟机

VM:虚拟机 VM虚拟机(Virtual Machine)是一种通过软件模拟的计算机系统,它能够在物理计算机上模拟并运行多个独立的虚拟计算机系统。以下是关于VM虚拟机的详细解释: 一、VM虚拟机的定义与原理 定义: VM虚拟…...

C#环境搭建和入门教程--vs2022之下

目录 1.环境搭建 2.先让程序跑起来 3.C#代码结构 4.变量,输入输出介绍 5.内容输入和类型转换 1.环境搭建 我们的这个c#基础学习主要就是在这个vs2022上面进行的,我们的这个c/c使用的都是这个平台 我们首先检查一下我们的这个环境是不是完全的配置了…...

自定义类型

前言:不知不觉又过了一个礼拜。时间过的还真是快呀。好了废话不多说,今天我们来学习C语言中的结构体,联合体,枚举。 我们都知道C语言中数据类型大致被分为基本类型,自定义类型,指针类型,空类型…...

数仓项目环境搭建

目录 一、安装CentOS 1.1、修改映射关系: 1.2、免密登录: 1.3、关闭防⽕墙: 1.4、修改linux的安全机制: 1.5、修改yum源: 二、安装JDK 2.1、创建文件夹: 2.2、解压安装: 2.3、配置环境变量: 2.4、刷新环境变量: 2.5、验证: 三、安装Hadoop[伪分布式] 3.1、安装hd…...

Vue3(二)计算属性Computed,监视属性watch,watchEffect,标签的ref属性,propos属性,生命周期,自定义hook

文章目录 一 、计算属性1. 简写2. 完整写法 二、监视watch1. 监视【ref】定义的【基本类型】数据2. 监视【ref】定义的【对象类型】数据3. 监视【reactive】定义的【对象类型】数据4. 监视【ref】或【reactive】定义的【对象类型】数据中的某个属性5. 监视多个数据总结 三、wat…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

相机从app启动流程

一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...