【无标题】LighthouseGS:面向全景式移动拍摄的室内结构感知三维高斯泼溅

在这里插入图片描述


标题:<LighthouseGS: Indoor Structure-aware 3D Gaussian Splatting for Panorama-Style Mobile Captures>
论文:https://arxiv.org/pdf/2507.06109
来源:南京大学;复旦大学;华为诺亚实验室

文章目录

  • 摘要
  • 一、前言
  • 二、相关工作
    • 2.1 多视角随意捕捉动作 (Casual Multi-view Capture Motion)
    • 2.1 新视角合成
    • 2.3 几何对齐的3DGS
    • 2.4 优化相机位姿与辐射场
  • 三、Preliminary:3DGS
  • 四、Overview
  • 五、Plane Scaffold Assembly
  • 六、平面感知的稳定优化
  • 七、几何和光度校正
  • 实验
    • 1.数据集
    • 2.实施细节
    • 3.对比方法
    • 4.消融实验
    • 5.下游应用


摘要

  三维高斯泼溅(3DGS)技术的最新进展,已能在室内场景中实现具有惊艳画质的实时新视角合成(NVS)。然而,要实现高保真渲染,需要精心拍摄覆盖整个场景的图像,这限制了普通用户的可及性。我们致力于开发一种基于3DGS的实用型NVS框架,仅需使用手持设备(如移动终端)进行简单的全景式运动拍摄。虽然这种以旋转为主、窄基线的拍摄方式(rotation-dominant motion and narrow baseline)便捷,却给相机位姿估计和三维点云重建带来挑战——尤其在缺乏纹理的室内环境中。受全景视图的 lighthouse-like sweeping motion,LighthouseGS利用移动设备相机位姿和单目深度估计等粗略几何先验,并充分结合室内环境中常见的平面结构特征。我们提出了一种名为"plane scaffold assembly"的新型初始化方法,可在这些结构上生成一致的三维点云,随后通过稳定剪枝策略来提升几何优化稳定性。针对移动设备常见的运动漂移和自动曝光问题,本研究还引入了几何与光度校正方案。通过在真实采集与合成的室内场景中进行测试,LighthouseGS实现了超越现有技术的照片级真实感渲染,展现了在全景视图合成与物体布局方面的应用潜力。

在这里插入图片描述

