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

[读论文] Compositional 3D-aware Video Generation with LLM Director

Abstract

近年来,通过强大的生成模型和大规模互联网数据,文本到视频生成领域取得了显著进展。然而,在生成视频中精确控制单个概念(如特定角色的动作和外观、视角的移动)方面,仍存在巨大挑战。为此,我们提出了一种新的范式,先分别生成每个概念的 3D 表示,然后利用大语言模型(LLM)和 2D 扩散模型的先验知识将它们组合起来。具体来说,对于输入的文本提示,我们的方法分为三个阶段:

  1. 利用 LLM 作为 “导演”,将复杂的查询分解为若干子提示,分别指示视频中的各个独立概念(例如场景、物体、动作等),然后调用预训练的专家模型,获取这些概念的对应 3D 表示

  2. 为了组合这些表示,我们提示多模态 LLM 生成关于物体轨迹的比例和坐标的粗略指导

  3. 为了使生成的帧符合自然图像的分布,我们进一步利用 2D 扩散模型的先验知识,并通过 “得分蒸馏采样”(Score Distillation Sampling)来优化组合

1. Introduction

paper: arxiv.org/pdf/2409.00558

2. Related Works

2.1 Video Generation with LLM

2.2 Compositional 3D Generation

3. Preliminaries

3.1 3D Gaussian Splatting

3DGS 近年来因其逼真的视觉质量和实时渲染能力,在新视角合成领域引起了广泛关注。3DGS 使用一组各向异性的椭球体(即3D高斯分布)来编码 3D 特性,其中每个高斯分布由以下参数表征:位置 μ ∈ R 3 \mu\in\R^3 μR3、协方差矩阵 Σ ∈ R 3 × 3 \Sigma\in\R^{3\times3} ΣR3×3(由尺度 s ∈ R 3 s\in\R^3 sR3 和旋转 r ∈ R 3 r\in\R^3 rR3 计算得到)、不透明度 α ∈ R \alpha\in\R αR,以及颜色 c ∈ R 3 c\in\R^3 cR3

在渲染新视角时,3DGS 采用基于网格的光栅化方法,将 3D 高斯分布投影到图像平面上成为 2D 高斯分布。像素 p p p 的最终颜色 c ( p ) c(p) c(p) 定义为:

c ( p ) = ∑ c ^ α ^ ∏ ( 1 − α ^ ) c(p)=\sum\hat c\hat\alpha\prod(1-\hat\alpha) c(p)=c^α^(1α^)

其中 c ^ \hat c c^ α ^ \hat\alpha α^ 分别表示一系列贡献于该像素的 2D 高斯分布的颜色值和不透明度。3DGS 通过逐视图优化的方式,利用 L 1 L_1 L1 损失和 SSIM 损失进行优化。由于对 3D 场景进行了显式建模,优化后的 3D 高斯分布可以轻松地进行控制和编辑。

3.2 Score Distillation Sampling

与文本到图像生成不同,文本到 3D 生成由于缺乏大量的文本-图像配对数据而面临严重的数据不足问题。为了解决这一问题,SDS 被提出,用于从预训练的基于扩散模型的文本到图像生成模型 ϕ \phi ϕ 中提取生成先验。具体来说,对于一个由参数 θ \theta θ 构成的 3D 表示,SDS 用于衡量渲染图像 x = g ( θ ) x=g(\theta) x=g(θ) 与给定文本提示 y y y 之间的相似性,其中 g g g 表示渲染操作。结果用于更新 θ \theta θ 的梯度计算公式如下:

∇ θ L S D S ( ϕ , x = g ( θ ) ) = E t , ϵ [ w ( t ) ( ( x t ; y , t ) − ϵ ) ] \nabla_\theta\mathcal L_{SDS}(\phi,x=g(\theta))=\mathbb E_{t,\epsilon}[w(t)((x_t;y,t)-\epsilon)] θLSDS(ϕ,x=g(θ))=Et,ϵ[w(t)((xt;y,t)ϵ)]

