Pseudo-LiDAR from Visual Depth Estimation:

今天想分享的是CVPR2019的一项来自美国康奈尔大学的研究。他们提出了一种新的方法,称为虚拟激光雷达。能够缩小自动驾驶领域基于激光雷达和基于摄像头的3D目标检测方法之间的差距。使得摄像机代替激光雷达成为了可能。虚拟激光雷达也是现在美国自动驾驶公司特斯拉的主要推崇的技术。

 

首先来看什么是3D目标检测。目标检测是为了定位和分类物体。

3D目标检测输出物体类别及在三维空间中的长宽高、旋转角等信息

可靠和鲁棒的三维目标检测是自动驾驶的基本要求之一。毕竟,为了避免与行人,汽车相撞,车辆首先必须能够检测到它们。

之前讲过,自动驾驶的车上会安装很多的传感器。激光雷达,摄像头和毫米波雷达等。

因为毫米波雷达的精度太低,所以整个领域现在主要关心激光雷达和摄像头。

现阶段基于激光雷达的3D目标检测方法的准确率要远远高于基于摄像头的方法,

所以这篇文章想要,提高基于摄像头的3D目标检测方法的准确率,来减小这种差距。

 

那么说到这里,可能大家会想,既然激光雷达的方法这么好,为什么不直接利用激光雷达?

首先,从成本的角度。自动驾驶要落地量产的话,成本肯定是一个很重要的考虑因素。

现在市面上便宜的激光雷达也要十几万块钱。一个摄像头只需要大概几百块钱,价格差了好几个数量级。因此以特斯拉为代表的车厂,为了降低成本,开始研究用摄像头来代替激光雷达的技术。也就是我们刚刚提到的 提高摄像头的准确率,来缩小与激光雷达之间的差距。

同时我们可以察觉到,将来自动驾驶这个行业是以激光雷达为主导还是摄像头为主导,就要看激光雷达价格下降的快还是计算机视觉技术发展的快了。

 

第二点.依靠单一传感器是有风险的。但是出于成本的考虑,不会安装两个激光雷达。

研究用摄像头代替激光雷达的技术,可以做一个冗余备份。在激光雷达出故障的时候,摄像头可以取代他。提高了自动驾驶系统的安全。

 

 

刚才说到,现阶段基于摄像头的3D目标检测方法的准确率与基于激光雷达的方法存在很大的差距,那我们首先分析差距产生的原因

刚刚说了,目标检测就是对目标进行分类和定位。对物体的深度,也就物体到自动驾驶车的距离,估计的越准确,定位就越准,目标检测的准确率越高。

激光雷达的原理是激光测距,对距离估计的比较准确。

摄像头就像人眼一样,只能对距离有个大概的估计。

所以人们普遍认为,产生上述差距的原因是摄像头对深度的估计不如激光雷达。

 

而这篇文章提出了不一样的观点。他认为对数据的表示形式才是造成差距的主要原因

我们待会在证明这一点。

 

因此他提出了一种新的数据表示方法。虚拟激光雷达。将图像数据转换成激光雷达的表示形式。然后使用基于激光雷达的目标检测方法。

效果:将原有的图像方法准确率从22%提升到了74%。将基于图像的3D目标检测方法的准确率提升了3倍。占据了当时KITTI 摄像头3D目标检测方法的榜首

 

现在我们说一下方法的细节。

按照Pipeline,首先从单目或者双目摄像头获取的图像中,得到深度图。

以双目摄像机为例,来说一下得到深度图的过程。

双目摄像机有一左一右两个摄像头。

左右两张图分别是左右两边摄像头得到的图像。

我们可以观察到相同的一个点,比如我在图上标的这个小熊胳膊的最外端。在左右两张图像上的位置有一个水平的偏移。

这和人眼是一样的。大家可以伸出一个手指,放在你的眼前。先只睁开左眼,记住手指的位置。然后换右眼,就可以观察到手指位置的改变。

这个位置的改变量称为视差。这里我们用Y表示。在计算的时候,一般将左图作为参照物,(uv)表示左图中某一个点的坐标。Yu,v)是左右图像匹配点的视差。

距离相机越近,这个视差越大。深度D和视差Y成反比。反比例因子是fu*b.

fU是相机的水平焦距。B是两个相机之间的水平距离,类似于我们的眼距。

这是一种在理想情况下获得深度的方法,他要求这两个摄像机必须平行共面。这个实际安装和道路颠簸的情况下,很难保证。另外考虑到单目摄像机不能用这种方法。因此,作者在后面实验里还是用神经网络来获取深度。。

