#WaterSplatting

快速重建水下世界

水下重建的挑战

神经辐射场(NeRFs)能够提供逼真的3D场景重建质量,3DGS在渲染质量方面可以与NeRF媲美,并且提供了实时渲染速度、更好的可编辑性和控制能力。

散射场景的重建,如雾霾和水下环境,是一个有趣的研究领域,应用范围从海军机器人到虚拟现实体验。在水体体积中重建几何结构具有挑战性,因为散射介质的属性与空气不同。在典型场景中,主要要求是表示表面。NeRFs和高斯散点方法都优化了表面表示,从而提高了效率。对于NeRFs,由于它们是全体积的,因此理论上它们应该能够完全体积化地表示介质。然而,NeRFs为加速训练过程而使用的采样器阻止了它们对体积的良好学习。

为了解决这个问题,一种名为SeaThru-NeRF[2]的NeRF方法被提出,它使用两个场:一个用于几何,一个用于中间的体积。然而,这种方法在渲染和训练上都很慢。

本文介绍一种新方法WaterSplatting[1],通过使用3DGS显式表示几何,并使用体积表示中间体积。提出的渲染器不仅在渲染质量上超越了全体积表示,还在渲染和训练速度上达到了与3DGS相当的水平。其主要贡献如下:

介质中的散点:引入了一种结合高斯散点(GS)和体积渲染的新方法。该方法采用GS进行显式几何表示,并使用单独的体积场捕捉散射介质。这种双重表示允许在散射介质中合成新的视角,并在无介质的情况下恢复清晰的场景。

损失函数对齐:提出了一种新的损失函数,旨在将3DGS与人类对高动态范围(HDR)和低光场景的感知对齐。

高效合成与恢复:证明了在合成现实世界的水下数据的新视角和恢复合成的背散射场景中的清晰场景方面优于其他模型,同时大大缩短了训练和渲染时间。

项目主页:https://water-splatting.github.io

具体方法

预备知识

3D高斯散点(3D Gaussian Splatting, 3DGS)使用可学习的显式原语  来建模场景。每个高斯原语  由中心位置  和协方差矩阵 

3DGS原语还具有两个附加的参数化属性:不透明度  和球谐系数 ,后者用于表示方向外观成分(各向异性颜色)。为了渲染像素颜色,将通过视图变换  将原语转换到摄像机空间,并使用投影变换的仿射近似的雅可比矩阵  对  进行变换,然后得到投影的2D均值  和2D协方差矩阵 :

以及 

2D高斯核 

其中  是像素的坐标。对于光栅化,每个高斯在3倍标准差范围内截断,仅考虑与该范围内的16×16像素块相交的高斯原语,因为约99.7%的概率落在均值的3倍标准差范围内。因此,像素颜色通过对不透明度 

其中  是给定视图方向的颜色, 是Sigmoid函数, 是参与alpha混合的高斯数目。在优化过程中,3DGS会通过分割大的高斯并复制小的高斯来周期性地密化在2D坐标  上具有高平均梯度的高斯,同时通过修剪低不透明度的原语来加速渲染,并周期性地将所有高斯的 

在散射介质中的场景渲染,我们使用了修订过的水下图像形成模型【1】,其中最终图像 

其中  是在无介质下在深度  捕获的清晰场景, 是水在无限远处的背散射颜色。颜色乘以衰减系数,其中  和  是图像直接成分和背散射成分的衰减系数,分别表示介质对颜色的影响。向量  表示直接成分的依赖关系,包括深度 、反射率、环境光、水的散射特性和水的衰减系数。向量 

介质中的散点渲染

方法流程如图2所示。模型输入是一组具有散射介质的图像和相应的摄像机姿态。通过结构化运动(SfM)初始化一组3D高斯原语,并通过神经网络对其进行优化,以编码介质属性。在考虑到原语和介质的遮挡情况下,模型能够获得沿射线的透射率,并能够在新视角下合成介质成分和物体成分。

考虑沿摄像机射线  从摄像机到无限远处积分的像素期望颜色 ,由于3DGS的无界渲染,通过添加介质项来释放光在散射介质中传播的约束:

其中,透射率 

其中, 和  分别表示物体和介质的密度,而  和 

将  和  设置为每条射线上的常量,并且每个颜色通道分别处理。为了在3DGS中应用离散表示,前第  个高斯  (在第  个高斯  之后)的透射率  在深度  的区间 

其中,

是从摄像机到深度 

高斯 

其中, 是基于像素  与  的相对位置计算得到的不透明度(参考公式(5)),而  是基于射线方向的颜色。介质在第  个高斯  和高斯 

为了精确估算介质属性,还包括从最后一个高斯 

在累积颜色中。

广色域相机在捕捉场景时的有效介质密度  在物体颜色  和介质颜色  中表现不同。为物体衰减  和介质背散射  使用两组参数,分别应用于  和 。通过将 

其中:

损失函数对齐

在原始的3D高斯散点(3DGS)方法中,损失函数结合了L1损失和D-SSIM损失,适用于没有共享参数的原语。该方法提出了一种正则化损失函数 ,以增强优化过程中暗区域的权重,使其与人类对动态范围的感知对齐。更具体地说,在渲染的估计值  和目标图像  上应用逐像素权重 ,其中 ,其中  是像素坐标,

因此得到正则化的L1损失:

该损失减少了模糊,并使边缘更加锐利。还得到了正则化的D-SSIM损失:

该损失鼓励  和 

该损失函数鼓励高斯优化更好地与人眼对动态范围的感知对齐。

实验效果

总结一下

WaterSplatting重点研究了水下重建问题,该问题此前是通过体积表示解决的,但训练和渲染速度较慢。它将显式点散射方法(3DGS)与体积渲染结合起来的方法,实现了快速训练和实时渲染速度。在散射介质通过光线段进行整合的同时,交替使用高斯散点的alpha合成。该方法能够在实现实时渲染的同时,达到最先进的效果。此外,显式场景表示还使几何和散射介质的解耦成为可能。

未来工作方向:将该方法扩展到包含水和雾的大型场景中 , 开发板商城 天皓智联 TB上有视觉设备哦 支持AI相关~ 大模型相关也可用 whaosoft aiot自动驾驶也可以哦

局限性

  1. 在区分远处背景物体和介质时存在一些困难,如图3和图7顶部所示。然而,在前景中,本方法能够很好地修剪与介质相关的原语,而SeaThru-NeRF无法防止几何场适应介质,从而导致波纹状伪影。
  2. 依赖于可用的摄像机姿态数据,这在水下3D场景中可能难以获得。
  3. 基于3DGS的方法在缺乏观察的区域会产生伪影,这也是NeRF基于模型的问题,如图8左侧和图4顶部所示,而基于NeRF的SeaThru-NeRF方法(右侧图像)则会引入一些模糊、失真和插值效果。
  4. 从场景中恢复的颜色不能保证精确(尤其是对于背景物体),因为在介质的作用下,物体的颜色和衰减属性在训练过程中会相互纠缠,如图5所示。




#仅需10ms的动态点云剔除方法

论文题目:A Fast Dynamic Point Detection Method for LiDAR-Inertial Odometry in Driving Scenarios

论文作者:Zikang Yuan, Xiaoxiang Wang, Jingying Wu, Junda Cheng, Xin Yang

导读:


本文实现了一种十分快速的动态点剔除方法,仅需要10ms以内就能剔除扫描点云中的动态点,十分便捷高效。

现有基于3D点云的动态点检测与移除方法存在显著的时间开销,这使得它们难以适应于LiDAR-惯性里程计系统。本文提出了一种基于标签一致性的动态点检测与移除方法,用于处理自动驾驶场景中的行人和移动车辆,并将所提出的动态点检测与移除方法嵌入到一个自设计的LiDAR-惯性里程计系统中。三个公开数据集上的实验结果表明,该方法可以在LiDAR-惯性里程计系统中以极低的计算开销(即1至9毫秒)实现动态点的检测与移除,同时达到与最先进的方法相当的保留率和拒绝率,并显著提高姿态估计的准确性。

在自动驾驶领域,3D激光雷达(LiDAR)和惯性测量单元(IMU)是用于实时定位的关键传感器。LiDAR-惯性里程计(LIO)已成为实时状态估计的主要框架。大多数现有LIO系统假定环境是静态的,但在实践中,车辆通常会在包含行人和移动车辆的动态环境中行驶。动态对象的点云数据会干扰状态估计并影响地图重建质量。

