论文阅读笔记-MapLite 2.0: Online HD Map Inference Using a Prior SD Map

news/2024/5/3 18:06:22/文章来源:https://www.cnblogs.com/xiaoliu-ya/p/16599768.html

MapLite 2.0: Online HD Map Inference Using a Prior SD Map

MapLite 2.0:使用先前SD地图的在线高清地图推断

Abstract
部署全自动驾驶汽车一直是工业界和学术界深入研究的主题。然而,这些努力中的大部分都严重依赖于高清 (HD) 先前的地图。这些是为规划和控制模块提供丰富的操作环境模型所必需的。虽然这种方法取得了成功,但它极大地限制了这些部署的规模和范围,因为为非常大的区域创建和维护高清地图可能会让人望而却步。在这项工作中,我们提出了一种在线构建高清地图的新方法,该方法从标准定义 (SD) 先验地图(如导航路线图)开始,并结合车载传感器来推断本地高清地图。我们在 100 个真实世界车辆数据序列上对我们的方法进行了广泛评估,并证明它可以仅使用 SD 先验地图和车载传感器准确地推断出高度结构化的类似于高清地图的世界模型。
Index Terms
地图、自动驾驶汽车导航、高清地图、高清地图、无地图驾驶、本地化

I. INTRODUCTION

在本文中,我们提出了一个系统来替换或增强精心生成的高清地图。我们的方法在给定公开可用的粗略道路图(在我们的案例中为 Open-Street Map )和在线感知数据的情况下推断道路几何形状和拓扑,例如车道和交叉口大小。我们将粗略的道路图转换为先验高清地图和光栅化鸟瞰图(BEV)表示。额外的 BEV 图像是由传感器输入的组合生成的。这些被用作卷积神经网络 (CNN) 的输入,该网络经过训练以使用现有的高清地图数据进行训练来预测其语义标签。语义分割被转换为一组标签特定的距离变换。最后,结构化估计器维护局部地图估计并整合 SD 地图先验。

A. Offline map generation

B. Online map inference

III. METHOD

A. State Description

1) SD Map Model:

在这项工作中,我们假设SD先验地图的可用性。与高清地图不同,标清地图可广泛使用,并且对存储和传输的要求最低。标清地图包含的信息比高清地图少得多。

我们考虑具有图形的 SD 地图 - 类似于数据结构 \(M_{SD} = \{ N , E \}\) ,其中节点 N 是交叉点,边 E 是表示道路中心线的折线。每条边还具有相关的语义属性,例如道路名称、限速和每个方向的车道数。请注意,此类地图通常用于导航,Open Street Map.org 将它们免费提供给全球大部分地区。在这项工作中,我们不需要道路中心线几何形状的高精度。例如,Open Street Map 中心线要素通常会出现 10m 量级的错误,而当前系统旨在处理该问题。但是,我们确实要求 SD 地图的拓扑(例如道路连通性)是正确的。

2) HD Map Model:

尽管高清地图已被广泛用于自动驾驶,但目前还没有通用的高清地图格式。在设计我们的高清地图模型时,我们从几个广泛使用的标准中汲取灵感。与导航数据标准 (NDS) 类似,我们利用单独的层进行路由和在线生成的车道级几何图形。在 Open Drive 模型中,我们根据道路中心线参数化车道几何形状。由于我们是在线估计模型,并且不假设SD地图中心线高度精确,因此我们甚至对与SD地图中的中心线重合的车道边界进行了参数化,这使得在线地图不仅可以对SD地图中不存在的车道几何图形进行编码,还可以从SD地图的中心线移动道路的位置。我们设计高清地图模型的主要目标是提供数据结构,提供下游规划和控制所需的几何信息,同时允许从SD先验和传感器数据在线估计。

HD地图模型由具有三个主要层的层次结构组成。

  1. 道路层由道路和交叉口组成。每条道路可能包含多条车道和行驶方向,并且必须以交叉口(节点度,D > 2)或道路终点(D = 1)开始和终止。
  2. 路段层由具有恒定车道数的路段组成。还有过渡区域(D = 2),其中具有不同数量的车道的两个部分相遇。每个部分都在过渡或道路尽头开始和结束。
  3. 路段层由单向车道数恒定的路段组成。因此,允许沿两个方向行驶的路段将包含两个路段。每个路段都在其相应路段的节点处开始和结束。

高清地图状态定义为 \(M _{HD} = \{ M _{SD} , \Theta \}\) ,它将 SD 底图与一组参数 \(\Theta\) 组合在一起,这些参数对相对于 SD 地图的高清地图几何进行编码。例如,如果 SD 地图包含表示道路中心线的边缘,则 HD 地图将包括该边缘,以及一组参数,这些参数对关于该 SD 地图边缘的真实世界道路几何形状进行编码,如下所述。

image

图 3 显示了具有三个相邻道路的示例交叉口。 SD 地图边缘显示为蓝线,而节点是蓝色圆圈。每个交叉路口节点的度数 \(D\) 对应于交叉路口的道路数量。 HD 地图模型使用每个端口 \(θ ^d _i\)\(θ ^a _i\)\(θ ^r _i\)\(θ ^l _i\) 的一组四个参数来定位交叉口的入口和出口(如图 3 中的红线所示),其中 \(i \in [1 , D]\) .这些定义了沿 SD 中心线到交叉口的距离、道路 - 交叉口边界的角度以及左右方向的宽度。因此,这些 4D 参数完全描述了交叉口的所有入口和出口的形状和位置。

每个路段被离散为 \(K\) 个节点,沿 SD 地图边缘具有固定的偏移距离 \(knot\_dist\)\(i \in [1,K]\) 的一组参数 \(θ^{rb} _i\)\(θ ^{lb} _i\) 定义了两条折线,分别代表路段的左右边界。接下来,对于具有 \(L\) 条车道的路段,还有一个额外的 \(L \cdot K\) 参数 \(θ ^l _{i,j}\)\(i \in [1,K]\)\(j \in [1,L]\)。这些定义了从每个结点到多车道段中相应车道线的垂直距离。这些参数一起用于使用先前高清地图通常提供的精确车道级几何和拓扑来增强 SD 底图。

B. Bird’s Eye View (BEV) Semantic Segmentation

语义分割管道结合多个原始传感器流并对其进行处理以生成鸟瞰图 (BEV) 中的特征,以输入到高清地图状态估计更新步骤,如图 2 感知所示。 BEV 帧是一个自然的选择,因为 SD 和 HD 地图也通常在此帧中表示。

image

1) BEV Projection:

为了生成 BEV 特征,我们首先累积一组 \(N\) 个连续的点云 \(P ^V _{t−N}, . . . , P ^V _t\) 在车辆框架中,其中每个点云在指定的时间间隔 \([t - 1, t]\) 内结合所有激光雷达传感器测量值。每个时间间隔还与来自 \(M\) 个摄像机中的每一个的一组 N 个图像相关联,其中图像视野跨越点云 \(P ^V\) 的一些(可能重叠)部分。然后通过将点投影到图像帧中,用 RGB 值“绘制”每个点。接下来,将 \(P ^V _{t−N}, . . . , P ^V _{t−1}\) 的每个彩色点云投影到当前车辆框架中。尽管每一帧都需要 \(N - 1\) 次变换,但每个点数 \(P ^V\) 只需要使用该方案绘制一次。最后,通过将车辆周围的空间离散化为 \(X - Y\) 平面中的网格,并聚合每个网格中的强度、高度和 RGB 颜色值,将累积的、绘制的点云 \(P ^V _t\) 投影到 BEV 框架中。

由于遮挡和激光雷达的稀疏性,并非网格中的所有单元格都有数据点。因此,在具有清晰特征但许多空单元格的高分辨率 BEV 网格与具有较少单元格丢失数据的低分辨率网格之间存在权衡。为了获得良好的平衡,我们在几个分辨率下计算 BEV,然后在每个位置选择最高分辨率的可用单元,这会在传感器数据更密集的位置产生具有更高分辨率的可变分辨率 BEV 图像。

我们还选择特定的目标聚合函数来最好地匹配所需的特征类型。即,对于强度特征,我们使用均值聚合,对于 RGB 特征,我们选择中值来拒绝异常值,对于高度特征,我们使用最小值,有效过滤掉移动物体并给出地表的高程图.图 4 显示了一组 BEV 功能的示例集,该功能从四个激光雷达传感器和布置在自我车辆周围的六个摄像头中累积了 4 秒的数据。

image

2) Semantic Segmentation:

为了在线估计高清地图,我们生成语义特征来推断重要地图对象的位置,例如道路边界和车道线。为此,我们训练了一个基于 ResNet-101 主干的语义分割模型。该网络的输入是 BEV 帧的六通道图像,通道 \(= \{I,Z,R, G,B, SDT\}\) 其中 I 是激光雷达点的平均强度,Z 是最小高度,R,G和 B 是来自相机图像的中值颜色通道,SDT 是距离变换,其中每个像素给出到 SD 先验图中道路中心线的距离。

为了减少训练要求,我们使用迁移学习来微调在 COCO 数据集上预训练的 DeepLabv3 图像分割模型。我们通过增加输入通道来修改这个网络以匹配我们特征中的六个通道,并使用预训练的输入层初始化权重。接下来,我们将网络的头部修改为具有 \([B,C,W,H]\) 的输出形状,其中 B 是批量大小,C 是要预测的类数,W,H 是宽度和高度特点。我们使用 C = 4 ,\(classes=\{background, roads, intersections, lines\}\)

我们使用地面实况(人工注释)高清地图编译训练数据集,以生成四个类别的分段 BEV 标签。我们使用交叉熵损失,修改为输入 BEV 中的任何无效(Nan 值)像素(对应于被遮挡或超出车辆传感器范围的单元格)从损失计算中排除。

3) Signed Distance Transform:

感知管道的最后一步需要为语义分割网络输出中的四个类中的每一个生成带符号的欧几里德距离变换。距离变换包含到每个类的最近特征的度量距离。

我们需要对标准距离变换进行修改以解决遮挡问题。回想一下,对于二值图像 \(f\) 的距离变换 \(DT(f)\)\(f = 0\)(背景)处计算为 \(0\),并且在 \(f = 1\)(前景)处到最近的背景点的欧几里得距离。请注意,有符号距离变换计算为正向和负反向距离变换的总和 \(SDT = DT(f) - DT(1 - f)\)。该变换在前景中具有与 \(DT(f)\) 完全相同的值(到最近背景点的距离),但在背景中具有负值,给出到最近前景点的距离。简单地将遮挡点视为背景会在缺失数据附近产生虚假边缘的不良影响。相反,我们使用指示函数生成将缺失数据视为前景的正向距离变换,并添加将缺失值视为背景的负反距离变换。这确保了最终的距离变换仅包含表示与其他有效数据的距离的测量值,并消除了缺失数据可能会引入的伪影。

丢弃背景和缺失的数据单元,我们最终构建了三个输出有符号距离变换:道路区域、交叉口区域和车道线。这些是用于估计在线高清地图状态的输入,如下所述。

C. Online HD Map State Estimation

在线高精地图状态的估计步骤中,高精地图模型参数被更新以包含来自车辆传感器的新信息。我们将这个问题表述为最大似然估计,在其中我们寻求找到 \(Θ ^∗\) 使得$$\Theta ^* = \arg \max _\Theta P(\Theta | Z _{1:t}) \tag{1}$$其中 \(\Theta\) 是定义高清地图的决策变量集,\(Z _{1:t}\) 是所有传感器测量值的集。使用贝叶斯规则,我们可以将其分解为$$ P(\Theta | Z _{1:t}) \propto _\Theta P(Z _t | \Theta , Z _{1:t-1}) \cdot P(\Theta | Z _{1:t-1}) \tag{2}$$

第二项表示我们对给定先前测量的状态的先前信念,而第一项是更新步骤,它整合新的测量以获得更新的信念。我们设计了一种跟踪算法来在线执行状态估计更新。在下一小节中,我们将描述如何在获得任何测量值之前首次初始化先验 \(P (\Theta)\),然后讨论如何计算更新项以集成新的传感器数据。

1) HD Map Initialization:

我们将先验地图参数建模为高斯,我们不仅需要对每个参数的值进行初始估计,还需要对不确定性进行估计:\(P (\Theta) = \mathcal{N} (\mu _\Theta, \Sigma _\Theta)\) 。此外,虽然我们可以在后续步骤中使用最后一次迭代的结果,但在集成第一个传感器测量之前的初始估计中,我们只有 SD 图可用。因此,我们构建了高清地图模型,并仅从 SD 先验初始化所有参数。我们将此初始高清地图估计称为 MapLite Prior ,它是在离线过程中构建的,不需要任何在线传感器数据。为了获得它,我们首先收集了一组人工标注的高清地图。接下来,我们将这些地面实况图与相应的 SD 图进行比较,并计算将生成与地面实况最匹配的 HD 地图的参数值。最后,我们从这些参数在训练区域的分布中回归初始值和不确定性。例如,我们将地面实况数据集中的参数 \(θ ^{rb}\)(道路边界参数)的值作为每个路段中车道数的函数进行回归。然后,我们将参数值初始化为该分布的平均值,并将方差初始化为残差平方和。

通过这种方式,我们可以生成全高清地图状态的初始猜测。正如预期的那样,我们发现表示相当一致的车道宽度等特征的参数在初始化时具有相对较低的不确定性,而对交叉路口形状等特征进行编码的参数则更加多样化,在初始化时具有相对较高的不确定性。

请注意,由于所有参数都是相对测量值,因此高清地图与参考框架无关(例如,变换底图几何会变换所有高清地图几何,但重要的是,参数值不变)。这允许在相对于地图框架不断变化的本地车辆框架中执行推理,而无需在更新步骤中对估计的参数和不确定性进行任何转换。

2) Belief Update:

为了更新状态估计,我们需要从编码为语义分割步骤 Sec. III-B. 中获得的一组距离变换(道路、交叉口和车道线)的测量值中获得传感器似然度。我们可以通过假设测量是条件独立的来简化等式(2)中的表达式,$$P(Z _t | \Theta , Z _{1:t-1}) = P(Z _t| \Theta) \tag{3}$$

首先,请注意大多数决策变量在给定的更新步骤中是不可见的。因此,我们将 \(\Theta _t\) 定义为:\(\Theta _t = \{∀ \theta \in Θ \enspace s.t. \enspace \theta \enspace is \enspace in\_view \enspace at \enspace time \enspace t \}\)
然后更新步骤减少到仅更新 \(\Theta _t\),因为我们对所有其他状态变量的估计没有改变。

image

为了找到传感器更新分布,我们将在高清地图表示中找到的五种参数类型中的每一种都与相关的距离变换配对,如表 I 所示。设 \(X (\theta)\) 是一个渲染函数,它返回车辆中的一个或多个点表示在每个参数中编码的几何图形的框架(见图 3)。例如,\(X ( θ ^d _i)\) 返回给定交汇线上距交点节点距离 \(θ ^d _i\) 的点。类似地,\(X(θ ^a _i )\) 返回一组沿旋转角度 \(θ ^a _i\) 旋转的连接线分布的点。接下来,令 \(\delta (X)\)\(X (\theta)\) 中的点到表 I 中相关距离变换的平均距离。目标函数的似然分量为$$P(Z _t|\mu _{\Theta _t}) = 1 - \frac{\delta(\theta)}{\delta _{max}}$$其中 \(\delta _{max}\) 是距离变换被裁剪的值(在我们的例子中为 10m)。因此,随着编码几何与其观察之间的距离增加,似然项将变得更小。整合这个估计来获得它的归一化常数在计算上是令人望而却步的。然而,由于它在目标函数中的目的是平衡观察与先验,因此我们将这两项与我们调整以获得最佳性能的参数权重相乘。

然后,我们通过组合 Eqs (2, 3) 来近似 Eq (1) 来求解最优均值:$$μ _{Θ _t} = \arg \max _{μ _{Θ _t}} [ P (Z _t|μ _{Θ _t} ) , P (μ _{Θ _t} | Θ _{t−1}) ] W ^T _\Sigma$$其中 \(W ^T _\Sigma\) 是一个权重向量,用于平衡先验和更新的重要性。

虽然我们无法凭经验测量这种不确定性,但我们调整了这个函数以在我们对新测量的信心与之前的测量之间取得平衡。然后在线使用数值优化来获得每次测量更新时的更新参数均值和不确定性。

