- 博客(323)
- 收藏
- 关注
原创 3D Gaussian Splatting代码详解(三):模型构建,实现3D 高斯椭球体的克隆和分裂
这是一个用于密集化和修剪3D高斯分布的函数 densify_and_prune,其作用是根据梯度、不透明度、尺寸范围以及屏幕尺寸等参数来动态调整和优化3D高斯分布。此函数适用于3D场景的稠密表示和资源优化,通过密集化和修剪操作,有效提升了3D高斯分布的。和计算性能,适合动态场景中的高效数据处理。
2024-12-06 20:46:10
984
1
原创 3D Gaussian Splatting代码详解(二):模型构建
3 模型构建scene/gussian_model.py中的GussianModel类gaussians = GaussianModel(dataset.sh_degree)3.1初始化函数__init__ 构造函数构造函数 init 的主要作用是初始化 3D 高斯模型的各项参数和激活函数,用于生成 3D 空间中的高斯表示。 初始化球谐函数的参数: self.active_sh_degree:当前激活的球谐函数次数,初始为 0。self.max_sh_degree:指定的
2024-12-06 20:38:20
1438
原创 3D Gaussian Splatting代码详解(一):模型训练、数据加载
这段代码提供了两个主要函数 readColmapSceneInfo 和 readColmapCameras,用于读取和处理 COLMAP 生成的相机参数和场景信息,并将其格式化为易于使用的数据结构。这段代码定义了 Scene 类,用于管理和加载 3D 场景的参数、模型和相机信息,并支持不同分辨率的相机数据。Scene 类结合了高斯模型和数据集处理逻辑,尤其适用于从 COLMAP 或 Blender 数据集中加载相机和场景信息,以便进行 3D 表示和训练。该函数的作用是加载数据、设置场景和高斯模型的。
2024-12-06 20:24:39
1605
原创 E:\WorkSpace\water-splatting\water_splatting\cuda\csrc\helpers.cuh(3): fatal error C1083: 无法打开包括文件:
在配置water-splatting时,由于文件中glm未被拉取,故需要自己下载替换原文件夹。
2024-11-27 09:41:38
207
原创 [19:00:47] $HOME is not set. Exiting.
我找到了一个解决方案:在 Windows 中,默认情况下可能不设置 $HOME 环境变量。但是,您可以在运行 ns-install-cli 命令之前手动设置它。您可以这样做:打开命令提示符。运行以下命令,将 $HOME 变量设置为您的用户目录 (C:\Users此命令将 $HOME 变量设置为用户目录的路径,通常为 C:\Users\username。将HOME变量设置为用户目录应该可以解决与未设置HOME 变量设置为用户目录应该可以解决与未设置HOME。
2024-11-26 19:13:13
402
原创 【三维重建】windows10环境配置tiny-cuda-nn详细教程
本人在复现时,需要配置tiny-cuda-nn,与此同时,出现了很多问题,在此进行简单概述。
2024-11-25 21:37:07
1530
原创 训练3DGS和渲染3DGS
没有划分训练集和测试的数据集,添加 —eval,代码运行时候会自动划分。结果保存到tandt_db/tandt/truck/output。结果保存到tandt_db/tandt/truck/output。以tandt_db/tandt/truck数据集为例开始训练。在训练前,只需要先了解以下主要参数的作用.官方源码提供的sfm数据集。truck数据集的渲染。
2024-11-23 15:39:54
1367
原创 windows10下3DGS环境配置
3DGS(3D Gaussian Splatting)是由法国蔚蓝海岸大学的Kerbl, Bernhard等人在《3D Gaussian Splatting for Real-Time Radiance Field Rendering【SIGGRAPH 2023】》
2024-11-23 15:35:31
1199
原创 ModuleNotFoundError: No module named ‘simple_knn‘
【报错】复现 GaussianEditor 时引用 3D Gaussian Splatting 调用simple_knn 时遇到。成功安装后使用命令 pip list 查看 simple-knn 版本号是 0.0.0,说明不是 pip 官方包,只起占位作用。之前安装时直接进行配置。
2024-11-22 16:22:44
629
原创 技术理论||02空中三角测量
独立模型法是通过对单独的模型进行计算,获得模型的点坐标和摄站点坐标,在相互连接每个单模型之后,构成一个区域网模型,再经过严密平差,获得结果,这种方法在解算过程中,会出现较多的未知项。航带法空中三角测量研究的对象是一条航带的模型,也就是,先把由多个立体像对组成的单一模型连接起来,形成航带模型,再把这些单一模型连接起来,形成航带自由网,最后把航带模型当成一个单元模型,来对航带网进行绝对定向,这种方法具有很高的解算效率,而且对硬件的要求也很低,但是它的解算精度并不高。
2024-11-17 11:20:44
850
原创 技术理论||03运动恢复结构
另一方面,增量式SfM更适合于大规模的图像集,因为它可以一次处理一个图像,并且可以逐渐构建三维场景。然后选择一个图像作为初始图像,对其进行初始的相机位姿估计,然后通过三角测量将这些视角下的匹配点转化为三维点坐标,形成初始的稀疏点云。然后选择下一个待处理的图像,并在之前计算的相机位姿的基础上,通过特征匹配和三角测量计算出新的三维点,随着图像数量的增加,场景的三维信息越来越完整。增量式SfM是一种逐步估计相机姿态和场景结构的方法,其处理方式是对于每个新的图像,只估计其相对于之前图像的姿态和场景点的位置。
2024-11-17 11:01:31
254
原创 技术理论||01无人机倾斜摄影原理
而特征提取结果的好坏将直接影响影像匹配的精度以及联合平差空三加密点的精度质量。无人机与倾斜摄影测量技术相结合,具备一些独有的优势,采用倾斜摄影测量技术构建三维模型,不但可以获取海量的影像数据,同时也能获得精准的地理位置信息(通过无人机中的POS系统),能更加生动的展现测区内地物的真实情况,更加直观的表现出测区内地形特征与地物细节。2)无人机倾斜摄影测量的真实性高,航摄采集的影像数据具有较强的真实感且每张像片都带有定位信息,能够提供真实的地物形状以及周围的环境情况,弥补了传统建模存在真实感的不足的问题。
2024-11-16 17:45:16
1364
原创 《机器学习》周志华-CH10(降维与度量学习)
仅是得到了训练样本在低维空间的坐标,对于新样本,将高维空间坐标作为输入,低维空间坐标作为输出,训练一个回归学习器来对新样本的低维空间坐标进行预测。利用流形在局部上与欧氏距离同胚这个性质,计算两点之间测地线距离的问题,就转变为计算近邻连接图上两点之间最短路径问题。在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的困难,称为“若直接使用线性降维方法对三维空间观察到的样本进行降维,则将丢失原本的低维结构。对正交属性空间中的样本点,如何用一个超平面对所有样本进行表达?
2024-10-07 16:58:22
950
2
原创 《机器学习》周志华-CH9(聚类)
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为"簇"。时,“闵可夫斯基距离”是欧氏距离(Euclidean distance),最常用的是“闵可夫斯基距离”(Minkoski distance)假设样本有类别标记,学习过程利用样本的监督信息来辅助聚类。这是一个NP问题,采用贪心策略,通过迭代优化近似求解。聚类结果与“簇内相似度”高且“簇间相似度”低。”基于原型的聚类“,通过一组原型刻画。的类别标记不同,则更新后的原型向量与。时,“闵可夫斯基距离”是曼哈顿距离。
2024-09-27 16:28:08
1204
原创 《机器学习》周志华-CH8(集成学习)
先从初始训练集中训练出一个基学习器,再根据基学习器表现对训练样本分布调整,使先前错的样本后续得到更大关注,基于调整后的样本训练下一个基学习器,反复直到达到指定值。同质”集成“:只包含同种类型的个体学习器,同质集成中的个体学习器亦称“基学习器”,相应的学习算法称为“基学习算法”个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些学习器结合。异质“集成”:由不同学习算法生成,不再有基学习法,称“组件学习器”。将个体学习器称为初级学习器,用于结合的学习器称为次学习器或元学习器。
2024-09-24 20:22:48
1486
原创 《机器学习》周志华-CH7(贝叶斯分类)
半朴素贝叶斯分类器基本想法:适当考虑一部分属性间的相互依赖信息,从而既不需要进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。直接根据样本估计可能遇到困难,使用频率来估计不可行,因为“未被观测到”与“出现概率为零”通常是不同的。贝叶斯网结构有效地表达了属性间的条件独立性,给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。先定义一个评分函数,以此来评估贝叶斯网与训练数据的契合程度,基于评分函数在寻找结构最优的贝叶斯网。,避免这种情况,在估计概率值时通常进行“平滑”,查用“拉普拉斯修正”
2024-09-18 09:37:01
910
原创 C++ compilation error: ‘pair’ does not name a type
【代码】C++ compilation error: ‘pair’ does not name a type。
2024-09-01 20:43:16
286
原创 《机器学习》周志华-CH5(神经网络)
深度置信网络(deef belief network,简称DBN),每层都是一个受限Boltzmann机,整个网络可视为若干个RBM堆叠而得,使用无监督逐层训练时,首先训练第一层,这是关于训练样本的RBM模型,可按标准的RBM训练;ART(Adaptive Resonance Theory,自适应谐振网络理论)是竞争性学习代表,网络由比较层(接收输入样本)、识别层(每个神经元对应一个模式类,神经元数目可在训练过程中动态增长,增加新的模式表)、识别阈值和重置模块构成。预训练完成后,对整个网络“微调”。
2024-09-01 15:53:42
1730
4
原创 《机器学习》周志华-CH4(决策树)
一共有17个样例{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17},各样例权值均为1。决策树是一类常见的机器学习方法,又称“判别树”,决策过程最终结论对应了我们所希望的判定结果。计算当前属性集合{色泽,根蒂,瞧声,纹理,脐部,触感}每个属性信息增益。对应属性测试,每个结点包含的样本集合根据属性测试结果划分到子结点中。(2)给定划分属性,若该属性上的值缺失,如何对样本进行划分?(1)如何在属性缺失的情况下进行划分属性选择?若我们把每个属性视为坐标空间中的一个坐标轴,则。
2024-08-31 15:56:14
1087
原创 《机器学习》周志华-CH3(线性模型)
线性判别分析(Linear Discriminant Analysis,简称 LDA)是一种经典的线性学习方法,在二分类问题上因为最早由|Fisher,1936]提出,亦称“Fisher 判别分析”类别不平衡指分类任务中不同类别训练样例数目相差较大的情况,如998个反例,2个正例,如果全判反,编码矩阵有多种形式,常见二元码(正、反例),三元码(正,反,停用类)。维向量,例如属性“瓜类”的取值“西瓜”、“南瓜”、“黄瓜”可转化为。同等长度编码,理论上,任意两类之间编码距离越远,纠错能力越强。
2024-08-24 00:16:41
1233
原创 《机器学习》周志华-CH2(模型评估与选择)
eg:你是一个老师,数了学生10道题,你对他进行考核时,肯定不是考这10道题,才能体现他“举一反三”的能力。在很多情形下,根据预测结果对样例排序,排前面的“最可能”是正例的样本,排后面的“最不可能”是正例的样本。通过“测试集”来测试学习器对新样本的判别能力,然后以测试集上的“测试误差”作为“泛化误差”的近似。学习器比较时,若一个包住另一个,则可说前者优于后者,若有交叉,则分情况,比较合理的判断是比较。设前一个标记点坐标为。个反例,首先根据预测排序,然后将分类阈值设为最大,即把所有的样例均预测为反例,此时。
2024-08-22 00:43:31
1018
原创 《机器学习》周志华-CH1(绪论)
机器学习(Matchine-Learning)所研究的主要内容是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)。可以说机器学习(Matchine-Learning)是研究关于“学习算法”的学问。归纳与演绎是科学推理的两大基本手段。前者是从特殊到一般的“泛化”(generalization)过程,即从具体的事实归结出一般性的规律;后者则是从一般到特殊的“特化”(speacialization)过程,即从基础原理推演出具体状况。
2024-08-17 00:59:39
566
原创 Linux第六章---thrift
使用Thrift开发程序,首先要做的事情就是对接口进行描述, 然后再使用Thrift将接口的描述文件编译成对应语言的版本链接:thrift官网。
2024-08-14 02:24:32
1186
原创 C++之Lambda表达式
C++ 11 中的 Lambda 表达式用于定义并创建匿名的函数对象,以简化编程工作。[函数对象参数] (操作符重载函数参数) mutable 或 exception 声明 -> 返回值类型 {函数体}可以看到,Lambda 主要分为五个部分:[函数对象参数]、(操作符重载函数参数)、mutable 或 exception 声明、-> 返回值类型、{函数体}.不同编译器的具体实现可以有所不同,但期望的结果是: 按引用捕获的任何变量,Lambda 函数实际存储的应该是这些变量在。
2024-08-14 02:18:12
1002
原创 C++多线程
则加票的线程需要一直进行互斥锁的抢占,抢占后只是 检查票是否卖完了,但大部分时间是没卖完的,所以多了很多不必要的抢占。而如果我们引入条件变量,则可以转变下面这种场景:如果是取票线程抢占到了互斥量,则检查是否没票了,如果是,则令其等待一个条件变量m_notEmpty。因为在一般的互斥量中,如果一个线程在已经获取了互斥量的情况下再次阻塞式地获取互斥量就会导致死锁。避免了互斥量的使用。于是C++11给你提供了std::async函数,这个函数的使用就像调用一个普通函数一样,只是这个函数由另一个线程去执行。
2024-08-14 01:56:21
910
原创 ssh远程执行命令
最外层是双引号,内嵌单引号,$等特殊符号依旧可以识别。最外层是单引号,内嵌双引号,$等特殊符号无法识别。如果shell命令(用ssh执行)中有空格,,服务器不知道$a的值,解析为空。进行解析,所以传过去命令不是。的值在服务器随循环变化。进行解析,传过去的是。进行解析,本地不知道。
2024-07-30 01:00:11
969
原创 YOLOv8:raise RuntimeError(‘DataLoader worker (pid(s) {}) exited unexpectedly‘.format(pids_str)) from
2、页面文件太小,无法完成操作,修改虚拟内存,要修改python安装硬盘的虚拟内存,如果python环境安装在C盘,那就修改C盘,如果安装在D盘,那就修改D盘;使用了该方法之后,能解决问题二,但训练了一轮之后,会报问题一的错误,还是没能彻底解决问题;1、将num_workers修改为0,但我在程序里面,把所有能修改的num_workers变量都修改了一遍,还是解决不了;OSError: [WinError 1455] 页面文件太小,无法完成操作。
2024-07-15 22:35:52
837
1
原创 实验6 形态学图像处理
膨胀:将模板与以每个像素为中心的33矩阵做点乘,并求和结果矩阵,如果结果大于0,则表示矩阵范围内有1值,可膨胀。腐蚀:将模板与以每个像素为中心的33矩阵做点乘,并求和结果矩阵,则表示模板中所有的像素都为1值,不可腐蚀。
2024-06-30 20:51:06
1211
原创 实验5 图像分割
(总结最大类间差分算法步骤,对实验结果进行分析)最大类间差分算法是根据图像的灰度特性,将图像分为前景和背景两个部分。当取最佳阈值时,两部分之间的差别应该是最大的,前景和背景之间的类间方差如果越大,就说明构成图像的两个部分之间的差别越大。
2024-06-30 20:21:36
1093
原创 实验4 图像空间滤波
⑴不调用Matlab / OpenCV中的函数,编程实现图像的均值滤波,高斯滤波和中值滤波。⑵与3.2、3.3的实验结果进行对比,观察实验结果是否相同,分析原因并改进、优化所编写程序。⑶将所编写程序段封装为自定义函数。① 均值滤波源代码及实验结果 (添加必要注释)"""均值滤波函数:param image: 输入图像:param kernel_size: 滤波器大小:return: 滤波后的图像"""② 高斯滤波"""高斯滤波函数:param image: 输入图像。
2024-06-29 23:35:15
1053
原创 实验3 图像基本运算
在Matlab / Python中,调用相关函数,完成图像的灰度变换操作,包括线性变换、伽马变换、阈值变换(二值化)等,分别使用不同的参数观察灰度变换效果。色阶调整可以增加图像的对比度:通过拉伸图像的亮度范围,色阶调整可以增加图像中不同灰度级别的距离,使得图像的黑白点更加明显,从而增强图像的对比度。曲线工具能够更细致地调整图像的亮度和色彩分布,因此在处理需要更精确控制的图像调整任务时,曲线工具通常能够提供更好的成像效果。效果:将两幅图像的对应像素进行逐像素相除,可以实现图像的纠偏或纠正,消除图像中的畸变。
2024-06-29 23:20:03
1279
原创 实验2 色彩模式转换
数据类型的差异:不同的库或代码实现可能使用不同的数据类型来表示图像和通道值。答:算法实现的差异:不同的库或代码实现可能会在算法的具体实现上存在微小的差异。① 使用调用的Matlab函数,OpenCV函数以及自己编写的函数,进行相同的色彩模式转换。第四个维度(维度3):表示图像的通道索引,通常用于表示图像的不同颜色通道。不调用相关库中的函数,根据色彩模式转换原理,找到各色彩模式对应的转换关系,并自行编写代码实现·RGB、YCbCr、HSV等色彩模式的转换。答:第一个维度(维度0):表示图像的索引或编号。
2024-06-29 23:01:26
937
原创 实验 1 图像基本操作
①熟悉 Photoshop 基本操作;②掌握 Matlab 、Python+OpenCV 中处理图像的基本方法;③掌握图像的半调转换和抖动转换。①Photoshop 基本操作:打开图像文件,选择区域,旋转、裁剪图像、图层操作;②Matlab 、Python+OpenCV 基本操作:读入图像,改变图像尺寸,旋转、裁剪图像,计算图像的基本特征指标。③使用 Matlab 完成图像的半调转换和抖动转换并显示结果。① 实验步骤(需详细介绍每一步实验步骤)(1) 打开图像文件:(2) 选择区域:(3) 裁剪
2024-06-29 22:33:32
899
原创 在word中创建宏来多级列表的编号不显示的bug
出现问题的示意图如下,可以看出标题前面1.1消失了。第三步:选择当前文件(创建宏后,方便查找)第七步:关闭VB并执行。第一步:选择开发工具。
2024-05-13 21:55:09
533
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人