详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark

在这里插入图片描述
本文介绍一篇基于深度学习的停车位检测论文:DeepPS,作者同时公开了数据集ps2.0,工作很扎实,对于入门停车位检测很有帮助,论文发表在 IEEE T-IP 2018

项目链接为:https://cslinzhang.github.io/deepps/


0. Abstract

自动泊车系统中,如何能准确而高效地检测和定位停车位是一个关键但尚未解决的问题。由于路面材质的多样性、光照条件的变化以及树木产生的阴影等因素,使得基于视觉的停车位检测变得比看上去困难得多。

本文提出了一种新的基于卷积神经网络的停车位检测方法,即 DeepPSDeepPS的关键步骤有两个:识别输入图像上的所有标记点对标记点对形成的局部图像进行分类

其次,为了便于基于视觉的停车位检测研究,建立了大规模的数据集。包括从典型的室内室外停车场采集的12165张环视图


1. Introduction & Related Work

下图是一个典型的基于视觉的停车位检测系统,该系统包括两个模块,即环视图合成对环视图的停车位检测。(本文重点介绍停车位检测,环视图合成可以查看相关文献。)

在这里插入图片描述
下图为本文中收集到的停车位数据:(a)、(b)、( c )、(d)中的停车位是垂直的,(e)、(f)、(g)中的停车位是平行的,(h)中的停车位是倾斜的。(a)和(b)是从室内停车场采集的,其它的是从室外停车场采集的。(b)中的车位线是黄色的,而其它图像中的车位线是白色的。(e)是在雨天采集的,(f)是晚上在路灯下采集的,在(g)中树木造成的阴影覆盖了停车线,(d)和(e)中车位线有所损坏
在这里插入图片描述
对于采集的数据集,作者进行了标注,下图中黄色圆圈为标记点。
在这里插入图片描述


2. DeepPS: A DCNN-Based Approach

下图分别为理想的垂直、平行和倾斜停车位。在图中,所有标记点都用黄圆圈标记。此外,还标记了车位进入线(有效停车位的两个标记点的连接虚线)和车位分隔线(白色实线)。

对于停车位检测,DeepPS主要分为三步:标记点检测局部图像模式分类停车位推理

在这里插入图片描述


A. Marking-Point Detection

本文选择YoloV2模型作为标记点检测器。在训练阶段,对于每张环视图,首先人工标注所有的标记点。对于每个标记点 pi\mathbf{p}_ipi,都有一个以标记点为中心固定尺寸为 p×pp\times pp×p 的包围框作为标记点的真值包围框

为了使检测器具有旋转不变性,作者通过旋转每张原始标记图片来增强训练集。具体地说,每张训练图片 I\mathbf{I}I,可以得到它的 J\mathbf{J}J 个旋转版本图片,{Ij}j=0J−1\{\mathbf{I}_j\}_{j=0}^{\mathbf{J}-1}{Ij}j=0J1。其中 Ij\mathbf{I}_jIj 经过旋转 360J×j\frac{360}{\mathbf{J}}\times jJ360×j 角度得到。同时标记点的坐标也以同样的方式旋转。

下图中(a)是原始训练图片,(b)是通过将图(a)旋转30度来生成的。标记点为紫色点,边界框为黄色。
在这里插入图片描述


B. Local Image Pattern Classification

测试时,置信度大于 δ1\delta_1δ1 的点将被视为标记点。假如有两个标记点 p1,p2\mathbf{p}_1,\mathbf{p}_2p1,p2还需要验证其是否能够形成有效的车位进入线?

  • 首先如果 p1,p2\mathbf{p}_1,\mathbf{p}_2p1,p2 能够形成一个有效的车位进入线,两个标记点之间的距离应该满足一些距离约束条件。如果是平行停车位的车位进入线,应该满足 t1<∣∣p1p2∣∣<t2t_1<||\mathbf{p}_1\mathbf{p}_2||<t_2t1<p1p2<t2,如果是垂直或倾斜停车位的车位进入线,应该满足t3<∣∣p1p2∣∣<t3t_3<||\mathbf{p}_1\mathbf{p}_2||<t_3t3<p1p2<t3,参数 t1、t2、t3、t4t_1、t_2、t_3、t_4t1t2t3t4 是根据各种停车位进入线长度的先验知识确定的。
  • 然后,还需要进一步处理满足距离约束的标记点对。首先,对于一对标记点,虽然它可以满足距离约束,但它们仍然很可能无法形成有效的车位进入线。例如,在下面的左图中两个标记点之间的距离满足作为平行停车位的车位进入线的距离约束;然而,这两个标记点仍然无线形成有效的车位进入线,因为它们之间还存在一个标记点未检测出来。另外,假设可以形成有效的车位进入线。还需要确定相关的停车位是在顺时针方向还是在逆时针方向,以及这个停车位是直角还是倾斜。所有这些问题都可以通过将两个标记点形成的局部图像模式分类到预定义的类中来解决

