当前位置: 首页 > article >正文

详解3DGS

4 可微分的3D高斯 splatting

核心目标与表示选择

我们的目标是从无法线的稀疏SfM点出发,优化出一种能够实现高质量新视角合成的场景表示。为此,我们选择3D高斯作为基本图元,它兼具可微分的体表示特性非结构化的显式表示优势,既能支持优化过程,又能实现快速渲染。

高斯参数与投影模型
  1. 3D高斯定义
    高斯由世界空间中的均值(位置) μ \mu μ和协方差矩阵 ∑ \sum 定义,其概率密度函数为:

G ( x ) = e − 1 2 ( x − μ ) T ∑ − 1 ( x − μ ) G(x) = e^{-\frac{1}{2}(x-\mu)^T \sum^{-1}(x-\mu)} G(x)=e21(xμ)T1(xμ)

其中,协方差矩阵 ∑ \sum 描述了高斯的形状和方向,通过缩放矩阵 S S S和旋转矩阵 R R R分解为:
∑ = R S S T R T \sum = R S S^T R^T =RSSTRT
这种分解方式将协方差的优化转化为对缩放向量 s s s(3个自由度)和旋转四元数 q q q(4个自由度,归一化后3个自由度)的优化,避免了直接优化协方差矩阵时的正半定性约束问题。

  1. 投影到2D图像空间
    通过相机变换 V V V和投影雅可比矩阵 J J J,将3D高斯投影为图像空间中的2D椭圆。投影后的协方差矩阵 ∑ ′ \sum' 为:

∑ ′ = J V ∑ V T J T \sum' = J V \sum V^T J^T =JVVTJT

取其左上角2x2子矩阵,即可得到与传统基于点的方法(如使用法线的平面点)等价的2D方差矩阵,用于渲染时的 α \alpha α混合。

优化与梯度计算
  1. 参数优化
    优化参数包括高斯的位置、缩放、旋转、不透明度 α \alpha α和球面调和函数(SH)系数(用于表示颜色的视图相关性)。通过随机梯度下降(SGD)最小化 L 1 L_1 L1损失和D-SSIM损失的加权和:

L = ( 1 − λ ) L L 1 + λ L D - S S I M ( λ = 0.2 ) \mathcal{L} = (1-\lambda)\mathcal{L}_{L1} + \lambda\mathcal{L}_{D\text{-}SSIM} \quad (\lambda=0.2) L=(1λ)LL1+λLD-SSIM(λ=0.2)

采用指数衰减学习率调度,并通过 sigmoid 和指数激活函数约束参数范围。

  1. 显式梯度推导
    为避免自动微分的开销,手动推导了缩放 s s s和旋转 q q q的梯度。通过链式法则,将协方差矩阵的梯度分解为对旋转矩阵和缩放矩阵的导数,利用四元数与旋转矩阵的转换关系,推导出各参数的梯度表达式。
优势与应用
  • 灵活性与紧凑性:3D高斯的各向异性特性使其能自适应复杂几何结构(如薄结构、曲面),通过优化协方差矩阵,仅需1-5百万个高斯即可精确表示场景,远少于传统点云方法。
  • 可微分渲染:投影和渲染过程完全可微分,支持端到端优化,结合后续的自适应密度控制和快速光栅化,实现了高质量、实时的新视角合成。
与其他方法的对比

相较于基于神经网络的NeRF方法(如Mip-NeRF360),3D高斯 splatting无需密集采样和体积渲染,通过显式几何表示和GPU加速的光栅化,显著提升了训练和渲染速度;相较于传统点云方法,其可微分特性和各向异性建模能力显著提高了重建质量。

5 3D高斯的自适应密度控制优化

一、核心目标与优化框架

目标:通过优化3D高斯的参数(位置、协方差、不透明度、颜色)和动态调整高斯密度,生成精确的场景表示,实现高质量新视角合成。
输入:SfM(结构从运动)生成的稀疏点云、多视图图像。
框架

  1. 初始化:从SfM点云创建初始3D高斯集合,每个高斯由位置、各向同性协方差、初始不透明度和颜色(球面调和函数系数)定义。
  2. 迭代优化:通过可微分渲染将高斯投影为图像,与真实图像对比计算损失(L1 + D-SSIM),使用随机梯度下降(SGD)更新参数。
  3. 自适应密度控制:在优化过程中动态添加或删除高斯,平衡模型复杂度与重建精度。
