NeRF in the wild 论文解读与公式推导

news2024/11/19 1:51:00

NeRF in the Wild: Neural Radiance Fields for Unconstrained Photo Collections

论文:https://openaccess.thecvf.com/content/CVPR2021/papers/Martin-Brualla_NeRF_in_the_Wild_Neural_Radiance_Fields_for_Unconstrained_Photo_CVPR_2021_paper.pdfhttps://openaccess.thecvf.com/content/CVPR2021/papers/Martin-Brualla_NeRF_in_the_Wild_Neural_Radiance_Fields_for_Unconstrained_Photo_CVPR_2021_paper.pdf

code:  https://github.com/kwea123/nerf_pl/tree/nerfwhttps://github.com/kwea123/nerf_pl/tree/nerfw

1 论文概要:

我们提出了一种基于学习的方法,利用非结构化的野外照片集合合成复杂场景的新视角。我们在神经辐射场(NeRF)的基础上进行了改进,以解决在真实世界的图像中存在的光照和遮挡等问题。我们将我们的方法命名为NeRF-W,并将其应用于互联网上著名地标的照片集合,展示了更接近真实照片的新视角渲染效果。

2 问题的提出:

从稀疏的拍摄图像集合中合成场景的新视角是计算机视觉中一个长期存在的问题,也是许多增强现实和虚拟现实应用的前提。传统的技术通常使用运动结构或基于图像的渲染来解决这个问题,但是近年来,由于神经渲染技术的进展,这个领域取得了重大的进步。

神经辐射场(Neural Radiance Fields,NeRF)方法将学习模块嵌入到3D几何上下文中,并通过训练来重建观察到的图像。NeRF模型使用神经网络的权重来建模场景的辐射场和密度,然后利用体素渲染技术合成新的视角,展示了前所未有的高保真度。

然而,在受控环境中,NeRF模型的表现良好:场景在短时间内捕捉,光照效果保持恒定,并且场景中的所有内容都是静态的。然而,当场景中存在移动物体或变化的光照时,NeRF的性能会显著下降。这种限制阻碍了NeRF在大规模自然环境中的直接应用,这些环境下输入图像可能相隔数小时或数年,并且可能包含行人和车辆的移动。

Background:

NeRF的原始公式:

在上述公式中,R(r, c, σ)是颜色c和密度σ的体积渲染,c(t)和σ(t)分别表示点r(t)处的颜色和密度,α(x) = 1 - exp(-x),而δk = tk+1 - tk是两个积分点之间的距离。为了选择在tn和tf(相机的近平面和远平面)之间的积分点{tk},我们使用分层抽样。 

 参数θ = [θ1, θ2]是待拟合的参数,而编码函数是固定的。

生成σ(t)和c(t)时,最终的激活函数分别是ReLU和sigmoid,因为密度必须是非负的,颜色必须在[0, 1]范围内。与[NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis.]不同的是,我们将神经网络描述为两个MLP,其中后一个依赖于前一个的一个输出z(t),以突出体积密度σ(t)与视角方向d之间的独立性。

 为了拟合参数θ,NeRF最小化了对RGB图像集合的重建误差的平方和,其中每个图像Ii与其对应的内部和外部相机参数配对,这些参数可以使用结构从运动中估计得到[27]。我们预先计算与每个像素j对应的相机射线集合,每条射线通过三维位置oi并具有方向dij,其中

为了提高采样效率,NeRF同时优化两个MLP:一个粗糙模型和一个细致模型,其中粗糙模型预测的密度确定了细致模型的积分点采样。两个模型的参数通过最小化以下损失函数进行优化:

3 NeRF-W

