1.一种辅助驾驶中压线检测方法,其特征在于,包括以下步骤:步骤1:获取车辆在公路上行驶的交通图像,并获取感兴趣区域,即从交通图像中以方框截取出被测车辆和车道线所在的区域;
步骤2:对步骤1中获得的感兴趣区域进行灰度处理;
步骤3:对步骤2中获得的灰度图进行平滑处理;
步骤4:采用Canny边缘检测的方法,对步骤3获得的图像进行边缘检测,获得图像的边缘;
步骤5:将步骤4得到的图像在进行车道线参数提取后,进行Hough变换得到车道线;
步骤6:对步骤1中获得的感兴趣区域进行车辆目标检测;
步骤7:对步骤6中车辆目标检测后的图像进行定位并取出;
步骤8:对步骤7中得到的图像采用GrabCut算法进行车辆的交互式前景提取;
GrabCut算法具体为:输入一个矩形,矩形外的所有区域必为背景,矩形框内的图像是未知的,计算机使用一个高斯混合模型对前景和背景建模,再使用mincut算法后,区分前景和背景,其中GrabCut函数中的掩模图像采用掩码图像模式;
步骤9:对步骤8获得的车辆区域图像进行中值滤波以及图像二值化处理;
采用中值滤波函数medfilt2对步骤8获得的车辆区域图像进行中值滤波处理,采用imbinarize函数对中值滤波后的图像进行二值化处理;
步骤10:对步骤9获得的图像进行删除小面积连通域处理,使图像仅留下最大的连通域,即目标车辆区域;
利用bwareaopen函数删除图像中小面积连通域,其格式为BW2=bwareaopen(BW,P,conn),此函数用来删除二值图像BW中面积小于P的对象,默认情况下conn使用8邻域,此函数处理后即得到图像中的最大连通域,即目标车辆区域;
步骤11:对步骤10获得的车辆区域图像进行绘制最小外接矩形处理,并获取该矩形的宽高比,该值即为车辆近似的宽高比;
绘制车辆区域最小外接矩形的方法为:对于一个凸多边形O来说,其拥有两对和x及y方向上四个端点相切的切线,四条线确定了一个凸多边形的外接矩形,假设按照顺时针顺序输入一个凸多边形的n个顶点:①计算该凸多边形的外接矩形的四个端点,称之为xminO,xmaxO,yminO,ymaxO;②通过四个点构造凸多边形O的四条切线,该四条切线确定了两个卡壳集合;③如果一条切线 与凸多边形一条边重合,那么计算由这四条切线决定的矩形的面积,并且保存为当前最小值,否则将当前最小值定义为无穷大;④顺时针旋转线直到其中一条切线和凸多边形的一条边重合;⑤计算新矩形的面积,并且和当前最小值比较,如果小于当前最小值则更新,并保存确定最小值的矩形信息;⑥重复步骤④和步骤⑤,直到线旋转过的角度大于90度;⑦输出外接矩形的最小面积;⑧绘制凸多边形O的最小外接矩形;
步骤12:对步骤10获得的图像进行区域边界追踪处理,以获取车辆区域的轮廓边缘坐标;
获取车辆区域的轮廓边缘坐标的方法为:对图像中的每一个前景像素点都进行边缘追踪算法得到连通域边缘轮廓像素点,并将连通域边缘轮廓像素点坐标存进自定义数组coor中;
步骤13:对步骤12获得的车辆轮廓坐标进行条件判断,估计并画出车辆的前后轮位置;
估计车辆后轮位置的方法为:遍历coor数组中的所有坐标值,分别找到其中与图像左下角与右下角的距离最近的两个像素点,这两个像素点的连线Line1即为车辆的后轮位置;
估计车辆前轮位置的方法分为两种情况:其一,当步骤11中获取的宽高比whb<阈值Q时,即车辆倾斜程度较小时,认为图像中车辆前轮连线由车辆后轮连线直接向垂直方向上移h得到,其中h为目标车辆前后轮之间的距离;其二,当宽高比whb≥阈值Q时,即车辆倾斜程度较大时,通过遍历coor数组中坐标值,找到横坐标最小或最大的像素点Leftpoint,当车辆前轮向左倾斜,则取横坐标最小的像素点为左前轮位置,当车辆前轮向右倾斜,则取横坐标最大的像素点,此点即为车辆的右前轮位置,左前轮位置通过以Leftpoint为起点,绘制与两后轮位置连线Line1斜率相同且长度相同的线段Line2得到;
步骤14:对步骤13获得的车辆前后轮位置估计图像与步骤5得到的车道线图像进行小波变换图像融合,并检测车道线与车前、后轮连接线是否相交,若相交说明车辆压线;否则说明车辆未压线;
步骤13获得的车辆前后轮位置估计图像A与步骤5得到的车道线图像B进行融合,所用的方法具体如下:
步骤14.1:将两张图像转化为double类型;
步骤14.2:对步骤13获得的车辆前后轮位置估计图像A与步骤5得到的车道线图像B进行二层分解,建立图像的小波塔型分解;
步骤14.3:对各分解层分别进行融合处理,各分解层上的不同频率分量采用不同的融合算子进行融合处理,最终得到融合后的小波金字塔;
步骤14.4:对融合后所得小波金字塔进行小波重构,所得到的重构图像即为融合图像,而在最终的融合图像中,图像A与图像B中的显著目标,即车道线与车前、后轮连接线都被保留;
步骤14.5:对所得融合图像进行观察检测,即对融合图像各个像素点进行RGB数值筛选,若筛选出交点处像素点,则证明目标车辆压线;若没有筛选出交点处像素点,则证明目标车辆没有压线。
2.根据权利要求1所述的一种辅助驾驶中压线检测方法,其特征在于,步骤3中采用高斯滤波进行平滑处理。
3.根据权利要求1所述的一种辅助驾驶中压线检测方法,其特征在于,步骤4中进行Canny边缘检测的具体步骤为:
步骤4.1:计算高斯平滑处理后的图片中在每个点的梯度,变化值越大表明是边缘的概率越高,计算梯度的时候使用了卷积,相关计算如下:式中,Gx为x方向梯度,Gy为y方向梯度,G为梯度,θ为x和y两个方向梯度的夹角;
步骤4.2:非极大抑制,计算完梯度后,对整幅图像进行扫描,去除非边界上的点,具体是将每个像素点的梯度值与梯度方向上的两个点进行比较,当且仅当这个点的梯度值最大才保留,否则舍弃;
步骤4.3:设置两个阈值low_threshold、high_threshold,在经步骤4.2得到的图像中,由步骤4.1所求的每个点的梯度gradient与阈值的关系如下:(1)gradient≤low_threshold:丢弃此点,即该点不是边界点;
(2)gradient≥high_threshold:保留此点,即该点是边界点;
(3)low_threshold
4.根据权利要求3所述的一种辅助驾驶中压线检测方法,其特征在于,步骤6中所述的车辆目标检测方法为:首先下载用于目标检测的RetinaNet模型文件,再使用ImageAI实现目标检测任务;
步骤7中对图像的定位取出方法为:记录车辆目标检测后的图像中的左上角顶点和右下角顶点坐标,再遍历图像中的所有点,将矩形区域以外的像素点的颜色改成黑色,最后保存修改像素点后的图像。