- 博客(43)
- 资源 (1)
- 收藏
- 关注
原创 如何查询某个进程的CPU占用
如果要统计 lio_sam_mapOptm 的cpu占用,则需要从文本提取 尾为 lio_sam_mapOptm 的行。另外还有更高级一点的应用,用taskset 把进程绑定到特定的核上。1. top命令,可以使用,但是无法确定占用的是哪个核。2. pidstat 命令。
2025-03-27 11:13:16
330
原创 在nvidia jetson nx 板子上使用VPI+cuda backend计算光流
光流追踪的输入是nvida格式的,对于我这种VPI小白不太友好,花费了一番功夫实现了输入cv::point2f 格式的稀疏点使用VPI+cuda backend 计算光流的功能,并封装成类,分享给大家。因此恰当的使用vpi可以把部分需要gpu的计算让其他的计算资源来承担来降低cpu的负载,降低cpu过载造成设备卡死、计算异常等各种各样的风险。对代码进行了测试,可以运行,与使用OpenCV 调用CPU 计算光流相比性能确有提升,与OpenCV 调用GPU计算光流相比,表现略差。
2025-01-15 09:23:05
239
原创 论文笔记《Large-scale Indoor Mapping with Failure Detection and Recovery in SLAM》
2. 管理的主要方法是,当追踪失败时,新启动一个session,老的地图会存放到内存或者硬盘中,当新的帧和地图中老的帧之间发生闭环时,去优化减小drift和merge地图,感觉是这个意思。感觉这方面的内容,orbslam3中也有,可能这个作者做的更完善吧。1. 当slam运行时间很长的时候,在某一帧失败的概率会增加,失败后如何重启slam,新的地图如何与老地图merge融合等等都是产业界非常关注,但学术资料贫乏的领域,这也是这篇论文能中的原因之一吧。
2024-11-11 19:08:43
142
1
原创 BeautyMap: Binary-Encoded Adaptable GroundMatrix for Dynamic Points Removal in Global Maps
第四句说他的方法使用了二进制矩阵编码的形式很快速的去除动态物体。看上面的流程图,首先使用Global map抽取地面,然后对global map 做二进制编码,形成Map Matrix,对scans 做局部到全局的匹配,然后使用同样的方法获得 Query Matrix,这两个Matrix的每个cell使用二进制编码,然后通过比较Matrix和细化地面分割的形式来做动态物体剔除,得到了潜在动态物体的二进制编码的矩阵,最后通过静态保护的步骤来确定潜在动态物体编码中的哪些grid要被剔除掉,哪些要被留下。
2024-11-06 18:22:42
314
3
原创 Ros 如何把log日志输出到文件
今天查bug时发现在~/.ros下面没有找到我打印的日志文件,比较困惑。搞了半天终于明白了,想要写出到log日志,则需要把“screen”改成“log".是不会把log日志写出到文件的。
2024-10-30 17:16:28
518
原创 在ubuntu系统上播放mp4视频
1. 安装 mpv,sudo apt install mpv。2. 播放方法:mpv path/file.mp4。
2024-10-12 09:43:39
674
原创 CLion调试ROS(包括launch启动的ROS)
-------------------------------------------------------------高能预警-------------------------------------------------------在ros::init前面输入下面的代码,然后使用roslaunch启动ros包,打印某个包的输入参数。9. 用roslaunch,启动,这时启动了除了你要调试的包程序以外的所有依赖程序。10. 使用Clion启动你要调试的包程序,这时你就可以用Clion调试了。
2024-08-24 10:00:00
579
原创 slam面试题最小二成问题,wifi热点问题
下面是优化的问题解法。其实还有更简单的解法,因为只有三个wifi热点,列三个方程,1,2,3,消掉其中的二次项,有点像高中的几何题,但这种方法只适合有三个wifi热点的情况。2. 假设有三个WIFI热点,位置分别在(x1,y1), (x2,y2), (x3,y3), 移动端测量到每一个热点的距离L1,L2和L3,要求解移动端的位置.需要写一个C/C++/JAVA的程序,(基于第一题的结论自己实现求解过程,可以调用基础的数学矩阵库,但是。* @param distances 观测的终端到wifi的位置。
2024-08-06 07:04:31
918
原创 RGB-D mapping: Using Kinect-style depth cameras for dense 3D modeling of indoor environments
创新点:1.把depth的约束合并到BA里面。创新点:1.把depth的约束合并到BA里面。
2024-07-08 09:21:01
248
原创 Bad slam: Bundle adjusted direct rgb-d slam. Proceedings of the IEEE conference on computer vision a
和绝大多数SLAM系统一样,本系统分为前端和后端:前端实时跟踪RGB-D相机的运动,为相机姿势和场景几何的提供初始估计;本文主要的算法创新在于后端的直接法BA,这里先简要介绍一下前端和后端的大致框架,再详细介绍算法细节。建立并公开了一个RGB-D SLAM的基准数据集,相比以往的数据集,主要优势是数据在采集时就保障了高度同步性,且消除了卷帘快门的影响;提出一个快速的直接法的BA,用于RGB-D SLAM系统中,一个GPU就可以实现实时性能,且效果性能超过其他现有系统。
2024-07-08 09:17:57
183
原创 Dehazing-NeRF: Neural Radiance Fields from Hazy Images
大气散射是造成图像不清晰,朦胧的原因之一。图像把描述大气散射对成像影响的ASM模型加入到NeRF中进行联合优化达到从朦胧的图像中获取清晰的render的效果。大气中粒子的散射作用是造成雾霾的主要原因,雾霾图像的低能见度是由于大气中悬浮粒子对光的吸收和散射。
2024-07-08 09:17:14
201
原创 BAD-Gaussians: Bundle Adjusted Deblur Gaussian Splatting
使用了一个稀疏的核,仿真一个像素接受很多rey的光子造成模糊的物理过程,二者联合优化,得到了更clear的NeRF。在推理阶段把前半部分去掉,使用一个正常的图像的ray作为输入即可得到更清晰的渲染。创新点:核心创新点与同名作者的论文《BAD-NeRF: Bundle Adjusted Deblur Neural Radiance Fields》相似。
2024-07-08 09:16:10
552
原创 DeFlowSLAM: Self-Supervised Scene Motion Decomposition for Dynamic Dense SLAM
而对于动态光流,在每次迭代时通过动态光流的卷积层直接输出获得,同时,我们将其与静态光流相加以获得完整的光流,并输入到光流特征编码器中,用于下一次迭代优化。,将其与初始静态光流、完整光流(静态光流与动态光流之和)、动态掩码一起输入入动态更新模块,迭代优化位姿残差、逆深度、静态光流和动态光流,最后输出估计。,其中稠密的集束调整层接收估计的静态光流场和由动态掩码控制的权重,并输出优化的静态光流场的残差、相机位姿。中直接作用于光流修正项的更新模块不同,我们的动态更新模块分别作用于分解后的静态光流和动态光流。
2024-07-08 09:10:51
682
原创 Deep Patch Visual Odometry
注意Track的建立的过程,可以人为随机选取一些稀疏的patch,用这些稀疏的patch和上一帧去匹配(类似预raft)
2024-07-08 09:09:22
293
原创 TartanVO: A Generalizable Learning-based VO
Second, we design an up-to-scale loss function to deal with the scale ambiguity of monocular VO. (通过归一化的方式,解决尺度歧义的问题)Third, we create an intrinsics layer (IL) in our VO model enabling generalization across different cameras. (提出了一个内参层,解决训练集合测试集内参不一样造成的问题)
2024-07-08 09:08:31
209
原创 Dytanvo: Joint refinement of visual odometry and motion segmentation in dynamic environments
是预测概率和分割标签之间的二元交叉熵损失。可以以端到端的方式进行训练,损失函数包括光流损失。为预测流和真实流之间的。
2024-07-08 09:07:37
302
原创 AirDOS: Dynamic SLAM benefits from Articulated Objects
论文的创新点有二:做BA时,应用动态物体上的点的内部约束可以提高相机定位的精度。第二,做BA时,不去滤除动态物体上的点,而是直接估算动态物体的运动T,可以提高相机姿态的估算的精度。
2024-07-08 09:05:36
116
原创 DOT: Dynamic Object Tracking for Visual SLAM “ 2021 IEEE International Conference on Robotics and A
使用大白话来表示是,当物体移动矩阵是To的时候把点投影到图像上,假设物体不移动(这种情况下To是单位矩阵)的时候也投影到图像上,比较两者之间的坐标的差别。当这个物体的dynamic disparity 超过一定的阈值的时候我们认为是动态物体,否则认为是静态的物体。当我们获取了前后相机相对比较准确的位姿的变换关系,优化物体的六自由度的移动(式子中的红色的部分)使得下面的式子的loss最小即可。如下面的式子,优化蓝色的部分,exp()并表示的做扰动,感觉没有必要在论文中写成这样的形势,图曾理解的困难。
2024-07-08 09:04:41
189
原创 Dynamic-SLAM: Semantic monocular visual localization and mapping based on deep learning in dynamic e
Missed detection compensation algorithm(漏检补偿算法)和Seletive Tracking Method(选择跟踪算法。论文写的特别冗长,可以直接参考下面的链接,加快阅读的速度。算法是在slam中引入基于deep learning的object detection,解决动态物体造成slam不稳定的问题。
2024-07-08 09:03:35
174
原创 DynaSLAM: Tracking, Mapping and Inpainting in Dynamic Scenes “ IEEE Robotics and Automation Letters
多视角滤除的原理是,对于当前帧和之前的一帧上匹配的点,如果两者之间的夹角大于30°,计算这个land mark 在当前帧视角下的深度,如果这个深度与rgb-D的深度之间的差别大于特定的阈值也认为这个点是移动的landmark。对于Kf1的观测到的land mark,我们可以使用stereo的方法恢复出深度,如果姿态已知,可以把这个land mark 投影到图像二,这时,我们可以恢复投影位置的深度,比较两者深度的差别即可。具体的步骤是首先找一些overlap高且图像夹角小于30°的图像对。
2024-07-08 09:02:27
176
原创 GCLO: Ground Constrained LiDAR Odometry with Low-drifts for GPS-denied Indoor Environments
最后把不同关键帧观察到的平面地标关联起来。然后在每个关键帧处,将滑动地图记录为局部地图。附近的地面点被分割并建模为最近点(特征的尺度问题,在追踪的过程中,如果特征点到相机的距离发生了很大的变化则停止追踪。在室内多层停车场和平坦的室外站点的准确性方面的卓越性能。首先,维护以传感器为中心的滑动地图,并使用点到平面。方法,该方法利用这些特定环境中的平面地面来降低垂直漂移。,考虑其深度,做一些外点剔除的工作,闭环后续出现很多。的准确性非常重要,尤其是在无。在适应其他环境方面的局限性。识别出地面点,对地面点的。
2024-07-08 08:57:02
222
原创 A novel translation estimation for essential matrix based stereo visual odometry
论文采用的基于本征矩阵分解式的VO,传统方法一般先算出三维点坐标再计算相机之间的平移,那么相机之间的平移会受限于三维点的精度。这篇文章剔除了一种基于本征矩阵分解式的VO三维点的解算,它避免了三维坐标的不确定性对VIO精度的影响。
2024-07-08 08:54:29
202
原创 聊聊VR、AR、MR的概念和显示方案(VST OST)
见过这种设备的都会发现,设备上一般存在小型的“投影仪”,人既可以看到真实世界的光,又能看到投射的光,人总体看到了两种光源的混合光。再聊聊MR技术,MR的英文单词的意思是混合现实。VR技术虽好,但是他和现实是完全脱节的,你带上VR眼睛,现实的世界就看不到了,因为它只是看到了虚拟的东西,并没有“see through”的概念,带上VR设备大尺度移动是很危险的。为了解决这种问题,VR设备上加装一些摄像头,直接把摄像头的采集的视频在设备内部的屏幕上显示,这样人就可以通过设备内部的屏幕看到了真实的世界。
2024-06-28 15:40:10
1091
原创 从本征矩阵恢复R和T
/ 计算重投影误差来判断是否在相机前方。// 对两个可能的解进行验证,选择最合适的那个。// SVD分解本质矩阵。// 构造W矩阵和Z矩阵。// 可能的两种旋转矩阵。
2024-06-27 19:13:21
556
原创 433. 最小基因变化
可以采用广度优先遍历这个图,由于需要记录基因编译的次数,因此可以采用分层遍历的方法,遍历到第几层,发现了目标基因,就认为基因变异的次数是几。这也很简单,我当访问下一个节点时,判断是不是已经被访问过了,由于我们采用的是广度优先搜索,一层一层的搜索,原来已经访问过的没有必要再访问,再访问只会增加路径长度,还有可能形成死循环。i++)// 把这一整层都遍历完,并把它们相连的节点 插入到que, 这里有个坑,千万不要把 i<qs 写成 i<que.size(),因为在遍历的时候que的尺寸在变化。
2024-06-20 12:54:45
970
原创 谈谈std::map的lower_bound和upper_bound
把auto it = myMap.lower_bound(3);改成 auto it = myMap.upper_bound(5);打印“Element not found”。把auto it = myMap.lower_bound(3);把auto it = myMap.lower_bound(3);改成 auto it = myMap.lower_bound(5);把auto it = myMap.lower_bound(3);改成 auto it = myMap.lower_bound(2);
2024-06-19 17:00:40
547
原创 leetcode 167
else if (target > numbers[front] + numbers[back]) //如果两个数比target小,前面的指针后移。-1 与 0 之和等于目标数 -1。因此 index1 = 1, index2 = 2。返回 [1, 2]。因此 index1 = 1, index2 = 2。返回 [1, 2]。因此 index1 = 1, index2 = 3。返回 [1, 3]。确实可以通过,但存在以下问题:第一空间占用偏大,多开辟了连个哈希表,第二没有应用到数组的有序性。
2024-06-19 10:42:16
930
原创 leetcode 151 翻转字符串
这样做的有个缺点就是删除空格比较麻烦,由于字符串是采用连续区间存储的方式,没删掉一个元素后面所有的元素都要向前移动,弄得特别麻烦。有没有更优雅的方式呢,其实是有的。中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。if (s.empty()) //第一个单词的时候直接把它赋值给s。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。反转后的字符串中不能存在前导空格和尾随空格。是由非空格字符组成的字符串。
2024-06-19 09:42:59
244
原创 3D-LLM: Injecting the 3D World into Large Language Models
使用输入3d场景的描述,使用chat gpt 生成描述语言,仔细看这个图很有意思,作者哪一个场景举例子,让gpt后续为其他场景生成描述性的语言。下面是模型的结构:其实也比较简单。
2024-06-14 09:46:54
272
1
原创 SceneScript: Reconstructing Scenes With An Autoregressive Structured Language Model
这篇文章特别新颖,想法特别有创造力,但是模型结构很简单,左边是获得场景中的稀疏点,右边是用结构化语言描述的场景。可以把这篇文章的工作理解成翻译的工作,把稀疏点翻译成了结构化的场景语言。代码,数据,模型均未开源。
2024-06-14 09:41:42
360
原创 Spatialvlm: Endowing vision-language models with spatial reasoning capabilities 如何赋予vlm空间推理能力
such as recognizing quantitative relationships of physical objects like distances or size difference. 视觉语言模型的缺乏空间推理能力,比如无法得到物体之间的物理距离和物理尺寸等等。作者认为这并不是模型本身的问题造成的,而是因为我的训练数据中没有三维知识造成的。因此作者的构建了一个大规模的有3D知识的数据,然后用数据训练vlm。下面是用三维语义instance和语言模版生成训练语言。
2024-06-14 09:34:01
414
原创 VLFM: Vision-Language Frontier Maps for Zero-Shot Semantic Navigation
结合这张图和它发布的视频,我解释一下semantic frontier exploration的过程,首先机器人旋转一周,使用depth图像建立了平面的地图,也识别了哪些区域是边界障碍,哪些区域是介于看到和看不到的区域,也就是需要跑过去进一步探索的区域,作者在这些区域采样了一些待遍历的点,论文中称之为frontier,可能会有很多frontier,那我们下一步要先去哪个哥frontier呀?飞机在野外坠机,我们只知道坠机位置,坠机点附近没有地图,我们也不知道黑匣子的具体位置。,机器人很快找到了目标物。
2024-06-14 09:23:25
1231
3
原创 有价值的笔记
显示vipose 轨迹python evaluate_ate.py tum_room/dataset-room4_512_16_pose_lba_eval_gt.txt tum_room/dataset-room4_512_16_pose_lba_eval_est.txt --plot 1.jpg。需要安装adb, 安装方法:https://unix.stackexchange.com/questions/378041/how-to-install-adb-on-ubuntu-from-download。
2024-06-06 10:42:17
618
原创 leetcode 第1985道题 找出数组中第K大整数
这种优化后的解法的结果: 202ms。虽然没有更快,主要是由于数据规模太小的缘故,有点杀鸡用了宰牛刀的感觉,相信随着规模的增加 复杂度由 nlog(n)--> n的威力会显现出来。2. 由于各个字符串的前导非0,字符串长度又不一样,直接使用string类重载的比较函数是不行的,因此需要自己写比较函数。nums 中的数字按非递减顺序排列为 ["1","2","12","21"]nums 中的数字按非递减顺序排列为 ["3","6","7","10"]nums 中的数字按非递减顺序排列为 ["0","0"]
2024-05-23 11:01:11
448
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人