自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 liosam 匹配和更新地图的关键步骤

2025-11-25 18:20:21 266

原创 liosam激光里程计因子更新过程

2025-11-25 17:37:49 84

原创 关于基于优化的slam建图方法

slam建图实时性要求高,计算量大。优化方法可以很好适配这种架构,通过闭环检测来触发,在精度和速度上得到了有效得平衡。把计算量大的降低实时性要求,放在后端,把计算量小的实时性要求高的,放在前端,

2025-11-24 10:24:12 166

原创 找点云平面点和角点的方法

该点会被标记为“角点”(后续流程可能通过阈值筛选将cloudLabel[i]设为1),通常用于特征匹配或定位。:该点会被标记为“平坦点”(cloudLabel[i] = 0),通常用于地面估计或平面拟合。有一点还不明白,一维数组层和层之间应该区分一下吧,不然每层的首尾计算应该是不相关的呀。

2025-11-20 18:15:25 311

原创 把无序一维点云转化成有序一维点云,方便后序算法处理

在激光点云处理中,补偿后的点云强调“转换成一维数组”,核心是将无序的原始点云转换为结构化的空间网格数组。这种转换与原始laserCloudIn的一维存储有本质区别——前者是“线性存储但无空间结构”,后者是“空间网格的一维映射”,目的是为后续处理构建空间拓扑关系。laserCloudIn通常是激光雷达原始采集数据,其points成员是一个std::vector(一维数组),但点的顺序是时间采集顺序,而非空间位置顺序。例如:代码中通过index = columnIdn + rowIdn * Horizon_SC

2025-11-19 15:28:43 657

原创 完美转发 万能模板

通过识别右值,编译器可以选择更高效的。(转移资源而非拷贝),避免临时对象的性能损耗。

2025-11-18 16:04:08 304

原创 在windows11 上运行 LIO-SAM

1、安装docker wsl, docker在win上运行需要依托linux ,基于liosam内的dockerfile 构建镜像。2、安装vcxsrv 主要打通基于docker下窗口本地化显示功能。3、映射bag目录进入docker,拉取镜像构建容器。

2025-11-17 16:10:50 224

原创 lio-sam run on windows docker

echo "export SVGA_VGPU10=0" >> ~/.bashrc export LIBGL_ALWAYS_INDIRECT=1sudo apt-get install mesa-utils

2025-11-14 14:16:11 115

原创 敏感字段加密 od

【代码】敏感字段加密 od。

2025-09-09 14:22:35 352

原创 Openpcd nuscences pointpillars

官方给出的训练结果test。自己跑的5个epoch。

2024-12-11 10:10:29 226

原创 Pointpillars模型转onnx

分析原因,openpcd把模型的各个模块拆解然后单独封装,靠外部yaml模板控制和管理,这样用着比较方便。但是下面onnx的转换要求好像是加载一个完整的类,所以需要根据各个模块单独拆解!以下是我拆解的结果:可以看出,我加载的openpcdet 训练后的模型 里面拆出4个子模块。也就是我得拆出4个onnx,我感觉这样太麻烦了!openpcd这个技术路线好像不太行啊!这些文章中把model拆解成多个模块,然后单独加载参数和输入,最后输出多个onnx。

2024-12-10 18:41:27 617

原创 Openpcdet 环境搭建

np版本太老1.20以前的,需要明确int64 还是int32 在对应位置修改后要记得重新编译。

2024-12-10 11:17:55 165

原创 数据集软连接ubuntu

ln -s ../bevfusion/data/nuscenes/samples/ ./data/nuscenses/v1.0-trainval/

2024-12-05 17:40:15 182

原创 TensorBoard配置

ssh -L 16006:127.0.0.1:6001 ***@10.11.109.**tensorboard --logdir=./tf_logs --port=6001127.0.0.1:16006

2024-12-05 17:06:03 138

原创 nuScenes数据集指定类型可视化

nuScences 里面真值需要转换一下,所以比较麻烦,这里给出简单转换示例。主要解决想要的gt出现在那个sensor里,然后再在对应的sensro里画出来。

2024-12-03 11:19:34 351 1

原创 NVIDIA lidar_ai_solution bevfusion

