华为诺亚等发布MagicDrive3D:自动驾驶街景中任意视图渲染的可控3D生成

文章链接:https://arxiv.org/pdf/2405.14475

项目链接:https://flymin.github.io/magicdrive3d

虽然可控生成模型在图像和视频方面取得了显著成功,但在自动驾驶等无限场景中,高质量的3D场景生成模型仍然发展不足,主要原因是数据获取成本高。本文介绍了一种名为MagicDrive3D的新型pipeline,用于可控的3D街景生成,并支持多条件控制,包括鸟瞰(BEV)地图、3D目标和文本描述。

与先前的在训练生成模型之前进行重建的方法不同,MagicDrive3D首先训练视频生成模型,然后从生成的数据中进行重建。这种创新的方法使得生成过程易于控制,并且可以获取静态场景,从而实现高质量的场景重建。为了处理生成内容中的小错误,本文提出了使用单目深度初始化和外观建模的可变形Gaussian Splatting方法,以管理跨视点的曝光差异。通过在nuScenes数据集上的验证,MagicDrive3D生成了多样化的高质量3D驾驶场景,支持任意视角渲染,并增强了诸如鸟瞰图分割等下游任务。本文的结果展示了该框架的卓越性能,展现了其在自动驾驶仿真等领域的变革潜力。

MagicDrive3D生成的场景速览


介绍

随着生成模型的进步,特别是扩散模型的发展,生成3D资产的兴趣不断增加。尽管大量工作集中在以对象为中心的生成上,但生成开放式3D场景仍然相对未被探索。这一差距尤为关键,因为许多下游应用,如虚拟现实(VR)和自动驾驶仿真,需要可控的3D街景生成,这是一个尚未解决的挑战。

3D感知视图合成方法大致可以分为两类:无几何视图合成和几何聚焦场景生成。无几何方法直接基于相机参数生成2D图像或视频,在生成照片真实感图像方面表现出色。然而,它们通常缺乏足够的几何一致性,限制了其在超出数据集视点上的扩展能力。另一方面,几何聚焦方法(例如GAUDI和NF-LDM)从潜在输入生成3D表示(例如NeRF或体素网格),支持多视图渲染。尽管它们的适用范围更广,但这些方法需要昂贵的数据收集,要求静态场景和一致的传感器属性如曝光和白平衡。街景数据集,如nuScenes,通常无法满足这些要求,因此使用这些数据集训练几何聚焦3D街景生成模型极具挑战性。

认识到无几何视图合成方法在可控生成方面的进展,有潜力将其用作数据引擎。它们的可控性和照片真实感可以解决几何聚焦方法面临的挑战。然而,从无几何方法生成的合成视图中有限的3D一致性,如帧之间的时间不一致和对象变形,构成了将两种方法整合到统一框架中的关键问题。

为了解决这些挑战,本文提出了MagicDrive3D,这是一种结合无几何视图合成和几何聚焦重建的新型框架,用于可控的3D街景生成。如下图2所示,本文的方法从训练一个多视图视频生成模型开始,以合成静态场景的多个视图。

该模型使用来自目标框、道路地图、文本提示和相机位姿的控制进行配置。为了增强帧间的3D一致性,引入了表示LiDAR坐标之间相对转换的坐标embedding,以准确控制帧的位置。接下来,通过从先验知识、建模和损失函数的角度增强3DGaussian Splatting来改善生成视图的重建质量。鉴于不同相机视图之间的有限重叠,采用单目深度先验并提出了一个专门的算法用于稀疏视图设置中的对齐。此外,引入了可变形Gaussian Splatting和外观embedding图来处理局部动态和曝光差异。

通过大量实验验证,MagicDrive3D框架在生成符合道路地图、3D边界框和文本描述的高度真实感的街景方面表现出色,如下图1所示,展示了生成的相机视图可以增强鸟瞰图(BEV)分割任务的训练,为场景生成提供全面的控制,并能够为自动驾驶仿真创建新颖的街景。值得注意的是,MagicDrive3D是第一个使用仅六个相机视角的训练数据集(如nuScenes数据集)实现可控3D街景生成的框架。

