点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

文章导读

本文是一篇介绍鱼眼相机做车位线检测的文章,放眼当下泊车功能在智能汽车领域研究的如火如荼,从L2级的APA自动泊车发展到L2+的RPA远程遥控泊车再到L3级的HPA自学习泊车最后研究AVP自主泊车,其中每个功能都少不了车位线的检测。通过本文让小编带着大家一起学习车位线检测的相关技术和方法。

1

引言

小编近期从周视相机感知转战到环视感知领域,个人觉得对于行人、车辆等目标检测和道路信息的语义分割从实现上差别不大,但是如何做车位线检测任务让我纠结许久,也算是把近几年各种深度学习做车位线检测的文章都看了一遍,下面对常规方法做些总结分享。

2

车位线有哪些特征?

理想的车位线由四个角点和四条线组成,如下图所示:红色的称为入口线(the entrance line),左右两条称为分割线(the separate line),底部的紫线一般用处不大作为边界即可。

针对此类形状的目标,通常有三种检测方法:

a. 基于直线的方法通过找到两条分割线与入口线检测停车位,在一些使用传统图像处理算法检测车位线的系统中进行出现,使用Sobel,Canny等算子进行边缘检测,结合Hough变换利用几何特征获得潜在的停车位边界线。但是此类传统算法容易受到光照条件,线条磨损,地面阴影等环境因素的影响,性能缺乏鲁棒性。

b. 基于标记点的方法是通过检测入口线和两条分割线的交叉口,然后结合角点坐标检测停车位。传统图像处理算法中提供了不少人工设计的角点检测器,如Harris角点检测,Shi-Tomasi角点检测,FAST角点检测等。如果采用此类方法仍然会出现上述Hough线检测的鲁棒性问题,所以部分学者将车位线的入口线和分割线的两个相交区域作为检测目标,如下图所示:

c. 基于分割的方法是对车辆、空闲空间、停车位标识和其他对象进行逐像素的分类。这样就把车位线检测问题转换成了语义分割问题,形如前视感知中的车道线检测任务,但是语义分割任务需要经过一系列复杂的后处理才能得到相对准确的停车位,时耗上无法满足嵌入式端的实时要求。

3

车位线有哪些形式?

车位线的类型大方向主要有三种:垂直、水平、倾斜。但是在做车位线分类或者程序后处理时会遇到形形色色的结构,比如:

比如某些路边的停车位常用路沿代替一条分割线;某些停车场的车位入口线和分割线会分离开;整个停车位颜色不同于周边区域,但是就没停车线~~~等等。

4

如何入门学习车位线检测?

在无人驾驶的感知模块,不过是前视,周视,环视的环境感知,用深度学习提取特征做分类是必不可少的一项技术。如果最便捷的做出一款车位线检测的Demo,需要做好两项准备工作:

  • 用什么样的网络做检测任务?

  • 用什么样的数据做训练验证?

近几年开源了很多用深度学习做车位线检测的方法,下面小编给大家介绍几篇(顺序不分前后):

“Attentional Graph Neural Network for Parking-slot Detection”:该文分为三个阶段,分别是图特征编码、图特征聚合、入口线鉴别,在拼接的鸟瞰图上通过图神经网络对标记点之间的邻近信息进行聚合来进行车位线检测,解决常规标记点独立检测后的后处理步骤冗余问题。

“Context-Based Parking Slot Detection With a Realistic Dataset”:该文有点类似Faser RCNN的粗略定位+精细微调两阶段网络,先在PCR模块中识别是否有停车位,在通过PSD模块对旋转BBox准确定位。

“DMPR-PS A Novel Approach For Parking-slot Detection Using Directional Marking-point regression”该文通过检测带方向的标记点得到一张拼接后的鸟瞰图中所有入口线与分割线的相交区域,然后对其进行过滤筛选并配对分类出车位类型。

“Vacant Parking Slot Detection in the Around View Image Based on Deep Learning”:该文分为两个模块,车位线的检测和车位占用情况分类。车位线的检测模块采用YOLOv3的方式对整个车位槽的头部区域进行检测分类得到车位类型,省去了只检测两个交叉点后通过后处理得到车位类型的环节。

“PSDet: EfficientandUniversalParkingSlotDetection”:该文也是对车位线的交叉点进行检测,不同之处在于它对比了几种交叉点特征描述器的形式,采用圆形特征描述子提取交叉点范围内的特征能够更好的识别车位线相交区域。

相关文章较多,小编就不一一举例了,需要相关文章的小伙伴可以私聊找我。

说完了网络结构,我们来看看有哪些开源的车位线数据集。目前找到的只有三个:

  • ps2.0

  • PSV

  • WoodScape

ps2.0是一份四颗鱼眼拼接后的数据,数据均属于停车场景,训练集约1W张,测试集不到5K张,标签是mat格式。数据如下图所示:

PSV同ps2.0数据集差不多,由四颗鱼眼相机拼接后的图片制作而成。数据量较小,训练集2550张,验证集425张,测试集1274张,标签是语义分割图。数据如下图所示:

WoodScape数据集更偏向于每颗鱼眼独立的环境感知,标签包括约1W张外接框标签、约1W张语义标签、约1W张深度图、4颗相机的标定文件等信息,适用于分割、深度估计、三维包围盒检测、斑点检测等9项任务。数据如下图所示:

5

如何进阶提高车位线检测?

基于开源数据集训练的结果往往不适用自己的场景,需要自采自标小批量的对应场景做网络微调从而提高车位线的检测效果。

