APP下载

基于摄像头图像的智能车寻迹方法设计

2014-07-28李然等

电脑知识与技术 2014年16期
关键词:智能小车中心线摄像头

李然等

摘要:介绍了一种基于OV系列摄像头图像的智能车寻迹方法。该方法将摄像头采集到的图像信息进行处理,根据道路信息的特点,找出道路边线。通过两条边线的位置计算得到道路中心线位置,使智能车能按照中心线行驶。对于十字型赛道的中心线,提出了修正方法,对缺失的边线部分,先进行补线处理,再计算中心线。测试结果表明,按照提出的方法,智能车能够准确、平稳地行驶。

关键词:智能小车;摄像头;图像;寻迹;中心线

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)16-3884-04

Abstract:A method of smart car tracing based on OV series camera image is introduced. This method is to process the image information collected by camera and find the two side lines of road according to characteristics of road information. Calculate the position of centerline which can make smart car run through by the position of two side lines. A correction method is proposed to the position of crossway. For the missing parts between the lines, fill them before calculating the position of centerline. Test results show that the smart car can run accurately and smoothly according to the method introduced.

Key words:smart car; camera; image; tracing; centerline

全国大学生“飞思卡尔”杯智能汽车竞赛最早是由韩国汉阳大学汽车控制实验室在飞思卡尔半导体公司资助下举办的,是一项大学生课外科技活动实践性质的竞赛。其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,是大学生竞赛中较为综合的一项赛事。截止到2012年,“飞思卡尔”杯智能汽车竞赛已经成功举办了九届,得到了各大高校的广泛关注,每年都吸引了众多师生参与其中。我校电子设计与创新实验室师生也已参加了数届比赛,在一些难点问题上也有了自己的一套切实可行的办法与方案。智能车摄像头组的比赛中,对道路图像的处理、智能小车的寻迹,一直是个难点。现就这一问题,该文将按照我校参赛队对道路寻迹的处理方案,做一些技术分析与讲解。

1 图像信号的采集

本方案采用OV系列的数字摄像头对道路图像进行采集,OV系列的摄像头是飞思卡尔智能车比赛常用的数字摄像头,具有数据采集方便简单,功耗小、体积小等优点。此系列摄像头有行信号HREF,场信号VSYN,像素同步信号PCLK和奇偶场信号等信号采集方式。我们在对图像进行处理时,每副图像采用了隔行扫描,每行采用了隔点扫描。道路的图像缺少几行或是每行缺少一部分点,对整副图像所要获取的信息的影响不大,只要保持图像的连续性,能反映当前道路的有效信息就可以。

在采集方式上,我们采用行信号HREF和场信号VSYN对图像进行采集,主要的采集过程是对行信号处理时在行中断interrupt 10 RowInterrupt () 里进行。考虑到智能小车行进中摄像头采集回每幅图像更新的方向,很明显场信号采集采用由下至上的方向进行。每幅图像采集完毕后,图像数据直接以灰度值保存在FIRSTBUFF[][]数组中。我们在实验和调试中进行了优化,将摄像头旋转90°更符合道路实情况,图像数据的长度选定为行数34,列数110。

2 跑道中心线寻迹

2.1 寻迹的一般方法

我们在寻迹处理时,我们设定了一个阈值THRESHOLD,在与阈值比较后,以向右搜索为例*(BlackRight+j) >= THRESHOLD判断是否到了边线,这样就省去了图像数据二值化的过程。

为了要使智能小车沿跑道中央行驶,首先要确定赛道中心线Line_Center的位置。赛道上的中心线没有任何标示,因此,我们采用找到赛道两侧边线blackleft和blackrigh的位置再通过简单的公式Line_Center = BlackLeft/2 + BlackRight/2 计算的方法,来确定赛道中心线的位置。

对每幅图像进行处理是时,采集完一幅图像,再对这幅图像的每一行进行搜索。搜索的方式分为两种:一种是从左往右(或者从右往左)搜索;另一种是从中间开始向两边搜索。

第一种方法存在一个很明显的问题,在出现如图1所示的图像时,假定是从左往右搜索,摄像头采集的画面中会显示多条赛道,因此无法正确采集左右边线。

而第二种方法因为是从图像中间往两侧搜索,因此能很好的解决这个问题。但是第二种方法也有一个明显的缺陷,即图像中间的起始扫描点Next_Base我们该如何确定?如果智能小车起步时的赛道是在弯道阶段,则有可能出现如图2所示起始扫描点在赛道外面的情况,此情况也会导致左右边线的采集错误。

3.2 寻迹的优化方法

我们优化了第二种方法。我们可以很容易得知,摄像头采集回的图像的近端部分(即画面下端接近智能小车的部分)肯定是准确无误,并且画面显示中赛道宽度较宽。我们在图像近端的第n行数据中,找取中心数据点LINE/2。在下一行即第n-1行,以第n行的中心点为起始扫描点,往两侧扫描,找到左右边线BlackLeft[i]和BlackRight[i]。再由第n-1行的边线,根据中心点公式计算出第n-1行的中心点Line_Center[i]。再由第n-1行的中心点,作为第n-2行的起始扫描点,往两侧扫描第n-2行的边线BlackLeft[i-1]和BlackRight[i-1],计算出下一行第n-2行的中心点即第n-3行的起始扫描点Line_Center[i-1]。以此类推,每一行的起始扫描点由上一行的中心点来确定。由于上一行的中心点肯定是在赛道内部,所以采集出来的左右边线以及中心线肯定是准确的。endprint

由于智能小车是在不断向前移动的,因此摄像头采集的画面也是沿着道路一直向前延伸。每幅图像刷新后,起始扫描行也在变化,从而导致起始扫描点Next_Base也随之变化。与之前每行起始扫描点的搜索方式类似,我们也采用选取前一幅整个图像的关键点作为当前整个图像的起始扫描点。在处理时,扫描速度相对于智能小车行驶速度要快得多,即每一幅图像的差别只有微小的几行。所以,我们选取前一幅图像中近端部分的中心点Line_Center[k]作为该幅图像的起始扫描点Next_Base。为了起始扫描点的误差,我们可以选取前一幅图像近端部分的3行的中心点,求得一个平均值作为起始扫描点Next_Base = (Line_Center[i]+Line_Center[i-1]+Line_Center[i-2])/3。

3.3 寻迹效果

通过上述方法对数据的采集,一些基本赛道的中心线就能有效地提取出来。如图3所示,图中标注出了按照上述方法实现寻迹后,智能小车在赛道上行驶时中心线的轨迹。智能小车行驶的路线基本上是在赛道中间,没有出现偏离智能小车偏离赛道的情况发生。

4 特殊赛道的处理 —— 十字道

十字道的处理一直是赛道识别的一个难点。由于十字道没有左右边线,若按照一般赛道处理时的搜索方法,会将显示画面两侧的边沿误识别为道路边线,从而导致中心点寻找错误,即智能小车确定的中心线完全错误。

4.1 十字道的识别

首先要判断智能小车是否进入十字道区域。十字道有两个明显的特征:第一,道路有断线,导致左右边线的距离非常远即blacklfet[i]与blackright[i]中的白点数较多;第二,整幅图像显示白点数Sum_Black_Number较少。采集到的图像数据若满足上述两个条件,则智能小车判断进入十字道区域。

4.2 十字道的寻迹修正方法

如图4所示的中心线明显与实际应确定的中心线相比较,存在明显的错误。究其原因,是因为交叉部分路面左右边线的提取没有处理好,导致图像上半部分的中心线寻找失败。为了准确定位十字道部分中心线的位置,我们按照十字道的特点对左右边线的提取进行修正。为了和普通赛道的边线区分开与方便分析,我们将十字道情况时,智能小车行驶的干道两侧应有边线所在位置的虚拟线定义为虚拟基准边线,将十字路近端边线的交叉点称之为拐点,远端边线的交叉点称之为跳变点。

非十字道的一般赛道边线是一条连续的曲线,没有太大跳变。而十字道赛道的边线会有很大的跳变。于是我们需要在虚拟基准边线上,由下向上补点,使系统将其识别为道路两侧存在的边线。

4.3 虚拟基准边线的确定方法

首先,我们要找到如图5所示的四个关键点,即左拐点、右拐点、左跳变点和右跳变点。在下面的分析中,我们以确定左侧基准虚拟边线的过程为例。

4.3 十字道的寻迹效果

通过此种方法的处理,由虚拟基准边线计算出的基准中心线准确性就有了很大的提高。如图6所示,图中标注出了按照此方法后,智能小车在赛道上行驶时车轮和中心线的轨迹,中心线基本是正确的。

5 结束语

