【论文笔记】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,可以对无约束(未标定相机的)稀疏多…...
python实现收到一封邮件时自动触发执行读取邮件内容及后续操作
要实现收到一封邮件时自动触发执行 getEmailData(),可以结合定时任务或实时事件监控机制来实现。以下是两种常用的方法: 方法 1:轮询方式(定时检测) 使用 schedule 或 time.sleep 循环定期检测收件箱: i…...
【Vim Masterclass 笔记12】S06L26 + L27:Vim 文本的搜索、查找及替换同步练习(含点评课)
文章目录 S06L26 Exercise 07 - Search, Find, and Replace1 训练目标2 操作指令2.1. 打开 search-practice.txt 文件2.2. 同一行内的搜索练习2.3. 当前文件内的搜索练习2.4. 单词搜索练习2.5. 全局替换练习 3 退出 Vim S06L27 同步练习点评课 写在前面 Vim 的文本检索、查找与…...
YOLOv11 OBB 任务介绍与数据集构建要求及训练脚本使用指南
YOLO(You Only Look Once)是一个高效且广泛应用于目标检测任务的深度学习框架。在目标检测任务中,传统的边界框(AABB)通过四个参数来定义目标的位置信息:中心坐标、宽度、高度以及目标的旋转角度。然而&…...
Leecode刷题C语言之超过阈值的最小操作数②
执行结果:通过 执行用时和内存消耗如下: // 最小堆的节点结构体 typedef struct {long long* heap;int size;int capacity; } MinHeap;// 初始化最小堆 MinHeap* createMinHeap(int capacity) {MinHeap* minHeap (MinHeap*)malloc(sizeof(MinHeap));minHeap->s…...
【Linux】11.Linux基础开发工具使用(4)
文章目录 3. Linux调试器-gdb使用3.1 背景3.2 下载安装3.3 使用gdb查询3.4 开始使用 3. Linux调试器-gdb使用 3.1 背景 程序的发布方式有两种,debug模式和release模式 Linux gcc/g出来的二进制程序,默认是release模式 要使用gdb调试,必须…...
Cesium中的CustomDataSource 详解
Cesium CustomDataSource 详解 在 Cesium 中,CustomDataSource 是一个强大的类,用于处理自定义的地理数据。它提供了一种方法,可以通过程序方式添加、管理和更新动态的地理实体,而无需依赖外部数据格式(如 GeoJSON 或…...
win32汇编环境,窗口程序中组合框的应用举例
;运行效果 ;win32汇编环境,窗口程序中组合框的应用举例 ;比如在窗口程序中生成组合框,增加子项,删除某项,取得指定项内容等 ;直接抄进RadAsm可编译运行。重点部分加备注。 ;以下是ASM文件 ;>>>>>>>>>>>>…...
Wireshark 使用教程:网络分析从入门到精通
一、引言 在网络技术的广阔领域中,网络协议分析是一项至关重要的技能。Wireshark 作为一款开源且功能强大的网络协议分析工具,被广泛应用于网络故障排查、网络安全检测以及网络协议研究等诸多方面。本文将深入且详细地介绍 Wireshark 的使用方法&#x…...
菜品管理(day03)
公共字段自动填充 问题分析 业务表中的公共字段: 而针对于这些字段,我们的赋值方式为: 在新增数据时, 将createTime、updateTime 设置为当前时间, createUser、updateUser设置为当前登录用户ID。 在更新数据时, 将updateTime 设置为当前时间…...
Scira - 一个极简的开源 AI 搜索引擎
支持实时搜索 、学术论文分析 、社交媒体洞察 、YouTube 搜索 、航班追踪 、电影搜索,功能倒是挺多。 但是目前只支持 xAI 的 Grok 还不能换模型,不过用的 Vercel SDK 支持下 DeepSeek 应该很容易 https://index.html.zone/ai/scira...
利用源码安装httpd
方法一: 1,下载源码 [rootopenEuler-1 ~]# wget https://archive.apache.org/dist/httpd/httpd-2.4.46.tar.gz [rootopenEuler-1 ~]# ls anaconda-ks.cfg httpd-2.4.46.tar.gz mysql-8.0.36-linux-glibc2.12-x86_64.tar.xz 2,进行压缩 […...
软件测试 —— Selenium(等待)
软件测试 —— Selenium(等待) 一个例子强制等待使用示例:为什么不推荐使用强制等待?更好的选择 隐式等待 implicitly_wait()隐式等待和强制等待的区别隐式等待(Implicit Wait)强制等…...
图像模糊度(清晰度)检测 EsFFT 算法详细分析
图像模糊度检测算法 基于频域的算法 傅里叶变换法:先将图像进行傅里叶变换得到频谱图,频谱图中心为低频,向外扩展为高频。通过屏蔽频谱图中心区域实现高通滤波,保留图像边缘等高频信息,再求频谱图的均值即平均高频幅值,该值越小,图像越模糊。但传统FFT方法存在不足,如…...
快速上手 HarmonyOS 应用开发
一、DevEco Studio 安装与配置 1. DevEco Studio 简介 DevEco Studio 是 HarmonyOS 的一站式集成开发环境(IDE),提供了丰富的工具和功能,支持 HarmonyOS 应用开发的全流程。 2. DevEco Studio 下载与安装 下载地址:…...
金融项目实战 06|Python实现接口自动化——日志、实名认证和开户接口
目录 一、日志封装及应用(理解) 二、认证开户接口脚本编写 1、代码编写 1️⃣api目录 2️⃣script目录 2、BeautifulSoup库 1️⃣简介及例子 2️⃣提取html数据工具封装 3、认证开户参数化 一、日志封装及应用(理解) &…...
Lianwei 安全周报|2025.1.13
新的一周又开始了,以下是本周「Lianwei周报」,我们总结推荐了本周的政策/标准/指南最新动态、热点资讯和安全事件,保证大家不错过本周的每一个重点! 政策/标准/指南最新动态 01 美国国土安全部发布《公共部门生成式人工智能部署手…...
【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理
【C#深度学习之路】如何使用C#实现Yolo8/11 Segment 全尺寸模型的训练和推理 项目背景项目实现推理过程训练过程 项目展望写在最后项目下载链接 本文为原创文章,若需要转载,请注明出处。 原文地址:https://blog.csdn.net/qq_30270773/article…...
【Compose multiplatform教程】05 IOS环境编译
了解如何使现有的 Android 应用程序跨平台,以便它在 Android 和 iOS 上都能运行。您将能够在一个位置编写代码并针对 Android 和 iOS 进行测试一次。 本教程使用一个示例 Android 应用程序,其中包含用于输入用户名和密码的单个屏幕。凭证经过验证并保存…...
【声音场景分类--论文阅读】
1.基于小波时频图特征在声音场景分类 基于小波时频图特征在声音场景分类任务中的表现 2.增强增强高效音频分类网络 https://arxiv.org/pdf/2204.11479v5 https://github.com/Alibaba-MIIL/AudioClassfication 音频分类网络如图4所示。在此阶段,主要重点是建立一…...
浅谈云计算02 | 云计算模式的演进
云计算计算模式的演进 一、云计算计算模式的起源追溯1.2 个人计算机与桌面计算 二、云计算计算模式的发展阶段2.1 效用计算的出现2.2 客户机/服务器模式2.3 集群计算2.4 服务计算2.5 分布式计算2.6 网格计算 三、云计算计算模式的成熟与多元化3.1 主流云计算服务模式的确立3.1.…...
【专题】2025年节日营销趋势洞察报告汇总PDF洞察(附原数据表)
原文链接: https://tecdat.cn/?p38813 在当今复杂多变且竞争激烈的消费市场环境下,节日营销已成为企业获取市场份额、提升品牌影响力的关键战略时机。我们深知深入洞察节日营销趋势对于企业决策的重要性。 本报告汇总基于对 2024 年多个关键消费节点及…...
AR 在高校实验室安全教育中的应用
AR应用APP可以内置实验室安全功能介绍,学习并考试(为满足教育部关于实验室人员准入条件),AR主模块。其中AR主模块应该包括图形标识码的扫描,生成相应模型,或者火灾、逃生等应急处置的路线及动画演示。考试采…...
PHP智慧小区物业管理小程序
🌟智慧小区物业管理小程序:重塑社区生活,开启便捷高效新篇章 🌟 智慧小区物业管理小程序是一款基于PHPUniApp精心雕琢的智慧小区物业管理小程序,它犹如一股清新的科技之风,吹进了现代智慧小区的每一个角落…...
使用防抖与节流优化 Vue 中的异步函数调用
使用防抖与节流优化 Vue 中的异步函数调用 在 Vue 项目中,我们经常需要处理用户交互事件,例如点击、输入、切换复选框等。这些事件可能频繁触发,尤其在用户快速操作的情况下,如果每次触发都执行复杂的逻辑(如异步网络…...
【大厂面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据...本篇介绍自动驾驶检测模型如何针对corner case 优化?
【大厂面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据…本篇介绍自动驾驶检测模型如何针对corner case 优化? 【大厂面试AI算法题中的知识点】方向涉及:ML/DL/CV/NLP/大数据…本篇介绍自动驾驶检测模型如何针对corner case 优化&…...
Android CustomTextField
在 Compose 中开发用户界面时,需要处理输入框和键盘的交互,例如在键盘弹出时调整布局位置,避免遮挡重要内容。本篇博客将通过一个完整的示例展示如何实现这一功能。 功能概述 本例实现了一个简单的输入框。当输入框获得焦点或输入文字时&…...
源码编译安装httpd 2.4,提供系统服务管理脚本并测试(两种方法实现)
一、源码编译安装httpd 2.4 # 从官网下载httpd源代码 [rootopenEuler-2 ~]# wget https://downloads.apache.org/httpd/httpd-2.4.62.tar.gz# 解压并进入到该目录中 [rootopenEuler-2 ~]# tar -zxvf httpd-2.4.62.tar.gz [rootopenEuler-2 ~]# cd httpd-2.4.62/# 安装httpd编译…...
ubuntu24.04安装docker显卡工具包nvidia-container-toolkit
问题描述 docker 容器启动时如果需要访问 gpu ,需要安装 nvidia-container-toolkit 才行,否则会提示如下错误 sudo docker run --rm -it --gpus all ubuntu:latest docker: Error response from daemon: could not select device driver "" …...
mac intel芯片下载安卓模拟器
一、调研 目前主流两个模拟器: 雷神模拟器 不支持macosmumu模拟器pro版 不支持macos intel芯片 搜索到mumu的Q&A中有 “Intel芯片Mac如何安装MuMu?” q&a🔗:https://mumu.163.com/mac/faq/install-on-intel-mac.html 提…...
4 原型(Protoytpe)模式
原型模式 1.1 分类 (对象)创建型 1.2 提出问题 希望复制一个状态完全相同的对象。首先,新建一个相同类的对象。 然后,复制所有成员变量。 但是,有时候不知道具体类型,而且成员变量可能是私有的。&#…...
kafka的listeners和advertised.listeners,配置内外网分流
总结: listeners 指明 kafka 当前节点监听本机的哪个网卡 advertised.listeners 指明客户端通过哪个 ip 可以访问到当前节点 内网和外网并不必须是是我们通常说的公司内部网络和公网,只要是两块网卡都可以,不管是这两块网卡是公网、内网、甚至…...
Mac——Docker desktop安装与使用教程
摘要 本文是一篇关于Mac系统下Docker Desktop安装与使用教程的博文。首先介绍连接WiFi网络,然后详细阐述了如何在Mac上安装Docker,包括下载地址以及不同芯片版本的选择。接着讲解了如何下载基础镜像和指定版本镜像,旨在帮助用户在Mac上高效使…...
Redis十大数据类型详解
Redis(一) 十大数据类型 redis字符串(String) string是redis最基本的类型,一个key对应一个value string类型是二进制安全的,意思是redis的string可以包含任何数据。例如说是jpg图片或者序列化对象 一个re…...
.net core 中使用AsyncLocal传递变量
官网 https://github.com/dotnet/runtime/blob/16b6369b7509e58c35431f05681a9f9e5d10afaa/src/libraries/System.Private.CoreLib/src/System/Threading/AsyncLocal.cs#L45 AsyncLocal是一个在.NET中用来在同步任务和异步任务中保持全局变量的工具类。它允许你在不同线程的同…...
C#Halcon视觉流程框架个人封装流程心得
一,实现效果 1,初始界面 2,加载流程 3,点击流程列表“加载2D图像" 4,设置图像预处理参数与画线找线 5,执行流程 6,折叠工具箱 7,折叠操作区域 二,实现流程 1&…...
web第一次作业
系统登录代码: <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>第一次作业</title…...
Kylin Linux V10 替换安装源,并在服务器上启用 EPEL 仓库
查看系统版本: cat /etc/os-releaseNAME"Kylin Linux Advanced Server" VERSION"V10 (Lance)" ID"kylin" VERSION_ID"V10" PRETTY_NAME"Kylin Linux Advanced Server V10 (Lance)" ANSI_COLOR"0;31"u…...
备战蓝桥杯:树的存储与遍历(dfs和bfs)
树的概念 树的逻辑结构是树形结构,和我们之前的线性结构又不太一样了,是一种一对多的关系 树的结点分为根节点,叶子结点(没有分支的结点) 以及分支结点 从上往下看,每个结点都有0个或多个后继 从下往上…...
[Deep Learning] Anaconda+CUDA+CuDNN+Pytorch(GPU)环境配置-2025
文章目录 [Deep Learning] AnacondaCUDACuDNNPytorch(GPU)环境配置-20250. 引子1. 安装Anaconda1.1 安装包下载:1.2 启用安装包安装1.3 配置(系统)环境变量1.4 验证Anaconda是否安装完毕1.5 Anaconda换源 2. 安装CUDACuDNN2.1 判断本机的CUDA版本2.2 下载适合自己CU…...
计算机的错误计算(二百一十二)
摘要 利用两个大模型计算 实验表明,两个大模型均进行了中肯的分析。另外,其中一个大模型给出了 Python代码,运行后,结果中有7位错误数字;而一个大模型进行加减运算时出错。 例1. 计算 下面是与一个大模型的对话…...
Inxpect毫米波安全雷达:精准检测与动态保护,工业自动化可靠选择
Inxpect毫米波安全雷达具备“精准检测、动态区域保护、环境适应性”三大核心功能。在工业自动化和机器人系统里,这些功能发挥着重要作用,有助于提升安全性与效率。Inxpect雷达运用毫米波技术,在诸如存在灰尘、烟雾或碎屑等复杂环境中,也能保持…...
springboot房屋租赁管理系统
Spring Boot房屋租赁管理系统是一种基于Spring Boot框架构建的,旨在解决传统租房市场中房源信息更新不及时、虚假信息泛滥、交易流程繁琐等问题的信息化解决方案。 一、系统背景与目的 随着城市化进程的加快和人口流动性的增强,租房市场需求急剧增长。…...
如何使用wireshark 解密TLS-SSL报文
目录 前言 原理 操作 前言 现在网站都是https 或者 很多站点都支持 http2。这些站点为了保证数据的安全都通过TLS/SSL 加密过,用wireshark 并不能很好的去解析报文,我们就需要用wireshark去解密这些报文。我主要讲解下mac 在 chrome 怎么配置的&…...
Gensim字典和语料库
自然语言处理(NLP)是计算机科学中涉及语言数据处理的核心领域之一,应用广泛,包括文本分类、情感分析、机器翻译、主题建模等任务。在处理海量文本时,如何将非结构化的语言数据转化为机器能够理解的结构化数据,是解决这些任务的关键。 Gensim 是一个用于处理和分析文本数…...
RK3588-NPU pytorch-image-models 模型编译测试
RK3588-NPU pytorch-image-models 模型编译测试 一.背景二.操作步骤1.下载依赖2.创建容器3.安装依赖4.创建脚本A.生成模型名列表B.生成ONNX模型C.生成RKNN模型D.批量测试脚本 一.背景 测试RK3588-NPU对https://github.com/huggingface/pytorch-image-models.git中模型的支持程…...
Doris 导入慢该如何排查及优化?
在使用 Apache Doris 进行数据导入时,经常会遇到导入性能不理想的情况。今天我们就来深入分析这些问题的原因及其解决方案! Stream Load 导入慢 Stream Load 支持通过 HTTP 协议将本地文件或数据流导入到 Doris 中的一种方式,其速度还是相当…...
iOS - 关联对象的实现
根据源码总结一下关联对象(Associated Objects)的实现: 1. 关联对象的基本结构 // 对象的 isa 结构中包含关联对象标记 union isa_t {struct {uintptr_t nonpointer : 1; // 是否使用优化的 isauintptr_t has_assoc : 1; // 是否有关联对象// ...其他位…...
AudioGPT全新的 音频内容理解与生成系统
AudioGPT全新的 音频内容理解与生成系统 ChatGPT、GPT-4等大型语言模型 (LLM) 在语言理解、生成、交互和推理方面表现出的非凡能力,引起了学界和业界的极大关注,也让人们看到了LLM在构建通用人工智能 (AGI) 系统方面的潜力。 现有的GPT模型具有极高的语言生成能力,是目前最…...
【maptalks】加载SVG和GIF
加载SVG和GIF 一、加载SVG方法一:直接载入SVG文件,类似载入图片方法二:载入SVG路径 二、加载GIFVUEmaptalks实现GIF可拖拽点VUEmaptalks实现GIF跟随线条动画 一、加载SVG 方法一:直接载入SVG文件,类似载入图片 缺点&…...