一、前言

   照片级真实感新视角合成(NVS)技术对于将现实世界体验引入虚拟环境至关重要,它能实现沉浸式且真实的交互。这项技术在室内场景中尤其珍贵——我们日常生活中的大部分时间都在室内度过,它让我们能够突破物理空间限制,分享栩栩如生的生活体验。近期,神经渲染技术在NVS领域取得重大进展。神经辐射场(NeRF)[Mildenhall等人,2020]展示了照片级真实感的新视角合成能力,而3D高斯泼溅(3DGS)[Kerbl等人,2023]则发展成为一个强大的框架,既能实现实时渲染又能保持高保真度的视角合成。然而,要获得高质量渲染效果,仍需拍摄覆盖整个场景的数百张图像,这对普通用户(即非专业人士)在室内环境中使用NVS技术构成了挑战。

  鉴于这些限制条件,并考虑到用户友好型采集方法的迫切需求,我们的研究聚焦于一种创新范式——利用自然直观的单手持移动设备拍摄方式,通过全景式运动让用户采集周围环境[Sweeney等人2019;Ventura2016]。例如,当人们拍摄感兴趣的场景时(如苹果手机的全景模式1),通常会半伸展手臂旋转相机。这种以旋转为主导的运动方式不仅能让用户轻松采集室内场景,还能提供沉浸式探索体验,这对房间导览、室内场景设计等增强现实/虚拟现实应用大有裨益。

  在本研究中,我们探索了一种从室内场景的全景式拍摄中生成逼真神经视图合成(NVS)的方法,重点在于提升非专业用户的使用便捷性。与以往依赖由高端相机组成的多相机阵列系统来捕捉360度场景的研究[Lin等人2020;Turki等人2024;Xu等人2023]不同,我们仅使用单个手持相机。然而,全景式拍摄为NVS带来了额外的技术挑战。具体而言,窄基线连续拍摄会导致相机姿态估计不准确和三维点云不可靠。这些问题在室内场景的纹理缺失区域会进一步加剧——这些区域因缺乏显著特征且运动视差有限,使得精确三维重建变得复杂。最终,这些误差会严重降低神经渲染的质量。为解决这些问题,我们利用现成或可估算的粗略几何先验信息:相机位姿可轻松从移动设备中提取,而单目深度信息则能通过预训练网络[COLMAP-Free 3D Gaussian Splatting CVPR 2024]以合理精度进行估算

  LighthouseGS 专为通过单手持相机实现室内场景全景式捕捉而设计。该方案利用粗略几何先验知识,充分挖掘室内环境(通常包含平面区域)的固有结构特征。具体实现上,我们 通过移动设备(如搭载ARKit的iOS设备)进行全景式运动拍摄,并获取相机位姿。随后对采集图像进行深度和法线信息估计。需要特别说明的是,这些粗略几何先验(包括相机位姿和深度/法线信息)可能存在误差:依赖IMU传感器进行位姿估计的移动设备易受运动漂移影响,而单目深度估计方法则存在尺度模糊问题。然而,这些几何先验信息可与室内场景的平面特征结合使用,从而获得更精确的估算结果

  鉴于粗略的几何先验信息,LighthouseGS通过将三维高斯分布与室内场景的结构特征相结合进行初始化和优化。我们首先提出了一种 初始化方案——planar scaffold assembly,利用室内场景的平面结构来调整未对齐的深度数据,从而强化全局与局部一致性。不同于传统基于图像的整体对齐方式,LighthouseGS采用室内场景中占主导地位的plane-wise 对齐策略,既提升了对齐精度又保留了局部细节。这种方案提供了可靠的初始值,使三维高斯分布能与场景几何精确对齐。

此外,我们提出了一种几何感知的剪枝策略以提升优化稳定性。3DGS的稠密化,在非纹理区域频繁出现的过大尺度3D高斯元素——即便它们能准确表征场景——也会被移除,这导致这些区域产生严重伪影。为解决此问题,我们保留了高置信度的3D高斯元素,以实现场景几何与视觉特征的稳定更新。

值得一提的是,LighthouseGS通过光度误差校正了初始位姿与色彩不一致性问题,有效克服了室内全景采集的挑战,更高保真渲染新视角。

  为训练和验证提出的LighthouseGS框架,我们新收集并生成了采用全景式运动捕捉的真实世界与合成数据集。该数据集涵盖多样室内场景,包含自动曝光图像及每个场景对应的相机位姿。在我们由5个真实场景和5个合成场景构成的数据集上,实验证明了LighthouseGS框架的有效性。该框架展现出照片级真实感的渲染质量,其表现优于既往神经渲染方法(见图1)。此外,我们还基于该框架开发了两项应用:全景视图合成与物体布局(object placement)。

二、相关工作

2.1 多视角随意捕捉动作 (Casual Multi-view Capture Motion)

2.1 新视角合成

2.3 几何对齐的3DGS

2.4 优化相机位姿与辐射场

三、Preliminary:3DGS

  略。

在这里插入图片描述
在这里插入图片描述

   挑战 。由于运动和室内场景的固有问题,通过全景式拍摄来拟合 3DGS 以实现高保真视图合成仍具挑战性。从运动角度来看,全景式运动通常无法正确运行COLMAP算法[估计相机位姿和稀疏点云,2016],原始3DGS论文所述,初始化质量会显著影响渲染效果。从环境角度来看,室内场景存在同质化区域,且由于自然光和各类间接光源的影响,移动设备的曝光值和白平衡在每次拍摄时都会发生变化。室内场景中缺乏纹理的区域可能通过错误密集化导致相机近场漂浮物,因为这些区域仅依赖渲染损失而忽略了几何特征。此外,现有自适应控制策略依赖于需要敏感调整的启发式超参数。由于光照的自然过渡,曝光变化会导致多视角间颜色不一致,并难以在新视角中合成未见的颜色。

