Xilinx社区
首页 > 技术专栏 > 骁龙820A汽车 ADAS 分享方案介绍—车道检测
骁龙820A汽车 ADAS 分享方案介绍—车道检测
来源:技术专家 时间:2018-02-28

之前的博客中介绍了 ADAS 的概念个框架,现在我们来针对其中几项模块来进行探讨

车道线的检测对于无人驾驶的路径规划来讲特别重要,自动驾驶不仅要求能够避障和道路交通信息感知, 还需要满足遵守交通规则,对车道线检测的要求比较高,很多的交通规则的设计使得行人和车辆必须依照一定的规则进行移动,这些规则的参考标准除了来自于交通 信号等外,就是道路车道线,通过检测车道线可以进一步的检测地面指示标志、进行前碰撞预警策略设计等。

车道线的检测方法有很多,基于视觉的车道线检测有一下几种:基于霍夫之间检测、基于LSD直线检测、基于俯视图变换的车道线检测、基于拟合的车道线检测、基于平行透视灭点的。主流的方法就是这几种吧,当然使用雷达扫描也可以的检测的。下面讲分别讲一下霍夫直线检测、拟合、仿射变换进行检测车道线的原理,并给出变换的效果。

20170404150439917.png

同一条直线上的点P(x,y)都满足x*cos(theta) + y * sin(theta)  = r ,这样一组(r,theta)常量就对应了图像中位移确定的一条直线。遍历图像感兴趣区域的像素点时,不断的累加每个(r,theta)对应的数据点个数,当某一对(r,theta) 对应的统计的点数达到我们设定的阈值时就认为这些点在一条直线上,通过霍夫检测的同一条直线上的的点的个数,可以过滤掉很多干扰直线。

1. 图像前处理的方法

对于原始的车载图像,是BGR的彩色图,对于只需要提取车道线的算法,车道线是宝色的,我们只需要保留有白色车道线的厚度图即可,所以对原始图的第一步处理就是灰度化。

1518080913143267.png

2. 提取车道线

在感兴趣区域内寻找车道线,大大缩减图像的处理计算量

1518080969781481.png


3. 标注车道线并进行相应的预警

通过标定实验,找到直线距离车道线左右边缘30cm范围内的报警区域,一旦车辆发生在预警区域内启动报警

1518081019436690.png


基于透视变换变换的车道线检测

采用仿射变换的方法是将前方图像的路面通过仿射变换为俯视图,在俯视图中将车道线提取出来,提取的方法也是寻找车道线的特征,按照灰度值进行二值化,然后采用边缘检测,得到车道线的边缘轮廓,将检测到的车道线提取出来。

军事交通学院采用这种方法进行车道线检测,在高速公路上得到了很好的效果,这种方法的优点是,可以找到多条车道线,实时效果比较好,但是缺点是对于复杂路况稳定性比较差,仿射变换时图像的损失比较大,在仿射图中不一定能够检测到变形后的车道线,受到周边物体遮挡影响严重。不适用于路况复杂和摄像头的视角比较小的前方视野。

20170404151703273.png

20170404152109592.png


基于拟合的车道线检测

边缘点拟合依据的原理是:车道线是白色的,而路面是灰色的,车道线和路面存在稳定的灰度梯度差,通过设定合理的阈值,就可以将车道线的边缘提取出来,提取 的车道线的边缘点有很多,找到同一水平位置相邻的车道线的边缘点,取他们的中点作为车道线上的一点,依次方法得到整个车道线的点,由于车道线的与路面的颜 色灰度值会受到颜色变化的影响,所以单一的阈值分割出来的边缘点并不在车道线的中间,而是在一个区域内,车道线提取的中点集合并不是在一条直线上,而是分布在直线的两侧,要得到最终的车道线需要对这些点进行拟合,一般采用拟合函数进行拟合。

清华大学、重庆大学等一些高校采用这种拟合的方法。这种方法的优点 是计算量较小,可以拟合带有曲率的车道线,缺点是环境适应性差,受光照干扰较大,稳定性差。

1518081101954739.png


车道线检测时容易丢失,为了保证检测效果的准确,使用追踪可以提升检测速度和准确率,追踪 的基本思想是,车辆在前进的过程中,是一个连续的位移移动过程,对应的车道线变化也是一个连续到变化,这种变化体现在车道线的斜率上,前后两帧图像中的车 道线的斜率相差不大所在的位置也不会差到太远,所以通过控制比较前后两帧中的车道线的斜率,在之前检测到的车道线区域附近进行限定。这就是跟踪的基本思想。

more汽车电子市场动态
more技术专栏
more专家答疑
问:配置高通pmd9607的mpp管脚, 设置为模拟输入一直量不到电压,请教。
答:需要注意,MPP管脚并不是所有MPP管脚都可以配置的,请参考spec说明,你需要配置的pin有没有限制。通常模拟输入的话,还要配置ANA_IN_CTL等寄存器,需要外接模拟量,然后读取该pin的值的寄存器中HKADC值。
问:专家请指导: sensor厂家给的sensor相关资料(chromatix + lib)是支持前置摄像头的,“支持”主要是我这边验证过前置已经点亮。 后置摄像也用同sensor, 但用这套相关资料就点不亮了。 kernel层确认已经PROBE, 同时在/dev下有media0 media1,请协助该如何完成后置的点亮. p.s: 1. 该板后置如果使用其他sensor,可以点亮前后置摄像头; 2. 将后置摄像头拆卸, 可点亮前置, 不拆卸后置,同样可以点亮前置; 3. 如果前置后置一样, 前后置都点不亮, 但kernel层确认都probe, dev下有camera0,camera1,camera2; 4. 拆卸前置,仅后置, 依然无法点亮, kernel已经probe,dev下有camera0,camera1 针对前后置同sensor, 在sensor_init.c增加2sensor, 分别命名为: sensor, sensor_rear,同时在sensor_Libs目录下增加sensor,sensor_rear目录,主要是针对lib部分, 同时对lib中camera_id和position做对应修改(前:CAMERA_1,1,后: CAMERA_0,0) 写的太多, 一句话说明下问题: 前后置同sensor如何同时点亮前后置sensor, 是否需要修改lib中的参数,如何修改?还是其他问题?
答:从现象描述看,可以从以下几点排查。 1,sensor的配置,通常后置sensor 4lanes,而前置sensor 2lanes。换不同型号的sensor可以点亮,说明这些配置可能没有修改 导致一些问题。 2,重点看下,“拆卸前置,仅后置, 依然无法点亮,dev下有camera0,camera1,”,对比下前后置不同型号 枚举dev也是这样,看看HAL层dumpimage检查图像是否正常。 3,camera id枚举冲突,无法区分两颗相同的sensor,tuning参数调用是否正确。
问:请教专家,UE 链路层怎么样才能主动和NODE B断开。 设备和基站没有OTA log,也不太清楚是什么原因导致的连接断开。
答:可以通过AT命令CREG可以离线和在线网络。不知道是否是您需要的情况。 http://blog.chinaunix.net/uid-149881-id-2780145.html
问:有没有懂高通平台root 和解网络锁的高手?
答:eng和userdebug版本上通过adb root。你是否需要如下的方法么, https://zhidao.baidu.com/question/557640730.html
Copyright ©2000-2015 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备12027778号-2 北京市公安局备案:1101082052