此道路寻迹的设计,主要是针对一般道路的寻迹和十字道的寻迹展开的。对摄像头传回来的图像进行处理,先寻找特殊的点和线,再通过计算得到道路的中心线位置,使智能车沿中心线行驶。十字道的路面处理时,我们通过人为设定道路边线,再计算得到中心线,使智能车在十字道也能按照正确的路径行驶,不出现道路选择错误或是偏离赛道的情况。实验结果表明,此种方案在实际执行中,能让智能小车沿赛道平稳准确的行驶,避免了寻迹错误驶离赛道的情况发生,达到了预期的效果。使用本方案的智能车,在全国大学生“飞思卡尔杯”智能汽车竞赛华南赛区的比赛中获赛区二等奖。本方案也暴露出了智能车寻迹的局限性,一直沿着道路中心线行驶,在一些弯道处并不是最佳的行驶方案。未来的工作可以以此展开,对弯道行驶路线的优化进行更深入的研究。

参考文献:

[1] 黄娴, 张曦煌, 陆冬磊. 基于摄像头的智能车路径识别系统的设计[J]. 电脑知识与技术: 学术交流, 2010, 6(10): 8083-8085.

[2] 雷钧, 李峰波. 基于摄像头的自动寻迹智能车控制系统设计[J]. 苏州大学学报: 工科版, 2010 (2).

[3] 林浩岳, 董晓庆, 傅胤荣, 等. 基于CMOS摄像头识别路径的智能车控制系统设计[J]. 韩山师范学院学报, 2009, 30(6).

[4] 尹洁, 徐耀良, 盛海明, 等. 基于飞思卡尔的自主寻迹智能车的设计[J]. 机电一体化, 2009, 14(12): 73-74.

[5] 孙书诚, 郎朗, 王虎. 基于路径识别的寻迹智能车设计与实现[J]. 安徽工程大学学报, 2012, 27(1): 60-63.

[6] 陈孟元, 孙书诚, 王虎. 基于图像识别的寻迹智能车设计[J]. 重庆理工大学学报: 自然科学, 2013 (3): 80-84.

[7] 祝胜光. 智能寻迹小车设计与研究[J]. 科技风, 2012 (14).

[8] 谢敏. 基于 MC9S12XS128 智能小车控制系统的研究与应用[D]. 南昌:南昌航空大学, 2012.

[9] 胡房武. 基于图像采集的智能车系统设计[D]. 大连:大连海事大学, 2011.endprint

由于智能小车是在不断向前移动的,因此摄像头采集的画面也是沿着道路一直向前延伸。每幅图像刷新后,起始扫描行也在变化,从而导致起始扫描点Next_Base也随之变化。与之前每行起始扫描点的搜索方式类似,我们也采用选取前一幅整个图像的关键点作为当前整个图像的起始扫描点。在处理时,扫描速度相对于智能小车行驶速度要快得多,即每一幅图像的差别只有微小的几行。所以,我们选取前一幅图像中近端部分的中心点Line_Center[k]作为该幅图像的起始扫描点Next_Base。为了起始扫描点的误差,我们可以选取前一幅图像近端部分的3行的中心点,求得一个平均值作为起始扫描点Next_Base = (Line_Center[i]+Line_Center[i-1]+Line_Center[i-2])/3。

3.3 寻迹效果

通过上述方法对数据的采集,一些基本赛道的中心线就能有效地提取出来。如图3所示,图中标注出了按照上述方法实现寻迹后,智能小车在赛道上行驶时中心线的轨迹。智能小车行驶的路线基本上是在赛道中间,没有出现偏离智能小车偏离赛道的情况发生。

4 特殊赛道的处理 —— 十字道

十字道的处理一直是赛道识别的一个难点。由于十字道没有左右边线,若按照一般赛道处理时的搜索方法,会将显示画面两侧的边沿误识别为道路边线,从而导致中心点寻找错误,即智能小车确定的中心线完全错误。

4.1 十字道的识别

首先要判断智能小车是否进入十字道区域。十字道有两个明显的特征:第一,道路有断线,导致左右边线的距离非常远即blacklfet[i]与blackright[i]中的白点数较多;第二,整幅图像显示白点数Sum_Black_Number较少。采集到的图像数据若满足上述两个条件,则智能小车判断进入十字道区域。

4.2 十字道的寻迹修正方法

如图4所示的中心线明显与实际应确定的中心线相比较,存在明显的错误。究其原因,是因为交叉部分路面左右边线的提取没有处理好,导致图像上半部分的中心线寻找失败。为了准确定位十字道部分中心线的位置,我们按照十字道的特点对左右边线的提取进行修正。为了和普通赛道的边线区分开与方便分析,我们将十字道情况时,智能小车行驶的干道两侧应有边线所在位置的虚拟线定义为虚拟基准边线,将十字路近端边线的交叉点称之为拐点,远端边线的交叉点称之为跳变点。

非十字道的一般赛道边线是一条连续的曲线,没有太大跳变。而十字道赛道的边线会有很大的跳变。于是我们需要在虚拟基准边线上,由下向上补点,使系统将其识别为道路两侧存在的边线。