四、Overview

  全景式运动是普通用户轻松捕捉周围环境的常见便捷方式。在这种拍摄模式下,用户通常以半伸展手臂旋转相机,使相机轨迹近似于虚拟球面。通过iOS设备的ARKit等内置功能商业智能手机应用[Abou-Chakra 2023],可获取全景式运动的连续图像序列,同时提供相机位姿数据(可能存在误差)作为初始值使用。输入数据:图像序列{ItI_tIt }和初始位姿{ΠtΠ_tΠt}(t∈[1,T]t ∈ [1,T]t[1,T]TTT 为场景总帧数)。

  LighthouseGS 能够利用室内固有特征——结构分明但缺乏纹理的平面区域,通过三个步骤的流程:,平面支架装配,。 1) 预处理阶段 ,使用预训练模型生成输入图像ItI_tIt 的单目深度图DtD_tDt和法线贴图NtN_tNt 具体采用CVPR 2024的 [COLMAP-Free 3D Gaussian Splatting,2024]和[Rethinking Inductive Biases for Surface Normal Estimation] )。2) plane scaffold assembly步骤 ,通过 plane primitives 对单目深度估计(即3D点)进行序列对齐,从而确保全局与局部一致性。该步骤构建了一个由一组对齐的三维点及其对应法线组成的 plane scaffold,数据源自平面基元。基于此,初始化3DGS以对齐室内场景几何,特别是在无纹理区域。3) 结合几何与光度校正的优化(图2) ,优化3DGS,同步执行几何与光度校正,增强室内场景无纹理区域的优化稳定性。通过residual pose refinement 来解决输入相机位姿的运动漂移问题,并采用可学习的 tone mapping scheme 来改善自动曝光导致的色彩不一致性。这一流程使我们能够从随意拍摄的图像中实现照片级真实感的沉浸式渲染,无需依赖高端相机或SFM技术。

在这里插入图片描述

五、Plane Scaffold Assembly

  该对齐方案通过利用单目深度估计ARKit位姿等粗略几何先验中的平面结构, 构建全局对齐的密集三维点云(如图3 )。为解决单目深度图的尺度模糊性,通过优化单目深度图的视角尺度和位移参数来适配全局点云。然而这种方法无法处理局部错位问题,导致高斯函数初始化不准确,进而产生三维几何合成中的视觉伪影。例如,仅采用全局对齐方案时会在物体层面暴露错位现象,如图4所示。

在这里插入图片描述

   两阶段的Plane Scaffold Assembly方案 :第一阶段进行全局图像对齐,第二阶段则基于平面信息通过局部平面对齐来优化几何一致性。我们依次对连续深度图像进行全局到局部的对齐处理,最终构建出由全局到局部对齐点集XTX_TXT和对应平面信息NTN_TNT(即表面法线)组成的Plane Scaffold SSS。作为参考尺度,我们通过反向投影从首帧深度图D0D_0D0中初始化一组对齐的3D点集X0X_0X0

   Image-wise 全局对齐 。给定先前的全局点Xt−1X_{t−1}Xt1,新深度图像DtD_tDt图像级全局对齐的目标是预测一个仿射变换,将给定的深度图像调整以匹配全局点。值得注意的是,直接在三维空间中将深度图像与全局点对齐并非易事,因为这需要点对点的对应关系。为此,我们**首先将全局点投影到当前帧中,然后通过仿射变换的简单可学习系数在二维空间内完成对齐。**通过仿射变换调整深度图:Dˉt=αtDt+βt\bar{D}_t=α_tD_t+β_tDˉt=αtDt+βt,其中αt,βtα_t,β_tαt,βt 是可学习的视角尺度和位移参数,由梯度下降法优化,以最小化当前深度与投影全局点之间的误差:

