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

【论文笔记】VGGT-从2D感知3D:pose估计+稠密重建+点跟踪

VGG组联合Meta改进了dust3r,输入图片,输出对应的一系列3D属性,被CVPR2025收录!

1.abstract

我们提出了VGGT,一种前馈神经网络,能够直接从场景的一个、几个或数百个视角推断出所有关键的3D属性,包括相机参数、点云图、深度图和3D点轨迹。VGGT不仅简单高效,能在不到一秒的时间内重建图像,而且在无需视觉几何优化技术后处理的情况下,仍然优于其他替代方案。该网络在多个3D任务中实现了最先进的成果,包括相机参数估计、多视角深度估计、密集点云重建和3D点跟踪。我们还展示了使用预训练的VGGT作为特征骨干网络,能显著提升下游任务的性能,如非刚性点跟踪和前馈式新视角合成。

2.introduction

DUSt3R [129]及其改进版MASt3R通过神经网络直接解决3D重建任务,几乎完全避免了几何后处理。但这些网络一次只能处理两张图像,并依赖后处理来重建更多图像,融合成对重建。

本文进一步推进了减少后处理中对3D几何优化的需求。我们提出了视觉几何基础Transformer(VGGT),这是一种前馈神经网络,能够从一个、几个甚至数百个场景输入视图中进行3D重建。VGGT预测包括相机参数、深度图、点云图和3D点轨迹在内的完整3D属性集,并在几秒钟内完成一次前向传递。

我们还表明,无需为3D重建设计特殊网络。VGGT基于一个相当标准的大型Transformer [119],没有特定的3D或其他归纳偏差(除了在帧间和全局注意力之间交替),但在大量带有3D注释的公开数据集上训练。因此,VGGT与自然语言处理和计算机视觉中的大型模型(如GPTs [1, 29, 148]、CLIP [86]、DINO [10, 78]和Stable Diffusion [34])构建方式相同。这些模型已成为多功能骨干,可以微调以解决新的特定任务。同样,我们展示了VGGT计算的特征可以显著增强下游任务,如动态视频中的点跟踪和新视角合成。

最近有几个大型3D神经网络的例子,包括DepthAnything [142]、MoGe [128]和LRM [49]。然而,这些模型只专注于单一的3D任务,如单目深度估计或新视角合成。而VGGT使用共享骨干网络预测所有感兴趣的3D量。我们证明了学习预测这些相互关联的3D属性可以提高整体准确性,尽管可能存在冗余。同时,我们展示了在推理过程中,可以从单独预测的深度和相机参数中导出点图。

3. Method

3.1问题设定

输入是N个RGB图片序列,VGGT的transformer是一个从图片序列到对应的一组3D属性的函数,对于每一张输入图片,输出相机内参和外参,深度图,点图,C点追踪维特征网格

1)相机参数

和SfM的框架一致,相机参数表示为,其中q为四元数,t为平移向量,f为视场角。

2)深度图

图像 ​ 的域定义为:

深度图定义为,是每一个像素对应的深度值,其中是像素位置。

3)点图

与dust3r一样,每一个像素对应一个3D点:, 3D 点 定义在第一个相机 g1​ 的坐标系中,将其作为世界参考系。

4)关键点跟踪

对于关键点跟踪,采用类似 Track-Any-Point [25, 57] 的方法。给定查询图像 ​ 中的一个固定查询点 ​,网络输出一个轨迹:

Transformer 并不直接输出轨迹,而是输出特征 。跟踪任务由一个单独的模块完成,该模块实现函数:

两个网络 f 和 T 是端到端联合训练的。

输入图像序列的顺序是任意的,但第一张图像被选为参考帧,

3.2. Feature Backbone

最近的研究表明,3D 深度学习可以通过减少对模型的先验假设(归纳偏置),让模型从大量 3D 标注数据中学习到更好的表示。因此,我们的模型 f 是一个基于 Transformer 的大型网络。

输入图像首先通过 DINO被变成一组 token ,所有帧的 token 被组合起来,输入主网络结构进行处理,交替使用帧内自注意力层和全局自注意力层。

标准 Transformer 使用全局自注意力,本文引入了交替注意力机制(Alternating-Attention)

