一、基于 AD 采样的算法: 基于 AD 的黑线提取算法能够反映图像上的每个点的黑白程度,提取出来的黑线准确度比较高,但是后续的黑线提取算法比较复杂。基于电压跳变比较方法软件黑线提取非常简单,但是硬件调试比较困难,而且不能反映每个点的真实黑白程度。对赛道环境要求很高,易受干扰。
基于 AD 的黑道提取有以下几种方法:
1) 找出每一行的黑线的左右边界点,把中间点作为道路;
2) 利用若干行相加,取最黑点;
3) 找出每行的最黑点,把它作为道路。
第一种做法: 找出每一行的黑线的左右边界点,把中间点作为道路。

图 1 斜看十字交叉道示意图
它是最容易想到的方法,在无交叉道以及摄像头的黑白 AD 值分明的情况下, 它可以达到非常理想的效果。但是若出现了斜看交叉道或者黑白 AD 不是很分明的情况下,该方法的滤波显得十分复杂。在实际中由于摄像头对于远处的黑线不是很敏感,这使得黑点的阈值很难以确定,选大了会使远方道路提取出错,选小了会丢失远方的道路信息。也许采用动态阈值是一个好方法,但是它也不是十分管用。在实验中我们发现黑点的阈值不是随着距离的变化成线性变化的,它的变化多少带有点突变的味道,因此很难确定黑点阈值的变化规律,自然动态阈值也很难设定。
斜看十字道会带来更大的麻烦,由于在实际的控制中很难做到每次都严格地贴线走,因此小车在从弯道出来的时候若弯道前方有个十字道,很容易造成斜看的情况发生。这时从 AD 采集的图像上看来十字交叉道会像一个分叉的树枝一样从前方道路上出来,更糟糕的情况是在前方正确道路消失的地方恰好被斜的十字道路的一边给补上了。若采用这种方法,则很容易误将道路确定到十字叉的一边上,使得小车的转向错误。为了滤除这种情况,我们根据它的特点采用了很多的滤波方法。 首先,在前方道路与十字叉的交界点,黑点的个数会突然增加很多。在一般情况下,随着距离的增加黑点的个数会慢慢减少,不会出现突然增多的情况。
因此我附件 B:基于 CCD 摄像头的黑线提取算法们可以用上一行的黑点数,估计出下一行的黑点数,如果超出了我们的估计值,我们就认为它是不合理的。 其次可以根据赛道不突变的原则,来滤除杂点。我们可以根据前面两行的变化情况预测出下一行的赛道变化范围,利用它来滤除杂点。但是在实际的应用中下一行的变化范围预测总是不是很理想。因此当赛车经过 90 度弯时,赛道的变化在小车看来变化是十分巨大的几乎和斜看十字交叉道没有多大的区别。有时会将 90 度弯滤除,造成小车直接冲出跑道。 最后,我们还可以通过分别从左至右与从右至左的方法来所搜赛道的左右边界点,若发现两者不一致,则可以采取取变化较小的点作为赛道来处理。

图 2 三行相加提取黑线示意图
加了以上的滤波以后真个搜索赛道程序会显得十分复杂,而且也不是十分可靠。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !