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

2024-01-22 18:12

本文主要是介绍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 美元。

,,,

这篇关于PSEUDO-LIDAR++:自动驾驶中 3D 目标检测的精确深度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/633807

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

韦季李输入法_输入法和鼠标的深度融合

在数字化输入的新纪元,传统键盘输入方式正悄然进化。以往,面对实体键盘,我们常需目光游离于屏幕与键盘之间,以确认指尖下的精准位置。而屏幕键盘虽直观可见,却常因占据屏幕空间,迫使我们在操作与视野间做出妥协,频繁调整布局以兼顾输入与界面浏览。 幸而,韦季李输入法的横空出世,彻底颠覆了这一现状。它不仅对输入界面进行了革命性的重构,更巧妙地将鼠标这一传统外设融入其中,开创了一种前所未有的交互体验。 想象

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

Python3 BeautifulSoup爬虫 POJ自动提交

POJ 提交代码采用Base64加密方式 import http.cookiejarimport loggingimport urllib.parseimport urllib.requestimport base64from bs4 import BeautifulSoupfrom submitcode import SubmitCodeclass SubmitPoj():de

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口