抖动视频中目标跟踪的方法与流程

文档序号:12126431阅读:1471来源:国知局
抖动视频中目标跟踪的方法与流程

本发明属于计算机视觉目标跟踪领域,特别涉及用于抖动视频中的目标跟踪的方法。



背景技术:

随着科技的发展,无人机航拍越来越热门,而无人机航拍得到的视频很难避免的会产生各种由于无人机的平移、晃动等导致拍摄的视频具有严重的抖动情况。这些抖动现象会严重干扰对运动物体目标跟踪的结果。而目前很多跟踪算法,比如KCF(Kernelized Correlation Filters,核相关滤波)跟踪算法等,在严重抖动的视频中均会出现跟踪失败的情况。原因是这些跟踪算法的跟踪原理是默认相邻帧目标物体运动位移小,因此只在当前帧中检测与上一帧物体位置相同的区域(由于认为目标物体运动位移小,因此相邻帧目标物体位置差别不大)。而在抖动比较严重的视频中,当前帧目标物体的位置很可能与上一帧该物体位置位移差很大,因此会导致这些跟踪算法无法正确跟踪运动目标。



技术实现要素:

为克服现有技术的不足,针对现有跟踪算法在抖动视频中跟踪失败的情况,本发明旨在提出一种用于抖动视频下目标跟踪的改进算法。本发明采用的技术方案是,抖动视频中目标跟踪的方法,步骤如下:利用局部区域块搜索匹配算法,计算出目标物体在当前帧与上一帧的位置坐标偏差,然后将该偏差补偿至跟踪算法的检测区域,使得跟踪算法可以正确跟踪当前目标。

具体步骤进一步细化为:

(1)对于视频第一帧,由用户选择出需要跟踪的目标物体,得到目标物体的坐标范围(x0,y0,w,h),该坐标分别表示目标物体所在的外接矩形的左上角横坐标x0与纵坐标y0,外接矩形沿着x轴方向的宽度w与沿着y轴方向的高度h;

(2)对于视频第二帧,首先进行块搜索匹配,如果目标物体比较小的话,在第一帧中选定目标物体区域作为匹配块Blocki,其中下标i表示帧序号,第一帧i=0,第二帧i=2,以此类推,如果目标物体比较大的话,则选择目标物体的一部分区域作为匹配块Blocki;设匹配块的长宽为M和N,由于视频帧序列之间存在相对运动,导致随后一系列视频中的块Blocki+1与前一帧的块Blocki的位置发生偏移,假设x,y方向上最大偏移量分别为dx与dy,则在视频当前帧中围绕Blocki选定一个(M+2dx)*(N+2dy)搜索区域,根据最小绝对误差准则,公式如下:

其中,MAD即为Minimum Absolute Difference,最小绝对误差,fk(s,t)和fk-1(s+i,t+j)分别表示当前帧和参考帧的灰度值,匹配块大小为M×N,s,t分别表示匹配块内的x和y方向坐标,i,j分别表示当前帧可能的匹配块与参考帧匹配块在x,y方向坐标差值。利用该准则在搜索区域中进行最小匹配搜索,得到最佳匹配块Block,然后计算Block与Blocki的坐标差(offsetX,offsetY),得到偏差之后,跟踪算法在上一帧的检测区域加上该偏差得到新的检测区域,即将原来的检测区域在x方向和y方向分别平移offsetX和offsetY距离得到新的检测区域,然后跟踪算法在此区域上做计算得到精确的目标位置,接下来将该位置更新为用于下一帧块搜索匹配的Blocki+1

(3)在接下的每一帧中,重复第二步的,即每次计算当前帧与上一帧的偏差,然后将该偏差补偿至跟踪算法上一帧的检测区域得到当前帧的检测区域,接着跟踪算法在此区域上做计算得到精确的目标位置,同时更新块Blocki+1,至此实现抖动视频中目标跟踪的功能。

本发明的特点及有益效果是:

本发明利用局部区域块搜索匹配算法,精确的求出跟踪目标区域抖动的分量,然后将该分量补偿至目标跟踪算法的检测区域,使得目标跟踪算法可以准确地跟踪目标。该算法对于大抖动视频中跟踪小目标的效果更显著。

