从零开始的无人驾驶

栏目: 编程工具 · 发布时间: 5年前

内容简介:1.一个比较简单的做法是利用computer vision技术从摄像头视角获取道路信息。然后是选取选颜色比较接近直觉, 路上的线也就两种颜色,要么白线,要么黄线。 白线其实比较好找

1. ROI

一个比较简单的做法是利用computer vision技术从摄像头视角获取道路信息。然后是选取 ROI(Region of Interest) , 基本上就是选颜色 + 选区域。

选颜色比较接近直觉, 路上的线也就两种颜色,要么白线,要么黄线。 白线其实比较好找

从零开始的无人驾驶

但是黄线的话就不能直接用原图了。要先把原图分成RGB三层

从零开始的无人驾驶

而黄色的线在蓝色那层是看不到的

从零开始的无人驾驶

(因为是互补色)

从零开始的无人驾驶

除了选颜色,选区域也是可以直接利用CV解决的问题。

从车头视角向前看,大部分像素都是没有用的。尤其是天空的部分。对于自动驾驶来说差不多等价于干扰信号,基本上可以直接过滤掉

从零开始的无人驾驶
从零开始的无人驾驶

2. Canny Edge Detection

下一步是使用边缘检测算法寻找边线。如果我们把视图当成一张灰度图来看待,那么每一条边其实都在明暗块交替的位置

从零开始的无人驾驶

通过计算亮度的变化,可以把原图转化成一张梯度图

从零开始的无人驾驶

然后再将结果锐化,得到亮度数值变化最大的像素点

从零开始的无人驾驶

实际上,在做Canny算法之前,要对图像做 高斯平滑(Gaussian smoothing / Gaussian Blur) ,消除噪声和伪梯度点

3.直线检测

Hough Transform是图像变化中的经典算法,主要用来寻找图像中符合某种特征的集合,说白了就是检测直线、圆、椭圆。

从零开始的无人驾驶

Hough变化要将笛卡尔坐标下的点变化到霍夫极坐标系,原来的点共线问题会由此转化计算成曲面在极坐标下的共点,效果上就是该算法对边缘间断不敏感。大致上是这个意思,实际操作的时候是统计累加空间里的局部最大值(峰值),以该峰值作为结果(所以说抗噪能力还是很强的)。

从零开始的无人驾驶

总结一下就是:

原图 -> 灰度图 -> 边缘检测 -> 直线检测 -> 过滤掉斜率过低的直线 -> 将最后结果叠加回原图

从零开始的无人驾驶
从零开始的无人驾驶
从零开始的无人驾驶

行为克隆

使用神经网络进行无人驾驶的理论基础来源于Imitation Learning (模仿学习)。Behavior Cloning算是Imitation Learning的一种。思路倒是很简单,将人类驾驶作为基础数据全部收集下来,然后让神经网络去拟合数据。

这类端到端的解决方案基本上是一个路子,优点:简单且有效,缺点:受限于收集的数据。因为训练集总是有限的,如果出现了神经网络之前没见过的数据,那么效果就会很差。

一个比较经典的条件是天气,下雨天的路面跟晴天的路面不一样,有雾的天气下道路能见度也会对摄像头收集的数据有很大影响。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Pro Django

Pro Django

Marty Alchin / Apress / 2008-11-24 / USD 49.99

Django is the leading Python web application development framework. Learn how to leverage the Django web framework to its full potential in this advanced tutorial and reference. Endorsed by Django, Pr......一起来看看 《Pro Django》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码