在这里插入图片描述
MMM (单目深度Dˉt\bar{D}tDˉt与投影全局点之间) 重叠区域的mask;⊙是逐元素乘法;π(;)\pi(;)π(;)表示相机投影函数。虽然这种基于图像的整体全局对齐方法能带来整体性能提升,但 仅依赖单一尺度和位移参数来调整室内场景中不同物体的三维空间,容易导致局部不一致性。为此,我们以全局对齐的尺度和位移参数作为初始值,随后针对每个局部平面区域进行参数优化。

  

   Plane-wise 的局部对齐。 研究发现,平面表示能有效呈现室内场景的紧凑结构,尤其适用于墙面、天花板等大面积均质区域。为提取平面区域,基于预处理的深度图DTD_TDT和表面法线图NtN_tNt, 采用Mean shift聚类算法[2019],将像素级深度数据分割为若干平面,每个平面以segment mask mtp∈RH×Wm_t^p∈R^{H×W}mtpRH×W的二值化掩膜形式呈现。随后为每个平面ppp定义缩放位移参数(γtp,δtp)(γ_t^p,δ_t^p)(γtpδtp),初始值取自全局参数 (αp,βp)(α_p,β_p)(αp,βp)。各平面的缩放深度Dˉtp\bar{D}_t^pDˉtp通过以下方式计算:

在这里插入图片描述
这些局部平面区域,在最小化(每个平面 segment与重叠像素内的投影深度的)投影损失的同时,优化如下:

在这里插入图片描述

  最后,对调整后的 平面 segment进行反投影,获得世界空间中三维点。这些点将与全局点Xt−1X_{t-1}Xt1合并(重叠像素除外):

在这里插入图片描述
π−1\pi^{−1}π1(;)利用相机位姿,将(全局对齐的)平面反投影到世界空间。得益于局部平面对齐特性,三维点在不同物体或平面区域之间实现了精准对齐(图4红框)。

  最后,生成具有平面信息的全局-局部对齐点集,称为 plane scaffold S=(XT,NT)S=(X_T,N_T)S=(XT,NT)。该方法为全景式运动场景中3D几何建模(3DGS)初始化,估算出一组基于平面引导的三维点集(COLMAP失败)。通过降采样处理该平面支架,以保持点集数量的合理性。

六、平面感知的稳定优化

   平面引导的初始化 。3DGS根据全局三维点的位置参数,生成一组高斯分布,每个gs的初始尺度由其最近邻点的平均距离决定,从而形成各向同性的形状。这些各向同性高斯分布大致填充三维空间而不产生空隙,但无法准确反映室内场景中广泛存在的平面结构特征。因此,我们通过最小化(最接近表面法线的)轴的尺度,来压缩初始化的GS基元。将最小值作为尺度参数后,三维高斯分布被初始化为沿对应表面平面展平的薄层结构。图5展示了现有3DGS与平面引导的GS初始化方法的对比效果。

   稳定剪枝 。3DGS的剪枝方案,通过移除过大或透明的高斯分布,常在优化过程中产生大面积空洞(见图6)。值得注意的是,这类过大高斯分布往往出现在非纹理区域,而传统剪枝策略通常会将其剔除。由于这些空洞会被不当填充,导致优化过程中的几何伪影问题,从而影响算法的稳定性。虽然通过自适应密度控制(ADC)分裂或克隆三维高斯函数可以填补大孔洞,但由于ADC仅依赖于从渲染损失中得到的view-space gradients,因此会出现靠近相机的 floater。

  稳定修剪方案,利用不透明度值,来评估3DGS的可靠性,在无纹理区域保留可靠的三维高斯分布(因为这些分布是从表面对齐平面的plane scaffold 中初始化生成)。而且无纹理区域不需要精细细节,可以使用更大的高斯分布来表示。具体而言,首先在图像的重叠区域内收集大尺寸GS基元,作为修剪候选对象。然后保留不透明度值高于0.5阈值的高置信度高斯分布,能在无纹理区域生成平滑几何结构且无漂浮物(见图6)。

