Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

基于视觉的停车位检测:基于DCNN的方法和大规模基准数据集

摘要—在汽车工业中,近年来目睹了对开发自助泊车系统的浓厚兴趣。对于这样的系统,如何准确且有效地检测和定位由车辆附近的规则线段限定的停车位是关键且仍未解决的问题。实际上,各种不利因素(例如地面材料的多样性,照明条件的变化以及附近树木造成的不可预测的阴影)使基于视觉的停车位检测变得比看起来困难得多。在本文中,我们试图在某种程度上解决这个问题,并且我们的贡献是双重的。首先,我们提出了一种基于深度卷积神经网络(DCNN)的新颖的停车位检测方法,即DeepPS,该方法将周围视图图像作为输入。
DeepPS中有两个关键步骤,识别输入图像上的所有标记点,并对由标记点对形成的局部图像模式进行分类。我们将两者都表述为学习问题,可以通过现代DCNN模型自然解决。其次,为了促进基于视觉的停车位检测的研究,建立了一个大规模的标记数据集。该数据集是该领域中最大的,包括从典型的室内和室外停车场收集到的12165个环视图像。对于每个图像,标记点和停车位都经过仔细标记。 DeepPS的功效和效率已在我们收集的数据集中得到证实。
为了使我们的结果完全可重复,所有相关的源代码和数据集已在https://cslinzhang.github.io/deepps/上公开提供。

索引术语:自动停车系统,停车位检测,深度卷积神经网络。

I. 简介

对于许多驾驶员,特别是新手,找到并驾驶车辆到合适的停车位是一个巨大的挑战[1]。主要原因是驾驶员不能查看车辆周围或确定停车位的大小和形状。这已导致许多研究机构和车辆制造商为开发自助泊车系统付出了巨大的努力。其实,自我停车系统可视为一种特殊的无人驾驶系统。典型的自助停车系统的工作流程tem大致如下。当接近停车区时,车辆切换到低速无人驾驶模式并自动沿着预定轨道行驶。在无人驾驶模式下工作时,车辆可能需要依靠高清地图,GPS信号或SLAM(Simulta-neous本地化和制图)[2]技术,定位。在行驶过程中,车辆搜索周围可用的停车位,或尝试识别和定位由停车位管理系统分配给它的停车位。一旦检测到并定位了合适的停车位,车辆将切换到自动停车模式,规划停车路径,最后将车辆停放在指定的停车位。
建立自助泊车系统时,有许多关键问题需要解决。如何快速,准确地检测和定位车辆周围的停车位只是其中之一。
本文的其余部分安排如下。第二节介绍相关工作和我们的贡献。第三部分介绍了我们基于DCNN的停车位检测方法DeepPS。实验结果列于第四节。最后,第五节总结了论文。

II. 相关工作和我们的贡献

A. 基于视觉的停车位检测:算法和数据集

用于感知可用停车位的方法是:车辆行驶可分为基于自由空间的和基于视觉的两类。基于自由空间的方法通过识别相邻车辆之间的适当空闲空间来指定目标停车位置。这是使用最广泛的方法,因为它可以使用各种测距传感器来实现,例如超声波传感器[3]-[8],激光扫描仪[9]-[11],短距离雷达[12]-[ 14],结构光[15],深度相机[16],立体声相机[17]-[22]。基于自由空间的方法有一个固有的缺点,即必须依靠已经正确停放的车辆作为参考。换句话说,这种方法无法在没有周围的车辆。另外,它的准确性高度取决于相邻车辆的位置和姿势。
基于视觉的方法的工作原理与基于自由空间的方法的工作原理根本不同。基于视觉的方法的目标是识别和定位由绘在地面上的停车线段定义的停车位。显然,这种方法的性能不取决于相邻车辆的存在或姿态。
此外,在大多数情况下,停车线段可以提供比“自由空间”更准确的停车信息。同时,大多数汽车制造商已开始生产配备了宽视场(FOV)成像传感器的车辆,该传感器通常用于AVM(环视监控)系统中。由于这些原因,基于视觉的方法近来已在停车位检测领域引起了很多关注,这也是我们在本文中的重点。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
图1显示了典型的基于视觉的停车位检测系统的高层结构,该系统通常包括两个独立的模块,即环视同步和停车位检测从环视。环视摄像头系统通常由四到六个广角摄像头组成,这些摄像头围绕车载摄像头安装。每个人面对不同的方向。基于这些广角图像,环绕视图合成模块可以在车辆周围生成360度环绕视图图像。
在文献中,已经有成熟的解决方案,安装广角相机[23],[24]并构建环绕视图系统[25],[26]。停车位检测模块将环绕视图图像作为输入,检测停车位,最后将它们相对于以车辆为中心的坐标系的物理位置发送到决策模块以进行进一步处理。如下将审查基于视觉的停车位检测的代表性工作。
该领域的研究始于Xu等人的开拓性工作[27]。徐等。[27]声称停车线的颜色非常均匀并且与背景不同,因此他们训练了神经网络来分割停车线。然后,他们将两条垂直线估计为停车位轮廓。这种简单模型的缺点是无法获得停车位的类型(垂直或平行),也不能处理倾斜的停车位。
Jung等。提出了一种一触式方法,该方法通过基于目标停车位内部的手动提供的点检查方向梯度来识别停车位的线段。鉴于这种方法只能处理单一类型的停车位,荣格等人[29]将其扩展为两触式方法。该方法可以基于相对于驾驶员提供的停车位入口线的两个点来识别各种类型的停车位标记。 Du和Tan [30]开发了一种倒车停车系统。为了检测停车位,首先在图像上应用脊形检测器,然后在噪声过滤,连接的组件标记以及去除少量像素的组件的步骤之后,获得插槽线的中轴。然而,他们的系统依赖于驾驶员在开始停车过程之前首先识别出空的停车位。综上所述,[28]-[30]中提出的方法的明显缺点是它们不是完全自动化的,从而限制了它们在实践中的可用性。根据它们提取的原始视觉特征,沿着两个主要流(基于行的流和基于拐角的流)开发了全自动方法。
Jung等人[31]假设停车线由宽度固定的线组成,并通过在霍夫空间中应用峰对检测和聚类来识别它们[32]。最后通过T形模板匹配识别分开的停车线段。基于与Jung等人[31]相似的思想,Wang等人[25]由于他们认为Radon变换具有更好的噪声容忍能力并且比Hough变换更健壮,因此建议在Radon空间中检测停车线段[33]。 [25]和[31]中方法的一个潜在缺点是它们对停车线宽度的敏感性。在获得了环视图像的边缘图之后,滨田等人[34]利用概率Hough变换[35]提取所有线段
然后他们根据一些几何约束推断出有效的停车位。 Suhr和Jung [36]设计了一种专用于地下和室内环境的停车位检测方法。在他们的方法中,首先检测到引导线,然后检测到分离线。
为了检测准线,他们利用RANSAC(RANdomSAmpling Consensus)[32]算法对边缘像素进行稳健的线拟合,并检测分隔线,并使用了基于距离变换的倒角匹配[37]。
Suhr和Jung方法的主要局限性有两个方面:1)它只能检测垂直的停车位,而不能检测平行的停车位; 2)要求停车位的引导线应该可见。 Lee和Seo [38]提出了用于线标记提取的所谓“圆锥形帽子”过滤器,然后通过基于熵的聚类将提取的线特征分配给停车线段。在那之后,顺序的RANSAC算法[39]被用来拟合来自集群的停车线。最后,生成停车位候选者,然后通过贝叶斯网络模型进行验证[40]。与基于行的方法不同,其他几种停车位检测方法都是基于拐角的,其中Suhr和Jung的工作是其中的代表[41],[42]。 [41]和[42]中提出的方法首先通过哈里斯拐角检测器[43]检测拐角,然后通过组合这些拐角来生成接合点;最后,从路口对推断出停车位。因此,该方法的成功率在很大程度上取决于哈里斯角检测器的鲁棒性。
最近,在[26]中,我们将机器学习理论引入了停车位检测领域。具体来说,基于增强决策树,我们训练了标记点检测器。当标记点可用时,可通过一些预定义的几何规则推断出有效的停车位。
作为常识,要设计和验证停车位检测算法,大规模的公共基准数据集是必不可少的。不幸的是,该领域的绝大多数研究人员没有发布他们收集的数据集,这无疑阻碍了该领域的发展。据我们所知,在[26]中建立的数据集是该领域中唯一的公开数据集,其中包括8,600张带标签的环绕视图图像。

B. 深度卷积神经网络

