本文是一篇系统介绍鱼眼相机进行车位线检测的专业教程。随着智能汽车从L2级的APA自动泊车发展到L2+的RPA远程遥控泊车、L3级的HPA自学习泊车,再到AVP自主泊车,车位线检测始终是各环节中的核心技术。下面,本文将带您系统掌握车位线检测的方法、技巧与产品化落地实践。
1. 概述:从周视到环视的感知转换
笔者近期从周视相机感知转向环视感知领域。个人认为,行人、车辆等目标检测以及道路信息的语义分割,实现上差别不大。但车位线检测任务让我纠结了较长时间。本文梳理了近几年的深度学习车位线检测方法,并分享常规思路与实践要点。
2. 车位线的特征与检测方法
2.1 车位线的组成
理想的车位线由四个角点和四条线构成:
- 入口线 (the entrance line) —— 红色线
- 分割线 (the separate line) —— 左右两条
- 底部边界(紫线,通常作用不大)
2.2 三种主流检测方法
针对车位线形状的目标,通常有三种检测方式:
- a. 基于直线的方法:找到两条分割线与入口线,使用Sobel、Canny等算子进行边缘检测,再结合Hough变换获取车位边界线。但传统算法易受光照、线条磨损、地面阴影等影响,鲁棒性不足。
- b. 基于标记点的方法:检测入口线和分割线的交叉口,结合角点坐标(如Harris、Shi-Tomasi、FAST)定位车位。同样存在鲁棒性问题,部分研究将交叉区域作为检测目标(如下示意图)。
- c. 基于分割的方法:对车辆、空闲空间、停车位标识等进行逐像素分类,将问题转化为语义分割。但后处理复杂,实时性难以满足嵌入式要求。

小提示: 实际项目中,可结合方法b和方法c的优势,例如用分割网络粗定位,再用标记点回归精调角点。
常见问题:Q: 传统图像处理方法能否在量产中使用?
A: 一般不建议。在稳定光照、无遮挡的停车场中可尝试,但面对复杂场景(如夜间、磨损)时效果很差,推荐使用深度学习方法。
3. 车位线的形式分类
车位线大方向分为三种:垂直、水平、倾斜。但在实际应用中会遇到多种变体:
- 路沿代替一条分割线
- 入口线与分割线分离
- 整个车位颜色不同于周边,但无标线

Q: 为什么车位线会有这么多形式?
A: 不同区域、不同管理方(如商场、路边)的划线标准不同,导致形态多样。采集数据时需覆盖这些变体。
4. 入门学习路线:网络与数据集
在无人驾驶感知模块,深度学习提取特征已是必备技能。要快速构建车位线检测Demo,需准备好网络结构和训练数据。
4.1 推荐网络结构
近几年开源了大量深度学习方法,笔者介绍几篇代表性工作:
- “Attentional Graph Neural Network for Parking-slot Detection”:三阶段——图特征编码、图特征聚合、入口线鉴别。在鸟瞰图上用图神经网络聚合标记点邻近信息,减少后处理步骤。
- “Context-Based Parking Slot Detection With a Realistic Dataset”:类似Faster 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: Efficient and Universal Parking Slot Detection”:检测交叉点,采用圆形特征描述子提取范围特征,识别更精准。


小提示: 入门阶段建议从YOLOv3或轻量级网络开始,快速验证流程,再逐步替换复杂网络。
4.2 开源数据集
目前可用的车位线数据集有:
- ps2.0:四颗鱼眼拼接后的图像,训练集约1W张,测试集不到5K张,标签为mat格式。
- PSV:同样来自四颗鱼眼拼接,数据集较小(训练集2550张,验证集425张,测试集1274张),标签为语义分割图。
- WoodScape:偏向单颗鱼眼的环境感知,包含约1W张外接框标签、1W张语义标签、1W张深度图、标定文件等,适用于分割、深度估计、3D包围盒检测等9项任务。



Q: 三个数据集分别适合什么场景?
A: ps2.0和PSV适合直接测试拼接图;WoodScape适合单颗鱼眼多任务学习,但车位线标签需自行提取。
5. 进阶提高技巧:数据采集与微调
开源数据集训练的模型往往不适用于自有场景,需要自采自标数据,并对网络微调。过程中需注意维度划分。
5.1 影响检测的因素
- 车位线颜色不同
- 场地材质不同
- 光照强弱不同
- 天气状况不同
- 地面阴影不同
- 车位磨损不同

小提示: 制定采集标准时,对每种情况的数据量保持相对平衡,避免模型对某些场景欠拟合。
5.2 采集维度参考
以下维度可作为数据采集的参考(来自相关文章):

5.3 输入输出形式的选择
除了堆数据,还可考虑网络的输入输出形式:
- 输入:四颗鱼眼拼接图 还是 单颗鱼眼原始图?
- 输出:四个关键点?入口处两个相交区域外接框?还是语义图?

笔者仍在斟酌中,暂无最佳建议。可根据实际计算资源与精度需求权衡。
常见问题:Q: 需要采集多少数据才能微调?
A: 一般每类场景至少500~1000张,保证多样性。若已有预训练模型,可减少至200张。
6. 产品化考量:从Demo到量产之路
将Demo做成一款产品,远不止模型移植到嵌入式端。需系统考虑:
- 数据链路:RAW数据类型、ISP参数调节、算法模块设计、硬件加速单元分配
- 采集与标注:数据采集方式、标注形式与数量、工具链高效迭代验证
- 代码与模型:代码质量审核、模型间性能评估
路漫漫其修远兮,吾将上下而求索!
常见问题:Q: 嵌入式端推理速度如何保证?
A: 可选用轻量级网络(如MobileNet、ShuffleNet),配合TensorRT/OpenVINO量化加速,并利用NPU等硬件模块。
7. 总结
鱼眼车位线检测是智能泊车系统的关键一环。从理解车位线特征、选择检测方法,到利用深度学习网络与开源数据集入门,再到数据采集微调与产品化落地,每一步都需要扎实的工程经验。希望本教程能帮您少走弯路,快速构建高效稳定的车位线检测系统。
编辑:黄飞