在这里插入图片描述

   平面引导的正则化。 虽然三维高斯函数的初始化采用了本文提出的plane scaffold assembly,但仅依赖渲染损失值并不能保证其在优化过程中的几何精度。因此,我们通过计算估计的粗略几何先验与对应渲染值之间的损失函数,引入额外的损失函数来实现三维高斯函数与场景几何结构的精准对齐。

  1.角度损失。约束GS法向量与表面保持对齐:

在这里插入图片描述

  其中N^\hat{N}N^表示渲染后的法线贴图,而NNN则是预训练网络生成的伪真实法线贴图。根据[Gaussianpro]的研究方法,通过将公式(2)中的每个高斯颜色cic_ici替换为对应的法线nin_ini来计算t时刻的N^\hat{N}N^,其中nin_ini是具有最小尺度值的旋转轴

  2.扁平化损失。根据NeuSG[2023],对每个高斯函数的最小尺度进行正则化处理,使其沿表面扁平化:

在这里插入图片描述

sis_isi表示世界空间中三维高斯分布各轴的scale值。

  3.法线平滑损失。此外,由于3DGS采用非结构化形式,渲染光滑几何体时常常遇到困难。为解决,我们在渲染后的法线中应用全变差项(Rudin等人,1992年),以最小化相邻法线之间的差异(LLL是像素数):

在这里插入图片描述

  4.深度-法线一致性损失。我们通过正则化渲染后的深度图,使其在局部区域保持一致性。非结构化的三维高斯函数难以表现平滑表面,容易导致三维空间中的不连续性。我们利用先验法线图,来引导渲染深度图的局部平滑度。首先利用相机内参,将渲染后的深度图D^\hat{D}D^转换为逐像素的3D location map。 该损失通过确保三维位置的水平和垂直梯度与对应法线方向正交,从而强制实现表面几何的平滑性 ,具体如下:

在这里插入图片描述

七、几何和光度校正

  由于设备便携性设计,该框架仍存在运动漂移、自动曝光/白平衡等固有缺陷。针对这些问题,我们提出了两种解决方案:残差位姿微调(Residual Pose refinement)与光度校正(photometric correction.)技术。

  残差位姿微调。受PoRF算法(2024)启发,将每帧的残差位姿参数初始化为单位旋转矩阵(四元数形式)和零位移向量。在优化3DGS过程中,四元数和位移向量会被转换为残差位姿 ΔΠ∈SE(3)ΔΠ∈SE(3)ΔΠSE(3)。调整后的位姿,通过残差pose与初始pose相乘来实现优化,同时避免直接调整初始粗略pose ΠΠΠ(内参固定):
在这里插入图片描述
由于图像用调整后的pose渲染,通过可微分渲染器的反向传播梯度,来更新残差pose。减少因运动漂移导致的图像伪影,特别是在后续序列中漂移误差逐渐累积的情况下(见图7)。

在这里插入图片描述

  色彩校正。针对不同视角间颜色、曝光变化问题,采用基于可学习白平衡参数 w∈R3w∈R^3wR3和亮度参数b∈R3b∈R^3bR3的通道级参数化色彩转换策略进行校正。在计算渲染损失前,可将渲染图像I^t\hat{I}_tI^t转换为经过色彩校正的图像 I~t\tilde{I}_tI~t
在这里插入图片描述
可学习的系数通过可微分光栅化技术进行更新,将梯度反向传播至这些参数。效果如图8。

  LighthouseGS损失

在这里插入图片描述
在这里插入图片描述

λ1λ_1λ1λD−SSIλ_{D−SSI}λDSSI设为0.8和0.2。
  几何损失LgeoL_{geo}Lgeo通对渲染后的几何体进行正则化处理,使其三维高斯分布沿表面排列:

在这里插入图片描述

λnormλ_{norm}λnormλd2nλ_{d2n}λd2n分别设置为0.05和0.2。前三个损失项用于约束渲染后的法线图,而深度-法线一致性损失则用于约束渲染后的深度值。

实验

