- 博客(60)
- 资源 (1)
- 收藏
- 关注
原创 MuRF代码阅读
个点,那么组成的 Tensor pts_3D 对应的 shape 是 # [B,HW,D,3], 将这些采样点投影到 feature_map 上面然后计算 Reference Image 之间的。MuRF 可以对于 高分辨率的图像在 Test 的阶段做 Rendering。之后的图像生成的, 假设原图像的分辨率是。,去得到 Geometry 的 Cues., 那么会从 降采样4倍之后的图像。生成的 Ray 是从。
2024-08-01 20:08:30 467
原创 Pytorch Lighting & Hydra库的学习
都是需要先自己定义一个 Dataset, 然后根据自己定义的 Dataset 去实现 对应的 Dataloader在 DataModule 里面需要实现3个。
2024-06-14 11:33:05 1097 1
原创 mvsplat 的笔记
因此,代码里有两个 for loop, 一个 循环 .torch 文件, 一个 循环 torch 文件里面的数据集。每一个 pixel 生成一个坐标, 对应一个 Gaussian. Pixel 发生光线,, 通过卷积 变成2个通道,其中一个作为 density, 另一个作为 视差。. 并不一定是从 像素 中点 发生光心, 因此,每一个 pixel 还有一个。的4个通道预测的,先得到四元数。图像, 而每一个 数据集的以字典的形式进行存放。: 表示投影的 refrence image。,也是泛化得到的,从。
2024-05-29 11:55:30 1150
原创 将针孔模型相机 应用到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 1713 1
原创 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 673 1
原创 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 1912 3
原创 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 921
原创 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 225
原创 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 1247 1
原创 DVGO 代码阅读
BBx 的大小范围是 根据 相机的 位姿来构建的,会刚好 Cover 相机的移动范围,相当于 StreetSurf 里面的 close-range 的部分,代码在依靠这个 xyz 的前后边界 来区分 前景 fg 和 背景 bgDensity Field 的 dim = 1;RGB Field 的 Dim = 12。
2023-12-15 21:29:13 350
原创 关于BP 时候 报错的汇总
之前 的错误是 背景 Nerfacto MLP的层数 设定为8, 导致会在BP 的时候报错。保存在哪一个 step 会报错的checkpoint, 然后 尝试去。这个错误,如果能复现这个 Bug, 然后去debug 会方便很多。注意前面需要乘以系数。
2023-12-12 10:31:34 520
原创 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 448
原创 mmcv的环境 真 TM 难配 还有JAX 的环境配置
搞了个晚上 陪深度补全的 completionformer 没配出来。首先 搞定 MMCV 的配置:MMCV 一般无法使用 pip 进行安装,因为服务器没办法翻墙,需要将 wheel 文件下载下来之后,采用离线的安装。
2023-11-16 11:33:01 313
转载 安装 inplace_abn 遇到CUDA 的问题
原文链接:https://blog.csdn.net/hezhongla0811/article/details/110673512。其他模块遇到这个 类似的这个问题,也可以先清除pip 缓存, 指定CUDA 然后 pip 才会根据 cuda 去安装对应的模块。
2023-11-10 16:59:50 1417
原创 在 eval 的时候运行一遍网络,发现显存增加特别快
解决方法是: 在被调用的网络 函数 前面加一个装饰器,(这个函数可以是专门用来eval 的时候用的),
2023-09-06 16:08:11 174
原创 Python 中的值传递 和 引用传递
在第二行加上 clone 函数 之后,才可以保证执行完 第二行之后 的 position 的数值不会发生变换。
2023-08-08 21:11:23 849
原创 在Geogle Drive 上面下载压缩的文件
需要使用到 OCC3D 上面 的Waymo Occupancy 真值。Occ3d 应该是一个文件夹里面有很多 个压缩包,如果直接下载 会下载很多个文件。双击点进去 选择好对应的序列再进行下载。这里的 000 001 应该是对应的 waymo 的相机序列。waymo 的相机序列也是798 个序列。
2023-08-02 20:40:57 271
原创 使用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 448
原创 使用小觅相机录制指定话题的数据集
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 451
原创 读取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>
2021-11-07 11:27:37 3251
原创 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 3405 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 269
原创 python 使用plt.show 不显示图像的原因
头文件 加上这两行import matplotlibmatplotlib.use('TKAgg')
2021-09-05 16:09:01 2465
原创 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 2705
原创 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 913
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人