二、优化参数与损失函数
  1. 优化参数
    • 几何参数:3D位置 (\mathbf{p})、各向异性协方差(缩放 (\mathbf{s})、旋转 (\mathbf{q}))、不透明度 (\alpha),
    • 外观参数:球面调和函数(SH)系数,用于表示视角相关的颜色(如漫反射、高光)。
  2. 损失函数
    [
    \mathcal{L} = (1-\lambda)\mathcal{L}{\text{L1}} + \lambda\mathcal{L}{\text{D-SSIM}} \quad (\lambda=0.2)
    ]
    • (\mathcal{L}_{\text{L1}}) 衡量渲染图像与真实图像的像素级差异,
    • (\mathcal{L}_{\text{D-SSIM}}) 衡量结构相似性,提升感知质量。
  3. 激活函数与约束
    • sigmoid 约束 (\alpha \in [0, 1)),
    • 指数函数 约束协方差缩放因子为正,
    • 四元数 (\mathbf{q}) 归一化为单位四元数,确保旋转矩阵有效。
三、自适应密度控制:克隆与分裂策略

为解决场景中欠重建(几何缺失)过重建(几何冗余)问题,通过梯度分析动态调整高斯密度:

  1. 欠重建区域(小高斯,高梯度)
    • 检测:若高斯在视图空间的位置梯度均值超过阈值 (\tau_{\text{pos}}=0.0002),且协方差规模较小(低于阈值 (\tau_S)),视为欠重建。
    • 操作克隆高斯,复制当前高斯并沿梯度方向移动,填补几何缺口(图4上排)。
  2. 过重建区域(大高斯,高方差)
    • 检测:若高斯协方差规模较大(高于 (\tau_S)),且覆盖区域细节复杂,视为过重建。
    • 操作分裂高斯,将一个大高斯拆分为两个小高斯,缩放因子除以 (\phi=1.6),并在原高斯的概率密度函数(PDF)上采样初始化新位置(图4下排)。
  3. 剪枝操作
    • 删除不透明度 (\alpha < \epsilon_{\alpha})(如 (\epsilon_{\alpha}=1e-4))的透明高斯,
    • 删除世界空间中尺寸过大或视图空间中投影面积过大的高斯,避免“飞点”和冗余计算。
四、优化流程与关键技术
  1. 分辨率热身(Warm-up)
    从低分辨率(原图1/4)开始优化,每250-500次迭代逐步提升至全分辨率,避免高分辨率下的优化震荡。
  2. 球面调和函数分步优化
    初始仅优化SH零阶系数(漫反射颜色),每1000次迭代添加高一阶系数,避免因视角覆盖不足导致的颜色失真。
  3. 快速可微分渲染
    • 基于瓦片(Tile-based)的光栅化器,将屏幕划分为16×16像素块,对每个瓦片内的高斯按深度排序,
    • 支持各向异性高斯的 (\alpha) 混合,通过Radix排序和共享内存加速,确保优化阶段的渲染速度(135 FPS,文档表1)。
五、效果与优势
  1. 紧凑表示:通过自适应密度控制,仅需1-5百万个高斯即可精确表示复杂场景,远少于传统点云方法(如Point-NeRF需数千万点)。
  2. 几何适应性:各向异性高斯可拟合薄结构(如叶片)、曲面和远距离细节,如图3所示,优化后的高斯通过协方差调整呈现椭球形状,贴合真实几何。
  3. 训练效率:在Mip-NeRF360数据集上,30K次迭代仅需约51分钟,远快于Mip-NeRF360的48小时,且PSNR达25.2,超越InstantNGP和Plenoxels(文档图1、表1)。
六、局限性与改进方向
  1. 当前局限
    • 极端视角或低重叠区域可能产生“飞高斯”或模糊(图12),
    • 大规模场景(如城市)需调整位置学习率,避免优化发散。
  2. 未来优化
    • 引入正则化约束高斯形状,减少“斑点状” artifacts,
    • 结合压缩技术(如点云编码)降低内存消耗,
    • 支持动态场景的在线优化。

总结

自适应密度控制优化是3D高斯 splatting 的核心创新之一,通过“优化-密度控制-渲染”的闭环,实现了几何细节的自适应建模计算资源的高效分配。该方法在保持高重建质量的同时,将训练时间和渲染延迟压缩至实时水平,为大规模场景的实时神经渲染提供了新范式(文档结论部分)。

6 高斯的快速可微分光栅化器

一、核心目标与设计原则

