分享

【推荐】从零开始学习无人驾驶技术 --- 车道检测

 aim2017 2017-03-01


摘要
 

转自:Fei Xia

前言

个人兴趣爱好,最近在学习一些无人驾驶相关的技术,便萌生了循序渐进的写一系列文章的想法,这是第一篇。文章主要会以Udacity为主线,综合自己在学习过程中搜集的各种材料,取其精华,补其不足,力求通俗易懂,理论明确,实战有效,即作为一个学习总结,potentially又可以帮助对无人驾驶有兴趣但是零基础的朋友们 —— 注意这里的零基础是指未接触过无人驾驶领域,本系列还是需要一些简单的数学和机器学习知识。

因为本文是从零开始的第一篇,这里的车道检测是基础版本,需要满足几个先决条件:(1)无人车保持在同车道的高速路中行驶(2)车道线清晰可见(3)无人车与同车道内前车保持足够远的距离。

TLDR (or the take-away)

一个基础版的车道检测步骤主要分为以下几点:

  • Gray Scale Transformation

  • Gaussian Smoothing

  • Canny Edge Detection

  • ROI (Region of Interest) Based Edge Filtering

  • Hough Transformation

  • Lane Extrapolation


代码:

https://github.com/feixia586/zhihu_material/tree/master/car_lane_detection

最后的效果如下视频所示,其中红线表示自动检测到的车道。


从图片开始谈起

无人车往往配备有数个camera,常见的情况是有一个camera固定在车的前方,用来perceive前方道路情况,生成视频。计算机对该视频进行分析,综合其他sensor的信息,对车辆行为进行指导。视频是由图片组成,如果能够成功检测图片上的车道,那我们就几乎解决了车道检测问题。下面是一张车辆行驶过程中的图片,让我们动手吧!

import matplotlib.image as mplimg
img = mplimg.imread('lane.jpg')


Gray Scale Transformation

这个变换比较简单,是将RGB图片转换成灰度图片,用来作为Canny Edge Detection的输入。

import cv2
gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)
# Note that if you use cv2.imread() to read image, the image will
# be in format BGR.


原文链接:

https://zhuanlan.zhihu.com/p/25354571?group_id=820292423715545088

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多