作为我们提出的停车位检测方法,DeepPS(有关详细信息,请参阅第III节),基于深度卷积神经网络(DCNN),在本节中,我们对DCNN的发展进行简要回顾。
众所周知,我们正在目睹主要由DCNN引起的计算机视觉社区的快速,革命性变化。 DCNN实际上是一种表示学习方法,它使机器可以获取原始数据并自动发现分类或检测所需的表示[44]。最近,由于具有更大的标记数据集,更好的模型和训练算法,以及由于能够进行更大更深层模型研究的GPU计算能力,DCNN放弃了竞争方法。 DCNN的发展可追溯到1980年代后期[45],自2012年以来,在文学中提出了更强大和流行的DCNN架构,例如AlexNet [46],GoogLeNet [47],VGG [48]和ResNet [49]。仅举几个。
基于DCNN的方法最近在诸如图像分类,物体检测,人脸识别,图像还原等几个领域的最新技术上有了实质性的改进。其中,物体检测领域的发展相当与我们的工作有关。从Girshick等人的开创性工作R-CNN [50]开始,将DCNN用于解决目标检测任务。R-CNN实际上是一个多阶段检测框架。给定一个输入图像,它首先使用对象提议算法来查找包含高概率对象的边界框。
然后,将标准的DCNN作为特征提取器应用于每个建议的边界框,最后由分类器确定该框内的对象类别。遵循R-CNN的框架,许多研究人员提出了对其进行修改的建议改善R-CNN的性能,沿该方向发展的一些代表性方法是Fast-RCNN [51],Faster-RCNN [52],HyperNet [53]等。R-CNN及其所有变体高度依赖于对象建议。因此,对象提议算法的性能成为瓶颈。最近,一些研究人员已经开始挑战这种必要性,
基于DCNN的对象检测系统中的对象提议算法的本质,他们将对象检测公式化为空间分隔的边界框和相关类概率的回归问题。这种方法的代表包括Yolo [54],SSD [55]和YoloV2 [56]。来自不同研究小组的实验结果表明,这种方法可以像R-CNN一样准确地获得边界框,但运行速度更快。结果,在我们的停车位检测方法中,采用DeepPS,YoloV2来检测标记点(有关详细信息,请参阅III-A节)。

C. 我们的动机和贡献

通过文献调查,我们发现在基于视觉的停车位检测领域,我们需要继续在至少两个方面进行努力。
首先,停车位检测算法的性能仍然需要进一步提高。实际上,基于视觉的停车位检测是一项充满挑战的任务。种种不利因素使它比看上去更可怕。在图2中,显示了由我们收集的包含停车位的八个典型的环视图像,从中可以看出,停车位的视觉环境变化很大。归因于这种多样性的原因可能包括多种地面材料,各种停车位类型(双目,平行或倾斜),停车线颜色不同,停车线不完整,照明条件变化,附近树木或建筑物造成的阴影等。现有的解决方案或者基于低级特征(例如,边,线或角),或者基于基本的机器学习理论(例如,[26]中使用的AdaBoost)。在简单理想的条件下,它们可以导致可接受的性能。但是,当视觉场景变得复杂且不理想时,这些方法的性能通常会很差-由于其固有的局限性而无法正常运行。因此,如何设计一种既能适应实际复杂条件又能达到较高的高精度召回率的停车位检测算法仍是一项艰巨的任务。
第二,大规模公共数据集在该领域非常罕见。为了设计停车位检测算法并客观比较它们的性能,覆盖各种实际场景的公共大规模基准数据集是不可或缺的。可见的。不幸的是,到目前为止,该领域唯一可公开获得的数据集是[26]中建立的数据集。
在这项工作中,我们试图在一定程度上弥补上述研究空白,我们的主要贡献归纳如下。
(1)看到DCNN取得了巨大的成功-在与视觉相关的各个领域中,我们试图设计出一种基于DCNN的停车位检测方法,并将其命名为DeepPS(“深停车位”的缩写)。给定一个全景图像,DeepPS首先检测所有使用预先训练的标记点检测器在其上标记点,基于YoloV2的图像[56]。标记点图案是指以两个停车线段的交叉点为中心的局部图像块。用黄色圆圈标记的标记点示例如图3所示。给定一对检测到的标记点p1和p2,DeepPS将决定它们是否可以形成有效的入口线,如果“是”,DeepPS也将需要确定该停车位的类型。可以通过使用标准的预训练DCNN模型对pi和p2定义的局部图像模式进行分类来完成此任务。据我们所知,我们的工作是第一个将深度学习技术应用于停车位检测的工作。 DeepPS可以处理几乎所有常见的停车类型-插槽。我们已经对其性能进行了深入评估建立的数据集。实际上,DeepPS已经安装在上汽荣威E50电动汽车上[57]。
(2)为方便研究基于视觉的停车位检测器,然后,我们将[26]中建立的数据集扩展到更大的数据集。新的数据集包括12,165个环视图像,涵盖了各种实际情况,并且所有图像都经过手动标记。该数据集可以用作基准,并用于训练和验证新的停车位检测算法。请参考章节。有关此数据集的更多详细信息,请参见IV-A。
当前工作与我们在[26]中先前的工作之间的差异总结如下。在[26]中,我们训练了基于ACF(聚合通道特征)+ Boosting决策树的标记点检测器。当标记点准备就绪时,可通过一些预定义的几何规则推断出有效的停车位。在这项工作中,我们致力于-将停车位检测问题模拟为两个子问题(标记点检测和局部图像模式分类-),这两者都可以通过DCNN有效地解决。另外,在这项工作中建立了更大的基准数据集。
为了使本文报告的结果完全可重复,收集的数据集和所有相关源代码可在https://cslinzhang.Github.io/deepps/上公开获得。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