本文贡献如下:

  • 提出了MagicDrive3D,这是第一个有效结合无几何和几何聚焦视图合成的框架,用于可控的3D街景生成。MagicDrive3D生成支持根据各种控制信号从任何相机视角渲染的真实3D街景。
  • 引入了一种相对姿态embedding技术,以生成具有改进3D一致性的视频。此外,通过定制的技术(包括可变形Gaussian Splatting)来处理生成视频中的局部动态和曝光差异,从而增强了重建质量。
  • 通过广泛的实验,证明了MagicDrive3D能够生成具有多维控制性的高质量街景。本文的结果还显示了合成数据提高了3D感知任务的性能,突显了本文方法的实际益处。

相关工作

3D场景生成
许多3D感知生成模型可以通过显式相机姿态控制生成图像,并且可能生成其他场景属性,但只有少数模型能够扩展到开放式3D场景生成。GSN 和GAUDI是生成室内场景的代表模型,它们利用NeRF结合潜在代码输入来生成“平面图”或三平面特征。然而,这些模型依赖于涵盖不同相机姿态的数据集,这与典型驾驶数据集(如nuScenes)中相机配置保持恒定的情况不兼容。NF-LDM开发了一个用于场景特征体素网格生成的分层潜在扩散模型,但其表示和复杂建模阻碍了细节的生成。

与以往专注于使用显式几何进行场景生成的方法不同,这些方法通常需要大量数据,不适用于典型的街景数据集(如nuScenes)。本文提出了将无几何视图合成与几何聚焦场景表示相结合的方法,以实现可控的街景生成。在方法上,LucidDreamer与本文的方法最为相似,但它依赖于文本控制的图像生成模型,不能算作视图合成模型。相反,本文的视频生成模型是3D感知的。此外,本文提出了比3D GS更好的场景生成质量的几项改进。

街景视频生成
扩散模型对从单视图到多视图视频生成的一系列工作产生了影响(例如[9, 29, 30, 32])。尽管跨视图一致性对多视图视频生成至关重要,但由于这些模型的数据中心性质,它们在相机姿态上的泛化能力有限。此外,这些模型缺乏对帧转换(即精确的汽车轨迹)的精确控制,这对于场景重建至关重要。本文的工作通过增强视频生成中的控制并提出专门的可变形Gaussian Splatting来解决这一问题,以保证几何一致性。

街景重建
街景的场景重建和新视图渲染在驾驶仿真、数据生成以及增强和虚拟现实等应用中非常有用。对于街景来说,场景动态和多相机数据收集的差异使得典型的大规模重建方法无效(例如[15, 16, 20])。因此,基于真实数据的重建方法(如[33, 34])利用LiDAR进行深度先验,但其输出仅允许从同一场景进行新视图渲染。与这些方法不同,本文的方法在多级条件控制下合成新场景。

预备知识

问题表述
本文专注于可控的街景生成。给定场景描述 ( S t ) ( S_t ) (St),本文的任务是从一组潜在变量 ( z ∼ N ( 0 , I ) ) ( z \sim \mathcal{N}(0, I)) (zN(0,I)) 中生成与描述对应的街景(用3D高斯分布 ( G ) ( G ) (G) 表示),即 ( G = G ( S t , z ) ) ( G = G(S_t, z)) (G=G(St,z))。为了描述街景,采用 [9, 30, 32] 中最常用的条件。具体来说,一个驾驶场景帧 ( S t = { M t , B t , L t } ) ( S_t = \{M_t, B_t, L_t\}) (St={Mt,Bt,Lt}) 由以下组成:

  • 道路地图 ( M t ∈ { 0 , 1 } w × h × c ) ( M_t \in \{0,1\}^{w \times h \times c}) (Mt{0,1}w×h×c) (一个二进制地图,表示鸟瞰图中 ( w × h ) ( w \times h ) (w×h) 米的道路区域,具有 ( c ) ( c ) (c) 个语义类)
  • 3D边界框 ( B t = { ( c i , b i ) } i = 1 N ) ( B_t = \{(c_i, b_i)\}_{i=1}^N ) (Bt={(ci,bi)}i=1N) (每个对象由边界框 ( b i = { ( x j , y j , z j ) } j = 1 8 ∈ R 8 × 3 ) ( b_i = \{(x_j, y_j, z_j)\}_{j=1}^8 \in \mathbb{R}^{8 \times 3} ) (bi={(xj,yj,zj)}j=18R8×3) 和类 ( c i ∈ C ) ( c_i \in C ) (ciC) 描述)
  • 描述场景附加信息的文本 ( L t ) ( L_t ) (Lt) (例如,天气和时间)

