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

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting

文章目录

  • 一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting
    • 摘要
    • Abstract
    • 1. 基本思想
      • 1.1 设计
      • 1.2 特点
    • 2. Nerfstudio&Splatfacto
      • 2.1 Nerfstudio
      • 2.2 Splatfacto
    • 3. Splatfacto数据格式要求
      • 3.1 相机的内参
      • 3.2 相机的外参
      • 3.3 深度图
      • 3.4 掩码
    • 4. Splatfacto与VTON360
    • 总结
    • 参考

摘要

本周主要学习了开源高斯泼溅实现库 gsplat 及其在 Gaussian Splatting 方法中的应用和优化。gsplat 是一个基于 PyTorch 和 CUDA 的高效实现库,支持模块化 API 接口,能够显著提升 Gaussian Splatting 模型的训练速度、内存效率和收敛时间。此外,还深入研究了 gsplat 的核心功能,包括密集化策略、姿态优化、深度渲染、抗锯齿处理等技术细节,以及其在 Nerfstudio 框架中的扩展实现 Splatfacto。同时,对 Splatfacto 的数据格式要求、训练流程及其在 VTON360 项目中的改进进行了系统性总结,为后续研究基于高斯光栅化的 3D 场景重建提供了重要参考。

Abstract

This week’s study focused on gsplat, an open-source library for Gaussian Splatting, and its applications and optimizations in the Gaussian Splatting method. gsplat is a highly efficient library built on PyTorch and CUDA, offering a modular API interface that significantly improves training speed, memory efficiency, and convergence time for Gaussian Splatting models. Key features such as densification strategies, pose optimization, depth rendering, anti-aliasing techniques, and N-dimensional rasterization were thoroughly examined. Furthermore, the integration of gsplat with the Nerfstudio framework through the Splatfacto module was explored, including its data format requirements, training procedures, and its modification in the VTON360 project. This provides valuable insights for further research on 3D scene reconstruction based on Gaussian rasterization.

1. 基本思想

gsplat是一个开源库,旨在训练和发展Gaussian Splatting方法。它的特点是前端具有与PyTorch库兼容的Python绑定,后端具有高度优化的CUDA内核。 gsplat提供了许多增强高斯分布模型优化的特性,可显著地改善Gaussian Splatting模型的优化,其中包括对速度,内存和收敛时间的优化改进。实验结果表明,与原始Gaussian Splatting论文的实现相比,gsplat的训练时间减少了10%,内存需求减少了4倍。 gsplat在GitHub上长期进行维护。其核心理念是为基于PyTorch的项目开发高斯溅射模型提供一个简单且易于修改的API。

开源Gaussian Splatting方法实现的先前工作包括GauStudio,它将各种研究整合到一个代码库中,以及几个基于PyTorch的复现。与以前的工作不同,gsplat不仅寻求实现原始3DGS工作并进行性能改进,还旨在提供一个易于使用和模块化的API接口,允许外部扩展和修改,从而促进高斯溅射领域的进一步研究。

1.1 设计

gsplat 是一个独立开发的库,旨在提高效率和模块化。它可以在 Windows 和 Linux 平台上通过 PyPI 安装,并提供 PyTorch 接口。

出于速度考虑,许多操作都被编写成了优化的 CUDA 内核,并通过 Python 绑定暴露给开发者。此外,gsplat 还包含了原生的 PyTorch 实现,以支持对新研究想法的迭代。gsplat 的设计目标是提供一个简单的接口,该接口可以从外部项目中导入,从而轻松集成主要的Gaussian Splatting(Gaussian Splatting)功能,并根据最新研究成果进行算法自定义。gsplat 提供了详尽的示例、验证 CUDA 操作正确性的测试用例,以及托管在线的进一步文档,因此也可以作为新研究人员进入该领域的教育资源。

image-20250518155029429

1.2 特点

gsplat 库包含与Gaussian Splatting相关的特性和算法实现。通过模块化接口,用户可以简单地通过 API 调用启用所需功能。在此,我们简要介绍 gsplat 提供的一些算法增强功能,这些功能在 Kerbl 等人提出的原始 3DGS 实现中并未包含。

密集化策略:Gaussian Splatting优化过程的一个关键组成部分包括在场景欠重建和过重建区域分别对高斯分布进行密集化和修剪。这一直是研究的活跃领域,而 gsplat 库支持一些最新的密集化策略。这些策略包括 Kerbl 等人提出的自适应密度控制(ADC)、Ye 等人提出的 Absgrad 方法,以及 Kheradmand 等人提出的马尔可夫链蒙特卡洛(MCMC)方法。gsplat 的模块化 API 允许用户轻松地在不同策略之间切换。

姿态优化:gsplat 中的高斯渲染过程(如图 1 所示)是完全可微的,这使得梯度可以流向高斯参数 G(c,Σ, μ, o) 以及其他参数,如相机视图矩阵 P = [R | t],这在原始工作中并未考虑。这对于缓解数据集中的姿态不确定性至关重要。具体而言,可以针对相机视图矩阵的旋转和平移分量计算重建损失的梯度,从而通过梯度下降优化初始相机姿态。

深度渲染:从高斯场景渲染深度图对于正则化和网格化等应用非常重要。gsplat 支持使用优化的 RGB+Depth 光栅化器渲染深度图,该光栅化器也是完全可微的。gsplat 支持使用每个像素的累积 z-depth和经过 alpha 归一化的预期深度来渲染深度图。

N 维光栅化:除了渲染三通道 RGB 图像外,gsplat 还支持渲染更高维度的特征向量。这受到将学习到的特征图与可微体渲染相结合的算法的启发。为了满足这些特征的存储需求,gsplat 后端允许在训练期间调整影响内存分配的参数,如内核块大小。

抗锯齿:以不同分辨率查看由高斯表示的三维场景时,可能会产生锯齿效应,这在先前的三维表示中也曾出现过。当分辨率降低或从远处查看场景时,小于一个像素大小的单个高斯分布由于采样率低于奈奎斯特频率而会产生锯齿伪影。Mip-Splatting在投影的二维高斯协方差上提出了一种低通滤波器,确保高斯分布的范围始终跨越一个像素。gsplat 支持使用 Yu 等人引入的二维抗锯齿模式进行渲染。

image-20250518160822810

2. Nerfstudio&Splatfacto

2.1 Nerfstudio

Nerfstudio是一个为NeRF开发提供支持的Python框架。该框架的设计注重模块化,实时可视化开发,以及便于处理真实数据,使得NeRF方法的开发和实施变得更加简单。Nerfstudio通过提供一个整合的平台,使得研究人员和开发者能够更容易地合作和开发交互式3D场景。这个框架不仅适用于研究人员,也为工业界和非技术用户提供了使用NeRF的便利。

2.2 Splatfacto

同时Nerfstudio整合了Gaussian Splatting的实现方法,命名为Splatfacto。Nerfstudio使用gsplat作为其高斯光栅化的后端,这是一个内部重新实现旨在对开发人员更加友好。

训练

ns-train splatfacto --data {PROCESSED_DATA_DIR}

查看训练完模型的渲染

ns-viewer --load-config {outputs/.../config.yml}

评估训练指标

ns-eval --load-config={PATH_TO_CONFIG} --output-path=output.json

3. Splatfacto数据格式要求

3.1 相机的内参

如果所有图像都具有相同的相机内参,则可以将这些值放在文件的顶部。

{"camera_model": "OPENCV_FISHEYE", // camera model type [OPENCV, OPENCV_FISHEYE]"fl_x": 1072.0, // focal length x"fl_y": 1068.0, // focal length y"cx": 1504.0, // principal point x"cy": 1000.0, // principal point y"w": 3008, // image width"h": 2000, // image height"k1": 0.0312, // first radial distortion parameter, used by [OPENCV, OPENCV_FISHEYE]"k2": 0.0051, // second radial distortion parameter, used by [OPENCV, OPENCV_FISHEYE]"k3": 0.0006, // third radial distortion parameter, used by [OPENCV_FISHEYE]"k4": 0.0001, // fourth radial distortion parameter, used by [OPENCV_FISHEYE]"p1": -6.47e-5, // first tangential distortion parameter, used by [OPENCV]"p2": -1.37e-7, // second tangential distortion parameter, used by [OPENCV]"frames": // ... per-frame intrinsics and extrinsics parameters
}