III. DEEPPS:一种基于DCNN的方法

在本节中,将详细介绍我们提出的停车位检测方法DeepPS。 DeepPS需要一个环视图像作为输入,并且可以处理几乎所有常见的停车位类型,包括“ T形”或“ L形”标记点。在图4中,显示了DeepPS可以应付的理想停车位模型。
图4(a),4(b)和4(c)分别显示了垂直,平行和倾斜停车位的理想模型。在图4中,所有标记点都用黄色圆圈标记。此外,还标出了入口线的示例(连接有效停车位的两个标记点的虚拟线)和分隔线的示例(分隔两个相邻停车位的停车线)。为了检测停车位,DeepPS采取了三个主要步骤,包括标记点检测,局部图像模式分类和停车位推断。以下小节将介绍详细信息。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

A.标记点检测

在测试阶段,DeepPS在给定全景图像的情况下首先从中检测所有标记点。以此目的,我们需要脱机训练标记点检测器D。通过文献调查,我们发现YoloV2 [56]是基于DCNN的最新型通用对象检测器。它可以实现很高的检测精度,并且运行速度非常快。此外,YoloV2框架易于配置和扩展。因此,我们的标记点检测器基于YoloV2。
要训练探测器,我们需要准备训练样本。在训练样本准备阶段,在给定的环视图像上,手动标记其所有标记点的位置。对于每个标记点p_i,以p_i为中心的固定大小px p的方形框;被视为p_i的真实边界框。
高度希望训练有素的标记点检测器具有旋转不变性。为了实现此目标,我们通过旋转每个原始标签图像以生成许多旋转版本来增强训练集。具体而言,我们可以从每个原始标记的图像I中获得其J旋转版本{I,},其中I;通过将I旋转390生成。度。当然,标记点的标记坐标也以相同的方式旋转。通过图5中示出的示例来说明这种用于数据增强的想法。图5(a)是原始标记图像,而图5(b)是通过旋转图5(a)生成的30度标记点显示为紫色点,而相关的边界框显示为黄色正方形。
在实施中,基于YoloV2的标记点检测-Dor是根据YoloV2的作者在VOC数据集上训练的模型进行微调的。为了进行微调,最小批量大小设置为64;学习率从0.0001开始,每5万次迭代除以10。我们使用了0.0005的权重衰减和0.9的动量。训练有素的标记点检测器在测试阶段表现良好。在宗派。 IV-C,我们将定量评估其性能。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

B.局部图像模式分类