4.3 虚拟基准边线的确定方法

首先,我们要找到如图5所示的四个关键点,即左拐点、右拐点、左跳变点和右跳变点。在下面的分析中,我们以确定左侧基准虚拟边线的过程为例。

4.3 十字道的寻迹效果

通过此种方法的处理,由虚拟基准边线计算出的基准中心线准确性就有了很大的提高。如图6所示,图中标注出了按照此方法后,智能小车在赛道上行驶时车轮和中心线的轨迹,中心线基本是正确的。

5 结束语

此道路寻迹的设计,主要是针对一般道路的寻迹和十字道的寻迹展开的。对摄像头传回来的图像进行处理,先寻找特殊的点和线,再通过计算得到道路的中心线位置,使智能车沿中心线行驶。十字道的路面处理时,我们通过人为设定道路边线,再计算得到中心线,使智能车在十字道也能按照正确的路径行驶,不出现道路选择错误或是偏离赛道的情况。实验结果表明,此种方案在实际执行中,能让智能小车沿赛道平稳准确的行驶,避免了寻迹错误驶离赛道的情况发生,达到了预期的效果。使用本方案的智能车,在全国大学生“飞思卡尔杯”智能汽车竞赛华南赛区的比赛中获赛区二等奖。本方案也暴露出了智能车寻迹的局限性,一直沿着道路中心线行驶,在一些弯道处并不是最佳的行驶方案。未来的工作可以以此展开,对弯道行驶路线的优化进行更深入的研究。

参考文献:

[1] 黄娴, 张曦煌, 陆冬磊. 基于摄像头的智能车路径识别系统的设计[J]. 电脑知识与技术: 学术交流, 2010, 6(10): 8083-8085.

[2] 雷钧, 李峰波. 基于摄像头的自动寻迹智能车控制系统设计[J]. 苏州大学学报: 工科版, 2010 (2).

[3] 林浩岳, 董晓庆, 傅胤荣, 等. 基于CMOS摄像头识别路径的智能车控制系统设计[J]. 韩山师范学院学报, 2009, 30(6).

[4] 尹洁, 徐耀良, 盛海明, 等. 基于飞思卡尔的自主寻迹智能车的设计[J]. 机电一体化, 2009, 14(12): 73-74.

[5] 孙书诚, 郎朗, 王虎. 基于路径识别的寻迹智能车设计与实现[J]. 安徽工程大学学报, 2012, 27(1): 60-63.

[6] 陈孟元, 孙书诚, 王虎. 基于图像识别的寻迹智能车设计[J]. 重庆理工大学学报: 自然科学, 2013 (3): 80-84.

[7] 祝胜光. 智能寻迹小车设计与研究[J]. 科技风, 2012 (14).

[8] 谢敏. 基于 MC9S12XS128 智能小车控制系统的研究与应用[D]. 南昌:南昌航空大学, 2012.

[9] 胡房武. 基于图像采集的智能车系统设计[D]. 大连:大连海事大学, 2011.endprint

由于智能小车是在不断向前移动的,因此摄像头采集的画面也是沿着道路一直向前延伸。每幅图像刷新后,起始扫描行也在变化,从而导致起始扫描点Next_Base也随之变化。与之前每行起始扫描点的搜索方式类似,我们也采用选取前一幅整个图像的关键点作为当前整个图像的起始扫描点。在处理时,扫描速度相对于智能小车行驶速度要快得多,即每一幅图像的差别只有微小的几行。所以,我们选取前一幅图像中近端部分的中心点Line_Center[k]作为该幅图像的起始扫描点Next_Base。为了起始扫描点的误差,我们可以选取前一幅图像近端部分的3行的中心点,求得一个平均值作为起始扫描点Next_Base = (Line_Center[i]+Line_Center[i-1]+Line_Center[i-2])/3。

3.3 寻迹效果

通过上述方法对数据的采集,一些基本赛道的中心线就能有效地提取出来。如图3所示,图中标注出了按照上述方法实现寻迹后,智能小车在赛道上行驶时中心线的轨迹。智能小车行驶的路线基本上是在赛道中间,没有出现偏离智能小车偏离赛道的情况发生。

4 特殊赛道的处理 —— 十字道

十字道的处理一直是赛道识别的一个难点。由于十字道没有左右边线,若按照一般赛道处理时的搜索方法,会将显示画面两侧的边沿误识别为道路边线,从而导致中心点寻找错误,即智能小车确定的中心线完全错误。

4.1 十字道的识别

