PSEUDO-LIDAR++:自动驾驶中 3D 目标检测的精确深度

论文地址:PSEUDO-LIDAR++: ACCURATE DEPTH FOR 3D OBJECT DETECTION IN AUTONOMOUS DRIVING
论文代码:https://github.com/mileyan/Pseudo_Lidar_V2

摘要

3D 检测汽车和行人等物体在自动驾驶中发挥着不可或缺的作用。现有方法很大程度上依赖昂贵的激光雷达传感器来获取准确的深度信息。虽然最近推出了伪激光雷达作为一种有前途的替代方案,但仅基于立体图像的成本要低得多,但仍然存在显着的性能差距。

论文通过立体深度估计的改进为伪激光雷达框架提供了实质性的进步。具体来说,论文调整立体网络架构和损失函数,使其与远处物体的准确深度估计更加一致——目前这是伪激光雷达的主要弱点。此外,探索利用更便宜但极其稀疏的 LiDAR 传感器来消除深度估计的偏差,这些传感器本身无法为 3D 检测提供足够的信息。
论文提出了一种深度传播算法,以初始深度估计为指导,将这几个精确的测量结果扩散到整个深度图上。

引言

自动驾驶汽车的安全驾驶需要对汽车、行人和其他目标进行精确的 3D 检测和定位。这反过来又需要准确的深度信息,这些信息可以从 LiDAR(光探测和测距)传感器获得。尽管 LiDAR 传感器高度精确且可靠,但其价格却非常昂贵:64 光束型号的成本约为 75,000 美元。另一种方法是通过廉价的商用相机测量深度。
然而,尽管伪 LiDAR 最近在基于立体(双目相机)的 3D 目标检测方面取得了巨大进展 [1],仍然存在显着的性能差距,尤其是对于远处的物体(我们希望尽早检测到,以便有时间做出反应)。负担能力和安全性之间的权衡造成了道德困境。

[1] Yan Wang, Wei-Lun Chao, Divyansh Garg, Bharath Hariharan, Mark Campbell, and Kilian Q. Weinberger. Pseudo-lidar from visual depth estimation: Bridging the gap in 3d object detection for autonomous driving. In CVPR, 2019a.

