您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > 摄像头黑线识别算法和赛车行驶控制策略
摄像头黑线识别算法和赛车行驶控制策略贾秀江1,李颢21.上海交大机械设计及自动化研究所上海2002402.上海交大自动化系上海200240文摘:本文在图像采集系统已经获取比赛赛道的实时图像的基础之上,研究和分析了赛道中黑线的实时检测算法;并根据识别的黑线信息,来对赛车的转向舵机和行驶速度进行控制,使之达到较为完美的转弯特性和速度控制。首先简单的介绍了整个图像采集系统的所获取的图像信息和比赛赛道信息的特点。然后针对性的提出赛道黑线的边沿检测算法,通过实验确定黑白色之间的阀值和其他主要参数值。最后根据前面识别的黑线信息来预判前方路况信息,从而控制转向舵机的转向角度和赛车的行驶速度。关键词:图像采集;实时图像处理;边沿检测;转向舵机;驾驶速度中图分类号:TP1DistinguishBlackLinebyCameraandDrivetheSmartCarJiaXiujiang1,LiHao21.SchoolofMechanicalEngineering,ShanghaiJiaotongUniversity,Shanghai200240,China;2.DepartmentofAutomation,ShanghaiJiaotongUniversity,Shanghai200240,ChinaAbstract:Inthispaperwemakeastudyonthetrackingmethodoftheguidelineonalane,onthebasethattherealtimeimagesofthelanehavealreadybeenobtainedbytheimage-samplingsystem.Wealsomakeuseoftheinformationofthetrackedguidelinetocontrolthesteerandspeedofthevehiclesoastoachievecomparativelyperfectturingperformanceandspeedcontrol.Firstwebrieflyintroducethecharacteristicsoftheimageandlaneinformationobtainedbytheimage-samplingsystem,thendemonstratestheedge-detectingmethodoftheguidelineintendedforthosecharacteristics.Wegetthethresholddifferencevaluebetweenwhitepixelsandblackpixelsandothermajorparametersbyexperiments.Inthelastweusetheguidelineinformationobtainedtofigureoutthelaneinformationinfrontofthevehiclebywhichwecouldexertpropercontrolontheturningangleofthesteerandthespeedofthevehicle.Keywords:imageacquire,realtimeimageprocess,edgedetective,steercontrol,speedcontrol背景简介:按照第一届全国大学生“飞思卡尔”智能车大赛比赛规则要求:使用大赛组委会统一提供的竞赛车模,采用飞思卡尔16位微控制器MC9S12DG128作为核心控制单元,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,以比赛完成时间短者为优胜者。其中赛道为在白色底板上铺设黑色引导线。根据赛道特点,主要有两种寻线设计方案:一、光电传感器方案;二、摄像头方案。这两种方案各有特点:其中光电传感器构成“线型检测阵列”的方案简单易行,但是将其应用于智能车竞赛中仍有一些局限性。例如,由于受比赛规则限制(传感器数量不超过16个(红外传感器的每对发射与接受单元计为1个传感器,CCD传感器记为1个传感器)),光电管的数量不可能太多,从而单个线型检测阵列所能确定的指引线信息较少。所以若是采用此方案,会导致寻线精度不够高,在接下来的舵机转向控制的时候产生直道蛇行或者弯道舵机回摆。此外,光电线型检测阵列的探测距离较短,而比赛又限制了整个车体系统的长度,这样,其对前方路况的预判断距离很有限。车辆行进速度较快时,若能预判前方一定距离的路况,则有助于智能车对前方突然出现的路况变化(如转弯)作及时的应对处理;否则,车辆可能会偏离指引线较远,甚或冲出赛道。基于前述对“线型检测阵列”寻线能力局限性的考虑,我们选择采用摄像头作为寻线传感器。这是因为,一方面摄像头所能探测的赛道信息远多于“线型检测阵列”探测的,而且摄像头也有足够远的探测距离以方便对前方路况进行预判。另一方面,比赛规定使用的Freescale16位单片机MC9S12DG128的运算速度和自身AD口的采样速度,能够适应对黑白低线数摄像头的有效视频采样和对大量图像数据的处理。本文就是在摄像头方案的实时图像数据已经获得的基础上,对图像进行数据处理,提取赛道中的引导黑线位置,从而以此作为舵机和驱动电机的控制依据。1图像数据信息特点摄像头的主要工作原理是:按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度成一一对应关系的电压值,然后将此电压值通过视频信号端输出。具体而言(参见图1),摄像头连续地扫描图像上的一行,则输出就是一段连续的电压视频信号,该电压信号的高低起伏正反映了该行图像的灰度变化情况。当扫描完一行,视频信号端就输出低于最低视频信号电压的电平(如0.3V),并保持一段时间。这样相当于,紧接着每行图像对应的电压信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。然后,跳过一行后(因为摄像头是隔行扫描的方式),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着就会出现一段场消隐区。此区中有若干个复合消隐脉冲(简称消隐脉冲),在这些消隐脉冲中,有个脉冲,它远宽于(即持续时间长于)其他的消隐脉冲,该消隐脉冲又称为场同步脉冲,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾部分和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。摄像头每秒扫描25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描50场图像。奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。图1摄像头视频信号由于S12芯片的处理能力不足以支持像PC那样的运算能力,因此我们采用了只有黑白制式、320×240的CMOS单板摄像头(每秒50帧)。由于受S12片内AD的转换能力限制(参考技术报告《S12片内AD与AD9054的比较》),在总线周期为32M的情况下,每行最多能够采集78个点,其中前12个数据为行消影,第12到第78点为有效数据点(参考图2)。图2单行78点:前0-11为行消影、凹槽为黑线位置根据单行所能采集的数据点数,为了视觉上辨别前方一般路况信息,我们需要尽可能多的采集图像。图3为40×80的单幅图像:图340×80灰度图但是对于比赛来说,赛道是在白色底板上铺设黑色引导线,因此它的干扰信息会少很多。所以对于比赛的黑线检测来说40行已经太多了:只要在单行上有足够多的信息点,较少的行数就可以实现对黑线的检测;在综合了实践比对之后,最终方案决定采用10行的信息来判断前方是直道还是弯道。前面主要简单介绍了单板摄像头的信号特点,以及用于控制算法处理的原始图像信息。并且进一步通过实验决定了最终黑线提取算法所需要采用的图像信息行数;接下来将详细分析和研究黑线提取算法以及通过该算法来进行速度和转向控制。2单行黑线提取算法前面提到了摄像头图像信息的特点,接下来将结合比赛赛道的图像特点来提出相应的黑线提取算法-边沿检测算法。由于比赛赛道是在白色底板上铺设黑色引导线,因此干扰比较小,黑线提取较为容易。很自然的就想到了图像处理算法中较为简单的边界提取算法。由于黑色赛道和白色底板之间的色差较大,直接反映在图像数据中就是大于一个黑白色阀值。通过实验可以基本上确定该阀值的大小,根据现场光线的变化影响会有略微的变化。但是该阀值基本上介于22-30之间。因为可以通过判断相邻数据点的差是否大于该阀值,作为边沿提取算法的依据和主要参数。该算法的主要过程为:1,从最左端的第一个有效数据点(12)开始依次向右进行阀值判断:由于实际中黑白赛道边沿可能会有模糊偏差,导致阀值并不是简单的介于相邻的两个点之间,很可能要相隔两个点(参考图2)。因此:2,第line为原点,判断和line+3的差是否大于阀值,如果是则将line+3记为i,从i开始判断在接下来的从i+3到该行最末一个点之间的差值是否大于阀值,如果大于则将line+i/2+2的坐标赋值给黑线中心位置(参考图4)。图4单行黑线提取算法利用该算法所得到的黑线提取效果不仅可靠,而且实时性好;在失去黑线目标以后能够记住是从左侧或者右侧超出视野,从而控制舵机转向让赛车回到正常赛道。具体黑线提取效果可参考图4。其中白色垂线为实时黑线中心位置示意。图4单行黑线提取效果(白色垂线表示黑线中心)在该小结中结合赛道的特点针对性的利用边沿检测算法来提取黑线;实验表明,只要阀值取得合适,该算法不仅可靠,而且实时性较好。如果更进一步可以设置阀值根据现场情况的变化而变化。在黑色引导线已经能够可靠提取的基础上,我们可以利用它来进行相应的弯、直道判断,以及速度和转向舵机控制算法的研究。3弯、直道判断、以及速度和舵机控制算法影响赛车速度成绩的一个非常重要因素就是对弯道和直道的提前识别判断,从而实现安全过弯、快速通过直道,提高比赛成绩。而摄像头方案在这方面有天然的优势——1)相对于光电传感器,可以获得较远的路况信息。2)不仅可以得到单行的黑线信息,还可以同时获得多行的黑线信息。根据前面提到的最终以10行黑线信息作为弯、直道的判断算法依据,下面简单介绍一下该算法。在单行黑线边沿检测提取算法的基础上,我们可以根据10行的数据中每行黑线位置与10行平均位置(参考公式1)之相对位移,然后求10行相对位移之和(公式2)。最后根据该值的大小并且结合实际赛道实验数据,来确定弯道和直道之间的阀值大小,而且,随着弯道系数的增大,该位移之和也会相应增大。_0[]_ROWMAXrowXrowXROWMAX==∑(公式1)_0[]ROWMAXrowCurveXrowX==−∑(公式2)根据该弯直道判断算法,可以得到一组由直道入弯、然后出弯的Curve参数曲线。(参考图5、6和表1、2)图5普通180°弯道图6S弯表1普通180度弯序列123456CURVE9241318235表2S弯序列12345678910CURVE522643183265276观察表1和表2可以得到在弯道中curve数值一般都大于10,偶尔在切线位置处出现小于10的情况,但是作为弯道的判断已经足够了,而且随着曲率半径的减小curve值也会相应的增大。因此可以根据curve的值来设置几个阀值,判断赛车前方的路况信息,决定赛车是否减速。同时速度控制算法可以采用以curve为变量的P控制:__×__SPEEDMAXSPEEDMINSpeedcurveSPEEDMINCURVEVALVE−=+(公式3)但是转向舵机的控制如果也采用以curve为参数的P控制算法,虽然可以快速冲过S弯,并且普通弯道也能够在内侧行驶;不过这样要冒撞到赛道边沿标志杆的风险。所以为了能够准备可靠的通过各种弯道,可以采取转向舵机的P控制:steer_(_)STEERCENTERcoefficientXvideocenter=+−(公式4)其中:____STEERLEFTSTEERRIGHTcoefficientLINEMAXLINEMIN−=−(公式5)___2LINEMAXLI
本文标题:摄像头黑线识别算法和赛车行驶控制策略
链接地址:https://www.777doc.com/doc-827149 .html