【论文笔记】SmileSplat:稀疏视角+pose-free+泛化
还是一篇基于dust3r的稀疏视角重建工作,作者联合优化了相机内外参与GS模型,实验结果表明优于noposplat。
abstract
在本文中,提出了一种新颖的可泛化高斯方法 SmileSplat,可以对无约束(未标定相机的)稀疏多视图图像的不同场景,进行像素对齐级别的高斯面元重建。 首先,基于 多头 高斯 回归 解码器 预测高斯面元,它可以用较小的自由度表示,但具有更好的多视图一致性。 此外,我们基于高质量的法向先验,增强了高斯面元的法向向量。 其次,基于所提出的Bundle-Adjusting高斯泼溅模块,对高斯和相机参数(外参和内参)进行优化,以获得用于新颖视图合成任务的高质量高斯辐射场。 在公共数据集上对新颖的视图渲染和深度图预测任务进行了广泛的实验,证明所提出的方法在各种 3D 视觉任务中实现了最先进的性能。
1.Introduction
当使用稀疏视角图像(例如仅两三张图像)进行三维重建时,SFM在准确估计3D点元和相机参数方面变得非常困难。这个问题在低纹理场景或快速相机运动中尤为明显,有限的图像数量无法为常规优化技术提供足够的约束条件。
为了提高稀疏视图任务中新视角渲染的性能,这一领域中探索了通用(可泛化)的高斯方法。这些方法可以根据是否需要相机参数作为输入分为两类:需要相机参数的方法(CamPara-Required)和不需要相机参数的方法(CamPara-Free)。
对于CamPara-Required方法,给定相机的真实pose和内参,网络预测的3D高斯点[4, 6]被渲染到新视角。为了生成准确的高斯基元,神经多头解码器首先预测深度(点云)、协方差和不透明度值。然后,使用一个forwardmap渲染模块来优化初始的高斯参数。为了进一步减少对相机参数的依赖, Dust3R[38]和Mast3R[21]等网络在标准系统中预测点云而不是深度图。这些点云被用来初始化3D高斯点[instantsplat],之后再获得相机姿态。然后,通过高斯点绘制模块[20]优化高斯参数。由于这两个模块是分开的,因此需要额外的迭代来训练适用于这些场景的3D高斯点。
CamPara-Free方法在应用时更为便捷,因为它们不需要初始化步骤。然而,这些开创性的CamPara-Free方法倾向于直接将基于预测点云的相机标定与高斯点绘制模块集成在一起,这限制了通用可泛化高斯辐射场进一步实现高质量的效果。
我们提出了一种新的通用GS架构,如图2所示,旨在实现不受约束的稀疏视图图像的高保真新视角渲染性能。首先,通过forward神经网络预测高斯表面元(Gaussian surfels)(因为这里是高斯面元,所以只需要坐标点控制高斯中心,尺度控制大小,法线控制朝向,与3D的高斯基于需要协方差控制方向不一样),该网络利用标准的transformer encoder(Siamese ViT en-
coders [8] and cross-attention embedding blocks)从图像中检测几何先验信息。这些深度先验信息以及图像随后被输入到我们提出的多头高斯回归解码器中,以预测在标准坐标系中像素对齐的、通用的3D高斯表面元参数。
此外,我们基于初始的3D高斯表面,考虑几何和光度约束来估计相机的内参矩阵。据我们所知,我们的方法是第一个不需要预定义内参就能渲染图像的方法。接下来,根据估计的高斯表面元预测图像之间的相对外参矩阵。为了提高预测高斯表面元的一致性,我们提出了一种GS Bundle Adjustment方法,进一步优化高斯参数、内参和外参。这种优化基于光度和几何约束,使我们能够为不受约束的稀疏图像建立缩放的高斯辐射场。
作者的贡献如下:
1. 我们提出了一种用于相机未标定和无pose的稀疏视图图像的通用通用高斯泼溅架构。
2.分析了基于Gaussian Splatting的相机参数优化模块,实现稀疏图像的精确运动估计。
3. 提出了一种GS Bundle Adjustment方法来产生高质量和尺度的高斯辐射场。
2. Related Work
这个Related Work写的不错,这里纯翻译过来了,应该多看看。
辐射场在3D视觉领域中因其能够从任意视角生成物体或场景的新视角图像而受到广泛关注。神经辐射场(NeRF)[26]是其中开创性和最著名的方法之一,通过使用多层感知器(MLPs)隐式表示3D场景,能够高效地渲染高质量的新视角图像。然而,NeRF的训练和推理速度较慢。后续的研究[2, 3]主要集中在提高渲染质量或提升计算效率上。最近的进展引入了显式的体积结构,例如多分辨率体素网格[12, 37]或哈希函数[27],以改善性能。尽管有所改进,但逐像素光线行进仍然是渲染速度的瓶颈,这在需要实时地图交互的SLAM应用中是一个关键问题。
相比之下,3D高斯点绘制(3DGS)[20]使用各向异性的3D高斯点来表示辐射场,并结合可微分点绘制进行渲染。这种方法在快速重建复杂的真实场景并捕捉高频细节方面表现出色。通过遍历光栅化的基元而不是沿着光线进行行进,3DGS利用了3D场景的自然稀疏性,提供了高保真表示和高效渲染之间的平衡。各种研究已将3D高斯点和可微分渲染应用于静态场景捕捉[7, 43],最近的研究则在动态场景捕捉中展示了更优异的结果。
通用/可泛化GS。类似于多视角立体任务,当仅有有限重叠的两张图像输入3D高斯点绘制系统时,会出现几个新的挑战,因为传统的高斯点绘制系统[20]需要大量图像作为输入。SparseGS[42]通过使用扩散网络来去除离群点和不同类型的渲染深度图来检测漂浮物,解决了这些挑战。与依赖从COLMAP[13]或SLAM系统[22]生成的初始点云不同,MVSplat[6]和COLMAP-free GS[13]估计目标和源RGB图像的深度图,然后将这些深度值转换为点云,并基于这些点云初始化高斯椭球的均值向量。得益于Dust3R[38]的点云,InstantSplat[11]的高斯点绘制过程相比MonoGS[25]中随机生成的点云更为高效。基于Dust3R中估计的相机参数,InstantSplat在渲染过程中优化3D高斯点和相机姿态。然而,模块的分离意味着错过了进一步加速高斯点绘制收敛的机会。
与InstantSplat通过Dust3R预测的点云估计相机参数不同,pixelSplat[4]直接预测3D高斯点,这些高斯点在使用真实相机参数的高斯点绘制光栅化中定义。最近,一些无需姿势的新型视图渲染方法[45]使用PnP算法[15]和高斯点绘制SLAM方法[25]估计和优化相机姿态,同时将内参参数嵌入到深特征标记中,以合理比例预测场景。
与这些方法不同,我们的方法为未标定和无姿态的图像预测3D高斯点,并基于预测的高斯点估计未知的相机参数。所有这些估计的参数和表示然后通过束调整高斯点绘制模块进行优化,以建立高保真的辐射场。
3. Methodology
3.1. Gaussian Surfel Prediction
作者主要使用高斯表面来表达场景,主要原因有两个:一是,高斯模型的多视角一致性很难保证,所以在这个意义上来说,原始的3D的高斯模型并不适合稀疏重建;二是在旋转矩阵方面,高斯曲面涉及的参数更少,更重要的是,与协方差矩阵相比,它们更容易训练,因为可以利用几个健壮的大型语言模型[1]来训练这个头部。
1.问题设定
先介绍概念,细节问题后续解释,3D高斯表面通过12个值进行参数化,包括颜色
,位置
,尺度
,法向量
,不透明度
:
高斯表面基元的协方差矩阵定义为:
在
的大圆上,
=
,
表示对角矩阵。
细节1. 在
的大圆上,何为大圆?其实就是xyz坐标系中,垂直于
的一圈向量围成的圆面
细节2.关于公式2的一些理解
2.神经网络架构
我们使用了基于Dust3R百万级图像的预训练模型,其中多视角立体图像I1和I2送入两个共享权重的VIT[8]编码器。然后,使用self-attention and cross-attention来处理图片token。最后分别用4个head来得到高斯面元的各个属性。
多头高斯回归decoder:我们通过估计4个独立的head包括位置,尺度向量s,表面法向量n,不透明度o,在
的坐标系下预测3D高斯(这里注意盯住前面的公式1,少了高斯面元的颜色),为了减少参数规模,高斯面元的颜色直接使用投影到的像素上面对应的颜色来表示。接下来,我们看每一个block的具体计算:
输出位置P的head:主要靠一个偏移量来表示,就是说,当前预测的P等于前面一步预测的P加上一个偏移量,
是通过Dust3R网络的pointmap和encoder embeddings输入3层的MLP得到的。
输出法线n的head:我们采用了一种U-Net结构,根据输入图像和深度embeddings来预测每个像素的表面法线,首先,我们把这篇工作作为teacher model【Rethinking inductive
biases for surface normal estimation】,首先使用它的预训练权重得到一个法向量,然后来使用它作为监督:
输出不透明度的head:偏移量低的点更有可能位于精确的表面上,因此应该具有更高的不透明度。因此,我们通过来自backbone的深度feature(注意Dust3R的pointmap本来就是和深度强绑定的),和来自位置偏移量head的feature,来共同预测出每一个3D高斯的不透明度。
输出尺度的head:对于尺度,根据前面的定义,在2层的mlp中输入pointmap和深度embeddings得到。
现在我们得到了尺度矩阵,然后我们根据上面得到的表面法线得到旋转矩阵R,由公式2,我们可以计算出高斯基元的协方差矩阵,也就是形状。
3.2 Camera Parameter Optimization Based on a Single View
1.相机内参估计
由于预测的高斯点与输入图像的像素对齐,并且位于第一幅图像的坐标系中,因此可以将它们视为处于相机坐标系中。因此,未知参数是内参矩阵,可以通过该公式进行优化:
,
表示图片坐标(u,v)上的像素GT像素值,
表示初始化的3D高斯表面
通过相机内参K渲染的图片。W,H分别是图片的宽高。
因为现在是在图像I1的相机坐标系下,所以,在渲染的时候,我们无需考虑world2camera变换,直接使用相机内参即可,这就是第一段提到的,直接在相机坐标系下使用3D高斯渲染来优化相机内参。也就是说,我们在第一个图片的坐标系下,估计相机内参。
论文中这里还列出了cuda里面求导的公式,非常详细,里面包含了高斯表面到2D图像的各种变换,当然了,反向传播其实就是链式偏导的公式,大家可以详细看看。
2.外参(pose)估计
在传统的相机位姿估计方法中 [28, 33],常见的方法是将 3D 点云从世界坐标重新投影回图像平面以进行相机跟踪。 然而,在本节中,我们介绍基于预测的高斯面元的相机姿态估计策略。
我们先根据上面的公式优化了内参,然后顺便通过下面的公式,在第一个图片的坐标系下,迭代优化与第二张图片的相对位姿变换:
其中,,
是GT,其实就是通过第一张图到第二张图的相对pose来渲染3D高斯表面,然后这个渲染图和GT之间的loss反向传播来优化pose,也就是公式中的T。
3.3. Bundle-Adjusting Gaussian Splatting
获得初始相机内参和相对相机位姿(第 3.2 节)后,使用 alpha blending算法将高斯面元光栅化为相应的深度图 D1 和 D2。 使用以下变形操作将第二视点的深度图 D2 变换到第一视点:
其中,Π(·)表示使用估计的内参矩阵K和相对相机pose T 将深度贴图D2从第二相机视图投影到第一相机视图的变换。
然后,建立基于深度的几何约束以强制高斯辐射场在几何方面更好的多视图一致性:
渲染图像和GT之间的loss:
为了联合优化输入稀疏视图的缩放辐射场,包括高斯面元以及相机内在和外在参数,我们定义了一个综合损失函数来监督细化过程:
其中 λ1、λ2 和 λ3 是平衡各个损失项的贡献的加权参数。 这种联合优化允许同时细化高斯面元、相机内在因素和外在因素,从而提高稀疏视图辐射场重建的整体性能。联合迭代优化的细节如下:
4. Experiments
4.1 baseline
在新的视图合成任务中,将最新的方法与所提出的方法进行比较,将其分为两类,其中第一组方法,包括PixelNeRF[47]、AttnRend[9]、PixelSplat[5]和MVSplat[6],在其训练和测试过程中需要相机参数,而第二组方法DUSt3R[38]、MASt3R[21]、Splatt3R[35]和NoPoSplat[45]具有估计内外参的能力。
我们在两个大规模数据集上对所提出的方法进行了评估。第一个数据RealEstate10K(Re10K)[50]是从YouTube上的房地产序列中收集的。基于训练/测试分割,数据集分别包含29,144个用于训练的场景和7286个用于测试的场景。第二个数据集ACID[24]侧重于从无人机视角收集的自然场景。为了评估提出的方法的重建能力,我们进一步评估了其他数据集上的训练模型,包括Replica[36](包含多个室内场景的高分辨率图像、深度图以及精确的相机姿态和内参信息。每个场景都是通过 RGBA 摄像头捕捉的,并且数据集中还包括了每幅图像的点云表示)和ICL-NUIM[14]。
为了进行定量评估,我们报告了渲染效果 使用标准图像质量指标的性能,包括PSNR,SSIM和LPIPS。 前两个指标(PSNR 和 SSIM)评估渲染图像和观察图像之间的颜色相似性和结构相似性。 第三个指标 LPIPS,使用预先训练的神经网络(例如 VGG-Net [34])提取的特征来比较两个图像之间的特征级相似性。为了分析渲染性能与输入图像视角重叠程度的关系,基于密集特征匹配方法计算了两个输入图像之间的视觉重叠γ[10]。然后,按照[45]的方法,将重叠程度分为三个级别:小(γ≤0.3%)、中(0.3%≤γ≤0.55%)和大(γ≥0.55%)。
4.2 NVS
如表 1 所示,在新颖的视图渲染任务中,与最先进的方法(CamPara-Free 和 CamPara-Required)进行了比较。 对于 CamPara-Required,gs 方法(例如 PixelSplat 和 MVSplat)与 PixelNeRF 等隐式表示方法相比,表现出卓越的渲染质量。 对于CamParafree方法,DUSt3R [38]和MASt3R [21]根据输入图像预测像素对齐的点云,并且可以使用传统的多视图几何算法来估计和优化其他内在和外在参数。 基于这些方法的架构,Splatt3R [35] 和 NoPoSplat [45] 方法引入了额外的头来估计 3D 高斯椭球体的参数,这显着地将视觉重叠较小的输入的渲染性能从 14.49 提高到 23.08。 与由房地产序列组成的 Re10K 数据集不同,ACID 数据集侧重于自然场景。 然而,表1和图3中观察到的趋势也可以在补充材料中看到。
4.3. Cross-Dataset Generalization
如表3所示,NoPoSplat 和 SmileSplat 相对于其他无需相机参数(CamPara-Free)和需要相机参数(CamPara-Required)的方法,展示了更优越的稳健性和准确性。在本节中,我们继续通过直接将这两种模型应用于 Replica 序列 [36] 来评估它们的零样本性能。需要注意的是,这两种模型都是在 Re10K 数据集上训练的,没有在 Replica 数据集上进行任何进一步的微调。。
如表3所示,我们的方法在不同的序列中分为三类:Small(5张图像)、Medium(12张图像)和Large(20张图像)。在每一类中,SmileSplat 一直表现出稳健的性能。具体来说,在 Room 1 序列中,NoPoSplat 的 PSNR 结果为 27.64,而我们的方法将其提高了 25% 到 34.60。然而,直接比较 NoPoSplat 的渲染质量时,如图4所示,渲染图像仍然表现出较高的保真度。
为了更好地理解定量结果和定性结果之间的差距,我们计算了渲染图像与对应的真实图像之间的光度距离,如图4所示。结果表明,渲染图像与真实图像之间的对齐存在显著问题,特别是在 Office 序列中。在有纹理的区域,NoPoSplat 渲染图像与真实图像之间的光度误差显著较高。由于参考图像的相机姿态是由这些方法自身估计的,观察到的现象表明,所提出的 SmileSplat 方法在对齐和总体性能上优于 NoPoSplat。
4.4. Ablation Study
我们分析了我们方法中不同模块的性能。如表2所示,各种模块设置被集成并测试在 Re10K 数据集基准上。首先,我们使用两种不同的初始相机参数估计方法在三个不同的视点(View 1、View 2 和 View 3)上渲染预测的高斯分布。由于高斯参数是在 View 1 的坐标上预测的,因此相机姿态误差在从其他两个视点渲染时会导致性能下降。当我们基于 View 1 和 View 2 的光度损失反馈优化高斯参数时,这两个视点的渲染质量显著提高。然而,这种优化对新视点(View 3)的渲染质量影响不大,因为 View 3 的相机姿态无法准确估计。这表明,虽然少数视点的反馈有助于提高这些特定视点的性能,但新视点的准确姿态估计不足限制了整体效果的提升。
相关文章:

【论文笔记】SmileSplat:稀疏视角+pose-free+泛化
还是一篇基于dust3r的稀疏视角重建工作,作者联合优化了相机内外参与GS模型,实验结果表明优于noposplat。 abstract 在本文中,提出了一种新颖的可泛化高斯方法 SmileSplat,可以对无约束(未标定相机的)稀疏多…...

电机控制的数字化升级:基于DSP和FPGA的仿真与实现
数字信号处理器(DSP,Digital Signal Processor)在工业自动化领域的应用日益广泛。DSP是一种专门用于将模拟信号转换成数字信号并进行处理的技术,能够实现信号的数字滤波、重构、调制和解调等多项功能,确保信号处理的精…...

1/14 C++
练习:将图形类的获取周长和获取面积函数设置成虚函数,完成多态 再定义一个全局函数,能够在该函数中实现:无论传递任何图形,都可以输出传递的图形的周长和面积 #include <iostream>using namespace std; class Sh…...

java springboot3.x jwt+spring security6.x实现用户登录认证
springboot3.x jwtspring security6.x实现用户登录认证 什么是JWT JWT(JSON Web Token)是一种开放标准(RFC 7519),它用于在网络应用环境中传递声明。通常,JWT用于身份验证和信息交换。JWT的一个典型用法是…...