在测试图像上应用标记点检测器D之后,置信度得分大于δ_1的点将被视为标记点。假设p1和p2是两个检测到的标记点。我们需要验证它们是否可以形成有效的入口线。首先,如果(p1p2) ⃗是有效的入口线候选者,则p1和p2之间的距离应满足一些约束条件。如果(p1p2) ⃗是平行停车位的入口线候选者,则需要满足t1<‖p1p2‖<t2;如果(p1p2) ⃗是垂直或倾斜停车位的入口线候选者,则应满足t3<‖p1p2‖<t4;。基于关于各种类型的停车位的入口线长度的先验知识来设置参数t1,f2,t3和t4。
然后,我们需要进一步处理满足距离约束的标记点对。首先,对于一对标记点,尽管它可以满足距离限制,但很可能仍然无法形成有效的入口,线。例如,在图6中,pi和p2之间的距离满足作为平行停车位的入口线的距离约束;但是,很明显(p1p2) ⃗并不是有效的入口线,因为它穿过另一个标记点。另外,假设(p1p2) ⃗是有效的入口线。我们需要确定相关的停车位是在其顺时针一侧还是在其逆时针一侧,并确定该停车位是直角还是倾斜。通过将由p 1和p 2定义的局部图像图案分类为预定义类别之一,可以解决所有这些问题。
如图7(a)所示,如下提取由周围视点图像上的两个标记点pi和p22定义的局部图像图案。首先,建立一个局部坐标系,该坐标系以pi和p2的中点为原点,以(p1p2) ⃗为X轴。因此可以确定其Y轴。在此坐标系中,我们定义了一个矩形区域R,该区域与X轴和Y轴对称。对于R,将其沿X轴的边长设置为(p1p2) ⃗+Δx,将其沿Y轴的边长设置为Δy。我们从中提取由R覆盖的图像区域环视图像,将其规格化为尺寸w×h,并将所得图像块视为p1和p2定义的局部图像图案。
在训练阶段,基于标签数据,我们可以获得包含所有由标记点对定义的局部图像图案的集合C。根据相关停车位的特性,我们将样本分为Cinto 7类,“直角逆时针方向”,“3”逆时针方向倾斜并具有锐角的停车角度,“4”逆时针方向倾斜并具有钝角的停车角度,“直角顺时针”,“顺时针倾斜成钝角”,“顺时针倾斜成锐角”和“无效”。图7(b)〜(h)分别表示了这些类别的代表例。在构造C时,我们遇到了一个实际问题,即类不平衡,这意味着相对于其他类,特定类的实例数量很少。在我们的案例中,此问题的根本原因在于,在我们收集的数据集中,倾斜的停车位的数量比直角停车位的数量要少得多。为了解决这个问题,我们采用SMOTE [58]对少数群体进行了过度抽样。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
从C中,我们可以训练分类模型M,以预测从测试环绕视图图像中提取的看不见的局部图像图案的类别标签。关于分类模型。 DCNN是自然的选择。但是,基于以下考虑,我们不直接使用现有的公共DCNN体系结构(例如AlexNet,GoogLeNet,ResNet等)。
1)在当前系统配置下,Cis 48×192中图像样本的大小(有关参数设置的更多详细信息,请参见IV-B节),比流行的公共DCNN体系结构所需的大小小得多.3当然,我们可以对C中的图像进行上采样,以使其满足公共DCNN模型的要求;但是,显然,这不是最有效的方法。
2)几乎所有流行的公共DCNN结构都是为ImageNet的图像分类任务设计的[59]。 ImageNet分类任务具有1000个班级,而我们的分类任务只有7节课。此外,C语言中本地图像模式的内容复杂度远低于gen-ImageNet中的常规图像。由于这些原因,我们认为小型网络可以胜任我们的任务。与流行的大型网络相比,小型网络在计算速度,存储空间要求等方面更具优势。
因此,以AlexNet [46]为模板,设计了定制的DCNN架构来解决我们的分类任务。如图8所示,我们的网络采用48×192的灰度图像作为输入和输出层有7个节点,对应于7类本地图像模式。在图8中。“ cony”表示卷积层,“ ReLU”表示卷积线性单元[60]层,“ max-pool”表示最大池化层,“ BN”表示批处理归一化层, “ FC”表示它是一个完全连接层。对于每个表I中列出了“ conv”,“ max-pool”和“ FC”层,其参数设置及其输出的尺寸(此层的功能图)。“ kernel:[kernel h,kernel_w]”指定高度每个滤镜的宽度和宽度,“ pad:[pad_h,pad_w]”指定要添加到输入两侧的像素数,“ stride:[stride _h,stride_w]”指定将滤镜应用到输入的间隔输入,“ num_output”指定过滤器的数量。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
定制的DCNN模型首先在ImageNet 2012分类数据集上进行了训练,然后针对特定任务进行了微调。为了进行微调,最小批处理大小设置为256;学习率从0.002开始,每5000次迭代除以2。我们使用了0.0005的权重衰减和0.9的动量。

C.停车位推断

在自助泊车系统中,泊车位通常被认为是平行四边形,通常由其四个顶点的坐标表示。在大多数情况下,这两个标记点的顶点不可见,并且它们的坐标只能通过推断获得。为此,我们需要假设停车位的“深度”事先被称为先验知识。如图9所示,假定垂直,平行和倾斜的停车位的深度分别为d1,d2和d3。
假设p 1和p 2是两个检测到的标记点,并且由p 1和p 2定义的局部图像图案被分类为“顺时针直角”或“逆时针直角”。在这种情况下,可以很容易地计算出两个非标记点顶点p3和p4的坐标。例如,在图9(a)中,由p1和p2定义的局部图像图案为“顺时针直角”,长度(||p1p2||) ⃗指示此停车位应为垂直停车位(而不是平行停车位),因此其“深度”是d1。结果,将其p3和p4推断为:
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
当由两个标记点p1和p2定义的局部图像图案被分类为“倾斜”时,由于我们将需要估计停车角,如图9(c)所示,问题将变得稍微复杂一些。在图9(c)中,由p 1和p 2定义的局部图像图案被分类为“具有锐角的停车角的逆时针倾斜”。为了估计两个非标记点顶点的位置,需要估计停车角度α。为了解决这个问题,离线准备了一组理想的“ T形”模板{Te,},如图9(d)所示,其中,是模板的两条线之间的夹角。 j和M是模板的总数。每个模板的大小为s×s,并且为零均值。在测试阶段,提取分别以p1和p2为中心的两个s xs图像块I1和I2。 II和I2都与(p1p2) ⃗对称。然后,驻车角α可以自然地估算为
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
其中“ *”表示相关运算。计算了停车角度后,可以直接计算两个非标记点顶点的坐标。例如,在图9(c)中,p3和p4的坐标可以表示为,
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

