本发明专利技术公开了一种基于机器学习和光流的车辆跟踪方法,一次性离线训练得到车辆模型,用此车辆模型在视频流中实时检测车辆团块Blob,并对每个车辆团块Blob计算特征点集进行双向金字塔光流跟踪,通过对前向和反向的光流跟踪结果进行分析过滤,实现对多目标的稳定精确跟踪,形成车辆轨迹。本发明专利技术提供的基于机器学习和光流的车辆跟踪方法,是一完整的车辆跟踪解决方案,在实际的智能交通、电子警察、视频监控、无人驾驶等领域可广阔应用;使用本发明专利技术的跟踪方法,用户可很好的解决当前跟踪算法中的经典难题,实现对多目标的稳定精确跟踪,如场景中车辆长期停留、尺度变化、阴影、局部遮挡、粘连等;特别对于恶劣天气、低照度、高噪点也有较好结果。
【技术实现步骤摘要】
本专利技术涉及一种基于机器学习和光流的车辆跟踪方法,属于车辆跟踪技术。
技术介绍
车辆跟踪在智能交通、视频监控、无人驾驶等领域有非常广泛的研究和应用。基于视频的车辆跟踪包括车辆的检测和跟踪两个模块,当前绝大多数的车辆检测都采用基于背景差分的方法,比如通过滑动平均、混合高斯、codebook或Vibe等算法得到背景模型,再通过差分、二值化、形态学处理、连通域分析,得到车辆团块Blob。该方法基于像素特征作处理,难以解决光照突变、车辆等红灯时长时间停留、粘连、阴影、摄像机抖动等问题;通过后续的跟踪算法也只能部分解决上述问题。 不依赖背景的车辆检测与跟踪方法有了一些研究成果。比如,基于特征点的车辆跟踪算法,比如提取图像的角点,通过光流法或不变量特征进行帧间的匹配和跟踪,该方法不受光照突变、车辆长时间停留、阴影、摄像机抖动等问题的影响,但其难点是如何把这些特征点归类为独立的车辆。又比如,基于知识的车辆检测,比如基于边缘对称性、车窗、车辆轮廓模型等车辆检测方法,但单独采用这些车辆检测方法的误检率比较高,比较适合作为辅助检测方法。传统的MeanShift跟踪算法和粒子跟踪算法,对跟踪区域的全局特征进行建模,通过一定策略寻找最佳候选区域,其不足是特征单一(颜色直方图或LBP纹理),对颜色单调的目标或者多目标粘连时,容易漂移。TLD跟踪算法将在线学习和光流跟踪结合起来,通过在线检测来修正跟踪的错误,对单目标可实现长时间的跟踪,但该框架不适合多目标尤其是多个同类目标的跟踪,而且在线学习较耗时。
技术实现思路
专利技术目的:为了克服现有技术中存在的不足,本专利技术提供一种基于机器学习和光流的车辆跟踪方法,不使用传统的背景差分法来检测车辆,而是通过机器学习的方法,直接在视频画面中检测出车辆团块Blob,并采用双向金字塔光流的跟踪方法,通过对前向和反向的光流跟踪结果进行分析过滤,有效排除跟踪错误的点,可以处理场景中车辆长时间停留、阴影、粘连、摄像机抖动等难题,形成稳定的目标轨迹,实现对多目标的稳定精确跟踪,达到95%以上的准确率。 技术方案:为实现上述目的,本专利技术采用的技术方案为: 基于机器学习和光流的车辆跟踪方法,一次性离线训练得到车辆模型,用此车辆模型在视频流中实时检测车辆团块Blob,并对每个车辆团块Blob计算特征点集进行双向金字塔光流跟踪,通过对前向和反向的光流跟踪结果进行分析过滤,实现对多目标的稳定精确跟踪,形成车辆轨迹,具体包括如下步骤: 首先说明,本专利技术所有使用到的图像均为预处理后的图像,所述预处理的方法如下:将输入图像由RGB图像转换为灰度图像,并进行尺寸归一化,计算尺寸归一化后的灰度图像的平均亮度和直方图分布,根据计算结果判断检测到的图像的场景为白天、傍晚还是夜间:若检测到的图像的场景属于白天或傍晚,则完成图像预处理;若检测到的图像的场景属于傍晚,则对尺寸归一化后的灰度图像作对比度拉伸和/或直方图均衡化处理,完成图像预处理; (1)离线训练车辆模型:收集白天和夜间的正负样本图像,通过机器学习算法,提取图像特征,进行学习训练,得到白天车辆模型和夜间车辆模型; (2)车辆检测:对于预处理后的灰度图像,采用与学习训练相同的机器学习算法,提取与学习训练相同的图像特征,用学习训练好的模型,进行车辆检测,以车辆团块Blob表征车辆,获取图像中的所有车辆团块Blob:若为白天和傍晚场景则调用白天车辆模型,若为夜间场景则调用夜间车辆模型;所述车辆团块Blob使用矩形表示,包括质心坐标(cx,cy)和尺寸信息,所述尺寸包括宽度width和高度height;将当前帧中检测得到的车辆团块Blob送入车辆轨迹匹配模块;在检测车辆过程中,对滑动窗口进行预处理,不满足预处理条件的滑动窗口直接跳过; (3)车辆跟踪:分析前一帧图像和当前帧图像:对于存在于前一帧图像中的车辆,通过对应的跟踪器跟踪得到该车辆在当前帧图像中的轨迹;对于前一帧图像中不存在而当前帧中存在的车辆,则将该车辆作为新的车辆,并分配一个对应的跟踪器,在后续帧图像中对该车辆进行跟踪;所述跟踪器采用的跟踪算法为双向金字塔光流算法,通过对前向和反向的光流跟踪结果进行分析过滤,实现对多目标的稳定精确跟踪,形成车辆轨迹;所述双向金字塔光流算法具体包括如下步骤: (31)对前一帧图像,在每个车辆团块Blob内部,计算Harris角点,如果角点数目N1少于阈值T1,则计算差值N2=T1-N1,求不小于N2且能完全开方的最小整数N3,在车辆团块Blob内部按照等间隔取N3个点,将N3个采样点和N1个Harris角点一起作为光流跟踪的原始点集P1; (32)根据前一帧图像和当前帧图像:首先对原始点集P1进行L层金字塔光流跟踪,运动方向为从前一帧图像到当前帧图像,得到跟踪结果点集P2;再对跟踪结果点集P2做反向的L层金字塔流光跟踪,运动方向为从当前帧图像到前一帧图像,得到反向跟踪结果点集P0; (33)对反向跟踪结果点集P0与原始点集P1进行误差分析:分别计算P0和P1中对应点的欧氏距离及其中值,标记出欧氏距离超过中值或者超过阈值T2的点;分别计算P0和P1中对应点的N×N邻域的归一化互相关系数及其中值,标记出互相关系数小于中值的点;将所有标记出的点在原始点集P1、跟踪结果点集P2和反向跟踪结果点集P0中删除,最终得到过滤后的原始点集P1'、过滤后的跟踪结果点集P2'和过滤后的反向跟踪结果点集P0'; (34)判断车辆判为跟踪是否可信,若车辆判为跟踪不可信,则使用Kalman滤波方法,根据该车辆团块Blob在前几帧图像中的位置进行预测,将预测出的位置作为车辆在当前帧中的预测轨迹,将预测轨迹送入车辆轨迹匹配模块中; 车辆判为跟踪不可信的判据为:若过滤后的跟踪结果点集P2'中的点的数目少于阈值T3,则该车辆判为跟踪不可信;计算P0'和P1'中对应点的欧氏距离及其中值,若中值大于阈值T4,则该车辆判为跟踪不可信;否则车辆判为跟踪可信; (35)若车辆判为跟踪可信,则计算车辆在当前帧的轨迹: 计算P1'和P2'中对应点在x方向和y方向上的位移Dx和Dy,分别取中值作为该车辆团块Blob从前一帧运动到当前帧的x方向和y方向位移dx和dy;计算P1'中任意两点在x方向和y方向上的间距Dx1和Dy1,本文档来自技高网...
【技术保护点】
基于机器学习和光流的车辆跟踪方法,其特征在于:所有使用到的图像均为预处理后的图像,所述预处理的方法如下:将输入图像由RGB图像转换为灰度图像,并进行尺寸归一化,计算尺寸归一化后的灰度图像的平均亮度和直方图分布,根据计算结果判断检测到的图像的场景为白天、傍晚还是夜间:若检测到的图像的场景属于白天或夜间,则完成图像预处理;若检测到的图像的场景属于傍晚,则对尺寸归一化后的灰度图像作对比度拉伸和/或直方图均衡化处理,完成图像预处理;该车辆跟踪方法具体包括如下步骤:(1)离线训练车辆模型:收集白天和夜间的正负样本图像,通过机器学习算法,提取图像特征,进行学习训练,得到白天车辆模型和夜间车辆模型;(2)车辆检测:对于预处理后的灰度图像,采用与学习训练相同的机器学习算法,提取与学习训练相同的图像特征,用学习训练好的模型,进行车辆检测,以车辆团块Blob表征车辆,获取图像中的所有车辆团块Blob:若为白天和傍晚场景则调用白天车辆模型,若为夜间场景则调用夜间车辆模型;所述车辆团块Blob使用矩形表示,包括质心坐标(cx,cy)和尺寸信息,所述尺寸包括宽度width和高度height;将当前帧中检测得到的车辆团块Blob送入车辆轨迹匹配模块;在检测车辆过程中,对滑动窗口进行预处理,不满足预处理条件的滑动窗口直接跳过;(3)车辆跟踪:分析前一帧图像和当前帧图像:对于存在于前一帧图像中的车辆,通过对应的跟踪器跟踪得到该车辆在当前帧图像中的轨迹;对于前一帧图像中不存在而当前帧中存在的车辆,则将该车辆作为新的车辆,并分配一个对应的跟踪器,在后续帧图像中对该车辆进行跟踪;所述跟踪器采用的跟踪算法为双向金字塔光流算法,通过对前向和反向的光流跟踪结果进行分析过滤,实现对多目标的稳定精确跟踪,形成车辆轨迹;所述双向金字塔光流算法具体包括如下步骤:(31)对前一帧图像,在每个车辆团块Blob内部,计算Harris角点,如果角点数目N1少于阈值T1,则计算差值N2=T1‑N1,求不小于N2且能完全开方的最小整数N3,在车辆团块Blob内部按照等间隔取N3个点,将N3个采样点和N1个Harris角点一起作为光流跟踪的原始点集P1;(32)根据前一帧图像和当前帧图像:首先对原始点集P1进行L层金字塔光流跟踪,运动方向为从前一帧图像到当前帧图像,得到跟踪结果点集P2;再对跟踪结果点集P2做反向的L层金字塔光流跟踪,运动方向为从当前帧图像到前一帧图像,得到反向跟踪结果点集P0;(33)对反向跟踪结果点集P0与原始点集P1进行误差分析:分别计算P0和P1中对应点的欧氏距离及其中值,标记出欧氏距离超过中值或者超过阈值T2的点;分别计算P0和P1中对应点的N×N邻域的归一化互相关系数及其中值,标记出互相关系数小于中值的点;将所有标记出的点在原始点集P1、跟踪结果点集P2和反向跟踪结果点集P0中删除,最终得到过滤后的原始点集P1'、过滤后的跟踪结果点集P2'和过滤后的反向跟踪结果点集P0';(34)判断车辆跟踪是否可信,若车辆判为跟踪不可信,则使用Kalman滤波方法,根据该车辆团块Blob在前几帧图像中的位置进行预测,将预测出的位置作为车辆在当前帧中的预测轨迹,将预测轨迹送入车辆轨迹匹配模块中;车辆判为跟踪不可信的判据为:若过滤后的跟踪结果点集P2'中的点的数目少于阈值T3,则该车辆判为跟踪不可信;计算P0'和P1'中对应点的欧氏距离及其中值,若中值大于阈值T4,则该车辆判为跟踪不可信;否则车辆判为跟踪可信;(35)若车辆判为跟踪可信,则计算车辆在当前帧的轨迹:计算P1'和P2'中对应点在x方向和y方向上的位移Dx和Dy,分别取中值作为该车辆团块Blob从前一帧运动到当前帧的x方向和y方向位移dx和dy;计算P1'中任意两点在x方向和y方向上的间距Dx1和Dy1,计算P2'中任意两点在x方向和y方向上的间距Dx2和Dy2;将对应的Dx1和Dx2相除,得到一系列比值Dx2/Dx1,取中值作为该车辆团块Blob从前一帧运动到当前帧的x方向的变换尺度sx;将对应的Dy1和Dy2相除,得到一系列比值Dy2/Dy1,取中值作为该车辆团块Blob从前一帧运动到当前帧的y方向的变换尺度sy;根据该车辆团块Blob在前一帧图像中的质心坐标、尺寸、位移和变化尺度,得到该车辆团块Blob在当前帧图像中的位置,计算方法如下:cx'=cx+dxcy'=cy+dywidth'=width×sxheight'=height×sy以(cx,cy)、width和height表示车辆团块Blob在前一帧图像中的信息,以(cx',cy')、width'和height'表示车辆团块Blob在当前帧图像中的信息;(36)对计算得到的所有车辆轨迹进行合理性检验:若车辆轨迹不合理,则使用Kalman滤波方法,根据该车辆团块...
【技术特征摘要】
1.基于机器学习和光流的车辆跟踪方法,其特征在于:所有使用到的图像均为预
处理后的图像,所述预处理的方法如下:将输入图像由RGB图像转换为灰度图像,并
进行尺寸归一化,计算尺寸归一化后的灰度图像的平均亮度和直方图分布,根据计算结
果判断检测到的图像的场景为白天、傍晚还是夜间:若检测到的图像的场景属于白天或
傍晚,则完成图像预处理;若检测到的图像的场景属于傍晚,则对尺寸归一化后的灰度
图像作对比度拉伸和/或直方图均衡化处理,完成图像预处理;该车辆跟踪方法具体包括
如下步骤:
(1)离线训练车辆模型:收集白天和夜间的正负样本图像,通过机器学习算法,
提取图像特征,进行学习训练,得到白天车辆模型和夜间车辆模型;
(2)车辆检测:对于预处理后的灰度图像,采用与学习训练相同的机器学习算法,
提取与学习训练相同的图像特征,用学习训练好的模型,进行车辆检测,以车辆团块
Blob表征车辆,获取图像中的所有车辆团块Blob:若为白天和傍晚场景则调用白天车辆
模型,若为夜间场景则调用夜间车辆模型;所述车辆团块Blob使用矩形表示,包括质
心坐标(cx,cy)和尺寸信息,所述尺寸包括宽度width和高度height;将当前帧中检测得
到的车辆团块Blob送入车辆轨迹匹配模块;在检测车辆过程中,对滑动窗口进行预处
理,不满足预处理条件的滑动窗口直接跳过;
(3)车辆跟踪:分析前一帧图像和当前帧图像:对于存在于前一帧图像中的车辆,
通过对应的跟踪器跟踪得到该车辆在当前帧图像中的轨迹;对于前一帧图像中不存在而
当前帧中存在的车辆,则将该车辆作为新的车辆,并分配一个对应的跟踪器,在后续帧
图像中对该车辆进行跟踪;所述跟踪器采用的跟踪算法为双向金字塔光流算法,通过对
前向和反向的光流跟踪结果进行分析过滤,实现对多目标的稳定精确跟踪,形成车辆轨
迹;所述双向金字塔光流算法具体包括如下步骤:
(31)对前一帧图像,在每个车辆团块Blob内部,计算Harris角点,如果角点数
目N1少于阈值T1,则计算差值N2=T1-N1,求不小于N2且能完全开方的最小整数
N3,在车辆团块Blob内部按照等间隔取N3个点,将N3个采样点和N1个
Harris角点一起作为光流跟踪的原始点集P1;
(32)根据前一帧图像和当前帧图像:首先对原始点集P1进行L层金字塔光流跟
踪,运动方向为从前一帧图像到当前帧图像,得到跟踪结果点集P2;再对跟踪结果点
\t集P2做反向的L层金字塔流光跟踪,运动方向为从当前帧图像到前一帧图像,得到反
向跟踪结果点集P0;
(33)对反向跟踪结果点集P0与原始点集P1进行误差分析:分别计算P0和P1中
对应点的欧氏距离及其中值,标记出欧氏距离超过中值或者超过阈值T2的点;分别计
算P0和P1中对应点的N×N邻域的归一化互相关系数及其中值,标记出互相关系数小
于中值的点;将所有标记出的点在原始点集P1、跟踪结果点集P2和反向跟踪结果点集
P0中删除,最终得到过滤后的原始点集P1'、过滤后的跟踪结果点集P2'和过滤后的反
向跟踪结果点集P0';
(34)判断车辆判为跟踪是否可信,若车辆判为跟踪不可信,则使用Kalman滤波
方法,根据该车辆团块Blob在前几帧图像中的位置进行预测,将预测出的位置作为车
辆在当前帧中的预测轨迹,将预测轨迹送入车辆轨迹匹配模块中;
车辆判为跟踪不可信的判据为:若过滤后的跟踪结果点集P2'中的点的数目少于阈
值T3,则该车辆判为跟踪不可信;计算P0'和P1'中对应点的欧氏距离及其中值,若中
值大于阈值T4,则该车辆判为跟踪不可信;否则车辆判为跟踪可信;
(35)若车辆判为跟踪可信,则计算车辆在当前帧的轨迹:
计算P1'和P2'中对应点在x方向和y方向上的位移Dx和Dy,分别取中值作为该
车辆团块Blob从前一帧运动到当前帧的x方向和y方向位移dx和dy;计算P1'中任意
两点在x方向和y方向上的间距Dx1和Dy1,计算P2'中任意两点在x方向和y方向上的
间距Dx2和Dy2;将对应的...
【专利技术属性】
技术研发人员:骞森,
申请(专利权)人:南京金智视讯技术有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。