- 博客(108)
- 收藏
- 关注
原创 SFM与MVS
SFM是可以重建稀疏点云的和相机参数(内外), 主要目的是:estimating the geometry of the scene and camera poses from a set of images. 使用场景最多还是标定相机内外参。MVS重建的是稠密点云。输入的数据:SFM是没有标定的图像,而MVS输入的是标定的图像(具有相机参数),PS:相机参数可以通过SFM标定,所以如果从一组图像中重建三维模型,我们可以首先采用SFM标定相机内外参,然后根据标定结果进行稠密点云重建。
2025-04-01 15:40:35
976
原创 Dust3r、Mast3r、Fast3r
三维重建是计算机视觉中的一个高层任务,包含了很多底层的计算机视觉技术。传统的三维重建,如(structure from motion),就像是一个系列的pipeline工程,。
2025-03-29 15:43:59
2111
原创 3DGS较真系列
领域中,的核心目标是通过图像或视频构建可以被计算机处理和理解的3D模型。该技术被认为是机器理解真实世界复杂性的基础,催生了大量的应用,包括3D建模、虚拟现实、自动驾驶等诸多领域。回顾其发展历史,针对真实世界场景重建的研究早在深度学习诞生之前就已经兴起。早期研究主要集中在光场和结构性数据的恢复上,受限于早期计算机对密集采样和结构化捕获的算力限制,在处理复杂光照场景和不规则结构方面出现了巨大技术瓶颈。2006年,(Structure from Motion,后文简称SFM)和。
2025-03-25 15:40:53
1270
原创 Nerf较真系列
1.什么是Nerf2.Nerf的输入是什么3.Nerf的输出是什么4.怎么把Nerf的输出转化为一张图片5.Loss是怎么计算的模型输入是5D向量(x,y,z,theta, phi),输出是4D向量(密度,颜色),模型结构是八层MLP,此时可能会有疑问,输入不是一张张图片吗,怎么变成5D向量了,那么就应该有一个前处理过程,把图片处理成需要的5D向量,而输出不应该也是图片吗,到这里变成了4D向量,那么就应该有一个后处理过程,把4D向量处理成需要的图片。而这里的位姿是哪里来的,图片不是只有xyz位置信息吗,这里
2025-03-16 15:51:31
838
原创 DETR详解
之前还有幸接触外国博主的一种理解,说 Transformer 的 Self-Attention 对于目标检测友好的观点,个人觉得非常好。他说:Backbone 输出的特征图经过 1 × 1 1 \times 11×1 卷积后进行降维,得到的是 d × H × W d \times H \times Wd×H×W,被 reshape 成 d × H W d \times HWd×HW 作为 Transformer Block 的输入。
2025-03-10 22:27:16
933
原创 目标检测Anchor-based 与 Anchor-free
anchor-free和anchor-based是两种不同的目标检测方法,区别在于是否使用预定义的anchor框来匹配真实的目标框。anchor-based方法使用不同大小和形状的anchor框来回归和分类目标,例如faster rcnn、retinanet和yolo等。anchor-free,例如fcos、atss和cornernet等。anchor-free方法比anchor-based方法更简单和灵活,但可能存在召回率或定位精度低的问题。
2025-03-10 22:01:18
1171
原创 yolov7-3d算法原理
YOLOv 7 -3D算法应用于路边单摄像机三维目标检测。该方法利用二维边界框、投影角点和相对于二维边界框中心的偏移量等信息来辅助检测3D对象边界框,提高了三维物体边界框检测的准确性.此外,引入了5层特征金字塔网络(FPN)结构和多尺度空间注意机制,提高了不同尺度目标的特征显著性,从而提高了网络的检测精度。实验结果表明,该算法在Rope 3D数据集上的检测准确率明显提高,同时计算复杂度降低了60%。
2025-03-08 13:32:21
1537
3
原创 Ubuntu下cuda、cudnn、tensorrt安装及完成推理加速,并使用psmnet和yolov8进行验证
WSL2急速搭建CUDA体验环境_wsl2 cuda-CSDN博客
2025-02-21 14:45:12
462
原创 关于cascade stereo网络中psmnet的改进部分
Cascade版本的PSMNet通过级联结构、动态视差调整、残差预测和多阶段监督,显著提升了立体匹配的效率和精度。代码实现中,动态代价体构建和残差连接是关键创新,通过可变形采样和局部搜索范围有效减少了计算量,同时保持了细节精度。多阶段监督进一步提升了模型的鲁棒性。
2025-02-11 14:50:49
877
原创 ssh免密登录服务器
这时出现几个文件,id_rsa.pub(publilc)公钥,id_rsa私钥,known_hosts是上几步输入ssh 192.168.41.102 产生的文件;
2024-12-26 10:16:07
474
原创 视差图的使用和其他数据文件的预处理
使用函数read_pfm读取视差文件, pfm1, scale1 = read_pfm('0003.pfm') 这段代码里解析的pfm1即为视差数据,它其实是一个数据类型的数据,再使用region_data = pfm1[mask == 1],pfm2[mask == 1] = region_data完成对目标区域的提取和替换,并将结果保存save_pfm('pfm2_modified.pfm', pfm2, scale2)。
2024-11-28 14:24:06
544
原创 git基本操作
在我自己的github上我已经新建了一个项目,并作为master,现在我通过git clone源代码并进行了满足我开发需求的修改,现在想把改好的代码作为一个branch上传上去,步骤如下。
2024-11-20 22:36:23
415
原创 CondaHTTPError: HTTP 404 NOT FOUND for url <http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/l
创建虚拟环境时,遇到问题如下。
2024-11-05 11:51:11
1646
1
原创 安装Blender并使用
该系列记录了如何用Blenderpro来构建自己的场景数据集,从环境搭建到后期构建数据集的整个流程本文章是第一部分,BlenderPrc2的安装以及环境配置。
2024-11-02 18:53:06
3470
原创 BEV相关
稀疏注意力(Sparse Attention)是一种减少 Transformer 中注意力计算复杂度的方法。传统的注意力机制(如在经典 Transformer 和 DETR 中使用的全局注意力)需要每个查询(query)与输入序列中所有位置进行交互,计算每个查询和键(key)之间的注意力权重。这种机制的时间复杂度是 O(N2)O(N^2)O(N2),其中 NNN 是输入序列的长度(或特征图的分辨率),在高维输入或大分辨率图像上计算成本极高。稀疏注意力。
2024-10-14 09:31:05
736
1
原创 Transformer常见面试题
Transformer是一种基于注意力机制的神经网络模型,由编码器和解码器两部分组成,。Transformer最核心的部分是自注意力机制,它能够让模型在不同位置之间进行信息传递和交互,从而更好的学习输入序列中的信息。
2024-10-11 11:43:21
918
1
原创 深度学习常见问题
YOLOv5 是一个简单、高效的目标检测模型,适合大多数常规的实时目标检测任务。YOLOv8 作为最新版本,通过引入无锚框设计、自监督学习、多任务支持等多种创新,在精度和功能上都有显著提升,适合更复杂的应用场景和多任务要求。如果需要更高的检测精度和灵活性,YOLOv8 是更优的选择。不同任务使用不同的损失函数来引导模型的学习过程,损失函数的选择直接影响模型的优化效果和最终性能。分类任务:交叉熵损失、稀疏交叉熵、Focal Loss回归任务:均方误差、均绝对误差、Huber Loss生成对抗任务。
2024-10-09 10:24:51
1300
原创 为什么要虚析构,为什么不能虚构造
这行代码的意思是创建一个指向派生类对象(Derived)的基类指针(Base*),当通过delete basePtr基类指针删除派生类对象时,如果基类的析构函数不是虚函数,那么通过基类指针删除派生类对象时,只会调用基类的析构函数,而不会调用派生类的析构函数。构造函数在对象的创建阶段被调⽤,对象的类型在构造函数中已经确定。因此,构造函数调⽤不涉及多态性,也就是说,在对象的构造期间⽆法实现动态绑定。虚构造函数没有意义,因为对象的类型在构造过程中就已经确定,不需要动态地选择构造函数。为什么需要虚析构函数?
2024-10-07 20:49:47
250
原创 常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU)
激活函数是确定神经网络输出的数学方程式。激活函数的作用:给引入了非线性因素,使得神经网络可以任意逼近任何非线性函数。1、附加到网络中的每个神经元,并根据每个神经元的输入来确定是否应激活。2、有助于将每个神经元的输出标准化到1到0或-1到1的范围内。
2024-09-28 21:30:16
1020
原创 代码随想录(单词拆分)
接下来确定递推公式,如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。所以递推公式是 if([j, i] 这个区间的子串出现在字典里 && dp[j]是true) 那么 dp[i] = true。把问题看为,使用字典里的单词去组成字符串,其中。首先明确dp数组的含义,对于dp[i],,并且每个单词可以重复使用,因此这可以。,也就是为true或者false。
2024-09-28 10:10:20
291
原创 slam典型应用手搓
假设我们有一个三维状态向量 [x, y, z],并且定义一个新的观测模型。输出两个观测值[u, v],其中u = x^2 + y^2 + z, v = sin(x) + cos(y) + e^z,演示雅可比矩阵的计算。
2024-09-25 22:14:58
323
原创 排序算法C++
是一种简单直观的排序算法,它通过多次遍历列表,逐步将最大(或最小)的元素“冒泡”到列表的末尾。其名称源于算法的运行方式:较大的元素逐渐向上浮动,就像水中的气泡一样。
2024-09-23 23:22:14
775
原创 在Ubuntu使用VScode配合GDB完成代码调试
想学一下Ubuntu下的vscode代码调试,在网上找了很多博客,发现根本不管用,而且很多都是在Windows下的,与我的需求(使用CMakeLists.txt)不同,根本不能用,研究了一下。并记录。
2024-09-18 21:29:08
786
原创 graph slam:从推导到使用3
为了更好地理解graph based slam的过程,本文以二维平面的激光SLAM为例子,先简单介绍如何根据传感器信息构建图,即图优化的前端(front-end)。然后再针对上篇博客的疑问,结合matlab程序,分析图优化的后端(back-end)。对于3D的SLAM图优化的前端和上述过程基本差不多。
2024-09-16 19:32:59
1189
原创 graph slam:从推导到使用2
上面的步进迭代是用的两个向量直接相加,这是在欧式空间中的做法。在航迹推演的公式中我们也能看到相邻时刻间位姿的递增由于航向角的存在已经不是简单的相加了。我们看到图优化问题变成了求解最小二乘问题,然而机器人位姿之间的变化函数不是线性的,所以是个非线性最小二乘问题,得通过迭代法进行求解。所以,对于某个测量,我们应该使它出现在概率最大的地方,这就是最大似然概率。从上图中可以看出系统是稀疏的,并且正如上面图中的累加一样,程序中也可以对特定的ij计算相应的Hij,bij,然后再把所有的Hij,bij累加起来就行了。
2024-09-16 15:22:52
933
原创 graph slam:从推导到使用1
SLAM问题的处理方法主要分为和两类。滤波的方法中常见的是等,熟悉滤波思想的同学应该容易知道这类SLAM问题是递增的、实时的处理数据并矫正机器人位姿。比如基于粒子滤波的SLAM的处理思路是假设机器人知道当前时刻的位姿,利用编码器或者IMU之类的惯性导航又能够计算下一时刻的位姿,然而这类传感器有累计误差,所以再将每个粒子的激光传感器数据或者图像特征对比当前建立好的地图中的特征,挑选和地图特征匹配最好的粒子的位姿当做当前位姿,如此往复。
2024-09-16 15:09:02
841
原创 C++八股文基础知识点
指针是一个指向内存地址的变量,其本身是一个地址,地址保存的是变量的值,而且它本身可变,包括它指向的地址和地址上的存放的数据;引用即为一个变量的地址,也是变量的别名,和变量进行了绑定,并且引用必须初始化,且不可变。
2024-09-14 14:45:16
928
原创 ORB-SLAM2关键点总结
Sim3优化是单目特有的优化方式,因为单目尺度具有不确定性,对于空间点坐标有如下相似变换:于是我们建立了一个相似变换群Sim(3)其对应的李代数如下相比于欧式群的李代数其多了一个σ,变成了一个七维向量,而不是六维,关联Sim(3) 和s i m ( 3 )的仍是指数映射和对数映射,指数映射为其中微分求导模型和扰动求导模型对其同样适用。Sim3优化其实就是Pose Graph优化,其优化目标残差是。
2024-09-12 09:05:25
1126
原创 【超详细含图】Ubuntu系统忘记root密码的解决方法
如果是虚拟机建议用虚拟机一键发送Ctrl+Alt+Del指令,不然自己电脑系统容易弹框。选择root Drop to root shell prompt*输入刚刚修改好的密码,进入超级用户后,可以对自己用户的密码进行更改。注意:输入密码时是看不到密码的,注意不要输入错误。输入下面指令回到普通用户。再输入一遍密码:###自行测试,密码更改成功。选第二个,按住e进入。
2024-07-31 13:03:41
4261
3
原创 解决Ubuntu弹出U盘出错的问题
当我在使用U盘传输文件时,拷贝大文件到U盘里,当拷贝完成,弹出时,可能是文件太大,导致一直卡在“正在将数据写入VendorCo ProductCode,不要拔掉设备”,如果选择等待,有时会一直卡在这,如果直接拔掉,虽然过会会消失,但是关机时会让输入密码,并卡在关机步骤,一直关不掉。本文为解决此问题而记录。
2024-07-30 16:24:11
1829
原创 多台机器的docker容器的跨主机ROS通信
最简单的思路,修改一台主机docker默认的虚拟网段,然后在各自主机上分别把对方的docker网段加入到路由表中,即可实现docker容器夸主机通信。问题是,如何让位于不同主机上的docker容器可以通信?只是一个在绑定到这上面的其他网卡间自动转发数据包的虚拟。接下来可以进入docker环境,进行ping的尝试。桥,它可以使容器和主机相互通信,容器与容器间通信。之后就在ros下设置主从的端口,详情见。然后在v1,v2上把对方的。的后面部分ros的设置即可。的虚拟网络接口,默认选择。
2024-04-24 18:37:20
705
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人