激光雷达和相机感知融合简介
作者丨十点雨@知乎
来源丨https://zhuanlan.zhihu.com/p/446284775
编辑丨3D视觉工坊
本文介绍激光雷达和相机融合的两种方法:
前融合:融合原始数据(点云和像素/目标框)。
后融合:融合目标框。
1 前融合
前融合一般指融合原始数据,最容易、最普遍的方式是将点云投影到图像。然后检查点云是否属于图像中检测的2D目标框。流程如下:
1.1 点云投影
三步:
·将3D激光雷达点转换为齐次坐标
·将点云变换到图像坐标系(LiDAR-Camera外参)
·透视投影到图像平面 (相机内参)
1.2 图像目标检测
一般使用YOLO系列算法。可以参考:Introduction to YOLOv4: Research review(https://www.thinkautonomous.ai/blog/?p=introduction-to-yolov4-research-review)
1.3 ROI匹配
ROI (Region Of Interest)匹配即融合目标边界框内的数据。这一步的输出:
·对于每个2D边界框,图像检测提供类别。
·对于每个LiDAR投影点,我们有准确的距离。
因此,融合目标语义类别和空间位置就完善了。这一步的重点是如何融合目标边界框内的投影点,作为目标位置:求平均,中值,中心点,最近点?
另外,图像目标框往往比真实目标大一些,目标边界框内投影点云可能不属于真实目标(比如可能属于背景,或附近目标)。针对这个问题,采用图像分割,可以更准确地匹配投影点和像素。
下图箭头处显示了投影点在目标框内,但不属于目标框对应的车辆,而是前方车辆的点云。
2 后融合
后融合是融合各个传感器独立的检测结果,有两种融合思路:
·2D融合:图像2D检测,点云3D检测投影到图像生成的2D检测。如下图:
·3D融合:图像3D检测,点云3D检测。流程如下:
下文详细介绍下3D融合的思路。
2.1 点云3D目标检测
·传统方法:聚类,L-shape fitting等
·深度学习方法:centerpoint等
2.2 图像3D目标检测
单目3D目标检测,需要知道投影参数(相机内参,标定外参),并使用深度学习。知道目标的真实大小和朝向也有助于得到目标的准确边界框。
分享一篇单目3D检测论文: 3D Bounding Box Estimation Using Deep Learning and Geometry(https://arxiv.org/pdf/1612.00496.pdf)
2.3 IOU匹配
IOU即Intersection Over Union, 描述两个边界框的重合程度。
2.3.1 空域上的IOU匹配
匹配就是看图像3D边界框和点云3D边界框是否重合(用IOU衡量),重合度高则是同一个目标。3D Iou--Net (2020)中的示例图像:
因此,我们可以在空域上将不同传感器的检测目标进行关联。
这个过程在9 Types of Sensor Fusion Algorithms中(https://www.thinkautonomous.ai/blog/?p=9-types-of-sensor-fusion-algorithms),被定义为中级(middle-level)传感器融合。中级传感器融合和高级传感器融合的区别是,高级传感器融合包括跟踪。
而为了时间跟踪,则需要时域上的数据关联。
2.3.2 时域上的IOU匹配
目标跟踪一般用卡尔曼滤波和匈牙利算法来关联时域上的目标,从而跨帧跟踪目标,甚至预测目标位置。
跟踪3D边界框位置时,一般用IOU作为度量进行数据关联。当然也可以使用深度卷积特征来确保目标一致。我们称该过程为SORT (Simple Online Realtime Tracking), 或Deep SORT,如果使用深度卷积特征。
时域上IOU匹配的原理与空域上类似:如果第一帧和第二帧的边界框重合,则说明两个目标是相同的。
既然我们可以在空域和时域上跟踪目标,那么也可以利用类似方法进行高级的传感器融合。
2.4 后融合总结
融合检测目标是中级的融合,需要空域上的IOU匹配;融合跟踪轨迹是高级的融合,需要时域上的IOU匹配(匹配度量),卡尔曼滤波(状态估计),匈牙利算法(数据关联)。
本文仅做学术分享,如有侵权,请联系删文。
3D视觉精品课程推荐:
1.面向自动驾驶领域的多传感器数据融合技术
2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)
9.从零搭建一套结构光3D重建系统[理论+源码+实践]
10.单目深度估计方法:算法梳理与代码实现
11.自动驾驶中的深度学习模型部署实战
12.相机模型与标定(单目+双目+鱼眼)
13.重磅!四旋翼飞行器:算法与实战
重磅!3DCVer-学术论文写作投稿 交流群已成立
扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。
同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。
一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。
▲长按加微信群或投稿
▲长按关注公众号
3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:
学习3D视觉核心技术,扫描查看介绍,3天内无条件退款
圈里有高质量教程资料、答疑解惑、助你高效解决问题
觉得有用,麻烦给个赞和在看~
激光雷达和相机感知融合简介相关推荐
- DeepFusion:基于激光雷达和相机深度融合的多模态3D目标检测
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨安全与性能研究室 来源丨 同济智能汽车研究所 点击进入->3D视觉工坊学习交流群 编者按: ...
- 【多传感器融合】激光雷达与相机前融合
坐标变换的方法采用了 Geiger, A 等在论文中提到的方法,最终将激光点云转换到相机坐标系下.毫米波雷达目标变换也是一样的. 要将 Velodyne 坐标中的点 x 投影到左侧的彩色图像中 y: ...
- 激光雷达与相机融合(一)
一.激光雷达点云俯视图提取 文末有相应的代码数据包免费下载链接. 将激光雷达点云投影到俯视图平面上,同时将距离的远近利用颜色表示出来. 这里的滤除地面只是简单的利用高度值将地面去除.会存在效果不好的情 ...
- 通俗理解卡尔曼滤波(无人驾驶感知融合的经典算法)
前言 我个人有近10年AI教育经验了,中间获得过一些名号,比如北理工校外导师,微软MVP兼CSDN技术专家,本博客也有1700多万PV了,在AI圈内有极高知名度.后2015年和团队一块创业创办AI职教 ...
- 绝了!多个激光雷达和相机的快速且鲁棒的外参标定方法(代码开源)
文章:Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras 作者:Xiyuan Liu , Chongjian ...
- 开源代码和软件汇总!激光雷达和相机联合标定(2004-2021)
作者 | 十点雨 编辑 | 我爱计算机视觉 原文链接:https://zhuanlan.zhihu.com/p/404762012 点击下方卡片,关注"自动驾驶之心"公众号 AD ...
- 无人驾驶—激光雷达与相机
1.激光雷达与摄像头性能对比 在无人驾驶环境感知设备中,激光雷达和摄像头分别有各自的优缺点. 摄像头的优点是成本低廉,用摄像头做算法开发的人员也比较多,技术相对比较成熟.摄像头的劣势,第一,获取准确三 ...
- 自动驾驶汽车中的激光雷达和摄像头传感器融合
传感器融合是自动驾驶汽车的关键技术之一.这是自动驾驶汽车工程师都必须具备的技能.原因很简单:视觉传感器无处不在,无时无刻不在使用. 自动驾驶汽车通过4个关键技术工作:感知.定位.规划和控制. 传感器融 ...
- 【LCC系列】自动驾驶中激光雷达和相机的自动在线标定(2013)
文章目录 1 动机 2 方法 2.1 提取图像边缘 2.2 提取点云深度不连续 2.3 目标函数 2.4 检测标定误差 2.5 自动在线标定 3 实验 3.1 在线检测标定误差 3.2 在线纠正标定误 ...
最新文章
- 最大连续子序列乘积(DP)
- python生成的exe程序在其他电脑打开报错_9102年你还不会搭建Python环境
- Recurrent Neural Networks Tutorial, Part 1 – Introduction to RNNs
- PHP的empty isset is_null
- (三)ORB特征匹配
- Spring MVC学习路(三) 编写第一个demo
- 玩转oracle 11g(31):ora-04031
- js mysql json字符串转数组中_php数据库数据转换为js中的json对象
- 企业级数据库备份方案完全攻略
- iOS安装CocoaPods详细过程
- 网络基础知识(黑马教程笔记)-6-静态资源访问的功能实现
- 三维点云 PCA(上)
- 联想小新固态硬盘安装Win7或者win10过程
- HDU4585 Shaolin(treap)
- 使用代理爬去微信公众号_Python3WebSpider/9.5-使用代理爬取微信公众号文章.md at master · Lainton/Python3WebSpider · GitHub...
- MATLAB:镜像图片
- vbs整人简单实现大量弹窗+指定语句退出!
- python3 使用openpyxl 处理excel表格数据
- [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor相关知识及各种常见使用问题...
- 向上转型与向下转型(超详细)