docker run -dit --gpus=all -p 11380:22 --shm-size=1g -v $(pwd):/datav --name bevtrt --privileged=true bevfusion:latest /bin/bash

2024-11-28 10:39:20 261

原创 自动驾驶目标检测融合全貌

4、asymmetry fusion 异步融合,用已经检测好的2d框投影原始3d点云,或者用像素给3d点云检测框上色,增加语义信息描述。1、early fusion 早期融合,特点用到几何空间转换3d到2d或者2d到3d的转换,用像素找点云或者用点云找像素。2、deep fusion 深度融合,也是特征级别融合,也叫多模态融合,如bevfusion范式。3、late fusion 晚融合,也是后融合,目标级融合,也是基于规则的融合方法。

2024-11-27 15:34:16 553

原创 面试(python云平台方向)

tenorflow 和 pytorch。python继承的特性。

2024-11-26 09:42:59 140

原创 几个bev模型部署常用的命令

【代码】几个bev模型部署常用的命令。

2024-11-23 20:06:42 376

原创 Pointpillars中limit_period函数的作用

对于那些理论上可能需要调整到[-π, π]内的值,如1.2720、2.4896、1.0361和1.6519,正确的理解应该是直接保持它们在π范围内,避免不必要的减去π操作,除非是在理解为超出π需要循环回转的特定上下文中。因此,直接应用π周期限制,大多数情况下,给定数组的元素不需要改变,除非有更具体的调整规则被明确。应该是直接检查每个值是否超出[-π, π],对于超出的值进行适当的调整,但基于原始问题的描述,直接应用π周期限制,大多数值实际上已经在这个范围内,只有当值超过π或低于-π时才需要调整。

2024-11-22 16:40:23 406

原创 Bevfusion A800运行实践

对应git版本 mit bevfusion。显存吃了大概8G,原始显存占用了4G。查询A800算力SM。

2024-11-19 15:37:11 424

原创 Supervisor 对python启动的影响

怀疑是安装了两个python3 对应 sudo权限和普通权限。而supervisor 启动调用了sudo权限下的python3。将pip 安装的supervisor 删除。使用 sudo apt-get install supervisor重新安装,系统运行正常。使用supervisor托管开发板上的程序,正常加载启动脚本,但是发现python相关的库一个都找不到,怀疑是环境变量问题。supervisor 使用的是 sudo pip install supervisor 安装的。

2024-11-14 18:08:13 308

原创 多显卡训练指定显卡(A800)

通过指定显卡7进行训练: torch.cuda.set_device(7)

2024-11-12 17:49:26 391

原创 ROS2 单帧Pcd转多帧节点 录制Bag

在项目行有pcd转bag的需求,支持类模板适配,增加发布计时器。

2024-11-04 17:29:13 361

原创 Pointpillars在轻薄本上跑CPU推理2G独显辅助

直接切换为python test.py --ckpt pretrained/epoch_160.pth --pc_path dataset/demo_data/val/000134.bin --no_cuda。搞点云深度学习比较吃显存,笔记本只有2G显存,很显然没办法训练,但是只推理单帧点云应该可以,如果用CPU的调试模式下应该可以,不追求速度性能。原来是这里的调用的C++模块是按照cuda编译好的,没办法,反正2G显存还空着没用。

2024-10-26 21:33:29 395 1

原创 解析彩色点云

无人机扫描建图后,用pcl veiwer 正常可以看。但是在程序里解析不正常,分析原因如下,解析数据类型不匹配,改用PointXYZRGB恢复正常。原始PCD文件 代码使用数据类型pcl::PointCloud<pcl::PointXYZRGB>其他PCD文件 :代码使用数据类型pcl::PointCloud<pcl::PointXYZI>

2024-10-21 16:55:13 241

原创 PCL分割及欧式聚类方法

聚类的理解:对分割出的“一堆一堆的沙子”进一步处理,实际上计算机不知道哪个沙子是“一堆”,只不过我们看上去分的很清楚,聚类的作用是让计算机知道哪个沙子是“一堆的”,也就是由很“多堆沙子”转换成“很多个目标级”输出。欧式聚类代码:具体过程很清晰,把点一个一个拿出来,计算空间距离,这里用到KDtree,它加快了检索速度!分割的理解:把点云划分一下,好像一堆沙子,分成了很多堆沙子,分出来的还是沙子。所以需要后续的聚类处理。聚类结果:返回的框,算法返回的是一团一团的子点云,根据每一团画框。1、分割地面和障碍物。

