Opencv4图像分割和识别第九课(实战8)车道线检测

前言

本课所讲的车道线检测来自于一个实际的项目,因为场景比较单一,而且硬件比较受限制,所以采用传统的图像处理方法来识别它们。

源图像

需求:要求识别出 黄色线道里外两条线, 一共有两根黄色车道线。

挑战性:黄色车道线有些模糊不清,一定程度上和其周围背景区分不是很明显;由于摄像头安装位置不是正中间,所以拍出来的黄色车道线有些扭曲畸变,不是严格的直线,而是有些向左弯曲的直线。

识别过程

一)由于场景比较单一,所以先做一个roi,来尽量排除背景的干扰。同时在roi各取4个点(蓝色圆圈和红色圆圈表示),并求得蓝色点变换到红色点的投影矩阵。

Opencv4图像分割和识别第九课(实战8)车道线检测_第1张图片

 二)根据投影矩阵,将roi图像做一个透视变换,可理解为将倾斜视角拍的图片转换为鸟瞰图。鸟瞰图上黄色线道近似垂直线,从而可以大大提供识别准确度和鲁棒性,而且背景干扰部分进一步排除掉。

Opencv4图像分割和识别第九课(实战8)车道线检测_第2张图片

三) 综合采用前面所学到的图像处理知识:高斯模糊,自己构造卷积模板来求黄色线道边缘;根据颜色特征区分开黄色车道和背景;最后采用腐蚀形态学方法去噪点得到比较理想的边缘点。这部分的具体内容会在视频课程中详细讲解。

Opencv4图像分割和识别第九课(实战8)车道线检测_第3张图片

四)采用HoughLinesp来找直线,并且要求斜率近似于垂直。将多根挨在一起的直线上点进行直线拟合,得到四条最终的直线方程,并画在鸟瞰图上。

Opencv4图像分割和识别第九课(实战8)车道线检测_第4张图片

五)最后一步就是将上面的图进行透视逆变换,并作平移就能在原始图上画出黄色车道线了。

Opencv4图像分割和识别第九课(实战8)车道线检测_第5张图片

结论

本课所涉及新的理论知识点比较少,侧重于实践,主要是综合应用前面所讲的图像处理方法来进行车道线识别。当然,如果场景比较复杂 比如光线忽亮忽暗等,还可以考虑语义分割模型,比如mask-rcnn deeplabv3等来进行识别。在识别推理前,需要收集大量的样本数据,并进行标注和训练才能得到算法模型。此外跑这种复杂的模型,对硬件要求比较高,一般需要GPU才能达到推理时间在毫秒级。

你可能感兴趣的:(计算机视觉网络课程)