为了解决动态环境对LIO性能的影响,之前的研究工作中已提出了一些3D点云的动态点检测方法,这些方法分为离线和在线两种。离线方法需要预建地图,而在线方法虽不要求预建地图,但计算成本高,难以实现实时运行。

因此,本文提出了一种基于标签一致性的动态点检测和移除方法,适用于自动驾驶场景中的移动车辆和行人。该方法首先快速分离地面点,并根据点是否位于地面进行标签化。对于位于移动对象上的点,其最近邻点的标签会出现不一致性。如果一个点自身是非地面点,但其最近邻点多为地面点,则判定为动态点,并从地图中移除。

实验结果表明,本方法在semantic-KITTI数据集上实现了先进的保留率和拒绝率,且计算时间显著低于其他在线方法。在ULHK-CA和UrbanNav数据集上的实验也证明了本方法能够显著提升估计姿态的准确性,超越了当前最先进的LIO系统。

本文的主要贡献有:

1)提出了一种低计算成本的动态点检测和移除方法;

2)将提出的方法整合到LIO系统中以增强估计姿态的准确性。

▲图1|a:展示了一个含有动态点的示例点云地图,其中绿色点是移动车辆的鬼影轨迹;b:静态点云地图,其中动态点已被本文的基于标签一致性的动态点检测和移除方法检测并移除

3D点云动态点检测与去除方法可分为离线和在线两类。

离线方法包括Removert、ERASOR和DORF等,需要预构建地图:Removert使用多分辨率距离图像来迭代恢复静态点;ERASOR通过伪占用概念来区分不同占用度的空间;DORF则采用由粗到细的框架来生成清洁的静态点云地图。

在线方法包括Dynamic Filter、Dynablox和RH-Map等,不依赖预构建地图:Dynamic Filter针对动态环境提出了在线去除框架;Dynablox能实现在复杂环境中稳健检测移动物体;RH-Map基于3D区域范围哈希映射结构来构建地图。

最近几年,机器人领域发展出了许多激光雷达惯性组合(LIO)系统。LIO-SAM将LIO里程计问题公式化为因子图;LINs在ESIKF框架内集成了6轴IMU和3D激光雷达;Fast-LIO通过优化卡尔曼增益计算来减少计算负担;Fast-LIO2引入了ikd-tree算法来提高效率;DLIO提高了状态预测精度;Semi-Elastic-LIO提供了一种半弹性的状态估计方法;SR-LIO通过扫掠重建方法增加了扫掠频率;RF-LIO和ID-LIO能够处理动态场景下的状态估计,但计算开销大,难以实时稳定运行。

此外,本文还用、和分别表示世界坐标系、激光雷达坐标系和惯性测量单元坐标系中的3D点。在起始位置时,世界坐标系与惯性测量单元坐标系重合。

本文将第次惯性测量单元测量所在时刻的惯性测量单元坐标系表示为,那么从激光雷达坐标系惯性测量单元坐标系的变换矩阵(即外部参数)表示为,其中包含一个旋转矩阵和一个平移向量。通常假设外部参数矩阵已经通过离线方式被足够准确地标定,因此在后续过程中不再进一步优化。因此,本文简化记号为。

▲图2|本文的Dynamic-LIO系统概览

图2展示了本文系统的框架,该系统包括四个模块:点云处理、静态初始化、基于ESIKF的状态估计和动态点移除。

点云处理模块分离地面点并进行空间降采样;静态初始化模块利用IMU测量来估计状态参数;状态估计模块与SR-LIO的状态估计模块一致;动态点移除模块使用基于标签一致性的方法检测并移除动态点。

图中还显示系统维护两个全局地图:跟踪地图和输出地图,后者更彻底地过滤动态点。本文使用Hash体素地图来管理这些地图。

■4.1 地面拟合

本文利用与LeGO-LOAM相同的地面分割方法来从当前输入扫描中分离出地面点,这种方法计算成本非常低,这对LIO系统来说非常重要。分离地面点的可视化在图3中展示,其中橙色点标记为“地面点”,白色点标记为“非地面点”。

▲图3|从当前输入扫描中分离地面点的可视化

■4.2 背景分离

在执行标签一致性检测时,需要为当前扫描中的每个点找到最近邻。靠近车辆的点可以可靠地找到它们的最近邻,而远离车辆的点可能由于它们的位置尚未被重建而找不到最近邻。本文设定了30米的阈值,将距离车辆30米内的点定义为前景点,30米外的点定义为背景点。对于前景点和背景点,本文采用了针对其特性的基于标签一致性的动态点检测方案。

■4.3 标签一致性检测

标签一致性检测基于动态对象接触地面的前提。

静态点通常能在全局地图中找到最近邻,而从动态物体扫描得到的LiDAR点通常找不到最近邻,因此被分类为动态点。对于可能找到地面点作为最近邻的点,本文根据最近邻中地面点的比例来决定是否将其分类为动态点。背景点可能因位置未被重建而找不到最近邻,对于这样的点,本文将它们标记为不确定点并放入容器中,待后续重构位置结构后再进行判断。对于前景点、背景点和不确定点,本文采用三种不同的模式进行标签一致性检测。

▲图4|检测动态点的两个标准:绿色点被检测为动态点是因为它们在配准过程中无法找到最近邻,粉色点被检测为动态点是因为它们的标签与其最近邻不一致

前景点模式:如果最近邻的数量低于某个阈值5,则表明的位置原本为空,因此将其分类为动态点。如果最近邻数量足够大(大于5),则计算所有最近邻中非地面点的比例。如果这一比例足够低(小于30%),被分类为静态点并加入跟踪地图和输出地图。相反,如果比例大于30%,被分类为动态点而不加入地图。前景点动态点检测结果的可视化见图5。

▲图5|前景点动态点检测结果的可视化

背景点模式:如果最近邻的数量低于某个阈值5,本文无法确定这是由于动态点未能找到最近邻还是因为位置尚未被重建,从而阻止了最近邻的查找。这种点被标记为不确定点,随着车辆继续移动并在这些点的位置结构恢复后做出判断。为了确保状态估计过程中新获取的点云能够正确配准,有必要将不确定点纳入跟踪地图。这不会对状态估计的准确性有太大影响,即使背景点中有动态物体,扫描到它们的LiDAR点也非常稀疏。至于最终的输出地图,必须尽可能少包含动态点,因此对于不确定点的判断将在之后进行。当最近邻数量足够大(大于5)时,处理方式与前景点相同,静态点加入跟踪地图和输出地图。背景点动态点检测结果的可视化见图6。

▲图6|背景点动态点检测结果的可视化

不确定点模式:随着车辆继续前进,全局地图中先前未重建的位置的几何结构信息得以恢复(如图7所示)。当不确定点容器中的某点接近车辆的当前位置(小于30米),其周围几何结构信息极有可能已经被重建。此时本文可以判断是否为动态点。如果最近邻数量低于某个阈值5,表明的位置原本为空,导致被分类为动态点。如果最近邻数量大于5,则计算所有最近邻中非地面点的比例。如果这一比例远小于30%,则将其分类为静态点并加入输出地图。反之,如果比例不低于30%,则将其分类为动态点而不包括在内。如果一个不确定点连续10次扫描都距离车辆位置超过30米,则直接将其分类为静态点并加入输出地图。

▲图7|不确定点动态点检测结果的可视化

本文在三个自动驾驶场景数据集上评估了所提出方法的整体性能:Semantic-KITTI、ULHK-CA和 UrbanNav。

Semantic-KITTI 数据集由一个64线Velodyne LiDAR收集而成,每个LiDAR点都有其独特的语义标签。因此,Semantic-KITTI用于评估本文提出的基于标签一致性的动态点检测和移除方法的保留率(PR)和拒绝率(RR)。ULHK-CA数据集由一个32线Robosense LiDAR和IMU收集,UrbanNav数据集由一个32线Velodyne LiDAR和IMU收集。这两个数据集用于评估动态点检测和移除对位姿估计绝对轨迹误差(ATE)的改进。所有实验均在一个配备Intel Core i7-11700和32 GB RAM的消费级计算机上完成。

■5.1 与最先进方法的PR和RR比较

本文将基于标签一致性的动态点检测和移除方法与三种最先进的三维点云基础的动态点检测和移除方法进行了比较,即Removert、Erasor和Dynamic Filter。表I和表II的结果显示,本文的基于标签一致性的动态点检测和移除方法在更高的PR和RR方面对比Dynamic Filter在几乎所有序列上表现出更好的性能。尽管Dynamic Filter在序列00上实现了比本文更高的RR,但本文的结果与他们的非常接近,仅相差0.36%。

