数据闭环的核心-Auto-labeling方案分享

1. 简介

BEV算法的开发已经到了深水区,各家都投入了大量的精力去做bev的落地开发,其中一块最关键的就是如何高效的完成BEV的数据标注,无论是BEV 3D 目标,BEV 去高精地图或者是BEV Occupancy。

相比于车端的感知算法,自动标注系统更像是一个不同模块组成的系统,充分利用离线的算力和时序信息,才能得到更好的感知结果,实际落地的时候,对于工程师的能力要求上了一个档次,想要把这些大模型大系统玩转的好和高效,也是非常不容易的。

在实际工作中,自动驾驶的数据是非常重要的,如何高效低成本的获得高质量的数据集成为了自动驾驶企业的核心竞争力。

随着自动驾驶感知技术的不断发展,对于标注的要求也越来越高,很多标注任务也越来越难。 Camera/Lidar 联合标注,3d 语义分割,最近大火的多Camera BEV,如何向特斯拉那样,完成vector space 的自动化标注,目前也没有看到有哪个国内公司能做的。

自动标注算法(auto-labeling)其实就是高精度的真值生成算法,可以不受车端的算力限制,并且可以用全时序的数据来联合优化结果。因为是离线的,精度怎么高怎么来。这么一套系统,除了可以做自动化的标注/预标注,也有很多其他的作用,例如可以挖掘corner case,指导车端模型训练等。

2. 业界的一些方案

2.1. Robesense RS-reference系统

RoboSense 的 RS-Reference 系统,有一个车顶模组 + 数采设备 + 离线工控机组成,可以装在测试车上,完成数据采集,真值生成,感知算法评价等功能, 从2018 到现在,也经过了好几代系统的迭代,这块的积累也比较深。

主要分为2块核心算法:

目标检测:

  • 机器学习 + 深度学习联合处理点云(coarse-to-fine),完成更多检出,和消除误检。(目前应该加入了多相机的前融合算法)
  • 加入毫米波雷达(Conti 408),如果毫米波数据 和 激光雷达检出匹配, 则优化目标的运动属性(速度+加速度等),然后得到每个目标的全生命周期轨迹,将全生命周期的整个轨迹作为考虑,通过滤波/贴边等操作优化目标的属性

可行驶区域/路沿/车道线:

  • 多传感器SLAM 建图(速腾这套设配可以配备惯导)
  • 通过点云分隔网络(或其他)完成点云高精地图的静态元素检测
  • 再将结果从点云地图反向转化为单帧的结果

2.2. 东方中科真值系统

真值系统是由毫⽶波雷达、激光雷达、⾼精度组合惯导等⻋载传感器外加⾼效的数据记录设备组成的数据采集系统。由于其可通过对数据进⾏处理⽣成可靠性⾼于被测传感器的数据(真值),所以真值系统常被⽤来评测被测传感器的性能。同时基于数据采集的准确性,在对真值数据进⾏清洗、标注和数据挖掘后,可形成⾃然驾驶场景数据集,进⽽搭建⾃然驾驶场景库。

2.3. ASEva V2X真值系统

ASEva致力于为客户提供优质的传感器系统对标测试解决方案,如毫米波雷达、激光雷达、高精度组合惯导等车载传感器设备的对标评估工作,以及整车车辆ADAS系统的测试评估。通常传感器的对标测试是通过搭载额外的系统作为对标真值,通过特定的测试用例获得结果数据,并将测试传感器与真值系统进行对比分析。本文将介绍基于ASEva平台利用V2X相关技术来对车载传感器进行对标评估的应用方法。

随着信息技术近年来发展迅速,V2X之间实时高效的双向通讯也日趋成熟。如下图所示,ASEva V2X系统将高精度组合惯导的精确位置信息作为传感器精度评估的reference数据,并且通过搭建的车辆、行人、以及路测基础设施之间的信息通讯交互桥梁,实现主车端采集接收并解析来自其他车辆、行人等定义参考点位置信息,并进行数据计算处理,生成精度分析报告,为传感器等技术测试及研发提供高可靠性的解决方案以满足客户需求。

