首页 > 其他分享 >自动驾驶感知中BEV的景物表示方法

自动驾驶感知中BEV的景物表示方法

时间:2024-08-01 12:28:14浏览次数:16  
标签:场景 layout 景物 语义 MonoLayout 图像 感知 BEV 鸟瞰图

自动驾驶感知中BEV的景物表示方法

附赠自动驾驶最全的学习资料和量产经验:链接

1 Learning to Look around Objects for Top-View Representations of Outdoor Scenes,arXiv 1803.10870

本文在鸟瞰图中估计遮挡情况下的语义场景layout。这个具有挑战性的问题不仅需要对3D几何形状和可见场景语义有准确的了解,而且对遮挡区域进行准确的理解。本文提出一个卷积神经网络,通过周围前景目标(例如汽车或行人)学习预测场景layout中的遮挡部分。其实,与其用RGB颜色信息、不如说直接预测被遮挡区域的语义和深度,可以更好地转换为鸟瞰图。作者通过从模拟或可以有的地图数据中学习有关典型道路layout的先验知识和规则,可以大大增强初始鸟瞰图表示。其直观表示如图所示:

image

如下图展示的是:inpainting CNN首先对掩码图像和掩码本身进行编码。 所提取的特征级联起来,有两个解码器分别预测可见/遮挡像素的语义和深度。

image

如下图介绍:要训练inpainting CNN,直接忽略前景目标,因为没有可用的真值(红色),但在已有完整注释的背景区域可人工添加掩码(绿色)。

image

如下图示意的是:将具有相应深度的语义分割映射到3D点云,然后转换到鸟瞰图的过程。 红色和蓝色圆圈表示三个视图的对应位置。

image

如下图介绍:(a)在俯视图中的模拟道路形状。 (b)改进CNN是一个编码器-解码器网络,它接收三个监督信号:用输入进行自我重建、来自模拟数据的对抗性损失以及对齐OpenStreetMap(OSM)数据的重建性损失。 (c)校准CNN将初始BEV地图和一系列OSM数据(通过噪声干扰的GPS和给定的摆动估计)作为输入。 CNN会预测OSM图的warp,并训练使初始BEV图的重建损失降至最低。

image

如下图是:(a)使用相似变换(左,“box”)和非参数warp(右,“flow”)组合来将含噪OSM与图像对齐。 (b,顶部)输入图像和相应的初始俯视图。 (b,底部)在OSM图上覆盖的最终warping网格和4种不同warping函数的结果分别为:“ box”,“ flow”,“ box + flow”,“ box + flow(带正则化)”。 注意转换和正则化组成在一起的重要性。

image

如下图是BEV的表示例子结果:

image


2 Monocular Semantic Occupancy Grid Mapping with Convolutional Variational Enc-Dec Networks,arXiv 1804.02176

这项工作是基于弱双目真值对单目语义度量占用网格映射(semantic-metric occupancy grid mapping )做端到端学习。该网络学会预测四个类别(road/terrain/sidewalk/non-free space),以及一个摄像机到鸟瞰图的映射。它的核心是利用变分编码器/解码器网络(variational encoder-decoder network,VED),该网络对驾驶场景的前视视觉信息进行编码,然后解码为2D顶视直角坐标系。其采用的嵌入矢量较小的变化采样具有对车辆动态扰动的鲁棒性,以及针对未见KITTI数据的泛化性。

如下图是可变编码器-解码器方法的说明: 从单个前视图RGB图像中,系统可以预测2-D顶视图语义度量占用网格图。

image

如下图是一些不同方法在测试集得到的映射图例子:

image

实验结果方法比较如下:

image

image


3 Cross-view Semantic Segmentation for Sensing Surroundings,arXiv 1906.03560

讨论跨视图语义分割,定义一种名为View Parsing Network (VPN)的框架来解决该问题。在跨视图语义分割任务中,训练后将第一视图观察结果解析为从上到下的语义图,指出所有目标在像素级的空间位置。此任务的主要问题是缺乏自上而下的视图数据的真实注释。为了缓解这种情况,在3D图形环境中训练VPN,并利用域自适应技术将其迁移到实际数据。

代码上线:https://view-parsing-network.github.io.

如图对VPN框架进一步介绍:仿真部分展示VPN的体系结构和训练方案,而真实世界部分展示将VPN迁移到现实世界的域自适应过程。

image

如图是一些从模拟到真实域适应的定性结果:域适应前后的源预测结果、域适应后的可驾驶区域预测以及可驾驶区域真值图。

image


4 MonoLayout: Amodal scene layout from a single image,arXiv 2002.08394

