新闻中心

EEPW首页>物联网与传感器>设计应用> 数字形态学滤波器与智能车路径记忆

数字形态学滤波器与智能车路径记忆

作者:李刚 李蒙 何鎏 天津大学精密仪器与光电子工程学院 时间:2009-06-19 来源:电子产品世界 收藏

数学形态滤波的快速算法

本文引用地址://m.amcfsurvey.com/article/95469.htm

  由于数学形态滤波器只由加法、减法和比较运算构成,其运算相对简单,因此,它很适合于在计算功能相对较弱的单片机上应用并能取得很好的效果。以往单片机由于受存储容量、计算速度及字长的限制而使大多数的数字滤波器较难实现,而形态滤波器则为单片机应用数字滤波器代替以往的模拟滤波器提供了一条新的途径。

  为了进一步提高形态滤波器的处理速度,可采用文献[5]给出的一种合并计算的方法。以开运算为例,开运算是由一个腐蚀运算后接着一个膨胀运算得到的。一般的方法是首先对一段数据先进行腐蚀运算,然后,再回到这段数据的起始地址,重新进行膨胀运算,最后得到开运算的结果。本文提出了只对这段数据运算一遍,便可得到最后运算结果。下面简要介绍一下它的实现方法。

  由腐蚀的定义可知,欲计算f(n)的腐蚀值,需要知道该点前w(w为结构元素的宽度)点的数据;而要计算f(n)膨胀后的结果,则需要知道该点后w点的数据。由于运算是一个腐蚀运算接着一个膨胀运算后得到的,在长度为L的数据中只有从第w点到第(L-w+1)点,才可以得到开运算的结果。

  如图6所示,我们定义一个模板序列,该序列的长度和结构元素的宽度相同。该模板的初始值由前w个点的腐蚀值组成。以第n点为例,沿该点向前的方向对模板序列的值进行膨胀运算,运算的结果即为该点的开运算的结果。同时,沿该点向后的方向继续进行腐蚀运算,得到第(n+1)点的腐蚀值。将(n+1)点的腐蚀值作为模板序列的最后一个点,并将模板序列前(w-1)点顺次向前移动一个位置。更新后的模板值即可用来做 (n+1)点的膨胀运算,得到在(n+1)点的开运算值。如此继续下去,就可完成全部的开运算。在做闭运算也可采用类似的方法来提高计算的速度。

  这样,对长度为N的一段数据,用M个零作为其结构元素进行处理时,当采用一般方法进行计算,需要进行2×M×N次的比较运算。而当采用快速算法时,能够在比较最大值的同时得到最小值,减少(N-M+1)×M次比较运算,使程序的执行速度提高了近一倍,而且,由于采用这种快速算法,可以实现信息的实时处理,很大程度上方便了第二圈控制策略的制定,因此,它使得形态滤波这种方法更加适合应用于路径信息的处理中。

实验及结论

  通过对不同传感器方案(光电管和CCD)的在不同赛道多次实验发现,对于光电管方案和CCD方案的,赛道记忆算法都能一定程度上提高第二圈速度。采用算法处理赛道记忆数据后,不但行驶的稳定性、准确性有了较大的提升,而且没有大幅增加MCU的资源消耗,同时可以支持复杂的控制策略。上述方案具有很强的通用性,适用于不同传感器方案、不同控制算法的智能车。



评论


相关推荐

技术专区

关闭