目标:实现3D高斯的实时渲染可微分优化,支持高分辨率(如1080p)下的高质量新视角合成。
设计原则

  1. 利用GPU并行计算:通过瓦片划分(Tile-based)和快速排序,充分利用GPU的并行处理能力,
  2. 精确性与效率平衡:在保证渲染质量的前提下,避免传统体积渲染的高采样成本,
  3. 全流程可微分:确保投影、排序、混合过程的梯度可反向传播,支持端到端优化。
二、关键技术组件
1. 瓦片划分与视锥体剔除
  • 屏幕划分:将图像分为16×16像素的瓦片(Tile),每个瓦片独立处理,减少内存访问冲突,
  • 视锥体剔除:对每个高斯进行视锥体检测,仅保留与视图 frustum 相交(99%置信区间)的高斯,剔除远距离或视角外的无效图元,
  • 保护带(Guard Band):拒绝近平面附近且严重偏离视图 frustum 的高斯,避免投影时的数值不稳定。
2. 基于深度的快速排序
  • 键值生成:为每个高斯生成排序键,包含视图空间深度瓦片ID,其中深度值用于确定前后顺序,瓦片ID用于分组,
  • 基数排序(Radix Sort):利用GPU的并行基数排序算法,对所有高斯进行全局排序,确保同瓦片内的高斯按深度有序(近→远),
  • 瓦片范围标识:排序后,为每个瓦片标记高斯列表的起始和结束索引,便于后续分块渲染(如图6中的算法2)。
3. 各向异性高斯渲染与α混合
  • 投影到2D椭圆:根据3D协方差矩阵,将高斯投影为2D图像空间中的各向异性椭圆,椭圆的形状由协方差矩阵的特征值和特征向量决定,
  • α混合公式:按深度顺序对椭圆进行从前到后(front-to-back)的混合,累积颜色和不透明度:
    [
    C = \sum_i T_i \alpha_i c_i, \quad T_i = \prod_{j=1}^{i-1} (1 - \alpha_j)
    ]
    其中,(\alpha_i) 为当前高斯的不透明度,(T_i) 为累积透明度,确保远高斯被近高斯遮挡,
  • 提前终止:当像素的累积不透明度 (T_i < 1 - \epsilon)(如 (\epsilon=1e-4))时,停止混合,加速渲染。
4. 可微分反向传播
  • 前向记录:在正向渲染过程中,记录每个像素的累积不透明度和混合顺序,
  • 反向遍历:反向传播时,从后到前(back-to-front)遍历高斯,利用前向记录的累积值计算梯度,
  • 无限制梯度传播:支持任意数量高斯的梯度计算,无需限制每个像素的最大混合次数(如Pulsar的N=10限制),避免因截断导致的优化不稳定(文档图9)。
三、性能优化细节
1. 共享内存与数据重用
  • 瓦片级数据加载:每个线程块处理一个瓦片,协作将高斯数据加载到共享内存,减少全局内存访问次数,
  • 向量化操作:利用CUDA的向量化指令(如warp-level操作),并行处理同一瓦片内的多个像素,提升计算效率。
2. 数值稳定性保障
  • 不透明度钳制:将 (\alpha) 限制在 ([0, 0.9999]) 范围内,避免除以零或数值溢出,
  • 梯度修正:在反向传播中,通过累积不透明度的除法操作((T_i / \alpha_i))恢复中间透明度,确保梯度计算的稳定性。
3. 与优化阶段的协同
  • 训练时的高效反馈:光栅化器的快速渲染能力(如135 FPS)使优化迭代周期缩短,结合自适应密度控制,实现51分钟内达到SOTA质量(文档图1),
  • 多分辨率支持:在低分辨率下热身训练,逐步提升至全分辨率,避免高分辨率下的过拟合和计算过载。
四、与其他方法的对比
特性本文光栅化器传统体积渲染(如NeRF)点云光栅化(如Pulsar)
渲染速度实时(≥30 FPS,1080p)慢(0.07 FPS,Mip-NeRF360)较快(~10 FPS)
几何表示3D各向异性高斯隐式密度场2D点+法线
可微分性全流程可微分,支持任意深度可微分,但依赖随机采样部分可微分,需限制混合次数
内存消耗数百MB(高斯参数)低(神经网络权重)取决于点云数量(通常更高)
** artifacts**少(深度排序+α混合)噪声(需大量采样)孔洞或闪烁(点分布不均)
五、局限性与未来方向
  1. 当前局限
    • 深度排序为近似排序(基于瓦片而非像素级),可能导致极个别像素的遮挡顺序错误,
    • 复杂场景中高斯数量过大时(如>500万),排序和存储开销增加。
  2. 改进方向
    • 引入硬件加速的光线追踪,提升复杂遮挡场景的准确性,
    • 开发高斯压缩算法(如聚类或稀疏表示),降低内存占用,
    • 支持动态分辨率调整,适应实时交互中的性能需求变化。

