DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1244|回复: 0
打印 上一主题 下一主题

[待整理] 一种非均匀行采集的智能车路径识别算法

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 20:46:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
引言
  利用机器视觉,通过识别路面条带状引导线实现自主导航是现阶段智能车常用的导航方法[1]。该方法不仅具有视觉导航信息量丰富,智能化程度高的优点,而且引导线的加入大大降低了图像处理的数据量和技术成本,提高了智能车控制的实时性和现实应用的可行性。当前研究的热点问题是路径识别的准确性和实时性。
  本文基于黑白摄像头和Freescale16位单片机设计了智能车路径识别系统,系统框图如图1所示。

  智能车通过识别白色地板上的黑色引导线实现路径的跟踪。根据摄像头按行采集的特性,首先对单行数据进行横向滤波、检测边缘、提取路径,整场图像采集完后再对提取的路径信息进行纵向滤波,对特殊路况进行处理,最终实现了对路径的精确识别。实验结果表明,文中所提出的路径识别算法抗干扰性强、原理简单、计算量小,能满足路径识别的准确性和智能车控制的实时性要求。
  
  非均匀行图像采集
  摄像头在拍摄图像的时候,最理想的位置是垂直于拍摄平面,这样才能保证图像按原来的几何比例重现。然而受到智能车车体结构的限制和车体控制需摄像头有一定预瞄距离的要求[2],摄像头一般与地平面成一定角度安装。安装角度的存在会造成一定的成像畸变,图像的畸变会产生一系列问题:垂直线被拍摄成斜线导致斜率计算错误,远处的弯道被压缩导致曲率计算错误等等。在这种情况下,直接利用目标引导线在图像中的相对位置制定控制策略,会造成较大的误差,甚至使小车严重偏离引导线。针对此问题,本文在分析摄像头成像模型的基础上,提出了一种非均匀行采集的图像畸变矫正算法。图2为摄像头成像示意图[3]。
  图中,梯形区域ABCD为摄像头视野范围,Y轴方向为智能车前进方向。由图可得图像坐标系与世界坐标系的坐标转换关系为:

  
  
  式中,N为采集图像的总行数;α为摄像头张角,θ为摄像头俯仰角,f为摄像头的焦距,h为摄像头安装高度。
  由式(2)得到图像行数v与世界坐标y的关系曲线如图3所示。图像行数与其所反映的实际距离之间是非线性关系,距离越远,图像中两行间的实际距离越大,即摄像头对远处的路平面进行了纵向的压缩,而且距离越远,压缩越严重。
  为了消除这种畸变,令单片机非均匀地采集摄像头输出图像中的行,在距离较远处采集的行数较密,近处采集的行数较少。这种规则通过采集行数的非线性弥补了图像行数与实际距离的非线性,实现了等空间间距的均匀采样,从而保证了智能车控制器采集得到的图像在纵向上与实际路平面间相对无畸变或畸变较小。
  经非均匀行采集进行纵向畸变矫正后,图像坐标系与世界坐标系之间的坐标变换公式为:

  
  
  其中d为世界坐标系中两采样行的间隔。
  由于所用单片机的A/D转换能力有限,且本系统的目的只在于提取出黑线中心,最终方案采集40×60分辨率的图像。根据摄像头的参数和公式(3)计算得到本系统非均匀行采集的行数分布如表1所示。

  图像处理
  图像处理流程
  该摄像头的场扫描频率为50Hz,为了提高智能车控制的实时性,本系统选择控制周期为20ms,即在一个图像场周期内必须完成图像采集、图像处理、路径识别和车体控制等一系列工作。这就需要合理规划处理流程,同时要求各种算法简练有效。本系统的程序流程如图4所示,采集完一行图像后,利用到下一采集行的空余时间处理该行数据,提取路径。待整场图像采集完毕,利用场消隐的时间对整场路径进行纵向滤波,判断路况,并对舵机和电机进行控制。

       单行数据处理
  横向滤波
  由于受到道路环境和硬件环境,如:光电转换过程中光敏元件灵敏度的不均匀性、数字化过程的量化噪声等的影响,单片机采集的图像信息中会存在干扰,在路径识别过程中,有些干扰可能会被误认为是引导线。因此,在单行数据处理之前,首先对图像信息进行横向滤波。
  中值滤波是一种典型的非线性滤波方式,其主要功能是让与周围像素灰度值的差比较大的像素改取与周围像素值接近的值,中值滤波对孤立的噪声点(特别是椒盐噪声)的消除能力较强,同时能够有效保护图像的边缘[4]。
  本文选用1×3的窗口对单行数据进行中值滤波,将某个像素点和相邻两个像素点的像素值按大小顺序排列,取出中间值作为该点的像素值。这种方法能够有效地抑制随机噪声,并且计算量相比去噪常用的3×3模板要小得多,能够有效地提高路径识别的实时性[5]。
  阈值分割
  阈值分割的基本思想是确定一个阈值,然后把每个像素点的像素值和阈值相比较,根据比较结果把该像素划分为目标或背景,图像分割效果的好坏直接取决于阈值的选取。由于光线和噪声的干扰,若用一个固定阈值进行分割,会产生一定的误差。为尽可能减小误分割的概率,增强智能车的抗光线变化干扰能力,本文采用动态阈值对每一行图像进行分割,根据上一行的图像数据确定下一行的阈值,阈值T的确定方法为[6]:

  
  
  式中,bm和tm分别为背景和目标区域平均灰度值。
  这里先取图像灰度范围的中值作为第一行的初始值,然后迭代求得各行的值。具体迭代步骤如下:
  (1) 求出第一行图像中的最大灰度值maxZ和最小灰度值minZ;
  (2) 求出第一行的初始阈值T0=(maxZ+minZ)/2,给定迭代时新旧阈值的允许接近程度ε=5;
  (3) 求出第一行图像中灰度值Z&ge;T1的所有像素点的数量bn、累加和bS以及灰度值Z< T1的所有像素点的数量tn、累积和tS;
  (4) 计算 确定第一行阈值

