本发明涉及汽车智能控制领域,特别是涉及一种汽车及其应用的前车跟踪方法及系统。
背景技术:
近年来公路交通飞速发展,2015年世界汽车产量达到9,078.06万辆,预计2020年世界汽车产量将达到10,864.85万辆,世界汽车保有量更将达到了129371.04万辆之多。伴随公路交通工具使用的增多,车祸也相应增多。据统计,2006年全国共发生道路交通事故378781起,共造成89455人死亡;受伤431139人,直接财产损失14.9亿元。2008年全国共发生道路交通事故265204起,造成73484人死亡、304919人受伤,直接财产损失10.1亿元。2009年,全国共发生道路交通事故为238351起,造成67759人死亡,275125人受伤,直接财产损失达9.1亿元。车辆安全系统更迫切的被改进。
先进驾驶员辅助系统(ADAS:Advanced Driver Assistance Systems)ADAS,智能行车辅助系统,作为主动安全系统,在危险发生前将提醒驾驶员做出正确的判断避免车辆。根据事故统计,对于驾驶员的主要威胁来自于道路上的其他车辆。车辆识别自然成为了ADAS中的一个重要分支。本发明针对于,对本车道前方车辆的检测,估计前车与己车的位置关系,实际运用方向包括:前向碰撞预警系统(Forward Colision Warning,简称FCW)、车距监测与预警系统(Headway Monitoring and Warning,简称HMW)、自适应巡航控制系统(Adaptive Cruise Control,简称ACC)及自适应前照灯系统(Adaptive Front-lighting System,简称AFS)等。
目前基于摄像头的车辆识别技术,普遍使用了机器学习的方法,分类器通过对训练集中样本的特征向量和分类进行学习后,准确率可以达到90%以上。但在实际运用中,我们每一帧都需要稳定的结果,而机器学习的得到的分类器是做不到100%的,这导致我们需要做一些跟踪的操作,一方面是能得到稳定的结果,另一方面是减小了计算量的开销。
技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种汽车及其应用的前车跟踪方法及系统,用于解决现有技术中车辆跟踪识别结果不稳定且开销大的问题。
为实现上述目的及其他相关目的,本发明提供一种前车跟踪方法,包括:S1:获取前方图像;S2:根据预设分类器在当前获取的当前前方图像中进行前车的搜索,当在所述当前前方图像中搜索到前车时,执行步骤S3;否则返回步骤S1;S3:根据sift特征将上一帧图像中前车位置处的图像与所述当前前方图像进行匹配,以获得多对匹配点;S4:根据预设的筛选条件对所述匹配点进行筛选;S5:根据筛选后的所述匹配点,计算所述当前前方图像中当前前车位置;S6:根据所述预设分类器对所述当前前车位置进行验证,当所述预设分类器判断所述当前前方图像中的当前前车位置处不是前车时,或者所述预设分类器判断所述当前前方图像中的当前前车位置偏离预设车道时,返回所述步骤S1;否则,返回步骤S3。
于本发明一具体实施例中,提取预先获取的图像样本的特征向量作为一弱分类器,且根据Adaboost对所述弱分类器进行训练,以变更所述弱分类器的权值,以获得一强分类器,令所述强分类器作为所述预设分类器。
于本发明一具体实施例中,所述强分类器用以对一图片是否为车辆图片进行评分,且当所述评分大于一预设评分阈值时,判断所述图片为一车辆图片。
于本发明一具体实施例中,所述步骤S2还包括:当在所述当前前方图像中搜索到车辆时,继续判断该车辆是否处于前方,当处于前方时,执行步骤S3;否则返回步骤S1。
于本发明一具体实施例中,所述步骤S3还包括:利用一第一矩形框截取所述上一帧图像中前车位置处的图像作为原始图像,且在所述当前前方图像中,在所述第一矩形框位置处,以将所述第一矩形框扩大预设比例后形成第二矩形框进行图像的截取,以获得搜索图像,且根据sift特征将所述原始图像与所述搜索图像进行匹配,以获得多对匹配点。
于本发明一具体实施例中,所述步骤S4包括:计算各对所述匹配点在原坐标系下的距离,根据预设的车辆的运动特征,删除坐标变化大于预设变化阈值的匹配点。
于本发明一具体实施例中,所述步骤S5包括:根据前车的位移变化估计和尺度变化估计,计算所述当前前方图像中当前前车位置。
于本发明一具体实施例中,计算所述原始图像中所述匹配点的原坐标的第一质心,计算所述搜索图像中所述匹配点的原坐标的第二质心,且根据所述第一质心和第二质心的位移,获得所述前车的位移变化估计;计算所述原始图像中各所述匹配点到所述第一质心的距离,以获得所述原始图像中各所述匹配点到所述第一质心的第一平均距离,计算所述搜索图像中各所述匹配点到所述第二质心的距离,以获得所述搜索图像中各所述匹配点到所述第二质心的第二平均距离,且根据所述第一平均距离和所述第二平均距离,获得所述前车的尺度变化估计。
为实现上述目的及其他相关目的,本发明还提供一种前车跟踪系统,包括:图像获取模块,用于获取前方图像;车辆搜索模块,用于根据预设分类器在所述图像获取模块当前获取的当前前方图像中进行车辆的搜索,当在所述当前前方图像中搜索到车辆时,执行匹配模块;否则执行所述图像获取模块;匹配模块,用于当所述车辆搜索模块在所述当前前方图像中搜索到车辆时,根据sift特征将上一帧图像中前车位置处的图像与所述当前前方图像进行匹配,以获得多对匹配点;筛选模块,用于根据预设的筛选条件对所述匹配模块获得的所述匹配点进行筛选;当前前车位置计算模块,用于根据所述筛选模块筛选后的所述匹配点,计算所述当前前方图像中当前前车位置;判断模块,用于根据所述预设分类器对所述当前前车位置进行验证,当所述预设分类器判断所述当前前方图像中的当前前车位置处不是前车时,或者所述预设分类器判断所述当前前方图像中的当前前车位置偏离预设车道时,执行所述图像获取模块;否则,执行所述匹配模块。
为实现上述目的及其他相关目的,本发明还提供一种汽车,运行如上任一项所述的前车跟踪方法。
如上所述,本发明的汽车及其应用的前车跟踪方法及系统,利用了摄像头采集的前后帧中目标的sift特征匹配,可以较准确的对前车的位移以及尺度变换进行估计,另外加上分类器对跟踪结果的验证,保证系统的可靠性。通过对前车在图像中的稳定定位,加上摄像头安装标定,可以方便的计算出前车与己车在道路上的位置关系,对驾驶员的行车提供重要信息。前车搜索和跟前车踪的结合,使得稳定性更加,计算开销也大幅减小,最后用分类器监督跟踪结果,进一步增进了系统的鲁棒性。
附图说明
图1显示为本发明的前车跟踪方法在一具体实施例中的流程示意图。
图2显示为本发明的前车跟踪方法在一具体实施例中的流程示意图。
图3显示为本发明的前车跟踪方法在一具体实施例中的应用示意图。
图4显示为本发明的前车跟踪方法在一具体实施例中的应用示意图。
图5显示为本发明的前车跟踪方法在一具体实施例中的应用示意图。
图6显示为本发明的一具体实施例中的前车图像示意图。
图7显示为本发明的一具体实施例中的前车图像示意图。
图8显示为一具体实施例中应用本发明的前车跟踪方法的跟踪示意图。
图9显示为本发明的前车跟踪系统在一具体实施例中的模块组成示意图。
元件标号说明
1 前车跟踪系统
11 图像获取模块
12 车辆搜索模块
13 匹配模块
14 筛选模块
15 当前前车位置计算模块
16 判断模块
S1~S6 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图示中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明主要应用于通过车载前置摄像头获取前方图像,在图像中获取到前车位置信息,以此结合摄像头标定参数得到前车和本车在道路上的位置关系。
为了弥补分类器检测车辆的不稳定性,本发明以sift特征,对前车进行跟踪,将定位的流程分为搜索流程和跟踪流程。
请参阅图1,显示为本发明的前车跟踪方法在一具体实施例中的流程示意图。其中,所述搜索流程主要包括步骤S1~步骤S2,所述跟踪流程主要包括步骤S3~步骤S6。所述前车跟踪方法应用于一汽车中,用于辅助汽车的智能驾驶。
请参阅图2,显示为本发明的前车跟踪方法在一具体实施例中的流程示意图。以下,结合图2,对图1所示的前车跟踪方法做进一步的说明。
所述前车跟踪方法,包括:
S1:获取前方图像;
S2:根据预设分类器在当前获取的当前前方图像中进行前车的搜索,当在所述当前前方图像中搜索到前车时,执行步骤S3;否则返回步骤S1;具体的,于一具体实施例中,提取预先获取的图像样本的特征向量作为一弱分类器,且根据Adaboost对所述弱分类器进行训练,以变更所述弱分类器的权值,以获得一强分类器,令所述强分类器作为所述预设分类器。
分类器是用机器学习的方法获得的。首先确定样本的尺寸,准备包含正负样本的训练集、测试集和验证集,其中正样本即前车样本图片,负样本的非前车样本图片。提取特征作为特征向量,用Adaboost进行训练,调整弱分类器的权值,直至测试集准确率达到预设标准。其中Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用Adaboost分类器可以排除一些不必要的训练数据特征,并放在关键的训练数据上面。
通过以上方式得到的分类器能针对样本尺寸的图片进行一个评分,评分超过阈值的判定为前车。即所述强分类器用以对一图片是否为车辆图片进行评分,且当所述评分大于一预设评分阈值时,判断所述图片为一车辆图片。
将摄像头拍摄的图像进行尺寸变换,按照一个较小的比例进行缩小,直至图片缩小到样本的尺寸,得到从大到小的一组不同尺寸的图集。针对图集中每一张图片,用与样本同尺寸的窗口进行滑动搜索,每个窗口截取的图片,用分类器判断是否为前车。当连续几帧中相近位置都搜索到前车,则判断目标为前车。并记录前车位置,进入跟踪流程。
进一步的,所述步骤S2中,当在所述当前前方图像中搜索到车辆时,继续判断该车辆是否处于前方,当处于前方时,执行步骤S3;否则返回步骤S1。
S3:根据sift特征将上一帧图像中前车位置处的图像与所述当前前方图像进行匹配,以获得多对匹配点;其中,sift(Scale-invariant feature transform,尺度不变特征转换)是用于图像处理领域的一种描述子。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。进一步的,所述步骤S3还包括:利用一第一矩形框截取所述上一帧图像中前车位置处的图像作为原始图像,且在所述当前前方图像中,在所述第一矩形框位置处,以将所述第一矩形框扩大预设比例后形成第二矩形框进行图像的截取,以获得搜索图像,且根据sift特征将所述原始图像与所述搜索图像进行匹配,以获得多对匹配点。
具体的,获得前车目标后,开始跟踪的操作。截取前车目标窗口的图像作为目标图像。由于视频录制的前后2帧间隔很短,前车的位移是有限的,在下一帧图像中,将上一帧的目标窗口进行一定的扩大得到搜索窗口,这样就能保证前车一定会被包含在这个搜索窗口内,而搜索窗口内的图像即搜索图像,如图3所示,显示为本发明的前车跟踪方法在一具体实施例中应用示意图。其中,图3中,内侧方框表示目标窗口,外侧方框表示下一帧的搜索区域。
将目标图像和搜索图像分别进行sift特征的提取,过程包括:构建DOG尺度空间,搜索关键点并定位,直方图统计方向,根据方向生成描述子。sift所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点、角点、边缘点、暗区的亮点及亮区的暗点等,又因为根据主方向生成描述子,即使角度变换,依然能得到相同描述子,良好处理角度变换的情况。利用2幅图像生成的关键点,采用描述子为匹配依据,我们可以得到目标图像和搜索图像的sift匹配点,理想情况下,这些匹配点是在物体的固定位置的。
S4:根据预设的筛选条件对所述匹配点进行筛选;所述步骤S4进一步的包括:计算各对匹配点在原坐标系下的距离,即在同一坐标系中,计算原始图像中的匹配点与在搜索图像中对应的匹配点的距离,且根据预设的车辆的运动特征,删除坐标变化大于预设变化阈值的匹配点,以完成对所述匹配点的筛选。由于路面上的复杂情况,比如灯光、树影等影响,由步骤S3得到的匹配点,并不能百分百做的是正确匹配。即本发明根据车辆在路上的运动特性,结合采集图像的帧率,估计出车辆在图像上的最大位移变换,以此为依据,针对一对匹配点,对它们在原图中坐标差设定阈值,这样可以筛除掉错误的匹配点,保证车辆跟踪识别的准确性和稳定性。
S5:根据筛选后的所述匹配点,计算所述当前前方图像中当前前车位置;
进一步的,根据前车的位移变化估计和尺度变化估计,计算所述当前前方图像中当前前车位置。车在图像上的变化可分为2个部分,位移和尺度。位移是车的移动造成和摄像头的角度变化造成的,尺度是车与摄像头的距离变化造成的。先将匹配点坐标转化为在原图下的坐标,然后用平均的方法求出2个图像匹配点的质心。质心的位移即目标的位移。再求2个图像中匹配点到质心的距离,根据2者的平均距离比例来确定尺度的变化。当的到了位移和尺度的变化,就可以以此计算出当前帧的目标窗口,窗口中的图像即新的目标图像。
具体的,计算所述原始图像中所述匹配点的原坐标的第一质心,计算所述搜索图像中所述匹配点的原坐标的第二质心,且根据所述第一质心和第二质心的位移,获得所述前车的位移变化估计;计算所述原始图像中各所述匹配点到所述第一质心的距离,以获得所述原始图像中各所述匹配点到所述第一质心的第一平均距离,计算所述搜索图像中各所述匹配点到所述第二质心的距离,以获得所述搜索图像中各所述匹配点到所述第二质心的第二平均距离,且根据所述第一平均距离和所述第二平均距离,获得所述前车的尺度变化估计。
S6:根据所述预设分类器对所述当前前车位置进行验证,当所述预设分类器判断所述当前前方图像中的当前前车位置处不是前车时,或者所述预设分类器判断所述当前前方图像中的当前前车位置偏离预设车道时,返回所述步骤S1;否则,返回步骤S3。
截取当前帧的目标窗口中的图像,用分类器进行一个评分,当评分基本稳定在阈值以上,跟踪被认为是成功的,继续跟踪流程;当评分持续低于阈值,跟踪被认为失败,将退出跟踪流程,下一帧开始搜索流程。另外当目标窗口中心偏移到本车道以外,也将被认为已非前车,从而退出跟踪流程。
相较与单纯用分类器进行粗暴搜索的模式,搜索和跟踪的结合稳定性更加,计算开销也大幅减小,最后用分类器监督跟踪结果,进一步增进了系统的鲁棒性。
以下,再次结合图2和图3以及图4~8图,且通过具体的应用实例对所述前车跟踪方法做进一步的说明。其中,图4显示为本发明的前车跟踪方法在一具体实施例中的应用示意图。图5显示为本发明的前车跟踪方法在一具体实施例中的应用示意图。图6显示为本发明的一具体实施例中的前车图像示意图。图7显示为本发明的一具体实施例中的前车图像示意图。图8显示为应用本发明的前车跟踪方法的跟踪示意图。
在进行整个流程前,先准备分类器,步骤如下:
步骤一:在实际道路上录制行车视频,从视频中截取正负样本。得到一个训练集,包括5000正样本,10000负样本;一个验证集,其中正负样本数量共1000;一个验证集,其中正负样本共1000。其中正样本的尺寸都归一化为40x45的大小。
步骤二:无论正负样本,全归一化为40x45的大小,可选的,我们从样本图片里提取hog特征,得到特征向量。
步骤三:用这些特征向量和分类信息,利用机器学习的方法进行训练。可选的,我们用Adaboost对数据进行迭代训练,直至测试集准确率达到95%以上。
步骤四:学习后的到的分类器,用验证集测试效果,我们的分类器表现出92.7%的准确率。
这样得到的分类器将会被我们运用于整个检测流程。
整个检测流程分为搜索流程和跟踪流程。
搜索流程,包括以下步骤:
步骤(a),用分类器搜索目标;将摄像头采集的图像960*540,将其以5%的比例进行缩小,直至长和宽不小于样本尺寸40x45。得到了一组从大到小的图集后,每张都用40x45的窗口进行滑动截取图像,截取的图像用分类器判定是否前车。用这种方法在全图搜索前车和其位置。当连续5帧都检测出一个前车目标,并且此目标中心的位置偏移每帧都小于5而窗口又在本车道范围内,则可以认定这是一个前车目标,并记录其位置(即目标窗口)进入跟踪流程,否则就在下一帧继续搜索流程。
跟踪流程,包含以下步骤:
步骤(b),用sift特征将上一帧目标图像和当前帧搜索图像进行匹配;首先截取上一帧中目标窗口的图像,作为目标图像。然后,考虑到车的运动特性和帧率,车每帧在屏幕上的变换是在一定范围内的,根据上一帧的目标位置(即目标窗口),以窗口中心为基准,往外扩展10%,作为搜索窗口,在当前帧截取搜索窗口图像作为搜索图像,如图3所示。对2个图像都提取sift特征。对其构建DOG的尺度空间;搜索尺度空间内的极值点,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点,再通过曲线拟合寻找极值点精确位置;为了实现图像的旋转不变性,根据检测到的关键点的局部图像结构生成直方图,给特征点赋予方向,方向的特征图如图4所示,画出的半径表示特征点方向,圆的半径表示方向上的梯度大小;根据方向的统一变换,计算得到旋转不变性的描述子,以供我们来匹配特征点。分别计算目标图像和搜索图像的描述子标准差,得到匹配点对。
步骤(c),对于sitf匹配得到的匹配点进行筛选;由步骤(b)得到的匹配点对,并不是100%准确的,为了让后续处理准确,需要对匹配点进行筛选。考虑到车的运动特性,在原图坐标下,匹配点的移动应该是在一定范围内的,我们以5个像素为阈值,筛选掉了变动异常的匹配点对。图5显示的最终的匹配结果,圆圈代表了特征点,连线的特征点为匹配点。
步骤(d),根据筛选后的匹配点在当前帧中进行目标的位置估计;先对目标图像的匹配点和搜索图像匹配点的坐标进行变换,统一到原图坐标。前车位置估计其实包括位移和尺度变换。位移是前车和摄像头拍摄角度变换造成的。对于前车的位移变换,即质心的位移变换。计算两者匹配点组的质心,公式如下:
其中massx为质心的x坐标,massy为质心的y坐标,x,y为匹配点的xy坐标,n为匹配点个数。
对于前车尺度变换,是由于前车到摄像头距离变换造成的,需要计算匹配点到中心的距离,根据其到中心点距离的平均值的变化,估算前车的尺度变换的公式如下:
其中scale代表尺度变换,distance代表距离计算,point1代表目标图像匹配点,point1mass代表目标图像匹配点的质心,point2代表搜索图像匹配点,point2mass代表搜索图像匹配点的质心,n为匹配点个数。
通过位移和初度的变换,对目标窗口进行更新,得到在当前帧的目标窗口,此窗口被认为是对前车的定位。
步骤(e),通过分类器进行结果验证;截取当前帧的目标窗口,作为新的目标图像,提取hog特征输入分类器对其进行评分。连续5帧,低于评分阈值,被判断为非车辆的目标,将使得跟踪流程停止,若目标窗口偏离范围,不在本车道范围内,也将使得跟踪流程停止,否则跟踪流程将在下一帧继续。
这种搜索结合跟踪的方法,效果稳定,置信率大,计算开销也较全局搜索更小。其中,图6为第一帧前车图像,即第1帧前车定位图;图7为第120帧的前车图像,即第120帧前车定位图;图8为连续120帧跟踪效果图,即定位中心在跟踪过程中的位移轨迹。本发明的搜索结合跟踪的方法,效果稳定,置信率大,计算开销也较全局搜索更小。
本发明利用了摄像头采集的前后帧中目标的sift特征匹配,可以较准确的对前车的位移以及尺度变换进行估计,另外加上分类器对跟踪结果的验证,保证系统的可靠性。对前车的稳定定位。在图像中的定位,加上摄像头安装标定,可以轻易计算出前车与己车在道路上的位置关系,对驾驶员的行车提供重要信息。
进一步参阅图9,显示为本发明的前车跟踪系统在一具体实施例中的模块组成示意图。所述前车跟踪系统1包括:图像获取模块11、车辆搜索模块12、匹配模块13、筛选模块14、当前前车位置计算模块15以及判断模块16。所述前车跟踪系统1为与所述前车跟踪方法对应的系统项,两者的技术方案一一对应,所有关于所述前车跟踪方法的描述均可应用于本实施例中,在此不加赘述。
图像获取模块11用于获取前方图像;
车辆搜索模块12用于根据预设分类器在所述图像获取模块当前获取的当前前方图像中进行车辆的搜索,当在所述当前前方图像中搜索到车辆时,执行匹配模块;否则执行所述图像获取模块;
匹配模块13用于当所述车辆搜索模块在所述当前前方图像中搜索到车辆时,根据sift特征将上一帧图像中前车位置处的图像与所述当前前方图像进行匹配,以获得多对匹配点;
筛选模块14用于根据预设的筛选条件对所述匹配模块获得的所述匹配点进行筛选;
当前前车位置计算模块15,用于根据所述筛选模块筛选后的所述匹配点,计算所述当前前方图像中当前前车位置;
判断模块16用于根据所述预设分类器对所述当前前车位置进行验证,当所述预设分类器判断所述当前前方图像中的当前前车位置处不是前车时,或者所述预设分类器判断所述当前前方图像中的当前前车位置偏离预设车道时,执行所述图像获取模块;否则,执行所述匹配模块。
综上所述,本发明的汽车及其应用的前车跟踪方法及系统,利用了摄像头采集的前后帧中目标的sift特征匹配,可以较准确的对前车的位移以及尺度变换进行估计,另外加上分类器对跟踪结果的验证,保证系统的可靠性。通过对前车在图像中的稳定定位,加上摄像头安装标定,可以方便的计算出前车与己车在道路上的位置关系,对驾驶员的行车提供重要信息。前车搜索和跟前车踪的结合,使得稳定性更加,计算开销也大幅减小,最后用分类器监督跟踪结果,进一步增进了系统的鲁棒性。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。