帧内自注意力(frame-wise self-attention)分别关注每帧内的 token ​,而全局自注意力(global self-attention)则联合关注所有帧的 token ,这种设计在整合不同图像信息和归一化每帧内 token 激活之间取得了平衡。这样,我们的架构没有使用任何交叉注意力层,仅使用自注意力层

3.3. Prediction heads

在这里,我们描述模型 f 如何预测相机参数、深度图、点云图和点轨迹。首先需要小补一个知识点:

ICLR2024收录了一篇来自Meta和Inria的文章VISION TRANSFORMERS NEED REGISTERS,这篇文章主要针对ViT在处理图像时的局限性提出了一种新的改进方法——“registers”(寄存器)

ViT的一个局限:ViT在处理图像时,某些区域(如背景或边缘)可能缺乏足够的信息,导致模型在这些区域的注意力分配不够合理。这种信息稀疏性可能影响模型的整体性能,尤其是在处理复杂场景时Registers是一种额外的可学习参数,类似于Transformer中的特殊token(如[CLS] token)。它们被添加到输入序列中,用于捕捉图像中未被充分利用的信息(如背景或边缘)。提供额外的“存储空间”,帮助模型更好地处理信息稀疏的区域。增强模型对全局和局部信息的整合能力,提升特征提取效果。

具体的做法是:在ViT的输入序列中引入一组可学习的registers。这些registers与图像patches一起输入到Transformer中,参与自注意力机制的计算。Registers在训练过程中通过反向传播优化,逐渐学会捕捉图像中的有用信息。它们不依赖于特定图像内容,而是通用的辅助特征

现在我们回到主题,关注于网络的head,先来介绍一些架构内的设置:

加入寄存器:首先,对于每张输入图像,为其对应的图像 token 添加一个额外的相机 token 和四个寄存器 token,然后拼接起来送入AA中,得到输出token ,前面也提到过,我们要把第一帧图片的相机坐标系作为模型的世界坐标系,所以为了区别第一帧,第一帧的相机 token 和寄存器 token设置为,其他帧为,经过优化以后,每一帧的相机token和寄存器都是特定的,然后根据上述论文,结束训练以后丢弃寄存器,使用进行预测。

对于坐标系,我们使用了第一帧图片的相机坐标系作为模型的世界坐标系,因此第一帧的旋转四元数与平移为,相机和寄存器token为

接下来,我们还是和3.1一样,按照输出来一个一个解释:

1)相机pose

相机参数 ​ 通过输出的相机 token ​ 预测得到,这个camera head是四个额外的自注意力层和一个线性层。

2)深度图与pointmap

首先通过 DPT 层 [87] 转换为密集特征图,然后,每个  通过一个 3×3 卷积层映射到对应的深度图和点图 ,我们还为每个深度图和点云图分别预测了随机不确定性,不确定性图用于损失函数中,并且在训练后与模型对预测的置信度成正比。

3)点跟踪

同3.1中提到的,点跟踪是另外一个网络,但是我们先要得到特征,在2)中,DPT 头还输出密集特征,作为跟踪头的输入,给定查询图像  中的一个查询点 

跟踪头  预测所有图像 ​ 中与  对应的 2D 点集,这个过程是,使用 CoTracker2 架构通过相关性计算和自注意力层预测查询点在其他图像中的对应点。

我们的跟踪器不假设输入帧的任何时间顺序,因此可以应用于任何输入图像集,而不仅仅是视频。

3.4. Training

我们使用多任务损失端到端训练 VGGT:

我们发现相机损失、深度损失和点图损失的范围相似,因此不需要额外加权。跟踪损失的 λ=0.05。

1)pose损失

使用Huber 损失:

2)深度与点图loss

遵循 DUSt3R [129],通过预测的不确定性图加权计算了各自loss,实现了基于随机不确定性的损失:

3)点跟踪loss

训练配置

数据集包括:Co3Dv2 [88]、BlendMVS [146]、DL3DV [69]、MegaDepth [64]、Kubric [41]、WildRGB [135]、ScanNet [18]、HyperSim [89]、Mapillary [71]、Habitat [107]、Replica [104]、MVS-Synth [50]、PointOdyssey [159]、Virtual KITTI [7]、Aria Synthetic Environments [82]、Aria Digital Twin [82] 以及一个类似于 Objaverse [20] 的艺术家创建的合成数据集。这些数据集涵盖了各种领域,包括室内和室外环境,并包含合成和真实场景。这些数据集的 3D 注释来自多种来源,例如直接传感器捕获、合成引擎或 SfM 技术 [95]。