首先要判断智能小车是否进入十字道区域。十字道有两个明显的特征:第一,道路有断线,导致左右边线的距离非常远即blacklfet[i]与blackright[i]中的白点数较多;第二,整幅图像显示白点数Sum_Black_Number较少。采集到的图像数据若满足上述两个条件,则智能小车判断进入十字道区域。

4.2 十字道的寻迹修正方法

如图4所示的中心线明显与实际应确定的中心线相比较,存在明显的错误。究其原因,是因为交叉部分路面左右边线的提取没有处理好,导致图像上半部分的中心线寻找失败。为了准确定位十字道部分中心线的位置,我们按照十字道的特点对左右边线的提取进行修正。为了和普通赛道的边线区分开与方便分析,我们将十字道情况时,智能小车行驶的干道两侧应有边线所在位置的虚拟线定义为虚拟基准边线,将十字路近端边线的交叉点称之为拐点,远端边线的交叉点称之为跳变点。

非十字道的一般赛道边线是一条连续的曲线,没有太大跳变。而十字道赛道的边线会有很大的跳变。于是我们需要在虚拟基准边线上,由下向上补点,使系统将其识别为道路两侧存在的边线。

4.3 虚拟基准边线的确定方法

首先,我们要找到如图5所示的四个关键点,即左拐点、右拐点、左跳变点和右跳变点。在下面的分析中,我们以确定左侧基准虚拟边线的过程为例。

4.3 十字道的寻迹效果

通过此种方法的处理,由虚拟基准边线计算出的基准中心线准确性就有了很大的提高。如图6所示,图中标注出了按照此方法后,智能小车在赛道上行驶时车轮和中心线的轨迹,中心线基本是正确的。

5 结束语

此道路寻迹的设计,主要是针对一般道路的寻迹和十字道的寻迹展开的。对摄像头传回来的图像进行处理,先寻找特殊的点和线,再通过计算得到道路的中心线位置,使智能车沿中心线行驶。十字道的路面处理时,我们通过人为设定道路边线,再计算得到中心线,使智能车在十字道也能按照正确的路径行驶,不出现道路选择错误或是偏离赛道的情况。实验结果表明,此种方案在实际执行中,能让智能小车沿赛道平稳准确的行驶,避免了寻迹错误驶离赛道的情况发生,达到了预期的效果。使用本方案的智能车,在全国大学生“飞思卡尔杯”智能汽车竞赛华南赛区的比赛中获赛区二等奖。本方案也暴露出了智能车寻迹的局限性,一直沿着道路中心线行驶,在一些弯道处并不是最佳的行驶方案。未来的工作可以以此展开,对弯道行驶路线的优化进行更深入的研究。

参考文献:

[1] 黄娴, 张曦煌, 陆冬磊. 基于摄像头的智能车路径识别系统的设计[J]. 电脑知识与技术: 学术交流, 2010, 6(10): 8083-8085.

[2] 雷钧, 李峰波. 基于摄像头的自动寻迹智能车控制系统设计[J]. 苏州大学学报: 工科版, 2010 (2).

[3] 林浩岳, 董晓庆, 傅胤荣, 等. 基于CMOS摄像头识别路径的智能车控制系统设计[J]. 韩山师范学院学报, 2009, 30(6).

[4] 尹洁, 徐耀良, 盛海明, 等. 基于飞思卡尔的自主寻迹智能车的设计[J]. 机电一体化, 2009, 14(12): 73-74.

[5] 孙书诚, 郎朗, 王虎. 基于路径识别的寻迹智能车设计与实现[J]. 安徽工程大学学报, 2012, 27(1): 60-63.

[6] 陈孟元, 孙书诚, 王虎. 基于图像识别的寻迹智能车设计[J]. 重庆理工大学学报: 自然科学, 2013 (3): 80-84.

[7] 祝胜光. 智能寻迹小车设计与研究[J]. 科技风, 2012 (14).

[8] 谢敏. 基于 MC9S12XS128 智能小车控制系统的研究与应用[D]. 南昌:南昌航空大学, 2012.

[9] 胡房武. 基于图像采集的智能车系统设计[D]. 大连:大连海事大学, 2011.endprint

猜你喜欢

智能小车中心线摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
基于太赫兹技术的新一代摄像头及其在安防领域的应用探讨
基于STC89C51智能小车的移动家居平台的设计
基于HC—SR04超声波传感器的智能避障小车设计
智能安全防盗探测小车
第十讲 几何公差代号标注示例10
——目镜套筒
X线摄影中中心线对DR摄影质量的重要性
奔驰360°摄像头系统介绍
基于Meanshift和Hough变换的秧苗行中心线提取