其中: t t t 表示噪声级别, ϵ \epsilon ϵ 表示真实噪声, w ( t ) w(t) w(t) 是一个加权函数, ϵ ^ ϕ \hat\epsilon_\phi ϵ^ϕ 是基于带有文本嵌入 y y y 的加噪图像 x t x_t xt 所估计的噪声

4. Method

4.1 Task Decomposition with LLM

Task Instructions. 给定一个文本提示,我们调用 LLM 将其分解为多个子提示。每个子提示描述了一个独立的概念,例如场景、物体和动作。具体而言,对于输入提示 y y y,我们向 LLM 发送如下指令:“Please decompose this prompt into several sub-prompts, each describing the scene, objects in the scene, and the objects’ motion.” 通过这样的指令,我们可以获得相应的子提示。

3D Representation. 在获取每个概念的子提示后,我们利用预训练的专家模型生成其对应的 3D 表示。在本研究中,我们基于3DGS 构建结构化表示,这是一种显式形式,因此足够灵活,能够进行组合或动画处理。针对如运动等概念,我们的框架能够泛化为任意基于 3D 高斯的可动画物体。为了简化,我们以人类运动作为实例,因为它适用于多种场景。为了获取多样化的人类运动,我们采用检索增强方法,根据与运动相关的子提示,从大型运动库中以 SMPL-X 参数的形式获取运动数据。

Instantiation. 为了正式说明该方案,考虑以下示例:我们有子提示 y 1 , y 2 , y 3 y_1,y_2,y_3 y1,y2,y3,分别描述场景、物体和动作。此外,LLM 选择了相应的预训练文本引导专家模型 ϕ 1 , ϕ 2 , ϕ 3 \phi_1,\phi_2,\phi_3 ϕ1,ϕ2,ϕ3,概念生成可以形式化为:

G 1 = ϕ 1 ( y 1 ) , G 1 = ϕ 2 ( y 2 , M ) , M = ϕ 3 ( y 3 ) G_1 = \phi_1(y_1),\quad G_1=\phi_2(y_2,M),\quad M=\phi_3(y_3) G1=ϕ1(y1),G1=ϕ2(y2,M),M=ϕ3(y3)

其中 G 1 G_1 G1 G 2 G_2 G2 表示 3D 高斯表示, M M M 表示用于驱动 G 2 G_2 G2 的运动。

4.2 Coarse-grained Trajectory Generation with LLM

在生成的概念基础上,我们的目标是将它们组合成一个动态的3D表示,从而渲染出与输入文本提示一致的视频。要实现这一点,需要确定物体的比例和轨迹,以表示它们在场景中的大小和位置。为此,我们提出利用多模态大语言模型中编码的知识提供先验信息。

对于物体的比例,我们发现直接通过输入提示和渲染的场景图像向 GPT-4V 进行查询,可以合理地估计其分辨率 H 2 D H_{2D} H2D W 2 D W_{2D} W2D。然而,对于轨迹估计,情况并非如此,直接使用 GPT-4V 查询轨迹会导致与常识明显偏离的结果。我们总结出以下两个问题:

  1. GPT-4V 难以在单次查询中生成合理的轨迹,因为它缺乏视觉动态的先验知识

  2. 由于 GPT-4V 主要用于生成文本,在想象视觉内容方面存在局限性

为了缓解这些问题,我们引入了两个简单但有效的技术:

  1. 尽管 GPT-4V 缺乏对物体的视觉知识,我们可以通过将物体表示为具有估计分辨率的边界框来缓解这一问题

  2. 我们遵循逐步推理的理念,首先让 GPT-4V 估计起点和终点的位置,然后再推导它们之间的路径

4.3 Fine-grained Composition with 2D Diffusion Priors