D整体管道

在I-A〜III-C节中,我们介绍了有关基于DCNN的停车位检测方法DeepPS的详细信息。
为了使读者对我们的工作有一个清晰而全面的了解,DeepPS的流程总结在表IⅡ中。

IV. 实验结果

A. 基准数据集

为了为停车位检测算法提供合理的评估平台,我们建立并发布了大型基准数据集,该数据集可在https://cslinzhang.github.io/deepps/上公开获得。
该数据集中的环视图像是使用我们自己开发的配备在SAIC Roewe E50电动汽车上的AVM系统从典型的室内和室外停车场收集的[57]。每个环视图像的空间分辨率为600×600,对应于10m×10m的平坦物理区域,即环视图像上1个像素的长度对应于物理地面上的1.67cm。
值得注意的是,通过离线校准,我们可以获得从环绕视野图像坐标系到以车辆为中心的世界坐标系的转换矩阵。因此,当在周围视野中检测到停车位时,可以自动确定其在世界坐标系中的坐标。
在[26]中,我们发布了一个停车位数据集,这是该领域唯一可公开使用的数据集,在本文中,它被称为同济停车位数据集1.0(简称ps1.0)。新建立的数据集称为同济停车场数据集2.0(简称ps2.0)。表IⅡ总结了这两个数据集有关其规模和成像条件的信息。从表III可以看出,从样本数量的角度来看,停车位类型以及成像条件的多样性,ps2.0优于ps1.0,因此以下所有实验均在ps2.0上进行。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
另外,为了测试算法在不同成像条件下的性能,我们将ps2.0的测试集划分为六个子集:“室内停车场”,“室外正常日光”,“室外多雨”,“室外阴影”, ““室外路灯”和“倾斜”。这些子集的样本编号在表IV中列出。

B.DeepPS的超参数设置

在我们提出的停车位检测方法DeepPS中,需要确定一些超参数。需要注意的是,开源的YoloV2框架(用于DeepPS中以检测标记点)要求输入图像的大小应为416×416。因此,为方便起见,在训练和测试DeepPS时,所有图像调整为416×416。所有其他超参数都根据经验设置为与此分辨率兼容,并且它们(表I中列出的(与用于局部图像模式分类的DCNN相关的那些参数除外)总结于表V)。这些参数的物理含义可以由第三节的上下文理解。“ p”是标记点边界框的边长;“ J”表示从一张原始图像生成的旋转版本的数量,用于训练标记点检测器的数据增强;“ 61”是确定a的阈值标记点;“ d1”,“ do”和“ d3”分别是垂直,平行和倾斜停车位的“深度”值;“(t1,t2)”是入口的长度范围-平行停车位线;“(t3,t4)”是垂直或倾斜停车位的入口线的长度范围;由一对标记点pi和p2确定的局部区域的大小是‖p1p2‖+Δx乘以????y;“ w×h”是归一化的局部图像图案的大小;“ M”是准备用于估计其泊车角的模板的数量一个倾斜的停车位,每个模板的大小为“ s×s”。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

C.标记点检测

