本发明涉及智能汽车电子领域,特别涉及一种基于深度学习的车位检测方法。
背景技术:
作为当今使用最广泛的交通工具,汽车的数量仍在不但增长,具有极其广阔的市场。随着科技的发展和人们对便捷生活的追求,自动化和智能化已成为汽车行业研究的重要方向之一,未来更是向着无人驾驶的方向发展。无人驾驶是集自动控制、体系结构、人工智能、视觉计算等众多技术于一体,是计算机科学、模式识别和智能控制技术高度发展的产物。其不仅要求能在高速公路与城市路段能够进行自行决策驾驶汽车,还要能够自动泊车,即在无人干涉的情况下让汽车自动停车入位。由于泊车的操作相对复杂,十分容易发生碰撞事故,因此自动泊车系统对于智能车来说很有必要。对于自动泊车来说,因为泊车过程需要精细的操作,因此对车位进行精确和实时的检测十分重要。
对于基于计算机视觉的车位检测,前任已有不少探索:xu等人在2000年发表的“vision-guidedautomaticparkingforsmartcar”提出了通过训练神经网络来色彩分割泊车位,是最早的检测泊车位地面标记的方法。duandtan的工作(autonomousreverseparkingsystembasedonrobustpathgenerationandimprovedslidingmodecontrol,2015)中,使用脊检测器通过噪声滤波和出去低像素组件等方法得到车位标志线中轴位置,但这种方法需要人为干预,不够智能。wang等人在“automaticparkingbasedonabird’seyeviewvisionsystem”中,提出在radon空间中对车位线进行分割,这是一种实现了完全自动化的检测方式,但缺点是此方法对线的粗细较为敏感。suhr和jung在“full-automaticrecognitionofvariousparkingslotmarkingsusingahierarchicaltreestructure”提出使用harris角点检测器检测出车位的角点,根据这些角点找出车位线的交点并判断出泊车位,这种方法的受限于harris角点检测的精确度,稳定性不好。suhr和jung在之后还发表了“automaticparkingspacedetectionandtrackingforundergroundandindoorenvironments”,线通过ransac算法对边缘像素来做线匹配,然后通过倒角匹配来做距离变换。但是这种方法不能检测平行车位。
技术实现要素:
本发明目的是:为克服现有技术的缺陷与不足,本发明提供一种基于深度学习的车位检测方法,为自动泊车系统提供精确的车位位置信息,减少车位检测过程中因为其他噪声造成的检测不准的影响,提高车位检测系统的鲁棒性,在保证车位检测准确率的情况下,尽量提高车位检测速度。
本发明的技术方案是:
一种基于深度学习的车位检测方法,包括步骤:
s1、由车载的多个鱼眼摄像头拍摄图像,经过变形矫正后拼接成360度环视图图像;
s2、首先通过一个深度学习训练的目标检测网络将环视图图像中的车位检测出来;
s3、将检测的车位进行截取,输入到一个深度学习训练的图像分割网络中,将截取车位的车位线分割出来,得到截取车位图片对应的掩模;
s4、在输出的掩模上通过图像处理和逻辑处理得出车位的四个角点坐标,并映射回原图中,由此检测出车位位置。
优选的,步骤s2中,深度学习训练的目标检测网络包括构建的带标注的环视图图像数据集,环视图图像标注规则为对于环视图图像的每个车位的四个角点,从左上角的角点开始顺时针标注,不封闭。
优选的,步骤s2在进行车位目标检测网络训练的过程中,先获取车位矩形框的左上角坐标(xmin,ymin)和右上角坐标(xmax,ymax),xmin,ymin分别为车位角点中x轴坐标和y轴坐标的最小值,xmax,ymax分别为车位角点中x轴坐标和y轴坐标的最大值,进行等距外扩后重新保存成xml格式,作为目标检测网络的标签。
优选的,步骤s3在进行车位线图像分割网络训练的过程中,先要对数据集进行预处理,根据车位的四个角点坐标在一张空图中将车位线通过opencv连接起来,生成图像对应的车位线掩模;然后通过随机外扩车位的外围矩形进行数据增强,即对于一个车位的外围矩形框(xmin,ymin)和(xmax,ymax),随机外扩为(xmin-r1,ymin-r2)和(xmax+r3,ymax+r4),其中r1,r2,r3,r4均为[5,25]的随机数;将外扩后的车位图像和掩模进行截取并保存,作为图像分割网络的输入和输出,训练时需要将图像和掩模。
优选的,步骤s4在掩模后处理的过程中,先用canny算法进行边缘检测,然后使用霍夫变换提取车位线掩模中的三根直线,由三根直线确定两个角点坐标,计算两个角点间边的长度和斜率,并推断另一边长度和斜率,由此确定旋转矩阵来得到另外两个角点的坐标,然后将角点坐标映射回原图。
优选的,所述车位目标检测网络的主干网络使用mobilenetv3,采用ssd框架加以改进来实现车位的目标检测。
优选的,在进行车位线图像分割网络训练的过程中,选取u-net作为图像分割的框架。
优选的,使用霍夫变换提取车位线掩模中的三根直线,三根直线两两间满足在角度差距较小的情况下两线的距离不能小于阈值,否则就重新选取。
本发明的优点是:
1.本发明提供的基于深度学习的无需人为干预的车位检测方法,为自动泊车系统提供精确的车位位置信息;
2,减少车位检测过程中因为其他噪声造成的检测不准的影响,提高车位检测系统的鲁棒性;
3,在保证车位检测准确率的情况下,尽量提高车位检测速度。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明基于深度学习的车位检测方法的算法流程图;
图2为本发明基于深度学习的车位检测方法的数据集标注示例;
图3为本发明基于深度学习的车位检测方法通过霍夫变换提取出掩模中的三根直线示意图。
具体实施方式
本发明提出的基于深度学习的车位检测方法,过程中使用算法主要由车位目标检测网络、车位线图像分割网络和掩模后处理算法组成,如图1所示。先将环形图图像作为车位目标检测网络的输入,预测出图中所有车位的目标框;然后将生成的目标框进行适当地缩放后进行截取,将截取后的图像输入车位线图像分割网络,得到每个截取车位对应的车位线分割掩模;最后根据掩模通过传统图像处理算法和逻辑判断计算出每个车位的4个角点坐标,并根据截取车位的坐标,将角点坐标映射回原图像。
进行深度网络训练需要先构建大规模、带标注的环视图图像数据集。标注规则为对于环视图图像的每个车位,从左上角的角点开始顺时针标注,不封闭,如图2所示,将每张图的车位角点坐标保存在一个xml文件中。
车位目标检测网络需要先对标注数据进行预处理,具体操作为对于每张环视图像中标注的车位,计算其外围的矩形框,用矩形框的左上角坐标(xmin,ymin)和右上角坐标(xmax,ymax)表示。其中,xmin,ymin分别为车位角点中x轴坐标和y轴坐标的最小值,xmax,ymax分别为车位角点中x轴坐标和y轴坐标的最大值。得到外围矩形框后对矩形框进行等距外扩,即将左上角坐标变为(xmin-5,ymin-5),右上角坐标变为(xmax+5,ymax+5),将修改后的外扩车位坐标重新保存成xml格式,作为目标检测网络的标签。基于深度学习的目标检测框架有r-cnn,fastr-cnn,fasterr-cnn,yolo,ssd,yolov2等,这里考虑到车位检测的实时性,采用ssd框架加以改进来实现车位的目标检测。主干网络使用mobilenetv3,进一步提高车位检测的处理速度。
车位线图像分割网络的训练也需要数据的预处理,先要根据图中车位角点坐标使用opencv将相邻角点相连(即画出车位线)生成掩模,然后将图和掩模中所有车位的外围矩形线进行随机外扩,然后进行截取,以实现数据增强的目的。具体操作为对于一个车位的外围矩形框(xmin,ymin)和(xmax,ymax),随机外扩为(xmin-r1,ymin-r2)和(xmax+r3,ymax+r4),其中r1,r2,r3,r4均为[5,25]的随机数。对于每一个车位生成三组这样的随机外扩,根据坐标在原图和掩模上分别截取保存下来作为图像分割网络的标签。基于深度学习的图像分割框架有fcn,u-net,segnet,deeplab,maskr-cnn等,出于对实时性的考虑,本发明使用u-net来做车位线的分割。由于训练u-net的分割网络需要输入的图像尺寸一致,因此训练时先将图片预处理,即将车位截取的图片和掩模缩放为同一大小。由于使用目标检测后的目标框来进行车位线分割,因此能排除多余的道路信息带来的噪声。
掩模后处理算法主要通过传统的图像处理算法根据车位线图像分割网络预测输出的掩模提取出车位的4个角点坐标。先将掩模使用canny算法进行边缘检测,提取出掩模中的车位轮廓。然后使用霍夫变换提取出掩模中的三根直线,如图3所示,三根直线两两间满足在角度差距较小的情况下两线的距离不能小于阈值,不然就重新选取。在选完三条直线后即可确定车位的两个相邻角点坐标(x1,y1)和(x2,y2),计算两个角点之间的距离
则另外两个角点坐标为(x3,y3)=a·(1,0)·l2±(x1,y1)和(x4,y4)=a·(1,0)·l2±(x2,y2),选取离目标检测框最近一组(x3,y3),(x4,y4)。由此通过掩模得到所有的车位角点坐标,然后根据掩模在原图截取的位置将车位角点坐标映射回原图。掩模后处理使用的输入是图像分割网络的输出,用掩模通过霍夫变换进行直线检测比直接通过真实车位图像进行直线效果更佳容易,因为排除了车位中车辆和地面质地带来的噪声影响。
本发明在实施过程中应注意以下几点:
(1)为构建用于训练的数据集,在尽可能多的车位场景下采集环视图图像。
(2)对于采集的环视图图像进行数据标注,标注规则为将每张环视图图像的车位按照顺时针依次将角点标出。
(3)使用标注的数据生成目标框作为标签,然后使用数据训练车位目标检测网络。
(4)使用标注的数据生成对应的车位线掩模,并对图像和掩模上的每个车位进行裁剪,然后使用裁剪的图像和掩模训练车位线图像分割网络。
(5)将环视图图像输入到车位目标检测网络,然后把生成的目标框裁剪后进行适当缩放后输入车位线图像分割网络,得到裁剪车位对应车位线掩模,然后输入掩模后处理算法可得到4个坐标点,再映射回原图即可得到原图上的车位角点坐标。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明主要技术方案的精神实质所做的修饰,都应涵盖在本发明的保护范围之内。