自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 将针孔模型相机 应用到3DGS

下面这个 Projection_Matrix 的构建 和上面公式推导会有一点不一样的地方,尤其是对于 Z值的计算上,Github 上也有人提出过疑问。, 然后我们再通过线性变换做正交投影将Cuboid 的长和宽分别缩放到 一个 单位立方体, 即将 [l, r] ⇒ [-1, 1] and [b, t] ⇒ [-1, 1]。【 就是把 (l,r)映射到 (-1,1)】,最后才可以变换到Clip坐标系下面的坐标。上面的恰好是 Clip 坐标系的 齐次坐标系。3DGS 的 投影采用的是 CG系的投影矩阵。

2024-04-28 22:48:29 1396

原创 3DGS CUDA代码笔记

真实的 Render 过程是在下面这个函数执行的,我们。

2024-04-23 17:21:41 420

原创 VScode 里面使用 python 去直接调用 CUDA

上一个 帖子主要分享了如何 去将 C++ 程序 打包成一个package。 我们最后的 目的实际上是想把 CUDA 的程序 打包成 一个 Package , C++ 程序只是起到了桥梁的作用:我们的文件 由 一个 Cpp 文件组成,负责当作 CUDA 和 Python 的桥梁,将这个cpp 文件命名成 ext.cpp.cpp_properities.json 配置文件CUDA 部分:CUDA 的头文件 *** interpolation_kernel.h ***对应的 源代码 文件*** inte

2024-04-19 16:49:47 432 1

原创 VScode 里面 Python 当中去调用 C++ 代码

VScode 里面应该安装 Python 和 C++ 的插件。

2024-04-18 14:07:13 219

原创 Scaffold-GS 代码阅读笔记

*scaling ** : 每一个 anchor_point 额外有一个 scaling 的属性, 其初始化时每个3D点到最近3D点的距离, 但是却 repeat 了6次,因此 shape 时 (N,6). 这个 scaleing factor 不是高斯的属性,不能理解为 协方差中的 scale,而是一个缩放因子。需要注意的是,根据 视场角 fov 的定义,对于图像进行长和宽等比例的降采样之后,视场角FOV 是保持不变的 (如果考虑相机的主点不存在偏移的话)。剩下的 图像作为 Train Image.

2024-04-11 21:01:22 1101 1

原创 Splatstudio 学习笔记

3.2 修改 Camera 的坐标,将其从 nerfstudio 的坐标 旋转 到 opencv 的坐标。SH 的稀疏的 shape 标准是(N,16,3);快速的方法,将图像分成 16*16 的tile;计算每一个 Tile 和圆的 相交区域。计算 每一个像素到2D 投影圆的距离,并且依据 高斯分布 求解出 opacity 的大小。圆的圆心,可以直接通过 3D Gaussian 的中心点 Center 投影得到。返回值是一张 全图的 RGB 和对应的 Camera。计算每一个像素的颜色。

2024-04-08 16:25:15 697

原创 Spade CNN技术细节

Input: (1,3,256,64,128)做downsample 成 : (1,3,8,16,32)首先有一个 EqualConv3D(3,128,3,3,stride=1,padding=1) 对 input 进行卷积得到:(1,128,8,16,32)input channel: 3output channel: 128然后经过第1个 Spade Block:将 input 的 Volume (1,3,64,128,256 )进行下采样 (1,3,8,16,32)上面是一个 Spad

2024-02-29 14:33:45 195

原创 Pixel Nerf代码阅读

SB: scene batch 场景的个数;4NV: number input ,每个场景的视角,也就是图像的数量;49每条光线首先会采集 64个采样点, 一次训练4 个场景,每个场景随机【用上了该场景的所有的图像】选择128条光线,因此 光线的 shape (4,128,8)在 compostit_alpha 函数里面,使用 Z 的数值 生成采样点 points, point 的 shape 设置为(4,8192,3) 表示一共有4个场景,每个场景生成 8192条光线。

2023-12-20 20:50:01 1172 1

原创 DVGO 代码阅读

BBx 的大小范围是 根据 相机的 位姿来构建的,会刚好 Cover 相机的移动范围,相当于 StreetSurf 里面的 close-range 的部分,代码在依靠这个 xyz 的前后边界 来区分 前景 fg 和 背景 bgDensity Field 的 dim = 1;RGB Field 的 Dim = 12。

2023-12-15 21:29:13 271

原创 关于BP 时候 报错的汇总

之前 的错误是 背景 Nerfacto MLP的层数 设定为8, 导致会在BP 的时候报错。保存在哪一个 step 会报错的checkpoint, 然后 尝试去。这个错误,如果能复现这个 Bug, 然后去debug 会方便很多。注意前面需要乘以系数。

2023-12-12 10:31:34 471

原创 IBR-net 代码研读

假设原图的 shape (512,512,3), 选择原图相近的 10张图像,经过U-Net 类似的结构之后,生成的 特征Tensor 是(10,64,128,128)。这个特征图 分成2个(10,32,128,128) 和 (10,32,128,128) 分别送入到 Coarse IBR-net 和 Fine IBR-Net 中去。通过一个MLP,将每个世界点到 相关方向的 direction (500,64,10.3) 通过MLP 学成 (500,64,10,35) 维度的feature。

2023-12-04 11:01:00 425

原创 mmcv的环境 真 TM 难配 还有JAX 的环境配置

搞了个晚上 陪深度补全的 completionformer 没配出来。首先 搞定 MMCV 的配置:MMCV 一般无法使用 pip 进行安装,因为服务器没办法翻墙,需要将 wheel 文件下载下来之后,采用离线的安装。

2023-11-16 11:33:01 198

转载 安装 inplace_abn 遇到CUDA 的问题

原文链接:https://blog.csdn.net/hezhongla0811/article/details/110673512。其他模块遇到这个 类似的这个问题,也可以先清除pip 缓存, 指定CUDA 然后 pip 才会根据 cuda 去安装对应的模块。

2023-11-10 16:59:50 772

原创 切换nvcc 的CUDA 版本

配置完成,可以用nvcc -V命令查看当前的CUDA(nvcc)版本。可以看到安装过不同版本CUDA的路径。

2023-11-10 16:32:18 426

原创 在 eval 的时候运行一遍网络,发现显存增加特别快

解决方法是: 在被调用的网络 函数 前面加一个装饰器,(这个函数可以是专门用来eval 的时候用的),

2023-09-06 16:08:11 142

原创 Python 中的值传递 和 引用传递

在第二行加上 clone 函数 之后,才可以保证执行完 第二行之后 的 position 的数值不会发生变换。

2023-08-08 21:11:23 378

原创 在Geogle Drive 上面下载压缩的文件

需要使用到 OCC3D 上面 的Waymo Occupancy 真值。Occ3d 应该是一个文件夹里面有很多 个压缩包,如果直接下载 会下载很多个文件。双击点进去 选择好对应的序列再进行下载。这里的 000 001 应该是对应的 waymo 的相机序列。waymo 的相机序列也是798 个序列。

2023-08-02 20:40:57 194

原创 Vscode 配置 .ssh/config 文件的时候不能添加新的主机名

vscode 添加多个远程Host

2023-03-06 16:36:50 350 1

原创 SDF_studio 实验记录

sdfstudio 阅读笔记

2023-01-29 23:16:05 1241 1

原创 Nerf_studio 使用记录

Nerf_studio安装和使用记录

2022-12-29 14:34:50 7292 12

原创 求出Pose(4*4)矩阵的 t 的平均值,并且减掉 t的均值

Numpy 数组不同维度的加减法

2022-11-24 11:53:52 365 1

原创 python将写数组 txt, 读数组并画图

numpy 到txt 写入并读取

2022-11-01 10:07:38 260

原创 Vim 学习笔记

我的ViM 学习命令记录

2022-10-21 20:57:26 565

原创 Nerf Pytorch 代码 shuffle_ray 代码阅读

Nerf 代码阅读与注释

2022-09-25 16:12:02 985

原创 Pytroch Nerf代码阅读笔记(LLFF 数据集pose 处理和Nerf 网络结构)

Nerf Pytorch 代码阅读笔记

2022-08-31 12:25:02 6774 5

原创 Pytorch 中的tensor 、ndarray、 PIL图像格式互相转换的代码

pytorch 中 tensor 的转化和使用

2022-08-11 18:28:51 1742

原创 在服务器指定GPU进行训练

服务器上指定GPU训练模型

2022-07-07 12:40:39 5662 1

原创 使用Calibr标定相机内参数

参考网站利用 kalibr 标定 Camera-IMU 外参:https://blog.csdn.net/HERO_CJN/article/details/891758391. 安装配置 kalibrGithub 网址下载源码.https://github.com/ethz-asl/kalibrmkdir -p ./kalibr_workspace/srccd ./kalibr_workspacesource /opt/ros/melodic/setup.bash// 初始化 ca

2022-04-20 10:12:01 371

原创 Mathtype中预置新公式来统一格式化公式

word 中格式化 mathtype 格式

2022-02-28 16:02:12 9832 4

原创 使用小觅相机录制指定话题的数据集

1 开启小觅相机(安装好相机的SDK)source ./wrappers/ros/devel/setup.bashroslaunch mynteye_wrapper_d display.launch2 查看话题rostopic list红色的圈为需要录制的指定话题,分别对应小觅相机的深度图和彩色图3 录制话题录制bag名称为 sequences 的 bag 包,指定话题为** /mynteye/left/image_color 和 /mynteye/depth/image_raw **