在本文中,根据自车的LiDAR坐标对所有几何信息进行参数化。

场景生成的一个直接应用是任意视图渲染。具体来说,给定任意相机姿态 ( P = [ K , R , t ] ) ( P = [K, R, t] ) (P=[K,R,t])(即内参、旋转和平移),模型 ( G ( ⋅ ) ) ( G(\cdot) ) (G()) 应该渲染具有3D一致性的照片级真实视图 ( I r = G ( P ) ) ( I_r = G(P) ) (Ir=G(P)),这在之前的街景生成方法(如[9, 30, 32])中是不适用的。

3D Gaussian Splatting
简要介绍3D Gaussian Splatting(3DGS),因为本文的场景表示基于它。3DGS 通过一组3D高斯分布 ( G ) ( G ) (G) 来表示几何和外观。每个3D高斯分布由其位置 ( μ p ) ( \mu_p ) (μp)、各向异性协方差 ( Σ p ) ( \Sigma_p ) (Σp)、不透明度 ( α p ) ( \alpha_p ) (αp) 和用于视角相关颜色的球谐系数 ( c p ) ( c_p ) (cp) 描述。给定一个稀疏点云 ( P ) ( P ) (P) 和若干相机视图 ( { I i } ) ( \{I_i\} ) ({Ii}) 及其姿态 ( { P i } ) ( \{P_i\} ) ({Pi}),应用基于点的体积渲染,通过梯度下降和交织点密化使高斯分布可优化。具体来说,其损失函数如下:

其中 ( I r ) ( I^r ) (Ir) 是渲染图像, ( λ ) ( \lambda ) (λ) 是一个超参数, ( L D − S S I M ) ( L_{D-SSIM} ) (LDSSIM) 表示 D-SSIM 损失。

方法

本节介绍可控街景生成流程。由于数据收集过程中存在的挑战,研究者们整合了无几何视图合成和几何聚焦重建,并提出了一种生成-重建流程,详见前面图2。具体来说,引入了一个可控视频生成模型,将控制信号与相机视图连接,并从先验、建模和损失角度增强3DGS,以更好地使用生成视图进行重建。

3D街景生成

直接建模可控街景生成面临两个主要挑战:场景动态和数据收集中的差异。场景动态指的是场景中元素的移动和变形,而数据收集中的差异指的是由于数据收集造成的差异(例如曝光)。由于街景摄像头的稀疏性(例如,通常只有6个周围视角摄像头),这两个挑战更加严峻。因此,重建-生成框架不适用于街景生成。