YOLOv5训练长方形图像详解
文章目录 YOLOv5训练长方形图像详解一、引言二、数据集准备1、创建文件夹结构2、标注图像3、生成标注文件 三、配置文件1、创建数据集配置文件2、选择模型配置文件 四、训练模型1、修改训练参数2、开始训练 五、使用示例1、测试模型2、评估模型 六、总结 YOLOv5训练长方形图像详…...

【2025最新】Poe保姆级订阅指南,Poe订阅看这一篇就够了!最方便使用各类AI!
1.Poe是什么? Poe, 全称Platform for Open Exploration。 Poe本身并不提供基础的大语言模型,而是整合多个来自不同科技巨头的基于不同模型的AI聊天机器人,其中包括来自OpenAI的ChatGPT,Anthropic的Claude、Google的PaLM…...
type1-100,2 words
dish n.餐具、碟,盘子;菜肴、饭菜(指一顿餐食中的一道菜) kind of 稍微;有点 sort of 稍微;有点儿 smallish adj.有点小的 crack 敲碎/裂,敲开,砸开,砸碎;裂开…...

Leetcode 377. 组合总和 Ⅳ 动态规划
原题链接:Leetcode 377. 组合总和 Ⅳ 可参考官解 class Solution { public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(target 1);dp[0] 1;// 总和为 i 的元素组合的个数for (int i 1; i < target; i) {// 每次都…...
计算机网络(五)——传输层
一、功能 传输层的主要功能是向两台主机进程之间的通信提供通用的数据传输服务。功能包括实现端到端的通信、多路复用和多路分用、差错控制、流量控制等。 复用:多个应用进程可以通过同一个传输层发送数据。 分用:传输层在接收数据后可以将这些数据正确分…...
【SQL】进阶知识 -- 删除表的几种方法(包含表内单个字段的删除方法)
大家好!欢迎来到本篇SQL进阶博客。如果你已经掌握了基础的SQL操作,接下来就让我们一起探索删除表的几种方法。删除表可能听起来有点危险,事实也是如此,所以在我们实际开发过程中,大多数时候我们都有数据的使用权限&…...

【搭建JavaEE】(3)前后端交互,请求响应机制,JDBC数据库连接
前后端交互 Apache Tomat B/S目前主流。 tomat包含2部分: apache容器 再认识servlet 抽象出的开发模式 项目创建配置 maven javaeetomcat 忽略一些不用的文件 webapp文件夹 HiServlet 这里面出现了webinfo,这个别删因为这个呢,是这这个这…...

项目概述、开发环境搭建(day01)
软件开发整体介绍 软件开发流程 第1阶段: 需求分析 需求规格说明书, 一般来说就是使用 Word 文档来描述当前项目的各个组成部分,如:系统定义、应用环境、功能规格、性能需求等,都会在文档中描述。产品原型,一般是通过…...

车联网安全--TLS握手过程详解
目录 1. TLS协议概述 2. 为什么要握手 2.1 Hello 2.2 协商 2.3 同意 3.总共握了几次手? 1. TLS协议概述 车内各ECU间基于CAN的安全通讯--SecOC,想必现目前多数通信工程师们都已经搞的差不多了(不要再问FvM了);…...

【python】OpenCV—Extract Horizontal and Vertical Lines—Morphology
文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、参考 更多有趣的代码示例,可参考【Programming】 1、功能描述 基于 opencv-python 库,利用形态学的腐蚀和膨胀,提取图片中的水平或者竖直线条 2、代码实现 导入基本的库函数 im…...

Redis十大数据类型详解
Redis(一) 十大数据类型 redis字符串(String) string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据。例如说是jpg图片或者序列化对象 一个re…...

Open FPV VTX开源之betaflight配置
Open FPV VTX开源之betaflight配置 1. 源由2. 配置3. 总结4. 参考资料5. 补充 - 飞控固件版本 1. 源由 飞控嵌入式OSD - ardupilot配置使用betaflight配套OSD图片。 Choose correct font depending on Flight Controller SW. ──> /usr/share/fonts/├──> font_btfl…...

AT32 bootloader程序与上位机程序
从8051到stm32, 从串口下载到JLINK调试,从keil到arm-none-eabi-gcc,从"Hello wrold"到通信协议,一路起来已学会很多,是时候写一下bootloader了。 基本原理 单片机代码编译完后可以生成".hex"和".bin"文件&…...
数据结构与算法之栈: LeetCode 151. 反转字符串中的单词 (Ts版)
反转字符串中的单词 https://leetcode.cn/problems/reverse-words-in-a-string/ 描述 给你一个字符串 s ,请你反转字符串中 单词 的顺序单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开 返回 单词 顺序颠倒且 单词 之间用单个空…...
使用 configparser 读取 INI 配置文件
使用 configparser 读取 INI 配置文件 适合于读取 .ini 格式的配置文件。 配置文件示例 (config.ini): [DEFAULT] host localhost port 3306 [database] user admin password secret import configparser# 创建配置解析器 config configparser.ConfigParser()# 读取配…...

idea 自动导包,并且禁止自动导 *(java.io.*)
自动导包配置 进入 idea 设置,可以按下图所示寻找位置,也可以直接输入 auto import 快速定位到配置。 Add unambiguous imports on the fly:自动帮我们优化导入的包Optimize imports on the fly:自动去掉一些没有用到的包 禁止导…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
规则与人性的天平——由高考迟到事件引发的思考
当那位身着校服的考生在考场关闭1分钟后狂奔而至,他涨红的脸上写满绝望。铁门内秒针划过的弧度,成为改变人生的残酷抛物线。家长声嘶力竭的哀求与考务人员机械的"这是规定",构成当代中国教育最尖锐的隐喻。 一、刚性规则的必要性 …...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space
问题:IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案:将编译的堆内存增加一点 位置:设置setting-》构建菜单build-》编译器Complier...
Git 命令全流程总结
以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结,按操作场景分类整理: 一、初始化与基础操作 操作命令初始化仓库git init添加所有文件到暂存区git add .提交到本地仓库git commit -m "提交描述"首次提交需配置身份git c…...
MeanFlow:何凯明新作,单步去噪图像生成新SOTA
1.简介 这篇文章介绍了一种名为MeanFlow的新型生成模型框架,旨在通过单步生成过程高效地将先验分布转换为数据分布。文章的核心创新在于引入了平均速度的概念,这一概念的引入使得模型能够通过单次函数评估完成从先验分布到数据分布的转换,显…...