点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨巫婆塔里的工程师

来源丨 汽车电子与软件

一. 前言

自动驾驶感知技术所采用的传感器主要包括摄像头,激光雷达和毫米波雷达。这些传感器各有优缺点,也互为补充,因此如何高效的融合多传感器数据,也就自然的成为了感知算法研究的热点之一。本篇文章介绍如何在感知任务中融合激光雷达和摄像头,重点是目前主流的基于深度学习的融合算法。

摄像头产生的数据是2D图像,对于物体的形状和类别的感知精度较高。深度学习技术的成功起源于计算机视觉任务,很多成功的算法也是基于对图像数据的处理,因此目前基于图像的感知技术已经相对成熟。图像数据的缺点在于受外界光照条件的影响较大,很难适用于所有的天气条件。对于单目系统来说,获取场景和物体的深度(距离)信息也比较困难。双目系统可以解决深度信息获取的问题,但是计算量很大。激光雷达在一定程度上弥补了摄像头的缺点,可以精确的感知物体的距离,但是限制在于成本较高,车规要求难以满足,因此在量产方面比较困难。同时,激光雷达生成的3D点云比较稀疏(比如垂直扫描线只有64或128)。对于远距离物体或者小物体来说,反射点的数量会非常少。

如下图所示,图像数据和点云存在着巨大的差别首先是视角不同,图像数据是真实世界通过透视投影得到的二维表示,而三维点云则包含了真实世界欧式坐标系中的三维信息,可以投影到多种视图。其次是数据结构不同,图像数据是规则的,有序的,稠密的,而点云数据是不规则的,无序的,稀疏的。在空间分辨率方面,图像数据也比点云数据高很多。

图片来源于参考文献[1]

自动驾驶感知系统中有两个典型的任务:物体检测和语义分割。深度学习技术的兴起首先来自视觉领域,基于图像数据的物体检测和语义分割已经被广泛和充分的研究,也有很多非常全面的综述文章,这里就不赘述了。另一方面,随着车载激光雷达的不断普及以及一些大规模数据库的发布,点云数据处理的研究这几年来发展也非常迅速。本专栏之前的两篇文章分别介绍了点云物体检测和语义分割的发展情况,感兴趣的朋友可以参考。下面以物体检测任务为主来介绍不同的融合方法。语义分割的融合方法可以由物体检测扩展得到,就不做单独介绍了。

2. 不同的融合策略

物体检测的策略分为:决策层融合,决策+特征层融合,以及特征层融合。在决策层融合中,图像和点云分别得到物体检测结果(BoundingBox),转换到统一坐标系后再进行合并。这种策略中用到的大都是一些传统的方法,比如IoU计算,卡尔曼滤波等,与深度学习关系不大,本文就不做介绍了。下面重点来讲讲后两种融合策略。

2.1 决策+特征层融合

这种策略的主要思路是将先通过一种数据生成物体的候选框(Proposal)。如果采用图像数据,那么生成的就是2D候选框,如果采用点云数据,那么生成的就是3D候选框。然后将候选框与另外一种数据相结合来生成最终的物体检测结果(也可以再重复利用生成候选框的数据)。这个结合的过程就是将候选框和数据统一到相同的坐标系下,可以是3D点云坐标(比如F-PointNet),也可以是2D图像坐标(比如IPOD)。

F-PointNet[2]由图像数据生成2D物体候选框,然后将这些候选框投影到3D空间。每个2D候选框在3D空间对应一个视椎体(Frustum),并将落到视椎体中所有点合并起来作为该候选框的特征。视椎体中的点可能来自前景的遮挡物体或者背景物体,所以需要进行3D实例分割来去除这些干扰,只保留物体上的点,用来进行后续的物体框估计(类似PointNet中的处理方式)。这种基于视椎的方法,其缺点在于每个视椎中只能处理一个要检测的物体,这对于拥挤的场景和小目标(比如行人)来说是不能满足要求的。

F-PointNet网络结构图

