机器学习实践系列之11 - OpenCV实战车道线检测

       ADAS 在经过资本的一轮热炒之后已经不新鲜了,Mobile Eye的技术积累和效果也让很多童鞋叹为观止,然后奋起直指!

       初学者为代表的童鞋,二话不说,上来就是霍夫变换,还是直接用opencv里带的,入门很好,实力一下就暴漏个底掉。又做了一番调研,发现了Hough变换的缺点,然后开始搞模板,形状匹配、轮廓提取、样本训练,效果仍旧不理想,无法应对恶劣天气、不能适应光线变化,总之鲁棒性很差。

       怎么办呢?放弃么?No,越是没有完美解决的问题,越是需要去探索,看到了Mobile Eye的所谓车道线推理(Holistic Path Planning),也不管是真是假,一窝蜂的都去搞灭点,不得不说,国内的研究氛围真是 “热而不沸”。

       作者仅从以下几个角度给出研究方向(不涉及细节):

一. 轮廓检测

       轮廓检测是车道线识别第一步,通常边缘检测是需要用到的,在理想情况下,边缘检测+Hough变化 确实能够得到比较准确的结果,但实际的道路通常无法满足这个假设,我们得到的边缘往往是嘈杂的,没有规律的,当然这里面可能有很多原因:路线损坏、老化、遮挡、阴影、强光,不胜枚举。

       不去管它,我们的目标很明确,从这些复杂边缘中 找出真正的 车道线(平行闭合轮廓)。


二. 透视变换与灭点

       透视变换 是很重要的信息,有了投影矩阵,就能在已知一条道线的情况下,对另一条道线进行推断,也可以通过该变换对检测结果进行反向投影,通过双向误差校验来进行道线修正。

       灭点:在透视投影中,一束平行于投影面的平行线的投影可以保持平行,而不平行于投影面的平行线的投影会聚集到一个点,这个点成为灭点(Vanishing Point)。

      检测到的平行车道线汇聚于灭点,该点有两个作用:

 1)作为参考比例,检测近端车道线的准确性;

 2)与近端车道线中点连线,计算车道线偏移;


三. 方向系数修正

       方向系数修正用来解决快速运动的问题,里面需要用到的参数包括:路宽、轮廓线弯曲度与弯曲一致性。 轮廓曲线通常采用样条曲线来拟合。

你可能感兴趣的:(机器学习,计算机视觉)