简介

本文主要简单梳理从2000年以来比较具有代表性的基于视觉停车位检测方法的文献(主要分为传统方法和最近两年火起来的深度学习的方法),作为入自动驾驶领域的第一篇博客啦!(多图预警!!!)
文献目录:

2000-Vision-Guided Automatic Parking for Smart Car

这篇文章应该是比较早基于视觉方法来检测停车位的文章,但整篇文章不仅仅包括检测停车位,而是自动泊车的整个过程(检测停车位、障碍物检测、运动规划等)。
这里其检测车位的核心思想:停车位的车位线颜色上同周围背景差异大,那么可以直接利用HSI颜色空间的色彩信息来分割出车位线,通过图像坐标系到地面三维坐标系的转换即可得到车位信息。
文章采用了一个名为RCE的神经网络结构,直接在HSI色彩空间中学习得到结果,结构如下:

那时候的结构真的看不懂啊…而且那时候还没兴起全景环视相机,只是一个摄像头采集的图像,能够获得的车位信息其实真的不多。
得到分割结果后,再遍历分割图像列就可以获得那些分割点(分割像素值与周围像素差别明显),利用得到的这些点作直线拟合(最小二乘法)就得到了最后的车位线。结果如下:

然后就是坐标变化的事啦。总的来说这篇论文的思路还是比较简单的,这种直观思考问题的思想还是值得学习的。但是这个方法在今天已经不适用啦。
存在的问题:

  • 只能检测单一规则车位。但是车位类型很多啊(直库、长库、斜库)等等
  • 不能适应复杂场景。由于只采用了色彩,如果遇到阴影、遮挡等等情况,效果肯定不好
  • 害…年代久远…网络结构自然是比不上现在的网络了

2006-Parking Slot Markings Recognition for Automatic Parking Assist System

这篇文章首先是把图像投到上帝视角得到鸟瞰图像,然后利用Soble算子提取边缘得到edge-image。接下来将edge-image通过霍夫变换转换到Hough space 提取车位对应直线段(基于二值图像中直线段像素转换到霍夫空间后表现为peak value的特点,在Hough space 检测peak value即可对应到二值图像中的直线)。文章采用的变化与一般的Hough变化略有不同,二值图像中直线与Hough 空间参数的对应关系如下:

最后的变化结果对应关系如下图所示:

这里存在问题:如果环境不够干净,比如检测出来很多直线,会出现不可避免的干扰。文章提到butterfly pattern(一个文献的方法,我没去看)是解决这种问题的一种方式,但是计算量大、耗时。于是文章提出了distribution pattern(如上图Fig 3),即用假设的直线间距w作为车位线边缘直线对的特征约束。
再接下来文章提出一个在d轴方向的一维滤波,结合Hough空间中峰对的先验知识,检测出峰对的候选。通过形态扩张和连通成分搜索,连续检测候选簇。最后就得到检测的peaks啦。其具体的原理就不细讲了,公式好多…不想打了…(这一块好多内容都不太懂…)。前面说了Hough space里面的peak对应edge-image里面的直线啦,从Hough空间变换回去就可以得到直线参数了。求如下图的角点就可以得到车位的位置啦。

总结:这篇文章看得似懂非懂的,还是自己基础不够。图像处理的知识还得补起来!Hough变换和Soble算子的内容得看!

2010-Uniform User interface for Semi-automatic Parking Slot Markings Recognition

2010年发表在IEEE TRANSACTIONS上的文章,主要是提出了一个半自动泊车的交互系统
文章认为自动泊车三步骤:1.泊车位定位。2.路径规划。3.路径跟踪。停车位定位的方式可以有四种方式:1.用户介入(指出来位置)。2.泊车位标志 。3.空旷空间。4.基于设施。本文采用的是基于泊车位标志的方法。首先由使用者在交互屏幕上用手点出车位角点的位置,然后对给出的位置做进一步处理。

