Udacity传感器融合笔记(三)Camera与lidar数据融合-(上)
之前两篇文章记录了lidar感知相关笔记,这篇记录视觉感知以及视觉数据和lidar数据的简单融合。直接上干货。文章主要记录两部分:
1.lidar数据的处理
2.camera与lidar数据的融合
关于视觉部分的基础知识这里不再记录,主要包括图像特征点的提取,关键点、描述子、角点的定义。图像特征点的匹配等等。
1.Lidar点云处理
对于第一部分,要达到的效果就是对lidar数据的过滤处理,同时离本车近的数据点我们红红色表示,离本车远的数据点,我们用绿色表示,中间依次过渡。先放结果图:
图中一个蓝色线格代表2米的距离。
接下来,我们要对lidar点云进行过滤,将属于障碍物的点云保留,数据路面的点云滤除。先放结果:
代码实现部分:
代码部分较为简单,整体思路大致可分为几个部分,
第一部分为创建空白图像,设置图像大小、分辨率;
第二部分为读取lidar数据并将其画在刚刚创建的图线上,这部分涉及世界坐标到图像坐标系的一个转换;
第三部分是将不同距离的lidar点标记为不同的颜色,从近及远用红色到绿色逐渐过渡。
第四部分就是加入蓝色的表示距离的格子线。
(1)创建空白图像
cv::Size worldSize(10.0, 20.0); // width and height of sensor field in mcv::Size imageSize(1000, 2000); // corresponding top view image in pixelfloat maxVal = worldSize.height;// create topview imagecv::Mat topviewImg(imageSize, CV_8UC3, cv::Scalar(0, 0, 0));
(2)加载lidar数据
for (auto it = lidarPoints.begin(); it != lidarPoints.end(); ++it){float xw = (*it).x; // world position in m with x facing forward from sensorfloat yw = (*it).y; // world position in m with y facing left from sensorint y = (-xw * imageSize.height / worldSize.height) + imageSize.height;int x = (-yw * imageSize.height / worldSize.height) + imageSize.width / 2;
(3)标记为不同颜色,去除路面点
double zw = (*it).z;double minZ = -1.42;//去除路面点的阈值if(zw > minZ) {double val = (*it).x;int red = min(255, (int)(255 * abs((val-maxVal) / maxVal)));//red和green两个值的公式可自行定,只要满足近处到远处由红变绿即可int green = min(255, (int)(255 * (1 - abs((val - maxVal) / maxVal))));cv::circle(topviewImg, cv::Point(x,y), 5, cv::Scalar(0, green, red), -1);//将点云画在图像上}
(4)画距离标线
float lineSpacing = 2.0; // 每2米一条线int nMarkers = floor(worldSize.height / lineSpacing);for (size_t i = 0; i < nMarkers; ++i){int y = (-(i * lineSpacing) * imageSize.height / worldSize.height) + imageSize.height;cv::line(topviewImg, cv::Point(0, y), cv::Point(imageSize.width, y), cv::Scalar(255, 0, 0));//画线}
接下来会写camera与lidar数据的融合的相关内容,也是此片博客的下半文。有什么问题欢迎大家留言讨论。也可关注小博主,私聊。
Udacity传感器融合笔记(三)Camera与lidar数据融合-(上)相关推荐
- 「Self-driving: Perception」多传感器融合之Camera、Lidar 雷达融合
1. 硬件介绍 1.1 Camera 1.2 Lidar 2. 传感器同步 2.1 时间同步 2.2 空间同步 3. 传感器融合 3.1 融合基础 3.1.1 传统融合 3.1.2 深度学习融合 3. ...
- 软件工程之美学习笔记三十八 37 | 遇到线上故障,你和高手的差距在哪里?
<软件工作之美>材料地址:https://time.geekbang.org/column/article/97219 遇到线上故障,新手和高手的差距在哪里? 新手遇到复杂的线上故障,不知 ...
- pandas学习笔记三之处理丢失数据
- 盘一盘!实时自动驾驶车辆定位技术都有哪些?(视觉/Lidar/多传感器数据融合)...
点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[SLAM]技术交流群 后台回复[车辆定位综述]获取论文! 1摘要 实时.准确和鲁棒的定 ...
- 实时自动驾驶车辆定位技术都有哪些?(视觉/Lidar/多传感器数据融合)
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨汽车人 来源丨自动驾驶之心 编辑丨3D视觉工坊 点击进入->3D视觉工坊学习交流群 1摘要 ...
- 多传感器信息融合笔记
随着机器人技术的不断发展,机器人的应用领域和功能有了极大的拓展和提高.智能化已成为机器人技术的发展趋势,而传感器技术则是实现机器人智能化的基础之一.由于单一传感器获得的信息非常有限,而且,还要受到自身 ...
- 多速率多传感器数据融合估计(一)
多速率多传感器数据融合估计(一) 对于多速率多传感器数据融合问题此处给出三种方法: 1.状态分块线性模型的建立 2.分布式无反馈数据融合算法 3.分布式有反馈数据融合算法 分两章阐述. 问题描述 设同 ...
- 多传感器数据融合发展综述
多传感器数据融合是一个新兴的研究领域,是针对一个系统使用多种传感器这一特定问题而展开的一种关于数据处理的研究.多传感器数据融合技术是近几年来发展起来的一门实践性较强的应用技术,是多学科交叉的新技术,涉 ...
- 多传感器数据融合算法综述
多传感器数据融合是一个新兴的研究领域,是针对一个系统使用多种传感器这一特定问题而展开的一种关于数据处理的研究.多传感器数据融合技术是近几年来发展起来的一门实践性较强的应用技术,是多学科交叉的新技术,涉 ...
最新文章
- 软件测试技术之功能测试六要素
- Vim - 容易忘记但又比较常用的操作 (之一)
- 合肥市电力大数据应用工程技术研究中心成立
- JavaScript 变量、函数与原型链
- Parsing error: The keyword 'const' is reservedeslint
- stm32高级定时器 基础知识
- Oracle统计某一年中的1-12个月的数据总和
- pythonopencv算法_opencv python 光流法
- Visual Studio 单元测试之六---UI界面测试
- 2017马哥python高级实战班 培训推荐
- JAVA快递单号查询接口对接教程【快递鸟DEMO】
- 微博数据:如何在西瓜微数平台使用「热门话题分析」功能?
- 如何避免自high式分享
- 第五届四川省职工职业技能大赛决赛计算机程序设计员技术文件大纲
- (原创)android6.0系统 PowerManager深入分析
- DNA-蛋白翻译过程的Python实现
- 红光光浴,美容抗衰神器
- pocketsphinx 模型库_pocketSphinx 嵌入式关键词唤醒
- 深航App劫持微信;Apple News上线首日遭遇各种崩溃;华为P30“望远镜手机”正式发布 | 雷锋早报...
- 你了解吗?一对一直播软件开发它们才能实现音视频传播
热门文章
- 为什么区块链技术对许多行业都有吸引力?
- 3d动画 android,绅士动画 – 【安卓+PC】【3D动画】Oreo大师神级新作
- 国计算机信息高新技术考试办公软件应用模块高级操作员级考试,全国计算机信息高新技术考试办公软件应用模块高级操作员级考试考试大纲.doc...
- php 提取视频中的声音,如何提取视频中的声音,并把画面改成文字内容
- 【脚本工具】Python暴力破解ZIP文件
- QCC304x系列开发教程(基础篇)之2.4-QCC3040之如何修改MDE的主题
- 尚硅谷Maven笔记(Maven的使用)
- VLSI 半定制设计方法 与 全定制设计方法【VLSI】
- 使用PHP创建 PowerPoint2007 文档
- h5免签聚合支付系统yy支付-y币+yy陪玩-系统源码