在我们的停车位检测方案中,标记点检测是至关重要的一步。为了完成此任务,我们在DeepPS中提出了一种基于YoloV2的方法。在本实验中,将对它的性能进行评估并与对象检测领域中的其他几种经典方法进行比较,VJ [61],HoG + SVM [62],HoG + LBP [63],PLS [64],MultiFtr [65] ],Roerei [66]和ACF + Boosting [26]。另外,还评估了另外两种基于DCNN的流行检测器Faster-RCNN [52]和SSD [55]。对ps2.0的测试集进行了评估。
对于地面标记点gi,如果存在检测到的标记点d,则为d。满足‖gi-di‖<δ2,其中δ2是预定义的阈值,我们认为gi;被正确检测并d;是真正的积极。在该实验中,将δ2设置为10。为了比较各种检测器,我们使用对数-对数图,通过改变检测置信度的阈值,将未命中率与每幅图像的误报率进行绘制。该图显示在图10中。如[67]中的建议,我们使用对数平均未命中率(LAMR)来总结检测器性能,该方法是通过将10个相对于10至100的对数空间中均匀分布的九个FPPI率的未命中率进行平均来计算的。图10也显示了不同的方法。
除检出率外,定位误差是衡量仪器性能的另一个重要指标。标记点检测器,因为它将直接影响停车的成功率。用〖gi〗‘表示检测到的真实阳性,并表示对应的真相。〖gi〗’的定位误差是ei=||〖gi〗^ 〖-gi〗^’ ||。我们使用均值和标准偏差{eile1(其中P是检测到的真实阳性数)作为检查的标记点检测器的定位误差。表VI总结了所评估的所有标记点检测器的定位误差。
从图10和表VI中所示的结果可以看出,对于标记点检测,基于DCNN的检测器(YoloV2,SSD和Faster-RCNN)可以比传统方法获得更高的精度。物体检测领域。特别是YoloV2和SSD表现最好,并且性能相当。在表VII中,列出了通过三种深度模型从一张图像检测标记点的时间成本(在Nvidia TitanX GPU上达到)。从表VI中可以看出,YoloV2运行最快。因此,在DeepPS中,最终将YoloV2用于标记点检测。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

D.局部图像模式分类

在DeepPS中,当检测到标记点时,我们需要将由一对标记点定义的每个局部图像模式分类为七个预定义类别之一。
为了实现这个目标,定制了DCNN结构,如图8所示,它实际上是AlexNet的高度简化版本[46]。在此实验中,我们将根据分类准确性和一次预测操作的时间成本,报告定制的DCNN的性能。作为比较,我们还测试了AlexNet [46],VGG-16 [48],ResNet-50 [49]和SqueezeNet [68]的性能。需要注意的是,在测试时,所有这些DCNN模型都在GPU(Nvidia TitanX)上运行。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
测试集由ps2.0测试集中由标记点对定义的所有局部图像模式组成,这些标记点对满足作为有效入口线候选者的距离限制。结果列于表。
从表VIII中可以看出,我们定制的DCNN可以达到与其他流行的大型深层模型相当的精度。但是,定制的DCNN花费更少的时间来完成一个预测操作,使其更适合于时间紧迫的自我停车系统。我们的定制DCNN比AlexNet快的原因是,我们的定制网络是在原始AlexNet的基础上精心设计的,以便更好地适合我们的应用程序。
表I和表IX分别显示了我们定制的DCNN和AlexNet的关键层的参数设置。
通过它们,可以很容易地理解为什么定制的DCNN运行得比AlexNet快。实际上,有三个主要差异可以解释为什么定制的DCNN比AlexNet更快。首先,我们的自定义DCNN比AlexNet浅两层,然后删除了卷积层和完全连接层。其次,与AlexNet相比,定制DCNN中的大致相应层具有低分辨率输入。第三,我们减少卷积层中使用的内核以及完全连接层的输出单元数。

E. 停车位检测

在该实验中,评估了DeepPS的停车位检测性能。此外,该领域几种最先进方法的性能包括Jung等人的方法[31],Wang等人的方法[25],Hamda等人的方法[34] ],Suhr和Jung的方法[41]和我们先前的工作PSD_L [26]也进行了评估,以进行比较。实验是在ps2.0数据集的测试集上进行的。精确召回率用作绩效指标,其定义为:
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
每个标记的停车位都表示为PS; =
{pi,pi,p,pi},其中pi,ps,ps和pa是四个顶点的坐标。 p 1和p 2是形成入口线的两个顶点的坐标,并且四个顶点以顺时针方式布置。假设PSa = {p4,pA,pA,pA}是检测到的停车位,而PS,= {p,pB,p’,p)是标记的地面真相。如果py与p’,i = 1〜4匹配,则PSa被视为真阳性。6如果PSa与任何地面停车位都不匹配,则PSa为假阳性。如果PSt与任何检测到的停车位都不匹配,则PS为假阴性。
我们调整了所有竞争方法的参数,以使其在整个ps2.0测试集上的准确率大于98%。结果总结在表X中。从表X中可以看出,当以高精度运行时,DeepPS的性能要好于其他竞争对手。 DeepPS的召回率为98.89%,而PSD_L为第二名,召回率为84.64%。
为了大致了解算法在不同成像条件下的性能,我们还在ps2.0的每个子测试集上对它们进行了评估,表XI中给出了两种性能最佳的方法DeepPS和PSD_L的结果。
从表X和表XI中给出的结果,我们可以得出许多结论。
1)经典方法[25],[31],[34],[41]无法获得满意的结果。根本原因是它们是如果| py-p’,I,我们说py与p’匹配。我们在实验中将s设置为12。基于原始的视觉特征(边缘,线或角),并且对复杂的场景和各种成像条件不可靠。
2)PSD_L表现出明显的性能优势,这取决于低级视觉特征。更好的性能应该归因于在PSD_L中使用的基于机器学习(ACF + Boosting)的标记点检测方案。
3)在所有情况下,DeepPS的性能都大大超过PSD_L的性能。与PSD_L相比,DeepPS的优越性能主要有两个原因。首先,对于检测标记点,DeepPS采用了基于DCNN的最新对象检测框架YoloV2,而不是PSD_L中使用的ACF + Boosting。图10和表VI中显示的结果清楚地表明,基于YoloV2的框架在检测精度和定位精度方面比基于ACF + Boosting的方案要好得多。其次,为了确定入口线的有效性和类型,PSD_L使用基于规则的复杂方案,而DeepPS将其表示为局部图像模式分类问题,可以通过标准DCNN模型更简洁,更可靠地解决。
在图11.6中,显示了DeepPS检测到的带有标记停车位的6个环视图像。实际上,它们是从ps2.0测试集的六个子集中选择的代表。图11所示的结果再次证实了DeepPS在各种成像条件下检测不同类型的停车位的能力。可以在https://cslinzhang.github.io/deepps/找到更多演示视频。