使用 L=24 层全局和帧内注意力。模型总共包含约 12 亿个参数。输入帧、深度图和点云图的最大尺寸调整为 518 像素。训练在 64 个 A100 GPU 上运行,耗时 9 天。我们使用梯度范数裁剪,阈值为 1.0,以确保训练稳定性。利用 bfloat16 精度和梯度检查点来提高 GPU 内存和计算效率。

4.实验

4.1pose估计

使用标准指标 AUC@30,结合 RRA(相对旋转精度) 和 RTA(相对平移精度)。VGGT 的预测结果(相机姿态、点云图和深度图)可以作为 捆绑调整(BA) 的良好初始化,从而进一步提升精度。结合 BA 后,VGGT 的优化时间仅需 2 秒,远快于传统方法(如 [125] 中的三角测量和迭代优化)。尽管 VGGT 的前馈模式已经优于所有现有方法,但后优化仍能带来进一步的性能提升

4.2. Multi-view Depth Estimation

使用 DTU 标准指标,包括:Accuracy、Completeness、OverallVGGT 的 多图像训练方案 使其能够自然地推理多视角三角测量,而不是像 DUSt3R 那样依赖临时的对齐操作(如平均多个成对相机三角测量结果)。这种设计使 VGGT 在多视角深度估计任务中表现出色

4.3. Point Map Estimation

在ETH3D 数据集 上进一步评估了 VGGT 在点云预测任务中的性能,并与 DUSt3R 和 MASt3R 进行了对比,如表 3 和图 4 

4.4. Image Matching

 ScanNet 数据集 上评估了 VGGT 在 两视图图像匹配任务的性能,

两视图图像匹配是计算机视觉中的一个经典问题,属于刚性点跟踪的特例(仅限于两个视图)。尽管 VGGT 并非专门针对此任务设计,但它仍可作为评估跟踪精度的基准。对每对图像提取匹配点,并使用这些匹配点估计本质矩阵(Essential Matrix),进而完成相机标定,即SVD得到相对相机姿态。

最终指标是相对pose精度,通过 AUC 衡量。尽管 VGGT 未针对两视图匹配任务进行专门训练,但其在 ScanNet 数据集 上的表现优于所有基线方法,取得了最高的精度

5. Discussions

当前模型仅适用于常规视角图像,无法处理鱼眼或全景图像。并且当输入图像存在极端旋转时,重建性能会显著下降。然模型能够处理轻微的非刚性运动,但在显著非刚性变形(如大幅度的物体形变)场景中表现不佳。

改进方法

模型架构设计灵活,能够通过微调和最小限度的修改适应新的场景或任务。通过在目标数据集上微调模型,可以解决上述局限性,而无需对架构进行大规模修改。

相关文章:

【论文笔记】VGGT-从2D感知3D:pose估计+稠密重建+点跟踪

VGG组联合Meta改进了dust3r,输入图片,输出对应的一系列3D属性,被CVPR2025收录! 1.abstract 我们提出了VGGT,一种前馈神经网络,能够直接从场景的一个、几个或数百个视角推断出所有关键的3D属性,…...

【大模型系列篇】硅基智能开源数字人模型HeyGem.ai,开启数字人时刻

硅基智能开源数字人模型HeyGem.ai, 1秒克隆生成4K视频, 支持离线多语言, 开源72小时狂揽1.3k星, 目前已经获得3.4k星。 硅基智能正式宣布在GitHub开源全球TOP级数字人模型,同时发布基于该模型的同名数字人工具硅基数字人克隆的本地安装包,这一举措标志着…...

腾讯云容器集群:节点可以访问公网,节点内的pod无法访问公网

腾讯云容器集群:节点可以访问公网,节点内的pod无法访问公网 curl https://www.baidu.com/index.htm参考链接:https://cloud.tencent.com/document/product/457/50356 sysctl -a|grep net.ipv4.conf.all.rp_filter sysctl -a|grep net.ipv4.c…...