给定从驾驶平台获取的单色图像,预测道路和其他交通参与者的鸟瞰图layout。估计的layout应超出图像中可见的范围,并补偿由于投影造成的3D信息丢失。无模态场景layout估计,应该包括针对图像被遮挡区域做场景layout的幻觉恢复。作者提出的Mono-Layout,是一种深度NN,用于单个图像做实时非模态场景layout的估计。它将场景layout表示为多通道语义占用格网,并利用对抗特征学习为遮挡的图像部分幻觉般合理补全。

代码上线:https://github.com/hbutsuak95/monolayout

如图是MonoLayout:仅给出道路场景的单个图像,神经网络架构实时(30 fps)在鸟瞰视图中推理非模态场景layout。 这种方法,让MonoLayout使那些在图像不可见的静态场景(道路,人行道)以及交通参与者幻觉般恢复。 这里显示的是来自KITTI(左)和Argoverse(右)数据集的示例图像。 MonoLayout在被遮挡区域做幻觉恢复的结果优于现有技术(超过20%)。

image

这是架构图:MonoLayout拍摄城市驾驶场景的彩色图像,并在鸟瞰图预测无模态场景layout。 该结构包括上下文编码器、非模态layout解码器和两个鉴别器。

image

如下是实验结果比较:

image

如下图是静态layout估计结果:观察MonoLayout如何执行静态场景的非模态补全(道路显示为粉红色,人行道显示为灰色)。 Mono Occupancy(即前面的VED)方法无法在遮挡目标以外推理(顶行),并且不能使丢失的大型补丁幻觉补全(底行),而MonoLayout可以准确地做到这一点。 此外,即使在没有遮挡的情况下(第2行),MonoLayout也会生成质量更高的道路layout。 第3行显示了极具挑战性的场景,大多数视图被车辆遮挡,并且场景呈现出高动态范围(HDR)和阴影等现象。

image

如下图是动态layout估计结果:根据KITTI 3D目标检测基准进行的车辆占用图估计结果。 从左到右,该列分别对应于输入图像、Mono Occupancy方法、Mono3D方法、OFT方法、MonoLayout和真值。 其他方法在检测汽车时错过(顶排)或将车辆检测为两个目标(第二排),或在道路以外检测到车辆(第三排),而MonoLayout在考虑车辆和道路几何形状的同时会产生清晰的目标边界。

image

如下图是Argoverse数据集上的无模态场景layout估计: 该数据集包括多个具有挑战性的场景,它们具有低照度和大量的车辆。 MonoLayout能够准确生成车辆和道路layout的清晰估计。 (人行道在这里无法预测,因为Argoverse没有注释人行道)。

image

如下图是轨迹预测:MonoLayout-forecast可以准确估计移动车辆的未来轨迹。 (左):在每个图中,洋红色的长方体表示车辆的初始位置。 通过观察车辆,MonoLayout-forecast需要1秒钟的预热,然后在该点(青绿色长方体)开始预测未来的轨迹(蓝色)。 真值轨迹以红色显示。 (右):在图像空间的可视化轨迹。 请注意,在存在运动障碍物(顶行)、转弯(中间行)和交通汇聚(底行)的情况下,MonoLayout-forecast能够准确地预测轨迹。

image


5 Predicting Semantic Map Representations from Images using Pyramid Occupancy Networks,arXiv 2003.13402

这里基于视觉的工作包括:地平面估计、道路分割和3D目标检测。本文是一种简单、统一的方法,用单个端到端深度学习架构直接从单目图像中估计地图。对于地图本身来说,用语义贝叶斯占用网格框架(semantic Bayesian occupancy grid framework)可以在多个摄像机和多个时间步上轻松地积累信息。

代码上线:http://github.com/tom-roddick/mono-semantic-maps

如图直观展示:给定一组环视图像,预测完整的360度鸟瞰语义图,该图既可捕获静态元素(如道路和人行道),也可捕获动态目标(如汽车和行人)。

image

image

如下图所示是Pyramid Occupancy Networks(PON)体系结构图。 (1)ResNet-50骨干网络以多种分辨率提取图像特征。 (2)特征金字塔通过较低金字塔层的空间上下文来增强高分辨率特征。 (3)一组致密变换器层(dense transformer layers)将基于图像的特征映射到鸟瞰图。 (4)自上而下网络(top down network)处理鸟瞰特征并预测最终的语义占用(semantic occupancy)概率。

image

如图是:该致密变换器层首先沿垂直方向压缩基于图像的特征,同时保留水平方向的维度。 然后,在极坐标系中沿深度轴(depth axis)预测一组特征,然后重采样到笛卡尔坐标下。