IV. EVALUATION

A. Dataset

我们通过收集密歇根州和加利福尼亚州的 100 个真实世界自动驾驶汽车序列的数据集来评估我们的方法。车辆平台包括四个激光雷达传感器和六个摄像头,可提供车辆周围的 360 度视图。在每个序列中,地面实况车辆姿态是使用在 Ceres [19] 中实现的基于因子图的 SLAM 系统获得的,该系统通过将地标观察与先前的固定地标图相关联来计算优化的轨迹。我们估计该系统中的轨迹估计误差为 < 10 cm。该先验地图也是手动注释的基本事实的参考。

交叉口代表了高清地图推理问题中最复杂的部分,因为仅检测笔直道路上的车道相对要简单得多。出于这个原因,我们将每个序列集中在交叉路口遍历上,在交叉路口入口前十秒开始序列,并在出口后五秒结束。每个序列由一系列 10 Hz 的帧组成,其中每个帧包括:

  1. 六个同步的摄像机图像 (1936x1216) 提供车辆的环绕视图。
  2. 四个激光雷达传感器在四秒内累积的激光雷达点云。
  3. 从 Open Street Map.org 下载的 SD 先验地图中的本地区域。
  4. 手绘高清地图中的一个局部区域,仅用于评估目的。

我们总共收集了 100 个序列,持续时间从 10 到 25 秒不等。其中包括穿越 18 个独特的十字路口。所有序列都是非重叠的,因此穿过同一交叉点的任何两个序列在不同方向和/或在不同时间这样做。我们随机选择 10 个序列进行验证,其余 90 个用于训练。每一帧都是按顺序处理的,首先投影到 BEV,执行语义分割以生成特征距离变换,然后在每个时间步更新传感器视图内的高清地图模型参数。然后如下所述评估单次遍历后获得的最终高清地图模型。由于我们对这项工作中的在线估计感兴趣,我们不保存序列之间的更新图,而是每个序列都以仅从 SD 先验图派生的新模型开始。

B. Semantic Segmentation Results

虽然语义分割不是本文的主要重点,但我们在这里报告分割管道的结果,以评估该组件在整个系统中的作用。我们在单个 Nvidia Titan XP GPU 上使用 90 个训练序列训练语义分割 CNN 2.5 小时。输入特征是通过连接{Red, Green, Blue, Lidar Intensity, Height, OSM Distance Transform}获得的6通道1936x1216 BEV图像。输出包括 {Background, Road, Intersection, Lane Line, Out of Range} 中的每像素标签,其中超出范围是指 BEV 中为空的像素(例如,由于遮挡)。

我们在数据集的训练和验证拆分上评估整体和每类的准确性。我们在验证序列上实现了 93% 的总体准确率,每个类别的准确率分别为 Background:97%、Road:82%、Intersection 96% 和 Lane Line:90%。图 5 显示了这些类的混淆矩阵。值得注意的是,尽管该网络在预测大多数类别方面表现良好,但它确实显示出道路和车道标记之间的一些混淆。我们还比较了训练运行的结果,发现它们相似:总体上为 95%。这表明训练数据集足够多样化,可以避免严重的过拟合。

image

C. MapLite 2.0 Results

在评估 Map Lite 2.0 的性能时,我们将单次遍历后的高清地图状态估计与手动标注的地面实况图进行比较。我们将评估限制在车辆周围 30m 的范围内,以仅包括可能在车载传感器范围内通过的地图部分。由于 HD 地图是基于基础 SD 地图先验,而手工标注的地面实况地图是完全独立生成的,因此无法保证特征之间的一一对应。例如,将一条分开的道路考虑为两条单独的单向道路,而不是一条两条车道的道路的决定具有一些模糊性。因此,我们提出了两个指标来评估高清地图估计的整体质量。

  1. Vehicle Trace Accuracy 是一个粗略的指标,它依赖于车辆总是在路上行驶的事实。我们计算在高清地图估计中落在道路边界内的驱动路径部分。
  2. Road - region Intersection Over Union (IOU) 是一种更精细的度量,它将注释地图中定义为道路的区域与高清地图中的区域进行比较。