(5) 转至步骤(3),求出第i行阈值Ti,如果则Ti为最终阈值,否则,Ti =Ti-1。
  边缘检测
  边缘是目标与背景相邻区域之间灰度值不连续的结果,边缘检测是所有基于边界的图像分割的第一步。本系统的引导线与地板的色差较大,反映在数据中就是灰度值差别较大,引导线与地板间的边沿较明显,如图5所示,因此对边缘进行检测较容易且可靠性高。
  边缘检测的思路是:确定一阈值,对采集的单行图像数据逐点进行扫描,若灰度值小于阈值,则判断该点为黑点,即检测到引导线左边缘,继续扫描,若灰度值大于给定阈值,则该点为白点,将该点作为引导线右边缘。右边缘和左边缘的横坐标之差为引导线的宽度,其平均值即为引导线的中心横坐标值。
  由于图像数据中可能存在着未被滤出的噪声点,通过以上算法不可避免地会将一些噪声点识别为引导线。从而可能在一行数据中存在多段黑线,根据路径的连续性特性对路径进行提取可提高引导线识别的可靠性。提取路径的过程如下。

  
  
  
  
  (1)如果该行中没有检测到黑线,则该行为纯白或纯黑行,将路径坐标置为零,同时将无效行标志置位。若该行为一场的第一行,则将无效场标志置位。
  (2)如果检测到一段黑线,若黑线宽度大于设定的先验值,则将该黑线段的中心坐标作为该行的路径中心坐标,否则将该行设为无效行。
  (3)如果检测到两段黑线,若该行为一场的第一行,则该行的路径坐标不变,即保持上一场该行的路径坐标;否则,分别判断两段黑线与上一行路径坐标的距离,取距上行较近的黑线中心为该行路径坐标。
  (4)如果检测到更多黑线,则该行无效,将路径坐标置为零,同时将无效行标志置位。
  整场数据处理
  道路图像经过单行路径提取以后,横向的单点噪声已经消除,但是对于部分宽度较大的干扰却无法滤除,这样提取出来的路径在某些行就发生了跳变。为了得到准确的引导线参数,为后续的控制模块提供精确的导航参数,需要在整场图像采集完毕之后,对提取的路径进行纵向的平滑。

        断点修补
  由于光线的不均匀或路径中出现较大的干扰,可能会出现部分行采集不到引导线的情况,从而出现断点。而且交叉道路的图像经过上述方法处理后也会出现断点的情况,因此有必要加入断点修补环节,对路径进行纵向滤波。
  根据引导线的连续性,路径坐标不应该出现突变的情况,也就是引导线的一阶导数应该是连续的,即引导线的斜率不会发生突变。根据这个特性,断点修补的方法步骤如下:
  (1)求出第i行与第2i&minus;行的路径坐标之差

