作者:PRATEEK JOSHI
翻译:张若楠
校对:吴金笛
本文长度为2600字,建议阅读10分钟
本文为一个从图像预处理角度入手的无人驾驶车道识别实战项目。
作者序
大约十年前,我瞥见了第一辆自动驾驶汽车,当时Google仍在对初代无人车进行测试,而我立刻被这个想法吸引了。诚然,在将这些概念开源给社区之前,我必须等待一段时间,但是这些等待是值得的。
我最近尝试了一些与计算机视觉有关的自动驾驶理念,其中包括车道检测。设想一下,在设计任何自动驾驶汽车时,车道检测都是一个非常核心的技术。我们将基于这段视频搭建车道检测系统:https://youtu.be/sYhZbhT-Smw。很酷对吧?我将使用OpenCV库,通过计算机视觉,引导你进入车道检测和自动驾驶这一领域。当然,在本教程中我们还将讲解Python代码。
对于任何深度学习或计算机视觉新手,请注意--如果你要入门,请查看以下课程及产品。这些资源可以很好的助力你开始计算机视觉之旅:
深度学习基础
https://courses.analyticsvidhya.com/courses/fundamentals-of-deep-learning
使用深度学习的计算机视觉
https://courses.analyticsvidhya.com/courses/computer-vision-using-deep-learning-version2
目录
1. 了解车道检测的概念
2. 问题陈述
3. 什么是帧蒙版(Frame Mask)?
4. 用于车道检测的图像预处理
5. 在Python中使用OpenCV进行车道检测实战
车道检测的概念
那么什么是车道检测?维基百科是这样定义车道的:“车道是道路(行车道)的一部分,专门用于单行车辆,以控制和引导驾驶员并减少交通冲突。”
Figure 1:https://en.wikipedia.org/wiki/Lane
对此进行正式定义很重要,因为它使我们能够在项目中使用固定的车道定义,这样在构建系统时我们不会产生任何歧义。
如我之前提到的,车道检测是自动驾驶的重要组成部分。它是推动场景理解的最重要的研究主题之一。一旦获得车道位置,车辆将知道要去哪里,并避免驶入其他车道或离开道路的风险。这可以防止驾驶员/驾驶系统偏离行车轨道。
以下是一些随机道路图像(第一行)及其检测到的车道(第二行):
Figure 2 https://github.com/qinnzou/Robust-Lane-Detection
问题陈述
我们希望执行的任务是视频中的实时车道检测。我们可以通过多种方式做车道检测。可以使用样本训练的方法,例如在带有标注的视频数据集上训练深度学习模型,或者使用预先训练好的模型。
但是,