1.数据集

  真实数据Nerfcapture软件 可保存iPhone ARKit拍摄的多张图像及其对应参数。在拍摄目标区域时,用户需保持双臂自然伸展并旋转设备。这些图像几乎覆盖了运动中心点的整个空间范围。这种自然运动方式并不严格遵循原点球面运动理论[文图拉2016],而全景式运动模式则代表了一种更实用且不受限的方法。我们的数据集包含五种不同室内环境:阳台、更衣室、食品储藏室、餐厅和会议室。每个场景最多采集100帧图像,分辨率为1920×1440像素。

  合成场景。Blender软件[,支持基于物理的渲染技术。根据场景规模不同,我们在固定全景运动中心周围20或30厘米半径范围内生成合成图像。基于ARKit跟踪系统的统计分析[Kim等人2022],我们进一步在真实相机位姿中添加漂移噪声以模拟位姿误差。本数据集包含五个合成室内场景:游戏室、卧室、主卧、客厅和工作室。每个场景均包含100张自动曝光图像及其对应的相机位姿,分辨率均为1024×1024像素

2.实施细节

  本文采用绝对梯度累积算法的AbsGS[叶等人,2024年],该方法通过避免高斯函数过度重建时的梯度冲突,更精准地呈现高保真纹理特征。优化过程共进行3万次迭代,前1.5万次迭代每100步进行一次致密化处理。针对真实场景和合成场景,我们分别设置0.0008和0.0004作为稠密化梯度阈值。高斯参数采用Adam优化器[金马与巴,2015年],几何校正和光度校正的可学习系数也使用该优化器。所有实验均在单块RTX 4090显卡上完成。

  首先冻结训练好的三维高斯模型,在20000次迭代过程中持续优化测试视角的相机位姿和色调映射参数,以评估未见过的拍摄角度。随后测量指标量化:峰值信噪比(PSNR)、结构相似性指数(SSIM)以及局部图像伪影抑制性能(LPIPS)。

3.对比方法

  3DGS 、DNGaussian[2024]、Scaffold-GS[2024]和GeoGaussian[2025]
DNGaussian是一种单目深度正则化方法,通过将高斯位置与场景几何结构对齐,并通过对局部深度块进行归一化处理来优化细节。我们基于相同单目深度数据重新实现了该方法。Scaffold-GS能够通过动态预测高斯参数(基于锚点和视角),有效呈现具有视图依赖效应或伪影的场景。GeoGaussian将三维高斯初始化为与表面法线对齐的细长椭球体,并在室内场景中优化相邻椭球体保持共面状态。

  现有所有方法都依赖COLMAP,然而在实际场景中,由于需要实现全景式运动,经常失败。LighthouseGS采用plane scaffold assembly的3D点云,以及ARKit相机位姿,作为基准初始化,定量对比见表1(添加†符号以区分采用相同初始化方案)

在这里插入图片描述

  定性对比LighthouseGS对输入相机位姿和自动曝光图像的误差具有鲁棒性(见红色方框),物体的形状与细节得以清晰重建,完全消除了模糊伪影(如试衣间中拖鞋的细节); 与容易在不同,LigthouseGS在处理这类无纹理区域产生的漂浮感时表现更优(见蓝色方框):在食品储藏室的天花板和墙面区域,过度平滑的表面和大量斑点VS纹理细节增强的规整表面。

真实数据集结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  

  

4.消融实验

在这里插入图片描述

  COLMAP是常规的3DGS初始化方法,但在全景式运动场景中常无法准确估计三维点和相机位姿。为解决这一问题,我们尝试使用ARKit位姿运行COLMAP进行点云三角测量(标记为ARKit + COLMAP)。尽管利用了相机位姿作为先验信息,但COLMAP生成的点云精度不足且分布极稀疏,导致性能受限。我们还提出了球面立体光测量(Spherical SfM)[Ventura,2016年],这是一种专为类似全景式运动的球面运动设计的特殊SfM流程。然而,由于该方法存在必须将相机置于球面上才能成功运行的严格约束,其性能仍显不足。相比之下,plane scaffold assembly在定性和定量方面均展现出稳健性能(见图13)。通过将plane scaffold assembly产生的密集三维点与表面精确对齐,可以观察到场景几何结构得到良好呈现且无几何伪影,尤其在非纹理区域表现尤为突出

在这里插入图片描述

  

  

5.下游应用

在这里插入图片描述

  

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/89199.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/89199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-table中type=“selection“选中数据如何回显

效果如下代码如下 关键函数&#xff1a;toggleRowSelection(this.tableData[i])设置默认选中数据。 <template><el-tableref"multipleTable":data"tableData"tooltip-effect"dark"style"width: 100%"selection-change"h…

为来时路,OCM拿证学习和考试

为何选择OCM&#xff1f;OCM的含金量无需多言。全球持证人数不足万人&#xff0c;中国地区更是寥寥千人。它不仅是技术实力的象征&#xff0c;更是通往金融、互联网、通信等核心企业高薪岗位的“通行证”。据行业数据显示&#xff0c;持有OCM认证的技术人员&#xff0c;薪资普遍…

beautiful-react-hooks库——入门实践常用hook详解

简介 beautiful-react-hooks 是一个专为 React 设计的高质量自定义 Hooks 集合&#xff0c;涵盖了事件、状态、生命周期、DOM 操作、性能优化等多个方面&#xff0c;极大提升了函数组件的开发效率和代码复用性。 安装方法 npm install beautiful-react-hooks # 或 yarn add …

DOM 规范中的 MutationObserver 接口

MutationObserver 接口DOM规范中的 MutationObserver 接口可以在DOM被修改时异步执行回调。使用MutationObserver可以观察整个文档、DOM树的一部分或某个元素&#xff0c;元素属性、字节点、文本等。新引进的MutationObserver接口取代了已废弃的MutationEvent。MutationObserve…

3.7 小结

图3-7-1点云可视化点云可视化工具就像是打开点云数据宝藏大门的钥匙&#xff0c;能让我们直观地理解和分析这些复杂的数据。本章节&#xff0c;主要介绍了PCL、Open3D、Matplotlib、PCShow、VTK 这几种点云可视化工具。PCL&#xff08;Point Cloud Library&#xff09;是专注于…

对称二叉树、二叉树直径

101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; 法一&#xff1a;递归。 对于两个对称位置的节点L和R&#xff08;L在左子树&#xff0c;R在右子树&#xff09;&#xff0c;只有当L的左节点值R的右节点值且L的右节点值R的左节点值时&#xff0c;这棵二叉树才有可能对…

Java多线程1

线程是操作系统能够运行调度的最小单位&#xff0c;它包含在进程之中&#xff0c;是进程的实际运作单位多线程有三种实现方式线程实现方法1&#xff0c;继承Thread类&#xff08;无返回值&#xff09;&#xff1a;1、继承Thread2、重写run方法&#xff08;线程要执行的代码&…

云计算如何提高企业的数据安全性和隐私保护

在企业数字化转型加速推进的今天&#xff0c;数据安全与隐私保护已成为决定企业生存发展的核心命题。云计算凭借其灵活的架构优势&#xff0c;不仅重塑了企业资源管理模式&#xff0c;更在数据安全防护领域构建起多层次保障体系。以下从六大维度解析云计算如何为企业数据安全与…

GaussDB 数据库架构师修炼(二)数据库计算容量评估

1 计算资源容量评估主要流程 一般地是经过以下5个流程评估GaussDB的计算容量: 2 TPC-C基准测试介绍 1)TPC-C是业界常用的一套Benchmark 由TPC (Transaction Processing Performance Council)委员会制定发布,用于 评测数据库的联机交易处理(偏向OLTP)能力,测试结果数据…

