简介
James Hays 是 Georgia Tech 的副教授,同时也在 Argo AI 任职。这个报告里面,他主要介绍了在建立高精地图时进行环境变化检测的必要性,他们为此建立的数据集的相关工作。(关于他们做的关于 Change Detection 的工作会在另一篇论文里面整理),会议视频在:4th CVPR Workshop on Visual Odometry & Computer Vision Applications Based on Location Clues(VOCVALC),其他资料可以参考:VOCVALC 2021
环境变化
例子
Hays 给出了几个环境变化的例子:
车道线变化(双实线变成单实线)以及消失(左边的虚线没了)
斑马线消失
新增车道线以及现有的车道线偏移
可通行区域变化
更加复杂的一些变化
同时,James Hays 表示他们不关注短期变化,假如一个路面需要重建,中间可能会经过几种暂时的状态(加护栏、标志物等等),他们不关注这种短期的变化,而更多集中在长时间的变化(路面重建前以及重建后),以下是一些短期变化的例子。他认为,像新的标志物和已经栏杆之类的物体变化(Object Change)可以用其他物体检测模块来解决,因此他们主要关注的是路面的变化 (Stuff Change)。
环境变化频率
James Hays 团队收集了一些数据来计算各个区域变化的概率,大致结果如下,大致来看他们将地图分为 30m x 30m 的 tile,计算在 5 个月时间范围内每 1000 个 tile 发生变化的的个数来作为概率。变化次数高的如匹兹堡、底特律(7/1000),低的有:帕拉图、奥斯丁(~0.8/1000)。这些规律的普遍性还有待确定(个人感觉上和城市的发展水平、人口数量、气候都有关系,想要得到一个普适的规律不太现实。)
HD Map
高精地图比日常使用的导航地图(只包含不同路段之间的拓扑关系)通常拥有更多信息,如车道级别的详细几何信息以及更详细的语义标签或者高度信息
而在这个 workshop 中,他们关注的高精地图主要包含以下元素,概括一下大概是:
- 人行横道:行进方向的两个边缘位置
- 车道线:
- 3D 左右边缘
- 车道线颜色,如黄色、白色以及隐藏线,(隐藏线应该表示的语义上的边界)
- 边缘车道线类型:实线、虚线?
- 车道之间的连接关系
- 车道类型:汽车、自行车等(这在中国小城市估计有点难清除区分 LOL :)
- 是否在交叉路口
- 可通行区域:用一个多边形来描述
- 地面高度:30cm 精度的浮点数表示
变化检测相关工作
这里 James Hays 列举了一些检测高精地图变化的工作,概括一下大概:
- 在小栅格层面上保留元数据,进行栅格层面上的比较:ICRA 2020 - LiDAR Inertial Odometry Aided Robust LiDAR Localization System in Changing City Scenes,可以参考我之前写的关于这篇论文的笔记:[论文阅读]LiDAR Inertial Odometry Aided Robust LiDAR Localization System in Changing City Scenes
- 作者观点:保存所有传感器的原始数据量太大;这种方法会将一些由于光照和天气等原因引起的变化也引入进来从而造成误判
- 进行特征层面上的匹配和比较:从传感器信息中提取特征,并将其和已有地图的特征相比较:How to Keep HD Maps for Automated Driving Up To Date
- 作者观点:难点主要在建立一个实时(局部)特征地图
- 端对端(给定两个图片,网络输出一个结果判定该区域是否发生变化),James Hays 也是采取类似的方法
TbV 数据集 (Trust, but Verify)
传感器组成
- 2 个 10Hz 32 线 Lidar
- 7 个 20fps 的相机
数据集中包含的环境变化类型
- 车道线的几何改变
- 车道边缘变化
- 车道线类型变化
- 转向车道增加/减少
- 车道数量变化
- 车道标识区域变窄(加入其他限制标识)
- 新结构加入(自行车道)导致的某个车道线变窄
- 转向半径变小(加了护栏)
- 车道分隔带新增或去除
- 自行车道新增或去除
- 以及上述所有类型的组合
- 人行道变化:包含增加或去除
和其他数据的比较
主要是和一些主流数据集相比较,最后一栏表示有多少个子集中包含 HD Map。
一些例子
下面这张图片展示了其中一个数据点:左边的图为相机图像,中间的图是高精地图投影到图像平面(这是其中一种投影方法,不表示 HD Map 原始数据),右边图片是 ground truth,可以看到这里由于右侧车道线的变化实际上右车道已经不存在了。
另一个例子,这个例子中变化的类型为中间的虚线消失。
车道线类型发生变化(虚线变成实线)
变化检测
任务定义
输入数据:
- 10 Hz Lidar 数据
- 20 Hz 7 个相机(环状分布)
- 准确的相机参数(内参)
- 车辆位姿
- HD Map
估计:
- 在当前时间戳下地图和传感器是否匹配,每隔 5 m 进行一次检测
- (可选),定位变化发生位置(或许还有类型?)
接下来 James Hays 以相机数据作为主要例子讲述了他们对这个问题的大致思路
视角选择
我们知道对相机数据的比较通常可以有两个视角:俯视和前视,如下所示:
俯视图需要将相机图像和高精地图都投影到鸟瞰图下,并进行比较,下面给出一个不匹配的例子(真实世界中多了一些阻隔带):
前视图则只需要将高精地图投影到前视图比较即可,下面一个相同场景的粒子:
网络结构选择
James Hays 的团队测试了以下几种融合方式:
- 早期融合:将图像(RGB)和地图投影结果叠加传入网络 (CNN + FC + Cross Entropy Loss)
- 早期融合(含语义信息):先将图像进行语义分割,将语义结果也加入网络中
- 后期融合:先将两个数据经过 CNN 处理再进行叠加然后 FC + Cross Entropy Loss
- 只用地图(Sanity Check):证明数据本身没有 bias
获取更多训练数据
要训练网络,数据集中的 200 个序列不足以作为训练集,因此接下来的报告主要集中如何模拟地图的变化。这里考虑到对图像本身的操作比较麻烦,因此人为改变高精地图。
- 人为加入自行车道,造成地图不匹配
- 改变车道线类型(右下角的双黄线变成了单黄线)
- 改变车道线外观(从实线变成了虚拟线)
算法结果
算法结果大致如下:
定位变化
这里 James Hays 展示了一些例子表示从网络的权重输出可以大致看出来变动发生的位置。
相关资源
新版本的 Argoverse 数据集
其他相关资源: