一种基于FPGA的车道线实时检测方法与流程

文档序号:19285719发布日期:2019-11-29 23:31阅读:663来源:国知局
一种基于FPGA的车道线实时检测方法与流程

本发明涉及智能交通领域,尤其涉及一种基于fpga的车道线实时检测方法。



背景技术:

随着自动驾驶汽车的普及,对车辆行驶过程中的车道线进行实时检测成为安全自动驾驶的首要基础任务。车道线检测内容包含车辆偏离车道中心的方向、距离,车道的弯曲程度等信息,而这些信息都有助于实现安全的自动驾驶。

目前对车道线检测的研究大多是基于pc的开发平台,利用cpu的高灵活性实现并且快速对比不同算法的检测效果,但是该平台性价比低、功耗高、体积大、实时性难以达到要求,不适合用于车载场景中,同时实现车道线检测的图像处理算法较容易受光照不均、阴影遮挡等影响,导致提取到的车道线出现残缺不全的现象。因此,提出一种在fpga硬件平台上使用图像处理算法,实现行车环境中的车道线实时检测,避免了基于常规的pc开发平台存在的功耗大、性价比低的问题。同时本发明利用多种方式提取车道线,并将多种提取结果进行融合的方法,降低了使用单一提取方式而出现的车道线残缺不全的问题。



技术实现要素:

本发明的目的在于,针对上述问题,提出一种基于fpga的车道线实时检测方法。

一种基于fpga的车道线实时检测方法,包括如下步骤:

s1:图像预处理步骤:分别在多种色彩空间中分别设置左右车道线阈值范围,将车道线从原图中分割出来,并以二值化的形式保存,通过将多种二值化图像进行对应像素点叠加,将三种色彩空间分割结果融合。

s2:逆透视变换步骤:通过图像消失点和实际情况,确定逆透视变换的感兴趣区域得到8个坐标位置,代入8个坐标值并利用高斯消元法,解出逆透视变换矩阵;然后利用逆透视变换矩阵,将步骤s1中的图像进行逆透视变换,得到鸟瞰图。

s3:车道线拟合步骤:通过使用滑动窗口和遍历鸟瞰图,实现对车道线的拟合。

s4:提取车道信息步骤:利用车道线的拟合曲线求解车道曲率半径,车道弯曲方向,再根据获得的车道线位置,并获取到当前图像的中心位置以及像素点对应的实际距离,求解出车辆偏离车道中心的方向和距离。

s5:透视变换步骤:通过对s2中得到的逆透视变换矩阵进行求逆运算,遍历鸟瞰图中所有像素的位置,最后从存储区中读出透视变换图像。

所述步骤s1包括如下子步骤:

s11:分别找出在rgb、hsl、hsv三种色彩空间中,黄色、白色车道线上的像素点数值所在的阈值范围。

s12:根据三种阈值范围,遍历输入图像并获取图像中的每一个像素点的值,将车道线从原图中分割出来,并以二值化的形式保存,得到三张车道线的分割结果图;

s13:将三种分割结果对应像素点位置的值进行叠加,如果某一位置的值大于等于1则输出1。

所述步骤s2包括如下子步骤:

s21:通过图像消失点以及车道线实际情况,确定需要进行变换的车道感兴趣区域,并获取到该区域的四个顶点坐标,以及变换之后对应四个点的坐标。

s22:将坐标代入公式1,利用高斯消元法求解出逆透视变换矩阵,得出坐标变换矩阵。

s23:开辟新的存储区,代入分割后的图像,在新存储区中写入像素值,获得鸟瞰图。

所述步骤s3包括如下子步骤:

s31:遍历鸟瞰图并统计图中每一列非零像素点的数目,遍历结束后找出非零像素点最多的两列,作为左右车道线的初始位置,同时根据初始位置计算左右车道线间距;

s32:以初始位置为中心,左右各50像素,绘制两个宽100像素高32像素的矩形框,记为第一组矩形框;

s33:统计第一组矩形框中非零像素点分布,分别找出非零像素点最多的位置作为下一组矩形框的中心位置;

s34:重复步骤s32、s33,直至整张鸟瞰图遍历完成;

s35:通过最小二乘法推导出求解拟合方程系数的线性方程组,将步骤s33中每一个矩形框的中心位置坐标为采样点代入方程组,并利用高斯消元法求解出方程系数,代入分割后的图像坐标,找出满足拟合曲线的像素点的坐标,而这些坐标的像素点就在车道线上。

所述步骤s4包括如下子步骤:

s41:根据拟合曲线表达式,以及曲率半径计算公式,求解车道曲率半径,计算公式如下:

其中,ρ表示曲率半径,k表示曲率,a2表示车道线二次拟合方程的系数,a1表示一次项系数。

s42:通过计算图像中心与车道中心的相对位置,计算出车辆是否偏离车道中心,以及偏离车道的方向和距离。

s43:根据曲线拟合方程的系数判断前方道路的弯曲方向。

本发明的有益效果:本发明提出一种利用fpga开发平台完成车道线检测的方法,通过优化程序提升系统实时性,针对霍夫变换检测弯曲车道线的不足,本发明使用滑动窗口及二次曲线拟合的方法,实现车道线拟合,并且计算并输出车道曲率半径、车道弯曲方向、车辆偏离车道中心的方向和距离等重要信息,使得该发明的更具实用意义。

附图说明

图1是fpga的车道线实时检测流程图;

图2是rgb色彩空间分割结果图;

图3是hsl色彩空间分割结果图;

图4是hsv色彩空间分割结果图;

图5是三种分割结果融合图;

图6是原题和逆变换结果对比图;

图7是矩形框寻找车道线和车道线曲线拟合图;

图8是车道信息提取结果图;

图9是车道检测时间结果图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。

本实施例中,图1是fpga的车道线实时检测流程图,一种基于fpga的车道线实时检测方法,包括如下步骤:

s1:图像输入步骤:对摄像头采集到的图像数据进行格式及传输接口进行转换,确保图像数据正确完整的传输;

s2:图像预处理步骤:分别在多种色彩空间中分别设置左右车道线阈值范围,将车道线从原图中分割出来,并以二值化的形式保存。

s3:分割结果融合步骤:通过多种二值化图像进行对应像素点叠加,将三种色彩空间分割结果融合。

s4:逆透视变换步骤:通过图像消失点和实际情况,确定逆透视变换的感兴趣区域,取到该区域的4个顶点坐标,并且设置经过逆透视变换之后对应4个点的坐标,总共得到8个坐标位置,代入8个坐标值并利用高斯消元法,解出逆透视变换矩阵;然后利用逆透视变换矩阵,将步骤s2的图像进行逆透视变换,得到鸟瞰图。

s5:车道线拟合步骤:通过使用滑动窗口和遍历鸟瞰图,实现对车道线的拟合。

s6:提取车道信息步骤:利用车道线的拟合曲线求解车道曲率半径,车道弯曲方向,再根据获得的车道线位置,并获取到当前图像的中心位置以及像素点对应的实际距离,求解出车辆偏离车道中心的方向和距离。

s7:透视变换步骤:通过对s3中得到的逆透视变换矩阵进行求逆运算,遍历鸟瞰图中所有像素的位置,最后从存储区中读出透视变换图像。

所述步骤s2包括如下子步骤:

s21:如图2、图3和图4,分别找出在rgb、hsl、hsv三种色彩空间中,黄色、白色车道线上的像素点数值所在的阈值范围。

rgb色彩空间:red∈[0,150]、green∈[170,220]、blue∈[200,255],同时满足提取黄色车道线;red∈[210,255]、green∈[210,255]、blue∈[210,255],同时满足提取白色车道线;

hsl色彩空间:l∈[150,255]、s∈[80,255];同时满足提取黄色、白色车道线;

hsv色彩空间:h∈[35,77]、s∈[43,255]、v∈[46,255],同时满足提取黄色车道线;h∈[0,180]、s∈[0,30]、v∈[221,255],同时满足提取白色车道线;

s22:根据三种阈值范围,遍历输入图像并获取图像中的每一个像素点的值,将车道线从原图中分割出来,并以二值化的形式保存(车道线上的像素值为1,其他区域像素值为0),得到三张车道线的分割结果图,如图5所示;

s23:将三种分割结果对应像素点位置的值进行叠加,如果某一位置的值大于等于1则输出1,否则输出0。

所述步骤s4包括如下子步骤:

s41:通过图像消失点以及车道线实际情况,确定需要进行变换的车道感兴趣区域,并获取到该区域的四个顶点坐标,以及变换之后对应四个点的坐标。

s42:将坐标代入公式1,利用高斯消元法求解出逆透视变换矩阵,得出坐标变换矩阵。

s43:开辟新的存储区,代入分割后的图像,在新存储区的(t_row,t_col)中写入中(row,col)的像素值,获得鸟瞰图

forrow=0torowsdo

forcol=0tocolsdo

rows表示图像的行数,col表示图像的列数,a11...a22分别对应变换矩阵的a[0][0]...a[2][2],坐标(t_row,t_col)是原图中每一像素点坐标(row,col)经过矩阵变换后得到的新坐标。

所述步骤s6包括如下子步骤:

s51:遍历鸟瞰图并统计图中每一列非零像素点的数目,遍历结束后找出非零像素点最多的两列,作为左右车道线的初始位置,同时根据初始位置计算左右车道线间距;

s52:以初始位置为中心,左右各50像素,绘制两个宽100像素高32像素的矩形框,记为第一组矩形框;

s53:统计第一组矩形框中非零像素点分布,分别找出非零像素点最多的位置作为下一组矩形框的中心位置;

s54:重复步骤s52、s53,直至整张鸟瞰图遍历完成,如图6所示;

s55:通过最小二乘法推导出求解拟合方程系数的线性方程组,将步骤s53中每一个矩形框的中心位置坐标为采样点代入方程组,并利用高斯消元法求解出方程系数a2...a0,代入分割后的图像坐标,找出满足拟合曲线的像素点的坐标,而这些坐标的像素点就在车道线上。

所述步骤s6包括如下子步骤:

s61:根据拟合曲线表达式,以及曲率半径计算公式,求解车道曲率半径,为了前瞻性的考虑,可以计算在x=0处曲率半径,得出计算公式如下:

其中,ρ表示曲率半径,k表示曲率,a2车道线二次拟合方程的系数,a1表示一次项系数。

s62:根据车道宽一般为3.6米,而在图像中车道宽约450个像素,因此估算出横向每一个像素代表约0.8厘米,因此通过计算图像中心与车道中心的相对位置,计算出车辆是否偏离车道中心,以及偏离车道的方向和距离。

s63:根据曲线拟合方程的系数判断前方道路的弯曲方向,如若拟合方程的系数a2小于0则表示弯道向左,大于0则表示弯道向右,等于0则表示直行。

以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1