自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 用通俗易懂的语言带你了解3dgs流程和功能

训练阶段:将这些高斯球按照每个相机位姿反投影到屏幕空间上,形成一张张和真实拍摄的图像相对应的渲染图,然后将渲染图和真实图像之间做对比,调整每个三维空间上的高斯球的大小和颜色,使得渲染更加逼真。3dgs的输入是有一堆不同视角的图像,colmap通过这些图像模拟相机运动变化得到相机变换的位姿,并得到根据图像生成一堆稀疏的拍摄场景的点云,然后将这些稀疏点云初始化成一个个高斯球,

2025-11-18 23:04:38 238

原创 汽车顶部的激光雷达测距原理图

激光雷达通过测距,得到到与前车距离,进行解算,获得与前车的距离。

2025-01-23 21:16:33 207

原创 3d高斯splatting重点原理解释

协方差矩阵可以控制高斯椭球形状是因为,标准高斯协方差矩阵是对角为1,其他为0,任意一个高斯都可以看作由标准高斯经过仿射变换得到,由不同协方差矩阵仿射变换来,普通线性仿射变换是w=Ax+b,高斯仿射变换是w~N(Aμ+b,A∑A转置)各向异性:协方差矩阵里的除对角线以外的aij表示与各个其他轴向(x或y或z)有相关程度,就是协方差元素aij=σxy或σxz或σyz,不同方向不同扩散程度/梯度。为什么叫抛雪球,雪球正在墙上会影响周围像素点的,许多雪球同时影响几个像素点,最后加以合成,得到最终的图像。

2025-01-22 02:59:40 398

原创 3d高斯学习

正投影是将3D点直接映射到2D平面上,忽略z坐标;透视投影会根据视角和投影规则,将3D点映射到2D平面,产生近大远小等视觉效果。splatting在投影矩阵之后的那个空间里做,点要做视口变换是为了和后面的像素匹配,做后面的tile渲染。因为高斯变成2d还是高斯,协方差矩阵直接拿掉3行3列即可(这个相当重要,直接省略了积分了!因为splatting算法就是要把3d的voxel投射到像素屏幕然后做叠加。4. 为什么协方差矩阵不用做平移缩放?1. 为什么3d高斯降维到2d?2. 怎么降到2d?

2025-01-22 02:07:23 278

原创 端到端到底是什么?

端到端可以说是用神经网络/机器学习等类似的减少中间过程的方式(比如黑匣子)直接从发送端到接收端。第一个端是发送端,如在物联网环境中,传感器节点作为发送端,负责采集环境数据并发送给网关。比如视频播放应用就是接收端,它接收视频流数据并进行解码播放。传统的是经过一系列数据处理/传输,从发送端输送到接收端。

2025-01-21 21:17:03 472

原创 3d高斯泼溅学习

点云文件中的每个点有很多信息,包括:1*点云数+3*中心点位置信息(x,y,z,也就是高斯均值的μ)+3*法向量信息(不同光照效果)+球谐函数参数:48*颜色信息(每个RGB有16个值,3*16)+1*不透明度a(也是密度信息)+协方差矩阵参数:3*缩放矩阵(scale1.2.3)+4*旋转矩阵(用四元数表达)渲染公式的参数包括当前点的不透明度a和一条射线下前面的点的密度(不透明度),都要纳入计算,并且,根据点云中一定半径范围内能够影响到当前点云的其他点云,都要纳入这个点的像素颜色的计算。

2025-01-21 21:10:16 1131

原创 for_each(begin,end,print)遍历,transform使用,back_inserter()插入数据到末尾,count_if()按照条件计数

for (int element : doubledVec) {//用element常量遍历doubleVec中的数据并获取过来。cout

2024-09-10 16:13:34 365 1

原创 stack使用,堆栈相关,push()放入栈内,top()显示栈顶,empty()判断是否为空,size()栈顶大小

std::cout<<"弹出之后的堆栈大小"<< s.size()<<std::endl;// 查看栈顶元素,empty()判断是否是空的,top()显示栈顶元素。//pop弹出栈顶元素。//stack,堆栈的意思。

2024-09-10 15:35:28 211

原创 deque的插入数据,删除数据,遍历容器中的数据可以用一个常量num:deque定义的dq对象

/将15插入到dq的初始值+1的位置,即第二个位置。for (const int& num : dq) {//定义了一个常量num遍历并获取deque中的数据。//删除第3个数据,即第一个数据再加2的地方。//定义一个类的数据dq。// 数据存储,stl中基本都用push_back。cout << "插入数据后的 deque:";cout << "删除数据后的 deque:";

2024-09-10 14:35:11 308

原创 deque使用,类似于容器vector

/ 将 print 函数的定义放在 test 函数外面或者单独作为一个全局函数。// 这里直接在 test 函数内部调用循环输出。

2024-09-10 14:20:07 143

原创 vector综合应用(结合类),erase(删除数据),读取数据,修改数据(数组)

people.push_back(Person("啰啦a梦", 30));people.push_back(Person("大熊", 25));people.push_back(Person("静香", 28));" << endl;cout << "修改年纪后" << endl;cout << "伴我熊心" << endl;// 输出删除数据后的 vector。// 向 vector 中添加数据。// 删除数据(假设删除 Bob)// 再次读取并输出修改后的数据。// 读取数据并输出。

2024-09-10 10:28:07 424

原创 stl之vector+类+遍历容器vector中的类的数据

v.push_back(MyClass(10, "张三"));v.push_back(MyClass(20, "李四"));v.push_back(MyClass(30, "王五"));// 向 vector 中添加对象。// 遍历并输出对象的值和名称。

2024-09-10 09:28:31 377

原创 stl——遍历容器vector中的数据

/第一种遍历=ending){//}//}//第二种遍历it!=v.end();it++)//}//第三种遍历test();return 0;

2024-09-10 09:06:56 532

原创 用二进制方法读写文件

/ 如果没有特定的成员变量可以输出,这里可以简单输出一个描述性语句。cout

2024-09-05 14:32:01 244

原创 C++文件读写操作,四种例子展示,输入输出流等使用

if(ifs.is_open()==NULL) { //也可以用if(!ifs.is_open())//0是进行初始化,9999是数组大小,容量。//getline(文件类,新建content字符串类),把文件类中内容给新建content字符串类。while(ifs>>vector) { //>>符号就是将左边的给右边的。cout << "文件打开失败" << endl;}//在终端上显示出来截取到的内容。//先定义一个数组,用来截取文件中的内容。//第三种方法,从数组获得空间存放字符。

2024-09-05 11:29:26 353

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除