开源 python 应用 开发(六)网络爬虫

最近有个项目需要做视觉自动化处理的工具&#xff0c;最后选用的软件为python&#xff0c;刚好这个机会进行系统学习。短时间学习&#xff0c;需要快速开发&#xff0c;所以记录要点步骤&#xff0c;防止忘记。 链接&#xff1a; 开源 python 应用 开发&#xff08;一&#xf…

flink sql读hive catalog数据,将string类型的时间戳数据排序后写入kafka,如何保障写入kafka的数据是有序的

在 Flink SQL 中&#xff0c;要确保从 Hive 读取的 STRING 类型时间戳数据排序后有序写入 Kafka&#xff0c;需要结合 批处理模式、时间类型转换、单分区写入 和 Kafka 生产者配置。以下是完整解决方案&#xff1a; 一、核心解决方案 1. 批处理模式 全局排序 将作业设置为批处…

7.17 滑动窗口 |assign |memo

lcp56. memo优化tle或者改用bfsclass Solution {int m, n;int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};public:int conveyorBelt(vector<string>& matrix, vector<int>& start, vector<int>& end) {int ret INT_MAX;m matrix.size();n…

统计功效是什么?

统计功效的通俗理解可以把“统计功效”想象成侦探破案的能力——它代表统计检验&#xff08;侦探&#xff09;在犯罪事实确实存在&#xff08;真实效应存在&#xff09;时&#xff0c;成功发现真相&#xff08;检测出效应&#xff09;的概率。核心比喻假设你是一个侦探&#xf…

大语言模型(LLM)训练的教师强制(Teacher Forcing)方法

大语言模型&#xff08;LLM&#xff09;在训练时使用一种名为“教师强制&#xff08;Teacher Forcing&#xff09;”的方法&#xff0c;而不是它们在推理&#xff08;生成文本&#xff09;时使用的“自回归&#xff08;Autoregressive&#xff09;”方法 。阐明关于LLM训练的一…

归一化与激活函数:深度学习的双引擎

归一化和激活函数区别 归一化和激活函数是深度学习中两个不同但又存在关联的技术,前者聚焦于“数据分布的调整”,后者聚焦于“引入非线性与输出转换”。 Softmax 既可以被视为一种归一化操作,也属于激活函数 因为它同时满足两者的核心特征,只是从不同角度定义:从“输出…

C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏

C# --- 单例类错误初始化 没有释放资源导致线程泄漏Background原因分析问题一&#xff1a; 错误初始化&#xff08;使用了箭头函数&#xff09;问题一&#xff1a; 没有Dispose资源Background 背景: service A的其中一个Api会向mq发送消息问题&#xff1a;线上发现这个服务经常…

MySQL基础学习之DML,DQL(二)

这里写目录标题一、DML1、INSERT语句1)、给指定列添加数据2)、给全部列添加数据3)、批量数据添加数据4)、操作2、UPDATE语句3、DELETE语句二、DQL1、单表查询1&#xff09;查询语法2&#xff09;查询全部3&#xff09;查询部分4&#xff09;条件查询5&#xff09;聚合函数6&…

在 Linux 系统中实现 Spring Boot 程序自动启动的最佳实践

在实际部署 Spring Boot 项目的生产环境中&#xff0c;如何确保服务自动启动&#xff08;如开机自动运行、宕机自动恢复&#xff09;是一项基础而关键的运维能力。本文将系统介绍如何在 Linux 中将 Spring Boot 应用注册为 systemd 服务&#xff0c;实现进程守护与自动启动。&a…

如何建立项目团队的自驱力文化?

建立项目团队的自驱力文化&#xff0c;关键在于赋权机制、目标共创、持续反馈、内在激励、价值认同。 其中&#xff0c;“目标共创”尤其重要。项目成员若未参与目标制定&#xff0c;仅被动接受任务&#xff0c;将很难激发责任感和参与热情。反之&#xff0c;通过共创目标&…

【React Native】布局文件-底部TabBar

布局文件-底部tabBar 内容配置 export default function Layout() {return (<Tabs />); }默认会将布局文件是将与它在同一个目录的所有文件&#xff0c;包括下级目录的文件&#xff0c;全都配置成Tab了。&#xff1a; 这样做显然不对&#xff0c;正确的做法是 在app目…