针对视椎的上述问题,IPOD[3]提出采用2D语义分割来替换2D物体检测。首先,图像上的语义分割结果被用来去除点云中的背景点,这是通过将点云投影到2D图像空间来完成的。接下来,在每个前景点处生成候选物体框,并采用NMS去除重叠的候选框,最后每帧点云大约保留500个候选框。同时,PointNet++网格被用来进行点特征提取。有了候选框和点特征,最后一步采用一个小规模的PointNet++来预测类别和准确的物体框(当然这里也可以用别的网络,比如MLP)。IPOD在语义分割的基础上生成了稠密的候选物体框,因此在含有大量物体和互相遮挡的场景中效果比较好。

IPOD网络结构图

上面两个方法分别通过2D图像上的物体检测和语义分割结果来生成候选框,然后只在点云数据上进行后续的处理。SIFRNet[4]提出在视椎体上融合点云和图像特征,以增强视椎体所包含的信息量,用来进一步提高物体框预测的质量。

SIFRNet网络结构图

近年来,随着3D物体检测技术的快速发展,物体候选框的选取也从逐渐从2D向3D转变MV3D[5]是基于3D候选框的代表性工作。首先,它将3D点云映射到BEV视图,并基于此视图生成3D物体候选框。然后,将这些3D候选框映射到点云的前视图以及图像视图,并将相应的特征进行融合。特征融合是以候选框为基础,并通过ROI pooling来完成的。

MV3D网络结构图

AVOD[6]的思路也是在3D候选框的基础上融合图像和点云特征。但是原始候选框的生成并不是通过点云处理得到,而是通过先验知识在BEV视图下均匀采样生成的(间隔0.5米,大小为各个物体类的均值)。点云数据用来辅助去除空的候选框,这样最终每帧数据会产生8万到10万个候选框。这些候选框通过融合的图像和点云特征进行进一步筛选后,作为最终的候选再送入第二阶段的检测器。因此,也可以认为AVOD的候选框是同时在图像和点云上得到的

AVOD网络结构图

2.2 特征层融合

决策+特征层融合的特点是以物体候选框为中心来融合不同的特征,融合的过程中一般会用到ROI pooling(比如双线性插值),而这个操作会导致空间细节特征的丢失。另外一种思路是特征层融合,也就是直接融合多种特征。比如说将点云映射到图像空间,作为带有深度信息的额外通道与图像的RGB通道进行合并。这种思路简单直接,对于2D物体检测来说效果不错。但是融合的过程丢失了很多3D空间信息,因此对于3D物体检测来说效果并不好。由于3D物体检测领域的迅速发展,特征层融合也更倾向于在3D坐标下完成,这样可以为3D物体检测提供更多信息

ContFuse[7]采用连续卷积(Continuous Convolution)来融合点云和图像特征。融合过程在BEV视图下完成。对于BEV上的一个像素(网格),首先在点云数据中找到其K个最邻近的点,然后将这些3D空间中的点映射到图像空间,以此得到每个点的图像特征。同时,每个点的几何特征则是该点到相应BEV像素的XY偏移量。将图像特征和几何特征合并作为点特征,然后按照连续卷积的做法对其进行加权求和(权重依赖于XY偏移量),以得到相应BEV像素处的特征值。对BEV的每个像素进行类似处理,就得到了一个BEV特征图。这样就完成了图像特征到BEV视图的转换,之后就可以很方便的与来自点云的BEV特征进行融合。ContFuse中在多个空间分辨率下进行了上述的特征融合,以提高对不同大小物体的检测能力。

利用连续卷积将图像特征投影到BEV视图

PointPainting[8]把点云投影到图像语义分割的结果中,这与IPOD中的做法类似。但是,PointPainting没有利用语义分割的结果来分离前景点,而是直接将语义分割的信息附加到点云上。这样做的好处是,融合之后的数据还是点云(但是具有更为丰富的语义信息),可以采用任何点云物体检测网络来处理,比如PointRCNN,VoxelNet,PointPillar等等。

PointPainting的融合流程图

