首页 > 其他分享 >#CAMA | 以视觉为中心的静态地图元素标注方法

#CAMA | 以视觉为中心的静态地图元素标注方法

时间:2024-09-07 23:03:28浏览次数:10  
标签:静态 地图 投影 SfM 图像 CAMA 标注 3D

01 现有标注方法的局限性

在自动驾驶领域,静态地图元素的精确标注是实现高精度环境感知的关键。然而,现有的公共数据集在一致性和准确性方面存在局限,无法满足日益增长的高精度训练数据需求。

图一展示了 nuScenes 数据集中的默认高清地图无法在一致性和准确性两个方面提供准确信息的示例。一致性强调了 3D 注释和 2D 图像之间的对应关系。例如,在某些区域,高清地图中提供了车辆和自行车道之间的车道分隔线。

同时,实际图像在相应区域没有显示车道标记。几何精度反映在高清地图重新投影到原始图像中。重新投影的道路齿(黄点)与图像中的实际道路齿有偏差。主要原因是数据集提供的高清地图没有高度信息,并且自我姿态相对于地图不准确。


x_co=1)

除高精地图外,一些数据集使用 LiDAR 点进行 3D 道路元素标注。这种使用 LiDAR 点投影的 3D 车道注释通常会受到噪声和伪影的影响。图 3 展示了 OpenLane v1 中车道线注释沿高程方向的噪声约为米级。

02 一致、准确的纯视觉标注方法

为了解决这些挑战,文中提出了 CAMA,即 Consistent and Accurate Map Annotation,是一种以视觉为中心的一致且准确地图标注方法。CAMA 无需激光雷达输入,即可生成高质量的 3D 静态地图元素标注,显著提升了重投影精度和时空一致性。

CAMA 系统主要分为两个部分:场景重建和道路元素矢量化标注。

03 场景重建

场景重建主要由 WIGO,SfM 和 RoMe 这三部分组成。

3.1 WIGO

WIGO 算法是一种融合了车轮里程计、惯性测量单元(IMU)和全球导航卫星系统(GNSS)数据的里程计算法。这些传感器数据为车辆提供了一个初始的、粗略的位置和姿态估计,这些估计随后被用于更精细的 3D 重建。

3.2 SfM

CAMA 使用 SfM 进行场景重建,主要对 COLMAP 做了以下五方面改进:

  • Initialization:提出了一种用于 SfM 的里程计引导初始化 (Odometry Guided Initialization, OGI)。具体来说,WIGO 姿势被转换为具有外部参数的前置摄像头坐标。给定初始姿势,增量式 SfM 可以用空间引导式 SfM 代替。
  • Matching:针对特定驾驶场景提出了单应性引导空间对 (Homograph-guided Spatial Pairs, HSP),利用 WIGO 姿态,可以通过图像之间的视锥重叠来过滤潜在匹配的图像对。此外,对于自动驾驶应用,所有摄像头都具有相对于地面的近似外部特征。可以通过对地面应用单应性变换来进一步过滤图像之间的视觉重叠,以强调道路表面区域的重要性。
  • Feature point:在自己数据集上训练一个 Superpoint 特征提取网络,特别关注地面。
  • Bundle adjustment:将迭代 BA 策略和 triangulation points filter 相结合。在迭代过程中可以从 SfM 稀疏模型中删除不准确的点。
  • Rigid prior:使用刚性 BA 来替代 COLMAP 中的普通 BA 过程。其原理是车辆上的多个摄像头安装在车身上,可以视为安装在刚体上。直接应用刚性 BA 不仅可以提高管道的整体效率,还可以提高鲁棒性。

通过以上改进文中在自动驾驶数据集效率提升了 5 倍和 成功率提升了 20% 。

3.3 RoMe

使用 RoMe 进行路面网格重建,做了以下三方面改进:

  • Surface points:使用 MaskFormer 进行语义分割,结合 SfM 模型恢复稀疏语义点云,然后提取路面点云。为了进一步提高 SfM 点过于稀疏时的稳健性,我们还根据自我姿势和摄像机与地面之间的外部因素对其他点进行采样。这种方法提高了路面初始化的整体质量。
  • Elevation:利用上一步生成的稀疏路面(3D 点云)训练 MLP 预测路面高度。
  • Semantic:将原始图像及其相应的 2D 分割结果作为监督来训练每个网格的语义标签和光度特征。

最终,可以获得高精度的 3D 路面网格。3D 路面网格可以表示为 2D BEV 图像和高度图像,作为地图标注的输入。

3.4 Map annotation

扩展了 VMA 以进行初始地图注释,使用人在回路方法加快标注效率。VMA 是一个基于 MapTR 的离线地图自动注释框架。输入是串联的 2D BEV 语义光度图像,而输出是道路表面元素(例如车道分隔线、道路齿、人行横道等)的矢量化表示。

文中使用语义图和光度图像作为输入以提高 VMA 推理能力。对于地图元素的标注仍在 2D BEV 空间中。一旦获得 2D 表示,就会组合高度图以将 2D 矢量提升为实际的 3D 道路表面和矢量。

04 标注验证