▲表I|与最先进方法在Semantic-KITTI数据集上的保留率(PR)

▲表II|与最先进方法在Semantic-KITTI数据集上的拒绝率(RR)比较

■5.2 与最先进方法的ATE比较

本文将提出的动态点检测和移除方法集成到一个自设计的LIO系统中以获得Dynamic-LIO,并在ULHK-CA和UrbanNa数据集上将其与四种最先进的LIO系统进行比较,即LIO-SAM、Fast-LIO2、RF-LIO和ID-LIO。Dynamic-LIO都有环路检测模块,并使用GTSAM来优化因子图。表III的结果显示,本文的Dynamic-LIO在MarketStreet和RussianHill上的精度优于 LIO-SAM、Fast-LIO2、RF-LIO和ID-LIO。由于RF-LIO既不是开源的也没有在UrbanNav数据集上进行测试,本文无法获得它在序列TST和Whampoa上的结果。虽然ID-LIO在UrbanNav数据集上实现了比本文系统更小的 ATE,但本文开源代码的做法更好地证明了本文结果的可复现性。

▲表III|与最先进方法在ULHK-CA和UrbanNav数据集上的绝对轨迹误差(ATE)比较

■5.3 对不确定点的消融研究

在本文的系统中,包含不确定点的目的是尽可能多地移除动态点,从而增加输出地图中静态点的比例。本节通过比较包含和不包含不确定点情况下Dynamic-LIO的PR和RR值来验证包含不确定点的必要性。表IV和表V的结果显示,包含不确定点可以略微提高本文动态点检测和移除方法的PR和RR。

▲表IV|不确定点对保留率(PR)的影响

▲表V|不确定点对拒绝率(RR)的影响

■5.4 对位姿估计的动态点移除的消融研究

本节通过比较包含和不包含动态点移除情况下Dynamic-LIO的ATE结果来评估动态点移除对位姿估计的有效性。表VI的结果显示,移除动态点可以显著提高本文Dynamic-LIO的位姿估计精度。

▲表VI|移除动态点对绝对轨迹误差(ATE)的影响

■5.5 与最先进方法的时间消耗比较

本文比较了本文的基于标签一致性的动态点检测和移除方法与两种最先进的三维点云基础的动态点检测和移除方法的时间消耗,表VII的结果显示,无论是Dynamic Filter还是RH-Map都无法保证实时能力,而本文的方法可以稳定地实时运行。表VIII的结果显示,本文Dynamic-LIO的时间消耗明显小于RF-LIO和ID-LIO,而本文的系统运行速度大约是RF-LIO和ID-LIO的5倍。由于RF-LIO既不是开源的也没有在UrbanNav数据集上进行测试,本文无法获得它在序列TST和Whampoa上的结果。

▲表VII|与最先进方法在Semantic-KITTI数据集上的时间消耗比较

▲表VIII|与最先进LIO系统在ULHK-CA和UrbanNav数据集上的时间消耗比较

■5.6 各模块的时间消耗

本文评估了本文系统的运行时间分解(单位:ms)。对于每个序列,本文测试了点云处理(除地面拟合外)、位姿估计和动态点移除的时间消耗。动态点移除模块可以进一步分解为两个子步骤:地面拟合和标签一致性检测。表IX的结果显示,本文的系统仅需1~9ms 即可移除一次扫描中的动态点,而完成LIO其他任务所需的总时间是16~46ms。这意味着本文的方法可以在LIO系统中以极低的计算开销完成动态点检测和移除。

▲表IX|各模块的时间消耗

■5.7 地图可视化

图8展示了本文的Dynamic-LIO在示例序列(semantic-KITTI-05)上重建静态点云地图的能力。如图8(a)所示,在移除动态点之前,移动物体的幽灵轨迹(绿色点)在地图上清晰可见。如图8(b)所示,在移除动态点之后,输出地图几乎不再含有幽灵轨迹。

▲图8|a:移除动态点之前的输出地图可视化;b:移除动态点之后的输出地图可视化

本文提出了一种基于标签一致性的动态点检测和移除方法,该方法根据特定点与其最近邻的一致性来确定该点是否为动态点。本文将提出的动态点检测和移除方法嵌入到一个自设计的LIO系统中,该系统能够准确估计状态并以极低的成本排除动态物体的干扰。实验结果表明,所提出的基于标签一致性的动态检测和移除方法可以实现与最先进的动态点检测和移除方法相当的保留率(PR)和拒绝率(RR),同时确保更低的计算成本。此外,本文的Dynamic-LIO在动态环境下的运行速度大约是最先进的LIO系统的5倍。




#GaussianOcc

渲染速度提高5倍!GaussianOcc:没有标注也能做Occ(东京大学)

GaussianOcc是一种系统方法,它研究了Gaussian Splatting的两种用途,用于在环视图中实现完全自监督且高效的3D占用率估计。首先,传统的自监督3D占用率估计方法在训练过程中仍然需要来自传感器的真实6D姿态。为了克服这一限制,这里提出了用于投影的Gaussian Splatting(GSP)模块,以通过相邻视图投影为完全自监督训练提供准确的尺度信息。此外,现有方法依赖于volume渲染,利用2D信号(深度图、语义图)进行最终的3D体素表示学习,这既耗时又低效。这里提出了来自体素空间的Gaussian Splatting(GSV),以利用Gaussian Splatting的快速渲染特性。

因此,所提出的GaussianOcc方法能够以具有竞争力的性能实现完全自监督(无需真实姿态)的3D占用率估计,同时计算成本较低(训练速度提高2.7倍,渲染速度提高5倍)。相关代码将发布在:https://github.com/GANWANSHUI/GaussianOcc.git。

领域背景一览

近年来,无论是以视觉为中心还是以网格为中心的感知方法,在自动驾驶行业和学术界都受到了广泛关注。其中,环视3D占用率估计已成为一项核心感知任务,并有望成为鸟瞰图(BEV)方法的有前途的替代方案。为了促进3D占用率估计,已经开发了几种用于监督训练的基准,但这些基准在3D标注方面需要付出巨大努力。为了减轻标注负担,已经提出了基于volume渲染的自监督和弱监督学习方法。volume渲染允许使用2D监督信号(如2D语义图和深度图)进行3D表示学习,从而消除了训练过程中需要大量3D标注的需要。

现有方法通过volume渲染实现自监督学习,其中2D语义图监督来源于开放词汇集的语义分割,而深度图监督则来自自监督深度估计。然而,这些方法面临两个重大限制。首先,volume渲染是在现实世界尺度上进行的,这需要真实6D姿态的可用性来计算连续图像之间的多视图光度损失。其次,volume渲染的低效性是一个挑战,这与新视图合成任务中的情况相同,因为需要密集的采样操作。这些限制阻碍了更通用且高效的自监督3D占用率估计范式的发展。

为了解决上述限制,这里探索了一种使用Gaussian Splatting的完全自监督且高效的3D占用率估计方法。引入了Gaussian Splatting来进行跨视图splatting,其中渲染的图像构建了一个跨视图损失,该损失在与6D姿态网络联合训练时提供尺度信息,这消除了训练过程中对真实6D姿态的需求。为了提高渲染效率,摒弃了传统volume渲染中所需的密集采样。相反,这里提出了直接从3D体素空间进行Gaussian Splatting。在这种方法中,体素网格中的每个顶点都被视为一个3D高斯函数,直接在体素空间内优化这些高斯函数的属性:如语义特征和不透明度。通过这种新颖的方法,提出的方法GaussianOcc朝着完全自监督且高效的3D占用率估计迈进了一步,如图1所示。

主要贡献总结如下:

• 引入了首个完全自监督的高效环视3D占用率估计方法,该方法以Gaussian Splatting的探索为特点。

• 提出了用于跨视图投影的Gaussian Splatting,该方法可以提供尺度信息,从而消除训练过程中对真实6D姿态的需求。

• 提出了从体素空间进行Gaussian Splatting的方法,与volume渲染相比,该方法在训练速度上快了2.7倍,在渲染速度上快了5倍,同时实现了具有竞争力的性能。

相关工作介绍

近年来,环视3D占用率估计获得了广泛关注,并基于Nuscenes数据集建立了多个基准。除了提出的先进架构外,另一个研究趋势是利用volume渲染进行带有二维监督的三维监督。SimpleOcc率先使用volume渲染进行3D占用率估计,探索了监督学习和自监督学习。RenderOcc扩展了用于渲染的语义信息。OccNeRF和SelfOcc采用了类似的方法,使用二维开放词汇语义模型生成语义图进行监督。然而,由于volume渲染过程是在真实世界尺度上进行的,这些自监督方法需要来自传感器的真实6D姿态来提供训练所需的真实世界尺度。相比之下,我们正在探索一种利用相邻相机重叠区域来学习真实世界尺度的解决方案,从而消除了对真实6D姿态的需求。