V2X Reference集成了惯性测量单元、GNSS系统、多目标通讯模块、以及ASEva采集终端。该套系统优势在于:

  • 所需测试硬件设备少,安装迅速;
  • 空旷环境下测试系统工作稳定;
  • 车与目标物之间通讯范围广,延迟波动率低;
  • 人机配置步骤简易,测试前只需配置主车采集终端;
  • 正常情况下,目标物位置信息精确度高。

3. 3d动态元素自动标注

3.1. 3DAL-Waymo(2021)

Offboard 3D Object Detection from Point Cloud Sequences

2021年,Waymo 放出来一篇自自己是如何做 offboard 3d object detection的工作,由Charles R.Qi大神和 YinZhou大神带队。

整体的思路也遵循 Coarse-to-Fine 的操作 :

  • 先通过一个离线的3d 目标检测 (MVF++) + 3d 跟踪算法 (Kalman Filter)完成Coarse 的目标检测, 通过这一个,可以得到每一个目标的整个轨迹序列
  • 通过目标检测轨迹 + 原始点云,将目标的点云从检测框里抠出来, 可以得到 Sequence Object Points + Sequence Objects Boxes, 用于下一阶段的进一步box refine
  • 点云叠加后,动态目标会形成一条轨迹,点云会形成拖影,静态目标会形成更加完整的目标, 因此,使用了一个简单的静/动分类器来完成分类。
  • Static Object Auto Labeling 1. 将多帧点云从世界坐标系转化到目标中心坐标系;2. 用一个Pointnet 来分类点云的前景点和背景点,然后将背景点去除;3. 再用一个 Pointnet Variant 来回归物体中心点,heading, size和类别,完成静态物体的refine

  • Dynamic Object Auto Labeling

Foreground Seg Network, 额外加入了时间的encoding, 当前帧为0,前后各取两帧数据,共五帧数据, 每帧数据的点云降采样到1024个点, 然后总共有5120 points 进入分割网络

--> MLP (64, 128, 256, 512 ) -> MaxPool -> MLP(512,256),最后输出256维度的点云编码特征

Box Sequence encoder Network, 也编码成特殊的点云(c_x, c_y, c_z, length, width, height, theta, time_enocding),基本用了所有的目标时序, 共计101帧数据

--> 用了一个额外的PointNet, 但是卷积可以换为 1D ConvNet,(Uber用了 1D Unet来编码),