我们现在介绍NeRF-W,这是一个用于从自然环境中的照片集合重建3D场景的系统。我们基于NeRF [24] 并引入了两个增强方法,专门处理无约束图像的挑战。与NeRF类似,我们从一个无结构的照片集合中学习了一个体积密度表示Fθ,其中相机参数是已知的。NeRF假设输入视图是一致的:即从两个不同图像中的相同位置和观察方向观察的三维空间点具有相同的强度。但是,这个假设在互联网照片中(如图2所示)被违反,原因有两个不同的现象:

      1. 光度变化:在户外摄影中,白天时间和大气条件直接影响场景中物体的照明(因此也影响辐射强度)。这个问题在摄影成像流程中更加严重,因为自动曝光设置、白平衡和色调映射在不同照片之间的变化可能导致额外的光度不一致性[4]。

     2. 瞬态物体:真实世界的地标很少在没有移动物体或遮挡物的情况下被捕捉到。尤其是地标的旅游照片往往具有挑战性,因为它们经常包含摆姿势的人物和其他行人。 

4. Method

4.1 潜在外观建模

为了适应可变的照明和光度后处理,我们采用了生成潜在优化(Generative Latent Optimization,GLO)的方法,其中每个图像Ii被分配一个相应的长度为n(a)的实值外观嵌入向量。我们用图像相关的辐射ci(t)替换方程(1)中的图像无关辐射c(t),这还引入了对图像索引i的依赖性,用于逼近的像素颜色。 

  

 

 将这些外观嵌入作为仅用于生成颜色的网络分支的输入,使我们的模型能够在特定图像中变化场景的辐射,同时保证之前由MLPθ1预测的3D几何结构是静态的并在所有图像中共享。通过将n(a)设置为一个较小的值,我们鼓励优化过程识别一个连续的空间,可以嵌入照明条件,从而实现条件之间的平滑插值,如图8所示。

Generative Latent Optimization,GLO的方法

生成潜在优化(Generative Latent Optimization,简称GLO)是一种用于无监督学习生成模型的方法。它由Bojanowski等人在2017年的论文《Generative Latent Optimization》中提出。

GLO的目标是学习一个生成模型,能够从给定的数据集中生成逼真的样本,而无需显式的标签或监督。GLO的关键思想是学习一个潜在空间表示,该表示能够捕捉数据中的潜在结构和变化。

GLO模型包括两个主要组件:编码器网络和生成器网络。编码器网络将输入样本从数据集映射到潜在空间中的潜在表示。生成器网络接受潜在空间中的样本,并生成对应的输出样本,使其与输入样本相匹配。

GLO的训练过程涉及一个优化过程,用于找到每个输入样本的最优潜在表示。这是通过最小化重构损失来实现的,该损失衡量输入样本与其相应的生成样本之间的差异。优化过程是迭代进行的,逐渐更新潜在表示以改善生成样本的质量。

在训练过程中,GLO还包括一个正则化项,以促使潜在表示遵循先验分布,例如标准高斯分布。这有助于规范化潜在空间,并提高生成模型的泛化能力。

一旦训练完成,GLO模型可以通过从潜在空间中采样并通过生成器网络传递样本来生成新的样本。生成器网络将潜在样本映射到数据空间,产生逼真的输出样本,类似于训练数据。

GLO已应用于多种任务,包括图像生成、图像补全和风格转换等。它在生成高质量样本和捕捉训练数据的潜在分布方面表现出有希望的结果,而无需显式的监督。

总之,生成潜在优化(GLO)是一种无监督学习生成模型的方法,利用优化过程来学习潜在空间表示。它能够生成逼真的样本,捕捉训练数据的变化和结构。

4.2. 瞬态物体

 我们通过两个不同的设计决策来处理瞬态现象:

首先,我们将NeRF中用于发射颜色的MLP(方程(4))指定为我们模型的“静态”部分,并添加一个额外的“瞬态”部分,该部分发射自己的颜色和密度,其中密度可以在训练图像中变化。这使得NeRF-W能够重建包含遮挡物的图像,而不会在静态场景表示中引入伪影

其次,我们不再假设所有观察到的像素颜色都是同样可靠的,我们允许短暂部分发射一个不确定性场(类似于我们现有的颜色和密度场),这使得我们的模型能够根据需要调整重建损失,忽略不可靠的像素和可能包含遮挡物的3D位置。