Lift Trajectory from 2D to 3D. 通过 LLM 可以获得估计轨迹的 2D 像素坐标 L p i = ( p x i , p y i ) L_p^i=(p_x^i,p_y^i) Lpi=(pxi,pyi)。然而,2D 轨迹不足以满足 3D 空间中的组合需求。因此,我们将其转换为对应的3D世界坐标 L 3 D i = ( x i , y i , z i ) L_{3D}^i=(x^i,y^i,z^i) L3Di=(xi,yi,zi) 具体步骤如下:

  1. 深度图预测:首先,使用单目深度估计器预测渲染场景图像的深度图 D D D

  2. 深度确定:取目标边界框下边界中心点的深度值作为轨迹的深度。

  3. 轨迹转换:将2D轨迹转换为3D轨迹,公式如下:

( x i , y i , z i , 1 ) T = R − 1 K − 1 [ ( p x i + H 2 D 2 , p y i , 1 ) T ⋅ D ( p x i + H 2 D 2 , p y i ) ] − ( H 3 D 2 , 0 , 0 , 0 ) T (x^i,y^i,z^i,1)^T=R^{-1}K^{-1}[(p^i_x+\frac{H_{2D}}2,p^i_y,1)^T\cdot D(p^i_x+ \frac{H_{2D}}2,p^i_y)]-(\frac{H_{3D}}2,0,0,0)^T (xi,yi,zi,1)T=R1K1[(pxi+2H2D,pyi,1)TD(pxi+2H2D,pyi)](2H3D,0,0,0)T

其中 R R R K K K 分别表示相机的外参和内参, H 2 D H_{2D} H2D W 2 D W_{2D} W2D 表示 2D 边界框, H 3 D H_{3D} H3D 表示场景中该物体的 3D 边界框实际高度。通过以上步骤,我们能够从 2D 像素轨迹生成符合场景需求的 3D 轨迹,实现更准确的 3D 空间组合。

Composition Refinement with 2D Diffusion Priors. 通过 3D 轨迹,我们将物体集成到场景中。然而,由 LLM 估计的轨迹仍然粗糙,可能不符合自然图像的分布。为了解决这一问题,我们提出通过将预训练图像扩散模型中的生成先验蒸馏到 3D 空间,进一步优化物体的比例、位置和旋转。具体来说,我们将这些属性的参数视为可优化变量,并使用SDS 来提升渲染图像的真实性:

∇ S ˉ L S D S S c a l e = E [ w ( t ) ( ϵ ^ ϕ ( L 3 D 1 , ( S + σ ( S ^ ) ⋅ τ S − τ S 2 ) ⋅ G 2 ; y , t ) − ϵ ) ] \nabla_{\bar S}\mathcal L^{Scale}_{SDS}=\mathbb E[w(t)(\hat\epsilon_\phi( L^1_{3D},( S+\sigma(\hat S)\cdot\tau_S-\frac{\tau_S}2 )\cdot G_2;y,t )-\epsilon)] SˉLSDSScale=E[w(t)(ϵ^ϕ(L3D1,(S+σ(S^)τS2τS)G2;y,t)ϵ)]

其中 S ^ \hat S S^ 表示可优化变量, S S S 表示由 GPT-4V 估计的比例, σ \sigma σ 是 Sigmoid 函数, τ S \tau_S τS 是一个阈值, G 2 G_2 G2 表示物体的 3D 高斯表示, x t x_t xt 是给定 L 3 D i L_{3D}^i L3Di 和缩放后的 G 2 G_2 G2 生成的带噪 2D 图像。通过优化上述公式,可以获得更精确的比例。

接着,我们类似地优化估计的 3D 轨迹位置,位置优化的公式为:

∇ L ^ i L S D S L o c a t i o n = E t , ϵ [ w ( t ) ( ϵ ^ ϕ ( x t ( L 3 D i + σ ( L ^ i ) ⋅ τ L − τ L 2 , ( S + σ ( S ^ ) ⋅ τ S − τ S 2 ) ⋅ G 2 ) ; y , t ) − ϵ ) ] \nabla_{\hat L^i}\mathcal L^{Location}_{SDS}=\mathbb E_{t,\epsilon}[w(t)( \hat\epsilon_\phi( x_t( L^i_{3D}+\sigma(\hat L^i)\cdot\tau_L-\frac{\tau_L}2,( S+\sigma(\hat S)\cdot\tau_S-\frac{\tau_S}2 )\cdot G_2 );y,t )-\epsilon )] L^iLSDSLocation=Et,ϵ[w(t)(ϵ^ϕ(xt(L3Di+σ(L^i)τL2τL,(S+σ(S^)τS2τS)G2);y,t)ϵ)]