我们在所有验证序列上计算这些指标,并计算标准偏差来衡量结果的一致性。

为了比较,我们还在“原始 OSM”地图上计算了这些指标,这是通过将 Open Street Map 道路中心线膨胀为固定的标称车道宽度而获得的天真生成的道路区域。此外,我们在“Map Lite Prior”上运行相同的分析,这是从 OSM 先验派生的高清地图结构,以及状态参数的初始估计,但在集成任何车载传感器数据之前。最后,为了更好地理解语义分割准确性如何影响我们的结果,我们还展示了一个“Oracle”结果。这评估了相同的结构化估计器算法,但使用地面实况语义分割而不是 CNN。

image

表 II 显示了这些评估的结果。有趣的是,简单地应用 Map Lite Prior 已经将车辆跟踪精度从 55% 提高到 87%,而无需任何额外的真实世界数据。这表明应用具有数据驱动初始化的高精地图结构足以获得高精地图推断的强先验。 Map Lite 2.0 Posterior,包括来自板载感知的推断,将准确度提高到 99%。与 Vehicle Trace Accuracy 指标相比,IOU 指标更精细 - 因为它比较了整个观察到的道路区域,而不仅仅是车辆轨迹。在这里,我们再次看到每一步的准确性都在提高,标准偏差也在降低,这表明一致性更高。

IOU 没有达到统一的原因可能是由于三个因素:1)HD 地图是从 SD 之前的 Open Street Map 导出的,而地面实况地图是独立手工注释的。因此,对于应该标记为“道路”的内容存在一些固有的模糊性(例如,在半分隔的道路、私人车道等中铺设的分隔器)2) 模型限制不能完全代表现实。例如,为了简单起见,我们的交叉路口模型将每个入口/出口端口与直线段连接起来,这只是用于评估的真实世界交叉路口区域的粗略近似。 3)推理优化可能陷入局部最小值。计算资源排除了对整个参数空间的详尽搜索,因此,局部最小值可能会阻止模型达到最佳状态。

虽然 oracle 的性能略微优于 Map Lite 2.0 模型,但它表明大部分剩余错误都存在于推理步骤中。因此,为了改进这些指标,未来的工作应该关注前面描述的三个推理错误来源,而不是改进语义分割步骤以产生最大的影响。

image

图 6 显示了几个说明性的现实世界示例。前两列包括可以离线运行的组件,因为 Map Lite 先验是在集成传感器数据之前从 SD 先验派生的。最后三列显示如何分割传感器数据以创建用于更新 HD Map 状态估计的距离变换。一个值得注意的问题出现在第 (4) 行中,其中道路包括我们的模型未明确处理的中心转弯车道。这会导致黄色中心线出现锯齿状。相反,在第 (2) 行中,划分的中心在网上被正确推断,即使这在先前没有表示。在未来的工作中,我们可以扩展我们的模型以明确考虑诸如此类的特殊车道场景。在第 (5) 行中,在离开顶部交叉口的道路中的单个点处的道路边缘的错误会导致原本平滑的道路估计中的“扭结”。提供一个术语来编码“平滑度”约束可能会提供更真实的结果。

V. DISCUSSION AND CONCLUSION

在这项工作中,我们提出了一种新颖的高清地图模型表示,它完全与之前的基础 SD 地图相关。我们已经表明,它可以直接从可用的 SD 地图中提供合理的 HD 地图。此外,我们设计了一个感知和推理系统,可用于估计高清地图模型参数,以仅根据 SD 先验和车载感知生成在线高清地图估计。

这不仅可以用于允许自动驾驶汽车在以前未映射的区域中导航,而且还可以用于至少两个其他重要应用。 1) 在线高清地图可以在全地图解决方案的背景下运行,以检测变化并建议地图维护,以及 2) 可以在线使用 Map Lite 2.0 自动启动未探索区域的地图绘制,然后可以结合起来创建优化的离线地图以供将来使用。