文中在 nuScenes 数据集上进行了验证生成了优化后的注释,提出了重投影误差指标用于衡量重投影精度:

  • Step1: 将 3D 注释向量元素重新投影到每个 2D 图像中
  • Step2: 使用现成的 2D 车道实例分割提取图像空间中的所有实例,并为每个实例拟合折线
  • Step3: 使用匈牙利算法匹配步骤 1 中的投影元素和步骤 2 中提取的元素
  • Step4: 计算每个匹配元素的平均像素距离

CAMA 标注的标注在重投影误差上显著降低

重投影可视化效果对比

05 应用

使用 MapTRv2 作为基线模型,不同标注进行训练,重投影精度也得到了提升。

06 总结

文中研究了在线高清地图构建的关键因素,并认为重新投影精度和时空一致性的注释质量对于感知算法训练至关重要。基于这一见解,文中提出了 CAMA,一种以视觉为中心的方法,能够获得一致且准确的静态地图元素注释。

标签:静态,地图,投影,SfM,图像,CAMA,标注,3D
From: https://www.cnblogs.com/horizondeveloper/p/18402293

相关文章

  • labelme标注的大图用sahi切成小图和小json
    1.去除labelme标注中只有1或2个点的轮廓指有些标注错误的只有1个点或2个点的轮廓不能转化为polygon点击查看代码importcv2importnumpyasnpimportjsonimportosdefremove_specific_labels(json_file):#读取JSON文件withopen(json_file,'rb+')asf:......
  • 受 LabelImg 启发的基于 web 的图像标注工具,基于 Vue 框架
    受LabelImg启发的基于web的图像标注工具,基于Vue框架  哟,网友们好,年更鸽子终于想起了他的博客园密码。如标题所述,今天给大家带来的是一个基于vue2的图像标注工具。至于它诞生的契机呢,应该是我导pass掉了我的提议(让甲方使用LabelImg进行数据标注),说是要把功能集成起来......
  • 2.6 某区域43.65km*58.2km的高程数据,画出该区域的三维表面图和等高线图,在A(30,0)和B(43,30)(
    点击查看代码importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3D#模拟高程数据(假设数据已经过某种方式插值或生成)#这里我们创建一个简单的40x50网格,并填充随机高程值x=np.linspace(0,43.65,40)y=np.linsp......
  • 2.1 在同一个图形界面上画出如下三个函数的图形并进行标注 y=chx y=shx y=(1/2)e^x
    点击查看代码importnumpyasnpimportmatplotlib.pyplotasplt#定义x的范围x=np.linspace(-5,5,400)#计算三个函数的值y_cosh=np.cosh(x)y_sinh=np.sinh(x)y_half_exp=0.5*np.exp(x)#创建图形和坐标轴plt.figure(figsi......
  • PLC结构化文本(ST)——临时&静态&实例-变量(TEMP&STAT&INST)
    PLCStructuredTextObjectOrientedProgrammingPLC结构化文本(ST)——临时&静态&实例-变量(TEMP&STAT&INST)临时变量(VAR_TEMP)临时变量在每次调用POU时都会初始化。用在程序(PRG)和功能块(FB)中。在方法(Method)和函数(Function)中的内部变量都是临时变量。PROGRAMMAINVAR......
  • Java静态代码块、构造代码块执行顺序问题
    packagecom.zxl.staticdemo;publicclassBlockTest{static{System.out.println("BlockTest静态代码块执行");}{System.out.println("BlockTest构造代码块执行");}publicBlockTest(){System.out.......
  • 了解VxLAN,学习静态/分布式VxLAN的配置
    VxLAN(VirtualExtensibleLAN)是一种网络虚拟化技术,用于在物理网络上创建虚拟网络。它主要用于在大规模数据中心环境中实现虚拟化网络的隔离和扩展。VxLAN通过在现有的IP网络上封装以太网帧来实现这一目标,从而使虚拟机(VM)能够跨物理主机和数据中心进行通信。VxLAN的基本概念VxLANHe......
  • 1000多天我开发了一个免费的跨浏览器的书签同步、阅读排版、任意网页标注插件
    自我介绍大家好,我是阿浩,一位后端开发工程师,同时也略懂前端技术。业余时间,我开发了这款小工具——《藏趣云》。我为什么要写这么个工具需求来源于我自己,因为我是做开发的。我日常都会使用多款浏览器来测试项目,一次需要登录多个账号,寻找各种测试地址链接。之前因为电脑磁盘损坏、......
  • 人脸静态活体检测(高精度版)
    人脸静态活体检测(高精度版)API对接说明本文将介绍人脸静态活体检测(高精度版)API对接说明,它可用于对用户上传的静态图片进行防翻拍活体检测,以判断是否是翻拍图片。接下来介绍下人脸静态活体检测(高精度版)API的对接说明。注册试用链接注册试用链接申请流程要使用API......
  • 如何给文字标注拼音?三种便捷方法快速为文字添加注音
    如何给文字标注拼音?三种便捷方法快速为文字添加注音现如今,数字时代让信息传播的速度比以往任何时候都快。在这个高速发展的时代,语言沟通占据着至关重要的地位。文字作为人类交流的桥梁,准确且便捷的表达成为必需。而文字注音,作为辅助学习、文化传承以及跨语言交流的重要工......