2021-12-06 22:40:59 423

原创 读取PCD文件的点云并在 RVIZ显示

1. 创建功能包 catkin_init 之类的代码2. src 源文件如下 :#include <ros/ros.h>#include <pcl/point_types.h>#include <pcl_conversions//pcl_conversions.h>#include <sensor_msgs/PointCloud2.h>#include <pcl/io/pcd_io.h>#include <iostream&gt

2021-11-07 11:27:37 2700

原创 C++中的 map进行遍历(也包括unordered_map 的遍历方法)

使用的是map里面的 first 方法和second 方法。 first 方法得到的是map 中的key, second方法得到的是map中的value; for(auto iter = mp.begin(); iter != mp.end(); iter++){ if(iter->second > nums.size()/2) // second 方法得到的是map 中的value { ans = iter->first; // 得到

2021-09-21 14:53:33 3348 1

原创 十进制转为二进制,并统计1的个数

int N = 11; int res = 0; // 二进制中1的个数 string ans; // 二进制字符串 while (N) { res += N & 1; ans += to_string(N & 1); N = N >> 1; } cout << res<<endl; reverse(ans.begin(), ans.end()); // 反转后才是真正的二进制字符串 cout << ans;.

2021-09-15 15:57:58 247

原创 python 使用plt.show 不显示图像的原因

头文件 加上这两行import matplotlibmatplotlib.use('TKAgg')

2021-09-05 16:09:01 2333

原创 swap函数 交换 vector 里面的两个元素

在快速排序的时候会用到的:void Quick_sort(vector<int>& A, int left, int right){ if (left >= right) return; // 那个中心轴的元素 初始化为 最左边的。 int pivot = A[left]; // 拿出两个指针用来移动 int L = left; int R = right; while (L != R) // 当L=R 时候 退出循

2021-08-26 21:05:58 2497

原创 C++常见的输入输出【机试用】

0. 常用头文件#include <iostream>#include <vector>#include <algorithm>#include <stack>#include <string>#include<sstream>#include <unordered_map>1. 字符串的读取getline(cin,str); // 连空格也会读取2. 一维vector 的输入第一行 输入数组的长

2021-08-18 15:47:50 767

原创 机体坐标系b系 和相机坐标系之间的转换关系

一般情况下,相机安装在云台上并与无人机固连,云台具有水平和垂直两个方向的旋转自由度。实际中可认为相机系的原点与机体系的原点相重合。我们加速度计求出的 俯仰,滚转,偏航是导航系n到机体系b的。在计算机视觉当中,还需要将姿态从机体系 转化到相机系。相机坐标系:摄像机坐标系(c 系): 以光学系统的像方主点为原点O ; X轴平行于成像平面坐标系,右向为正; Y轴平行于成像平面坐标系的纵轴,下向为正; Z轴指向观察者,向下为正; 构成右手坐标系。Body 坐标系:机体系 一般是 X 轴 前,右边是Y轴,Z

2021-08-01 23:46:27 1726

原创 自己编写代码,实现C++里面的 istingstream 函数,分离空格之间的字符串

string str; getline(cin, str); int interupt = 0; vector<string> res; int start = 0; for (size_t i = 0; i < str.size(); i++) { if (str[i] == ' ') { interupt = i; string s = str.substr(start, interupt - start); start = i + 1; .

2021-08-01 20:10:11 136

原创 LSD直线检测 关于头文件的 #include <opencv2/imgproc.hpp> 不在main 函数那个文件便会报错

最开始放在一个C++ 文件里面.报错信息如下: 各种 redefination 重定义错误/usr/local/include/opencv2/core/saturate.hpp:106:25: error: redefinition of ‘_Tp cv::saturate_cast(unsigned int) [with _Tp = unsigned char]’ template<> inline uchar saturate_cast<uchar>(unsigned v

2021-07-15 12:05:29 511

原创 C++ 栈的遍历

思路: 将链表的指针push栈中,然后一个个将栈顶的元素pop出来,实现链表的反转。void flip_in_stack(ListNode* head){stack<ListNode*> flip_stack;// 将链表的指针压入堆栈head = head->next;while (head){flip_stack.push(head);head = head->next;}while (!flip_stack.empty()){head = flip_s

2021-07-12 17:05:39 3647

TUM RGBD数据集 适用于动态场景的SLAM

慕尼黑工大TUM的数据集,因为在外网不好下载,所以我特地下载了下来,分享在我的博客上面,希望可以帮助到大家。

2020-11-24

空空如也

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

TA关注的人

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