--> Pointnet(64, 64, 128, 512, max-pooling, MLP(128, 128) , 最后输出 128-dim feature,我们叫做trajectory embedding

将 point embedding 和 trajectory embedding concatenated在一起,得到Joint Embedding

Joint Embedding用MLP (128, 128, Linear层) 回归目标的尺寸

为了促进 两个分支的贡献, 用trajectory embedding 和 object embedding 加上两个额外的分支单独用来预测bbox

魔改复现

3.2. Auto4D-Uber(2021)

Auto4D: Learning to Label 4D Objects from Sequential Point Clouds

Auto4D: Learning to Label 4D Objects from Sequential Point Clouds

2021年1月,Uber首先放出来一篇自自己是如何做 auto-labeling的工作, 作者包括多伦多大学的 Bin Yang 大神和 后来创办Waabi 的 Raquel Urtasun

http://www.cs.toronto.edu/~byang/.

思路大体也是follow Coarse to Fine 的操作,只不过和waymo 不同,在refine的时候, 将目标的回归分为两个步骤,一块是目标的不变属性,例如尺寸,类型等,一块是目标的运动变化属性(位置,heading等)

Object Size Branch

  • 第一步也是通过uber自己的检测网络 + 跟踪算法 完成初步的 Init Trajectory 生成
  • 将bbox 扩大1.1倍,然后将点云抠出来放到局部物体坐标系内 (这个地方其实有个疑问,不管定位精度怎么高,将点云合起来后不可避免的肯定会出现点云的重影模糊问题,如果多帧点云是重影模糊的,如果回归正确的尺寸?
  • 将抠出来的点云 做一个 refine, 这边确认了 corner align 要优于center align

  • 然后将目标点云投影到BEV 视角下, 使用uber 自己的 2D CNN Detector 提取特征,回归size, 类别这类不变的属性。
Lidar BEV Encoder

Motion Path Branch:

  • 整个Motion branch的操作,都在世界坐标系下完成。

Path Observation:

  • 世界坐标系的时序点云,但是没有将时间信息保存在点云里面

Path Encoder:

  • 每一帧点云使用2D CNN 提取multi-scale feature maps
  • 然后提取两帧之间的差,motion wise feature
  • 将多帧的运动特征信息cat在一起,然后用一个1D-CNN 提取运动特征 (1D UNet)

个人更加认同Uber 的思路,先确定目标是什么类型,固定好全时序的尺寸。然后将问题转化为size-fixed motion refine problem,但是确定尺寸的时候不一定要全都移到目标的中心坐标系。 在waymo 和 Uber的方法中,各有优劣式,组合一下可能会更好。

3.3. MPPNet-MMlab-CUHK/MPI-INF(2022)

MPPNet: Multi-Frame Feature Intertwining with Proxy Points for 3D Temporal Object Detection

CUHK 的mmalb 和 马普所的史少帅大神,最近也发了一篇利用多帧来优化检测结果的, 虽然不是autolabeling的方法,但是在2阶段refine上也waymo/Uber 的思路也很类似,并且可以作为端到端优化,而不像waymo + Uber要经过多次操作,很新颖的提出Proxy - Point(代理点) 来表示一个目标,并且在时序的操作上加入了MLP-Mixer, group feature attention等技术, 更好的处理时序的数据。

加入全时序的信息,就可以拓展成auto-label的方法 。

整体操作如下:

(1)使用一个single - frame proposal network 来获得初始的 3d proposal trajectories.

  • 利用已有的 centerpoint/pointpillars,采用4帧点云聚合作为输入。
  • 为了关联目标,使用了一个speed prediction head,和centerpoint 预测xy 的速度不同, 本文使得速度方向和heading方向一致,通过速度去预测目标位置, 然后通过IOU 匹配
  • 经过第一阶段后:得到T-frame 的 3d proposal 和 时序的3d points region pooled from each frame t,作为2阶段的输入

(2)构建 proxy points, 在每个时刻t, 均匀在3d框内均匀采样N * N * N 个 proxy point, 这些点保持了和轨迹盒相同的位移

(3)Decoupled per-frame feature encoding,将Trajectory 通过motion encoding 和 Geometry encoding 提取特征并且相加,获得每一个trajectory 的特征。

  • 将目标点 和 proposal box 相减,得到difference between each object and 8corner+1center, 得到目标当前坐标系的值
  • 然后通过 set abstraction 在点云中提取局部特征
  • 为了提取目标的运动信息,将每一帧的prixy point,减去第一帧的目标的9个点(目标中心 + 8个角点)
  • 在运动信息里加入了一维度的time offset embedding e^t
  • 将目标的geometry features 和 motion features相加起来, 最后的特征 可以表示成:

(4)Grouping for multi-frame feature interaction

由于巨大的计算成本和GPU内存,在所有帧之间建立密集连接还是比较难负担的。 所以将较长的轨迹划分成成少数几个不重叠的组,每个组包含一个较短的子轨迹 (由于整个模型还是需要很大的显存, 如果可以将之前一阶段的网络训练好,冻结权重,可能后面的操作会容易点? )

(5)时序特征聚合

Intra-group feature mixing

参考了视觉的MLP-Mixer, 来进行不同帧的proxy points的特征聚合。

后续实验也证明了MLP mixing 要比attention mechanism 能更好的实现组内特性交互。

Inter-group feature attention

Inter group feature attention 可以有效的编码特征 和 传播全局全序列信息,提高局部的组间表示。上述组内特征混合 和 组间交叉注意力多次反复叠加,可以让轨迹逐渐意识到全局和局部上下文,从而从轨迹提取出更加精确的3d bbox 框

(6)3D temporal detection head with transformer

  • 利用 transformer layer 来解码,构建了一个learnable feature embedding E = R (1 * D) as query, 从 每一个 group feature Gi中 使用 multi - head attention
  • 参考了 Offborad Object detection, 将目标的proposal 轨迹通过一个 PointNet sub-network 来完成目标轨迹的特征提取。
  • 因此,检测头集成了group - wise feauter {E1,…, ES},通过特征拼接,分别从对象点和bbox的embedding,进行最终置信度预测和框回归。

4. 3d静态场景元素自动标注

我理解静态场景重建的自动标注,其实可以转化为建立高精地图的工作。 需要标注的元素包括: 车道线,路沿,斑马线,停止线,红绿灯等。如果需要做语义定位的话,还需要做一些类似灯杆,标识牌等元素的识别和矢量化。

4.1. SLAM建图/大规模点云语义分割

Ref: HDMapNet

其中的一种方式可以通过 多传感器slam 建图,然后通过点云地图的自动/人工标注, 构建局部的高精地图。

优点:精度比较高,步骤较为流程化。然后模型识别不准的,人工在点云地图上做一些修正。

缺点:想训练一个大规模的语义分割的网络,前期还是需要一定量的数据集,且分割的性能不一定能保证另外一个点是从语义分割后的点云,想得到矢量化的场景元素,也需要比较繁琐的后处理操作,这块在某一些场景下可能会引入较大误差。

自动化的步骤可以大概分为如下:

  • 通过多传感器SLAM 建图:

--> 可以构建点云 intensity based 的地图 (LOAM, Lego-Loam)

--> 或者通过Camera + Lidar fusion 构建rgb based 的彩色点云地图

  • 过一个目标检测网络, 去除动态的障碍物, 构建更加干净的点云
  • 然后可以将高精地图切块,类似于做成比如50m * 50m的点云方块, 训练一个大规模的城市场景语义分割的大模型来做点云的语义分割(RandLA-Net, KPConv等)
  • 再通过一些后处理的方法,将场景元素提取成矢量元素
  • 人工做一些质检,来确保地图和元素的生成质量。
Automatic labelling of urban point clouds using data fusion
Automatic labelling of urban point clouds using data fusion

4.2. HDMAPNet-清华Mars Lab

得益于最新的多相机BEV 的检测方法发展,Mars Lab提出了连续两篇自动化在车端实时构建高精地图的工作。

HdMapnet 和 VectorMapNet(升级版)

HDMapnet 将点云和HdMapNet做融合,构建了BEV 特征之后,搭了3个检测头(Semantic Segmentation 分支,Direction Prediction 分支, Instance embedding 分支 ,然后通过后处理再将矢量结果构建出来。

是一个提出端到端构建高精地图的,虽然精度可能没有办法用于auto-labeling, 后处理也比较重,但是却提供了一个非常好的思路.

代码中,点云只采用了当前帧的数据,相机采用了过去几帧数据(通过ego_motion 将多帧camera 的特征通过grid_sampler给cat在一起 )。 如果不考虑实车, 将前后多帧点云/图像特征拼接,我觉得可能精度能提升一个水平。

HDMapNet

Fusion BEV Encoding:

Decoder:

4.3. VectorMapNet-清华大学Mars Lab

希望能端到端的输出矢量地图,又有了升级版本 VectorMapnet.

  • VectorMapNet是一种端到端的高清语义地图学习方法。与以往的工作不同,它使用折线(polyline)来表示地图元素,并直接预测传感器观测的矢量化输出,而不需要地图光栅化或后处理
  • 联合建模地图元素和每个地图元素的几何之间的拓扑关系是一项具有挑战性的工作。利用折线作为基元来建模复杂的地图元素,并通过将该联合模块分离为两个部分来缓解这一困难:地图元素检测器和折线生成器
  • VectorMapnet 在nuscenes 上达到sota, 超过hdmapnet 14.2 MAP

本文的重点是提出了用polyline 来作为地图的基础元素,其实在人工标注的时候也是用的这种点集的形式。

VectorMapNet的整体结构

Map Element Detector & Polyline Generator

这个思路真的非常受启发:

不光点/anchor 可以作为query 来和BEV feature 做交互, 任何内容都可以作为query 和bev 特征做attention, 例如(折线, 圆,点集等), 相当于在网络中加入了基础检测元素的先验, 非常有利于端到端的检测和sparse的检测。

VectorMapNet 留了一个未来改进项, 时序信息的加入 和多帧之间的输出consistency, 我觉得如果能解决这个问题, 那真的可以作为场景重建的auto- labeling 的重要模块, 等代码开源了好好学习一下。

5. 3d目标 auto-labeling - 基于长时序激光雷达

5.1. Once Detected, Never Lost: Surpassing Human Performance in Offline LiDAR based 3D Object Detection (图森)

  • 整体框架和之前的Auto4D, 3DAL都是差不多的,分为base detector + MOT + Refine三个模块, 在细节的实现上优于前面的方案
  • Base Detector 用了FSA, 这个地方也可以用任何的其他检测器,或者多模型做ensemble.
  • Tracking 模块采用了 Immotal Tracker, 并且做了forward tracking 和 backward tracking, 然后再将正反匹配的两次轨迹去重和组合,这个地方的核心目的是尽可能得到完整的连续轨迹, 会引入一些FP, 不过没关系,后续可以优化
  • Track-Centric Learning 是这篇论文的核心,和前作相比,有三个核心点:

MIMO(Multi Input Multi Ouput): 3DAL 是Multi input Single output, 这个会造成一个问题就是前后的尺寸不连续, 人类标注员在标注的时候,一般都会选择整个物体序列中点云比较好的时刻,确定尺寸,然后确保全时序尺寸一致,这个标注在实际中也是非常重要的,如果时序尺寸不一致,对训练出来的结果尺寸前后容易跳变

动态静态不分类,前作中对于物体动态静态先做了分类,然后单独处理。本文中,觉得没有必要,反而减少了物体的多样性,阻碍了数据的泛化。比如物体低速运动,或者一个人转圈啥的。所以在流水线中统一处理,大大简化了流程 (不过这个点,我们在实操过程中发现,如果物体是静态的,定位比较准确的话,直接使用世界坐标系插值会更加准确,基本都可以达到0.9甚至0.95以上的IOU,如果refine容易让物体的IOU反而有一点下降)

设计了full sequence track iou来做轨迹的第一阶段匹配, 二阶段匹配再做轨迹内部的gt和proposal的关联,这样可以减少误匹配,鼓励更加高质量的IOU的Proposal作为正样本,并且具有时序连续性,让模型往整体轨迹最优的方向去做优化。

整体来说,效果能有大幅提升,实现上也更加简介高效,并且速度也比3DAL 快20倍(MIMO的设计和序列点云统一化坐标系的处理和特征提取模块,在训练可以用批处理并行)。

但是有一个点,无论精度多高的自动标注系统,还是需要人来做一些质检,才能用于量产中的项目。如果能在模型输出的时候,有一个flag, 能让质检员知道,哪些框需要检查,哪些是绝对OK的,可以大大增加质检的效率,否则质检员很多时间还是得看一下每个bbox的质量,是否贴边啊啥的,其实还是比较费时间的。微调一个框和重新标注一个框,其实速度差不多。

5.2. DetZero: Rethinking Offboard 3D Object Detection with Long-term Sequential Point Clouds(AI LAB)

  • 整个框架也是差不多的, 3段式, 检测 + MOT + Refine ,核心点在于强调上游的高召回率和跟踪,下游强调细致的高精度优化
  • 检测 采用了 centerPoint, 采用了多帧点云融合,TTA, Model Ensemble
  • MOT 也参考了Immotal Tracker 的一些思路, 前向和后向都做一次跟踪, 然后采用WBF来融合两次跟踪的框
  • 核心是接下来的refine模块, 将下游优化分为三个目标,形状优化(时序一致),轨迹优化(时序平滑),得分优化 (更容易筛选高质量框)

5.2.1. Geometry Refine

  • 将一个轨迹内的点云都转换到物体中心坐标系
  • Porposal to Point Encoding: 对每个点进行特征增强,加入每个点到bbox 6个面的距离 (这个地方参考之前的Lidar2阶段网络中的一些操作, 让模型知道点和框的关系,相当于把单帧的点云和框做了联合编码 )
  • 在所有点云中,随机选取t个样本, 每个样本有对应的256个随机选择的点
  • 每个点也是按上述 Proposal-to-Point Encoding 增强的
  • 用PointNet 给选取的T个样本提取特征,生成初始几何查询 Q_geo
  • 用PointNet 给全部的点云提取特征,得到 Key_geo 和 V_geo
  • 通过万能的 transformer来回归目标size(l,w,h)对应的embedding ,得到lwh

5.2.2. Position Refine

5.2.3. Position-aware Points Generation

对于第i个目标,随机从轨迹中挑选一个作为新的局部坐标系。然后将其他轨迹的所有框都转换到这个坐标系。

然后从每一帧选取随机固定的点,对于每个点,额外计算每个点到8个角点之间的距离,从而得到27维的特征向量。

便于训练,所有的对象轨迹都用零填充到相同的长度

这个点的两个随机操作非常重要,相当于做了数据的増广,一个是随机选择轨迹中的任意一个位置作为新的局部坐标系,一个是随机选取一些固定的点。

5.2.4. Attention-based Local-to-Global Position Interaction

  • 和geometry refine 中的query一样,Q_pos = Lx D,L代表轨迹长度,D代表特征,包含了 position-aware feature 和 confidence score
  • 用PointNet 提取整条的目标轨迹,得到 K_pos 和 V_pos, n_pos 代表点云的长度
  • Q_pos首先送到自注意力模块中,来捕获自身和其他模块之间的相对距离,此外,在每个查询的位置应用一维掩码来权衡自注意力
  • Q_pos 和 K_pos, V_pos 送到corss_attention模块中,对局部到全局上下文位置进行建模
  • 最后预测局部坐标系下面 dx, dy, dz的offset偏亮,以及theta 的航向角offset

5.2.5. Confidence Refine Module

  • 因为前面 3d detctor + offline tracking 会生成很多的3D框,可能很多是FP或者是低IOU的, 因此,引入了一个置信度参考模型(CRM),
  • 第一个是分类分支,通过更新分数来确定TP 还是 FP。如果预测 和gt 的IOU 低于一个值, 则为负样本,如果高于某一个值,为正样本,其它bbox没有影响
  • 第二个是IOU预测分支,预测回归到底有多少IOU。
  • 将两个分支的结果融合,得到最后的更新分数

通过三个模块的refine优化,在高IOU下的表现非常优化,且输出得分是和TP/PF和IOU高低挂钩的。 但是没有报告执行的时间,整体思路更加接近auto4d, 不过用transformer模块来做建模。

6. 3d目标 auto-labeling - 基于SAM的2次开发

基于强大的SAM, 在3d点云标注方向,也有很多很有意思的2创,尝试利用SAM强大的泛化能力,自动化的完成标注。

6.1. SAM3D: Zero-Shot 3D Object Detection via Segment Anything Model (百度)

  • 将点云做bev投影映射,转换成bev Image
  • 对于bev image做预处理,对于intensity啥的处理一下
  • 利用sam + mesh girds promts 完成语义分割
  • 将分割后处理, 得到2D bbox, 然后在通过点云,得到3d bbox

非常有意思的尝试,但是估计离实际使用还是有比较大的距离

效果不是特别好,且很多问题无法解决,比如树下站着几个人,bev下是无法标注的。

不过可以预见,基于sam的标注,在3d领域肯定会有更好的应用。

6.2. 3D-Box-Segment-Anything - (AI Lab)

实际试了一些,效果还可以,但是非常依赖于检测网络 VoxelNext的结果,这也就注定了这个在工业界肯定是不太够的,大量的框实际中还需要做很多调整。

但是sam这个潜力真的很大,在3d领域还需要一些优化和适配,大模型标注对于传统的手工标注一定是降维打击的。

6.3. Segment Any Point Cloud Sequences by Distilling Vision Foundation Models - Shanghai AI Lab

7. 3D去高精度地图 auto-labeling - 基于激光雷达

7.1. VMA: Divide-and-Conquer Vectorized Map Annotation System for Large-Scale Driving Scene (地平线 & HUST)

8. 3D 去高精度地图 auto-labeling - 基于纯视觉BEV

8.1. MV-Map: Offboard HD-Map Generation with Multi-view Consistency (复旦大学)

8.2. NeMO: Neural Map Growing System for Spatiotemporal Fusion in Bird's-Eye-View and BDD-Map Benchmark (华为)

9. 3D 场景重建预训练 - 基于视觉 Occupancy

9.1. Occ-BEV: Multi-Camera Unified Pre-training via 3D Scene Reconstruction(PKU)

9.2. scene as Occupancy(AI-Lab )

10. 3D 场景重建预训练 - 基于激光雷达

10.1. AD-PT: Autonomous Driving Pre-Training with Large-scale Point Cloud Dataset (AI-Lab)

10.2. ALSO: Automotive Lidar Self-supervision by Occupancy estimation (法雷奥)

11. 3D场景重建预训练 - 基于Nerf

11.1. StreetSurf: Extending Multi-view Implicit Surface Reconstruction to Street Views (Shanghai AI Lab)

11.2. Street Gaussians for Modeling Dynamic Urban Scenes

Street Gaussians的核心在于其创新性的应用了高斯分布来表示城市中的动态物体和场景。这种方法不仅简化了复杂环境的理解,而且极大地提升了对实时交通情况的模拟与预测能力。通过建立基于高斯模型的空间占用表示,项目能够有效地捕捉道路环境中物体的位置概率分布,从而为自动驾驶车辆、城市规划以及交通管理提供了强有力的工具。论文中详细的算法描述和实验验证了此方法的有效性和实用性。

 

参考文献

https://zhuanlan.zhihu.com/p/636622001

https://zhuanlan.zhihu.com/p/533907821

真值系统与数据分析(东方中科)-智能驾驶测试-东方中科

ASEva V2X真值系统_汽车测试技术__汽车测试网

探索城市动态之谜:使用Street Gaussians构建智能交通未来-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/48545.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

exo 大模型算力共享;Llama3-70B是什么

目录 exo 大模型算力共享 exo框架的特点 如何使用exo框架 注意事项 结论 Llama3-70B是什么 一、基本信息 二、技术特点 三、性能与应用 四、未来发展 exo 大模型算力共享 exo框架的特点 异构支持:支持多种不同类型的设备,包括智能手机、平板电脑、笔记本电脑以及高…

java之log4j反序列化

1 审计思路 以Log4j漏洞审计为案例,谈一谈审计如何快速的锁定通用型漏洞 1.1 确定源码是否引用了漏洞所属的开源组件 该项目是一个maven项目,直接在Pom文件中搜索log4j的jar包及版本引用问题,如果该版本受影 响,进入下一步 1.2 寻找漏洞的入口 1.3 逐个排查入口是否有效…

[MySQL][深入理解隔离性][上][MVCC]详细讲解

目录 0.铺垫1.初识MVCC2.三个记录隐藏列字段1.是什么?2.示例 3.undo日志4.模拟MVCC5.思考 0.铺垫 在RR级别的时候,多个事务的update,多个事务的insert,多个事务的delete,是否会有加锁现象? 现象结果是&…

[计算机基础]一、计算机组成原理

计算机组成原理的考察目标为: 1. 掌握单处理器计算机系统中主要部件的工作原理、组成结构以及相互连接方式。 2. 掌握指令集体系结构的基本知识和基本实现方法,对计算机硬件相关问题进行分析,并能够对相关部件进行设计。 3. 理解计算机系统的…

MVCC数据库并发控制技术

一、引言 MVCC(Multi-Version Concurrency Control)是一种广泛使用的数据库并发控制技术,它允许数据库读操作和写操作并发执行,而无需加锁整个表或行,从而大大提高了数据库的并发性能和吞吐量。MVCC主要被应用于支持事…

SAP Fiori 实战课程(二):新建页面

课程回顾 上一课中,利用Visual studio Code 新建、并运行了一个Demo工程。可以实现对项目的启动,启动后进入一个List清单。 那么本次课程的目前就是在上一节Demo的基础上,从零开始新建一个完整的页面。实现从首页清单,选择行后,鼠标点击,进入下一个页面。 准备工作 在开…

【BUG】已解决:ModuleNotFoundError: No module named ‘tensorflow‘

已解决:ModuleNotFoundError: No module named ‘tensorflow‘ 目录 已解决:ModuleNotFoundError: No module named ‘tensorflow‘ 【常见模块错误】 【解决办法】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff…

Java | Leetcode Java题解之第274题H指数

题目&#xff1a; 题解&#xff1a; class Solution {public int hIndex(int[] citations) {int left0,rightcitations.length;int mid0,cnt0;while(left<right){// 1 防止死循环mid(leftright1)>>1;cnt0;for(int i0;i<citations.length;i){if(citations[i]>mi…

新版GPT-4omini上线!快!真TM快!

大半夜&#xff0c;OpenAI突然推出了GPT-4o mini版本。 当我看到这条消息时&#xff0c;正准备去睡觉。mini版本质上是GPT-4o模型的精简版本&#xff0c;没有什么革命性的创新&#xff0c;因此我并没有太在意。 结果今天早上一觉醒来发现伴随GPT-4o mini上线&#xff0c;官网和…

Linux 12:多线程2

1. 生产者消费者模型 生产者消费者模型有三种关系&#xff0c;两个角色&#xff0c;一个交易场所。 三种关系&#xff1a; 生产者之间是什么关系?竞争 - 互斥 消费者和消费者之间?竞争 - 互斥 消费者和消费者之间?互斥和同步 两个角色&#xff1a; 生产者和消费者 一个交…

【07】LLaMA-Factory微调大模型——微调模型导出与微调参数分析

上文介绍了如何对微调后的模型进行使用与简单评估。本文将介绍对微调后的模型进行导出的过程。 一、llama-3微调后的模型导出 首先进入虚拟环境&#xff0c;打开LLaMA-Factory的webui页面 conda activate GLM cd LLaMA-Factory llamafactory-cli webui 之后&#xff0c;选择…

C#开发:PowerDesigner建表和Navicat导入数据

一、打开Powerdesigner&#xff0c;新建一个模型&#xff0c;点击ok 二、用工具面板拖拽出一个数据表 &#xff08;如果没有工具面板&#xff0c;请在如下操作中开启&#xff09; 三、双击刚刚的拖拽出来的表&#xff0c;设计表的字段&#xff0c;可以添加注释说明 【备注】…

《Windwos API每日一练》12.1 剪贴板的简单用法

本节我们讲述剪贴板的简单实现方法。 本节必须掌握的知识点&#xff1a; 剪贴板数据的标准格式 内存分配 把文本传到剪贴板 从剪贴板中取得文本 打开和关闭剪贴板 第76练&#xff1a;剪贴板的简单用法 12.1.1 剪贴板数据的标准格式 Windows支持各种预定义的剪贴板格式&#…

Google Chrome 浏览器在链接上点右键的快捷键

如今&#xff0c;越来越多的软件都懒得设个快捷键&#xff0c;就算设置了连个下划线也懒得加了。 谷歌浏览器右键 > 链接另存为... 和 复制链接地址 的快捷键 (如图)

爬虫自己做的

1.urllib 1.1基本使用 1.2 下载&#xff08;图片&#xff0c;页面&#xff0c;视频&#xff09; 1.3 get 1.3.1 quote 中文变成对应uncode编码 当url 的wd中文时 quote是将中文变成对应uncode编码 然后拼接成完整的url 1.3.2urlencode方法 wd有多个参数 1.3.3ajas get实例 …

Connecting weaviate with langflow across docker containers

题意&#xff1a;在Docker容器之间连接Weaviate与Langflow 问题背景&#xff1a; I am trying to build a local RAG application using Langflow. For my vectore store, I want to use a local Weaviate instance, hosted in a separate docker container on the same netwo…

KAFKA搭建教程

KAFKA搭建教程 期待您的关注 KAFKA学习笔记 帮助更多人 目录 KAFKA搭建教程 1.下载Kafka并解压 2.添加环境变量 3.修改 server.properties 文件 4.将kafka复制到其它节点 5.修改node1、node2节点的broker.id 6.将master的环境变量同步到node1、 node2 7.启动zookeeper…

昇思25天学习打卡营第21天|RNN实现情感分类

Mindspore框架循环神经网络RNN模型实现情感分类 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;一&#xff09;数据集准备 Mindspore框架循环神经网络RNN模型实现情感分类|&#xff08;二&#xff09;RNN模型 Mindspore框架循环神经网络RNN模型实现情感分类|&…

PostgreSQL 中如何解决因大量并发删除和插入操作导致的索引抖动?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何解决因大量并发删除和插入操作导致的索引抖动一、理解索引抖动二、索引抖动的影响三…

nginx通过nginx_upstream_check_module实现后端健康检查

1、简介说明 nginx是常用的反向代理和负载均衡服务&#xff0c;具有强大并发能力、稳定性、丰富的功能集、低资源的消耗。 nginx自身是没有针对后端节点健康检查的&#xff0c;但是可以通过默认自带的ngx_http_proxy_module 模块和ngx_http_upstream_module模块中的相关指令来完…