每帧图片的内参也可以定义在frames域中。一旦在一个域中定义了一个字段(比如fl_x),每个frames域中都要定义相同的字段补充相应数据。

{// ..."frames": [{"fl_x": 1234}]
}

3.2 相机的外参

对于相机的变换矩阵,前3列是 + X +X +X + Y +Y +Y + Z +Z +Z,定义相机方向; X X X Y Y Y Z Z Z 值定义原点。最后一行是为了写成齐次坐标的形式。

{// ..."frames": [{"file_path": "images/frame_00001.jpeg","transform_matrix": [// [+X0 +Y0 +Z0 X]// [+X1 +Y1 +Z1 Y]// [+X2 +Y2 +Z2 Z]// [0.0 0.0 0.0 1][1.0, 0.0, 0.0, 0.0],[0.0, 1.0, 0.0, 0.0],[0.0, 0.0, 1.0, 0.0],[0.0, 0.0, 0.0, 1.0]]// Additional per-frame info}]
}

3.3 深度图

为了进行带有深度图条件的监督学习,需要在transforms.json中为每一帧定义字段depth_file_path,并使用一种由nerfstudio支持的计算深度损失的方法(例如,depth-nerfacto)。深度假定为16位或32位,单位为毫米,以保持与Polyform一致。深度图像中的零值被视为未知深度。我们可以使用NerfstudioDataParserConfig中的depth_unit_scale_factor参数来调整这个比例因子。请注意,默认情况下,我们会调整深度图像的大小以匹配RGB图像的形状。