3D Gaussian Splatting已成为一种流行的方法,用于使用良好构图的图像对3D和4D场景进行建模,与神经辐射场中的volume渲染相比,该方法具有快速渲染的特性。在驾驶场景的背景下,一系列研究已经集中在特定场景的重建上。然而,我们的工作研究了在广义设置中Gaussian Splatting的功能。在这种设置中,现有方法通常通过学习的2D高斯属性的反投影来构建3D高斯。我们也采用了这种反投影方法,但独特之处在于,我们的方法通过Gaussian Splatting投影从相邻视图中构建跨视图信息来学习尺度信息。

此外,最近的两项工作GaussianFormer和GaussianBeV与本文的工作密切相关,因为它们都关注于3D占用率估计和BEV(鸟瞰图)预测。然而,我们的探索有所不同,我们专注于Gaussian Splatting可以为占用率估计带来的两个新特性:尺度感知训练和更快的渲染。

主要方法

这里研究了使用3D Gaussian Splatting进行完全自监督的3D占用率估计。3D Gaussian Splatting(3D-GS)是一种使用点基元对静态3D场景进行建模的技术。每个点都表示为一个由3D协方差矩阵Σ和均值µ表征的缩放高斯分布。点X的高斯分布由以下公式给出:

具体而言,为了通过梯度下降法实现有效的优化,协方差矩阵Σ被分解为缩放矩阵S和旋转矩阵R,如下所示:

将高斯从3D空间投影到2D图像平面涉及视图变换W和投影变换的仿射近似的雅可比矩阵J。二维协方差矩阵Σ'计算如下:

随后,应用了类似于NeRF中使用的alpha混合渲染技术。这可以表示为:

在这里,表示每个点的颜色,密度α由具有协方差Σ'的二维高斯与每个点学习的不透明度相乘得到。颜色使用球谐函数(SH)系数定义。

总结来说,基本的3D Gaussian Splatting方法用以下属性来描述每个高斯点:(1) 一个3D位置,(2) 由球谐函数(SH)系数定义的颜色(其中k表示SH基底的维数),(3) 由四元数表示的旋转,(4) 缩放因子,(5) 不透明度α ∈ [0, 1]。

1)GaussianOcc全览

GaussianOcc的概述如图2所示。主要贡献在于引入了跨视图Gaussian Splatting以实现尺度感知训练,以及体素网格Gaussian Splatting以实现更快的渲染。与用于特定场景3D重建的原始Gaussian Splatting不同,这里探索了一种设置,其中高斯属性在2D和3D网格中均得到良好对齐。这种方法将3D场景在2D图像平面上建模为深度图,在3D网格空间中建模为体素(占用)格式。

2)通过Gaussian Splatting进行尺度感知训练

空间相机支架的尺度:与之前的工作类似,尺度信息来自周围的相机rig。可以通过利用相机的外部矩阵来获得现实世界中的尺度,即在两个相邻视图的重叠区域使用空间光度损失,即将 wrap到:

其中 , 是第 i个相机的内外矩阵, 是第 i个相机的预测深度图, 是wrap过程中的对应像素。扭曲操作是通过与对应的  进行双线性插值来实现的。然而,由于这样的小重叠区域中的弱监督信号,映射 

用于投影的Gaussian Splatting(GSP):如图2所示,使用深度网络来预测二维网格空间中的高斯属性,包括深度图、尺度图和旋转图。对于每个相邻视图,首先计算重叠区域的掩码,然后mask这些重叠区域的一侧。由于另一侧重叠区域的存在,未投影的三维场景保持完整,这对于在实验部分所指示的提供尺度训练至关重要。然后对相邻视图进行splatting渲染以获得渲染图像。如果深度图被准确学习,那么渲染图像应该类似于原始图像,从而为整个流程提供必要的尺度信息。

获取重叠掩码的过程如图3所示。重叠掩码的获取基于volume渲染,在一个视图的射线上密集采样点,如果一个以上的采样3D点落在相邻视图内,则认为该像素是重叠区域的一部分。请注意,在DDAD数据集中,我们排除了自遮挡区域(如车身部分)。最后,对掩码应用OpenCV库中的腐蚀操作以进行净化。

3)Fast rendering by Gaussian Splatting

volume渲染中的低效性能:对于2D监督(语义图和深度图),先前的方法采用了基于密集采样的volume渲染。虽然用于建模3D场景的最终3D体素表示比原始的隐式表示(MLPs)要快得多,但它仍然耗时,尤其是在融入语义图渲染时。例如,在OccNeRF中,分辨率为180×320的采样点数量为108,735,066。然而,目标优化点对应于3D体素网格中的顶点,总数为320 × 320 × 24 = 2,457,600。这种密集采样点的冗余有助于体渲染的优化,但效率极低。

来自体素的Gaussian Splatting(GSV):如上所述,目标优化点是3D体素网格中的顶点,这促使我们考虑直接优化这些顶点。因此,本文研究了使用Gaussian Splatting来进一步加速渲染过程。对于3D体素网格中的每个顶点,获得Gaussian Splatting所需的属性,如3D位置、语义信息和不透明度。因此提出将每个顶点视为3D高斯分布。由于这些顶点排列在3D体素空间中,可以通过优化相关的高斯属性来建模3D场景。

4)损失函数实验结果

nuScenes数据集:使用nuScenes数据集进行3D占用率估计和深度估计。对于3D占用率估计,利用Occ3DnuScenes中的标注,该标注包含600个训练场景和150个评估场景。每个样本的感知范围为[-40m, -40m, -1m, 40m, 40m, 5.4m],体素大小为0.4m。为了公平比较,使用OccNeRF提供的2D语义图。使用mIoU指标来衡量3D占用率估计的性能。对于深度估计,将感知范围设置为[-80m, -80m, -1m, 80m, 80m, 6m],同时将真实值限制在0.1m到80m的范围内进行评估,这与OccNeRF和SurroundDepth保持一致。使用误差指标(Abs Rel、Sq Rel、RMSE、RMSE log)和阈值精度指标(δ)来评估深度图。

DDAD:使用DDAD数据集进行3D占用率估计和深度估计。由于缺少真实标签,仅在全自监督3D占用率估计设置下展示定性结果。遵循在nuScenes数据集上使用的程序,根据OccNeRF流程获得2D语义标签。对于深度估计,也将感知范围设置为[-80m, -80m, -1m, 80m, 80m, 6m],但将真实值限制在0.1m到200m的范围内进行评估,这与SurroundDepth保持一致。

1)实施细节

网络细节:对于U-Net架构,采用基于Swin Transformer的New-CRFs作为深度估计网络。6D姿态网络与SurroundDepth中使用的相同。对于从2D到3D的提升,遵循SimpleOcc中使用的方法。在深度估计基准测试中,使用SimpleOcc提出的网络,其最终输出大小为256×256×16。在Gaussian Splatting设置中,为了提高性能,将最终输出进一步上采样到512×512×32,这仅需要最小的额外计算成本。对于占用率估计,使用与OccNeRF相同的网络以确保公平比较。

训练细节:为全自监督3D占用率估计提出了一个两阶段训练过程。在第一阶段,联合训练深度估计网络和6D姿态网络。在第二阶段,训练3D占用率网络,但不优化6D姿态网络。在第一阶段,在nuScenes数据集上训练模型8个周期,在DDAD数据集上训练12个周期。在第二阶段,在nuScenes和DDAD数据集上分别训练模型12个周期。




#xGen-MM (BLIP-3):

BLIP家族再添成员!模型架构、训练集多维升级!

xGen-MM (BLIP-3): A Family of Open Large Multimodal Modelshttps://arxiv.org/abs/2408.08872

大型多模态模型(Large Multimodal Models, LMM)通过结合视觉和语言信息,展现出在多种应用场景中的泛化能力。在这一领域,专有模型如以及开源LMM例如所取得的显著进展,但开源模型与专有模型之间在某些关键资源的获取上存在不小差距,特别是在开放权重、训练方法和精选数据集的访问方面。这种差异阻碍了开源社会群体在复制、理解以及对LMM进行进一步改进方面的努力。

对此,Salesforce AI Research团队和华盛顿大学合作开发了一个名为xGen-MM(也称为BLIP-3)的框架,它是用于开发大型多模态模型(LMMs)的一套系统。这个框架包括了精心策划的数据集、训练方法、模型架构以及一系列由此产生的LMMs。相比于BLIP-2,BLIP-3做了以下改进:

(1)在数据集的选取上,BLIP-3使用多模态交错数据集、策划的字幕数据集和其他公开数据集来扩展LMM训练;

(2)BLIP-3简化了模型架构,用更可扩展的视觉标记采样器(感知器重新采样器)替换了Q-Former层;

(3)将每个训练阶段的多个训练损失函数统一为单个损失来简化训练过程,仅关注多模态上下文中文本标记的自动回归损失。

此外,BLIP-3团队引入了两个大规模、高质量的数据集:MINT-1T,一个万亿标记规模的交错数据集;BLIP3-KALE,一个知识增强的高质量密集标题数据集。文章还介绍了两个额外的专用数据集:BLIP3-OCR-200M,一个具有密集OCR注释的大规模数据集;BLIP3 - ground - 50M,一个大规模的视觉定位数据集。

BLIP-3和BLIP-2的简要对比

BLIP-2(Bootstrapping Language-Image Pre-training 2)是Salesforce AI Research团队开发的一种大型多模态模型(LMM),旨在通过结合视觉和语言模型来提升对多模态数据的理解。

BLIP-2利用了合成数据来实现当时令人印象深刻的结果,主要使用了COCO-style image caption data数据集(包含图像及其相应的描述文本)。COCO数据集因其丰富的注释和多样性而被广泛用于图像描述和多模态任务。然而,BLIP-2使用的数据集在规模、质量和多样性方面存在局限性,这限制了它与更现代的LMMs相比的竞争力。为了克服这些限制,BLIP-3(xGen-MM)采用了更大规模、更高质量、更多样化的数据集。

BLIP-2用Q-Former连接视觉和语言模态,Q-Former通过复杂的注意力机制来整合视觉和语言信息,这使得模型能够深入理解多模态数据。BLIP-2采用了多种训练目标,包括图像-文本匹配(ITM)、图像-文本对比(ITC)和图像-文本生成(ITG)损失,这些目标共同优化了模型的性能。BLIP-2支持单图像输入,这限制了它处理交错多模态数据的能力。

在BLIP-3(xGen-MM)中,Q-Former被更可扩展的视觉标记采样器(如感知器重采样器)所取代,以简化训练过程并提高模型的可扩展性,具体如下:

  • 任意分辨率视觉标记采样:模型采用了动态高分辨率图像编码策略,通过将图像分割成多个小块(patches),并分别对这些小块进行编码,以保留原始图像的尽可能多的分辨率信息。编码后的图像小块与缩小尺寸的原始图像(提供全局信息)拼接在一起,该原始图像提供了全局信息。在视觉-语言连接器中,使用感知器重采样器对视觉标记进行下采样。如此,可以将视觉标记的序列长度减少五倍或更多。
  • 视觉-语言连接器:在视觉Transformer和语言模型之间,使用感知器重采样器作为连接器,它将视觉标记与文本标记结合起来,并将它们输入到语言模型中。
  • 文本标记化器:输入的文本数据通过文本标记化器处理,将文本分割成标记,然后与视觉标记一起输入到预训练的LLM。
  • 损失函数:在训练过程中,模型使用标准的自回归损失函数,仅针对文本标记进行优化。视觉Transformer在训练期间保持冻结,而其他参数(包括标记采样器和预训练的LLM)会被训练。

与之前的BLIP-2框架相比,xGen-MM (BLIP-3) 通过将训练目标统一为每个训练阶段的单一损失,简化了训练过程。通过使用更简单的架构和统一的训练目标,xGen-MM (BLIP-3) 可以更容易地扩展以处理更大规模的数据集和更复杂的任务。

训练流程

在展示结果之前,还要对训练流程和数据集先做简要说明。xGen-MM (BLIP-3) 的训练分为几个关键阶段:

  • 预训练(Pre-training):预训练的目标是在预训练的数据集混合上预测下一个文本标记。预训练使用大规模、多样化的数据集进行训练,包括MINT-1T、OBELICS等。生成的基础模型(xGen-MM-Phi3-mini-base-r)在多模态token上预训练了约1000亿个token,展现出强大的上下文学习能力。
  • 监督微调(Supervised Fine-tuning, SFT):在公开可用的指令遵循数据集上进行微调,采用任意分辨率视觉标记采样策略,进一步对指令遵循示例上的预训练模型进行微调,使它们更好地理解和遵循用户查询。
  • 多图像监督微调(Interleaved Multi-Image Supervised Fine-tuning):在多图像和单图像指令遵循样本的混合数据集上进行第二阶段微调,目的是增强模型理解交错图像-文本输入的能力。
  • 后训练(Post-training):执行直接偏好优化(DPO)和安全性微调,以改善模型的无害性和有用性。

数据集预训练数据配方

如图3所示,在xGen-MM (BLIP-3)中,文章使用指定的采样比率在不同多模态数据集的集合上进行预训练。

  • 多模态交错数据集:(1)MINT-1T数据集:是一个万亿标记规模的多模态交错数据集,包含来自HTML、PDF和ArXiv的数据源,以7:5:1的比例混合。(2)OBELICS数据集:完全由HTML文档构建的大规模多模态交错数据集。与MINT-1T在域覆盖上略有不同,通过特定的预处理步骤获得。
  • 标题混合数据集:(1)BLIP3-KALE:一个大规模、高质量且经过策划的标题数据集。(2)BLIP3-OCR-200M:一个大规模OCR数据集,用于解决大型多模态模型在处理文本丰富图像(如文档和图表)时的局限性。使用PaddleOCR引擎对图像进行OCR注释,提取文本元素并标注其在图像中的位置。标题中的文本片段被修改为包含OCR信息,如边界框坐标。

(3)BLIP3-grounded-50M:一个大规模定位数据集,旨在增强视觉特征中语义概念的定位能力,支持物体检测、语义分割等任务。使用开放世界图像标记和目标检测模型识别物体及其位置信息,并在标题中标注。

  • 监督微调数据配方:微调阶段使用的数据集来自不同领域的公共数据集,包含100万个样本。文章对不同领域的数据进行采样,包括多模态对话、图像字幕、视觉问答、图表/文档理解、科学和数学。除了多模态图像-文本数据外,文章还在视觉指令调优期间混合了纯文本指令跟随数据。多图像指令调优阶段从对单图像样本进行微调的模型开始,使用公共多图像/交错图像-文本指令数据的混合。
  • 后训练数据配方:(1)VLFeedback 数据集:旨在通过直接偏好优化提高训练后数据配方的真实性。使用现成的视觉-语言模型(VLM)生成对多种多模态指令组合的响应。利用GPT4-V模型对生成的响应进行评分,评分沿着三个轴进行:帮助性、视觉忠实度和道德性。通过选择模型中平均得分最高(首选)和最低(不首选)的响应,并过滤掉得分较低的首选响应,构建出偏好数据。最终数据集包含80k个这样的指令及其响应评分。(2)VLGuard 数据集:旨在通过安全微调提高视觉-语言模型的安全性。数据集分为两种类型的不安全示例:(a)令人反感的图像与安全指令和理想弃权响应的配对(b)安全图像与两种类型指令响应的配对,一种是安全的,另一种是不安全的。数据集由多个子类别的不安全示例组成,如侵犯隐私、风险/敏感主题(政治、性和暴力)、欺骗和歧视等。

实验预训练

在预训练阶段之后,文章在经典字幕和VQA任务上评估文章的预训练模型,并与之前支持少样本学习多模态评估的模型进行比较。文章给出了零样本和少样本(4样本和8样本)的结果,如表1所示。总体而言,文章的模型在同等大小的LMM上实现了具有竞争力的多模态上下文学习性能。对于OCR任务(TextCaps和TextVQA)和VQA-v2,它明显优于MM1-3B甚至更大的模型,如Idefics-9B和MM1-7B。在所有基准测试中,增加样本数可以提高性能,证明模型适应上下文分布的能力。

监督微调

单幅图片评估:在表2中,文章与同等规模(< 5B)的模型进行了比较,包括闭源模型和SoTA开源模型。文章报告单个基准分数和两个平均分数:“Avg.(all)”是所有基准的平均值,“Avg.(perc.)”是关注一般VQA和视觉感知的基准的平均值。xGen-MM-instruct在一般VQA和视觉感知基准上都优于以前的基准。此外,文章发现xGen-MM- instruction -interleave虽然在多图像数据上进行了进一步的微调,但在单图像基准测试中保持了良好的性能,并获得了最高的总分。