在这个过程中我们会遇到很多问题,比如如何采集数据、采集多少数据、采集哪些场景?

其实最麻烦的就是一个维度划分的问题,虽然车位线的类型只有垂直、水平、倾斜三种,但是外部环境因素多种多样。比如:

  • 车位线颜色的不同;

  • 场地材质的不同;

  • 光照强弱的不同;

  • 天气状况的不同;

  • 地面阴影的不同;

  • 车位磨损的不同;

制定采集标准时,一定要考虑细致详尽,并对每种数据的采集数量确保相对平衡,否则会造成部分情况效果较差。下图是从一篇文章中找到的维度参考,做做Demo应该可以了:

除了堆数据提高性能以外,可以考虑网络的输入和输出形式,输入是四颗鱼眼的拼接图还是单颗鱼眼的原始数据?

输出是以车位线四个关键点的形式还是入口处两个相交区域外接框形式又或者语义图形式?小编还在斟酌中,暂无很好的建议。

6

如何做的更像一款产品?

要想把Demo做到产品还有一大段路要走,不仅仅只关注把原型开发的模型移植到嵌入式端跑起来就结束了。从前期打通数据链路开始,关注RAW数据类型,ISP参数调节,算法模块设计,硬件加速单元的分配等;再到数据采集方式,标注形式数量,工具链如何提供高效迭代验证,以及代码质量审核,模型间性能评估等等一系列工作。路漫漫其修远兮,吾将上下而求索!

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计源码汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、orb-slam3等视频课程)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

一文详解鱼眼相机的车位线感知相关推荐

  1. 详解 | 自动泊车中鱼眼相机实现车位线感知

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达文章导读 本文是一篇介绍鱼眼相机做车位线检测的文章,放眼当下泊车功能 ...

  2. 鱼眼相机的车位线感知

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 文章导读 本文是一篇介绍鱼眼相机做车位线检测的文章,放眼当下泊车功 ...

  3. 一文详解深度相机之双目成像

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章导读 本文通过介绍双目立体视觉的成像过程,带大家了解双目视觉如何从两个不同视角的成像平面中恢复出物 ...

  4. 一文详解双目相机标定理论

    01 前言 双目相机标定,从广义上讲,其实它包含两个部分内容: 两台相机各自误差的标定(单目标定) 两台相机之间相互位置的标定(狭义,双目标定) 在这里我们所说的双目标定是狭义的,讲解理论的时候仅指两 ...

  5. OpenCV-Python实战(12)——一文详解AR增强现实

    OpenCV-Python实战(12)--一文详解AR增强现实 0. 前言 1. 增强现实简介 2. 基于无标记的增强现实 2.1 特征检测 2.2 特征匹配 2.3 利用特征匹配和单应性计算以查找对 ...

  6. 一文详解自动驾驶的动态驾驶任务(DDT) | 自动驾驶系列

    文章版权所有,未经授权请勿转载或使用 本系列上篇文章<一文详解自动驾驶的运行设计域(ODD)>解读了什么是自动驾驶ODD,本篇文章依据SAE J3016详细解读自动驾驶DDT.DDT fa ...

  7. 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列 1

    一文详解自动驾驶的运行设计域(ODD)| \n 自动驾驶系列 2021年4月30日,SAE发布了第四版J3016<驾驶自动化分级>,这是即2014年1月16日.2016年9月30日.201 ...

  8. 一文详解JavaBean 看这篇就够了

    一文详解JavaBean 看这篇就够了 JavaBean的历史渊源 JavaBean的定义(通俗版) JavaBean应用 < jsp:useBean > < jsp:getProp ...

  9. 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第二篇文章,前面我们已经介绍了第一个真正意义 ...

最新文章

  1. Xcode的Architectures、Valid Architectures和Build Active Architecture Only属性
  2. 软件项目管理0817:一夜项目管理——把任务进度计划分配给负责人
  3. slice切割数组arr=[[0,1],[2,3]]
  4. velocity模板的语法简要汇总
  5. 消息提示框-事件冒泡
  6. vs中html如何设计分页_如何在电路设计中使用负载线(Load Line)?
  7. android设备调用usb外置摄像头方法及案例
  8. 日期 日历 时区 地区 格式化 API 案例 MD
  9. 【软考 系统架构设计师】软件架构设计⑦ 构件与中间件技术
  10. 数字调制中比特率和波特率的关系
  11. 人脸对齐—3DDFA
  12. Node第四天学习总结—— 数据库与身份认证(数据库、安装并配置MySQL、MySQL的基本使用、在项目中操作MySQL、前后端的身份认证)
  13. python input获取多行文本
  14. Linux下创建和删除用户
  15. 2019 年 Google 编程之夏活动报告
  16. python爬虫读取pdf_Python读取PDF内容
  17. 牛顿下山法C++实现
  18. c#黑白棋算法_黑白棋C#源代码
  19. 06 逻辑斯谛回归——读书笔记
  20. 经验分享——教务管理系统有几大功能

热门文章

  1. linux笔记 1-13-软件安装
  2. Android Opengl
  3. python mysql 驱动安装
  4. Android Android应用开发实战 学习总结杂项
  5. 欢迎加入网络管理论坛群
  6. 5、catch中发生了未知异常,finally代码块如何应对?
  7. 微服务并不能解决你的烂代码问题
  8. 贝壳一站式大数据开发平台实践
  9. 菜鸟实时数仓2.0进阶之路
  10. 本来想用“{{”秀一波,结果却导致了内存溢出!