{"frames": [{// ..."depth_file_path": "depth/0001.png"}]
}

3.4 掩码

Splatfacto训练的图像中,某些部分可能不应该在训练期间使用(例如:移动的物体,人)。这些图像可以使用帧数据中指定的附加掩码图像进行屏蔽。

{"frames": [{// ..."mask_path": "masks/mask.jpeg"}]
}
  • mask必须只有一个通道,并且只能有黑和白这两种像素
  • mask的大小必须与训练图片的大小一致
  • 黑色像素的区域是被忽略的

4. Splatfacto与VTON360

在VTON360中作者提到对Nerfstudio的Splatfacto进行了修改与扩展,主要是去掉了3D场景中的背景。作者添加一个不透明度损失到背景区域,并强制背景的不透明度为零。但如果在3DGS重建的早期阶段使用,不透明度损失可能会迫使所有高斯函数为零不透明度,导致训练失败。所以作者线性增加不透明度损失系数从0到max-opacity-loss-scale。更多细节可以在splatfactox/splatfactox.py:286中找到。

image-20250518160742323

因此splatfacto模块在VTON360项目中需要手动安装。

#! /bin/bashset -exu
exp_dir="output"
cam_path="demo_data/campath.json"# 1. reconstruction with 3DGS.
ns-train splatfactox \--output-dir ${exp_dir} \--experiment-name test \--max-num-iterations 20000 \--pipeline.model.cull-alpha-thresh 0.005 \--pipeline.model.max-opacity-loss-scale 2.0 \--pipeline.model.background_color white \--viewer.quit-on-train-completion True \nerfstudio-data --data demo_data/0024_00208 \# use the newest checkpoint
ckpt_dir=$(ls ${exp_dir}/test/splatfactox | sort -r | head -n 1)
echo using checkpoint ${ckpt_dir}# 2. render a video with the given camera path.
# there is no detail about the format of the camera path in NeRF Studio's docs,
# but you could export camera path manually using ns-view and then 
# edit the exported JSON file (focus on the field named `camera_path` in the JSON file) for a better result.
ns-render camera-path \--camera-path-filename $cam_path \--load-config ${exp_dir}/test/splatfactox/${ckpt_dir}/config.yml \--output-path ${exp_dir}/video.mp4 \# 3. render each frame in the video.
ns-render camera-path \--output-format images \--camera-path-filename $cam_path \--load-config ${exp_dir}/test/splatfactox/${ckpt_dir}/config.yml \--output-path ${exp_dir}/frames/ \

这是2D VTON后将多视角图片转换为3D GS的训练命令和渲染视频命令。

3D_VTON_THuman

3D_VTON_MVHumanNet

总结

本周的学习主要围绕 gsplat 库及其在 Gaussian Splatting 方法中的优化展开。作为一个基于 PyTorch 和 CUDA 的开源项目,gsplat 提供了高效的模块化 API,实现了对原始 3DGS 方法的多方面改进,包括训练速度提高 10%、内存需求减少 4 倍等。通过研究 gsplat 的密集化策略、姿态优化、深度渲染、抗锯齿处理等核心功能,进一步理解了该库在 3D 场景重建中的潜力。

此外,详细分析了 Nerfstudio 框架下的 Splatfacto 模块,包括其数据格式要求、训练指令和扩展功能。特别是在 VTON360 项目中,Splatfacto 模块通过引入不透明度损失机制实现了背景区域的裁剪优化,同时避免了训练早期的梯度消失问题,展现了高斯光栅化方法在多视角 3D 场景重建中的重要应用价值。

参考

gsplat: An Open-Source Library for Gaussian Splatting

gsplat: GitHub仓库

Nerfstudio: A Modular Framework for Neural Radiance Field Development

复现nerfstudio并训练自己制作的数据集

NeRF Studio’s Dataset Format

Splatfacto: Nerfstudio’s Gaussian Splatting Implementation

相关文章:

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting

一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting 文章目录 一种开源的高斯泼溅实现库——gsplat: An Open-Source Library for Gaussian Splatting摘要Abstract1. 基本思想1.1 设计1.2 特点 2. Nerfstudio&Splatfacto2.1 Nerfstudio2.…...

Embedding 模型详解:架构、训练与 LLM 的区别

1. 什么是 Embedding 模型? Embedding 模型的核心使命是将离散的、高维的文本数据(例如单个词语、短语、句子、段落乃至整篇文档)转化为稠密的 (dense)、低维的 (low-dimensional)、连续的 (continuous) 向量表示。这些向量被称作“嵌入 (Em…...

网络的知识的一些概念

1.什么是局域网,什么是广域网 局域网(Local area network)也可以称为本地网,内网,局域网有这几个发展经历: 最开始电脑与电之间是直接用网线连接的 再后来有了集线器() 再后来出…...

NAT(网络地址转换)逻辑图解+实验详解

原理 NAT(Network Address Translation,网络地址转换) 是一种网络技术,用于在IP数据包通过路由器或防火墙时,修改其源IP地址或目标IP地址,以实现不同网络之间的通信。 基础概念 本来NAT是来解决 IPv4 地…...

深入解析Spring Boot与Kafka集成:构建高性能消息驱动应用

深入解析Spring Boot与Kafka集成:构建高性能消息驱动应用 引言 在现代分布式系统中,消息队列是实现异步通信和解耦的重要组件。Apache Kafka作为一种高性能、分布式的消息系统,被广泛应用于大数据和实时数据处理场景。本文将详细介绍如何在…...

Linux的内存泄漏问题及排查方法

内存泄漏是指在计算机程序中,已不再被使用的内存未被正确释放,导致内存占用随时间累积,进而引发系统内存不足、性能下降甚至崩溃的问题。在Linux系统中,开发者和运维人员可通过以下方法排查和解决内存泄漏问题: 1. 使…...

Java基础知识总结(超详细整理)

一:概述 1.1Java类及类的成员 属性、方法、构造器、代码块、内部类 (1)数组 java虚拟机内存划分 各区域作用 内存解析 基本使用 两个变量指向一个一维数组 没有new就不会在堆里新开辟空间 (2)对象数组 (3&a…...

Qt Widgets模块功能详细说明,基本控件:QPushButton(二)

一、基本控件(Widgets) Qt 提供了丰富的基本控件,如按钮、标签、文本框、复选框、单选按钮、列表框、组合框、菜单、工具栏等。 1、QPushButton 1.1、概述 (用途、继承关系) QPushButton 是 Qt 框架中用于创建按钮的控件,它的主…...

【MySQL成神之路】MySQL常见命令汇总

目录 MySQL常用命令总结 1. 数据库操作 2. 表操作 3. 数据操作(DML) 4. 索引与优化 5. 用户与权限管理 6. 备份与恢复 7. 事务控制 8. 常用函数 9. 系统状态与日志 总结 MySQL常用命令总结 MySQL作为最流行的关系型数据库之一,提供…...

UnLua源码分析(一)初始化流程

UnLua源码分析(一)初始化流程 接入插件启动注册设置默认参数集注册回调SetActivePostLoadMapWithWorldULuaEnvLocator启动Lua虚拟机初始化UE相关的Lua Lib创建与Lua交互的数据结构注册静态导出的类,函数,枚举Lua层初始化 UUnLuaMa…...

非线性1 修改

第一章为读者介绍了非线性动力学与混沌理论的基本概念、发展历史以及应用领域。 1.1 动力学简史: 从牛顿力学开始,介绍动力学作为物理学分支的发展历程。重点介绍了庞加莱对混沌现象的早期探索,以及20世纪60年代洛伦兹方程的发现&#xff0…...

系统性能不达标,如何提升用户体验?

当系统性能不达标时,要想有效提升用户体验,必须从性能优化、前后端协同、用户感知改善、监控预警机制四个关键维度切入。其中,性能优化是最直接有效的策略,它通过代码优化、资源压缩、缓存机制、CDN加速等手段,显著提升…...

【Linux】进程的基本概念

目录 概念描述进程-PCB如何查看进程通过系统目录进行查看通过ps指令进行查看 通过系统调用获取进程的PID和PPID(进程标⽰符)通过系统调用创建子进程通过一段代码来介绍fork为什么要有子进程?fork为什么给子进程返回0,给父进程返回子进程的PIDfork函数到底…...

mongodb管理工具的使用

环境: 远程服务器的操作系统:centOS stream 9; mongoDB version:8.0; 本地电脑 navicat premium 17.2 ; 宝塔上安装了mongoDB 目的:通过本地的navicat链接mongoDB,如何打通链接,分2步: 第一步:宝塔-&…...

面试中的线程题

原文链接:线程题大全 Java 并发库同步辅助类 CountDownLatch 工作机制:初始化一个计数器,此计数器的值表示需要等待的事件数量。 提供了两个主要方法: await():当一个线程调用此方法时,它将阻塞&#…...

计算机系统的层次结构

计算机系统的层次结构 一, 计算机系统的层次结构的定义 计算机的一个赢软件组成的综合体. 因为面对的应用范围越来越广, 所以必须有复杂的系统软件和硬件的支持. 软/硬件的设计者和使用者从不同的角度, 不同的语言来对待同一个计算机系统, 因此他们看到的计算机系统的属性对计…...

[特殊字符] SSL/TLS 中的密钥协商流程笔记

✅ 背景说明: SSL/TLS 为了确保通信保密性,结合使用了: 非对称加密(用于密钥交换) 对称加密(用于数据加密) 🔁 客户端主导密钥协商的完整流程如下: 1️⃣ 客户端发起…...

多模态大语言模型arxiv论文略读(八十一)

What is the Visual Cognition Gap between Humans and Multimodal LLMs? ➡️ 论文标题:What is the Visual Cognition Gap between Humans and Multimodal LLMs? ➡️ 论文作者:Xu Cao, Bolin Lai, Wenqian Ye, Yunsheng Ma, Joerg Heintz, Jintai …...

SpringBoot(一)--- Maven基础

目录 前言 一、初始Maven 1.依赖管理 2.项目构建 3.统一项目结构 二、IDEA集成Maven 1.Maven安装 2.创建Maven项目 2.1全局设置 2.2 创建SpringBoot项目 2.3 常见问题 三、单元测试 1.JUnit入门 2.断言 前言 Maven 是一款用于管理和构建Java项目的工具&#xff…...

如何使用WordPress创建美食博客

不管你是否意识到,食物是我们生活的核心。有些人将其用作燃料,而另一些人则将食谱作为一种艺术形式呈现。如果您属于后者,并且想创建一个美食博客来分享您的热情,那么WordPress是一个顶级平台。 几乎每个话题都有一个博客利基&am…...

SAP集团内部公司间交易自动开票

SAP集团内部公司间交易自动开票(非STO/EDI模式) 集团内部公司间采购与销售业务,在确认相应单据无误后,为减少人工开票业务, 可以用系统标准功能来实现自动开票。 1.采购发票自动开票(ERS) T-CODE:BP,勾选“基于收货的发票校验”、“自动G…...

代码审计-php框架开发,实战tp项目,打击微交易,源码获取,扩大战果

实战,不安全写法引发的注入 这个bc靶场源码没有,看老师演示 打开很明显的tp框架源码 拿到tp框架之后第一步,搜索版本信息5.0.5 两个思路 1.代码的不安全写法 2.版本自身存在的漏洞 全局搜索where看看也没有不安全的 哎?&…...

Atcoder Beginner Contest 406

比赛链接&#xff1a;ABC406 A - Not Acceptable 将小时转换成分钟直接进行判断。 时间复杂度&#xff1a; O ( 1 ) O(1) O(1)。 #include <bits/stdc.h> using namespace std;int main() {ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);int a,…...

02 K8s双主安装

00 前提准备 # 设置好主机名并添加hosts解析主机名IP地址身份master01172.2.25.50主Mastermaster02172.2.25.51备Masternode01172.2.25.52节点1node02172.2.25.53节点2node03172.2.25.54节点3 01 使用脚本安装Docker # Docker脚本文件 https://node-siyuan.oss-cn-beijing.a…...

分别用 语言模型雏形N-Gram 和 文本表示BoW词袋 来实现文本情绪分类

语言模型的雏形 N-Gram 和简单文本表示 Bag-of-Words 语言表示模型简介 (1) Bag-of-Words (BoW) 是什么&#xff1f; *定义&#xff1a;将文本表示为词频向量&#xff0c;忽略词序和语法&#xff0c;仅记录每个词的出现次数。 **示例&#xff1a; 句子1&#xff1a;I love …...

2_Spring【IOC容器中获取组件Bean】

Spring中IOC容器中获取组件Bean 实体类 //接口 public interface TestDemo {public void doSomething(); } // 实现类 public class HappyComponent implements TestDemo {public void doSomething() {System.out.println("HappyComponent is doing something...")…...

一次页面假死分析

现象&#xff1a;系统的几个功能若干次切换&#xff0c;页面假死&#xff0c;无反应 上图&#xff0c;不是每次切换都假死&#xff0c;但非常容易重现&#xff0c;每次页面假死都在getValidatorJSONInfo这个调用后 getValidatorJSONInfo调用已返回&#xff0c;但返回内容页面挂…...

WPS多级标题编号以及样式控制

WPS多级标题编号以及样式控制 上一篇&#xff1a;WPS自动生成图表目录以及样式控制 阅读提示&#xff1a;请先阅读完本篇内容再操作&#xff0c;避免出现其他错误。 初始样式&#xff1a; 1.1 步骤演示 说明&#xff1a;以3级目录为例 标题1样式&#xff1a;黑体&#xff0c;…...

方差是什么?

一、方差是什么? 方差(Variance)是概率论和统计学中衡量数据离散程度(即数据与平均值的偏离程度)的核心指标。 通俗理解:方差越大,数据越“分散”“波动大”;方差越小,数据越“集中”“稳定”。 二、方差的公式(以样本数据为例) 计算步骤: 第一步:求平均值 ( …...

Java核心API实战:从字符串到多线程全解析

Java常用API详解与代码实践 一、字符串处理类 1. String类 // 字符串基础操作 String str "Hello,Java!"; System.out.println(str.substring(7)); // 输出"Java!" System.out.println(str.indexOf("Java")); // 输出7// 正则表达式匹配 Str…...

低代码AI开发新趋势:Dify平台化开发实战

在人工智能快速发展的今天&#xff0c;AI应用的开发方式也在不断演变。从传统的手写代码到如今的低代码甚至零代码开发&#xff0c;技术的进步让更多的非专业开发者也能轻松上手。本文将带你走进Dify平台化开发的世界&#xff0c;探索如何通过这一强大的低代码AI开发平台&#…...

基于First Order Motion与TTS的AI虚拟主播系统全流程实现教程

前言&#xff1a;多模态虚拟主播的技术革命 在AI内容生成领域&#xff0c;虚拟主播技术正经历从2D到3D、从固定模板到个性化定制的跨越式发展。本文将深入解析如何通过Python技术栈构建支持形象定制与声音克隆的AI虚拟主播系统&#xff0c;涵盖从人脸建模到多模态融合的全流程…...

中科院自动化研究所通用空中任务无人机!基于大模型的通用任务执行与自主飞行

作者&#xff1a; Ji Zhao and Xiao Lin 单位&#xff1a;中科院自动化研究所 论文标题&#xff1a;General-Purpose Aerial Intelligent Agents Empowered by Large Language Models 论文链接&#xff1a;https://arxiv.org/pdf/2503.08302 主要贡献 硬件-软件协同设计框…...

DOM知识点

DOM&#xff08;Document Object Model&#xff09;即文档对象模型&#xff0c;是用于表示和操作HTML、XML文档的编程接口。以下是关于DOM的一些知识点总结&#xff1a; 基本概念 • DOM将文档解析为一个由节点&#xff08;Node&#xff09;组成的树形结构&#xff0c;每个节…...

设备预测性维护的停机时间革命:中讯烛龙如何用AI重构工业设备管理范式

在工业4.0的智能化浪潮中&#xff0c;非计划停机每年吞噬企业3%-8%的产值。中讯烛龙预测性维护系统通过多模态感知矩阵分布式智能体的创新架构&#xff0c;实现设备健康管理的范式跃迁&#xff0c;帮助制造企业将停机时间压缩70%以上。本文将深度解析技术实现路径与行业级实践方…...

JMeter 教程:使用 HTTP 请求的参数列表发送 POST 请求(form 表单格式)

目录 ✅ 教程目的 &#x1f6e0;️ 准备工作 &#x1f4c4; 操作步骤 第一步&#xff1a;新建测试计划 第二步&#xff1a;添加 HTTP 请求 第三步&#xff1a;添加参数列表&#xff08;表单参数&#xff09; 第四步&#xff1a;添加结果查看器 第五步&#xff1a;运行测…...

**HTTP/HTTPS基础** - URL结构(协议、域名、端口、路径、参数、锚点) - 请求方法(GET、POST) - 请求头/响应头 - 状态码含义

# HTTP/HTTPS基础知识点详解 ## 1. URL结构 ### 协议部分 - http:// - 超文本传输协议&#xff0c;明文传输 - https:// - 安全的超文本传输协议&#xff0c;使用SSL/TLS加密 - 爬虫注意点&#xff1a;HTTPS网站有TLS指纹(JA3指纹)&#xff0c;可被用于检测爬虫 ### 域名部分…...

2025抓包工具Reqable手机抓包HTTPS亲测简单好用-快速跑通

前言 自安卓7.0高版本系统不在信任用户证书&#xff0c;https抓包方式市面查找方法太过复杂手机要root等&#xff0c;前置条件要求太高太复杂&#xff0c;看的头痛&#xff0c;今天一台电脑按步骤操作完即可抓包https,给大家搞定抓包https问题。支持直接编辑修改请求参…...

大模型在胫骨平台骨折预测及治疗方案制定中的应用研究

目录 一、引言 1.1 研究背景与目的 1.2 国内外研究现状 1.3 研究方法和创新点 二、大模型预测胫骨平台骨折的原理和方法 2.1 相关大模型介绍 2.2 数据收集与预处理 2.3 模型训练与优化 2.4 模型评估指标 三、术前预测与手术方案制定 3.1 骨折类型和严重程度预测 3.…...

AI图像处理之ComfyUI节点(二)

一、Load Checkpoint节点 功能&#xff1a;用于加载预训练的大模型&#xff0c;如Stable Diffusion等 参数&#xff1a; chechkpoint&#xff1a;选择加载的模型文件&#xff08;.ckpt或.satetensors格式&#xff09; MODEL&#xff1a;输出用于图像扩散预测的UNet模型 CLIP&…...

异常日志规范

目录 一、错误码 二、异常处理 三、日志规约 一、错误码 强制&#xff1a; 1、错误码的制订原则&#xff1a;快速溯源、沟通标准化。 1&#xff09;错误码必须能够快速知晓错误来源&#xff0c;可快速判断是谁的问题。 2&#xff09;错误码必须能够清晰地比对&#xff08;…...

pycharm连接github(详细步骤)

【前提&#xff1a;菜鸟学习的记录过程&#xff0c;如果有不足之处&#xff0c;还请各位大佬大神们指教&#xff08;感谢&#xff09;】 1.先安装git 没有安装git的小伙伴&#xff0c;看上一篇安装git的文章。 安装git&#xff0c;2.49.0版本-CSDN博客 打开cmd&#xff08;…...

UESplineThicken节点

SplineThicken 函数用来使非常薄的多边形在渲染时显示为略厚。对于线缆、头发、草和其他此类对象&#xff0c;这种效果非常理想。 SplineThicken节点 该节点始终朝向摄像机 可以控制模型前后宽度 可以连接到wpo上制作特效效果 参考链接 https://dev.epicgames.com/document…...

【C++】map和set的使用

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;C &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路 文章目录 1. 序列式容器和关联式容器1.1 序列式容器1.2 关联式容器 2. set系列的使用2.1 set和multiset的参考文档2.2 se…...

MCP实战:在扣子空间用扣子工作流MCP,一句话生成儿童故事rap视频

扣子最近迎来重要更新&#xff0c;支持将扣子工作流一键发布成MCP&#xff0c;在扣子空间里使用。 这个功能非常有用&#xff0c;因为我有很多业务工作流是在扣子平台上做的&#xff0c;两者打通之后&#xff0c;就可以在扣子空间里直接通过对话方式调用扣子工作流了&#xff0…...

c/c++的opencv直方图初识

C/C OpenCV中的图像直方图&#xff1a;零基础入门指南 &#x1f4ca; 大家好&#xff01;今天我们来聊聊图像处理中一个非常基础且重要的概念——直方图(Histogram)。如果你是OpenCV新手&#xff0c;或者对直方图感觉有点迷糊&#xff0c;别担心&#xff0c;这篇文章会用最简单…...

Spring Boot 与 RabbitMQ 的深度集成实践(一)

引言 ** 在当今的分布式系统架构中&#xff0c;随着业务复杂度的不断提升以及系统规模的持续扩张&#xff0c;如何实现系统组件之间高效、可靠的通信成为了关键问题。消息队列作为一种重要的中间件技术&#xff0c;应运而生并发挥着举足轻重的作用。 消息队列的核心价值在于其…...

Android动态音频柱状图可视化解析:从原理到实现

Android动态音频柱状图可视化解析:从原理到实现 一、整体架构设计二、核心组件设计三、核心代码实现四、交互设计与用户体验五、性能优化与问题解决一、整体架构设计 Android动态音频柱状图可视化解析 在移动应用开发中,音频可视化是增强用户体验的重要手段。无论是音乐播放器…...

vue3大事件项目

这周写完了vue3的大事件项目&#xff0c;从中学到了很多东西&#xff0c;并且解決了一部分bug&#xff0c;現在就和大家分享一下我遇到的问题并且是如何解決的 1. QuillEditor 的 v-model 用法错误 先讲一下quilleditor富文本的基本使用方法&#xff1a; 1.安裝quill依賴&am…...

MapReduce-WordCount实现按照value降序排序、字符小写、识别不同标点

要求&#xff1a; 输入文件的按照空格、逗号、点号、双引号等分词 输入文件的大写字母全部换成小写 文件输出要求按照value值降序排序 Hadoop给的wordcount示例代码以及代码理解 基于map reduce的word count个人理解&#xff1a;输入的文件经过map reduce框架处理后&#…...