image

这个致密变换器的思想启发是因为网络需要大量垂直上下文将图像转换到鸟瞰图,而在水平方向BEV位置和图像位置之间的关系可以用相机几何来确定。

实验结果如下比较:包括前面提到的VPN(View Parsing Network)、VED(variational encoder-decoder network)等方法。

Argoverse数据集

image

image

Nuscenes数据集

image

image

标签:场景,layout,景物,语义,MonoLayout,图像,感知,BEV,鸟瞰图
From: https://blog.csdn.net/NEON7788/article/details/140844561

相关文章

  • BEV 科普向 (智驾感知)
    BEV全称为Bird's-EyeView,即鸟瞰视角,是一种用于描述车辆周围环境感知数据的术语,尤其在自动驾驶领域非常常见。BEV将传感器收集到的数据转换成类似地图的俯视图,通常以网格形式展示车辆周围的障碍物、车道线等信息,这样便于系统对周围环境进行高精度的理解和规划决策。它有助于提......
  • 全感知、全覆盖、全智能的智慧快消开源了。
    智慧快消视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。AI安全管理平台,通过系统即可针对不同区域的摄像头,完成......
  • 【libevent】libevent简介
    1、Libevent1.1简介Libevent是一个用C语言编写的、轻量级的开源高性能事件驱动网络库。基本的socket编程是阻塞/同步的,每个操作除非已经完成或者出错才会返回,这样对于每一个请求,要使用一个线程或者单独的进程去处理,系统资源没法支撑大量的请求,于是各系统分别提出了基于异步/c......
  • 【AI+安全】态势感知与监测
    信息安全是一个动态的过程,操作系统、应用软件、中间件,还有硬件,平台的种类越来越多,技术越来越复杂,稍有不慎就会留下安全隐患和管理漏洞,依靠客户自身的IT资源无论从技术的先进性还是方案的严密性上都越来越难以应对,企业往往由于人手或技术力量的不足,无法自如的处理各种复杂的信息安......
  • 【AI+安全】安全感知管理平台相关技术
    结合威胁情报、行为分析建模、UEBA、失陷主机检测、关联分析、机器学习、大数据关联分析、可视化等技术这些技术都是在网络安全领域中广泛应用的,它们在不同方面都起着重要的作用。以下是对这些技术的详细解释❀威胁情报(ThreatIntelligence)威胁情报是关于最新威胁和攻击的信息,......
  • 制作KubeVirt镜像
    目录制作KubeVirt镜像1.准备磁盘文件2.编写Dockerfile3.构建镜像4.上传镜像到仓库(可选)5.导出镜像6.虚拟机yaml文件7.启动虚拟机8.启动虚拟机报错制作KubeVirt镜像我们现在已经安装好了Kubevirt并且也运行了第一个虚拟机,但是这个虚拟机并不是我们想要的,我们现在想要自......
  • Kubevirt
    目录Kubevirt部署1.简介2.核心概念3.部署kubevirt3.1部署kubevirtoperator3.2开启嵌套虚拟机3.2.1intel3.2.2AMD3.3继续部署kubevirt3.4安装virtctl4.运行第一个虚拟机Kubevirt部署KubeVirt官网地址1.简介KubeVirt是一个用于在Kubernetes集群中运行和管理虚拟......
  • 保姆教程深度学习(多层感知机)一份足矣
    多层感知机一.隐藏层和激活函数1.为什么需要隐藏层?前面几篇博客我们通过基础知识,学习了如何处理数据,如何将输出转换为有效的概率分布,并应用适当的损失函数,根据模型参数最小化损失。但是记不记得当时我们算出来的数据都是线性的,我们把一张图片28*28=784的每一个像素视为一......
  • 【深度学习入门项目】多层感知器(MLP)实现手写数字识别
    多层感知器(MLP)实现手写数字识别导入必要的包获得软件包的版本信息下载并可视化数据查看一个batch的数据查看图片细节信息设置随机种子定义模型架构Buildmodel_1Buildmodel_2TraintheNetwork(30marks)Trainmodel_1Trainmodel_1Visualizethetrainingprocess......
  • 在感知器学习模型的 Python 实现中将数组传递给 numpy.dot()
    我正在尝试将单层感知器分类器的Python实现放在一起。我发现SebastianRaschka的《Python机器学习》一书中的示例非常有用,但我对他的实现的一小部分有疑问。这是代码:importnumpyasnpclassPerceptron(object):"""Perceptronclassifier.Parameters......