该系统还应考虑一些重要的限制。地图模型不可避免地是一种近似,不能捕捉所有真实世界的复杂性。虽然我们发现我们的模型足以代表我们数据集中多个城市的多种道路类型,但必须注意考虑新的道路结构。例如,在选择应从 SD 地图中收集的信息与在线推断的信息时,需要进行一些判断。在这项工作中,我们利用 SD 地图中的车道编号属性作为先验,但从车载传感器检测实际车道边界。相反,我们不使用人行横道信息,即使在某些地区可用。因此,应谨慎选择要包含在先验中的内容以及根据感兴趣区域的可用性在线推断的内容。

在 [10] 中,我们专注于将车辆定位到粗糙 SD 地图的概率估计。在这项工作中,我们改为考虑在线推断高清地图的问题,同时依靠我们的 SLAM 系统进行定位。这使我们能够独立地直接评估高清地图推理问题。未来,我们希望将这些系统结合起来,使车辆定位到 SD 地图,以及同时在线推断 HD 地图。

最后,为了简单起见,我们选择了 2D 地图表示,它排除了处理多层道路(例如立交桥)的能力。在此类道路上部署需要通过地图拆分方法或扩展到 3D 来处理多个级别。

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

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

相关文章

Parallels 升级后提示虚拟机网络初始化失败

之前一直没升级,奈何升级 macOS 后,parallels 打不开了,只能尝试去升级,但升级之后的系统打开总是提示网络初始化失败,如下图所示。解决如下方式已解决,注意,尝试之前,先把自己的 parallels 软件给关了。 1、打开资源库的 parallels 打开【访达】,点击顶部【前往】,点…

Centos7中升级python3.10.4版本

****** 先上结果图 ****** (之前是 2.7.5 版本,日志太长没法找到之前的版本截图了) ****** 先上结果图 ******1、下载安装一些依赖包yum install -y wget lrzsz net-tools zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc ma…

Java中时间戳的使用

原文链接 当前时间 import java.sql.Timestamp; //导包Timestamp nowTime = new Timestamp(System.currentTimeMillis()); System.out.println(nowTime);输出: 2022-06-08 11:15:51.014Long型时间戳 Long timeLong = System.currentTimeMillis(); System.out.println("ti…

用栈结构解决佩慈糖果盒问题(JavaScript)

封装的栈操作方法: https://www.cnblogs.com/LIXI-/p/16612874.htmlvar sweetBox = new Stack();sweetBox.push(red);sweetBox.push(yellow);sweetBox.push(red);sweetBox.push(yellow);sweetBox.push(white);sweetBox.push(yellow);sweetBox.push(white);sweetBox.push(yello…

HCIA学习笔记二十:STP生成树

一、环路的影响 1)环路产生• 交换机之间通过多条链路互连时,虽然能够提升网络可靠性,但是同时也带来环路问题。 2)广播风暴二、STP的作用 1)阻塞端口• STP通过阻塞端口来消除环路,并能实现链路备份的作用。 2)阻塞某端口后3)链路备份三、STP生成树基本计算过程 1)选…

taro小程序日期选择器

taro-swiper-weektaro-swiper-week 是一个基于 taro 的日期选择器控件。 可以用在h5、微信小程序等众多平台!简体中文 | English🔨 使用 先安装 npm install taro-swiper-week再引入页面 import SwiperWeek from "taro-swiper-week"; import "taro-swiper-we…

Docker 拉取Nginx镜像 和运行

Docker 镜像拉取docker pull [OPTIONS] NAME[:TAG|@DIGEST] 镜像拉取命令OPTIONS说明:-a :拉取所有 tagged 镜像--disable-content-trust :忽略镜像的校验,默认开启docker images 查询所有镜像docker run [OPTIONS] IMAGE [COMMAND] [ARG…] 运行镜像 docker run --help 可查看…

Java-基础语法

day02 - Java基础语法 1. 运算符 1.1 算术运算符(理解) 1.1.1 运算符和表达式 运算符:对常量或者变量进行操作的符号 表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。 ​ 不同运算符连接的表达式体现的是不同类型的表达式。…

Java集合-List

1.Collection集合 1.1集合体系结构【记忆】集合类的特点 ​ 提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变集合类的体系图1.2Collection集合概述和基本使用【应用】Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素…

Java异常处理