我们将每个像素的颜色建模为各向同性的正态分布,我们将最大化该分布的似然性,并使用NeRF使用的体素渲染方法来“渲染”该分布的方差。这两个模型组件使得NeRF-W能够在没有显式监督的情况下解耦静态和瞬态现象。

为了构建我们的瞬态部分,我们基于方程(6)的体素渲染公式,并在静态密度σ(t)和辐射ci(t)的基础上增加了瞬态密度σi(τ)(t)和瞬态辐射ci(τ)(t)。

 我们采用Kendall等人的贝叶斯学习框架[15]来建模观察到的颜色的不确定性。我们假设观察到的像素强度本质上是有噪声的(随机性的),并且进一步假设这种噪声是依赖于输入的(异方差的)。我们使用各向同性正态分布来建模观察到的颜色Ci(r),其中具有图像和射线依赖的方差βi(r)和均值ˆCi(r)。方差βi(r)通过类似于颜色的alpha合成进行“渲染”,根据短暂密度σi(τ)(t)来计算。

 为了使场景的短暂组件在图像之间变化,我们为每个训练图像Ii分配第二个嵌入,作为输入提供给短暂MLP。

 对于σi(τ)(t)和c(iτ)(t),使用ReLU和sigmoid激活函数,对于βi(t)使用softplus激活函数(通过βmin > 0进行偏移,βmin是一个超参数,用于确保对每个光线分配最小的重要性)。请参见图3,以了解我们完整的模型架构的示意图。

 图3:NeRF-W模型架构。给定一个3D位置、视角方向和学习的外观和瞬时嵌入,NeRF-W生成静态和瞬时的颜色和密度,并给出一个不确定性的度量。请注意,在模型基于外观嵌入进行条件化之前,生成静态不透明度,确保静态几何在所有图像中共享。

4.3 损失函数

对于图像i中的射线r,其真实颜色为Ci(r)的损失函数为:

前两项是Ci(r)相对于均值为ˆCi(r)、方差为βi(r)^2的正态分布的负对数似然。较大的βi(r)值会减弱对像素的重要性,假设该像素属于某个瞬态物体。第一项由第二项平衡,第二项对应于正态分布的对数分区函数,防止了βi(r) = ∞时的平凡最小值。第三项是L1正则化器,乘以λu,应用于非负瞬态密度σi(τ)(t),这样可以防止模型使用瞬态密度来解释静态现象。 在测试阶段,我们省略瞬态和不确定性字段,只渲染σ(t)和c(t)。

请参见图4,了解静态、瞬态和不确定性组成部分的示意图。 

图4:NeRF-W分别渲染场景的静态元素(a)和瞬态元素(b),然后进行合成(c)。训练通过不确定性(e)加权,最小化合成图像与真实图像之间的差异(d),同时优化以识别和折扣异常图像区域。照片由Flickr用户vasnic64 / CC BY提供。

4.4 Optimization

与NeRF类似,我们同时优化两个Fθ的副本:一个是细模型,使用上述模型和损失函数,另一个是粗模型,仅使用潜在外观建模组件。除了参数θ,我们还优化每个图像的外观嵌入和瞬态嵌入。NeRF-W的损失函数如下所示:

 λu, βmin和嵌入维度n(a)和n(τ)是NeRF-W的额外超参数集合。

由于优化过程只针对训练集中的图像生成外观嵌入,因此对于测试集图像的嵌入是未指定的。在测试集的可视化中,我们选择 来最好地拟合目标图像(例如图像8),或者将其设置为任意值。

 

 图 8:两个训练图像的外观嵌入 之间的插值,渲染的图像(中间),对其中颜色和照明进行插值,但几何形状保持不变。请注意,训练图像中包含的人物(左侧)和灯光(右侧)在渲染中不会出现。照片由 Flickr 用户 mightyohm、blatez / CC BY 提供。

5. Experiments

在这里,我们对 NeRF-W 在文化地标的无约束(例如“在野外”)互联网照片收集中进行了评估。我们从 Phototourism 数据集[13]中选择了六个地标。受先前的工作[22]的启发,我们重建了特维喷泉和圣心教堂,以及四个新场景,即勃兰登堡门、泰姬陵、布拉格老城广场和圣索非亚大教堂。这些场景的实证性能可在表格1中找到,

5.1 Baseline:

我们将我们提出的方法与Neural Rerendering in the Wild (NRW) [22]、NeRF [24]以及NeRF-W的两个消融模型进行了评估:NeRF-A(仅包含外观),其中消除了“瞬态”部分;NeRF-U(仅包含不确定性),其中消除了外观嵌入 。NeRF-W是NeRF-A和NeRF-U的组合。虽然还有其他一些类似领域的最新工作,如[18],但我们将基准模型限制在那些能够在数据集中所表示的视角之外进行显著外推的模型上。

5.2 Optimization:

在NeRF的基础上,我们使用Keras在TensorFlow 2中实现了所有的实验。 对于每个场景,我们使用COLMAP进行相机参数估计,启用了两个径向畸变和两个切向畸变参数。与NeRF一样,对于每个场景, 我们训练一个初始化为随机权重的模型
 我们使用Adam进行优化,使用8个GPU,在批量大小为2048的情况下,对所有的NeRF变种进行300,000步的训练(使用超参数β1 = 0.9、β2 = 0.999和ε = 10^(-7)。优化过程在使用8个GPU的情况下进行,每个场景的优化步数为300,000步,批量大小为2048,大约需要2天的时间完成。
所有NeRF变种共享的超参数是根据 Brandenburg Gate dataset的PSNR最大化选择的,并在所有其他场景中固定为这些值。NeRF-W的其他超参数通过网格搜索在 Brandenburg Gate dataset的保留验证集上最大化PSNR进行选择,并在所有其他场景中固定为这些值。有关超参数的其他详细信息,请参阅补充材料。

5.3 Evaluation:

我们评估的任务是新视角合成:给定一个保留的图像及其相应的相机参数,我们从相同的视角生成一幅图像,并将其与真实图像进行比较。
由于衡量感知图像相似性是具有挑战性的,我们提供生成的图像供视觉检查,并根据PSNR、MS-SSIM和LPIPS等指标报告定量结果。
由于优化过程只为训练集图像生成外观嵌入,当计算测试集图像的误差指标时,我们在每幅图像的左半部分上优化一个外观嵌入 ,并在右半部分报告指标(见图5)。有关误差指标的详细讨论,请参阅补充材料。

 图5:由于优化过程只为训练集图像生成外观嵌入,因此在评估测试集图像的误差指标时,我们仅使用每个图像的左半部分来优化 (a)以匹配真实图像的外观。误差指标仅在每个图像的右半部分进行评估,以避免信息泄漏。照片由Flickr用户eadaoinflynn / CC BY提供。

5.4 Results:

 图7展示了部分场景上所有模型和基线的定性结果。

NRW生成的渲染图像存在棋盘格伪影,这是2D重新渲染方法的特点[14]。NRW对于3D几何上游的错误非常敏感,比如在Prague Old Town的教堂较小的塔楼中可以看到这种情况。

NeRF生成了一致的3D几何结构,但是场景的大部分区域存在幽灵伪影和遮挡,尤其在Sacre Coeur和Prague Old Town上特别明显。与地面真实图像相比,NeRF的渲染图像还会出现明显的全局颜色偏移。这些伪影是NeRF的静态世界假设的直接结果。 NeRF试图使用单一场景表示来解释所有光度变化和瞬时遮挡。这种静态假设不仅影响了NeRF的渲染结果,也影响了其基础几何结构,而NeRF-W则能够产生准确的3D重建结果(图6)。

NeRF-A消除了NeRF中的“雾化”渲染效果,如图7所示。然而,NeRF-A无法重建出Sacré-Cœur圆顶上的砖砌细节等高频细节。相反,NeRF-U能够更好地捕捉细节,但无法模拟不同的光度效应。NeRF-W具有这两种消融方法的优点,因此能够产生更清晰、更准确的渲染结果。

定量结果总结在表1中。在野外照片集上优化NeRF会导致结果特别差,无法与NRW竞争。

相比之下,NeRF-W在PSNR和MS-SSIM上优于所有基线模型,并在所有数据集上取得了显著的改进。特别是,NeRF-W在PSNR上比之前的最先进方法NRW提高了平均4.4dB的边际效果,并在MS-SSIM上提升了高达40%。NeRF 模型评价指标PSNR,MS-SSIM, LPIPS 详解和python实现见链接http://t.csdn.cn/67qEjicon-default.png?t=N4P3http://t.csdn.cn/67qEj​​​​​​​尽管在训练过程中仅最小化每个像素的平方误差,但NeRF-W在LPIPS上改进了先前的最先进方法,其中有3个场景的改进效果,并在其他场景上保持竞争力。由于缺乏感知损失,NeRF-W没有激励产生被LPIPS等感知度量器所偏好的高频纹理

然而,NRW存在时间不稳定性问题 - 随着相机移动,渲染的图像会出现不真实的闪烁和摇晃,这些问题无法通过本文中使用的单张图像指标或图表来捕捉。我们强烈建议读者查看补充视频,观察NRW与NeRF和NeRF-W之间的时间不稳定性差异。

可控外观:使用潜在嵌入空间 建模外观的一个结果是,它可以在不改变底层3D几何的情况下修改渲染的照明和外观

在图1(右图)中,我们看到NeRF-W使用与四个训练集图像相关联的外观嵌入生成的四个渲染图像的切片。除了与训练集图像相关联的嵌入外,还可以将NeRF-W应用于同一空间中的任意向量。

在图8中,我们展示了从固定相机位置渲染的五个图像,在这些图像中,我们在左侧和右侧训练图像相关联的外观嵌入之间进行插值。请注意,渲染图像的外观在两个端点之间平滑过渡,而不会引入对3D几何的瑕疵。

 

 5.5 View-consistency:

图9展示了在相机沿直线路径平移时,NRW、NeRF和NeRF-W的“平面”光场渲染图像。NeRF-W的渲染图像更具视角一致性(Lambertian场景内容在不同视角下保持不变),并且比NRW或NeRF具有更少的闪烁。NRW无法对瞬态物体的帧间时间一致性建模,而NeRF则将视角相关效果强行嵌入场景表示中,作为有色的雾气效果。

5.6 Limitations:

尽管NeRF-W能够从非结构化的照片中产生逼真且在时间上保持一致的渲染图像,但在训练图像中很少观察到或只以非常倾斜的角度观察到的场景区域(例如地面)的渲染质量会下降,如图10所示。与NeRF类似,NeRF-W对相机校准误差也很敏感,这可能导致在由于相机校准不正确而成像的场景部分产生模糊的重建效果。

5.7  Synthetic Experiments

合成实验:NeRF-W的各个组成部分旨在处理特定形式的光度不一致,例如颜色偏移和遮挡物。不幸的是,Phototourism数据集的非受控性质意味着很难证明每个模型组件确实解决了其设计用于解决的混淆因素。因此,在补充材料中,我们进行了一项受控的消融研究,其中我们构建了一个用于[24]中的合成数据集的变种,其中手动引入了我们预期在野外图像中发现的现象。正如在补充材料中所看到的,这个消融研究的结果与我们的预期一致。

6. Conclusion

我们提出了NeRF-W,这是一种基于NeRF的新颖方法,用于从非结构化的互联网照片集合中重建复杂环境的3D场景。我们学习了一个针对每个图像的潜在嵌入,捕捉了野外数据中常见的光度外观变化,并将场景分解为图像相关和共享组件,使我们的模型能够将瞬时元素与静态场景区分开来。对真实世界(和合成)数据的实验评估表明,与先前最先进的方法相比,我们取得了显着的定性和定量改进。

7 补充材料:

模型参数

以下是我们记录的NeRF-W的选择超参数。

我们对超参数空间进行了网格搜索,以选择下面的值。请注意,这些值是针对Phototourism数据集中的Brandenburg Gate场景进行优化的,并在其他场景中重复使用。

与NeRF一样,我们使用MLP架构来建模密度和辐射。

我们对“基本”组件应用了8层512个隐藏单元

对“静态”和“瞬时/不确定性”组件分别应用了4层128个隐藏单元(参见图3)。

对于位置编码函数γ,我们在编码位置时使用15个频率,在编码视角时使用4个频率。

训练过程中,每条射线从粗糙模型和细化模型中采样512个点,每条射线总共采样1024个点。

在评估过程中,我们将该数量增加到2048个。

外观的潜在嵌入向量具有嵌入维度大小n (a) = 48。

对于瞬时对象,我们使用嵌入维度大小n (τ) = 16。

我们选择了0.01作为L1正则化器乘数λu,0.03作为最小重要性βmin。

模型使用Adam在300,000次迭代中进行训练,批量大小为2048,初始学习率为0.001,在每150,000次迭代后减小十倍。

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

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

相关文章

不同等级的Pads工程师,薪资差距有多大?

作为一种广泛应用在PCB设计的EDA工具,Pads软件在中国的电子设计行业中有着重要地位,尤其是不同等级的Pads工程师,在薪资、工作范围等有很大的差异,本文将从中国出发,多方面分析对比不同等级的Pads工程师,希…

监控、审计和运行时安全

监控、审计和运行时安全 目录 文章目录 监控、审计和运行时安全目录1、分析容器系统调用:SysdigSysdig介绍安装sysdigsysdig常用参数sysdig常用命令Chisels(实用的工具箱)其它命令 2、监控容器运行时:FalcoFalco介绍Falco架构安装falco自定义扩展规则文件…

ElasticSearch(ES)介绍

前言 为什么学习ElasticSearch? 1、ElasticSearch具备非常强的大数据分析能力。虽然Hadoop也可以做大数据分析,但是ElasticSearch的分析能力非常高,具备Hadoop不具备的能力。比如有时候用Hadoop分析一个结果,可能等待的时间比较…

免费获取程序员好书,这个宝藏网站等你来挖!

今天给大家分享一个免费的程序员、IT、互联网资源的​免费书籍网站。​ 书籍类型涵盖了Vue、CSS、小程序等前端语言、框架;.NET、JAVA、Go等后端语言;Android、IOS、Flutter等移动语言;数据库、云计算大数据、网络系统运维、UI美工设计、游戏…

【CASA模型】生态系统NPP及碳源、碳汇模拟、土地利用变化、未来气候变化、空间动态模拟实践技术应用

查看原文>>>生态系统NPP及碳源、碳汇模拟、土地利用变化、未来气候变化、空间动态模拟实践技术应用 由于全球变暖、大气中温室气体浓度逐年增加等问题的出现,“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放(碳源&am…

Jmeter调用Oracle、pg、MySql 储存过程,实例,获取返回值

JDBC Request: 1、重要参数说明: Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的Variable Name Bound Pool名字保持一致   Query:填写的sql语句未尾不要加“;”   Parameter valus:参数…

统信UOS系统开发笔记(四):从Qt源码编译安装之编译安装QtCreator4.11.2,并配置编译测试Demo

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131182539 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

激光雷达安全系统:让世界变得更安全

基于3D激光雷达的安全系统具有更高的可靠性,减少了误报,因此具有更高级别的安全性。激光雷达在安全和监视应用中越来越受欢迎,由于其高可靠性、远程、厘米级精度以及对具有挑战性的天气和照明条件不敏感等特点,它很容易击败相机或雷达等同行。 01 基于激光雷达的安全系统 …

技术文章—基于SPAD / SiPM技术的激光雷达方案

激光雷达(LiDAR)是一种测距技术,近年来越来越多地用于汽车先进驾驶辅助系统(ADAS)、手势识别和3D映射等应用。尤其在汽车领域,随着传感器融合的趋势,LiDAR结合成像、超声波、毫米波雷达,互为补足,为汽车提供全方位感知,为迈向更安全的自动驾驶铺平道路。安森美半导体提供…

简历项目合集

基于Arduino的超声波悬浮装置 超声波悬浮原理 项目图片 概述 实验需要使用Arduino驱动换能器产生一个40KHz的方波,可以使用换能器组,也可以使用Arduino的超声波模块。但是仅仅使用Arduino输出的方波信号的功率,并不足以使得小物体悬浮&…

【AI人工智能】 iTab浏览器标签页中最强大的AI功能莫过于此了, 你不用真的太可惜了! 最后一步就这样干(3)

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享博主 🐋 希望大家多多支持一下, 我们一起进步!😄 🏅 如果文章对你有帮助的话,欢迎评论 💬点赞&#x1…

对windows自带EFS加解密的研究

0x00 前言 0x01 测试环境 windows7专业版SP1: 在虚拟机中运行,创建了快照,当前账户名和密码为jizong/123456 0x02 EFS加解密原理: EFS加密实际上综合了对称加密和不对称加密,具体流程如下: (1) 随机生…

关于 MsgWaitForMultipleObjects 的理解

你是否希望有一个 WaitMessageTimeout 函数能帮助你干些特别的活? 很抱歉,没有这东西。 但是,你可以借助另外一个函数 MsgWaitForMultipleObjects 来间接的实现它。怎么做呢?请看下文。 >> 请移步至 topomel.com 以查看图片…

电弧打火机方案,点烟器单片机开发方案

市面上的打火机除了明火之外,还有电热丝、电弧两种类型的点烟器。电热丝在使用过程中会变细并且烧断。宇凡微推出的电弧打火机方案,该点烟器芯片为宇凡微单片机YF系列,电弧点烟器IC性价比高。 一、电弧打火机方案的原理 电弧打火机使用的是电…

量子机器学习Variational Quantum Classifier (VQC)简介

变分量子分类器(Variational Quantum Classifier,简称VQC)是一种利用量子计算技术进行分类任务的机器学习算法。它属于量子机器学习算法家族,旨在利用量子计算机的计算能力,潜在地提升经典机器学习方法的性能。 VQC的…

【Python】一文带你了解并使用 Json 模块

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

【历史上的今天】6 月 13 日:分组交换网路的“亲子纠纷”;博弈论创始人出生;交互式电视初现雏形

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 6 月 13 日,知名的 ENIAC 建造者约翰莫克利在历史上的这一天参观了 ABC 计算机,与 ABC 的设计者之一阿塔纳索夫会面。这次会面后来牵扯…

java发送QQ邮箱验证码实现登录注册、邮箱验证码防刷校验

文章目录 一:前台功能实现1.1 页面编写1.2 发送验证码——sendEmailCode1.2.1 远程调用发送接口1.2.1 接口防刷校验——60s内只能发送一次 二:获取QQ邮箱授权码2.1 登录QQ邮箱2.2 开启SMTP权限2.2.1 设置2.2.2 账户2.2.3 管理服务2.2.4 生成授权码2.2.5 …

新能源商用车:老玩家、新势力“争先恐后”

现如今,作为重要出行交通工具之一的汽车,已经在人们日常生活中扮演着愈发重要的角色。不仅如此,汽车行业也发生了不小的变化,新能源汽车的热度更是居高不下。除了各路玩家积极布局之外,新能源汽车的销量也是持续走高。…

python---列表和元组(1)

变量就是内存空间,用来表示/存储数据. 如果表示的数据少,直接定义几个变量就行了. 但是有的时候表示的数据比较多,就很麻烦 在python中就有列表和元组,就是这样的机制,可以用一个变量表示很多的数据. 这就类比于其他编程语言中的"数组" 列表和元组大部分的功能是差…