运动模型引导下的机器人核相关滤波跟踪算法的制作方法

文档序号:19741542发布日期:2020-01-18 05:18阅读:161来源:国知局
运动模型引导下的机器人核相关滤波跟踪算法的制作方法
本发明属于机器人视觉跟踪
技术领域
,涉及一种运动模型引导下的机器人核相关滤波跟踪算法。
背景技术
:在人工智能技术和机器人技术的推动下,智能服务机器人越来越多地被应用在生产和生活当中,人机交互已成为机器人学的新兴领域之一。以智能控制、目标跟踪为核心技术的新一代机器人代表了智能机器人的发展方向。智能机器人能够通过自身的摄像头获取视频信息,识别周围环境,进而发现并找到目标。小型机器人在近距离跟踪整个人身体目标具有一定的难度,对上半身跟踪通常要求安装一个高位置的摄像头,或者摄像头相对于水平线具有较大的视角,所以在这种情况下,小型机器人的跟踪范围十分有限。与上半身的跟踪相比,将足部作为跟踪目标更为合适,因为摄像头可以安装在一个较低的位置,使低高度的机器人在更大的范围内跟踪人体目标。市场上现有的跟踪智能机器人常用核相关(kernelizedcorrelationfilter,kcf)滤波跟踪算法对目标进行跟踪,现有的kcf算法对一些特殊场景如光照变化以及目标快速运动下的跟踪精度较低甚至导致跟踪失败。技术实现要素:本发明的目的是提供一种运动模型引导下的机器人核相关滤波跟踪算法,解决了现有核相关滤波跟踪算法在目标快速运动时跟踪失败的问题。本发明所采用的技术方案是一种人体足部运动模型引导下的机器人核相关滤波跟踪算法。该算法首先由第一帧图像选取目标区域,采用kcf跟踪算法对该区域内的图像特征进行分类器训练,确定目标模板。其次建立人体足部的局部运动模型和全局运动模型,再根据全局运动模型获得第二帧双脚位置区域坐标的估计值,在估计位置区域内找到最大响应后更新目标位置,之后对使用更新后的目标位置区域内的图像重新训练分类器,更新目标模板,在后续帧的处理重复第二帧步骤,最终实现人体目标的实时跟踪。本发明的技术特征还在于,具体包括以下步骤:步骤1,输入视频序列步骤2,判断是否为第一帧,若是第一帧,读取第一帧双脚位置图片,获取目标位置,训练分类器,确定目标模板,之后对双脚的两脚垂直方向位移dt和水平方向位移进行建模,建立足部局部运动模型,其中t是时间指数;步骤3,根据足部局部运动模型,采用前一帧双脚位置对当前帧双脚中间点位置进行预测,建立全局运动模型;步骤4,根据全局运动模型预测除第一帧外其余帧的双脚位置;步骤5,判断是否为第一帧,若不是第一帧,读取图片,根据运动模型获取预测的双脚位置,找到最大响应后更新目标位置,重新训练分类器,更新目标模板;步骤6,保存目标位置,显示本帧跟踪结果,判断是否为最后一帧,若是,结束目标跟踪,若不是,继续所述步骤4,进行目标跟踪。步骤2中,每一帧图像中采用像素点的坐标位置描述双脚的位置,表示当前帧左脚的位置坐标,表示当前帧右脚的位置坐标,则两脚垂直方向位移两脚水平方向位移lt-1为前一帧两脚水平方向位移。采用余弦函数对两脚垂直方向位移dt进行建模,式中,at为所述余弦函数的幅值,at=|ylmax-yrmin|,ylmax为左脚垂直坐标的最大值,yrmin为右脚垂直坐标的最小值;tt为所述余弦函数的周期,表示第k个过零点的时间,为余弦函数的相位,步骤3中,当前帧双脚中间点的预测位置为:其中,左脚预测位置为:右脚预测位置为:步骤4中,双脚位置包括左脚位置图片和右脚位置,第一帧左脚位置是以左脚的脚后跟水平方向中点位置(xl,yl)为中心的方形区域,第一帧右脚位置图片是以右脚的脚后跟水平方向中点位置(xr,yr)为中心的方形区域;其余帧的左脚位置是以左脚预测位置为中心的方形区域,右脚位置图片是以左脚预测位置为中心的方形区域。步骤2中,计算训练样本权值,确定目标模板的具体包括以下步骤:步骤2.1,确定第一帧的训练样本x,训练样本x是由训练正样本x和训练负样本x(i)组成的集合,训练正样本x为第一帧窗口内的子图像,即x=[x1x2......xn]t,训练负样本x(i)=pix,i=1,2,……,n,p为n×n阶循环矩阵,则训练样本x为:步骤2.2,训练分类器,即确定训练样本权值假设图像的采样数据与下一帧真实目标位置的最小距离为f:f=min||xω-y||2+λ||ω||2式中,x为本帧图像的训练样本,y是训练样本的回归值矩阵,λ为正则化参数,ω为权重系数;训练样本权值,即f为最小值时的权重系数ω,对f进行求导,可得:变换到复数域:ω=(xhx+λi)-1xhy式中,i为n×n阶单位矩阵;步骤2.3,确定目标模板设定权重系数其中为核函数,即训练样本x从低维空间到高维空间的映射,根据f=min||xω-y||2+λ||ω||2可得:α=(k+λi)-1y变换到傅里叶域,式中,k为核矩阵,为核矩阵k第一行的傅里叶变换;为分类器系数,也是α的傅里叶变换;为y的傅里叶变换;确定目标模板,即求解分类器系数步骤5中,找到最大响应的过程即为模板匹配的过程,用kz表示测试样本和训练样本在核空间的核矩阵,则测试样本的响应为:式中为核矩阵kz第一行的傅里叶变换,也为第二帧及后续各帧图像的测试样本,为分类器系数,e为核矩阵kz第一行对应元素与α的点乘。模板匹配在每一帧目标搜索区域内进行,搜索区域是以全局运动模型预测的双脚位置为中点扩大2.5倍的区域。步骤5中,更新目标模板,即更新分类器系数和目标观测模型上式中m为学习率。本发明的有益效果是,通过人体足部局部运动模型来构建机器人核相关滤波跟踪算法,提高了机器人对在光照场景以及快速运动下目标的跟踪准确度,降低了跟踪失败的次数,提高了机器人对目标的跟踪精度,也提高了机器人跟踪过程中的抗干扰能力;整合双脚位置信息来进行人体跟踪,避免了在狭小空间或者多障碍物场景下,机器人与周围物体发生碰撞,提高了机器人的通过性。附图说明图1是本发明运动模型引导下的机器人核相关滤波跟踪算法的程序流程示意图;图2是本发明实施例中跟踪目标慢速步行时足部局部运动模型曲线图;图3是实施例中跟踪目标中等步速步行时足部局部运动模型曲线图;图4是本发明实施例中跟踪目标快速步行时足部局部运动模型曲线图;图5是本发明实施例中视频1的足部跟踪准确率曲线图;图6是本发明实施例中视频2的足部跟踪准确率曲线图;图7是本发明实施例中视频3的足部跟踪准确率曲线图;图8是本发明实施例中视频4的足部跟踪准确率曲线图;图9是本发明实施例中视频1的足部跟踪位置误差曲线图;图10是本发明实施例中视频2的足部跟踪位置误差曲线图;图11是本发明实施例中视频3的足部跟踪位置误差曲线图;图12是本发明实施例中视频4的足部跟踪位置误差曲线图;图13是实施例中视频2采用kcf算法在第10帧的足部跟踪结果图;图14是实施例中视频2采用kcf算法在第40帧的足部跟踪结果图;图15是实施例中视频2采用kcf算法在第70帧的足部跟踪结果图;图16是实施例中视频2采用kcf算法在第100帧的足部跟踪结果图;图17是实施例中视频2采用mmkcf算法在第10帧的足部跟踪结果图;图18是实施例中视频2采用mmkcf算法在第40帧的足部跟踪结果图;图19是实施例中视频2采用mmkcf算法在第70帧的足部跟踪结果图;图20是实施例中视频2采用mmkcf算法在第100帧的足部跟踪结果图;图21是实施例中视频3采用kcf算法在第10帧的足部跟踪结果图;图22是实施例中视频3采用kcf算法在第40帧的足部跟踪结果图;图23是实施例中视频3采用kcf算法在第70帧的足部跟踪结果图;图24是实施例中视频3采用kcf算法在第100帧的足部跟踪结果图;图25是实施例中视频3采用mmkcf算法在第10帧的足部跟踪结果图;图26是实施例中视频3采用mmkcf算法在第40帧的足部跟踪结果图;图27是实施例中视频3采用mmkcf算法在第70帧的足部跟踪结果图;图28是实施例中视频3采用mmkcf算法在第100帧的足部跟踪结果图;图29是实施例中视频4采用kcf算法在第10帧的足部跟踪结果图;图30是实施例中视频4采用kcf算法在第40帧的足部跟踪结果图;图31是实施例中视频4采用kcf算法在第70帧的足部跟踪结果图;图32是实施例中视频4采用kcf算法在第100帧的足部跟踪结果图;图33是实施例中视频4采用mmkcf算法在第10帧的足部跟踪结果图;图34是实施例中视频4采用mmkcf算法在第40帧的足部跟踪结果图;图35是实施例中视频4采用mmkcf算法在第70帧的足部跟踪结果图;图36是实施例中视频4采用mmkcf算法在第100帧的足部跟踪结果图;图37是采用本发明算法用turtlebot机器人跟踪人体足部试验示意图a;图38是采用本发明算法用turtlebot机器人跟踪人体足部试验示意图b;图39是采用本发明算法用ros机器人跟踪人体足部试验示意图a;图40是采用本发明算法用ros机器人跟踪人体足部试验示意图b。具体实施方式下面结合附图和具体实施方式对本发明进行详细说明。本发明一种运动模型引导下的机器人核相关滤波跟踪算法,参照图1,包括建立足部局部运动模型,采用前一帧双脚位置对当前帧双脚位置进行估计,建立全局运动模型,根据全局运动模型估计双脚位置,若是第一帧,读取第一帧双脚位置图片,获取目标位置,训练分类器,确定目标模板,保持目标位置;若不是第一帧,读取图片,获取所估计的双脚位置,找到最大响应后更新目标位置,重新训练分类器,更新目标模板,保持目标位置,显示本帧跟踪结果;视频序列的图像是否为最后一帧,若是,结束跟踪,若不是,继续目标跟踪。实施例一种运动模型引导下的机器人核相关滤波跟踪算法,具体包括以下步骤:步骤1,输入视频序列。步骤2,判断是否为第一帧,若是第一帧,读取第一帧双脚位置图片,获取目标位置,训练分类器,确定目标模板,其次建立人体足部的局部运动模型和全局运动模型,步骤2.1,确定第一帧的训练样本x训练样本x是由训练正样本x和训练负样本x(i)组成的集合,在当前图像中,选取左脚的脚后跟水平方向中点位置(xl,yl)和右脚的脚后跟水平方向中点位置(xr,yr)作为特征点,以它为中心选取大小为55×55像素的正方形窗口,将该窗口内的子图像作为本帧的训练正样本x,x为n×1维向量,使用n×n阶循环矩阵p与训练正样本相乘进行循环移位获得负样本xi,x(i)=pix,其中,i=1,2,……,n;例如x(1)=px=[xnx1...xn-1]t,x(2)=p2x=[xn-1xn...xn-2]t。确定第一帧的训练样本x,训练样本x是由训练正样本x和训练负样本x(i)组成的集合,则训练样本x为:步骤2.2,训练分类器,即确定训练样本权值假设图像的采样数据与下一帧真实目标位置的最小距离为f:f=min||xω-y||2+λ||ω||2式中,x为本帧图像的训练样本;y是训练样本的回归值矩阵,为列向量,具体表示每个元素对应的样本标签,正样本用1表示,负样本用0表示;λ为正则化参数,取值为1×10-4;ω为权重系数;训练样本权值,即f为最小值时的权重系数ω,对f进行求导,可得:变换到复数域:ω=(xhx+λi)-1xhy式中,i为n×n阶单位矩阵;步骤2.3,确定目标模板设定权重系数其中为核函数,即训练样本x从低维空间到高维空间的映射,根据f=min||xω-y||2+λ||ω||2可得:α=(k+λi)-1y变换到傅里叶域,式中,k为核矩阵,为核矩阵k第一行的傅里叶变换;为分类器系数,也是α的傅里叶变换;为y的傅里叶变换;确定目标模板,即求解分类器系数核矩阵是样本之间通过核函数映射之后得到的。步骤2.4,局部运动建模在每一帧图像中采用像素点的坐标位置描述双脚的位置,定义当前帧左脚的位置为右脚的位置为则两只脚在垂直方向上的相对距离为其中t是时间指数,描述不同时刻的位置坐标。采用余弦函数对脚局部运动中垂直方向位移进行建模:假设一个人匀速步行,则余弦函数的周期和幅度变化很小,较大的周期对应于较低的速度,较小的周期对应于较高的速度。我们使用幅度和相位调制余弦函数来对图像中两只脚在垂直方向上的相对距离dt进行建模:式中,at为所述余弦函数的幅值,振幅是与机器人和目标之间的相对距离以及行走过程中抬脚的高度有关,at=|ylmax-yrmin|,ylmax为左脚垂直坐标的最大值,yrmin为右脚垂直坐标的最小值;tt为所述余弦函数的周期,由两个连续过零点之间的差决定,即选取dt和dt-1符号相异的点作为过零点,则第k个过零点的时间为:为所述余弦函数的相位,一般情况下,目标距离机器人的相对位置基本保持不变,因此两只脚之间的水平位移就基本不发生变化,t帧中两脚水平位移可以用前一帧进行过估计:行人以不同的速度行走,因此人与相机之间的距离也会发生变化,测量人体两只脚之间的垂直位移曲线,如图2-4,图2为慢速行走,图3为中等步速行走,图4为快速行走。从这些图中可以看出,人体行走时两脚间垂直位移曲线近似为余弦曲线,因此可采用余弦函数对脚局部运动中垂直方向位移进行建模。步骤2.5,建立全局运动模型根据足部局部运动模型,采用前一帧双脚位置对当前帧双脚中间点位置进行预测,建立全局运动模型。大多数情况下,人脚在两个连续帧之间的变化也不会很快,假设连续帧之间的行走速度保持不变,当前帧双脚中间点的预测位置为:其中,左脚预测位置为:右脚预测位置为:步骤3,若不是第一帧,即第n(n≥2)帧:读取图片,根据全局运动模型预估出当前帧的窗口位置,找到最大响应,更新目标位置,重新训练分类器,更新目标模板;步骤3.1,模板匹配找到最大响应的过程即为模板匹配的过程,模板匹配在每一帧目标搜索区域内进行,搜索区域是以全局运动模型预测的双脚位置为中点,边长为137.5像素的正方形区域,即以预测的左脚脚后跟水平方向中点位置和预测的右脚脚后跟水平方向中点位置为中点扩大2.5倍的区域作为搜索区域,在该区域内进行模板匹配。用kz表示测试样本和训练样本在核空间的核矩阵,则测试样本的响应为:式中为核矩阵kz第一行的傅里叶变换,即为第二帧及后续各帧图像的测试样本,为分类器系数,e为核矩阵kz第一行对应元素与α的点乘。模板匹配的过程即为求取函数最大值对应位置的过程。步骤3.2,模板更新更新目标模板,即更新分类器系数和目标观测模型将线性插值法引入到模板的更新中,上式中m为学习率,取0.02。步骤4,保存目标位置,显示本帧跟踪结果,判断视频序列图像是否为最后一帧,若是,结束跟踪,若不是,继续步骤3,进行目标跟踪。即连续不断地使用运动模型对搜索位置进行预先估计,然后根据预测双脚位置生成训练样本,接着完成分类器训练、模板匹配、模板更新的步骤,进行跟踪计算。采用本发明算法对四种不同情况下的行人步行测试视频进行了跟踪仿真研究,四个视频情况见表1所示。表1实际拍摄四种行人步行视频描述序号视频名称行人行走情况和背景情况1passageway较慢速度行走在室内走廊,无光照变化2shade中等速度行走在树荫和阳光下,有明显光照变化3garden中等步速行走在室外花园,有少量光照变化4zoom快速行走在阴天室外普通kcf算法和本发明mmkcf(motionmodeltoguidekernelcorrelationfilter:运动模型引导的kcf)算法下的跟踪准确率曲线如图5-8所示,图中,横坐标为跟踪目标位置中心与实际标注的目标中心的误差阈值(单位为像素),是两个中心坐标的欧氏距离,纵坐标为跟踪准确率,取阈值为20像素的准确率作为评估标准。从图5-8中可看出,在视频1情况下,kcf跟踪效果较好,准确率为76%,mmkcf算法准确率略高于kcf,达到了81%。在视频2情况下,kcf准确率为76%,而mmkcf准确率升高到93%。在视频3情况下,kcf算法丢失目标,准确率仅为14%,mmkcf准确率为72%,提高了58%,视频3跟踪准确率低于视频2主要是因为花园地板图像和鞋的图像近似导致。在视频4情况下,kcf算法丢失目标,准确率仅为19%,而mmkcf跟踪效果较好,准确率为79%,相比于kcf,提高了60%。图9-12是对四个视频跟踪的位置误差进行了分析,图中纵轴表示的跟踪误差是指不同跟踪算法运行时,每帧图片中跟踪框的中心与真值框的中心位置之差,单位为像素,横轴为视频帧数。图中,曲线②为kcf算法的跟踪误差曲线,曲线①为本发明mmkcf算法的跟踪误差曲线。从这些图中可看出,在四个视频中,曲线的大幅度波动主要原因是,在行走过程中鞋子的抬起产生了一定的形变,由于hog特征描述的是局部物体的形状,所以使跟踪框发生了漂移。在视频1中,因为步行速度慢,两种算法的跟踪误差差别很小。在视频2中,从第45到第55帧处由于抬脚改变了足部目标特征而使跟踪误差增大,曲线发生较大波动,kcf算法在第90帧后丢失了足部目标。在视频3和视频4中,kcf算法分别在第25帧和第20帧丢失了目标,而mmkcf算法虽然也存在着误差波动较大的情况,但仍成功跟踪了足部目标。基于表1中视频2-视频4的两种算法跟踪效果如图13-36所示,选取了kcf和mmkcf对视频2、视频3和视频4的处理结果中第10、40、70和100帧的跟踪结果图片作为对比,图中,白色框代表kcf算法的跟踪结果,黑色框代表mmkcf算法的跟踪结果。对于视频shade,即视频2,参照图13-20,由于kcf算法采用了hog特征,所以光照对跟踪结果没有产生太大影响,kcf算法在第10、40、70帧中,左右脚的跟踪结果差异不大,但是在第92帧时,左脚跟踪框发生了漂移,跟踪失败;mmkcf算法在70帧时,虽然跟踪框有微小的漂移,但始终成功跟随双脚。对应视频garden,即视频3,对比图21-24和图25-28,kcf算法在第16帧时,左脚抬起之后,鞋底完全遮挡住了鞋跟,改变了目标的特征,同时左右脚距离较近,左脚的目标框在此时漂移到了右脚附近,导致了左脚目标的丢失;右脚在第95帧时被左脚遮挡,导致了右脚目标的丢失。对于视频zoom,即视频4,参照图29-32和图33-36所示,存在目标形变和快速运动两种影响因素,kcf算法在第32帧时丢失左脚目标,32到33帧时,左脚抬起迈步,目标的在垂直方向上的位移为57个像素,目标26%的区域超出了搜索区域,导致跟踪失败,同样在第20帧时丢失右脚目标是由于在20到21帧时,右脚的部分区域也超出了搜索区域,导致跟踪失败。但采用mmkcf算法,利用运动模型首先预测下一帧的搜索区域位置,再完成模板匹配,始终成功跟随目标。使用turtlebot机器人和ros(robotoperatingsystem)机器人操作系统进行了本发明所提算法试验验证。机器人上搭载了微软kinectv1视觉传感器和处理设备间数据通信的联想酷睿i5处理器、频率2.4ghz笔记本。安装ubuntu16.04版本的操作系统和roskinetic版本。根据rgb相机传输的实时视频进行目标跟踪,通过深度相机判断双脚两个目标的距离,对双脚的距离进行整合之后运算得到跟随目标所需的线速度与角速度,完成对机器人运动的控制。在实验楼走廊进行真实场景下的跟踪试验,行人以较快步速步行了超过10米的距离,跟踪效果较好,图37-40为机器人跟随示意图。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1