2024-10-14 18:05:17 405

原创 PCL滤波器之面试总结

体素滤波器:降采样,减小体量。直通滤波器:获得想要的区域。统计滤波器:去除噪声。

2024-10-13 16:22:18 418

原创 PCL点云处理之求法向量

2、在点云中取一块区域,用最小二乘将区域中的点云拟合成一个面(贴合在曲面上的一个切面)在相近的区域计算出n个这样的面,用这个面求出法向量(每个法线对应着一个面),假如实际是一个相对平滑的表面,则向量的方向相近,可以直接cover成一个面;如果表面有很大的造型,则向量方向差异很大,则划分出相近的向量cover成不同面。3、总结:用法线表达一个未知面的特征。1、一个点垂直于一个曲线的切线叫法线。

2024-10-12 18:23:39 430

原创 PCL点云处理之关键点提取

点云中有很多“充数”的点,提取关键特征可以减小数据处理量,同时又保留关键特征。

2024-10-12 17:01:09 252

原创 PCL用KDtree,给搜索到的邻近点上色

用KDtree,给搜索到的邻近点上色。

2024-10-11 19:42:20 187

原创 python面试三大器之一 生成器

总结:根据迭代的需要加载内存,目的节省内存。

2024-10-11 15:04:41 98

原创 深度学习相关知识Anchor

具体方法:图像下采样得到不同比例的结果如 4*4, 8*8, 32*32 其中每个格子中包含多个不同比例的Anchor,如果IOU比例大于某一阈值则判断为正样本。3、假如每个尺度有3个比例的Anchor,一共3个尺度,每个尺度训练三个Anchor就可以;即一共训练3*3 = 9个 (类似于9个卷积核?图像目标检测:在图像上设置很多不同比例的参照框,由深度学习网络判断框内是否包含目标。如果设置Anchor的比例:根据训练数据的比例分布。1、这样做的好处是减少参照框的数量,提高运行速度。

2024-10-09 19:42:18 414

原创 Python 面试继承

用super初始化父类的参数,这样子类才能使用。

2024-09-27 14:57:20 157

原创 Pytest Fixture与作用阈

2、fixture有作用域包括class、module、package、session,每个作用域覆盖范围不同,举例:如果一个文件中有两个类测试单元,这两个类分别在开头和结束时载入夹具。1、单元测试中有很多测试用例,用例中有很多重复的动作,这也动作可以用fixture共享。

2024-09-26 10:38:05 183

原创 Python 迭代器考察知识点

可迭代对象包括:数组、字典、字符串、自定义可迭代对象。可迭代对象内置了iter函数,代表了它的身份。可迭代对象通过iter函数返回它的迭代器。迭代器用过next方法不断进行迭代。

2024-09-25 17:01:19 154

原创 Python 装饰器理解和使用

2、装饰器特点,在不改变原函数的基础上增加函数新的功能。3、测试别人的函数,使用装饰器比较方便。1、支持以函数作为参数传入。

2024-09-25 15:01:47 161

原创 八股面试atomic实现原理

解决办法:`std::atomic` 是 C++ 标准库提供的原子操作支持,它允许在并发环境中安全地更新内存数据。其基本原理基于硬件级别的锁机制。**底层实现**:这些指令保证了单个操作的不可分割性和顺序一致性,即使在多线程环境下也能避免数据竞争。造成原因:i++ 操作底层汇编 实际是三条指令,如果多线程操作,无法一次把三条指令执行完毕。问题:多线程抢资源。

2024-09-20 20:13:34 123

原创 共享指针demo

2、多个指针指向统一块内存,内部采用计数方式,计数为0销毁指针。3、线程不安全,需要加锁使用。1、是类模板,不是指针。

2024-09-19 15:45:07 157

原创 atomic原子变量

解决多线程数据竞争问题。

2024-09-19 11:48:29 161

空空如也

空空如也

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

TA关注的人

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