PointPainting中附加给点云的是2D图像的语义信息,这已经是高度抽象之后的信息,而原始的图像特征则被丢弃了。从融合的角度来看,底层特征的融合可以更大程度的保留信息,利用不同特征之间的互补性,理论上说也就更有可能提升融合的效果。MVX-Net[9]利用一个实现训练好的2D卷积网络来提取图像特征,然后通过点云和图像之间的映射关系将图像特征附加到每个点上。之后再采用VoxelNet来处理融合后的点特征。除了这种点融合策略,MVX-Net还提出了在voxel层次上融合,其主要的不同就在于将voxel而不是point投影到图像空间,因此图像特征是被附加在voxel之上。从实验结果来看,point融合比voxel融合结果略好,这也进一步说明了较低的融合层次可能会带来更好的效果。

MVX-Net中的Point融合方法

语义分割任务中的融合一般都是在特征层上进行,之前介绍的特征融合方法理论上来说可以用来进行语义分割。比如说,ContFuse在BEV网格上融合了图像和点云特征,这个特征就可以用来进行网格级别的语义分割,而PointPainting将图像特征附加到点云上,后续可以采用任何基于点云语义分割的算法来对每个点进行语义分类,甚至也可以进行实例分割和全景分割。

3. 结果对比

这里我们来总结和定量的对比一下前面介绍的各种融合方法。准确度指标采用采用KITTI数据库上3D车辆检测中等难度的AP(70% IoU),速度指标采用FPS(运行的硬件不同,因此不具备完全的可比性)。下表中融合方法一栏中的D+F表示决策+特征层融合,之后的2D/3D表示是在2D图像还是3D点云上提取物体候选框。F表示特征层融合,之后的BEV和Point表示融合的位置。总体来说,特征层融合的效果较好,基于Point的融合也优于基于BEV的融合。

算法 融合方法 准确度(AP) 速度(FPS)
F-PointNet D+F, 2D 69.79 5.9
IPOD D+F, 2D 72.57 5.0
SIFRNet D+F, 2D 72.05 -
MV3D D+F, 3D 63.63 2.8
AVOD D+F, 2D+3D 71.76 12.5
ContFuse F, BEV 68.78 16.7
PointPainting F, Point 71.70 2.5
MVX-Net F, Point 77.43 -

作为对比,只基于点云数据的VoxelNet其AP为64.17,MVX-Net将图像特征附加到点云上之后再采用VoxelNet就可以将AP提升到77.43,提升的幅度还是非常可观的。PointPainting中的对比实验也展示了类似的提升。下图是分别在KITTI和NuScenes上进行的对比实验。PointPillar,VoxelNet,和PointRCNN这三个点云物体检测的常用方法在结合了图像特征后都有了很大幅度的提升。尤其是对于行人和骑车的人这两个类来说,提升的幅度更大,这也证明了分辨率较高的图像特征对小目标的检测有很大的帮助。

参考文献

[1] Cui et.al., Deep Learning for Image and Point Cloud Fusion in Autonomous Driving: A Review, 2020.
[2] Qi et.al., Frustum Pointnets for 3d Object Detection from RGB-D Data, 2018.
[3] Yang et.al., IPOD: Intensive Point-based Object Detector for Point Cloud, 2018.
[4] Zhao et.al., 3D Object Detection Using Scale Invariant and Feature Re-weighting Networks, 2019.
[5] Chen et.al., Multi-View 3D Object Detection Network for Autonomous Driving, 2016.
[6] Ku et.al., Joint 3D Proposal Generation and Object Detection from View Aggregation, 2017.
[7] Liang et.al., Deep Continuous Fusion for Multi-Sensor 3D Object Detection, 2018.
[8] Vora et.al., PointPainting: Sequential Fusion for 3D Object Detection, 2019.
[9] Sindagi et.al., MVX-Net: Multimodal VoxelNet for 3D Object Detection, 2019.

本文仅做学术分享,如有侵权,请联系删文。

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天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

