基于深度学习的 3D 目标检测与跟踪 01 简介
目标检测一直在计算机视觉领域中占据重要地位。作为图像理解的基石,目标检测广泛应用于诸多领域,例如自动驾驶和机器人视觉。目标检测使得自动驾驶系统能够清晰地看到驾驶环境,并像人类驾驶员一样理解环境中的物体。
随着深度学习的快速发展,深度学习模型可以更轻松地学习复杂、细微和抽象的特征,而无需像传统方法那样进行手动特征提取。鉴于深度学习处理数据的出色能力,目标检测的研究取得了重大进展。
针对2D目标检测的研究已经取得了很大的发展。解决2D目标检测问题的算法的准确性和效率已经达到了很高的水平,并且这些方法在工程实践中起着重要作用。在深度学习技术结合之前,基于滑动窗口的传统检测策略在相当长的时间内一直是主流。在尚未应用深度学习于检测的阶段,上述提到的目标检测方法的流程通常可以分为三个部分:i)候选区域生成;ii)特征向量提取;iii)区域分类。候选区域生成的主要任务是搜索整个图像,找到可能包含目标物体的位置。这些位置被称为感兴趣区域(ROI)。滑动窗口技术是一种直观的思想,用于扫描输入图像并找出ROI。在第二阶段,算法将从图像的每个目标位置提取一个固定长度的特征向量。直方图梯度(HOG)是由Navneet Dalal和Bill Triggs提出的最流行的特征提取方法之一。通常情况下,线性支持向量机与HOG一起使用,实现区域分类。
通过这些传统的检测器,目标检测虽然取得了很大的成功,但仍存在一些局限性。基于滑动窗口的方法的巨大搜索空间和昂贵的计算促使我们寻求更好的解决方案。此外,一个不容忽视的缺点是,设计和优化检测器的过程是分离的。这可能导致系统的局部最优解。
自从深度学习技术在这个领域出现以来,目标检测方面变得更加强大。这些使用深度学习技术的目标检测系统相较过去能够更加方便快捷地处理问题。我们可以观察到从2012年开始,随着Krizhevsky等人对于图像分类中的深度卷积神经网络(DCNN)的研究,基于深度学习的方法不断涌现出来。
目前,目标检测算法的主流可以分为两种类型:
1)两段式方法,例如基于区域的卷积神经网络(R-CNN)及其变种;
2)单阶段方法,例如You Only Look Once(YOLO)及其变种。
两段式方法是一种基于区域候选的方法,首先提出一些可能包含目标的区域,然后分别从这些区域中提取特征向量。而单阶段方法则直接在特征图的位置上预测目标的类别,省略了区域分类的步骤。
不同类型的方法具有各自的优点。Fast-RCNN减少了以前网络的处理时间,然而,计算成本相当大成为一个困扰。直到Faster-RCNN的出现,这个问题才得到解决。在本文中,2D目标检测不是重点,但为了对3D目标检测方法进行全面的回顾和介绍,我们也提到了这些方法。在图1中,我们展示了2D目标检测技术的主要进展和里程碑。
然而,随着新的应用场景(如机器人视觉和自动驾驶)的提出,2D目标检测的实现远远不够。相机捕捉的图像是将3D空间投影到2D视图中,这导致了3D空间信息的丢失,无法满足人们的需求。我们需要考虑更多的3D空间信息。随着许多3D技术的快速发展,越来越多的3D传感器,如LiDARs,3D扫描仪和RGB-D相机变得越来越可用和实惠。
在本综述中,我们主要分析使用LiDAR获取的点云。作为一种常见的格式,每个点为我们提供了有用的几何位置信息,其中一些可能包含RGB信息。在自动驾驶方面,对于3D目标检测和跟踪有着急切的需求。在自动驾驶的研究中,准确的环境感知和精确的定位是自动驾驶系统在复杂和动态环境中实现可靠导航、信息决策和安全驾驶的关键。与受到照明影响的图像数据质量不同,点云对于不同的光照条件具有鲁棒性。因此,点云数据被广泛应用于这个领域。
在2D目标检测的基础上,目标检测的问题和要求发生了变化。对于点云的稀疏性和不规则性,不可能将2D目标检测方法应用于3D点云。因此,需要改变2D目标检测方法,以确保这些方法可以扩展到3D情况。与应用于图像中的目标检测方法类似,这些3D目标检测方法仍然可以分为两种类型:两段式方法和单阶段方法。图2根据深度学习技术对最近主流的3D目标检测方法进行了简单分类。本文的后续第3节将详细介绍这些3D检测方法的更多细节。
在本文中,我们主要关注基于点云的3D目标检测的最新方法。本综述的其余部分如下所述。相关背景,包括问题识别、问题描述、主要挑战以及本综述的动机,将在第2部分中说明。在本文的第3部分,我们将详细介绍当前用于3D目标检测的方法,包括它们的优缺点。第4部分总结了点云深度学习方法的最新发展。此外,我们指出了一些仍未解决的困难问题,并提供了一些可能有意义的研究方向。
推荐阅读
-
基于深度学习的 3D 目标检测与跟踪 01 简介
-
基于无人机的物体检测与跟踪的深度学习:调查(论文翻译)
-
计算机视觉中,究竟有哪些好用的目标跟踪算法(下)-快速变形主要因为CF是模板类方法。容易跟丢这个比较好理解,前面分析了相关滤波是模板类方法,如果目标快速变形,那基于HOG的梯度模板肯定就跟不上了,如果快速变色,那基于CN的颜色模板肯定也就跟不上了。这个还和模型更新策略与更新速度有关,固定学习率的线性加权更新,如果学习率太大,部分或短暂遮挡和任何检测不准确,模型就会学习到背景信息,积累到一定程度模型跟着背景私奔了,一去不复返。如果学习率太小,目标已经变形了而模板还是那个模板,就会变得不认识目标。(举个例子,多年不见的同学,你很可能就认不出了,而经常见面的同学,即使变化很大你也认识,因为常见的同学在你大脑里面的模型在持续更新,而多年不见就是很久不更新) 快速运动主要是边界效应(Boundary Effets),而且边界效应产生的错误样本会造成分类器判别力不够强,下面分训练阶段和检测阶段分别讨论。 训练阶段,合成样本降低了判别能力。如果不加余弦窗,那么移位样本是长这样的: 除了那个最原始样本,其他样本都是“合成”的,100*100的图像块,只有1/10000的样本是真实的,这样的样本集根本不能拿来训练。如果加了余弦窗,由于图像边缘像素值都是0,循环移位过程中只要目标保持完整那这个样本就是合理的,只有目标中心接近边缘时,目标跨越边界的那些样本是错误的,这样虽不真实但合理的样本数量增加到了大约2/3(padding= 1),即使这样仍然有1/3(3000/10000)的样本是不合理的,这些样本会降低分类器的判别能力。再者,加余弦窗也不是“免费的”,余弦窗将图像块的边缘区域像素全部变成0,大量过滤掉分类器本来非常需要学习的背景信息,原本训练时判别器能看到的背景信息就非常有限,我们还加了个余弦窗挡住了背景,这样进一步降低了分类器的判别力(是不是上帝在我前遮住了帘。不是上帝,是余弦窗)。 检测阶段,相关滤波对快速运动的目标检测比较乏力。相关滤波训练的图像块和检测的图像块大小必须是一样的,这就是说你训练了一个100*100的滤波器,那你也只能检测100*100的区域,如果打算通过加更大的padding来扩展检测区域,那样除了扩展了复杂度,并不会有什么好处。目标运动可能是目标自身移动,或摄像机移动,按照目标在检测区域的位置分四种情况来看: 如果目标在中心附近,检测准确且成功。 如果目标移动到了边界附近但还没有出边界,加了余弦窗以后,部分目标像素会被过滤掉,这时候就没法保证这里的响应是全局最大的,而且,这时候的检测样本和训练过程中的那些不合理样本很像,所以很可能会失败。 如果目标的一部分已经移出了这个区域,而我们还要加余弦窗,很可能就过滤掉了仅存的目标像素,检测失败。 如果整个目标已经位移出了这个区域,那肯定就检测失败了。 以上就是边界效应(Boundary Effets),推荐两个主流的解决边界效应的方法,但速度比较慢,并不推荐用于实时场合。