知道这个深度之后,如何得到虚拟激光雷达数据呢?

激光雷达数据由坐标(x,y,z)和强度组成。

我们把刚刚计算的深度信息认为是zX,y通过下面的式子得到。

Cu,cv是左边相机的中心点坐标。Fu,fv是水平和竖直方向的焦距。

这个方法没法获得强度信息,一般的强度是(0,1)之间的值。在这里作者把强度都设为1.

 

 

到这里,作者的方法就讲完了。我们将它和之前的基于图像的目标检测方法做一下对比

之前的方法是从图像中得到深度信息,作为一个单独的通道,和图像的三通道RGB一起,以RGB-D的形式,输入到神经网络中去。

 

人们过去认为,目标检测结果不准是因为对距离的估计不准。所以过去很多方法都在深度估计这里设计更加复杂的网络模型,准确率提高的并不多。

这篇文章只是增加了一个数据表示形式的转变,这种转变还是简单的数值计算,但是却将准确度提升了好几倍。就像作者说的,有时候简单的发现可以带来巨大的改变。

Sometimes, it is the simple discoveries that make the biggest differences

 

 

我们现在对作者的观点实验的证明

作者认为对数据的表示形式才是造成差距的主要原因。

那么原来的这种图像的表示形式有什么问题呢

他们证明了以 前视图 表示的图像在经过卷积之后出现了深度丢失

左边是深度估计得到的深度图,按照之前的pipeline,深度图要输入到卷积神经网络中,得到3D目标检测的结果。右边是经过卷积之后的深度图。比起左边的图,变得模糊。

可能这里看的不是很明显,我们都把转成鸟瞰图的虚拟激光雷达形式。每一个框都代表一辆车。框的纵向代表车的深度信息。我们可以看到经过卷积以后,这些汽车被拉长了,远远超过了它们实际的比例,人们基本上不可能精确地定位它们

 

作者提出了图像在2D卷积中深度消失可能的原因

 

实际空间中的不连续性

在2D图像中,不同深度的物体均呈现在同一个平面上。2D卷积的感受野把在实际空间中距离很远的目标聚在了一起,用相同的处理方式,因此在这种情况下的精确定位比较困难。

比如在这个图的框中,按深度从小到大排序有手、球拍、人脸等,这些物体以front view的形式是连在一起的,而网络并不能感知到他们在实际空间中是不连续的。

 

在前视图中近大远小的问题

越远的物体在front view中是越小的,而检测小物体本身就是一个比较难的任务。因此,深度图中不同尺度的物体也增加了Image-based 3D Perception的难度。

激光雷达的数据一般是用鸟瞰图处理的,不同位置的物体并不会重叠在一起。也不会有这种近大远小的问题。

 

作者做了这两种表示方法的对比实验。黑色的是前视图的图像的表示方法,蓝色的是虚拟激光雷达的表示方法。(最后两行),可以看出准确率还是提升了不少。

基于图像和基于激光雷达的方法对比,使用的kitti数据集。根据目标之间的遮挡和截断程度,目标离自动驾驶车的距离,目标的大小将他们分成简单,中等和困难三个等级。IOU是检测出来的目标边界框和真实边界框的交并比。这个值越大,说明重合度越大。IOU越大,就要求目标检测方法越准确。

跟上一张图一样,蓝色的是虚拟雷达的结果,灰色的是真正激光雷达的结果。

可以看出,新的方法要比之前纯单目和双目的方法要好。比起激光雷达的方法还有一点差距,并且随着问题困难程度的增加,差距也逐渐增大。

这里有一个奇怪的地方,作者并没有使用纯激光雷达的方法,而是使用了激光雷达+图像的融合的方法,来做这个实验。在做对比实验的时候,是将融合方法中的激光雷达数据替换成了虚拟雷达数据来做的。

 

   另外作者还做了不同类别的对比。刚才的实验都是基于车这个类型做的实验,作者又在行人和骑自行车的人这两类数据中做了实验。这两个类别比起车来说,更小,更难准确的检测。这个实验表明了,在这个更难的问题中,真实雷达的准确率要比虚拟的高很多。

最后一个实验就是一个可视化的对比。红色的是物体实际的边界框,绿色的是检测出的边界框。可以看到虚拟的方法和真实雷达的方法,在近距离和中等距离的物体上相差不大。特别远的物体还是有一定的差距。虚拟的方法对比原来图像的方法,可以看到准确率上有了很大的改进。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值