如中间的图所示:首先建立以 p1\mathbf{p}_1p1p2\mathbf{p}_2p2中点为原点,以 p1p2→\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}p1p2X\mathbf{X}X 轴的局部坐标系。因此可以确定它的 Y\mathbf{Y}Y 轴。在这个坐标系中,定义了一个矩形区域 R\mathbf{R}R。对于 R\mathbf{R}R,其沿 X\mathbf{X}X 轴的长度设为 ∥p1p2∥+Δx\left\|\mathbf{p}_{1} \mathbf{p}_{2}\right\|+\Delta xp1p2+Δx 及其沿 Y\mathbf{Y}Y 轴的长度设为 Δy\Delta yΔy, 从环视图中提取 R\mathbf{R}R 覆盖的区域,将其归一化为 w×hw\times hw×h 的大小区域,得到了局部图像模式。

在训练阶段,会得到一个由标记点形成的所有局部图像模式组成的集合 C\mathbb{C}C。根据停车位的特征,将集合 C\mathbb{C}C 中的样本分为7类,如右图所示:逆时针直角,逆时针倾斜(锐角),逆时针倾斜(钝角),顺时针直角,顺时针倾斜(钝角),顺时针倾斜(锐角),无效

在构造集合 C\mathbb{C}C时,还有一个实际问题,类不平衡,这意味着一个特定的类相对于其它类只有很少的实例。为了解决这个问题,作者采用了SMOTE对少数类别进行了过度采样。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

作者设计的分类模型如下图所示,右边是模型参数。

在这里插入图片描述在这里插入图片描述

C. Parking-Slot Inference