多图像评估:在表3中,文章在多图像基准测试中比较了xGen-MM-instruct和xGen-MM-instruction-interleave。虽然xGen-MM-instruct在xGen-MM-base基础上进行了微调,可以理解交错的图像-文本数据,但它在多图像基准测试中表现不佳。文章怀疑这是因为仅仅对单个图像数据进行微调就会损害这种能力。使用多图像SFT,文章看到分数显著提高。此外,文章还在单图像基准测试上对Xgen-MM-interleave进行了评估(见表2),发现它在所有基准测试中都保持了良好的性能,并获得了最高的总分。

后训练

表4总结了xGen-MM-instruct两种训练后策略的结果。文章通过VLGuard测试分裂的ASR%(攻击成功率)和使用HallusionBench(图像-上下文推理的准确性)和POPE(二元实体存在问题的平均F1分数)来衡量安全性能。为了确保训练后不会影响有用性,文章报告了一些理解基准的性能作为对照。DPO通过提高幻觉基准(第二行)来增强真实性,而安全微调显着降低ASR(第三行)。如对照基准所示,有用性也略有改善。最终xGen-MM-DPO实现了这两项改进。

消融研究预训练

消融研究缩放

预训练数据

通过将数据规模从2B个多模态标记改变为100B个多模态标记,文章进行了一项消融研究,以探索预训练数据量与预训练评估指标之间的关系。如图7所示,文章发现将多模态标记的数量从2B扩展到60B,可以为图像-文本(COCO-Caps)和OCR (Text-Caps, TextVQA)任务带来可观的增益,并且进一步将数据大小增加到100B,在少样本评估指标上仍能带来些许改进。

预训练数据配方

文章讨论了不同的数据配方对预训练的影响。具体来说,文章在基本数据配方的基础上进行消融研究:使用Obelics作为多模态交错数据源,同时保持标题数据集混合相同。文章还考虑了另外两种方法:(1)使用MINT-1T作为交错数据替换,以及(2)混合额外的纯文本指令调优数据作为预训练数据集。如表5所示,文章看到使用MINT-1T进行图像-文本对齐(COCO-Caps)和OCR (Text-Caps, TextVQA)的性能有所提高,而知识密集型任务OK-VQA的性能略有下降。文章还发现,添加文本数据有助于提高更多依赖LLM容量的OK-VQA的性能。

视觉backbone

文章还探讨了不同的视觉backbone是否对视觉语言任务的表现有影响。文章比较了两种类型的视觉编码器,DFN和SigLIP。根据经验,文章发现SigLIP提供了更好的视觉表示,提高了OCR任务的性能。

视觉标记的数量

另一种方法是研究不同数量的视觉标记的影响,即输入图像标记到语言模型中。文章发现将视觉标记的数量从128个减少到64个仍然可以获得类似的性能,如表7所示。这使得给定一个固定的上下文窗口,模型可以吸收更多的视觉图像。

指令微调(SFT)消融研究

SFT消融研究是在简化的SFT数据混合上进行的,因此本节的结果与监督微调部分的主要结果不能直接比较。

任意分辨率视觉标记采样

文章的任意分辨率策略与之前的工作不同之处在于,每组图像嵌入(相同图像patch)都使用感知器重采样器进行下采样,这确保了输入到LLM的视觉标记数量保持相对较小。在本节中,文章通过将任意分辨率策略与“固定分辨率”基线和其他降采样设计进行比较,来削弱其有效性。

“固定分辨率”基线将所有图像调整为视觉编码器的默认输入大小,同时保持原始宽高比。文章还使用感知器重采样器尝试了另一种降采样策略:文章考虑“固定采样”(在图8a中表示为anyres-fixed-sampling),而不是对每个patch独立进行降采样。在固定采样中,文章将所有图像补丁中的图像嵌入连接起来,然后将它们作为单个序列输入到感知器重采样器中,以获得整个图像的固定数量的视觉标记。

文章对该设计的评估侧重于文本丰富的任务(例如,文档理解),这些任务将受益于具有视觉细节的高分辨率编码。从图8a中,文章可以看到分辨率图像编码策略的显著改进,即使使用了下采样的视觉标记。固定采样策略虽然在基本分辨率基线上有所改进,但不如逐块采样好。文章怀疑这可能是由于两个原因:(a)在固定采样的情况下,一个可以有超过3000个嵌入标记的视觉标记序列将被压缩到128个标记,这可能太少而无法保留信息。(b)感知器重采样器可能不能很好地处理不同图像嵌入的串联。

指令感知视觉标记采样(Instruction-Aware Vision Token Sampling)

InstructBLIP提出了一种指令感知的Q-Former用于视觉标记采样,并在一些基准测试中表明它可以提高模型性能。使用感知器重采样器作为VL连接器,文章可以采用类似的修改来使该过程具有指令感知。为了使文章的感知重采样器具有“指令感知”能力,文章将文本指令标记附加到感知重采样器的查询标记上。与Q-Former不同,感知重采样器内部只有交叉注意力层,因此指令(文本标记)将通过交叉注意力与查询标记和图像嵌入进行交互。

从图8b的比较中,文章没有观察到文章的模型与其指令感知版本在各种基准测试中的显著差异。由于文章在消融研究中观察到的差异很小,为了简单起见,文章在模型中保留了原始的感知器-重采样器结构。

纯文本指令数据的质量

在这个实验中,文章研究了纯文本子集如何影响多模态基准测试的性能。在指令调优阶段,文章比较了纯文本数据的多样性是否会影响多模态性能。在文章的主要实验中,纯文本指令数据的默认集合涵盖了不同的领域,包括对话、数学和代码。在表8中,观察到添加数学和编码数据,虽然是纯文本格式,但可以帮助在MathVista等相关基准测试上改进模型,而对一般VQA基准测试的影响较小。

相关工作

模型架构的选择:大型多模态模型(LMM)的最新进展探索了两种主要的架构方法:交叉注意风格和仅解码器风格。交叉注意方法以Flamingo和Llama 3.1等模型为例,通过复杂的注意机制整合视觉和语言模式,实现深度多模态理解。另一种方法是文章在xGen-MM (BLIP-3)中采用的纯解码器架构,它提供了更精简的解决方案。这种方法使用轻量级连接器将预先训练好的语言模型连接到视觉输入,简化了集成过程,同时保持了健壮的多模态功能。这种架构的有效性在MM1、VILA、LLaVA、phi3-vision和Otter等模型中得到了明显体现。

LMM的训练方法:第一种方法使用轻量级的预训练过程,并严重依赖于视觉指令调优,如在LLaV a系列中所见。对于为各种任务创建有效的指令调优数据已经进行了广泛的研究。第二种策略包括在大规模、多样化的数据集上进行广泛的预训练,然后进行视觉指令微调。MM1和Idefics2等模型采用了这种方法,将广泛的知识注入模型,然后对模型进行微调,使其与类人交互和安全标准保持一致。虽然MM1对旨在改进LMM的数据配方进行了广泛的研究,但它为从业者提供了有限的资源来采用该模型(例如,MM1模型和数据集是封闭来源的)。Idefics2是一个较新的开源工作,它开放了一套模型以及详细的训练策略和数据配方,但Idefics2在实验中主要使用现有的数据集,而不提供新的数据集。

总结

在这项工作中,文章提出了xGen-MM (BLIP-3)。与之前的工作不同,xGen-MM (BLIP-3)是一个开源家族,包含一系列模型、数据配方、微调代码和两个大型基础多模态数据集,文章希望这将推动并推进该领域的未来研究。




#姿态估计

HRNet 之后,姿态估计还有研究空间么?1. 人体姿态估计Sota项目(DWPose)

它是目前2D人体姿态估计在COCO-WholeBody上的SOTA方法(paperwithcode)

这是一个新的两阶段知识蒸馏框架(Two-stage Distillation Framework, TPD),旨在提高全身姿态估计的效果和效率。这个方法的第一阶段通过预训练的教师模型从特征和逻辑层面指导学生模型学习,强制学生模型模仿教师模型的特征和输出。第二阶段则引入了一种自蒸馏(self-KD)方法,学生模型通过自身的逻辑输出来进一步优化其头部特征,这显著提高了模型的性能,且只需20%的训练时间。该方法在COCO-WholeBody和UBody数据集上取得了最先进的表现,并且具有显著的时间和资源效率。已发表在ICCV 2023

2. 项目链接

GitHub:github.com/IDEA-Research/DWPose/tree/onnx

demo:可直接测试图片和视频openxlab.org.cn/apps/detail/mmpose/RTMPose