总结

快速可微分光栅化器是3D高斯 splatting 实现“实时渲染”的核心引擎,通过瓦片划分-排序-混合的流水线设计,结合GPU并行计算和可微分技术,在保证高渲染质量的同时,将训练和推理速度提升至传统NeRF方法的数十倍。该技术不仅为实时神经渲染提供了新工具,也为显式几何表示与可微分渲染的结合开辟了新路径(文档结论部分)。

相关文章:

详解3DGS

4 可微分的3D高斯 splatting 核心目标与表示选择 我们的目标是从无法线的稀疏SfM点出发&#xff0c;优化出一种能够实现高质量新视角合成的场景表示。为此&#xff0c;我们选择3D高斯作为基本图元&#xff0c;它兼具可微分的体表示特性和非结构化的显式表示优势&#xff0c;既…...

DEBUG设置为False 时,django默认的后台样式等静态文件丢失的问题

1. 处理静态文件&#xff08;解决后台样式丢失&#xff09; 当 DEBUG False 时&#xff0c;Django 不再自动处理静态文件&#xff08;CSS、JS 等&#xff09;&#xff0c;需手动配置&#xff1a; 步骤&#xff1a; 配置 STATIC_ROOT 和 STATIC_URL 在 settings.py 中确保以下…...

如何提高服务器的QPS来应对618活动的并发流量

在电商行业&#xff0c;618大促是继双十一之后最重要的一次“流量大战”。大量用户在短时间内涌入网站下单、抢购&#xff0c;服务器面临前所未有的并发压力。QPS(Queries Per Second&#xff0c;即每秒请求数)作为衡量服务器处理能力的重要指标&#xff0c;直接关系到用户体验…...

LlamaFirewall:开源框架助力检测与缓解AI核心安全风险

LlamaFirewall 是一款面向大语言模型&#xff08;LLM&#xff09;应用的系统级安全框架&#xff0c;采用模块化设计支持分层自适应防御。该框架旨在缓解各类AI代理安全风险&#xff0c;包括越狱攻击&#xff08;jailbreaking&#xff09;、间接提示注入&#xff08;indirect pr…...

java基础知识回顾3(可用于Java基础速通)考前,面试前均可用!

目录 一、基本算数运算符 二、自增自减运算符 三、赋值运算符 四、关系运算符 五、逻辑运算符 六、三元运算符 七、 运算符的优先级 八、小案例&#xff1a;在程序中接收用户通过键盘输入的数据 声明&#xff1a;本文章根据黑马程序员b站教学视频做的笔记&#xff0c;可…...

嵌入式软件架构规范之 - 分层设计

一、规范的核心思想&#xff1a;驱动文件的“独立性”与“复用性” 该规范的本质是通过分层隔离&#xff0c;实现驱动代码的高复用性、低耦合性&#xff0c;确保驱动模块仅关注“硬件操作逻辑”&#xff0c;不依赖上层业务或下层硬件接口的具体实现细节。其核心要求包括&#…...

电脑无法识别打印机usb设备怎么办 一键解决!

在当今高度数字化的工作环境中&#xff0c;打印机作为重要的办公设备之一&#xff0c;承担着文件打印、扫描等关键任务。然而&#xff0c;有时我们可能会遇到一个令人头疼的问题——电脑无法识别通过USB连接的打印机。这种情况不仅会影响工作效率&#xff0c;还可能打断正常的工…...

Elasticsearch Synthetic _source

_source 字段包含索引时传入的原始 JSON 文档体。_source 字段本身不被索引&#xff08;因此不可搜索&#xff09;&#xff0c;但会被存储&#xff0c;以便在执行获取请求&#xff08;如 get 或 search&#xff09;时返回。 如果磁盘使用很重要&#xff0c;可以考虑以下选项&a…...

C++ -- vector

vector 1. 关于vector1.1 对比原生数组1.2 vector的核心优势 2. 扩容2.1 底层实现2.2 扩容过程 3. 构造函数4. 接口模拟实现4.1 实现迭代器4.2 扩容4.3 重载[]4.4 插入和删除4.5 构造函数和析构函数 5. 迭代器失效5.1 扩容后失效5.2 越界失效 6. 深浅拷贝 1. 关于vector 1.1 对…...