本文中,结合了两个角度的见解,提出了解决这一剩余挑战的可能解决方案。观察到,与基于 LiDAR 的系统相比,基于立体系统的 3D 目标定位误差更高,完全源于深度估计中的更高误差(在获得 3D 点云之后,这两种方法是相同的。重要的是,这个错误不是随机 的,而是系统的:观察到立体方法确实能够以高可靠性检测目标,但它们估计整个目标的深度要么太远要么太近。

如图:绿色框是 KITTI 数据集中汽车的地面真实位置,红点是通过立体视差网络获得的。使用立体深度网络 (SDN) 获得的紫色点更接近事实。经过深度传播(蓝点)和一些(黄色)LiDAR 测量后,汽车正好位于绿色方框内。 (一层正方形为 1m × 1m),红色立体点捕获汽车,但完全偏离地面实况位置(绿色框)约 2m。
如果能够消除这些深度估计的偏差,即使对于远处的目标也应该能够获得准确的 3D 定位,而无需高昂的成本。
在这里插入图片描述
论文首先重新审视嵌入最先进的立体 3D 检测方法核心的深度估计例程。
系统深度偏差的一个主要因素来自于深度通常不直接计算的事实。相反,论文首先估计视差(左右图像之间像素的水平移位),然后将其反转以获得逐像素深度。

虽然深度神经网络的使用极大地改善了视差估计,但设计和学习网络以优化准确性由于相互变换,视差估计的方法只是过分强调附近的物体。
例如,5米远物体的单位视差误差(以像素为单位)意味着10厘米的深度误差:侧镜的长度。然而,对于 50 米外的物体,相同的视差误差会变成 5.8m 的深度误差:整辆车的长度。对这两个错误进行同等惩罚意味着网络花费更多的时间来纠正附近物体上的细微错误,而不是远处物体上的严重错误,从而导致深度估计降低,最终导致远处物体的检测和定位效果不佳。
提出因此,论文t采用立体网络架构和损失函数来进行直接深度估计。具体来说,融合左右图像的 cost volume 以及随后的 3D 卷积是立体网络中的关键组成部分。采用卷积的中心假设——所有邻域都可以以相同的方式进行操作——论文提出在深度网格而不是视差网格上构建成本量,从而使 3D 卷积和损失函数能够在深度估计的正确尺度上精确执行。论文的网络被称为立体深度网络(SDN)。

尽管 SDN 显着改进了深度估计,但立体图像本质上仍然是 2D,并且尚不清楚它们是否能够与真正的 3D LiDAR 传感器的准确性和可靠性相匹配。尽管具有 32 或 64 光束的 LiDAR 传感器价格昂贵,但仅具有 4 光束的 LiDAR 传感器便宜两个数量级2,因此很容易负担得起。4 束激光束非常稀疏,不适合单独捕获 3D 物体形状,但如果与立体图像配对,它们将成为消除密集立体深度估计偏差的理想工具:单个高精度激光束可以告诉我们如何校正整个汽车或行人在其路径中的深度
为此,论文提出了一种新颖的深度传播算法,其灵感来自于基于图的流形学习。简而言之,通过最近邻图在本地连接估计的 3D 立体点云,这样对应于同一目标的点将彼此共享许多本地路径。首先将少数但精确的 LiDAR 测量值与像素(无论深度)进行匹配,然后与相应的 3D 点进行匹配,以获得图中多个节点的准确深度估计。最后,使用标签扩散机制沿图传播精确的深度信息,从而以可忽略的成本生成密集且准确的深度图。在上图中,看到少量(黄色)LiDAR 测量结果足以将整辆车的几乎所有最终(蓝色)点定位在绿色地面实况框中。

背景

3D 物体检测

大多数 3D 物体检测。工作都以 LiDAR 的 3D 点云为输入等人;Frustum PointNet 将 PointNet 直接应用于点,而 Voxelnet 将它们量化为 3D 网格。对于街道场景,一些研究发现处理鸟瞰图的点已经可以捕获物体的轮廓和位置。图像也被使用,但主要是为了补充 LiDAR。早期仅基于图像的工作主要建立在 2D 正面视图检测管道上——在 3D 目标定位方面远远落后。

伪点云

最近,随着 [1] 中提出的伪激光雷达框架的引入,这一差距已显着缩小。该框架采用了与之前基于图像的 3D 目标检测器截然不同的方法。伪激光雷达不是直接从场景的正面视图检测 3D 边界框,而是从基于图像的深度估计开始,预测每个图像像素 ( u , v ) (u, v) (u,v) 的深度 Z ( u , v ) Z(u, v) Z(u,v)。然后将生成的深度图 Z Z Z 反投影到 3D 点云中:像素 ( u , v ) (u, v) (u,v) 将通过以下方式转换为 3D 中的 ( x , y , z ) (x, y, z) (x,y,z)
z = Z ( u , v ) , x = ( x − c U ) × z f U , y = ( v − c V ) × z f V , (1) \tag1 z=Z(u,v),\space x=\frac{(x-c_U) \times z}{f_U}, \space y= \frac{(v-c_V)\times z}{{f_V}}, z=Z(u,v), x=fU(xcU)×z, y=fV(vcV)×z,(1)

其中 ( c U , c V ) (c_U,c_V) (cUcV) 是相机中心, f U f_U fU f V f_V fV 是水平和垂直焦距。然后,3D 点云将被完全视为 LiDAR 信号 - 任何基于 LiDAR 的 3D 探测器都可以无缝应用。

立体视差估计

伪激光雷达在很大程度上依赖于深度估计的质量。本质上,如果估计的像素深度与 LiDAR 提供的像素深度相匹配,则具有任何基于 LiDAR 的检测器的伪 LiDAR 应该能够实现与将相同检测器应用于 LiDAR 信号所获得的性能相同的性能。
根据立体图像对的深度估计用于 3D 目标检测比单目即单目图像更准确。因此,论文专注于立体深度估计,这通常是通过估计图像之间的视差获得的。

视差估计算法采用一对左右图像 I l I_l Il I r I_r Ir 作为输入,从一对具有水平偏移(即基线) b b b 的相机捕获。不失一般性,假设该算法将左图像 I l I_l Il 作为参考,并输出视差图 D D D,记录每个像素 ( u , v ) (u, v) (u,v) 的水平视差 I r I_r Ir 。理想情况下, I l ( u , v ) I_l(u, v) Il(u,v) I r ( u , v + D ( u , v ) ) I_r(u, v +D(u, v)) Ir(u,v+D(u,v)) 将描绘相同的 3D 位置。因此,可以通过以下变换导出深度图 Z Z Z
Z ( u , v ) = f U × b D ( u , v ) ( f U : 水平焦距 ) , (2) \tag2 Z(u,v) = \frac{f_U \times b}{D(u,v)} (f_U: \text{水平焦距}), Z(u,v)=D(u,v)fU×b(fU:水平焦距),(2)

视差估计的常见流程是首先构建 4D 视差 cost vloume C d i s p C_{disp} Cdisp,其中 C d i s p ( u , v , d , : ) C_{disp}(u, v, d, :) Cdisp(u,v,d,:) 是一个特征向量,捕获 I l ( u , v ) I_l(u, v) Il(u,v) I r ( u , v + d ) I_r(u, v+d) Ir(u,v+d) 之间的像素差异。然后根据 cost vloume C d i s p C_{disp} Cdisp 估计每个像素 ( u , v ) (u, v) (u,v) 的视差 D ( u , v ) D(u, v) D(u,v)。一种基本算法是使用 C d i s p ( u , v , d ) = ∣ ∣ ( u , v ) − I r ( u , v + d ) ∣ ∣ 2 C_{disp}(u, v, d) = ||(u, v)−I_r(u, v+d)||_2 Cdisp(u,v,d)=∣∣(u,v)Ir(u,v+d)2 构建 3D cost vloume,并将 D ( u , v ) D(u, v) D(u,v) 确定为 a r g m i n d C d i s p ( u , v , d ) argmin_d C_{disp}(u,v,d) argmindCdisp(u,v,d)。高级算法在构建 C d i s p C_{disp} Cdisp 时利用更强大的功能,并对 D D D 执行结构化预测。

PSMNet 首先从 I l I_l Il I r I_r Ir 中分别提取深度特征图 h l h_l hl h r h_r hr。然后它通过连接 h l ( u , v ) h_l(u, v) hl(u,v) h r ( u , v + d ) h_r(u, v + d) hr(u,v+d) 的特征来构造 C d i s p ( u , v , d , : ) C_{disp}(u, v, d, :) Cdisp(u,v,d,:),接下来是 3D 卷积层。 得到的 3D 张量 S d i s p S_{disp} Sdisp(特征通道大小最终为 1)随后用于通过以下加权组合导出像素视差:
D ( u , v ) = ∑ d softmax ( − S d i s p ( u , v , d ) ) × d , (3) \tag3 D(u,v)=\sum_d \text{softmax}(-S_{disp}(u,v,d)) \times d, D(u,v)=dsoftmax(Sdisp(u,v,d))×d,(3)

其中,softmax 是沿着 S d i s p S_{disp} Sdisp 的第三维执行的。 PSMNet 可以端到端学习,包括图像特征提取器和 3D 卷积核,以最小化视差误差:
∑ ( u , v ) ∈ A ℓ ( D ( u , v ) − D ∗ ( u , v ) ) , (4) \tag4 \sum_{(u,v)\in \mathcal A} \ell (D(u,v)-D^* (u,v)), (u,v)A(D(u,v)D(u,v)),(4)

其中 ℓ \ell 是平滑的 L1 损失, D ∗ D^* D 是地面实况图, A \mathcal A A 包含具有地面实况的像素。

立体深度网络 (SDN)

设计和学习以最小化视差误差(参见公式 4)的立体网络可能会过度强调具有较小深度的附近物体,因此在估计远处物体的深度时表现不佳。要了解这一点,请注意等式 2 意味着对于给定的视差 δ D \delta D δD 误差,深度 δ Z \delta Z δZ 误差随深度呈二次方增加:
Z ∝ 1 D ⟹ δ Z ∝ 1 D 2 δ D ⟹ δ Z ∝ Z 2 δ D (5) \tag5 Z \varpropto \frac{1}{D}\implies \delta Z \varpropto \frac{1}{D^2} \delta D \implies \delta Z \varpropto Z^2 \delta D ZD1δZD21δDδZZ2δD(5)

中间项是通过对 Z ( D ) Z(D) Z(D) w.r.t. D D D 进行微分获得的。 特别是,使用 KITTI 数据集上的设置,视差中的单个像素误差意味着在 5 米深度处仅存在 0.1m 的深度误差,而在 5 米深度处则存在 5.8m 的误差。深度50米。

如下图为从视差到深度的映射:
在这里插入图片描述

深度损失

论文提出了两项​​改变来适应立体网络以进行直接深度估计。
首先,学习立体网络来直接优化深度损失
∑ ( u , v ) ∈ A ℓ ( Z ( u , v ) − Z ∗ ( u , v ) ) . (6) \tag6 \sum _{(u,v)\in \cal A} \ell(Z(u,v)-Z^*(u,v)). (u,v)A(Z(u,v)Z(u,v)).(6)

Z Z Z Z ∗ Z^* Z 可以使用公式 2 从 D D D D ∗ D^* D 获得。从视差损失到深度损失的变化纠正了对附近物体微小深度误差的过分强调——必要但仍然不够克服视差估计的问题。

Depth Cost Volume

为了促进准确的深度学习(而不是视差),需要进一步解决深度估计管道的内部问题。错误的一个重要来源是 4D 视差 cost volume 内的 3D 卷积,其中相同的内核应用于整个 cost volume 。这是一个很大的问题,因为它隐含地假设卷积的效果在整个过程中是均匀的——这明显违反了深度与视差关系的倒数(图 2)。例如,局部平滑视差为 85 和 86 的两个相邻像素(将深度更改几厘米以平滑表面)可能是完全合适的,而对视差为 5 和 6 的两个像素应用相同的内核可以轻松移动 3D 点相差 10m 或更多。

考虑到这一见解和卷积的中心假设(所有邻域都可以以相同的方式进行操作),我们提出改为构造 Depth Cost Volume C d e p t h C_{depth} Cdepth ,其中 C d e p t h ( u , v , z , : ) C_{depth}(u,v,z,:) Cdepth(u,v,z,:) 将编码特征描述像素 ( u , v ) (u, v) (u,v) 的深度 Z ( u , v ) Z(u, v) Z(u,v) z z z 的可能性。随后的 3D 卷积将在深度网格(而不是视差)上运行,以相同的方式影响相邻深度,而与它们的位置无关。然后使用生成的 3D 张量 S d e p t h S_{depth} Sdepth 来预测像素深度,类似于公式 3
Z ( u , v ) = ∑ z s o f t m a x ( − S d e p t h ( u , v , z ) ) × z . Z(u,v) = \sum_{z}softmax (-S_{depth(u,v,z)}) \times z. Z(u,v)=zsoftmax(Sdepth(u,v,z))×z.

论文基于这样的直觉构造新的深度体积 C d e p t h C_{depth} Cdepth C d e p t h ( u , v , z , : ) C_{depth}(u,v,z,:) Cdepth(u,v,z,:) C d i s p ( u , v , f U × b z , : ) C_{disp}(u,v,\frac{f_U \times b}{z},:) Cdisp(u,v,zfU×b,:), 应该导致等效的 “cost”。
为此,应用双线性插值,使用等式 2 中的深度到视差变换从 C d i s p C_{disp} Cdisp 构造 C d e p t h C_depth Cdepth。具体来说,考虑 PSMNet 后 [0, 191] 范围内的视差,并考虑[1m,80m]范围内的深度,并将 C d e p t h C_depth Cdepth中深度的网格设置为1m。
在这里插入图片描述上图(上)描绘了立体深度网络 (SDN) 管道。至关重要的是,所有卷积运算都专门在 C d e p t h C_{depth} Cdepth上进行。
下图比较了使用视差成本量(即 PSMNet)和深度成本量(SDN)的绝对深度估计误差的中值。
在这里插入图片描述

正如预期的那样,对于远距离深度,SDN 导致误差大大减小,并且在非常近的范围内仅略有增加(基于视差的方法过度优化)。

深度校正

SDN 显着改进了深度估计并更精确地渲染了对象轮廓(见下图)。
在这里插入图片描述
视差 cost volume(左)与深度 cost volume(右)。该图显示了从 LiDAR(黄色)和立体(紫色)获得的 3D 点,对应于 KITTI 中的一辆汽车,从鸟瞰图(BEV)看到的。差异 cost volume 中的点被拉长且嘈杂;而来自深度 cost volume 的点则忠实地捕捉到汽车轮廓。

然而,由于像素的离散性质,立体图像存在一个基本限制:视差(即相应像素之间水平坐标的差异)必须在单个像素的级别上进行量化,而深度是连续的。尽管可以通过更高分辨率的图像来减轻量化误差,但计算深度预测成本会随着分辨率的增加而呈三次方变化,从而突破了自动驾驶汽车中 GPU 的极限。

因此,论文探索了一种混合方法,利用具有极其稀疏(例如 4 束)但精确的深度测量的廉价 LiDAR 来纠正这种偏差。我们注意到,此类传感器太稀疏,无法捕获物体形状,并且不能单独用于检测。然而,通过将激光雷达点投影到图像平面上,我们可以获得一小部分“地标”像素的精确深度。

论文提出了一种基于图的深度校正(G​​DC)算法,该算法有效地结合了渲染对象形状的密集立体深度和稀疏的精确激光雷达测量。从概念上讲,我们期望校正后的深度图具有以下属性:全局上,与 LiDAR 点关联的地标像素应具有精确的深度;在本地,应保留由相邻 3D 点捕获的、从输入深度图反投影的对象形状(参见公式 1)。

输入匹配

通过立体深度估计将来自 LiDAR (L) 和 Pseudo-LiDAR (PL) 的两个点云作为输入。后者是通过将深度为 z z z 的像素 ( u , v ) (u, v) (u,v) 转换为 3D 点 ( x u , y v , z ) (x_u, y_v, z) (xu,yv,z) 来获得的。
首先,通过 PL 点云中的有向 K-最近邻 (KNN) 图(使用加速 KD 树)来表征局部形状,该图将每个 3D 点与其具有适当权重的 KNN 连接起来。同样,可以将 3D LiDAR 点投影到像素位置 ( u , v ) (u, v) (u,v) 上,并将它们与相应的 3D 立体点进行匹配。不失一般性,假设我们获得了前 n n n 个点的“地面实况”LiDAR 深度,而其余 m m m 点则没有地面实况。我们将 3D 立体深度估计称为 Z ∈ R n + m Z ∈ \R ^{n+m} ZRn+m,将 LiDAR 深度地面实况称为 G ∈ R n G ∈ \R ^n GRn

边权重

为了构建 3D 的 KNN 图,忽略前 n n n 个点的 LiDAR 信息,只使用它们在 Z Z Z 中预测的立体深度。让 N i \mathcal {N}_i Ni 表示第 i i i 个点的 k k k 个邻居的集合。此外,令 W ∈ R ( n + m ) × ( n + m ) W \in \R ^{(n+m)×(n+m)} WR(n+m)×(n+m) 表示权重矩阵,其中 W i j W_{ij} Wij 表示点 i i i j j j 之间的边权重。受到流形学习先前工作的启发,选择权重作为系数,从 N i \mathcal {N}_i Ni 中任何点的邻居深度重建任何点的深度。可以通过以下约束二次优化问题来求解这些权重:
W = arg min W ∣ ∣ Z − W Z ∣ ∣ 2 2 , s . t . W 1 = 1 a n d W i j = 0 if  j ∉ N i . (7) \tag 7 W = \text{arg min}_W ||Z-WZ||_2^2, s.t. W\boldsymbol 1= \boldsymbol 1 \space and \space W_{ij} = 0 \space \text{if}\space j \notin \mathcal {N}_i. W=arg minW∣∣ZWZ22,s.t.W1=1 and Wij=0 if j/Ni.(7)

这里 1 ∈ R n + m \boldsymbol 1 \in \R^{n+m} 1Rn+m表示全1向量。只要我们选择 k > 3 k > 3 k>3 并且点处于一般位置,就有无限多个满足 Z = W Z Z = WZ Z=WZ 的解,并且论文选择具有最小 L2 范数的解(通过轻微的 L2 正则化获得)。

深度校正

将校正后的深度值表示为 Z ′ ∈ R n + m Z^{'}∈ \R ^{n+m} ZRn+m,其中 Z ′ = [ Z L ′ ; Z P L ′ ] Z^{'} = [Z^{'}_L;Z^{'}_{PL}] Z=[ZL;ZPL] Z L ′ ∈ R n Z^{'}_L \in \R^{n} ZLRn Z P L ′ ∈ R m Z^{'}_{PL} \in \R^{m} ZPLRm ,其中 Z L ′ ∈ R n Z^{'}_L \in \R^{n} ZLRn 是具有 LiDAR 地面实况的点的深度值,否则为 Z P L ′ ∈ R n Z^{'}_{PL} \in \R^{n} ZPLRn
对于 LiDAR 测量的 n n n 个点,将深度更新为(地面实况)值 Z L ′ = G Z^{'}_L = G ZL=G 。然后,在给定 G G G W W W 中编码的加权 KNN 图的情况下求解 Z P L ′ Z^{'}_{PL} ZPL 。具体来说,更新剩余深度 Z P L ′ Z^{'}_{PL} ZPL,使得任何点 i i i 的深度仍然可以使用学习的权重 W W W 以高保真度重建为其 KNN 深度的加权和;即,如果点 i : 1 ≤ i ≤ n i : 1 ≤ i ≤ n i:1in 移动到新的深度 G i G_i Gi,则 N i \mathcal {N}_i Ni 中的邻居也必须进行校正,使得 G i ≈ ∑ j ∈ N i W i j Z j ′ Gi ≈ \sum_{ j∈ \mathcal {N}_i} W_{ij}Z_j^{'} GijNiWijZj。此外,必须纠正邻居的邻居,并且这几个 n n n 点的深度会传播到整个图。我们可以通过另一个二次优化直接求解最终的 Z ′ Z^{'} Z
Z ′ = arg min Z ′ ∣ ∣ Z ′ − W Z ′ ∣ ∣ 2 , s . t . Z 1 : n ′ = G (8) \tag8 Z^{'} = \text{arg min}_{Z^{'}}||Z^{'}-WZ^{'}||^2, s.t. \space Z_{1:n}^{'} = G Z=arg minZ∣∣ZWZ2,s.t. Z1:n=G(8)

为了说明校正过程,想象一下最简单的情况,其中仅单个点( n = 1 n = 1 n=1)的深度更新为 G 1 = Z 1 + δ G_1 = Z_1 + δ G1=Z1+δ。方程 8 的新最佳深度是类似地移动所有剩余点,即 Z ′ = Z + 1 δ Z^{'} = Z + \boldsymbol 1δ Z=Z+1δ:由于 Z = W Z Z = WZ Z=WZ W 1 = 1 W \boldsymbol1 = \boldsymbol1 W1=1,必须有 W ( Z + 1 δ ) = Z + 1 δ W(Z + \boldsymbol 1δ) = Z + \boldsymbol 1δ W(Z+1δ)=Z+1δ

n > 1 n > 1 n>1 的设置中,最小二乘损失确保不同 LiDAR 深度估计之间的软扩散。方程 7 和方程 8 中的两个优化问题都可以使用稀疏矩阵求解器准确有效地求解。

从基于图的流形学习的角度来看,GDC 算法让人想起局部线性嵌入,并用地标来指导最终解决方案。图 1 生动地说明了如何使用一些稀疏 LiDAR 测量值(黄色)来校正 KITTI 数据集中汽车的 SDN(紫色)的初始 3D 点云。得到的点(蓝色)位于地面实况框内,清楚地显示汽车的轮廓。图 4 显示了 GDC(蓝色)相对于纯 SDN 深度估计的额外改进。误差(仅在非地标像素上计算)在整个图像上进行校正,其中许多区域没有 LiDAR 测量。这是因为伪 LiDAR 点云足够密集,并且我们选择足够大的 k k k(实际上,我们使用 k = 10),这样 KNN 图通常是连通的(或由几个大的连通分量组成)。对于汽车等物体,GDC 的改进要明显得多,因为这些物体通常会被四个 LiDAR 光束接触,并且可以得到有效校正。

结论

在论文中,做出了两项贡献,以改进自动驾驶车辆中的 3D 物体检测,而无需昂贵的 LiDAR。
首先,将视差估计确定为基于立体的系统的主要误差源,并提出了一种直接端到端学习深度的新方法,而不是通过视差估计。其次,主张不要使用昂贵的激光雷达传感器来了解物体的局部结构和深度。相反,人们可以使用商品立体相机来实现前者,并使用廉价的稀疏激光雷达来纠正所得深度估计中的系统偏差。提供了一种新颖的图传播算法,该算法集成了两种数据模态,并使用两个稀疏矩阵求解器传播稀疏但准确的深度估计。由此产生的系统 PSEUDO-LIDAR ++ (SDN + GDC) 的性能几乎与 75,000 美元的 64 光束 LiDAR 系统相当,但只需要 4 个光束和两个商用相机,总成本不到 1,000 美元。

,,,

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

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

相关文章

华为数通方向HCIP-DataCom H12-831题库(判断题:81-100)

第81题 基本QinQ能根据业务种类选择外层Tag封装的方式 正确 错误 答案: 错误 解析: 基本QinQ是基于端口方式实现的,不能根据业务种类选择外层TAG封装的方式。 第82题 display interface GE0/0/0-次,发现Total Error计数(该接口物理层的错误报文总数目)不是此时可以断定当前…

登录页面(附源码)

特色&#xff1a; 点击登录之后卡片翻转效果 话不多说&#xff0c;看展示。 还在等什么&#xff0c;赶快白嫖起来吧 HTML文件 <div id"window" style"display: none"><div class"page page-front"><div class"page-content&…

SCCB接口

文章目录 概述引脚传输时序起始/结束信号三线模式两线模式 传输周期3阶段写传输周期2阶段写传输周期2阶段读传输周期阶段一 ID Address阶段二 子地址/读数据阶段三 写数据 SCCB与IIC区别未完待续(还有代码&#xff09;... 概述 SCCB&#xff08;Serial Camera Control Bus&…

aspose-cells-20.7.jar 去除水印及次数限制

1.使用 jd-gui.exe 反编译查看&#xff0c;直接搜索 License 1.修改 public static boolean isLicenseSet() {return (a ! null);}改成 public static boolean isLicenseSet() {return true;}2.修改 public void setLicense(InputStream stream) {Document document null;if (…

【EI会议征稿通知】2024年第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)

2024年第四届人工智能、自动化与高性能计算国际会议&#xff08;AIAHPC 2024&#xff09; 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing 2024第四届人工智能、自动化与高性能计算国际会议(AIAHPC 2024)将于20…

SpringMVC:拦截器

一般我们会做一些统一的操作这个时候我们需要使用springmvc提供的拦截器&#xff0c;例如token的验证&#xff0c;字段必填的操作&#xff0c;接口超时判断&#xff0c;签名验证&#xff0c;字段加密等操作&#xff0c;所以我们需要了解执行先后顺序。 我们来简单介绍下实现过程…

第6章-路由器、交换机及其操作系统介绍

目录 1. 路由器与交换机的作用与特点 1.1. 路由器 1.2. 交换机 1.3. 路由交换 2. H3C路由器与交换机介绍 3. H3C网络设备操作系统Comware 1. 路由器与交换机的作用与特点 1.1. 路由器 1、定义&#xff1a;路由器&#xff08;Router&#xff09;是连接两个或多个网络的硬…

穿越Flink的时间隧道:解锁实时数据之窗,掌握流处理之巅

目录 Flink中的时间和窗口 1时间语义 1.1Flink中的时间语义 1.1.1处理时间 1.1.2事件时间 1.2那种时间语义更重要 2 水位线 2.1 事件时间和窗口 2.2 什么是水位线 2.3 如何生成水位线 2.3.1使用WatermarkGenerator 2.3.2使用SourceFunction 2.4 水位线的传递 2.5 水位…

R语言中数据框是什么?

在数据分析过程中离不开表格&#xff0c;通常使用Excel来做数据分析&#xff0c;行和列用来存放不同的数据&#xff0c;表格能清晰直观的展示数据&#xff0c;而且可以将多张表组合联系起来&#xff0c;这种不约而同的规范也同样适用于R语言。 R语言中的数据框&#xff08;Data…

2023年度环境电器行业数据分析(洗地机、扫地机器人、吸尘器等)

在家电行业整体消费不振的环境下&#xff0c;环境电器市场也受到影响&#xff0c;2023年度市场大盘销售呈下滑趋势。根据鲸参谋平台的数据显示&#xff0c;2023年京东平台环境电器市场的销量累计约7100万&#xff0c;同比下滑约12%&#xff1b;销售额约360亿&#xff0c;同比下…

【图形学】实现二维几何变换

二维点类 class CPoint2 { public:CPoint2();CPoint2(double x, double y);~CPoint2();friend CPoint2 operator (const CPoint2& p0, const CPoint2& p1);friend CPoint2 operator -(const CPoint2& p0, const CPoint2& p1);friend CPoint2 operator *(const…

云原生 - 微信小程序 COS 对象存储图片缓存强制更新解决方案

问题描述 遇到一个这样的情况&#xff1a;在微信小程序里图片缓存十分麻烦&#xff0c;网上很多说在腾讯云里的 COS 存储对象服务里设置对应的图片缓存&#xff08;Header 头 Cache-Contorl&#xff09;&#xff0c;说实话真不好用&#xff0c;一会儿生效&#xff0c;一会儿没…

excel学习1

直接ctrl cctrl v会报错位移选择粘贴时用123那个数字粘贴而不是ctrl V 只要结果不要公式 上面复制的为数值这里是复制的公式他们两个不一样 这个方法太麻烦了直接用格式刷&#xff0c;选择一个区域一个单元格&#xff0c;不要选择多个一刷就出来了 第一个计算后向下拖就行了&…

FastDFS分布式文件存储

为什么会有分布式文件系统&#xff1f; 分布式文件系统是面对互联网的需求而产生。因为互联网时代要对海量数据进行存储。很显然靠简单的增加硬盘个数已经满足不了我们的要求。因为硬盘传输速度有限但是数据在急剧增长&#xff0c;另外我们还要要做好数据备份、数据安全等。采用…

Git的安装与配置

目录 前言 Linux-centos&#xff1a;下安装 Linux_ubuntu下安装 创建Git本地仓库 配置用户名和Email 前言 Git是一种版本控制器&#xff0c;能够让我们了解一个文件的历史&#xff0c;以及它的发展过程。通俗的将就是可以记录一个工程的每一次改动和版本迭代的一个管理系统…

【vscode】6、调试 shell

文章目录 经常在 IDE 下使用 高级语言后&#xff0c;往往并不习惯 shell 编程&#xff0c;因为没有酷炫的界面。但现在 vscode 可以很方便的调试 shell 脚本。 配置方法如下&#xff1a; vscode 下载 Bash Debug 插件 mac 升级 bash 版本&#xff08;因为此 vscode 插件需要 b…

蓝桥杯重要知识点和赛题直通车

<蓝桥杯软件赛>零基础备赛20周 第 1周(2023-10-23): 蓝桥杯软件赛介绍官方链接零基础能得奖吗&#xff1f; 第 2周(2023-10-30): 常考知识点蓝桥杯怎么判题备赛计划 第 3周(2023-11-06): 填空题&#xff08;分数少但越来越不好做&#xff09; 第 4周(2023-11-13): &#…

更改wpf原始默认按钮的样式

样式 代码 <Window x:Class"WpfApp4.Window1"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008…

141基于matlab的齿轮系统非线性动力学特性分析

基于matlab的齿轮系统非线性动力学特性分析&#xff0c;综合考虑齿侧间隙、时变啮合刚度、综合啮合误差等因素下&#xff0c;参数阻尼比变化调节下&#xff0c;输出位移、相图、载荷、频率幅值结果。程序已调通&#xff0c;可直接运行。 141 matlab齿轮非线性动力学 (xiaohongs…

【C++】多项式输出

记录一下这个WA了三遍才AC的题......QAQ 题目描述 一元 n 次多项式可用如下的表达式表示&#xff1a; 其中&#xff0c;aixi称为 i 次项&#xff0c;ai 称为 i 次项的系数。给出一个一元多项式各项的次数和系数&#xff0c;请按照如下规定的格式要求输出该多项式&#xff1a; f…