在自动泊车系统中,停车位通常被认为是一个平行四边形,由其四个顶点的坐标表示。在大多数情况下,两个非标记点是不可见的,其坐标只能通过推理得到。为此,需要假设停车位的深度是已知的先验知识。如下图(a)、(b)、( c )所示,垂直、平行和倾斜的停车位的深度分别为 d1、d2、d3d_1、d_2、d_3d1d2d3
在这里插入图片描述

  • 假设 p1\mathbf{p}_1p1p2\mathbf{p}_2p2 是两个检测到的标记点,形成的局部图像模式分为顺时针直角逆时针直角,则可以很容易地计算出两个非标记点 p3\mathbf{p}_3p3p4\mathbf{p}_4p4 的坐标。例如,在上图(a)中,标记点形成的局部图像模式是顺时针直角并且此停车位应为垂直停车位,其深度d1d_1d1。因此,其另外两个标记点 p3\mathbf{p}_3p3p4\mathbf{p}_4p4 可表示为:
    p3=[cos⁡π2sin⁡π2−sin⁡π2cos⁡π2]p1p2→∥p1p2→∥⋅d1+p2p4=[cos⁡π2sin⁡π2−sin⁡π2cos⁡π2]p1p2→∥p1p→2→∥⋅d1+p1\begin{array}{l} \mathbf{p}_{3}=\left[\begin{array}{cc} \cos \frac{\pi}{2} & \sin \frac{\pi}{2} \\ -\sin \frac{\pi}{2} & \cos \frac{\pi}{2} \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}\right\|} \cdot d_{1}+\mathbf{p}_{2} \\ \mathbf{p}_{4}=\left[\begin{array}{cc} \cos \frac{\pi}{2} & \sin \frac{\pi}{2} \\ -\sin \frac{\pi}{2} & \cos \frac{\pi}{2} \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \overrightarrow{\mathbf{p}}_{2}}\right\|} \cdot d_{1}+\mathbf{p}_{1} \end{array} p3=[cos2πsin2πsin2πcos2π]p1p2p1p2d1+p2p4=[cos2πsin2πsin2πcos2π]p1p2p1p2d1+p1
  • 当由两个标记点形成的局部图像模式被分类为倾斜时,如上图( c )所示。在图( c )中,标记点形成的局部图像模式被分类为逆时针倾斜(锐角);为了估计两个非标记点的位置,需要估计角度 α\alphaα。为了解决这个问题,采用基于模板匹配的策略。图(d)中所示的是一套理想的T形模板 {Tθj}j=1M\{\mathbf{T}_{\theta_j}\}_{j=1}^{M}{Tθj}j=1MMMM 是模板数量。每个模板的大小为 s×ss\times ss×s。测试时,提取两个标记点的图像进行匹配,则角度 α\alphaα 为:
    α=arg⁡max⁡θj{I1∗Tθj+I2∗Tθj},j=1,…,M\alpha=\underset{\theta_{j}}{\arg \max }\left\{\mathbf{I}_{1} * \mathbf{T}_{\theta_{j}}+\mathbf{I}_{2} * \mathbf{T}_{\theta_{j}}\right\}, \quad j=1, \ldots, Mα=θjargmax{I1Tθj+I2Tθj},j=1,,M
    则其余两个标记点计算为:
    p3=[cos⁡α−sin⁡αsin⁡αcos⁡α]p1p2→∥p1p2→∥⋅d3+p2p4=[cos⁡α−sin⁡αsin⁡αcos⁡α]p1p2→∥p1p2→∥⋅d3+p1\begin{array}{l} \mathbf{p}_{3}=\left[\begin{array}{cc} \cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}\right\|} \cdot d_{3}+\mathbf{p}_{2} \\ \mathbf{p}_{4}=\left[\begin{array}{cc} \cos \alpha & -\sin \alpha \\ \sin \alpha & \cos \alpha \end{array}\right] \frac{\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}}{\left\|\overrightarrow{\mathbf{p}_{1} \mathbf{p}_{2}}\right\|} \cdot d_{3}+\mathbf{p}_{1} \end{array}p3=[cosαsinαsinαcosα]p1p2p1p2d3+p2p4=[cosαsinαsinαcosα]p1p2p1p2d3+p1

最终,DeepPS的训练和测试工作流程如下:
在这里插入图片描述


3. Experimental Results

A. Benchmark Dataset & Settings

首先介绍数据集:每张环视图的分辨率为600×600,对应于一个10m×10m的区域,即环视图上1个像素的长度对应于物理地面上1.67cm长度。通过离线标定,可以得到从环视图坐标系到以车辆为中心的世界坐标系的变换矩阵。因此,当在环视图上检测到停车位时,可以反投影确定其在世界坐标系中的坐标。

表3和4是 ps1.0,ps2.0 数据集的比较与测试集数据采样分布,表5是超参数设置。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

B. Marking-Point Detection & Local Image Pattern Classification

下面介绍标记点检测,对于标记点真值 gi\mathbf{g}_igi,如果一个检测到的标记点 di\mathbf{d}_idi 满足 ∥gi−di∥<δ2\left\|\mathbf{g}_{i}-\mathbf{d}_{i}\right\|<\delta_{2}gidi<δ2,则认为 gi\mathbf{g}_igi 是正确检测的。为了比较不同的检测器,我们通过改变检测置信度的阈值,画出log-log图绘制漏检率与每张图片的误报率

