文章:SurroundOcc: Multi-Camera 3D Occupancy Prediction for Autonomous Driving
作者:Yi Wei, Linqing Zhao, Wenzhao Zheng, Zheng Zhu , Jie Zhou, Jiwen Lu
编辑:点云PCL
代码:https://github.com/weiyithu/SurroundOcc.git
欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。
公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。
摘要
在基于视觉的自动驾驶中,3D场景理解发挥着至关重要的作用。虽然大多数现有方法侧重于3D目标检测,但它们很难描述任意形状和无限类别的真实世界物体。为了更全面地感知3D场景,在本文中,我们提出了一种名为SurroundOcc的方法,用于使用多摄像头图像预测3D占用情况。首先,我们为每个图像提取多尺度特征,并采用空间2D-3D注意力将它们提升到3D体积空间。然后应用3D卷积逐渐上采样体积特征,并对多个级别进行监督。为了获得稠密的占用情况预测,我们设计了一个流程,可以生成稠密的占用地面实况,而无需大量的占用网格标注。具体来说,我们分别融合了动态对象和静态场景的多帧LiDAR扫描。然后采用Poisson重建来填充空洞,并将网格转化为体素,以获得密集的占用标签。在nuScenes和SemanticKITTI数据集上的大量实验证明了我们方法的优越性。代码和数据集已开源:https://github.com/weiyithu/SurroundOcc。
内容概述
图1. SurroundOcc的概览,给定多摄像头图像,我们的方法可以预测周围3D场景的体积占用情况。为了训练网络,我们设计了一个流程,可以使用稀疏的LiDAR点生成稠密的占用标签。
图2显示了我们方法的流程。给定一组周围的多摄像头图像,我们首先使用主干网络(例如ResNet-101 [19])提取N个摄像头和M个级别的多尺度特征。对于每个级别使用一个Transformer来融合多摄像头特征,并进行空间交叉注意力。2D-3D空间注意力层的输出是一个3D体积特征,而不是BEV特征。然后,使用3D卷积网络来上采样和组合多尺度的体积特征。最后,多尺度体积特征通过 3D 卷积网络上采样和组合,并通过递减的损失权重来监督每个级别的占据预测。
图2. 所提方法的流程。首先使用主干网络提取多摄像头图像的多尺度特征,然后,我们采用2D-3D空间注意力来融合多摄像头的信息,以多尺度方式构建3D体积特征。最后,使用3D反卷积层来上采样3D体积,并在每个级别对占用预测进行监督。
2D-3D 空间注意力
本文利用交叉视图注意力机制来融合多个相机的特征。通过将 3D 参考点投影到 2D 视图中,并使用可变形注意力机制对这些点进行查询和信息聚合。与传统方法不同,该方法建立了 3D 体积查询,进一步保留了 3D 空间信息。通过对这些查询点进行投影,可以在对应的视图中采样 2D 特征,并使用可变形注意力机制对它们进行加权聚合。最终,使用 3D 卷积来交互相邻的 3D 体素特征,从而提高了三维场景重建的准确性。
图3. 基于3D和基于BEV的跨视角注意力对比,基于3D的注意力可以更好地保留3D信息,对于每个3D体积查询,我们将其投影到相应的2D视图以进行特征采样。
多尺度占据预测
本文采用了 2D-3D U-Net 架构,将多尺度的 2D 特征输入到不同数量的 2D-3D 空间注意力层中,提取多尺度的 3D 体积特征。然后,通过 3D 反卷积层上采样前一级的 3D 体积特征,并将其与当前尺度的特征进行融合,生成当前尺度的 3D 体积特征。网络在每个尺度上都会输出一个占据预测结果。为了得到丰富的多层次 3D 特征,网络在每个尺度上都有监督信号。
稠密占据网格标签
本文提出了一套流程来生成密集占据标签,该流程利用现有的 3D 检测和语义分割标签代替人工标注。具体来说,本文提出了将动态物体和静态场景的多帧 LiDAR 点云分别拼接起来的方法,并使用 Poisson 重建算法来填补空洞并将获得的网格体素化以获得密集的占据情况。为此,我们设计了一个流程,利用现有的3D检测和3D语义分割标签生成密集的占用地面真值,而无需额外的人工注释,如图4所示。
图4. 稠密的占用真值生成。首先,我们遍历所有帧,将动态物体和静态场景的多帧LiDAR点分别拼接,然后将它们合并成一个完整的场景。随后,我们使用Poisson Reconstruction来使点密度增加,并对生成的网格进行体素化,以获得密集的3D占用情况。最后,我们使用最近邻(NN)算法为密集体素分配语义标签。
多帧点云拼接与Poisson 重建
本文提出了一种可以将静态场景和可移动物体分别拼接,然后在体素化之前将它们合并成完整的场景。为了将多帧片段合并,通过已知的校准矩阵和自我姿态将它们的坐标转换为世界坐标系。最后,根据当前帧的物体位置和自我姿态,通过合并静态场景和物体的 3D 点云获得当前帧的 3D 点云。通过这种方式,当前帧的占据标签利用了序列中所有帧的 LiDAR 点云信息。Poisson 重建是根据局部邻域中的空间分布计算法向量,然后使用 Poisson 曲面重建算法将点云重建成三角形网格,进而填补点云中的空洞,得到均匀分布的顶点,最终将网格转换成密集的体素。通过这种方法可以增加点云密度,并填补点云中的空隙。
使用 NN 算法进行语义标注
利用 NN 算法将语义标签分配给每个体素,以便将密集的点云转换为密集的体素。首先对具有语义信息的点云进行体素化得到稀疏的占据标签,然后使用 NN 算法搜索每个体素最近的稀疏体素,并将其语义标签分配给该体素。
图5. 不同占用标签的比较,与单帧LiDAR点和从多帧点转换而来的稀疏占用相比,稠密的体素能够提供更真实的占用网格标签。
实验
如表1所示,该方法实现了最先进的性能,还在图6和图7中展示了一些定性结果。
图6。具有挑战性场景的示例。尽管RGB图像在雨天和夜晚的质量下降,但我们的方法仍然可以预测详细的占用情况。
图7。在nuScenes验证集上的可视化。我们生成的密集占用标签比稀疏的LiDAR点密集得多。在密集的地面实况下训练,网络可以预测更好和更密集的占用。
表3显示了结果,尽管我们的方法并不是为单目感知而设计的,并且跨视图注意力在单目设置下会失效,但该方法仍在这一基准上取得了最先进的性能。
在表8中比较了不同方法的推理时间和推理内存。
总结
本文提出了SurroundOcc来进行多相机3D占用网格预测,利用2D-3D空间关注力以多尺度的方式将2D特征集成到3D体积中,然后通过3D反卷积层进一步上采样和融合。此外设计了一个流程来生成稠密的占用网格真值。我们分别拼接动态物体和静态场景的多帧LiDAR点,并利用Poisson重建来填充空洞,在nuScenes和SemanticKITTI数据集上的比较展示了我们方法的卓越性能。
资源
自动驾驶及定位相关分享
【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法
自动驾驶中基于光流的运动物体检测
基于语义分割的相机外参标定
综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍
高速场景下自动驾驶车辆定位方法综述
Patchwork++:基于点云的快速、稳健的地面分割方法
PaGO-LOAM:基于地面优化的激光雷达里程计
多模态路沿检测与滤波方法
多个激光雷达同时校准、定位和建图的框架
动态的城市环境中杆状物的提取建图与长期定位
非重复型扫描激光雷达的运动畸变矫正
快速紧耦合的稀疏直接雷达-惯性-视觉里程计
基于相机和低分辨率激光雷达的三维车辆检测
用于三维点云语义分割的标注工具和城市数据集
ROS2入门之基本介绍
固态激光雷达和相机系统的自动标定
激光雷达+GPS+IMU+轮速计的传感器融合定位方案
基于稀疏语义视觉特征的道路场景的建图与定位
自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)
用于三维点云语义分割的标注工具和城市数据集
更多文章可查看:点云学习历史文章大汇总
SLAM及AR相关分享
TOF相机原理介绍
TOF飞行时间深度相机介绍
结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案
开源又优化的F-LOAM方案:基于优化的SC-F-LOAM
【开源方案共享】ORB-SLAM3开源啦!
【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM
【点云论文速读】StructSLAM:结构化线特征SLAM
SLAM和AR综述
常用的3D深度相机
AR设备单目视觉惯导SLAM算法综述与评价
SLAM综述(4)激光与视觉融合SLAM
Kimera实时重建的语义SLAM系统
SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM
易扩展的SLAM框架-OpenVSLAM
高翔:非结构化道路激光SLAM中的挑战
基于鱼眼相机的SLAM方法介绍
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
分享与合作方式:微信“cloudpoint9527”(备注:姓名+学校/公司+研究方向) 联系邮箱:dianyunpcl@163.com。
为分享的伙伴们点赞吧!