其中 L ^ i \hat L^i L^i 是可优化变量。

对于不同时间步的物体旋转,我们基于假设:物体在当前时间步应面向下一时间步的位置,直接计算对应的旋转矩阵。旋转矩阵 R ^ i \hat R^i R^i 公式如下:

R ^ i = [ t x 2 + c t x y − z s t x z + y s t x y + z s t y 2 + c t y z − x s t x z − y s t y z + x s t z 2 + c ] t = 1 − c , c = cos ⁡ ( θ ) , s = sin ⁡ ( t h e t a ) , u ⃗ = ( x , y , z ) T \hat R^i=\begin{bmatrix} tx^2+c&txy-zs&txz+ys\\ txy+zs&ty^2+c&tyz-xs\\ txz-ys&tyz+xs&tz^2+c \end{bmatrix} \\ t=1-c,\quad c=\cos(\theta),\quad s=\sin(theta),\quad\vec u=(x,y,z)^T R^i= tx2+ctxy+zstxzystxyzsty2+ctyz+xstxz+ystyzxstz2+c t=1c,c=cos(θ),s=sin(theta),u =(x,y,z)T

θ \theta θ u ⃗ \vec u u 是通过叉乘得到的,分别基于 ( L 3 D i + 1 + σ ( L ^ i + 1 ) ⋅ τ L − L 3 D i − σ ( L ^ i ) ⋅ τ L (L^{i+1}_{3D}+\sigma(\hat L^{i+1})\cdot\tau_L-L^i_{3D}-\sigma(\hat L^i)\cdot\tau_L (L3Di+1+σ(L^i+1)τLL3Diσ(L^i)τL ( 0 , 0 , 1 ) T (0,0,1)^T (0,0,1)T

Inference. 在获得了各个概念的 3D 表示以及优化的参数,指示如何组合这些概念后,我们可以将 3D 表示渲染成 2D 视频,并在实时中灵活地控制相机

相关文章:

[读论文] Compositional 3D-aware Video Generation with LLM Director

Abstract 近年来,通过强大的生成模型和大规模互联网数据,文本到视频生成领域取得了显著进展。然而,在生成视频中精确控制单个概念(如特定角色的动作和外观、视角的移动)方面,仍存在巨大挑战。为此&#xff…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十八,ffmpeg解复用

为啥要封装和解封装呢? 1.封装就相当于将 h264 和aac 包裹在一起。既能播放声音,也能播放视频 2.在封装的时候没指定编码格式,帧率,时长,等参数;特别是视频,可以将视频帧索引存储,…...

ubuntu系统安装docker

1、 安装必要的依赖 sudo apt install apt-transport-https ca-certificates curl software-properties-common2、添加 Docker 的官方 GPG 密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -3、添加 Docker 的 APT 源 sudo add-apt-repos…...

STM32 BootLoader 刷新项目 (十三) Python上位机介绍

STM32 BootLoader 刷新项目 (十三) Python上位机介绍 大家好,这是我们STM32 BootLoader的最后一篇文章了,讲述用Python写的上位机,也更新了半年时间了,谢谢大家的支持,到目前为止,已经更新了12篇文章了&am…...

美畅物联丨智能监控,高效运维:视频汇聚平台在储能领域的实践探索

在当今全球能源格局不断变化的大背景下,对清洁能源的需求正以惊人的速度增长。储能项目作为平衡能源供需、提升能源利用效率的关键环节,其规模和复杂度也在不断攀升。在储能项目的运营管理过程中,安全监控、设备运维以及数据管理等方面面临着…...

T C P

文章目录 基于UDP应用场景 TCP协议TCP 协议段格式确认应答机制16位窗口大小 下定义32位序号和32位确认序号序号是什么?确认序号 基于UDP应用场景 UDP,tcp这样的协议根本不是直接谈UDP。tcp的应用场景,一定是上层写了应用层协议,所…...

MongoDB的简单使用

MongoDB(文档数据库)的简单使用 MongoDB最好的学习资料就是他的官方文档:SQL 到 MongoDB 的映射图表 - MongoDB 手册 v8.0 1.MongoDB CRUD操作 1.1Insert操作 基本方法: db.collection.insertOne() 将单个文档(document)插入集合中 db.collectio…...

【Exp】# Microsoft Visual C++ Redistributable 各版本下载地址

Microsoft官方页面 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Redistributable 2019 X86: https://aka.ms/vs/16/release/VC_redist.x86.exe X64: https://aka.ms/vs/16/release/VC_redist.x64.exe Redistributable 201…...

【MySQL】表的约束

目录 一、非空约束not null 二、默认值约束default 三、列描述comment 四、填充零zerofill 五、主键primary key 六、自增长auto_increment 七、唯一键unique 八、外键foreign key 一、非空约束not null 如果不对一个字段做非空约束,则默认为空。但空数据无…...

c++高级篇(四) ——Linux下IO多路复用之epoll模型

IO多路复用 —— epoll 前言 在之前我们就已经介绍过了select和poll,在作为io多路复用的最后一个的epoll,我们来总结一下它们之间的区别: a select 实现原理 select 通过一个文件描述符集合(fd_set)来工作,该集合可以包含需要监控的文件…...

基于Java Springboot环境保护生活App且微信小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…...

.NET 9 中 LINQ 新增功能实现过程

本文介绍了.NET 9中LINQ新增功能,包括CountBy、AggregateBy和Index方法,并提供了相关代码示例和输出结果,感兴趣的朋友跟随我一起看看吧 LINQ 介绍 语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的…...

【Vue3中Router使用】

Vue3中Router使用 1. 安装vue-router组件2. 建两个测试页面2.1 测试页面Home.vue2.2 测试页面Category.vue 3. 创建路由对象4. 在入口main.js中引入router把App.vue改成路由页面5. 测试5.1 关闭检查解决ESlint报错5.2 改文件名解决ESlint检查报错测试WebHashHistory 和WebHisto…...

性能测试攻略(一):需求分析

性能测试成为软件开发和运维过程中不可或缺的一环。性能测试不仅能够帮助我们了解系统在特定条件下的表现,还能帮助我们发现并解决潜在的性能问题。那么我们怎么做一次完整的性能测试呢?首先,我们需要进行需求分析,来明确我们的测…...

android WebRtc 无法推流以及拉流有视频无声音问题

最近在开发使用WebRtc进行视频通话和语音通话,我使用的设备是MTK的手机,期间后台的技术人员几乎没法提供任何帮助,只有接口和测试的web端,有遇到不能推流。推流成功网页端有画面有声音,但是安卓端有画面,没…...

Socket编程TCP

【Linux】TCP编程 实验&#xff1a;通过TCP通信—在客户端输入要执行的指令&#xff0c;接收执行结果&#xff0c;另服务端接收指令并执行&#xff0c;向客户端发送执行结果 //主函数 #include<iostream> #include<string> #include"log.hpp" #include…...

《以 C++为笔,绘就手势识别人机交互新画卷》

在科技浪潮汹涌澎湃的当下&#xff0c;人机交互领域正处于深刻变革的前沿阵地。从古老的命令行输入到图形化界面的鼠标点击&#xff0c;再到如今风靡全球的触摸操控&#xff0c;每一次交互方式的革新都重塑了我们与电子设备的沟通模式。而近年来&#xff0c;手势识别技术作为一…...

【CSS】小球旋转loading加载动画

效果 css小球旋转loading动画 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document<…...

Leetcode经典题6--买卖股票的最佳时机

买卖股票的最佳时机 题目描述&#xff1a; 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。…...

BA是什么?

目录 1.EKF的步骤 一、问题定义与模型建立 二、线性化处理 三、应用卡尔曼滤波 四、迭代与收敛 五、结果评估与优化 注意事项 2.BA问题的步骤 一、问题定义与数据准备 二、构建优化模型 三、选择优化算法 四、执行优化过程 五、结果评估与优化 六、应用与验证 1.…...

【IDEA】报错:Try to run Maven import with -U flag (force update snapshots)

问题 IDEA运行项目报错&#xff1a;Try to run Maven import with -U flag (force update snapshots) 原因 IDEA 的项目运行绑定的maven有问题&#xff0c; 解决问题 检查项目绑定的maven配置...

MATLAB提供的窗函数

加窗法 为什么使用加窗法&#xff1f; 在数字滤波器设计和频谱估计中&#xff0c;加窗函数的选择对于整体结果的质量有重大影响。加窗的主要作用是减弱因无穷级数截断而产生的吉布斯现象的影响。 windowDesigner 六种常见的窗函数 根据离散时间傅里叶变换的乘法性质&a…...

git 使用配置

新拿到机器想配置git 获取代码权限&#xff0c;需要的配置方法 1. git 配置用户名和邮箱 git config --global user.name xxxgit config --global user.email xxemail.com 2. 生成ssh key ssh-keygen -t rsa -C "xxemail.com" 3. 获取ssh key cat ~/.ssh/id_rsa.…...

【深度学习】深入解析长短期记忆网络(LSTMs)

长短期记忆网络&#xff08;Long Short-Term Memory networks, LSTMs&#xff09;是一种特殊的递归神经网络&#xff08;RNN&#xff09;&#xff0c;专门设计用来解决标准 RNN 在处理长序列数据时的梯度消失和梯度爆炸问题。LSTMs 在许多序列数据任务中表现出色&#xff0c;如…...

vue watch和computed的区别,computed和method的区别

发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【宝藏入口】。 在 Vue 中&#xff0c;watch、computed 和 methods 都是常用的响应式功能&#xff0c;它们的用途和工作方式有所不同。下面分别解…...

搭建高可用负载均衡系统:Nginx 与云服务的最佳实践

搭建高可用负载均衡系统&#xff1a;Nginx 与云服务的最佳实践 引言 在项目开发过程中&#xff0c;我们通常在开发和测试阶段采用单机架构进行开发和测试。这是因为在这个阶段&#xff0c;系统的主要目的是功能实现和验证&#xff0c;单机架构足以满足开发人员的日常需求&…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg复用

封装就是将 一个h264&#xff0c;和一个aac文件重新封装成一个mp4文件。 这里我们的h264 和 aac都是来源于另一个mp4文件&#xff0c;也就是说&#xff0c;我们会将 in.mp4文件解封装成一路videoavstream 和 一路 audioavstream&#xff0c;然后 将这两路的 avstream 合并成一…...

Node.js JWT认证教程

Node.js JWT认证教程 1. 项目介绍 JSON Web Token (JWT) 是一种安全的跨域身份验证解决方案&#xff0c;在现代Web应用中广泛使用。本教程将详细讲解如何在Node.js中实现JWT认证。 2. 项目准备 2.1 初始化项目 # 创建项目目录 mkdir nodejs-jwt-auth cd nodejs-jwt-auth# …...

nn.utils.clip_grad_value_

nn.utils.clip_grad_value_ 是 PyTorch 中的一个函数&#xff0c;用于在训练过程中对模型的梯度进行裁剪&#xff0c;以防止梯度爆炸&#xff08;gradient explosion&#xff09;问题。该函数对梯度的每个元素进行裁剪&#xff0c;将其限制在一个指定的最大绝对值范围内。裁剪后…...

Java后端面试模板(技术面)

1、自我介绍模板 面试官您好&#xff01;我是来自----大学计算机学院的一名大三学生&#xff0c;我的名字叫—。 在大学期间&#xff0c;我主要自学了一些主流的Java技术栈&#xff0c;其中主要包括&#xff1a;Java主流的框架&#xff1a;Spring MVC Spring Boot Spring Clou…...

【大语言模型】ACL2024论文-24 图像化歧义:Winograd Schema 挑战的视觉转变

【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变 目录 文章目录 【大语言模型】ACL2024论文-24 图像化歧义&#xff1a;Winograd Schema 挑战的视觉转变目录摘要研究背景问题与挑战如何解决核心创新点算法模型实验效果&#xff08;包含重要…...

Docker 安装和使用

#Docker 安装和使用 文章目录 1. 安装2. 干掉讨厌的 sudo3. 使用镜像源3.1. 使用 upstart 的系统3.2. 使用 systemd 的系统 4. 基本使用4.1. 容器操作4.2. 镜像操作 5. 网络模式说明5.1. bridge 模式5.2. host 模式5.3. container 模式5.4. none 模式 6. 查看 Docker run 启动参…...

nginx网站服务

nginx介绍&#xff1a; 1、高并发&#xff0c;轻量级的web服务软件 2、稳定性高&#xff0c;系统资源消耗率低 对http的高并发处理能力高&#xff0c;单台物理服务器可以支持30000-50000个并发。 一般来说在工作中&#xff0c;单台的并发一般在20000. nginx的功能介绍&…...

MATLAB 手写判断点在多边形内外的2种方法(87)

MATLAB 手写判断点在多边形内外-方法1(87) 一、算法介绍二、算法实现1.方法1(代码+测试)2.方法2(代码+测试)三、结果一、算法介绍 手动实现两种方法,判断点在多边形的内部还是外部, 具体实现和测试代码如下,使用前请自行验证。(代码复制粘贴即可使用) 二、算法实现…...

Android SurfaceFlinger layer层级

壁纸作为显示的最底层窗口它是怎么显示的 1. SurfaceFlinger layer层级 锁屏状态dump SurfaceFlinger &#xff0c;adb shell dumpsys SurfaceFlinger Display 0 (active) HWC layers: -----------------------------------------------------------------------------------…...

零基础快速掌握——【c语言基础】数组的操作,冒泡排序,选择排序

1.数组 内存空间连续&#xff1a; 2.定义格式 数组的定义格式&#xff1a; 数组分为一维数组、二维数组、以及多维数组&#xff0c;不同类型的数组定义格式时不一样 2.1 一维数组的定义 数据类型 数组名 [数组长度]&#xff1b; 解释&#xff1a; 数据类型&#xff1…...

个人IP建设:简易指南

许多个体创业者面临的一个关键挑战是如何为其企业创造稳定的需求。 作为个体创业者&#xff0c;您无法使用营销团队&#xff0c;因此许多人通过推荐和他们的网络来产生需求。因此&#xff0c;扩大您的网络是发展您的业务和产生持续需求的最佳策略。 这就是个人IP和品牌发挥作…...

【Unity高级】如何获取着色器(Shader)的关键词

在动态设置Shader时&#xff0c;会需要通过EnableKeyword, DisableKeyword来完成。但一个Shader有哪些关键词呢&#xff1f;Unity的文档中并没有列出来&#xff0c;但我们可以通过遍历Shader的KeywordSpace来查看。 1. 代码如下 using UnityEngine;public class KeywordExamp…...

OSS文件上传

1、我们这个系统对接的阿里云OSS需要先对接小鹏OSS系统获取accessKeyId、accessKeySecret&#xff0c;这个可以忽略 aliyun:oss:endpoint: https://oss-cn-hangzhou.aliyuncs.combucketName: xp-xpd-experiencedomain: https://xp-xpd-experience.oss-cn-hangzhou.aliyuncs.co…...

时序预测算法TimeXer代码解析

在时序预测领域&#xff0c;如何有效地利用外部变量&#xff08;exogenous variables&#xff09;来提升内部变量&#xff08;endogenous variables&#xff09;的预测性能一直是一个挑战。 在上一篇文章中&#xff0c;我结合论文为大家解读了TimeXer框架&#xff0c;今天&…...

【无标题】建议用坚果云直接同步zotero,其他方法已经过时,容易出现bug

created: 2024-12-06T16:07:45 (UTC 08:00) tags: [] source: https://zotero-chinese.com/user-guide/sync author: 数据与文件的同步 | Zotero 中文社区 Excerpt Zotero 中文社区&#xff0c;Zotero 中文维护小组&#xff0c;Zotero 插件&#xff0c;Zotero 中文 CSL 样式 数…...

Hive 分桶表的创建与填充操作详解

Hive 分桶表的创建与填充操作详解 在 Hive 数据处理中&#xff0c;分桶表是一个极具实用价值的功能&#xff0c;它相较于非分桶表能够实现更高效的采样&#xff0c;并且后续还可能支持诸如 Map 端连接等节省时间的操作。不过&#xff0c;值得注意的是&#xff0c;在向表写入数…...

docker怎么commit tag push?

在 Docker 中&#xff0c;commit、tag 和 push 是用于创建和推送自定义镜像到仓库的三个不同步骤。以下是每个命令的详细说明和使用方法&#xff1a; ### 1. docker commit 当你对一个运行中的容器做了修改&#xff0c;并希望将这些修改保存为一个新的镜像时&#xff0c;可以使…...

全面替换VMware,南昌大学一卡通的硬核智慧

将一昼夜分为十二时辰 是古人的博大智慧 晨光熹微&#xff0c;门扉轻启&#xff0c;负笈而行 智慧校园的“十二时辰”启幕新章 一、数字南大&#xff1a;一卡通打卡校园十二时辰 时辰轮转&#xff0c;一时有一时的使命师生们是如何高效、便捷地度过每个时辰&#xff1f;一张充…...

SpringMVC ,ioc和aop

IOC和AOP IOC 控制反转&#xff0c;将应用程序的控制权交给spring容器管理&#xff0c;而不是应用程序本身 1.创建一个mapper&#xff0c;测试用&#xff0c; 就写个普通方法 public class UserMapper {public void addUser(){System.out.println("dao层新增");} …...

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…...

Ansys Maxwell:Qi 无线充电组件

Qi 无线充电采用感应充电技术&#xff0c;无需物理连接器或电缆&#xff0c;即可将电力从充电站传输到兼容设备。由 WPC 管理的 Qi 标准确保了不同无线充电产品之间的互操作性。以下是 Qi v1.3 标准的核心功能&#xff1a; Qi v1.3 标准的主要特点 身份验证&#xff1a;确保充…...

Neo4j 图数据库安装与操作指南(以mac为例)

目录 一、安装前提条件 1.1 Java环境 1.2 Homebrew&#xff08;可选&#xff09; 二、下载并安装Neo4j 2.1 从官方网站下载 2.1.1 访问Neo4j的官方网站 2.1.2 使用Homebrew安装 三、配置Neo4j 3.1 设置环境变量(可选) 3.2 打开配置文件(bash_profile) 3.2.1 打开终端…...

基于MFC绘制门电路

MFC绘制门电路 1. 设计内容、方法与难点 本课题设计的内容包括了基本门电路中与门和非门的绘制、选中以及它们之间的连接。具体采用的方法是在OnDraw函数里面进行绘制&#xff0c;并设计元器件基类&#xff0c;派生出与门和非门&#xff0c;并组合了一个引脚类&#xff0c;在…...

Gitee上获取renren-fast-vue install并run dev错误处理

目的&#xff1a;获取一个手脚架、越简约越好、越干净越好、于是看上了renren-fast-vue… 前端&#xff1a;vue2 后端&#xff1a;jdk1.8 mysql 5.7 SpringBoot单体架构 一开始只是下载前后端项目到本地&#xff0c;一堆乱七八糟的错误&#xff0c;网上找的资料也参差不齐… …...