然后是定位误差,用 gi\mathbf{g}_igi 表示真值,gi′\mathbf{g}_i^{'}gi 表示检测到的标记点(真阳性)。用 ei=∥gi′−gi∥e_{i}=\left\|\mathbf{g}_{i}^{\prime}-\mathbf{g}_{i}\right\|ei=gigi 表示定位误差,这里使用平均定位误差作为定位误差。漏检率与误报率、定位误差、检测时间比较、局部图案分类结果如下表:

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

C.Parking-Slot Detection

作者与其它几种停车位检测算法进行了比较,结果如下:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

相关文章

Monitor(管程)是什么意思?Java中Monitor(管程)的介绍

本篇文章给大家带来的内容是关于Monitor&#xff08;管程&#xff09;是什么意思&#xff1f;Java中Monitor&#xff08;管程&#xff09;的介绍&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 monitor的概念 管程&#x…

详解经典GPS辅助惯性导航论文 A GPS-aided Inertial Navigation System in Direct Configuration

本文介绍一篇 IMU 和 GPS 融合的惯性导航论文&#xff0c;重点是理解本文提出的&#xff1a;Dynamical constraints update、Roll and pitch updates 和 Position and heading updates。 论文链接为&#xff1a;https://www.sciencedirect.com/science/article/pii/S166564231…

详解停车位检测论文:Attentional Graph Neural Network for Parking-slot Detection

本文介绍一篇注意力图神经网络用于停车位检测论文&#xff0c;论文已收录于 RA-L2021。在之前的基于卷积神经网络的停车位检测方法中&#xff0c;很少考虑停车位标记点之间的关联信息&#xff0c;从而导致需要复杂的后处理。在本文中&#xff0c;作者将环视图中的标记点看作图结…

详解3D物体检测模型 SPG: Unsupervised Domain Adaptation for 3D Object Detection via Semantic Point Generation

本文对基于激光雷达的无监督域自适应3D物体检测进行了研究&#xff0c;论文已收录于 ICCV2021。 在Waymo Domain Adaptation dataset上&#xff0c;作者发现点云质量的下降是3D物件检测器性能下降的主要原因。因此论文提出了Semantic Point Generation (SPG)方法&#xff0c;首…

Waymo研发经理:《自动驾驶感知前沿技术介绍》

Waymo研发经理|自动驾驶感知前沿技术介绍这是Waymo研发经理&#xff08;VoxelNet作者&#xff09;的一个最新分享报告&#xff1a;《自动驾驶感知前沿技术介绍》。在这份报告里&#xff0c;介绍了Waymo在自动驾驶感知中五个研究方向的最新成果。 1. Overview of the autonomous…

几种常见软件过程模型的比较

瀑布模型 瀑布模型&#xff08;经典生命周期&#xff09;提出了软件开发的系统化的、顺序的方法。其流 程从用户需求规格说明开始&#xff0c;通过策划、建模、构建和部署的过程&#xff0c;最终提供一 个完整的软件并提供持续的技术支持。 优点&#xff1a; 1. 强调开发的…

两篇基于语义地图的视觉定位方案:AVP-SLAM和RoadMap

本文介绍两篇使用语义地图进行视觉定位的论文&#xff0c;两篇论文工程性很强&#xff0c;值得一学。 AVP-SLAM是一篇关于自动泊车的视觉定位方案&#xff0c;收录于 IROS 2020。论文链接为&#xff1a;https://arxiv.org/abs/2007.01813&#xff0c;视频链接为&#xff1a;ht…

【51Nod - 1270】数组的最大代价(dp,思维)

题干&#xff1a; 数组A包含N个元素A1, A2......AN。数组B包含N个元素B1, B2......BN。并且数组A中的每一个元素Ai&#xff0c;都满足1 < Ai < Bi。数组A的代价定义如下&#xff1a; &#xff08;公式表示所有两个相邻元素的差的绝对值之和&#xff09; 给出数组B&…

一步步编写操作系统 56 门、调用门与RPL序 1

小弟多次想把调用门和RPL分开单独说&#xff0c;但几次尝试都没有成功&#xff0c;我发现它们之间是紧偶合、密不可分&#xff0c;RPL的产生主要是为解决系统调用时的“越权”问题&#xff0c;系统调用的实现方式中&#xff0c;以调用门和中断门最为适合。由于以后我们将用中断…

自动驾驶纯视觉3D物体检测算法

视频链接&#xff1a;https://www.shenlanxueyuan.com/open/course/112 这是Pseudo-LiDAR作者最近做的一个分享报告&#xff1a;《Pseudo-LiDAR&#xff1a;基于相机的3D物体检测算法》。在这份报告里&#xff0c;作者主要介绍了博士期间的研究成果&#xff1a;基于深度学习的…

一步步编写操作系统 57 门、调用门与RPL序 2

接上文&#xff1a; 提供了4种门的原因是&#xff0c;它们都有各自的应用环境&#xff0c;但它们都是用来实现从低特权级的代码段转向高特权级的代码段&#xff0c;咱们这里也只讨论有关特权级的功用&#xff1a; 1.调用门 call和jmp指令后接调用门选择子为参数&#xff0c;以…

Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation

在上一讲《Coursera自动驾驶课程第14讲&#xff1a;Linear and Nonlinear Kalman Filters》 我们学习了卡尔曼滤波相关知识&#xff0c;包括&#xff1a;线性卡尔曼滤波&#xff08;KF&#xff09;、扩展卡尔曼滤波&#xff08;EKF&#xff09;、误差卡尔曼滤波&#xff08;ES-…

详解车道线检测数据集和模型 VIL-100: A New Dataset and A Baseline Model for Video Instance Lane Detection

本文介绍一个新的车道线数据集 VIL-100 和检测模型 MMA-Net&#xff0c;论文已收录于 ICCV2021&#xff0c;重点是理解本文提出的 LGMA 模块&#xff0c;用于聚合局部和全局记忆特征。 论文链接&#xff1a;https://arxiv.org/abs/2108.08482 项目链接&#xff1a;https://gi…

七天入门图像分割(1):图像分割综述

最近在研究自动驾驶视觉语义地图构建&#xff0c;因为要使用到语义分割技术&#xff0c;趁此机会学习了百度飞桨的图像分割课程&#xff0c;课程蛮好的&#xff0c;收获也蛮大的。 课程地址&#xff1a;https://aistudio.baidu.com/aistudio/course/introduce/1767 1. 课程简要…

一步步编写操作系统 59 cpu的IO特权级1

在保护模式下&#xff0c;处理器中的“阶级”不仅体现在数据和代码的访问&#xff0c;还体现在指令中。 一方面将指令分级的原因是&#xff0c;有些指令的执行对计算机有着严重的影响&#xff0c;它们只有在0特权级下被执行&#xff0c;因此被称为特权指令&#xff08;Privile…

重读经典:《ImageNet Classification with Deep Convolutional Neural Networks》

9年后重读深度学习奠基作之一&#xff1a;AlexNet【下】【论文精读】这两天偶然间在B站看了李沐博士对AlexNet论文的重新解读&#xff0c;收获满满。AlexNet是当今深度学习浪潮奠基作之一&#xff0c;发表在2012年。在视频中&#xff0c;李沐博士主要是分享了他的三步法快速读论…

一步步编写操作系统 60 cpu的IO特权级2 什么是驱动程序

用户程序可以在由操作系统加载时通过指定整个eflags设置&#xff0c;操作系统如何设置自己的IOPL呢&#xff0c;即使内核IOPL为0也得写进去eflags寄存器中才生效。可惜的是&#xff0c;没有直接读写eflags寄存器的指令&#xff0c;不过可以通过将栈中数据弹出到eflags寄存器中来…

详解惯性导航论文 RINS-W: Robust Inertial Navigation System on Wheels

本文介绍一篇惯性导航定位论文 RINS-W&#xff0c;论文发表于 IROS2019。在本论文中作者提出了仅使用一个IMU进行长时间惯性导航的方法。方法主要包括两个部分&#xff1a; 检测器使用循环神经网络来检测IMU的运动状况&#xff0c;如零速或零横向滑移&#xff1b;使用Invarian…

一步步编写操作系统 61 任务状态段 TSS

I/O位图是位于TSS中的&#xff0c;它可以存在也可以不存在&#xff0c;它只是用来设置对某些特定端口的访问&#xff0c;没有它的话便默认为禁止访问所有端口。正是由于它可有可用&#xff0c;所以TSS的段界限TSS limit&#xff08;即实际大小-1&#xff09;并不固定。当TSS中不…

重读经典:《Deep Residual Learning for Image Recognition》

ResNet论文逐段精读【论文精读】这是李沐博士论文精读的第二篇论文&#xff0c;这次精读的论文是ResNet。ResNet 是 CVPR2016 的最佳论文&#xff0c;目前谷歌学术显示其被引用数已经达到了90000。 ResNet论文链接为&#xff1a;https://arxiv.org/abs/1512.03385。 1.第一遍 …