F. DeepPS的实际案例

DeepPS目前尚不完善。当成像条件较差时(例如,附近树木造成强烈的阴影),有时会错过真正的候选对象(假阴性)。
缺少真正候选人的主要原因有两个。首先,真实标记点的置信度得分低于预定义的阈值。第二,局部图像模式分类模型可能会将有效的候选入场线错误分类为“无效”。
与误报相比,在实际的自助泊车系统中,误报实际上更令人讨厌。有时,DeepPS可能会返回误报。根本原因是DCNN模型可能会(尽管非常少见)以较高的置信度分数误分类所定义的局部图像模式

通过两个标记点。 DeepPS检测到的误报的四个示例如图12所示。在图12(a)中,“直角顺时针”入口线被误分类为“直角逆时针”。在图12(b)中,“倾斜”在图12(c)中,由p 1和p 2定义的“逆时针直角”局部图像图案被误分类为“顺时针直角”。
在图12(d)中,“无效的”局部图像模式被错误地分类为“顺时针直角”。实际上,以高置信度对图像进行错误分类是DCNN的已知缺点[69],将来我们可能会采用策略(例如DeepFool [70]),用于创建对抗训练样本来解决此问题。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

G.绩效改进分析

与PSD_L [26]相比,DeepPS的新颖性主要来自两个方向。首先,我们将PSD_L中使用的基于ACF + Boosting决策树的标记点检测器替换为基于YoloV2的检测器。第二,推断停车位从标记点来看,PSD_L使用基于行的模板匹配,而DeepPS则采用本地图像模式分类。在这里,我们解释并演示了DeepPS每个新方面所带来的性能改进。用PSD_Lyolo表示该模型,该模型将PSD_L的标记点检测器替换为基于YoloV2的检测器。用PSD_LLrp表示该模型,该模型将PSD_L的标记点推断策略替换为基于局部图像模式分类的模型。其性能见表。我们还将表XII中的PSD_L和DeepPS的性能进行比较。从表XII中显示的结果可以看出,标记点检测和停车位推断的适当策略都可以提高最终性能。

H. DeepPs的运行速度

DeepPS是用C ++实现的。实验是在配备2.4GHZ Intel Xeon E5-2630V3 CPU,Nvidia Titan X GPU卡和32GB RAM。 DeepPS处理一个图像帧的平均时间约为23毫秒,其中包括用于合成环绕视图的时间。

DeepPS的泛化能力在本实验中,DeepPS的泛化能力(在ps2.0上受过培训)在实践中得到了验证。具体而言,使用配备了我们基于视觉的停车位检测系统的Roewe E50汽车,从多个停车位收集了1000多张环视图像。我们用extraTestSet表示该图像集。需要注意的是,出现在extraTestSet中的停车位不会出现在ps2.0中。从extraTestSet中选择的四个代表性图像样本如图13所示。我们在extraTestSet中标记了图像,然后在extraTestSet上评估了在ps2.0上训练的DeepPS的性能。达到的准确率和查全率分别为98.43%和91.95%。结果表明,在ps2.0上训练的DeepPS模型具有令人满意的泛化能力。
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset
Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark Dataset

V. 结论与未来工作

基于视觉的停车位检测是构建自助停车系统时遇到的关键问题。这具有挑战性,但仍未解决。为了克服它,在本文中,我们提出了一个基于DCNN的解决方案DeepPS。
另一个贡献是,我们收集并标记了一个大型停车位图像数据集ps2.0,该数据集包含12,165个环视图像,并且是该领域中最大的图像。在ps2.0上进行的大量实验表明,DeepPS可以大大超越其所有竞争对手。具体来说,在整个ps2.0测试集上,DeepPS的召回率可高达98.89%,而其准确率则为99.54%。此外,DeepPS可以在23ms内处理一帧,使其具有时间紧迫的自我停车系统的能力。实际上,DeepPS已经部署在上汽荣威E50电动汽车上。将来,我们将继续扩大数据集,使其成为该领域的更好基准。