(2)求出第1i&minus;行与第3i&minus;行的路径坐标之差

(3)求出Dposition[1]与Dposition[2]之差的绝对值

(4)若Adposition大于4,则

通过该算法,道路图像断点区域得到了修复,引导线从首点到末点之间形成了一条连通的曲线,这种断点修补方法满足了智能车提取引导线趋势的要求。
  纵向滤波
  对于某些跳变不大的干扰行,虽然不会影响对路径整体趋势的判断,但其对后续控制模块的计算会产生较大影响。当控制行坐标突变时,势必会造成舵机的抖动,智能车速度较快时甚至会导致车体脱离引导线,因此加入纵向滤波环节对路径进行平滑很有必要。
  纵向滤波采用中值滤波的思路,具体方法为:判断该行路径坐标若在其前一行和后一行的同一侧,即该行坐标同时大于或同时小于其前一行和后一行坐标,则赋予该行坐标为其前一行和后一行坐标的平均值。

  
  导航参数获取
  经过路径提取后,得到引导线在图形坐标系下的坐标(u,v),然后通过式(3)、(4)得到引导线的世界坐标(x ,y ),通过最小二乘法进行曲线拟合,便得到引导线的曲线方程。对于直线模型y=kx+b,可运用斜率 k和截距b作为导航参数对车体进行控制[7];对于曲线模型,可得到弯道的曲率半径和横向偏差作为导航参数对车体进行控制。
  实验结果分析
  采集方案实验
  摄像头采集的图像如图6所示,a为均匀行采集效果,b为按表1分布行数采集的效果。由图可以看出,非均匀行采集的图像更接近实际图像,对引导线曲率的计算更加准确,为智能车控制决策模块提供了更加精确地引导线信息。而且,由图还可看出通过非均匀行采集,相对提高了摄像头的
  图7 有断点弯道
  图8 十字交叉道路前瞻性,为进一步提高智能车的速度打下了基础。
  路径识别实验
  摄像头获取的弯道图像如图7a所示,由于光线的影响,中间部分出现了断点,经断点修复和中值滤波后得到的图像分别如图7c和7d所示,道路图像断点区域得到了修复,引导线从首点到末点之间较平滑,据此可获得路径的精确导航参数。
  十字交叉道路是智能车导航中较常见的路况,同时也是路径识别中比较复杂的内容。如图8a所示的十字交叉道路经路径识别后得到的引导线如图8d所示,可以将交叉线完全滤除。
  结语
  本文基于黑白摄像头设计了图像采集系统,为消除图像畸变,提出了非均匀行采集的采集方案。图像处理时,首先在行中断中对单行数据进行了横向滤波和边缘检测,并提取了该行路径坐标;然后在场中断中,根据引导线的连续性对整场数据进行了纵向滤波,对整场路径进行了平滑,并提取出了引导线的精确导航参数,为下一步进行车体控制提供了信息。实验结果表明,该算法能精确提取路径信息,且可靠性和抗干扰性强,数据处理速度快,完全满足智能车实时性的要求。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-17 11:27 , 耗时 0.099963 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表