Colab:可能会遇到环境安装问题,可以跳过到测试步骤,有其他问题可以私信我共同探讨colab.research.google.com/drive/1A_62XOy2pdDyk9gpAPR6nwO74KbUuLIo?usp=sharing

3. 测试场景与结果

单人背影测试:

  • 耗时:2.0秒

多人场景测试:

  • 耗时:2.9秒

4. 其他模型的测试结果

rtmpose(body):

  • 耗时:1.7秒

rtmo(body):

  • 耗时:3.3秒

rtmw(wholebody):

  • 耗时:2.3秒

5. 总结

  • 优点:使用姿态估计的方法进行人体姿态估计耗时较长但精度较高,可以直接对原始图片进行检测,无需先行人检测。特别是DWPose方法在识别背影中的人体姿态上表现出色。
  • 缺点:当行人重叠时,存在漏检情况。




#OASIS SIM V3.0

道不尽的长尾,数不尽的CornerCase | 一文看懂OASIS SIM V3.0交通流如何大杀四方

OASIS SIM自然交通流能够在仿真环境中自定义交通流,重现真实世界的交通情景,帮助测试和优化自动驾驶算法,OASIS SIM自然交通流如下图所示。

51c自动驾驶~合集20_自动驾驶

自然交通流示例

51c自动驾驶~合集20_自动驾驶_02

丁字路口交通流

51c自动驾驶~合集20_自动驾驶_03

拥堵交通流

OASIS SIM自然交通流主要由交通流场景编辑(生成)和场景控制两部分功能组成。交通流编辑功能支持个性化配置车辆生成区域(如主车周围生成、指定区域生成等),车辆生成密度,车辆类型比例,以及车辆行驶分布,并支持保守,正常,激进等多种驾驶风格。OASIS SIM交通流编辑功能如下图所示。

51c自动驾驶~合集20_自动驾驶_04

OASIS SIM动态场景交通流配置

交通流场景控制功能支持基于规则的控制模型以及基于AI的控制模型。

基于规则的控制模型:能够自动识别并适配不同道路拓扑结构,可以根据周车的交互行为做出相应的驾驶行为,如车辆跟驰、换道、车道侵入、超车、避障、遵守交通规则等,无需预先定义原子场景。

基于AI的控制模型:采用了先进的模仿学习和强化学习技术。该技术通过模拟和学习人类驾驶策略,创建出的驾驶员模型,能够更加智能、自然的与主车和周车交通环境进行交互。同时,AI控制模型可以动态适应不同道路拓扑结构下交通流分布的变化,支持高速、城区等不同场景模式下的交通流生成,也可基于路采交通流数据对交通流模型进行持续进化,不断学习特定区域交通流特征,实现更加精确的交通流生成能力,从而提升交通流整体智能水平,AI控制模型流程如下图所示。

51c自动驾驶~合集20_自动驾驶_05

AI控制模型技术流程图

用户可以通过基于规则的控制模型和基于AI的控制模型自定义交通流,从而进行低成本、灵活且高效的仿真测试,大幅降低研发成本,加快开发进度。

AI对抗交通流

ADVERSARIAL TRAFFIC FLOW

自动驾驶落地之前需要开展大规模测试以从统计学角度验证其安全性。但是,在真实世界中安全关键场景稀疏且难以获取。路采数据中往往缺少真实车辆之间的关键交互场景。然而,自动驾驶算法在对抗场景中的应急处置能力又直接决定了是否有交通事故的发生。因此,急需在仿真环境中搭建各种对抗场景来验证自动驾驶车辆的应变能力。。

51c自动驾驶~合集20_自动驾驶_06

连续换道对抗

51c自动驾驶~合集20_自动驾驶_07

多车连续对抗

51c自动驾驶~合集20_自动驾驶_08

弯道处超车对抗

OASIS SIM对抗交通流主要由对抗场景生成模块和对抗场景执行模块两部分组成,对抗场景生成模块主要作用是为对抗执行模块创造对抗条件。对抗场景执行模块主要作用则是保证对抗车能够根据主车当前与对抗车的相对位姿状态(位置,速度,航向角等)做出相应的决策,并保证当前的动作是有效的对抗行为。举个简单例子,如下图所示,在不同的道路拓扑结构中,我们感兴趣的对抗区域可能是不同的,十字路口主要对两车的交汇点感兴趣,此时我们可能希望对抗车能主动与主车抢占交汇点,从而测试主车的应急处置能力,而在匝道场景则是对汇流点与分流点感兴趣,我们可能希望对抗车能够干扰主车正常行驶,迫使主车汇入/汇出匝道失败,从而触发有效的对抗博弈,达到测试主车应对突发状况能力的目的。因此,对抗场景生成模块需要识别不同的对抗场景,并根据主车的运动状态,不断调整对抗车的位姿,以便对抗场景执行模块能够顺利接管并控制对抗车,并产生有效的对抗。

51c自动驾驶~合集20_自动驾驶_09

对抗效果示意图

OASIS SIM对抗交通流支持设置对抗时长、对抗范围以及对抗激进程度等。同时,OASIS SIM对抗交通流考虑了不同道路拓扑结构的差异性,通过对路网共性的抽象,用户可以创建对抗使能点trigger,相遇点trigger以及冲突点trigger来生成用户感兴趣的对抗场景。我们设计并部署了正常模式,截止路模式,并行模式,行人模式以及路口模式等5种对抗模式。可通过所设置的trigger点以及对抗车辆与主车的相对位姿关系,自动切换到相应的对抗模式下,并做出有效的对抗行为。可有效泛化到上下匝道、交叉路口(十/丁字路口)、车道增减、环岛、行人等不同场景中去。如上图所示,对抗交通流能够高效地测试自动驾驶系统在对抗场景下的应变能力,有效解决了传统测试成本高,泛化性差,缺乏交互等问题。

集成与部署

INTEGRATION AND DEPLOYMENT

OASIS SIM自然交通流及对抗交通流与CARLA、VTD、VISSIM等仿真器高度解耦,独立性较强,只需人工进行少量的API调试,可灵活与不同仿真器集成部署。同时,我们还支持交通流镜像部署和本地部署两种方式,方便大家使用。

51c自动驾驶~合集20_自动驾驶_10

不同仿真器下不同场景对抗效果




#通过直接BEV特征注意力加速在线建图和行为预测

开源代码:https://github.com/alfredgu001324/MapBEVPrediction

摘要

了解道路几何形状是自动驾驶汽车(AV)堆栈的关键组成部分。虽然高清(HD)地图可以很容易地提供此类信息,但它们的标签和维护成本很高。因此,许多最近的工作提出了从传感器数据在线估计HD地图的方法。最近的绝大多数方法将多相机观测值编码为中间表示,例如鸟瞰图(BEV)网格,并通过解码器生成矢量地图元素。虽然这种架构是高性能的,但它会大量抽取中间表示中编码的信息,从而阻止下游任务(例如行为预测)利用它们。

在这项工作中,我们建议揭示在线地图估计方法的丰富内部特征,并展示它们如何将在线地图与轨迹预测更紧密地结合起来。

通过这样做,我们发现直接访问内部BEV特征可以使推理速度提高73%,对真实世界nuScenes数据集的预测准确率提高29%

问题

最近的绝大多数方法将多相机观测值编码为中间表示,例如鸟瞰图(BEV)网格,并通过解码器生成矢量地图元素。虽然这种架构是高性能的,但它会大量抽取中间表示中编码的信息,从而阻止下游任务(例如行为预测)利用它们

方法

我们提出探索在线地图估计中丰富的中间特征,展示在线地图构建同下游任务紧密结合

可以提高推理速度以及预测准确性

Introduction

在线构建高精度地图中广泛采用编码器解码器架构

“employ an encoder-decoder neural network architecture” (Gu 等, 2024, p. 2)

“The resulting road geometries are commonly structured as combinations of polylines and polygons per map element type (e.g., road boundaries, lane dividers, pedestrian crosswalks).” (Gu 等, 2024, p. 2)

在线构建高精度地图的输出结果是折线和多边形的组合,用折线和多边形的组合表示地图中的每个不同的元素(道路边界,车道分割线以及人行横道)

“the attention mechanisms employed in decoding are computationally expensive” (Gu 等, 2024, p. 2)

在线构建高精度地图中的解码器中的注意力操作是耗费时间的

“do not produce outputs with associated uncertainty” (Gu 等, 2024, p. 2)

同时,这种操作不会产生相关联的不确定性

“perspective-view-to-bird’s-eye-view (PV2BEV)” (Gu 等, 2024, p. 2)