Winform优化控件布局性能 SuspendLayout 和 ResumeLayout 方法详解

在Winform中,SuspendLayout 和 ResumeLayout 方法用于优化控件布局性能,适用于批量修改控件属性或动态调整控件时的场景。以下是具体使用方法和注意事项: 一、基本用法‌ 1‌.调用 SuspendLayout()‌ 在开始批量修改控件前,调用…...

基于Netty实现高性能HTTP服务的架构解析

一、HTTP协议基础 1.1 HTTP协议概述 HTTP(HyperText Transfer Protocol)作为现代Web应用的基石,是基于TCP/IP的应用层协议,具有以下核心特性: 请求/响应模型:客户端发起请求,服务端返回响应无…...

Sqlite下载、安装与数据库创建

Sqlite官网 https://www.sqlite.org/index.html 官方文档链接 https://www.sqlite.org/docs.html 官方文档是英文版的,如果想看中文的文档请参考 **菜鸟教程** 网站中的 **《Sqlite教程》:https://www.runoob.com/sqlite/sqlite-tutorial.html 官方下载…...

内网环境安装dlv,本地远程调试go

背景:内网环境(服务器)下安装dlv,本地通过dlv调试编译后的go代码。 可以配合观看: 【dlv远程调试-哔哩哔哩】 https://b23.tv/NqPZ5q9 内网安装dlv步骤 1、dlv安装: (我额服务器和内网的go都是1.21以上) # 先在有网络的环境下&#xff08…...

【使用 Element UI 实现手动上传文件:FormData 追加文件和其他参数,支持单文件覆盖上传】

在开发 Web 应用时,文件上传是一个常见的需求。Element UI 提供了强大的 el-upload 组件,可以轻松实现文件上传功能。本文将详细介绍如何使用 Element UI 实现以下功能: 手动触发文件上传:用户选择文件后,点击按钮手动…...

python基础8 单元测试

通过前面的7个章节,作者学习了python的各项基础知识,也学习了python的编译和执行。但在实际环境上,我们需要验证我们的代码功能符合我们的设计预期,所以需要结合python的单元测试类,编写单元测试代码。 Python有一个内…...

第四节:sqlx库使用指南

在项目中我们通常可能会使用database/sql连接MySQL数据库。本文借助使用sqlx实现批量插入数据的例子,介绍了sqlx中可能被你忽视了的sqlx.In和DB.NamedExec方法。 sqlx介绍 在项目中我们通常可能会使用database/sql连接MySQL数据库。sqlx可以认为是Go语言内置datab…...

麒麟操作系统作为服务器,并且需要在浏览器上调试 MATLAB

在内网环境下,使用麒麟操作系统作为服务器,并且需要在浏览器上调试 MATLAB 程序,这确实复杂,但仍然有可行的解决方案。麒麟操作系统是国产化的 Linux 发行版(如基于 Ubuntu Kylin 或银河麒麟),因…...

在线教育网站项目第四步:deepseek骗我, WSL2不能创建两个独立的Ubuntu,但我们能实现实例互访及外部访问

一、说明 上一章折腾了半天,搞出不少问题,今天我们在deepseek的帮助下,完成多个独立ubuntu24.04实例的安装,并完成固定ip,实践证明,deepseek不靠谱,浪费我2个小时时间,我们将在下面实…...

AI安全、大模型安全研究(DeepSeek)

DeepSeek 点燃AI应用革命之火,但安全 “灰犀牛” 正在逼近 DeepSeek-R1国产大模型的发布,以技术创新惊艳了全球,更是极致的性价比推动国内千行百业接入 AI,政府、企业竞速开发智能业务处理、智能客服、代码生成、营销文案等应用,“落地效率” 成为第一关键词。然而与此相…...

(hash表+vector 数位和相等数对的最大和)leetcode 2342

一定要断点调试看看数据对不对的上!!!不然很容易弄不清楚值和下标 这个题意思是在nums中找出相同数位和的值 如 数位和为7 nums中符合要求的有 43,7 在这些数中选两个相加取最大值,再与其他数位和取得的相加最大值比…...

正则表达式引擎深入探讨