整个系统的流程图。具体来讲就是首先人为选定两个车位角点,然后对分别取两个点附近的1x1m的ROI区域做处理后,对两个角点类型利用神经网络分类。根据两个点分类结果匹配,匹配的结果确定最终的车位类型计算出整个车位四个点。

对于接下来的处理,首先是强度直方图聚类(啥是强度直方图…灰度之直方图?)区分背景和车位线:采用强度直方图聚类的方法:将强度直方图过度聚类成簇,将最亮的聚类作为车位标记的像素。二值化后通过模板匹配获取到分类信息,确定到最终的车位类型(车位入口处两侧角点的组合类型)。然后直接把车的矩形框按这两个点和分类结果进行放置,就可以得到一个目标结果位置了。

这个思路还是可以的。不需要去计算剩余的两个点只需要人为指定两个点,然后做分类。最后直接拿一个框去放,确定位置。具体讲:一旦识别了目标停车入口两侧的连接模式,就可以相应地建立目标位置。对于不包括菱形在内的四种类型,可以通过将矩形目标位置的外侧置于连接两种结型中心点的直线上,并将矩形的侧边中心点置于两种结型中心点上来建立目标位置,在菱形类型的情况下,目标位置如上图放。
总结:现在可以拿目标检测器检测角点,做分类,然后直接拿一个预设的车框放置上去。但是这种思路是否可行有待商榷,毕竟车类型不一样,车位类型也很多。

2012-Fully-automatic recognition of various parking slot markings in Around View Monitor (AVM) image sequences

这篇应该是比较早的一篇利用环视图像(AVM Image)来做泊车位检测的文章。文章的主要思路是:首先利用作者之前提出的一种层次树检测器(the hierarchical tree structure)来检测当前帧角点,然后,使用连续图像之间的变换来预测先前检测到的车位的当前位置,并且将在当前图像中检测到的停车位与从先前图像中预测的停车位进行组合。根据它们的类型和方向对得到的停车位进行聚类,并且选择包含超过预定数量的车位的簇作为最终的停车位。系统流程如下:

首先,检测角点的方式还是利用的模板匹配的方式。文章说的层次树的方法如下图:

也就是从大到小逐步分组,检测角点返回去确定类型。首先检测角点是用的Harri算子,然后配对生成多个可能结果。具体如下图:

对于重叠的结果,若超过一定交并比,就用NAIV(normalized average intensity values )去去除多余的结果(车位线更亮,值最大)。

然后是从之前的检测结果预测当前帧的车位结果。这里作者提到用两帧间的相机位姿变换矩阵来做。但是由于图像间的变换关系常被错误估计(具体原因一大堆,见论文。现在的深度学习姿态估计网络呢?)。文章用了这样一个变换关系:

R和t分别是2x2和2x1的旋转和平移矩阵。具体R和t的计算方式见论文。(这里也没讲很清楚,特别是R怎么算,文章没讲很清楚。)
再接下就是利用预测结果和当前检测结果做校正。分为了三种情况:1.检测结果和预测结果不重叠。2.检测结果和预测结果重叠在同一车位。3.不同车位的重叠。具体操作这里只讲2吧,文章还是用的前面说的NAIV从预测和检测中确定最好的结果。
为了确定最终的停车位,根据剩余的非重叠停车位的类型和方向对其进行聚类。假设在一个AVM图像序列中只有一种类型的停车位标记,则将包含最多个槽的簇的停车位类型视为最终的停车位标记类型。然后,选择与最终停车位标记类型相同且包含两个以上槽位的簇作为最终停车位。
总结:文章前面用角点来做检测的思路还是很清晰的,但是我不是太懂为什么要做预测。而且关键是预测结果最后也只是简单的与检测结果做了一下比较。感觉没有太大作用。倒是用作跟踪的话会不会有稳定性提升以及使那些运动过程中突然丢失角点的车位能够检测出来?

2016-Directional-DBSCAN Parking-slot Detection using a Clustering Method

这篇文章也是一个传统方法。首先文章总结了之前方法,主要分为基于角点检测的方式和基于线段检测的方式。作者认为基于角点检测(Fast Corner检测、Harris角点检测等)的方式在环视图像中效果不佳,因为环视图像的拉伸、拼接等操作使得车位线常常出现偏移、图像模糊难以分辨等问题。而基于线段检测的方式如Hough变换直线检测也效果一般。于是文章提出了一种名为D-DBSCAN 的直线检测算法。具体算法比较复杂。短时间内也没看太懂。。。
总的流程是:1.环视图像输入2.特征提取(图1)3.使用D-DBSCAN聚类直线段特征点(图2)。4.最小二乘法对聚类的特征点直线拟合(参数) 5.决策树根据进入线段长度对库位类型分类(图3)



2018-VH-HFCN based Parking Slot and Lane Markings Segmentation on Panoramic Surround View

之前的方法都可以认为是传统方法,即图像处理的方法或者传统神经网络的处理方法。从2017年还是2018年开始就有了用深度学习方法来完成车位检测这个任务的工作。本篇文章就是一个利用卷积神经网络实现车位线与背景分割加上传统方法的工作。除此之外,本篇文章还发布了一个环视图像的停车位数据集PSV。
首先还是老规矩,介绍文章方法的整体流程:1.卷积神经网络做车位线与背景的分割。2.形态学处理提取车位线骨架。3.hough变换获取车位直线。4.合并/删除多余直线,算出车位坐标(角点坐标)。
分割网络结构如下图:

核心思想是车位线主要是线特征,于是在垂直和水平方向上分别提取特征然后结合特征信息。网络结构骨架很清楚啊,就是其中的Downsampling层和Upsampleing层结构没有很清楚列出来。。。
分割结果样例:

总结一下吧:那是不是可以用语义分割网络来做呢?不过好像没有相应的数据集语义标注信息。可以考虑做一下相关工作哈哈哈说不定就是一篇论文

2018-Vision-based Parking-slot Detection A DCNN-based Approach and A Large-scale Benchmark Dataset

这篇文章应该是近两年影响比较大的一篇了,发表在IEEE Trans.上。
老规矩先讲文章主要干了什么事情:1.发布了一个环视图像的车库数据集ps2.0 ,主要包含直库、斜库、平行库三种车库类型在不同环境(阴影、雨天、地下车库、户外等)下的场景共12000多张。2.用深度卷积神经网络目标检测的方法实现对车位角点(头部角点)的检测,再做进一步计算、判断得到最后的检测结果,实现了比较好的结果。网络名称:DeepPS。
首先是基于YOLOv2训练了一个角点的检测网络,然后又利用一个分类网络对检测到的结果对应的车库类型进行分类。如下图1,检测到p1、p2。然后截取出来给到分类网络得到分类结果(文章总共设置了7类)。分类网络如图2。


根据检测得到的P1、P2和分类对应的角度seta值和车库深度d,用如下公式即可计算出车库另外两个点(可能不在可视范围内)。

从结果(DeepPS)来看呢还是很不错的。

总结:这篇论文是第一篇用目标检测的方法来做车位检测的(应该是吧。。),对后面的研究影响还是比较大的。后面有文章就是借鉴的这个思路做了改进。但是实际上呢还是有比较多问题,特别是分类问题,主要是分类器做不到完全的准确,会分错。

2018-Semantic segmentation-based parking space detection with standalone around view monitoring system

刚说完可以用语义分割来做,就看到一篇。文章提出了一种统一的停车位检测结构(全卷积语义分割网络),用于检测停车位标线和静态障碍物。
老规矩先上整个方法的流程图:

就是首先做语义分割,将整个场景分为车位线、车、自由空间、其他物体四个类别。再在这个基础上将车位线的部分提取出来,二值化后利用垂直栅格编码、grouping、最后优化结果
语义分割网络结构:

分割结果例子:

垂直栅格化和grouping及优化示意图:

总结:刚刚还在说没有语义分割的数据集,这篇文章里面就提到了一个名为SS AVM的环视数据集,包含了语义分割信息,传送门:
AVM (Around View Monitoring) System Datasets for Auto
Parking. https://github.com/ChulhoonJang/avm_dataset (2017)
但是这篇文章的缺点是只能检测直库和平行库两种。不知道是不是数据集的原因,估计应该是数据集只有这两种类别。

2019-DMPR-PS: A new method of parking slot detection based on directional marking-point regression

这篇文章提出了一种基于回归来做车位检测的方式关键是将marking points表示成了点+形状+方向的形式。主要工作:1. 提出了一种基于CNN的directional marking point回归模型,实现了较DeepPS更高精度、速度更快的结果。
首先是对于directional marking point这个概念做了定义:position、shape、orientation。位置指的是车位进入线对应的角点、形状则认为可归类为T型和L型。方向则自然指的是是车位倾角。

directional marking point的定义如下:

整个方法的流程主要分两步:1.CNN回归。2.推断出最后的车位类型、结果

具体的CNN回归模型的结构见论文吧。然后推断主要做了两个事情,首先是删除多余的点,然后是剩下的点完成合适的配对。最后根据几何线索即可得到结果。
删除多余点:车位进入线长度限制、点与点之前是否还有其他点等条件。如下图P1。

两个点的配对可能性:

总结:文章的方法还是有新颖之处,将DeepPS将问题归类为检测+分类问题的方案简化为了只有检测问题,效率比较高,结果也不错。问题也看起来就简单了。但是在它的结果中,没看到对于斜库的结果。。不知道效果咋样

2019-A Deep-Learning Approach for Parking Slot Detection on Surround-View Images

2020-Vacant Parking Slot Detection in the Around View Imag

2020

#Context-Based Parking Slot Detection With a Realistic Dataset." IEEE Access, 2020.

“Real Time Detection Algorithm of Parking Slot Based on Deep Learning and Fisheye Image.” Journal of Physics: Conference Series. Vol. 1518. No. 1. IOP Publishing, 2020.

“Parking Slot Detection on Around-View Images Using DCNN.” Frontiers in Neurorobotics (2020).

“A Study Of Parking-Slot Detection With The Aid Of Pixel-Level Domain Adaptation.” 2020 IEEE International Conference on Multimedia and Expo (ICME). IEEE, 2020."

“AVP-SLAM: Semantic Visual Mapping and Localization for Autonomous Vehicles in the Parking Lot.” arXiv preprint arXiv:2007.01813 (2020).

“PSDet: Efficient and Universal Parking Slot Detection.” arXiv preprint arXiv:2005.05528 (2020).

“Vacant Parking Slot Detection in the Around View Image Based on Deep Learning.” Sensors 20.7 (2020): 2138.

“Vision-Based Parking Slot Detection Based on End-to-End Semantic Segmentation Training.” 2020 IEEE International Conference on Consumer Electronics (ICCE). IEEE, 2020.

“End-to-End Trainable One-Stage Parking Slot Detection Integrating Global and Local Informations.” arXiv preprint arXiv:2003.02445 (2020).

“SPFCN: Select and Prune the Fully Convolutional Networks for Real-time Parking Slot Detection.” arXiv preprint arXiv:2003.11337 (2020).

这个git仓库在不断更新,有需要的朋友可以自己去关注。

总结

目前主要分为基于空间信息和基于视觉信息两类,但是基于空间信息的对周围的环境依赖性强,只适用于周围有车的情况。基于视觉信息的方法从单视角到现在采用最多的全景环视,主要分为传统视觉特征处理方法和基于深度学习的方法。传统视觉特征主要分为角特征和线特征,即角点检测和线段检测的方式。基于深度学习的方法主要将停车位检测分为了目标检测分类、语义分割、回归问题三类。从目前在公开数据集(PS2.0、PSV等)的测试结果来看,深度学习方式的精度、速度已经相较于传统方法有了较大提升。但实际上,还有很多工作可以做:比如标准库(数据集)的数据类型、场景、标签的多样和丰富以及全面;比如库位的目标检测及跟踪;比如基于视觉的车库视觉SLAM…任重而道远啊,本菜鸟还有很多需要学习和补习的东西…

