第五章 智能汽车软件设计
推荐给好友
打印
加入收藏
更新于2008-05-27 11:24:58


         在控制算法中,主要用到了以下三方面的内容:摄像头循线控制算法,记忆解决道路S型控制算法和PID速度控制算法。其中循线控制算法用来控制舵机的转向,记忆控制算法主要用来解决S型,PID控制算法主要用来控制智能车的快速加速、减速和速度的平稳。下图即为主程序算法流程图。

图5.1 软件流程图

5.1 路径识别与自适应阈值计算 

         所谓路径识别,简单的理解就是把图像中反映路径的部分提取出来。这是一个图像分割的过程。图像分割是计算机进行图像处理与分析中的一个重要环节, 是一种基本的计算机视觉技术。在图像分割中,把要提取的部分称为“物体(Object)”,把其余的部分称为“背景(Background)”。分割图像的基本依据和条件有以下4个方面:

  1. 分割的图像区域应具有同质性,如灰度级别相近、纹理相似等;
  2. 区域内部平整,不存在很小的小空洞;
  3. 相近区域之间对选定的某种同质判据而言,应存在显著的差异性;
  4. 每个分割区域边界应具有齐整性和空间位置的平整性。

         现在的大多数图像分割方法只是部分满足上述判据。如果加强分割区域的同性质约束,分割区域很容易产生大量小空洞和不规整边缘;若强调不同区域间性质差异的显著性,则极易造成非同质区域的合并和有意义的边界丢失。不同的图像分割方法总是为了满足某种需要在各种约束条件之间找到适当的平衡点。
 
         图像分割的基本方法可以分为两大类:基于边缘检测的图像分割和基于区域的图像分割。 

         边缘是指图像局部亮度变化最显著的地方,因此边缘检测的主要依据是图像的一阶导数和二阶导数。但是导数的计算对噪声敏感,所以在进行边缘检测前需要对图像滤波。大多数的滤波算法在滤除噪声的同时,也降低了边缘的强度。此外,几乎所有的滤波算法都避免不了卷积运算,对于智能车系统来说,这种运算的计算量是S12单片机系统所无法承受的。 

         阈值分割法是一种基于区域的分割技术,它对物体与背景有较强对比的景物的分割特别有用。它计算简单,而且总能用封闭且连通的边界定义不交叠的区域。阈值分割法的关键在于阈值的确定。如果阈值是不随时间和空间而变的,称为静态阈值;如果阈值随时间或空间而变化,称为而动态阈值。基于静态阈值的分割方法算法简单,计算量小,但是适应性差。基于动态阈值的分割方法其复杂程度取决于动态阈值的计算方法[6]。 

         针对本智能车系统,普通的双峰法就能适合绝大部分情况,因为智能车的运行环境是比赛赛道,背景和前景区分明显,且背景简约。但是实验环境并不理想,由于受到光线斜射的影响,有时背景和前景的对比十分不明显。结合实际需要,提出了一种新的计算阈值的方法,这种方法的思想与迭代法有些相似。
首先我们假定,智能车系统运行时,开始时采集的第一幅图像是良好的。这个“良好”含义是:第一行也就是最近处的一行,完整的包含了导航线,并且使用“双峰法”能正确提取。其次,我们对每一行都定义一个阈值Tr,每一行都用该行的阈值Tr进行分割。在此基础上按照以下规则进行阈值传递:

  • 如果第r行分割出来的黑色区域(线段)是连续的,那么计算目标区域和背景区域的平均灰度值,并取其中值,做为当前行和下一行的Tr。
  • 如果第r行分割出来的黑色区域是空集或者不连续,则保持当前行和下一行的阈值不变。

图5.2 一行的阈值计算流程图




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.