龙空技术网

无人驾驶系列车道线检测(2)—霍夫变换(Hough Transform)

zidea 79

前言:

现时大家对“霍夫变换直线检测算法”都比较关切,各位老铁们都需要了解一些“霍夫变换直线检测算法”的相关知识。那么小编同时在网上汇集了一些有关“霍夫变换直线检测算法””的相关文章,希望我们能喜欢,小伙伴们快快来学习一下吧!

开启了自动导航时,自动导航(autopolite) 让车辆保持在车道线行驶。那么车道线检测就成为了自动导航中的比较基本且重要的任务。因为要让车辆行驶在车道线上,首要任务就是识别出车道线的位置。现在这个任务是神经网络来完成,神经网络可以通过学习,来在不同环境下对车道线进行识别。不过今天介绍的车道线检测,会用到一些计算机视觉的技术、例如色彩空间、边缘检测(Canny 检测)、霍夫变换等技术。所以我们就以这个实例来带大家重温一下这些计算机视觉的技术。

首先霍夫变换并不是什么新的技术,霍夫变换 (Hough Transform) 始于 1962 年由Paul Hough 首次提出的。后于1972年由Richard Duda和Peter Hart推广使用,霍夫变换被应用到图像处理中,是从图像中检测几何形状的基本方法之一。开始霍夫变换用来检测图像中的直线,后来霍夫变换经过扩展可以进行任意形状物体的识别,例如圆和椭圆。

变换是空间变换,我们先从具体例子来看,先具体然后再抽象来解释一下霍夫变换。

我们的任务是检测直线,前提是我们通过一些特征点提取拿到一些特征点,然后利用这些特征点来检测通过这些点的直线。在直角正交坐标系中有两个点 他们位于同一条直线上,这是点空间这条直线可以表示为 。在 组成的参数空间里,每一个点对应一条直线,而可能穿过 所有直线在参数空间表示为 $b = ax_1 + y_1$ 那么在参数空间中这条穿过 的直线对应于参数空间两条直线 的交点。

如果所处理的线中有竖直的线,那么就会遇到非常大的 a,这个会在数值上造成一些麻烦。所以实际上是采用 Hesse 仿射坐标系。这里并非极坐标,而是每条直线对应 ,这里就是从原点引出一条到该直线的垂线然后通过在垂线与水平轴夹角以及这条垂线长度作为参数来描述一套直线,然后再 参数空间,经过一点 所有直线形成 ,对于通过 点所有线在参数空间表示为

那么它们对应的曲线就会经过同一点,这个点就是原图中的直线的原点距 和角方向 所对应的参数点,这条直线上的所有点所描出的曲线都会经过这个点。在霍夫变换后的仿射参数空间,这个点就会被点亮。可以通过寻找霍夫变换后的参数空间上的亮点来确定原空间上的直线的位置的方向。

霍夫直线检测的优缺点

Hough直线检测的优点是抗干扰能力强,对图像中直线的残缺部分、噪声以及其它共存的非直线结构不敏感。

Hough变换算法的特点导致其时间复杂度和空间复杂度都很高,并且在检测过程中只能确定直线方向,丢失了线段的长度信息。

标签: #霍夫变换直线检测算法 #霍夫变换检测曲线 #霍夫变换只能用于检测直线 #霍夫变换的作用