自动泊车-停车位(泊车位)检测文献阅读综述(笔记)相关推荐

  1. 谣言检测文献阅读三—The Future of False Information Detection on Social Media:New Perspectives and Trends

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  2. 谣言检测文献阅读二—Earlier detection of rumors in online social networks using certainty‑factor‑based convolu

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  3. 谣言检测文献阅读六—Tracing Fake-News Footprints: Characterizing Social Media Messages by How They Propagate

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  4. 谣言检测文献阅读十二—Interpretable Rumor Detection in Microblogs by Attending to User Interactions

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  5. 谣言检测文献阅读四—Reply-Aided Detection of Misinformation via Bayesian Deep Learning

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  6. 谣言检测文献阅读一A Review on Rumour Prediction and Veracity Assessment in Online Social Network

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  7. 如何做好文献阅读及笔记整理

    文章目录 1 为什么要做文献阅读 2 如何做好文献阅读 2.1 如何筛选所需阅读文献 2.2 相关工具 2.3 了解论文整体框架结构 2.4 针对不同的目标有选择性阅读文献 3 如何做好笔记整理 3. ...

  8. 文献阅读十——Detect Rumors on Twitter by Promoting Information Campaigns with Generative Adversarial Learn

    系列文章目录 谣言检测文献阅读一-A Review on Rumour Prediction and Veracity Assessment in Online Social Network 谣言检测 ...

  9. 基于多传感器数据融合的全自动泊车系统研究与应用(文献综述)

    附:文献综述 基于多传感器数据融合的全自动泊车系统研究与应用 摘要: 随着科技的进步与城市车位空间的减小,汽车逐渐向智能化发展,如何安全快速地泊车成为驾驶员面临的难题.关于自动泊车辅助系统的研究,国内 ...

最新文章

  1. 程序开发是编写sql语句的注意事项
  2. 福建省高职单招分数怎么计算机,2019福建高职单招切线 高职招考分数线是多少...
  3. Polynomial(2019南昌邀请赛)(拉格朗日插值)
  4. 嵌入式指针embedded pointer的概念以及用法
  5. 看完这些干货帖,大数据产品从入门到精通
  6. 微信小程序音乐播放控制API在真机上貌似不可用?
  7. linux 系统命令和方法
  8. mac如何删除用户或者群组
  9. 19春招多益网络前端笔试题
  10. Ubuntu修改时区和更新时间
  11. bat批处理与adb命令的配合
  12. SpringMVC大体流程框架类图版
  13. vue3.0 + xlsx 实现纯前端生成excel表格
  14. excel切片器_给我1分钟,让你的Excel表格好看些,再好看些!
  15. 如何在sql语句里添加注释
  16. 什么才算好的监控系统?
  17. 如何推进中小学STEM教育课程开发和实施
  18. 学习方法推荐——快速阅读
  19. 即将到来的风暴 ― SDN/NFV探讨
  20. android div拖动排序,鼠标拖动实现DIV排序示例代码

热门文章

  1. SomethingOn生产力提升工具使用
  2. MySQL六种窗口函数用法案例
  3. 错误1053服务没有及时_Windows7 错误1053:服务没有及时响应启动或控制请求解决办法...
  4. [ ABAP ] - 使用异步RFC实现并行处理
  5. 什么是数据产品经理?需要什么能力?有哪些相关书籍可以读?
  6. Java 遍历 Set 集合的方法,以及如何遍历删除 Set 集合中的元素?
  7. echarts饼图取消鼠标小手的样式
  8. 取消文件夹git同步
  9. 海上奇特人种巴焦人 以海为生上岸会晕地
  10. golang 实现solidity keccak256(abi.encode(xxx))签名