GitLab-CI简介

概述 持续集成&#xff08;CI&#xff09;和 持续交付(CD) 是一种流行的软件开发实践&#xff0c;每次提交都通过自动化的构建&#xff08;测试、编译、发布&#xff09;来验证&#xff0c;从而尽早的发现错误。 持续集成实现了DevOps, 使开发人员和运维人员从繁琐的工作中解…...

深入研究Azure 容器网络接口 (CNI) overlay

启用cni overlay 在通过portal创建aks的时候,在networking配置上,选中下面的选项即可启用。 通过CLI创建AKS 要创建具有 CNI 覆盖网络的 AKS 群集,需要在创建群集时指定 --network-plugin azure 和 --network-plugin-mode 覆盖选项。 还需要指定 --pod-cidr 选项来定义群…...

Python打卡第37天

浙大疏锦行 早停策略和模型权重的保存 作业&#xff1a;对信贷数据集训练后保存权重&#xff0c;加载权重后继续训练50轮&#xff0c;并采取早停策略 import torch import torch.nn as nn import pandas as pd import matplotlib.pyplot as plt import torch.optim as optim fr…...

使用 OpenCV 构建稳定的多面镜片墙效果(镜面反射 + Delaunay 分块)

✨ 效果概览 我们将实现一种视觉效果&#xff0c;模拟由许多小镜面拼接而成的“镜子墙”。每个镜面是一个三角形区域&#xff0c;其内容做镜像反射&#xff08;如水平翻转&#xff09;&#xff0c;在视频中形成奇特的万花筒、哈哈镜、空间折叠感。 使用 OpenCV 实现“随机镜面…...

HTTP协议版本的发展(HTTP/0.9、1.0、1.1、2、3)

目录 HTTP协议层次图 HTTP/0.9 例子 HTTP/1.0 Content-Type 字段 Content-Encoding 字段 例子 1.0版本存在的问题&#xff1a;短链接、队头阻塞 HTTP/1.1 Host字段 Content-Length 字段 分块传输编码 1.1版本存在的问题 HTTP/2 HTTP/2数据传输 2版本存在的问题…...

零基础设计模式——结构型模式 - 桥接模式

第三部分&#xff1a;结构型模式 - 桥接模式 (Bridge Pattern) 在学习了适配器模式如何解决接口不兼容问题后&#xff0c;我们来看看桥接模式。桥接模式是一种更侧重于系统设计的模式&#xff0c;它旨在将抽象部分与其实现部分分离&#xff0c;使它们可以独立地变化。 核心思…...

C++对象的内存模型

C++对象的内存模型涉及对象的数据成员(包括静态成员和非静态成员)、成员函数以及虚函数表等在内存中的布局和管理方式。以下是C++对象的内存模型的主要组成部分: 1. C++对象的组成 一个C++对象通常由以下几个部分组成: 非静态数据成员 对象的核心组成部分,每个对象都有自己…...

SpringBoot3集成Oauth2.1——4集成Swagger/OpenAPI3

文章目录 访问在线文档页面配置OpenApiConfig 在我之前的文章中&#xff0c;写了 SpringBoot3集成OpenAPI3(解决Boot2升级Boot3) 访问在线文档页面 当我们同样在SpringBoot3使用oauth2.1也就是我之前的文章中写的。现在我们要处理下面这两个的问题了。 <!-- 使用springdoc…...

基于深度学习的情绪识别检测系统【完整版】

最近很多小伙伴都在咨询&#xff0c;关于基于深度学习和神经网络算法的情绪识别检测系统。回顾往期文章【点击这里】&#xff0c;介绍了关于人脸数据的预处理和模型训练&#xff0c;这里就不在赘述。今天&#xff0c;将详细讲解如何从零基础手写情绪检测算法和情绪检测系统。主…...

本地依赖库的版本和库依赖的版本不一致如何解决?

我用的 yarn v4 版本&#xff0c;所以以下教程命令都基于yarn 这里假设我报错的库名字叫 XXXXXXXX&#xff0c;依赖他的库叫 AAAAAAAA 排查解决思路分析&#xff1a; 首先查看一下 XXXXXXXX 的依赖关系&#xff0c;执行 yarn why XXXXXXXX 首先我们要知道 yarn 自动做了库…...

Redis学习打卡-Day7-高可用(下)

