1. 4D-Label技术简介首先介绍一下4D-Label技术。4D主要就是3D空间和时序。以BEV为代表的感知技术典型的特征就是输出的空间从2D的透视图像转换到了3D空间。原先都是在图像空间里输入的是图像输出的也是2D图像像素空间的信息也就是所见即所得。但BEV感知技术输入的是2D的图像或者是2D的video输出的是3D空间的感知结果通常是以车体坐标系之下的一些3D静态或者动态的结果。对于BEV感知真值数据的生成是非常关键的环节因为标注的空间需要从2D透视图像空间转换到3D空间。其中考虑到时序动态物体需要用到一项很重要的技术就是4D重建技术。这次技术分享涉及到的一些感知任务大致可以分为三类第一类是静态感知。静态感知的输出形式实际上越来越像局部的高精地图包含物理层逻辑层以及半动态层。其中物理层主要是路面连续要素如车道线、路面离散要素如路面标识符空中静态要素如灯牌半动态层主要是像锥桶这类容易被移动的物体。逻辑关系主要是车道链接关系以及道路元素和交通灯的关联关系。动态感知主要是运动车辆和行人包含检测、跟踪、预测此外还有一些速度、加速度的属性现有的一些端到端的感知框架可以直接在同一个网络完成以上所有感知输出。还有一类任务就是通用障碍物感知主要是针对场景中的非白名单的物体目前业界主流的的感知任务就是Occupancy和Ocupancy Flow这类任务的基本原理是将空间划分成规则的voxel预测每个voxel的被占据情况以及每个voxel的速度本质上是通过几何的方法而非语义的方法实现对通用物体的识别。今天我们主要就是针对这三类任务来介绍一些标注方案。4D-Label整体的技术路线无论是面向采集场景的多模方案还是面向量产数据的纯视觉方案都是一致的。整体的思想就是首先是采集数据之后进行点云或者Object级别的4D重建。在得到4D重建空间的基础之上采用人工的方式通过 3D 标注工具进行标注和质检之后完成真值数据的发版。随着人工标注数据越来越多可以在云端训练一些大模型用于辅助标注提升标注效率降低标注成本。当云上的数据规模累积到一定的程度云上模型的性能会大幅度提升。此时大部分的标注任务都可以实现自动化标注。此外为了进一步提升标注的质量和自动化我们会设计一些自动质检的策略。比如说采用多传感器的交叉验证在2D图像上利用大模型的预刷得到一些标注结果同时和3D空间的标注结果进行对比去除差异较大的数据只保留一致性好的标注数据作为真值从而保证真值数据的质量。通过大模型预刷目前我们可以通过这种策略可以节省80%以上的标注人力甚至有一些像动态物体的标注可以实现完全自动化。4D标注涉及到的硬件基础首先就是传感器的布局。在L2以上的自动驾驶方案里面通常采用周视环视的布局方式构成了两层360度成像范围。如果是面向采集场景的采集车一般会在车顶安装Pandar128 Lidar用于标注。在得到改装的车辆之后还要进行传感器之间的外参标定和时间同步用来实现不同传感器之间数据的时空一致性。涉及到的外参标定主要有Lidar和camera之间的标定以及GPS、IMU和Vcs坐标系之间的标定。标定的方式可以分为两种一种是工厂标定一种是在线标定。工厂标定是在出厂时进行的一次比较全面和系统的标定通过特定的标注工具得到高精度的标定结果但是无法频繁地进行标定。在线标定是利用一些端上的感知结果进行外参标定在线标定可以高频次进行能够有效地保证传感器精度的下限例如当传感器因为抖动而发生位置变化的时候在线标定可以获取最新的标定结果。在实际过程中这两种方式我们都会使用工厂标定得到传感器的外参之后通过在线标定做实时或者定时更新。在得到外参标定之后还需要进行多传感器之间的时间同步用于保证不同传感器之间准确的数据的关联关系。在我们方案里采用的是11V图像同步曝光时间偏差小于5ms。另外介绍一下我们的方案里面涉及到的一些数据格式的定义这里涉及到两个基本的数据概念。第一个数据概念是Clip。Clip是一段数据视频可以是固定的长度或者固定的空间距离。比如说在量产的时候可以设定Clip的长度是15s。在采集模式下可以采用空间距离限制它为300m的局部片段。每个clip都包含多个传感器的数据。例如在采集模式下clip包含Lidar点云数据11V的图像数据以及GPS、IMU、轮速计等所有传感器的数据。第二个数据概念是Site。Site是一个空间的物理坐标点可以理解成是一个空间的GPS点。这个空间位置中具有唯一的特性一个Site可以包含多个经过它的Clip。举个简单的例子把路口中心点定义成一个Site就可以通过GPS范围来筛选出所有经过该路口的Clip数据。2. 面向采集场景的多模标注方案上面是一些4D-Label的简单的技术简介。接下来我会介绍两种方案一种是面向采集场景的多模标注方案另一种是面向量产的纯视觉方案。多模标注方案在量产感知传感器基础之上增加了Pandar128雷达。面向量产的标注方案主要是采用量产传感器采集的数据进行标注我们的方案是纯视觉感知因此只用图像信息结合惯导、轮速计等进行标注。对于一些有Lidar的量产方案可以将Lidar利用起来以减少动态标注的难度。首先是多模的方案。我们按照这几种任务分别来介绍一下标注的过程我们按照静态、动态和通用障碍物三种任务分别介绍一下多模标注方案。首先是路面静态要素的标注。路面静态要素的标注本质上是对路面进行建模也就是局部的建图。在我们的方案里面采用了单趟重建和多趟聚合的方式。这种方式一方面可以提升建图效率平摊标注成本另一方面也能保证建图的完整性提升召回以及远距离的真值。介绍一下具体方案首先利用Pandar128采集的数据结合IMU和GNSS数据做单趟重建得到单趟的点云地图每一个clip都对应一个点云地图之后把位于同一个Site的所有clip的点云地图收集起来并建立clip之间的关联关系确定联合优化的范式将多个clip的点云地图进行聚合得到完整的局部地图。在我们的方案里面需要同时满足城区、高速、还有泊车三个场景的建图。这些环境都存在非常大的挑战针对单趟局部建图我们做了一些的优化。例如高速场景的初始化很容易因为速度过快、环境单一、特征约束不足而失败。我们方案引入了语义信息来提供更加准确的Lidar关键点的对应关系同时也采用轮速计和GNSS这样的多传感器的数据来辅助初始化。经过这些优化之后可以将初始化的成功率提升到98%以上单趟的重建精度可以达到厘米级和高精度的Novatel进行评测。在得到单趟重建之后为了提升局部地图的完整性提升路面元素的召回需要对多趟clip重建的结果进行聚合。多趟聚合的核心点在于位置重识别也就是SLAM里面的回环检测。回环检测的关键在于提供feature层面的对应关系。但是因为这个场景里面比较单一像高速场景或者是路口场景能够有效识别的特征并不是很多容易导致回环检测失败或者造成比较大的偏差。针对这些问题我们对聚合做了一些优化首先和单趟重建一样引入了一些语义信息能够得到一些路面和标识牌这些显著的特征利用语义信息引导进行匹配另外也采用了一些learning的方法得到的一些关键点能够在一些极端环境下提供更鲁棒的匹配结果。通过这两种策略可以使多趟重建的成功率达到90%以上。下面这个demo就是一个全局聚合之后的局部地图的效果可以看到由于建图的精度足够高lidar intensity图上路面的元素结构特别清晰。Lidar的反射率会对材质敏感当遇到特殊材质、路面破旧或者有积水的情况会导致intensity图上路面要素不清晰难以识别另一方面Pandar128的intensity本身就需要标定同一台Lidar传感器在跨天或者跨地点的时候会出现Intensity不稳定的情况。为了提升标注的召回我们的方案里引入了语义图以及纹理图用于提供更多的信息见上图。纹理图主要是通过Lidar和视觉的外参标定实现了Pixel-level的融合最终得到路面纹理的重建结果纹理图像能提供的信息非常丰富理论上只要具备行驶条件的场景下的数据纹理图像都能进行标注。和纹理图一样语义图是用采用2D图像的感知结果通过Lidar-camera的融合得到的引入感知结果可以处理一些弱纹理的情况。在标注的时候我们将三种不同模态的数据投影到一个平面上得到一幅BEV空间的大图通过人工标注的方式得到真值数据。由于投影的过程保留了高度信息因此标注的结果可以利用这些高程信息得到3D空间的数据。当积累一定的量的数据之后我们利用这些数据训练一个云端大模型用于辅助标注。模型采用了我们自己的一篇工作MapTR输入是三种模态的大图的信息输出的直接是实例级别数据。每一条车道线都会表示成有序的点列这样就节省了很多的后处理。这些标注的结果通过简单的处理就可以得到训练样本。后续我们也会尝试采用MapTR直接标注逻辑层。这是我们通过多模的方案做的一个标注案例。这个案例里面有三段clips左上角不同颜色的轨迹代表不同的clips。通过三个clips的聚合保证了路口的完整性。因为在有些路口比较大的情况下单趟的采集和重建不能保证这个路口能被完整的重建出来。通过多个Clip聚合的方式可以保证路口的完整性同时也能满足远距离感知的真值需求。此外通过聚合的方式也可以平摊clip的标注成本。因为聚合之后一张BEV大图只需要标注一次就可以生成所有clip的真值。我们采用将标注的真值投影到图像空间计算重投影误差的方式对多模的真值进行评测。我们的方案可以做到重投影误差小于3个像素。我们的方案相较于HDmap定位生成真值的方式在多个方面具有优势。首先是可扩展性强。图商的高精地图在建图的时候会采用价格高昂传感器成本很高可扩展性比较差体现在现在高能地图的覆盖率并不是很高尤其是在城市地区。我们的方案虽然是基于采集车但是也需要考虑采集车队的可扩展性所以我们采用的是一般精度的传感器。另外图商的地图在建图主要目的是用来做定位导航因此需要做完整的建图而4D-Label的首要目的是用来做标注感知数据首先要考虑的是质量、数量和多样性因此所以不需要做完整的地图重建甚至不需要做地图的维护只需要在一些区域里面做采样性地重建就能够满足真值多样性的需求。这是第一个不同点第二点不同的是图商的地图受鲜度的影响地图更新比较慢。这样会导致在生成真值的时候需要投入大量的人力资源去识别地图和实际场景不一致的问题。而4D-Label大部分情况都是即建即用不需要考虑鲜度的问题。此外定位精度也会存在差别。现在基于视觉感知的的高精地图定位方法横向误差大概是在10-20cm左右纵向误差可能会到30-40cm以上。这样的精度偏差已经大于一根车道线没有办法满足真值精度的需求。而4D-Label这种方法不需要考虑全局的定位精度只需要保证局部的里程计精度所以它的精度会比较高。横纵向误差都能够到10cm以下。这就是图商HD Map和4D-Label的一些对比。总而言之4D标注的首要目标是满足感知的真值需求所有的方案设计都应该从围绕满足真值数据的数量、质量和多样性。刚才讲的是行车。在泊车场景下的标注底层的建图方案基本一致。唯一的区别在于地库泊车场景下没有GNSS信息无法采用多趟重建全局聚合的方式。因此在泊车场景下我们采用全场景建图的方式将采集的数据进行完整的地图重建。针对建图精度提升的优化策略与行车也基本相同主要是通过Lidar-seg语义的信息做了一些约束。泊车场景的重建的精度能够达到4-5cm。我们主要是通过人工构造回环的方式进行评测。在标注的时候我们也开发了相应的预刷大模型。像地库位点、限位器、库位角点还有墙壁的检测现在都是通过大模型预刷的方式来进行。以上介绍的是路面的静态要素的标注接下来介绍动态物体的标注。动态物体的标注采用的Lidar视觉后融合的方案。主要的过程是首先有一个Lidar检测的大模型对输入的Pandar128的点云数据进行感知得到每帧点云上的3D物体的检测框。之后采用传统的卡尔曼滤波的方式对不同帧之间感知结果的跟踪得到每个物体的跟踪结果从而可以获取每个物体在时序上的一条完整轨迹。通过利用Lidar SLAM获取的自车轨迹可以将每个运动物体投射到全局坐标系之下从而得到全局的轨迹。之后对这些运动物体的轨迹做进一步的优化比如说轨迹的平滑性还有动力学约束能够得到一些更加平滑和准确的轨迹。得到运动物体的轨迹之后就可以得到其所有信息包括track ID预测的信息速度和加速度等属性。拿到这些信息之后就可以生成动态感知任务的真值像检测、预测还有端到端直接估计速度、加速度的属性。4D标注过程在云上进行的最大的优势就是可以利用未来的信息来做标注。也就是说一个运动物体可以用其未来的信息来辅助当前的标注也因此能够得到比较高的一个精度或者召回。我们前面讲到视觉和Lidar之间会有时间的同步而视觉11V的图像是同时曝光的它和Lidar之间的扫描会存在一个时间偏差。利用时间同步的信息和轨迹信息可以把物体的运动信息插值到任何一个时刻从而得到每个时刻的真值。例如当某些Lidar帧上出现漏检的情况可以通过时序轨迹差值的方式补充在该帧上的结果。为了进一步提升真值的质量我们采用2D预刷大模型的方式和3D插值的结果进行对比实现自动质检。只有3D投影的结果和2D有比较高的overlap才会被当作高质量的真值保留下来否则会被丢弃掉。这样做并不会影响真值的的效果因为检测任务中每个训练样本是物体的object而不是一幅图像。所以即便在同一个样本里一幅图像或者一帧点有部分的object没有被完全准确标注出来也并不影响最终的训练任务。一个时刻的图像如果能保证里面有60%-70%的真值是准确标注的就能够满足模型训练的需求。这种投影的方式还有一个用处就是将2D感知的属性赋予3D标注结果例如车辆的车门开合、车灯颜色等很难通过Lidar识别的信息可以通过2D图像获取。接下来介绍其它静态要素的标注驾驶场景里面的红绿灯、交通牌和锥桶。这些物体的标注方案和动态物体基本是一致的主要区别在于两点3D空间bounding box的获取方式以及跟踪方式。在这里我们以锥桶的方案为案例进行介绍。我们的主要的路线首先是有一个Lidar分割的大模型利用Lidar的语义信息提取锥桶的潜在3D proposal但这里面可能会存在大量的噪声之后利用时序的信息对2D锥桶检测结果进行跟踪和关联最后利用2D锥桶和3D-proposal做关联去除一些噪声。可以看得出来最终的标注方案实际上是比较依赖于2D锥桶检测大模型它的准召率也依赖于2D锥桶大模型。最后通过2D和3D交叉验证的方式得到锥桶的标注结果。我们的方案可以实现锥桶标注的准召率高于95%测距误差50m范围之内小于5%。这个demo展示了两个场景下的一些真值标注的效果一个是泊车场景下一个是行车场景下。对于一些2D检测出来但是3D缺少的情况可以采用标志为 ignore 的方式不参与训练。最后介绍一下通用障碍物的自动标注其实就是驾驶里面的Occupancy和Occupancy flow的感知任务。Occupancy反映了场景中动静态物体的占据情况它将空间划分成均匀的体素voxel,有物体占据的地方标志为1没有物体占据的地方标志为0。此外每个voxel还有一个速度的矢量信息表示voxel的运动情况即Occupancy flows。Occupancy和Occupancy flow实际上是对场景进行4D重建它主要的优势就是可以识别场景中的一些通用的、非白名单的障碍物像一些散落的石块、散落的不规则物体、还有像宠物、逆行车等。现有的Occupancy也有一些真值生成方案还有一些公开数据集今年CVPR举办了Occupancy的竞赛也发布了数据集。但是现有的这些方案主要的问题在于过多地依赖了语义信息例如在将场景分成动态和静态的时候会通过3D检测的方式来进行的这就引入很强的语义信息。实际上在真值生成过程中过于依赖白名单物体就会导致实际上生成的真值并没有办法真正发挥通用物体检测的本初目的。针对这种情况我们对Occupancy的方案进行了一些改进。主要思路是在整个过程中尽量减少对语义的依赖。在动静态分离的时候并不是依赖于白名单信息而是利用几何信息进行运动分割。分割完之后将静态场景和动态场景分而治之静态采用前面介绍的静态语义建图的方式来得到静态的点云动态的话主要采用Scene Flow或者ICP的方式来进行动态点云的配准最终得到整个场景的4D点云。同时在生成每帧图像的时候我们也会做图像和3D结果的cross check最后来生成真值。下面是一些案例这个场景里面有很多的障碍物像摆放的不规则、临时的红绿灯里面还有只宠物狗、行人推的婴儿车。像这只宠物狗能够比较好的识别出来。还有一些不规则的像放在十字路口的临时红绿灯也能够比较好的识别出来。我们针对Occupancy真值的性能做了一些定量的评测。针对50cm×50cm这样的小物体准召率是高于92%。3. 面向量产场景的纯视觉标注方案接下来我介绍一下面向量产场景的纯视觉标注方案。纯视觉的标注方案主要是利用视觉加上一些GPS、IMU和轮速计传感器的数据进行动静态标注。当然面向量产场景的话不一定非要是纯视觉有一些量产的车辆里面会有像固态雷达AT128这样的传感器。如果从量产的角度做数据闭环把这些传感器都用上可以有效地解决动态物体的标注问题。但是我们的方案里面是没有固态雷达的。所以我们就介绍这种最通用的量产标注方案。纯视觉的标注方案的核心在于高精度的pose重建。我们采用Structure from motion (SFM) 的pose重建方案来保证重建精度。但是传统的SFM尤其是增量式的SFM效率非常慢计算复杂度是O(n^4)n是图像的数量。这种重建的效率对于大规模的数据标注是没有办法接受的我们对SFM的方案进行了一些改进。改进后的clip重建主要分为三个模块1利用多传感器的数据GNSS、IMU和轮速计构建pose_graph优化得到初始的pose这个算法我们称为Wheel-Imu-GNSS-Odometry (WIGO)2图像进行特征提取和匹配并直接利用初始化的pose进行三角化得到初始的3D点3最后进行一次全局的BA (Bundle Adjustment。我们的方案一方面避免了增量式SFM另一方面不同的clip之间可以实现并行运算从而大幅度的提升了pose重建的效率比起现有的增量式的重建可以实现10到20倍的效率提升。上图展示了这就是刚才介绍的两个重要模块WIGO和Parallel SFM。第一个是多传感器融合算法提供初始化的pose第二个是并行的SFM重建算法。WIGO的Relative Translation Error (RTE) 指标能到2.5%Relative Rotation Error (RRE) 能到0.8deg/100m。引入视觉观测之后Parallel SFM的 RTE 指标可以降低到0.5%RRE指标可以降低到0.2deg/100m。所有的指标都是和Lidar Odometry的结果进行比较。在单次重建的过程中我们的方案也做了一些优化。例如我们采用了Learning based featuresSuperpoint和Superglue一个是特征点一个是匹配方式来替代传统的SIFT关键点。用学习NN-Features的优势就在于一方面可以根据数据驱动的方式去设计规则满足一些定制化的需求提升在一些弱纹理以及暗光照的情况下的鲁棒性另一方面可以提升关键点检测和匹配的效率。我们做了一些对比的实验在夜晚场景下NN-features的成功率会比SFIT提升大概4倍从20%提升至80%。得到单个Clip的重建结果之后我们会进行多个clips的聚合。与现有的HDmap建图采用矢量结构匹配的方案不同为了保证聚合的精度我们采用特征点级别的聚合也就是通过特征点的匹配进行clip之间的聚合约束。这个操作类似于SLAM中的回环检测首先采用GPS来确定一些候选的匹配帧之后利用特征点以及描述进行图像之间的匹配最后结合这些回环约束构造全局的BABundle Adjustment并进行优化。目前我们这套方案的精度RTE指标远超于现在的一些视觉SLAM或者建图方案。这张slide展示的是一个site的重建案例。左边是Paralle SFM重建的结果右图是稠密点云的重建结果。稠密点云的重建用的是传统的MVS的方案但是结合了语义信息。从右侧的重建结果可以看到重建出来的语义点云因为没有Lidar和camera跨传感器之间的时间同步及传感器抖动的问题就会非常准确甚至直接可以在点云上直接标注车道线分割。需要说明一下的是我们重建稠密点云主要目的是来验证一下SFM重建的精度。在实际的标注过程中并不会做全场景的稠密点云重建。MVS逐像素的重建重建非常耗资源成本非常高昂。但是重建出的点云大部分是非兴趣区域。为了节省成本提升标注效率针对不同的感知任务我们会设计不同的标注方案。首先介绍一下路面要素向车道线、路沿、路面标志等感知方案的真值标注方案。路面静态要素标注的核心在于3D路面的重建。我们重建方案主要是在SFM的基础之上用Nerf进行路面重建。我们将路面采用 Nerf 进行表达在进行Nerf查询的时候输入BEV空间的坐标点经过编码之后输入到对应的MLP最后输出该点的高度、RGB以及语义结果。在Nerf初始化的过程中我们采用Parallel SFM重建提供两类信息一类是每幅图像对应的相机的pose信息另一类是一些重建的稀疏的3D点。相机的pose点通过外推可以得到路面的初始3D形状用于作为路面高度的初始化。Nerf训练的监督信息主要是两类一个是RGB另一个是2D语义图。其中语义信息可以减少弱纹理的影响。训练的过程也是是一个查询的过程。对空间中的每一个点送到Nerf里面会得到一些返回的高度值返回的RGB值以及语义值。获取到这些信息之后可以根据SFM提供的pose投影到不同的2D透视图像和语义图像空间中形成监督loss对Nerf进行优化。Nerf收敛之后同样执行一遍查询过程便可以得到重建的3D路面结果。这是重建的一个局部Site的效果。左边这张图是由多个clips构成每一条不同颜色的轨迹线对应一条clip。通过多个clips聚合可以得到完整的十字路口的重建效果。为了验证重建的精度我们把重建的结果投影到原图上可以看到投影的一致性非常高。从视觉重建出的结果没有异源传感器之间抖动的影响投影到原图和2D的语义分割结果基本都能对得很齐。我们对路面重建的结果做了一些简单的评测计算了车道线的重投影误差精度可以达到误差小于3个像素。右图是一个局部的放大图可以看出一些重建细节。从图中可以看到Nerf重建出来的路面的字体都是清晰可见。重建细节已经非常精致在这上面来做标注的话标注的效率也会得到极大的提升。另外展示的一个案例是一个带有坡度的路面的重建。这个坡度是一个重庆的数据这个坡度大概在10米左右。通过Nerf重建方案也能够比较好的恢复真实的路面几何。右侧是一幅重建的高程图从蓝色到红色表示高度依次增加。可以看到整个坡度中间是比较矮的两边是比较高的也能反映出重建结果的合理性。有了高度信息之后路面斜坡上的标注的车道线能够和图像上的车道线完美对对齐右下侧的重投影结果印证了这一结果。左边这张图展示的是把Nerf重建的结果和卫星图的对比效果。可以看到整体的空间位置和形状上也都是非常吻合的。标注的初始阶段我们将路面重建结果导入到标注工具中进行标注累积到一定数据量之后可以训练云端大模型进行辅助标注提升标注效率。接下来我们再介绍一下其它静态要素的标注例如交通牌、红绿灯和锥桶的标注。这三类物体的标注方案基本是一致的在这里我们以交通牌为例介绍一下这些静态要素的标注方案。标志牌的真值生成和路面一样也是依赖于Parallel SFM提供的相机的初始pose和初始的3D点。与此同时我们采用2D检测或者Segment Anything Model (SAM) 对在2D图像进行处理得到交通牌的角点。需要注意的是获取角点的方式会比检测结果更加贴合交通牌举个简单的例子一个矩形的标识牌投影到图像上将会是一个多边形传统的2D检测方法无法完全贴合或导致重建存在偏差。利用Parallel SFM提供的相机pose以及3D稀疏点我们可以很容易的3D-2D的对应关系以及2D时序上的跟踪关系之后可以构造三角化的优化范式通过调整3D空间中交通牌角点的位置和朝向通常还需要确保交通牌的矩形约束使得角点在2D图像空间中的重投影误差最小。这是一个标志牌的重建的结果投影到原图的效果。可以看到投影下来它和自车的运动基本上是完全自洽的不会因为车辆抖动而存在较大的偏差多模的方案会存在非常明显的抖动的情况。这也说明了交通牌的3D重建结果和相机pose的恢复都是非常准确的。右面的图是标志牌的重建结果在3D空间中的一个可视化结果。把3D的标志牌和3D稀疏的点放在一起可以看到贴合度是非常好的。对于纯视觉重建方案我们主要通过两种方式进行评测一种是评估pose的指标例如以Lidar odometry为真值评测RRE和RTE指标另一种是通过计算重投影误差进行评估。前者能够评测重建的pose精度和尺度的准确性后者能够评测pose精度和3D重建结果的准确性。用这两个评测方式能够比较合理地对纯视觉重建方案的性能进行评测。我们这种云端纯视觉重建的方案相比较于目前业界主流的视觉众包建图方案有更高的重建精度。与多模的方案相比在精度上完全可以做到多模的精确水平。纯视觉的动态标注方案是非常有挑战性的尤其是单目的纯视觉方案最大的挑战性在于动态物体的重建因为运动物体是不符合传统3D多视图几何假设的所以很难通过传统的方法进行重建。业界的一些单目周视视角之间的overlap较小测距的算法主要是通过三角测距需要很强的路面几何假设、真实的物体尺寸以及准确的相机pose。真实场景中很难满足的这些假设导致测距精度受限能满足的场景也受限无法用来做真值的生成。我们采用了采用了一种大模型轨迹优化的的方式进行纯视觉的动态物体的标注。首先我们会在云上训练一个容量更大、性能更高的BEV 3D检测的模型。这个模型输入的是11V的图像输出的是动态物体3D BBox检测结果。利用这个检测结果结合自车提供的pose信息就可以走前面介绍的多模标注方案将动态物体投射到统一的全局坐标系之下进行时序跟踪和轨迹优化最后来生成检测、跟踪、预测以及各种属性的真值。与多模的方案相同优化后的3D检测结果会投影到对应的图像上和2D检测大模型的效果进行交叉对比实现自动质检同时也可以获取更多的属性。我们从几个方面来解释这套方案的合理性1虽然视觉大模型的测距精度很难达到Pandar128 Lidar检测的效果但是这两种模型的真值纯视觉动态标注生成的真值我们称为伪真值对于端上模型的提升性能是接近的这个我们已经在实践中进行了验证2云上模型具备更好的跨车泛化性这就意味着可以通过少量的采集车维护这个大模型来满足所有量产车的伪真值需求。这是我们纯视觉动态标注方案生成的真值的效果。从demo中可以看到生成的轨迹非常稳定真值的有效的感知范围是150m测距的误差小于5%AP大于90%同时我们的方案支持不同视角个数5v/6v/7v/11v自由切换。我们的方案目前已经在量产中得到应用。对于纯视觉的通用障碍物检测也就是Occupancy感知我们也做了一些探索。我们现在主要是采用Vidar的方案来进行标注首先通过单目depth估计方案得到每个视角的depth map之后通过depth来转成3D空间中的点云生成之后将点云voxel化生成Occupancy的真值。单目深度估计我们采用的是DRO的方案但是针对我们的传感器布局特点做了一些改进。首先我们的方案是自监督的我们采用了多视角之间的空间约束和时序约束进行自监督。空间约束的话其实就是不同的camera之间存在一些overlap虽然比较小但是也能够对这个模型的训练产生约束提供一些尺度信息。时序上的约束因为有SFM的基础可以得到比较准确的相机pose利用这个pose结合depth值能够实现时序上的自监督约束。需要注意的是空间约束可以对动态物体进行约束但是时序约束只能对静态场景的进行约束。此外分享一个训练中的trick在depth的训练过程中增加仿真数据可以提升物体边缘不连续区域处的depth性能。我们在真实的训练集中增加了Carla仿真器生成的仿真数据。虽然Carla的数据和真实数据可视化上相差比较远但是在实验过程中我们发现采用了仿真数据之后可以比较有效提升物体边缘的感知效果。这是我们做的一个实验的结果在没有使用仿真数据的时候可以看到物体的边缘是比较模糊的甚至有些残缺。但采用仿真数据之后这些物体的边缘就会变得比较清晰像这个骑车人的边缘会比较清晰。将depth图投射到3D空间中可以看到没有加入仿真数据的点云效果边缘处因为过度平滑导致出现了出现拖尾的现象。而真实的物体边缘的depth并不是连续的所以它应该有一个非常锐利的效果才是正常的。我们发现采用仿真数据之后能够让边缘变得更加的清晰层次分明不会产生拖尾的情况。这是我们用视觉方案生成的Occupancy的真值。这里我们展示两个场景一个是乡村道路的场景另外一个是交通拥堵的场景。从demo效果可以看出生成的Occupancy真值体现的被占据的情况和真实的情况是完全一致的。可以看到里面这些车辆还是能够比较清晰的识别出来。拥堵的车辆、自车位置和拥堵的障碍物相对关系也都是对的。我们的方案能够做到在100m之内测距误差小于8%。4. 4D-Label的标注运营平台介绍完纯视觉的标注方案之后我们介绍一下地平线的4D标注云端运营平台。4D标注是数据闭环里面一个非常重要的模块数据生产和标注是在云上运行并且其它的模块共同构成一个完整高效的数据闭环系统。从端上数据返回上传到云上之后会进行同类数据的挖掘构建数据集之后开始进行4D标注得到这些标注的结果之后进行模型的自动化训练以及模型的更新。这里我主要介绍一下云端的标注工具、数据挖掘手段以及数据链路。这是4D标注里面的一些静态和动态的标注工具。虽然我们很多的方案可以实现自动化但是仍然需要可视化和标注工具进行数据质检和编辑。静态标注主要就是路沿、车道线、路面离散要素和灯牌锥这类的要素动态标注主要是动态物体的检测和跟踪。静态标注工具有基础的功能比如3D可视化、视角转换、3D标注结果实时投影的2D图像等来保证标注的效率和精度。此外我们还同通过引入一些算法提升工具的标注效率。比如静态标注因为底层是有重建的相机pose可以产生时间和空间的关联标注3D空间的时候可以实时地看到它在2D上跟图像的对齐效果。同时也可以在图像上进行编辑来调整3D空间中的结果。在动态的标注过程中因为有时序上跟踪的结果所以只需要少量的人工参与便能够生成物体在时序上的整条轨迹。如果这个轨迹存在偏差人工可以进行一些调整调整完之后整个系统会自动进行全部的轨迹更新非常高效。此外标注工具是基于web端开发的能够支持千人的并发作业能够满足大规模数据标注的需求。为了实现整个流程的自动化我们也有一整完善的数据链路工具。我们现在内部正在使用的工具称为Horizon Data Flow (HDFlow)。它主要是通过构建有向无环图把各个任务串联起来每个处理的任务是一个节点。比如对于4D标注任务数据的预处理、数据的预刷、4D重建、大模型的预刷和真值质检、模型的发版、人工标注、以及人工质检等这些环节都是任务节点通过HDFlow可以串联成一条完整数据链路这些节点可以自动运行。这样的话就可以大幅度提升整个流程的效率。现在整个HD Flow支持的一些节点除了上次提到的还有训练前的环节如数据挖掘、4D标注、评测集的构建、数据分布的统计以及训练过程中的一些闭环像训练数据的打包、模型训练、模型发版和模型评测。针对某一种badcase为了快速的收集训练数据我们在云端开发了多种数据挖掘工具。例如以图搜图可以针对某些特定的案例采用模型来提取图像的feature在历史数据里面进行搜索得到相似的训练数据以文字搜图以及以视频搜视频。其中以视频搜视频和以图搜图的区别在于可以增加一些时序上的线索用于一些时序感知任务的数据搜集。此外还有一些工况大模型可以用模型打tag或者进行预刷。我们的方案可以根据预刷的结果来设置一些规则来进行数据的挖掘。比如说在得到行人的检测和跟踪结果之后通过行人轨迹就可以判断行人所处的场景是在十字路口还是在直行道上是在直行还是在拐弯。通过云端这些数据挖掘方案我们也可以得到大量需要的数据。为了更好的检测针对4D-Label标注的效率和成本我们开发一整套的看板从成本、产量、良率、运行效率、数据的有效性等各个维度进行观测。通过看板我们也可以看到真值生成的地点分布、场景分布以及时间分布等这些分布对真值尤其是静态真值非常有价值。同时我们也构建了完整的数据血缘从数据返回到标注到模型更新我们可以准确的追踪每一批数据在中间的各个环节的数据的使用率和处理情况通过数字化的方式对整个数据运营的成本进行更精细地把控和优化。5. 4D-Label发展趋势接下来我来介绍一下4D-Label技术后续的发展趋势。首先介绍一下4D-Label和数字孪生或者数据仿真之间的关系。4D-Label一个重要的模块就是对场景进行4D重建并且得到结构化的信息即标注的动静态真值。数据仿真的核心模块在于场景库的构建。得到大量的场景库之后根据一定的规则进行新场景的合成例如得到某个场景之后把场景里面的车辆、运动物体进行擦除、添加和编辑得到新的场景并通过通过对新场景的渲染得到训练样本也可以同时拿到结构化的数据来进行各种仿真包括规控的仿真感知的仿真等。所以4D-Label相当于是数据仿真的一个重要的素材库。通过数据仿真我们可以解决很多的问题。而且相比较于传统游戏引擎的仿真在真实感上会有有更多的优势。从这幅图左侧展示的是一个传统游戏场景的仿真它的场景是通过图形学的方式直接构建的在真实性上和真实场景相差很多。右侧展示的一个最新的UnisimCVPR2023方案是比较好的走通了场景重建、合成以及渲染的流程。也就是说它所有的素材都是从真实场景里面重建出来的并且通过神经网络的方式进行渲染所以它的可视化的真实感要比传统的仿真器得到的效果更加的逼真。仿真数据可以帮助我们解决很多量产中的实际问题。举两个例子一个是智能驾驶场景中的痛点的问题—corner case的收集问题。在真实场景里面像驾驶场景里面的翻车高速路上出现的宠物或行人这些场景的数据非常难以采集成本非常高。通过数据合成的方式大规模地来生成这样的一些训练样本是一种非常有效的解决方式。这里我举一个2D的案例检测在路上发生事故的车辆这在实际中是很难采集的。但是当有了这些前景翻车素材之后就可以通过简单的图像编辑技术来得到真值。在实际的验证过程中这种方式也能够非常有效地提升任务的性能。这是一个2D的任务那对于3D的任务呢比如说要做一些锥桶的真值生成或者是做一些滑动的或者侧翻车辆真值我们就需要用到3D重建的技术用来恢复它底层的3D几何包括静态场景和动态车辆再通过数据合成和渲染的技术把这些场景合并在一起。相对于全场景的仿真这种方案实现起来比较容易效果也比较明显。另一要举的例子是跨车的泛化性问题。在3D感知任务里面车辆的大小尺寸发生变化会导致相机的安装位置发生变化会严重影响3D感知任务的性能。这就会导致很多车辆的数据不能复用研发成本居高不下。用数据仿真解决跨车泛化性的问题其主要是的思路是首先进行4D场景的重建包括静态重建和动态重建之后进行不同安装位置传感器的仿真用于生成真值。这样的话只需要少量采集车采集数据就可以自动生成不同的传感器布局的真值实现不同车辆的数据复用从而降低研发成本。在这里我们举另一个简单的案例采用Vidar合成不同安装位置的车型的真值。当车辆的形状发生改变的时候怎样复用已有的数据。像特斯拉因为是单一车型所以用了几何矫正Homography 变换的方式把相机归一化到同一平面上。但是它存在很大的局限性即只能解决相机是纯旋转的情况而当相机有高度变化的时候这种矫正的方法就不能够满足需求了。如果相机存在高度变化就需要获取场景准确的depth信息。利用前面提供的Vidar方案可以获取每个像素的真值。虽然像素的深度值不是很准但是利用来做视角的变换以及新视角的合成是足够用的。用这种方式可以用来模拟当传感器发生变化的时候生成新的真值。用Vidar的方法本质上是一种对场景进行显式重建的方式另一种方案是采用Nerf进行重建这是一种隐式的重建方法将场景表达成MLP进行重建、编辑和渲染相比较于显式的重建效果更优上面介绍的unisim方案就属于这一类。此外用4D-Label生成的真值可以做不同环节的仿真测试。4D Label重建得到场景里面动态和静态的结构化的信息之后可以输入到自动驾驶系统里面去完成各个模块的仿真比如规控的仿真、定位的仿真以及感知的仿真。其中最难的是感知的仿真它需要输入的数据具有高度真实感。再进一步的话我们不但可以做仿真测试还可以做云端和车端上的感知方案一体化。4D Label真值生成方案实际上就是在云端走了一套包括感知、定位、决策及规控等完整的智驾方案。只要把上面介绍的多模和纯视觉的感知方案里面一些几何或者rule-based东西都换成大模型实际上它就是一套云端的智驾方案。把云上和端上的智驾搞成一体的智驾方案可以减少维护的成本。云上不但是提供真值数据给端上模型还可以把知识蒸馏给端上模型。而端上模型可以发掘一些corner case用于迭代云上模型。另外一个趋势就是大模型会在4D Label标注中发挥越来越重要的作用从简单的分割检测任务到更高级的标注任务比如行为预测等以知识迁移的形式实现不同任务、不同场景的知识共享。这个是我们用业务数据简单做的一些测试这是一个SAM分割大模型能够在2D图像中得到一些polygon的标注相较于人工标注可以提升5到6倍的标注效率。右侧是我们做的一个BEV视角下的纹理拼接图直接用SAM模型来做分割的效果。在没有经过预训练的情况下可以看到像路沿以及车道线的分割效果都已经是非常好的。这就是我今天要介绍的主要内容。最后总结一下1面向BEV的真值系统的4D-Label是模型迭代效率和成本一个非常重要的因素。而迭代效率和成本就是AI产品的核心竞争力。2对于 4D-Label不管是多模的标注还是纯视觉的标注高精度、高稳定的定位和建图是标注的基础模块。无论是对于静态标注还是对于端到端的动态标注都需要准确的pose。3在端上部署端到端模型是实现数据闭环的必经环节。一些重要的后处理任务会从端上走到云上成为一些真值标注的方案甚至会成为云端的智驾方案也就是我刚才介绍的云端一体的架构。4数据仿真合成会是解决corner case的一个非常有潜力的途径将来一定会成为一个非常重要的智驾模块基础设施。这就是我今天要介绍的主要内容。也欢迎大家关注我们之后在自动驾驶方面的课程谢谢大家。