前面图2展示了MagicDrive3D的概述。给定场景描述 S S S 作为输入,MagicDrive3D首先根据预设的相机姿态 { P c , t P_{c,t} Pc,t} 将描述扩展为序列 { S t } \{S_t\} {St},其中 $ t \in [0,T] KaTeX parse error: Expected '}', got 'EOF' at end of input: ,并根据条件 {S_t, P_{c,t}KaTeX parse error: Expected '}', got 'EOF' at end of input: … 生成连续的多视图图像序列 {I_{c,t}$},其中 $ c \in \{1, …, N\} $ 指的是 $ N$ 个周围摄像头。然后,以 { I c , t } \{I_{c,t}\} {Ic,t} 和相机姿态 { P c , t P_{c,t} Pc,t} $作为输入,构建场景的高斯表示。此步骤包含一个使用预训练的单目深度模型的初始化过程和一个使用可变形Gaussian Splatting的优化过程。因此,生成的街景不仅支持任意视图渲染,还能准确反映不同的控制信号。

MagicDrive3D整合了无几何视图合成和几何聚焦重建,其中控制信号由多视图视频生成器处理,而重建步骤保证了任意视图渲染的泛化能力。这种视频生成器有两个优势:首先,由于多视图视频生成不需要对新视图进行泛化,它对街景的数据依赖性较小;其次,通过条件训练,模型能够解构控制信号,从而将动态场景转化为静态场景,更有利于重建。此外,对于重建步骤,多视图视频的强先验减少了复杂细节场景建模的负担。

视频生成的相对姿态控制

给定场景描述和一系列相机姿态 { S t , P c , t S_t, P_{c,t} St,Pc,t},本文的视频生成器负责多视图视频生成。尽管许多之前的街景生成技术如 [9, 29, 30, 32] 达到了富有表现力的视觉效果,但它们的公式中缺少了3D建模的关键要求。具体来说,相机姿态 P c , t P_{c,t} Pc,t 通常是相对于每帧的LiDAR坐标系的。因此,没有与自车轨迹相关的精确控制信号,这显著影响了不同 t t t 时刻视图之间的几何关系。

在本文视频生成模型中,通过将每帧到第一帧之间的变换 T t 0 T^0_t Tt0 加入模型,来修正这种精确控制能力。为了恰当地编码这些信息,采用了带有多层感知器(MLP)的傅里叶embedding,并将embedding与 P c , t P_{c,t} Pc,t 的原始embedding进行连接,类似于[9]。结果是,本文的视频生成器在帧之间提供了更好的3D一致性,最重要的是,使得每个视图的相机姿态在同一坐标系中可用,即 [ R c , t 0 , t c , t 0 ] = T t 0 [ R c , t , t c , t ] [R^0_{c,t}, t^0_{c,t}] = T^0_t[R_{c,t}, t_{c,t}] [Rc,t0,tc,t0]=Tt0[Rc,t,tc,t]

生成内容的增强Gaussian Splatting

3DGS 是一种灵活的显式表示方法,用于场景重建。此外,3DGS 的快速训练和渲染速度使其非常适合于在本文的场景创建流程中降低生成成本。然而,与其他3D重建方法类似,3DGS 需要在像素级别上具有高度的跨视图3D一致性,这不可避免地将生成数据中的微小错误放大成明显的伪影。因此,从先验、建模和损失的角度对3DGS 进行了改进,使其能够容忍生成相机视图中的小误差,从而成为增强渲染中几何一致性的有力工具。

先验:一致的深度先验。 作为重要的几何信息,深度在街景重建中被广泛使用,例如在 [33, 34] 中使用的来自 LiDAR 或其他深度传感器的深度值。然而,对于合成的相机视图,深度是不可用的。因此,建议使用预训练的单目深度估计器来推断深度信息。

虽然单目深度估计是针对每个相机视图单独进行的,但应估计适当的比例 s c , t s_{c,t} sc,t 和偏移 b c , t b_{c,t} bc,t 参数以对齐单个场景,如下图3(a)所示。为此,首先应用来自运动结构(SfM)的点云(PCD),如图3(b)所示。

然而,这样的PCD 太稀疏,无法准确恢复任何视图的 s c , t s_{c,t} sc,t, b c , t b_{c,t} bc,t。为了解决这个问题,进一步提出使用 GS 损失优化 ( s c , t , b c , t s_{c,t}, b_{c,t} sc,t,bc,t),如上图3©所示。具体来说,( s c , t , b c , t s_{c,t}, b_{c,t} sc,t,bc,t) 替换对高斯中心 $ \mu_i$ 的优化。在优化之后,用深度值的点初始化 $ \mu_i$。由于 GS 算法对准确的点初始化非常敏感,本文的方法为在这种稀疏视图场景中进行重建提供了有用的先验。

建模:局部动态的可变形高斯。 尽管本文的视频生成模型提供了3D几何一致性,但在某些对象细节上不可避免地存在像素级差异,如图4所示。3DGS 的严格一致性假设可能会放大这些小错误,导致浮动伪影。为减轻这些错误的影响,本文提出了可变形高斯分裂(DGS),基于3DGS,降低了帧间时间一致性的要求,从而保证生成视点的重建效果。

具体来说,如下图4所示,选择中心帧 t = t C t = t_C t=tC 作为规范空间,并在该空间中强制应用所有高斯。

因此,为每个高斯分配一组偏移 $ \mu^o_p(t) \in \mathbb{R}^3$,其中 $ t \in [1, …, T]$ 且 $ \mu^o_p(t_C) \equiv 0$。请注意,来自同一时刻的不同相机视图对于每个高斯共享相同的 $ \mu^o_p(t)$,对它们进行正则化以保持局部动态,如方程2所示:

因此,$ mu^o_p(t)$ 可以处理由像素级别差异驱动的局部动态,而 $ \mu $ 则关注全局几何相关性。它通过利用不同视角之间的一致部分来确保场景重建的质量,同时消除伪影。此外,由于相机姿态相对于 SE(3) 的解析梯度,还在 GS 迭代的最后几步中使相机姿态可优化,这有助于减轻来自相机姿态的局部动态。

损失:用外观建模对齐曝光。 典型的街景数据集是使用多个摄像头收集的,这些摄像头通过自动曝光和自动白平衡独立捕捉视图。由于视频生成是优化以匹配原始数据分布的,因此来自不同摄像头的差异也存在于生成的数据中。外观差异是野外重建的众所周知的问题。本文提出了一种专用的外观建模技术用于GS表示。

假设不同视图之间的差异可以由第 i 个摄像头视图的仿射变换 A i ( ⋅ ) A_i(\cdot) Ai() 来表示。为每个视图分配一个外观embedding(AE)映射 e i ∈ R w e × h e × c e e_i \in \mathbb{R}^{w_e \times h_e \times c_e} eiRwe×he×ce,并利用卷积神经网络(CNN)来近似这个变换矩阵 w A ∈ R w × h × 3 w_A \in \mathbb{R}^{w \times h \times 3} wARw×h×3。通过转换后的图像进行像素级别的 ℓ1 损失的最终计算。因此,DGS的最终损失如下:

优化流程。 在算法1中展示了所提出的DGS的整体优化流程。第2行是对单目深度的第一次优化。第4-8行是对单目深度的第二次优化。第10-16行是DGS重建的主循环,其中考虑了高斯的时间偏移、相机姿态优化以处理局部动态,以及AEs来处理视图间的外观差异。

实验

实验设置

数据集。 使用 nuScenes 数据集 对MagicDrive3D 进行测试,该数据集通常用于生成和重建街景视图。研究者们遵循官方配置,使用约700个大约20秒的街景视频剪辑进行训练,另外使用150个剪辑进行验证。在控制信号的语义方面,遵循[9],使用10个物体类别和8个道路类别。

指标和设置。 主要使用 Fréchet Inception Distance (FID) 对 MagicDrive3D 进行评估,通过渲染在数据集中未见过的新视图,并将它们的 FID 与真实图像进行比较。此外,使用 Fréchet Video Distance (FVD) 评估方法的视频生成能力,并使用 L1、PSNR、SSIM 和 LPIPS评估其重建性能。对于重建评估,采用两种测试场景:360°,其中所有从 t = 9 开始的六个视图保留用于在规范空间中测试重建;和变化的 t,其中从不同的 t 随机采样一个视图,以评估通过 t 的长距离重建能力在规范空间中(如下表1所示)。

实现。 对于视频生成,基于来自[9]的预训练街景图像生成模型来训练本文的生成器。通过添加所提出的相对姿态控制,在 nuScenes 训练集上进行了 4 个时期(77040 步)的训练,学习率为 8 e − 5 8e^{−5} 8e5。遵循[9]中描述的 7 帧视频的设置,每个视图使用 224 × 400,但将扩展到 T = 16 帧。因此,对于重建,选择 t = 8 作为规范空间。除了将前 500 步用于优化每个视图的 ( s c , t , b c , t ) (s_{c,t}, b_{c,t}) (sc,t,bc,t) 并设置 $ \lambda_{reg_o} = 1.0$ 外,其他设置与 3DGS 相同。

主要结果

生成质量。 如下表2所示,生成质量的评估涉及两个方面。首先,使用扩展的 16 帧 MagicDrive 作为基线评估视频生成质量。

尽管基于 FID 的单帧质量略有改善,但 MagicDrive3D 极大地提升了视频质量(如 FVD 所示),表明了提出的相对相机姿态embedding在增强时间一致性方面的有效性。其次,使用 FID 评估从生成场景渲染的图像质量。还在下图5中包括了定性比较。与 3DGS 相比,增强的 DGS 在重建内容的视觉质量方面有显著提升,特别是在未见过的新视图中。

重建质量。 增强的3DGS 作为一种重建方法,通过将渲染图与真值(GT)图像进行比较进一步评估。这里,来自视频生成器的生成视图被视为GT。根据表1中的两个设置,结果显示在下表3中。根据所有指标,增强的3DGS 不仅改善了训练视图的重建质量,而且与3DGS 相比,还大幅提升了测试视图的质量。

可控性。 MagicDrive3D 接受 3D 边界框、BEV 地图和文本作为控制信号,每个信号都具有独立操作场景的能力。为了展示这种可控性,编辑了 nuScenes 验证集中的一个场景,如图6所示。显然,MagicDrive3D 可以有效地改变场景的生成,以与各种控制信号保持一致,同时保持 3D 几何一致性。

消融研究

对增强高斯分散进行消融。 如前面所述,对3DGS进行了三项增强 - 先验、建模和损失。为了评估它们的效果,从最终算法中将每个部分消除,并显示结果如下表4所示。

符号“w/o depth scale opt”和“w/o depth opt”表示没有对 $ (s_{c,t}, b_{c,t})$ 进行GS损失优化,而是直接使用单目深度模型的输出,各组件的去除降低了方法的性能,而不正确的深度有时比3DGS基线效果更差。“vary-t”中AE的去除导致了PSNR的下降,但改善了LPIPS,这是合理的,因为AE在重建过程中缓解了像素级的颜色约束。

应用

感知任务的训练支持。 本文展示了一个应用,街景生成作为感知任务的数据引擎,利用任意视角渲染的优势来提高视角鲁棒性。采用了 CVT 和 BEV 分割任务,遵循 [9, 37] 的评估协议。通过在 FRONT 相机上增加 4 个不同的装置,并添加渲染视图进行训练,可以减轻来自视角变化的负面影响,下表5展示了这一点,说明了街景生成在训练感知任务中的实用性。

结论与讨论

本文介绍了MagicDrive3D,一个独特的3D街景生成框架,它集成了几何无关的视图合成和几何集中的3D表示。MagicDrive3D显著减少了数据需求,使其能够在典型的自动驾驶数据集(如nuScenes)上进行训练。在生成-重建pipeline中,MagicDrive3D使用视频生成模型来增强帧间一致性,而增强的可变形GS则提高了从生成视图中重建的质量。综合实验表明,MagicDrive3D能够生成具有多层次控制的高质量3D街景。此外,我们展示了场景生成可以作为感知任务(如BEV分割)的数据引擎。

局限性与未来工作。

作为一种以数据为中心的方法,MagicDrive3D有时在生成复杂对象(如行人)的外观时会遇到困难。此外,由于重建方法的限制,高纹理细节区域(例如道路围栏)或小空间特征(例如路灯杆)有时生成效果较差。未来的工作可能会专注于解决这些挑战,进一步提高生成3D场景的质量和鲁棒性。

参考文献

[1] MagicDrive3D: Controllable 3D Generation for Any-View Rendering in Street Scenes

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

排序算法之直接选择排序【图文详解】

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:LiUEEEEE                        …

配置arduino和ESP8266

首先准备好arduino 的IDE和ESP8266的驱动以及板子 1.安装驱动,双击x64的版本驱动,安装好以后,在资源管理器检查端口,比如下下图出现的COM4就是esp8266所使用的端口 2.安装好arduino最好不要在路径中存在中文符号,打开…

计量校准和检定的联系是什么?它们有什么区别?

计量中,计量校准和检定一直形影不离,很多人也会经常搞混两者的定义,不清楚二者的区别,计量校准和检定有什么联系也不明白,因此有时候经常在需要做校准的时候,去花大价钱检定,在需要检定的时候&a…

重生奇迹MU召唤师如何学习狂暴术?

一、了解狂暴术的基本信息 狂暴术是一种非常强大的技能,可以让召唤师的攻击力和防御力大幅度提高,但同时也会增加自身的伤害。在使用狂暴术之前,召唤师需要仔细考虑自己的状态和对手的情况。 二、学习狂暴术的方法 1.通过任务学习 在游戏…

NKCTF 2024 webshell_pro

还是正常的HTTP流量 既然是webshell一定是看POST流量 对每一个进行追踪tcp流 最终发现 在 流9 (tcp.stream eq 9)存在 base32 -->base64的流量的加密逻辑 import base64import libnum from Crypto.PublicKey import RSApubkey """-----BEGIN PUBLIC KEY…

LeeCode热题100(两数之和)

本文纯干货,看不懂来打我! 自己先去看一下第一题的题目两数之和:. - 力扣(LeetCode) 简单来说就是让你在一个数组里面找两个数,这两个数的和必须满足等于目标值target才行。 我认为你要是没有思路的话&a…

骨传导耳机哪一款比较值得入手?年度精选好用骨传导耳机推荐

现在很多年轻人都会选择用骨传导耳机,因为骨传导耳机更加方便,不用入耳,不会伤害到耳朵,对耳膜也没有什么伤害。同时,因为骨传导耳机的结构也比较简单,所以佩戴也会更加舒适。接下来就给大家推荐几款口碑不…

【Python内功心法】:深挖内置函数,释放语言潜能

文章目录 🚀一、常见内置函数🌈二、高级内置函数⭐1. enumerate函数👊2. eval函数❤️3. exec函数💥4. eval与exec 中 globals与locals如何用☔4-1 globals 参数🎬4-2 locals 参数 ❤️5. filter函数👊6. z…

【机器学习】智能选择的艺术:决策树在机器学习中的深度剖析

在机器学习的分类和回归问题中,决策树是一种广泛使用的算法。决策树模型因其直观性、易于理解和实现,以及处理分类和数值特征的能力而备受欢迎。本文将解释决策树算法的概念、原理、应用、优化方法以及未来的发展方向。 🚀时空传送门 &#x…

解决Windows 10通过SSH连接Ubuntu 20.04时的“Permission Denied”错误

在使用SSH连接远程服务器时,我们经常可能遇到各种连接错误,其中“Permission denied, please try again”是较为常见的一种。本文将分享一次实际案例的解决过程,帮助你理解如何排查并解决这类问题。 问题描述 在尝试从Windows 10系统通过SS…

如何设置手机的DNS

DNS 服务器 IP 地址 苹果 华为 小米 OPPO VIVO DNS 服务器 IP 地址 中国大陆部分地区会被运营商屏蔽网络导致无法访问,可修改手机DNS解决。 推荐 阿里的DNS (223.5.5.5)或 114 (114.114.114.114和114.114.115.115) 更多公开DNS参考: 苹果…

一个浏览器插件,绕过限制,登录微信网页版!

摘要 早在2017年开始,微信网页版就已经住逐渐开始停止登录,以为了保障你的账号安全为由引导你使用电脑版微信。具体如下: 当然这个影响并不是所有账号,还是有一些账号不明觉厉地没有被影响到,我自己有2个号都还是可以…

记一次服务器数据库被攻击勒索

如图,早上一起来就发现,我的MongoDB数据库里面的信息全部没有了,只留下一段话。 大致意思就是:我的数据库的数据被他们备份然后全部删掉了,我必须要支付0.0059的bitcoin(折合400美刀)来赎回我的…

自动化桌面整理新时代:Llama 3驱动的智能文件管理系统

在信息爆炸的时代,个人和企业用户的电脑桌面常常被海量文件占据,导致查找特定文件如同大海捞针。为了解决这一痛点,Llama 3应运而生——一个集成了先进多模态AI技术的智能文件管家,旨在将杂乱无章的文件世界变得井然有序。本文将深入探讨Llama 3如何利用其创新功能,不仅自…

详解生成式人工智能的开发过程

回到机器学习的“古老”时代,在您可以使用大型语言模型(LLM)作为调优模型的基础之前,您基本上必须在所有数据上训练每个可能的机器学习模型,以找到最佳(或最不糟糕)的拟合。 开发生成式人工智能…

代码随想录算法训练营第36期DAY44

DAY44 闫氏DP 2 01背包问题 用滚动数组来优化空间&#xff0c;从后向前&#xff08;大到小&#xff09;遍历j #include<iostream>using namespace std;const int N1010;int n,m;int v[N],w[N];int f[N][N];//所有只考虑前i个物品&#xff0c;**且总体积不超过j**的选法…

【原创】springboot+mysql医院预约挂号管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

禁止Windows Defender任务计划程序

开始键->搜索“任务计划程序”->“任务计划程序库”->“Microsoft”->"Windows"->"Windows Defender"->右边四项

【Redis】List源码剖析

大家好&#xff0c;我是白晨&#xff0c;一个不是很能熬夜&#xff0c;但是也想日更的人。如果喜欢这篇文章&#xff0c;点个赞&#x1f44d;&#xff0c;关注一下&#x1f440;白晨吧&#xff01;你的支持就是我最大的动力&#xff01;&#x1f4aa;&#x1f4aa;&#x1f4aa…

Scrapy vs. Beautiful Soup | 网络抓取教程 2024

网络爬虫是任何想要从网上收集数据用于分析、研究或商业智能的人必备的技能。Python中两个最受欢迎的网络爬虫工具是Scrapy和Beautiful Soup。在本教程中&#xff0c;我们将比较这些工具&#xff0c;探索它们的功能&#xff0c;并指导你如何有效地使用它们。此外&#xff0c;我…