自动驾驶传感器融合:激光雷达+摄像头相关推荐

  1. 【自动驾驶传感器融合系列】02自动驾驶中的多传感器同步理论

    [自动驾驶传感器融合系列]02自动驾驶中的多传感器同步理论 文前白话 1.传感器时空同步概念 2.传感器时间同步 · 时间硬同步 · 时间软同步 3.传感器时空同步 文前白话 同步理论整体架构: 1. ...

  2. 自动驾驶 | 传感器融合–自动驾驶的关键技术

    传感器融合 为了使车辆能够自动驾驶,必须借助传感器来感知周围环境:摄像头.雷达.超声波和LiDAR传感器等. 传感器如何实现自动驾驶 大众甲壳虫看上去很美,但它并不能识别周围的环境.对于汽车实现自动驾 ...

  3. 9种自动驾驶传感器融合算法你都知道吗?

    作者 | Alan  编辑 | 汽车人 原文链接:https://zhuanlan.zhihu.com/p/430323552 点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨 ...

  4. 怎么通过media foundation将图像数据写入虚拟摄像头_千倍成本压缩!特斯拉开发虚拟激光雷达,替代最贵自动驾驶传感器...

    「谁用激光雷达,谁完蛋!」 在去年特斯拉举办的 Autonomy Day 上,特斯拉 CEO Elon Musk 言辞激烈地炮轰激光雷达. 「昂贵的传感器是不必要的,这就像是一大堆昂贵的附属品.」 「 ...

  5. 自动驾驶传感器比较:激光雷达(LiDAR) vs. 雷达(RADAR)

    自动驾驶传感器比较:激光雷达(LiDAR) vs. 雷达(RADAR) 据麦姆斯咨询报道,2032年全球范围内自动驾驶汽车的产量将高达2310万辆,未来该市场的复合年增长率(CAGR)高达58%.届时 ...

  6. 基于自动驾驶车辆的激光雷达与摄像头之间的在线标定算法

    原文首发于微信公众号「3D视觉工坊」--基于自动驾驶车辆的激光雷达与摄像头之间的在线标定算法 本文英文名为<Automatic Online Calibration of Cameras and ...

  7. 【自动驾驶传感器——摄像头】

    目录 自动驾驶汽车中的摄像头应用 摄像头的局限性 Limitations 畸变 Distortion 畸变类型 Types of Distortion 畸变系数和校正 Distortion Coeff ...

  8. 自动驾驶视觉融合-相机校准与激光点云投影

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:william 链接:https://zhuanlan.zhihu.com/p/13626375 ...

  9. AUTOSAR专业知识篇(六)-自动驾驶传感器的选择与布置

    01 前言 今年号称是激光雷达元年!各厂家纷纷发布搭载激光雷达的车型,不光是新势力,如小鹏.蔚来,也包括传统汽车厂家,如上汽.长城.北汽等,都是计划今明两年量产. 同时,毫米波雷达数量,也从1~5颗拓 ...

最新文章

  1. 2022-2028年中国量子点膜行业市场调查分析及未来前景分析报告
  2. SpringCloud的服务网关zuul
  3. 网页制作知识:XHTML 和 DOCTYPE 切换
  4. 【常用技巧精选】尺取法
  5. CVPR一区审稿人分享:图像分割论文通关攻略
  6. Visual Studio 批量注释 快捷键
  7. NeurIPS 2020 | 微软亚洲研究院论文摘录之目标检测篇
  8. python中open打开路径问题_Python学习笔记之open()函数打开文件路径报错问题
  9. NSArray去除重复元素
  10. 刷入第三方Recovery系统TWRP
  11. 51 PWM调速蓝牙小车
  12. Laravel中使用SweetAlert美化提示框Alert
  13. 企航软件工作室网站正式采用开源blog系统
  14. 思科交换机配置ipv6实验
  15. C++调用Python(混合编程)函数整理总结
  16. PHP获取客户端的IP
  17. 【信息安全-科软课程】Lab2环境变量和Set-UID程序实验
  18. 简述BeanUtils中copyProperties
  19. 计算机信息技术对医院医疗服务工作的影响,计算机在医院信息管理工作中应用探究.doc...
  20. CSS快速学习(2021.2.7-15)

热门文章

  1. 什么是负载均衡(LB)
  2. contenteditable富文本编辑器支持emoji插入表情
  3. java String类(超详细!)
  4. 三星碉堡了:三星自家运用竟然没人用
  5. 运放构成电压跟随器作用、反馈电阻作用
  6. 细节决定成败之C++成员变量、构造函数初始化顺序
  7. 入职中国银行内审部门
  8. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者
  9. 千锋云计算毕业设计论文:论文选题开题报告三
  10. BeginInvoke和Invoke的区别