正则表达式引擎(Regular Expression Engine)是正则表达式得以“活起来”的核心。它是一个精密的软件组件,负责接收正则表达式和输入文本,解析模式并执行匹配或替换操作,最终输出结果——可能是简单的“是否匹配”&…...

[蓝桥杯 2023 省 B] 飞机降落(不会dfs的看过来)

[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti​ 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D i D_{i} Di​ 个单位时间,即它最早可以于 T i T_{i} Ti​ 时刻…...

DockerTLS加密/不加密传输

前言: 在Docker容器的网络通信中,安全性是至关重要的。DockerTLS作为一种加密传输协议,通过为Docker守护进程与客户端之间的通信提供加密层,有效防止数据在传输过程中被窃取或篡改。然而,在某些特定场景下,…...

基于微信小程序的充电桩管理系统

一、开发背景 在开发充电汽车管理系统之前,深入的需求分析至关重要。我们要充分了解不同用户群体的需求,比如私家车主希望充电过程便捷、高效、安全,能够实时查看充电状态和费用明细;出租车、网约车司机则更注重充电速度和充电桩…...

Excel导出工具类--复杂的excel功能导出(使用自定义注解导出)

Excel导出工具类 前言: 简单的excel导出,可以用easy-excel, fast-excel, auto-poi,在导出实体类上加上对应的注解,用封装好的工具类直接导出,但对于复杂的场景, 封装的工具类解决不了,要用原生的excel导出(easy-excel, fast-excel, auto-poi都支持原生的) 业务场景: 根据…...

创新实训项目初始化——gitee的使用

创新实训项目管理采用gitee,写下这篇博客熟悉gitee进行项目创建和版本同步 一、gitee概述 Gitee 是一个基于 Git 的代码托管平台,与 GitHub 类似,Gitee 提供了丰富的功能,比如代码仓库的创建、分支管理、代码审查等。 二、gite…...

【原创】使用ElasticSearch存储向量实现大模型RAG

一、概述 检索增强生成(Retrieval-Augmented Generation,RAG)已成为大型语言模型(LLM)应用的重要架构,通过结合外部知识库来增强模型的回答能力,特别是在处理专业领域知识、最新信息或企业私有数…...

Gymnasium Cart Pole 环境与 REINFORCE 算法 —— 强化学习入门 2

Title: Gymnasium Cart Pole 环境与 REINFORCE 算法 —— 强化学习入门 2 文章目录 I. Gymnasium Cart Pole 环境II. REINFORCE 算法1. 原理说明2. REINFORCE 算法实现 I. Gymnasium Cart Pole 环境 Gymnasium Cart Pole 环境是一个倒立摆的动力学仿真环境. 状态空间: 0: Ca…...

响应式数据 和 Pinia 状态

响应式数据 和 Pinia 状态 是 Vue.js 应用中用于管理数据的两种重要机制,它们之间有密切的关系。以下是它们的定义、特点以及关系: 1. 响应式数据 定义 响应式数据 是 Vue.js 的核心特性之一,指的是当数据发生变化时,视图会自动…...

在大数据开发中hive是指什么?

hello宝子们...我们是艾斯视觉擅长ui设计和前端数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在大数据技术的浩瀚星空中,Apache Hive犹如一座桥梁,连接着传统数据仓库理念…...

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年,全靠夜以继日的勤奋,一天当两天用,抠论文 抠代码 和大模型及具身同事讨论,是目前日常 而具身库里,idp3、π0、lerobot值得反复研究,故,近期我一直在抠π0及l…...

Python生成requirements.txt的两种方法

Python生成requirements.txt的两种方法 方法一:导出当前环境的依赖包 使用pipreqs --encodingutf8为使用utf8编码,避免编码报错 --force 强制执行覆盖生成目录下的requirements.txt # 安装 python3 -m pip install pipreqs # 在当前目录生成 pipreqs . …...

如何判断 MSF 的 Payload 是 Staged 还是 Stageless(含 Meterpreter 与普通 Shell 对比)

在渗透测试领域,Metasploit Framework(MSF)的 msfvenom 工具是生成 Payload(载荷)的核心利器。然而,当我们选择 Payload 时,经常会遇到一个问题:这个 Payload 是 Staged(…...

HTML5与CSS3新特性详解

一、HTML5新特性 1.概述 HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持,如果不考虑兼容性问题,可以大量使用这些新特…...

Redis常用进阶 存储原理和主从思路

Redis常用进阶 存储原理和主从思路 简介 此篇用于需要时随时查阅的知识. 由于不断的学习总是会忘记一些 所以用于记录 笔记对应视频为黑马redis https://www.bilibili.com/video/BV1Pu411Y7bq 单点redis的问题 : 数据丢失问题 持久化并发能力弱 主从集群存储能力问题 ES故…...

本地部署DeepSeek-R1(Dify升级最新版本、新增插件功能、过滤推理思考过程)

下载最新版本Dify Dify1.0版本之前不支持插件功能,先升级DIfy 下载最新版本,目前1.0.1 Git地址:https://github.com/langgenius/dify/releases/tag/1.0.1 我这里下载到老版本同一个目录并解压 拷贝老数据 需先停用老版本Dify PS D:\D…...

分治-快速排序系列一>快速排序

目录 题目方法:优化方法:代码: 题目方法: 忘记快速排序看这里:链接: link 优化方法: 代码: public int[] sortArray(int[] nums) {qsort(nums,0,nums.length-1);return nums;}private void qso…...

【spring对bean Singleton和Prototype的管理流程】

在 Spring 框架中,Bean 的作用域决定了 Bean 的生命周期和创建方式。Spring 支持多种作用域,其中最常用的是 单例(Singleton) 和 原型(Prototype)。以下是 Spring 对单例和原型 Bean 的管理流程详解&#x…...

【Java】grpc-java在IDEA中build不成功的相关问题,Android,codegen C++语言排除

一、解决Android依赖问题 在当前grpc-java项目根目录下创建gradle.properties文件,输入以下内容: skipAndroid=true或者 android.useAndroidX=true二、com.google.cloud.tools.appengine插件找不到的问题 Plugin [id: ‘com.google.cloud.tools.appengine’, version: ‘…...

十七、实战开发 uni-app x 项目(仿京东)- 后端指南

前面我们已经用uniappx进行了前端实战学习 一、实战 开发uni-app x项目(仿京东)-规划-CSDN博客 二、实战 开发uni-app x项目(仿京东)-项目搭建-CSDN博客 三、实战开发 uni-app x 项目(仿京东)- 技术选型-CSDN博客 四、实战开发 uni-app x 项目(仿京东)- 页面设计-C…...

SpringSecurity——基于角色权限控制和资源权限控制

目录 基于角色权限控制 1.1 自定义 UserDetailsService 1.2 加载用户角色 1.3. 给角色配置能访问的资源(使用切面拦截,使用注解) 总结 资源权限控制 2.2. 需要有一个用户;(从数据库查询用户) 2.2 基…...

经历过的IDEA+Maven+JDK一些困惑

注意事项:由于使用过程中是IDEA绑定好另外2个工具,所以报错统一都显示在控制台,但要思考和分辨到底是IDEA本身问题导致的报错,还是maven导致的 标准配置 maven Java Compiler Structure 编辑期 定义:指的是从open pr…...

基于Arduino控制的温室蔬菜园环境监控系统(论文+源码)

2.1系统总体方案设计 本课题为基于Arduino控制的温室蔬菜园环境监控系统,在硬件上结合Arduino 控制器,土壤湿度传感器,ESP8266模块,环境温湿度传感器,光敏电阻,液晶等来构成整个系统,其可以实现…...

关于HAL库的知识1----MSP函数

在 HAL 库中,大部分外设在初始化时都会调用一个对应的 MSP 初始化函数,这个函数的主要作用就是配置与外设相关的底层硬件资源,比如时钟、GPIO、中断、DMA 等。常见的外设及其对应的 MSP 函数包括: UART/USART:对应 HA…...

QT 磁盘文件 教程04-创建目录、删除目录、遍历目录

【1】新建目录 bool CreateDir(QString name){QString fileName name ;QDir dir(fileName);if (dir.isEmpty()) {dir.mkdir(fileName);return true;}else{qDebug()<<"文件夹已存在";return false;} } 【2】删除目录 bool DeleteDir(QString fileName){if (…...

高级java每日一道面试题-2025年3月06日-微服务篇[Eureka篇]-Eureka Server和Eureka Client关系?

如果有遗漏,评论区告诉我进行补充 面试官: Eureka Server和Eureka Client关系? 我回答: 在微服务架构中&#xff0c;Eureka作为Netflix开源的服务发现组件&#xff0c;由Eureka Server&#xff08;服务端&#xff09;和Eureka Client&#xff08;客户端&#xff09;两大部分…...

MAC-在使用@Async注解的方法时,分布式锁管理和释放

在使用 @Async 注解的异步方法中管理分布式锁时,需要特别注意 ​锁的获取、释放与异步执行的生命周期匹配。以下是结合 Spring Boot 和 Redis 分布式锁的实践方案: 1. 为什么需要分布式锁? 异步方法可能被多个线程/服务实例并发执行,若访问共享资源(如数据库、缓存),需…...

Kafka 八股文

一、基础概念 1. Kafka 是什么&#xff1f;它的核心组件有哪些&#xff1f; Kafka 的定义 Kafka 是一个 分布式流处理平台&#xff0c;最初由 LinkedIn 开发&#xff0c;后成为 Apache 顶级项目。它主要用于 高吞吐量的实时数据流处理&#xff0c;支持发布-订阅模式的消息传递…...

现代前端开发框架对比:React、Vue 和 Svelte 的选择指南

引言 在当今快速发展的 Web 开发领域&#xff0c;前端框架的选择往往直接影响项目的开发效率、维护成本和用户体验。React、Vue 和 Svelte 作为当前最受关注的三大框架&#xff0c;各自拥有独特的设计哲学与技术实现。本文将通过 5000 字的深度解析&#xff0c;从架构设计、开…...

ffmpeg(库编译) 01 搭建环境和安装依赖

创建目录在home目录下创建 ffmpeg_sources:用于下载源文件 ffmpeg_build: 存储编译后的库文件 bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等) mkdir ffmpeg_sources ffmpeg_build bin安装依赖 先执行sudo apt-get update进行更新,再往下走sudo apt-get -…...

Java后端开发技术详解

Java作为一门成熟的编程语言&#xff0c;已广泛应用于后端开发领域。其强大的生态系统和广泛的支持库使得Java成为许多企业和开发者的首选后端开发语言。随着云计算、微服务架构和大数据技术的兴起&#xff0c;Java后端开发的技术栈也不断演进。本文将详细介绍Java后端开发的核…...

Python高级:GIL、C扩展与分布式系统深度解析

文章目录 &#x1f4cc; **前言**&#x1f527; **第一章&#xff1a;Python语言的本质与生态**1.1 **Python的实现与版本演进**1.2 **开发环境与工具链** &#x1f527; **第二章&#xff1a;元编程与动态特性**2.1 **描述符协议&#xff08;Descriptor Protocol&#xff09;*…...

数学之握手问题

问题描述 小蓝组织了一场算法交流会议&#xff0c;总共有 50人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。但有 7 个人&#xff0c;这 7 人彼此之间没有进行握手 (但这 7 人与除这 …...

【Nodejs】2024 汇总现状

之前已经调研了容器、nexus-public&#xff0c;实现了本地构建应用镜像和基础设施的镜像。为实现分布式一体化协作开发的目标&#xff0c;还需要配套的线上协作开发环境。故而重回前端调研现状&#xff0c;比较 5 年前的 nodejs 快好的啊。 以下是针对 Node.js 工具链的深度解析…...

人工智能之数学基础:矩阵的降维

本文重点 在现实世界中,我们经常会遇到高维数据。例如,图像数据通常具有很高的维度,每个像素点都可以看作是一个维度。高维数据不仅会带来计算和存储上的困难,还可能会导致 “维数灾难”,即随着维度的增加,数据的稀疏性和噪声也会增加,从而影响数据分析的效果。因此,我…...

数仓开发那些事(10)

某神州优秀员工&#xff1a;&#xff08;没错&#xff0c;这个diao毛被评为了优秀员工&#xff09;一闪&#xff0c;听说你跑路了&#xff0c;不做零售行业了 一闪&#xff1a;没错&#xff0c;老东家的新it总监上任后大家都开始躺平&#xff0c;失去了当年的动力&#xff0c;所…...