前面提到&#xff0c;在某些场景下&#xff0c;单实例存Redis缓存会存在的几个问题&#xff1a; 写并发&#xff1a;Redis单实例读写分离可以解决读操作的负载均衡&#xff0c;但对于写操作&#xff0c;仍然是全部落在了master节点上面&#xff0c;在海量数据高并发场景&#x…...

Spark on Yarn 高可用模式部署流程

一、引言 Spark是一个用于大规模数据分析处理的分布式计算框架,适用于快速处理大数据的场景。Yarn是一个资源调度框架,用于集群资源的调度和管理。Spark 的任务也可以提交到Yarn中运行,由Yarn进行资源调度。在生产环境中,为了避免单点故障导致整个集群不可用的情况,一个很…...

AI时代新词-大模型(Large Language Model)

一、什么是大模型&#xff1f; 大模型&#xff0c;全称为“大规模语言模型”&#xff08;Large Language Model&#xff09;&#xff0c;是一种基于深度学习的人工智能技术。它通过海量的文本数据进行训练&#xff0c;学习语言的模式、语法和语义&#xff0c;从而能够生成自然…...

3d tiles高级样式设计与条件渲染

条件渲染是3D Tiles样式设置的一大亮点。我们可以通过设置不同的条件来实现复杂的视觉效果。例如&#xff0c;根据建筑物与某个特定点的距离来设置颜色和是否显示&#xff1a; tiles3d.style new Cesium.Cesium3DTileStyle({defines: {distance: "distance(vec2(${featur…...

Linux中logger命令的使用方法详解

文章目录 一、基础语法二、核心功能选项三、‌设施与优先级对照‌1. 常用设施&#xff08;Facility&#xff09;2. 优先级&#xff08;Priority&#xff09;从低到高&#xff1a;3. 组合示例‌ 四、典型使用场景1. 记录简单消息2. 带标签和优先级3. 记录命令输出4. 发送到远程服…...

博奥龙Nanoantibody系列IP专用抗体

货号名称BDAA0260 HRP-Nanoantibody anti Mouse for IP BDAA0261 AbBox Fluor 680-Nanoantibody anti Mouse for IP BDAA0262 AbBox Fluor 800-Nanoantibody anti Mouse for IP ——无轻/重链干扰&#xff0c;更高亲和力和特异性 01Nanoantibody系列抗体 是利用噬菌体展示纳…...

webpack构建速度和打包体积优化方案

一、分析工具 1.1 webpack-bundle-analyzer 生成 stats.json 文件 打包命令webpack --config webpack.config.js --json > stats.json使用 webpack-bundle-analyzer 插件const BundleAnalyzerPlugin = require(webpack-bundle-analyzer).BundleAnalyzerPlugin; plugins: […...

[IMX] 08.RTC 时钟

代码链接&#xff1a;GitHub - maoxiaoxian/imx 目录 1.IMX 的 SNVS 模块 2.SNVS 模块的寄存器 2.1.命令寄存器 - SNVS_HPCOMR 2.2.低功耗控制寄存器 - SNVS_LPCR 2.3.HP 模式的计数寄存器 MSB - SNVS_HPRTCMR 2.4.HP 模式的计数寄存器 LSB - SNVS_HPRTCLR 2.5.LP 模式的…...

PG Craft靶机复现 宏macro攻击

一. 端口扫描 只有80端口开启 二. 网页查看 目录扫描一下&#xff1a; dirsearch -u http://192.168.131.169/ 发现 http://192.168.131.169/upload.php 网站书使用xampp搭建&#xff0c;暴露了路径 还发现上传文件 http://192.168.131.169/uploads/ 发现一个上传点&#x…...

Qt Creator快捷键合集

前言 QtCreator是一款跨平台的IDE,专为Qt开发设计,支持C/C++/JS/Python编程,支持设备远程调试,支持代码高亮,集成帮助文档,原生支持cmake和git,确实是一款朴实而又强大的集成开发环境,让人有种爱不释手的感觉 编辑 功能快捷键复制Ctrl + C粘贴Ctrl + V剪切Ctrl + X代…...

ElasticSearch--DSL查询语句

ElasticSearch DSL查询文档 分类 查询类型功能描述典型应用场景示例语法查询所有匹配所有文档&#xff0c;无过滤条件数据预览/测试json { "query": { "match_all": {} } }全文检索查询对文本字段分词后匹配&#xff0c;基于倒排索引搜索框模糊匹配、多字段…...