3.异常 3.1异常(记忆)异常的概述 ​ 异常就是程序出现了不正常的情况异常的体系结构3.2JVM默认处理异常的方式(理解)如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:把异常的名称,错误原因及异常出现的位置等信息输出在了控制…

JavaIO流---字节流和字符流

1.字节缓冲流 1.1字节缓冲流构造方法【应用】字节缓冲流介绍lBufferOutputStream:该类实现缓冲输出流。 通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层系统的调用lBufferedInputStream:创建BufferedInputStream将创建一个内部缓冲…

MySQL和Navicat安装过程记录Win10

安装MySQL双击下载好的文件点击Execute,等待绿勾后Finish验证配置环境变量以在命令行使用Win+R,输入cmd回车,输入mysql -uroot -p登录成功安装Navicat点击安装,等待完成即可 破解Navicat 破解软件下载地址及具体教程 关闭网络,关闭杀毒软件和Windows防护(不知道去哪里关可…

ASP.NET Core – MVC

前言 在 ASP.NET Core – MVC vs Razor Page 里有提到 MVC. 它算是 WebAPI 的抽象. 但是通常 MVC 指的是比较传统的 Website, WebAPI 则是前后端分离的方案. Razor Page 则是替代 MVC 做 Website 的. 虽然说替代, 但是也不是 100%, 有些场景用 MVC 会比较直观. 这篇就特别来讲一…

乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - 官方扩展集锦(Microsoft.AspNetCore on Nuget)

什么是Microsoft.AspNetCorehttps://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/metapackage-appASP.NET Core共享框架(Microsoft.AspNetCore.App)包含由Microsoft开发和支持的程序集。当安装NET Core 3.0或更高版本SDK时,安装Microsoft.AspNetCore.App。共享框架是安…

Vue复习1.0

Vue复习1.0内容:Vue基础语法、计算属性、概念、指令 Vue复习2.0已发布,文章涉及完整代码已全部上传至GitHub:Vue复习2.0——组件化开发详解 @目录Vue复习1.0Vue的MVVMVue模板1. Vue列表显示2. 计数器3. Vue指令1. v-html2. v-once3. v-cloak4. v-bind5. v-on(缩写:@)6. v-i…

乘风破浪,遇见最佳跨平台跨终端框架.Net Core/.Net生态 - .NET和Unity的未来(来自Unity官方告白)

我们最近发起了一次持续数年的改进行动,帮助用户更快地编写性能更高的代码,并带来长期的稳定性与兼容性。请在本文中了解我们在更新脚本基础技术栈方面所做的努力。 .NET生态正在多方面上积极动态地演变,而我们希望尽快将这些改进带给广大用户。我们内部的.NET技术小组正致力…

【pytest】工厂化的fixtures

前言:在一个测试用例中需要多次调用同一个fixture的时候,工厂化的 fixture 的模式对于一个 fixture 在单一的测试中需要被多次调用非常有用。 之前写fixture是直接return一个数据,在测试用例中可以直接使用,现在我们需要返回一个生成数据的函数,这样就能在用例中多次调用了…

【Coel.学习笔记】后缀自动机

接下来就是咕咕咕时间了~来了!NOI 算法中最抽象的字符串算法——后缀自动机! 当然咱只是一个普通的小 OIer,不会搞那么多杂七杂八的ww 引入 后缀自动机(\(\text{Suffix Automaton}\),简称 \(\text{SAM}\))是一种确定性有限状态自动机(\(\text{Determined Finite Automat…

Python 实现雪花算法

Python 实现雪花算法 雪花算法:雪花算法是一种分布式全局唯一ID,一般不需要过多的深入了解,一般个人项目用不到分布式之类的大型架构,另一方面,则是因为,就算用到市面上很多 ID 生成器帮我们完成了这项工作。 介绍:Twitter 于 2010 年开源了内部团队在用的一款全局唯一 …

Python小游戏——外星人入侵(保姆级教程)第一章 06让飞船移动

Python小游戏——外星人入侵(保姆级教程) 第一章:武装飞船 06:让飞船移动 下面来让玩家能够左右移动飞船。我们将编写代码,在用户按左或右箭头键时做出响应。我们将首先专注于向右移动,再使用同样的原理来控制向左移动。通过这样做,你将学会如何控制屏幕图像的移动。系列…