这种架构使得下游的任务无法利用编码器的透视图到鸟瞰图转换过程中生成的丰富中间特征

Leveraging Online Mapping Features in Trajectory Prediction

论文中首先介绍了常见的Online Mapping的基本流程,分为encoding以及decoding

Encoding

在线地图构建器的编码器的目的在将多传感器输入转换到统一的特征空间中

“transformation. The two most common PV2BEV approaches are based on BEVFormer [20] and Lift-Splat-Shoot (LSS) [28].” (Gu 等, 2024, p. 4)

基本流程是首先使用 backbone 对各个相机的图像进行编码特征,然后使用 PV2BEV 转换,将各个相机的图像特征转换为 BEV 视角下的特征,两种主流的 PV2BEV 方法,一个是基于 BEVFormer,另一个是基于 LSS 变换。

下图为BevFormer的结构图

BEVFormer 中使用一个增强版 Tranformer Encoder,包含三个部分

基于DeformAttn机制进行时间和空间维度上的特征提取

Decoding Map Elements

通常包含一个分层查询hierarchical query嵌入机制,以及多头注意力和deformable attn机制,从bev特征中准确预测复杂,不规则的地图元素

实例级和点级查询相结合,用于动态特征交互,然后是分类和回归头,分别预测地图元素定点类型和位置

疑问:此处实例级和点级的query具体如何应用,尚未理解

本文提出了三种策略,用于将BEV特征同下游的行为预测相结合

策略1——Modeling Agent-Lane Interactions via BEV Feature Attention

本小节本文首先介绍策略1的具体做法,其次介绍策略1如何具体应用的

做法

51c自动驾驶~合集20_自动驾驶_11

本文将每个patch中所有grid的特征进行flatten,共有N个patch,最终得到所有patch的维度为N X D

经过一个linear层将特征维度降为D维,得到N X D

论文中选择出同agent位置相关的bev grid组成的patch作为agent patch,agent patch的个数为M,所有agent patch元素的维度为M X D

疑问:如何选择出同agent位置相关的bev grid,如何通过每个bev特征得到该grid是agent的位置20240819更新:此处需要有其他车辆的位置才可以实现;经过确认,作者是通过trajdata API提取其他车辆坐标(可能直接从nuscenes源数据获得信息)这样做的话实际部署到车上时,其他agent的位置获取又是一个需要解决的问题了

除了agent patch之外,其余的patch认为其为map patch,map patch的个数为N,所有map patch元素的维度为M X D,以agent patch特征为query,map patch特征为key和value,两者进行多头的交叉注意力,如下所示,最终得到agent-bev embedding

51c自动驾驶~合集20_自动驾驶_12

策略1在HIVT中的具体应用

策略1中产生的agent-bev特征会替代hivt中局部的agent-lane交互编码,这样使得hivt可以避免使用高精地图

agent-bev特征同agent-agent的交互特征之间进行concat,经过一个linear后进入全局交互模块

理解:此处含义为原本hivt中agent-agent的交互特征concat上公式3.1中的agent-bev特征,实现一种对hivt的增强。此外,尽管HiVT中全局交互模块Global Interaction中各个local region之间的位置关系是可以得到的(笔者推测:可以使用对应agent的bev grid之间的相对位置替代),但是local region之间的角度关系尚不可知20240819更新:此处hivt中的global interaction部分使用原有的方式,即通过local region的位置进行计算

策略2——Augmenting Estimated Lanes with BEV Features

策略1中的做法是完全不使用高精度地图,策略2在于利用bev feat增强现有的高精度地图

首先使用1D的CNN对bev feat进行refine,以匹配与原始车道息息相关的潜在空间的维度

疑问:匹配与原始车道息息相关的潜在空间的维度?将bev feat的维度同原始车辆编码后的特征维度保持一致?

匹配对应位置的bev grid的特征以及地图元素节点位置,即将相同位置的地图元素节点的位置同该位置下的bev grid的特征相concat

策略2在DenseTNT中的具体应用

论文中提到由于DenseTNT的pipeline中的各个阶段中非常依赖高精度地图,因此并不能直接使用策略1,丢弃任何高精地图信息,而是采样策略2

在DenseTNT中的input layer中将bev 特征同地图元素节点特征进行concat,concat之后的特征再送入Vectornet进行编码(DenseTNT中原本采用的就是vectornet backbone)

策略3——Replacing Agent Information with Temporal BEV Features

StreamMapNet流式地图构建中引入了一个memory buffer,该buffer中保存了过往帧中的query data和BEV features,将这些过往信息同当前帧获得的BEV特征结合起来。

StreamMapNet通过对过往一个时间步上bev特征的融合来捕获时间信息,这使得streammapnet可以捕获动态agent的信息。

策略3就是使用temporal bev特征来替代agent的特征,基于此还可以继续使用策略1,用agent的temporal bev特征参与到agent同map patch之间的多头交叉注意力中

策略3在DenseTNT中的具体做法

本文的具体做法就是将DenseTNT中Vectornet的agent subgraph替换成策略1中公式得到的agent-bev特征

思考:笔者认为论文此处是笔误,策略1中的agent-bev特征是agent特征同map特征之间交叉注意力得到的特征,在vectornet中subgraph是用于对象内部进行特征提取的,如agent的历史轨迹,车道线等等。agent同环境之间的交互则是通过global interaction graph实现的,故笔者认为此处应该替代的是vectornet中的global interaction模块20240819更新:经过确认,此处是笔者想多了,实验时就是用agent-bev特征代替vectornet中的agent的特征,然后再进行global interaction,实现增强效果

实验

论文介绍了三种用于将在线构图和轨迹预测结合起来的策略

在线构建地图的baseline选择了MapTR,MapTRv2以及StreamMapNet,其中MapTR +Unc表示使用论文Producing and leveraging online map uncertainty in trajectory prediction中提到的方法

MapTR+Ours表示使用上文中提到的三种策略中的一种

轨迹预测方法选择了DenseTNT以及HiVT

本文提出策略结合不同Online Mapping以及预测方法的量化结果

总体结论:引入bev特征有用!

上图中的实验结果显示,对于所有mapping/prediction组合,与baseline以及带有不确定性Unc增强的方法相比,使用本文提出的策略结合BEV特征,均能带来指标上的提升。最大的提升能达到25%

比较不同mapping方法得到了一个额外的结论:MapTR的解码器中引入了噪声导致表现变差!

MapTRv2以及StreamMapnet相较于MapTR在mapping任务上表现更好,但是在论文中的实验显示,结合bev特征之后,MapTR+bev的提升是最大的。这表明MapTR中的解码器引入了噪声,导致了MapTR在online mapping任务上的表现逊于MapTRv2以及StreamMapnet

消融实验

BEV编码器选择:包含时间信息的bev特征对轨迹预测的表现提升大!

论文中提到了mapping方法中不同bev编码器的选择,主要有两种,一种是利用Bevformer,如MapTR以及StreamMapNet;另一种是基于LSS,如MapTRv2

上表中的量化结果表明,结合BEV特征对MapTRv2的提升远远小于结合bev特征的MapTR以及StreamMapnet

原因在于bevformer中会使用过去帧的bev特征,包含了时间信息,而LSS方式并没有引入时间信息

定性比较

论文通过首先使用主成分分析(PCA)将每个BEV网格单元的维度降低到单个值,然后归一化为[0, 255],创建灰度图像。依照此方法将bev网格特征表示在图像上

下图为StreamMapNet+Hivt得到的可视化结果图,下图中可以看到bev特征中清晰补货到了道路边界信息,其中灰色为可行驶区域,白色为不可行驶区域。

这种现象表明了引入时间信息的 bev 特征可以捕获车辆周围的地图特征

总结

本文提出将在线构图以及轨迹预测更加紧密的结合起来,让下游的轨迹预测能够直接利用在线构图中的 bev 特征,提高下游轨迹预测的精度。具体来说,提出了三种策略

  • 无高精地图情况下:agent patch 对应的 bev 特征同 map patch 对应的 bev 特征之间的 cross attn,建模 agent 同地图元素之间的交互
  • 已有高精度地图情况下:地图元素的 bev 特征同现有地图元素位置进行 concat ,然后再用于轨迹预测
  • 使用引入时间信息的 bev 特征作为 agent 的特征

论文通过实验证明了三种策略的有效性,以下为笔者认为的关键结论

  • 引入时间信息的bev特征能够极大提高下游预测模块的性能表现。引入时间信息的bev特征一方面能够更好的表示agent的历史特征,同时也能让模型捕获到周围的环境信息