附图说明:

图1:抖动视频中目标跟踪框架图;

图2:块搜索匹配算法图。

具体实施方式

本发明针对现有跟踪算法在抖动视频中跟踪失败的情况,提出一种用于抖动视频下目标跟踪的改进算法。本发明采用的技术方案是:利用局部区域块搜索匹配算法,计算出目标物体在当前帧与上一帧的位置坐标偏差,然后将该偏差补偿至跟踪算法的检测区域,使得跟踪算法可以正确跟踪当前目标。

本发明算法整体框架如图1所示,主要步骤如下:

(1)对于视频第一帧,由用户选择出需要跟踪的目标物体,得到目标物体的坐标范围(x0,y0,w,h),该坐标分别表示目标物体所在的外接矩形的左上角横坐标x0与纵坐标y0,外接矩形沿着x轴方向的宽度w与沿着y轴方向的高度h。

(2)对于视频第二帧,首先进行块搜索匹配。如果目标物体比较小的话,在第一帧中选定目标物体区域作为匹配块Blocki(其中i表示帧序号,第一帧i=0,第二帧i=2,以此类推),如果目标物体比较大的话,则可以选择目标物体的一部分区域作为匹配块Blocki(可以加快匹配速度)。设匹配块的长宽为M和N。由于视频帧序列之间存在相对运动,导致随后一系列视频中的块Blocki+1与前一帧的块Blocki的位置发生偏移,假设x,y方向上最大偏移量分别为dx与dy。则在视频当前帧中围绕Blocki选定一个(M+2dx)*(N+2dy)搜索区域,根据最小总绝对误差准则,公式如下:

其中,MAD即为Minimum Absolute Difference,最小绝对误差,fk(s,t)和fk-1(s+i,t+j)分别表示当前帧和参考帧的灰度值,匹配块大小为M×N,s,t分别表示匹配块内的x和y方向坐标,i,j分别表示当前帧可能的匹配块与参考帧匹配块在x,y方向坐标差值。利用该准则在搜索区域中进行最小匹配搜索,得到最佳匹配块Block,然后计算Block与Blocki的坐标差(offsetX,offsetY)。块搜索匹配算法如图2。得到偏差之后,跟踪算法在上一帧的检测区域加上该偏差得到新的检测区域(即将原来的检测区域在x方向和y方向分别平移offsetX和offsetY距离得到新的检测区域),然后跟踪算法在此区域上做计算得到精确的目标位置。接下来将该位置更新为用于下一帧块搜索匹配的Blocki+1

(3)在接下的每一帧中,重复第二步的,即每次计算当前帧与上一帧的偏差,然后将该偏差补偿至跟踪算法上一帧的检测区域得到当前帧的检测区域,接着跟踪算法在此区域上做计算得到精确的目标位置。同时更新块Blocki+1

至此便实现抖动视频中目标跟踪的功能。

本发明提出抖动视频中目标跟踪的方法,下面结合具体实施方式对本发明作进一步的详细说明。

测试环境:Windows7 64位Microsoft Visual Studio 2015

首先从github上下载KCF跟踪算法源代码(KCF源代码地址:https://github.com/joaofaro/KCFcpp),此算法在抖动视频中跟踪效果很差,经常会跟踪失败。在此程序上加入块搜索算法的函数代码,该函数输入参数为Mat类型的前一帧的匹配块Block和当前帧的块搜索区域,输出参数为x方向的偏移值offsetX和y方向的偏移值offsetY。然后在main.cpp文件中定位至update函数,原本该函数只有一个输入参数,即当前帧Mat类型数据。现在将update函数增加2个类型为整型的输入参数,分别为之前求得的x方向偏移值offsetX和y方向偏移值offsetY。接下来定位至update函数内部,在其函数内部将检测区域_roi的x与y分别加上偏移值offsetX和offsetY。跟踪算法的代码其他部分均不变。跟踪算法计算出精确的目标位置之后,将该位置更新为新的匹配块位置,用于下一帧的块搜索匹配。至此代码部分修改完毕。

接下来采集了几段无人机拍摄的视频,其视频抖动情况比较严重。经测试,修改后的跟踪算法在抖动严重的视频中跟踪效果均表现很好。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明请求保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1