一种基于光流特征的视频目标检测与跟踪方法与流程

文档序号:12064317阅读:来源:国知局

技术特征:

1.一种基于光流特征的视频目标检测与跟踪方法,其特征在于,包括以下步骤:包括以下步骤:

S1、视频目标检测

S11、输入无人机视频序列,基于背景局部邻域方差的等间隔采样方法对输入的图像帧序列进行背景采样,通过box-filter方法计算出每个像素点的局部邻域方差,根据背景图像的局部方差分布图设定阈值,对图像进行分区域采样,滤除部分不利于LK算法匹配的采样点,同时保留目标所在位置的采样点;

S12、由步骤S11得到采样后的像素点集合,通过LK光流法计算S11采样后的像素点集合中每个像素点的光流矢量,通过Mean Shift算法估计出背景的运动矢量;

S13、估计目标整体显著性,分为背景中无运动目标和背景中有运动目标两种情形,两种情形估计目标整体显著性的方法分别如下:

(1)背景中无运动目标时,以背景图像运动显著性分布为整体显著性分布估计,其定义式为:式中K为采样点Ci的局部邻域,Sm表示每个采样点与周围背景的运动矢量差异性的集合;

(2)背景中有运动目标时,以运动显著性分布为主,颜色显著性为辅估计目标整体显著性,首先采用与(1)中相同的方法计算运动显著性Sm,同时基于颜色对比度的Center-Surround模型,通过像素点在邻域空间的特征差异度来计算颜色显著性Sc,将运动显著性Sm和颜色显著性Sc进行线性加权估计目标整体显著性;

S14、由步骤S13中得到的目标整体显著性分布估计结果设定分割阈值,实现目标区域与背景区域的分离;

S2、视频目标跟踪

S21、将目标区域与背景区域分离之后,对目标边缘进行标注,提取目标边缘E,以E为起始位置,设置半径为r,在E+r范围内对正样本图像采样,在E-r范围外对负样本图像采样,其中正样本图像为包含目标在内的样本图像,负样本为背景图像;

S22、对S21得到的正样本图像进行目标描述,利用Haar特征描述目标纹理特征,采用YUV局部颜色直方图模型描述目标颜色特征;

S23采用稀疏矩阵压缩方式对S22得到的Haar特征进行抽样压缩,通过贝叶斯准则判断它与上一帧目标的相似性,利用粒子滤波算法对目标进行持续跟踪。

2.根据权利要求1所述的基于光流特征的视频目标检测与跟踪方法,其特征在于,步骤S11的实现方法是:

设当前输入图像的宽为W,高为H,在图像区域内定义box矩形模板的宽为m,高为n,采用黑色方块代表图像区域内的像素,每个黑色方块代表一个像素,1#矩形框表示box矩形模板,2#矩形框表示输入图像宽W和box矩形模板高n形成的区域范围,3#矩形框为1*m的矩形框,3#矩形框中的灰色方块记为buff,用来存储计算过程中的中间变量;从box矩形模板左上角(x,y)为(0,0)开始,逐个像素向右滑动,到达行末时转移到下一行的开头(0,1),以此类推;将2#矩形框内的每一列像素求和,每一列像素求和的结果放在灰色方块buff内,再对3#矩形框内的像素求和,结果即为1#矩形框即box矩形模板内的像素和,存放到预先初始化定义的数组A中,完成第一次求和运算;3#矩形框当前位置的像素和Sum[i]为向右移动之前的像素和Sum[i-1]减去3#矩形框内的第一个灰色方块buff[x-1]再加上3#矩形框右边缘的第一个灰色方块buff[x+m-1],即通过buff更新间接地求出滑动box内的所有像素和,表达式如下:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>b</mi> <mi>u</mi> <mi>f</mi> <mi>f</mi> <mo>&lsqb;</mo> <mi>x</mi> <mo>&rsqb;</mo> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>x</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>W</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>y</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>S</mi> <mi>u</mi> <mi>m</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>&rsqb;</mo> <mo>=</mo> <mi>S</mi> <mi>u</mi> <mi>m</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>&rsqb;</mo> <mo>-</mo> <mi>b</mi> <mi>u</mi> <mi>f</mi> <mi>f</mi> <mo>&lsqb;</mo> <mi>x</mi> <mo>-</mo> <mn>1</mn> <mo>&rsqb;</mo> <mo>+</mo> <mi>b</mi> <mi>u</mi> <mi>f</mi> <mi>f</mi> <mo>&lsqb;</mo> <mi>x</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>&rsqb;</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,i的初始值为0,同理,定义SquareSum为滑动box内的所有像素平方和,3#矩形框当前位置的像素平方和SquareSum[i]为向右移动之前的像素平方和SquareSum[i-1]减去3#矩形框内的第一个灰色方块像素平方和SquareSum[x-1]再加上3#矩形框它右边缘的第一个灰色方块像素平方和SquareSum[x+m-1],则有:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <mi>S</mi> <mi>q</mi> <mi>u</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> <mi>B</mi> <mi>u</mi> <mi>f</mi> <mi>f</mi> <mo>&lsqb;</mo> <mi>x</mi> <mo>&rsqb;</mo> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>x</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>W</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <munderover> <mi>&Sigma;</mi> <mrow> <mi>y</mi> <mo>=</mo> <mn>0</mn> </mrow> <mrow> <mi>n</mi> <mo>-</mo> <mn>1</mn> </mrow> </munderover> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> <mo>*</mo> <mi>I</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>,</mo> <mi>y</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>S</mi> <mi>q</mi> <mi>u</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> <mi>S</mi> <mi>u</mi> <mi>m</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>&rsqb;</mo> <mo>=</mo> <mi>S</mi> <mi>q</mi> <mi>u</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> <mi>S</mi> <mi>u</mi> <mi>m</mi> <mo>&lsqb;</mo> <mi>i</mi> <mo>-</mo> <mn>1</mn> <mo>&rsqb;</mo> <mo>-</mo> <mi>S</mi> <mi>q</mi> <mi>u</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> <mi>B</mi> <mi>u</mi> <mi>f</mi> <mi>f</mi> <mo>&lsqb;</mo> <mi>x</mi> <mo>-</mo> <mn>1</mn> <mo>&rsqb;</mo> <mo>+</mo> <mi>S</mi> <mi>q</mi> <mi>u</mi> <mi>a</mi> <mi>r</mi> <mi>e</mi> <mi>B</mi> <mi>u</mi> <mi>f</mi> <mi>f</mi> <mo>&lsqb;</mo> <mi>x</mi> <mo>+</mo> <mi>m</mi> <mo>-</mo> <mn>1</mn> <mo>&rsqb;</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

联立表达式(1)和(2),可求得背景图像的局部邻域方差Var(x,y)的表达式如(3)式所示:

Var(x,y)=SquareSum(x,y)-[Sum(x,y)/(m*n)]2 (3)

通过计算得到背景图像的局部邻域方差分布图之后,通过设定方差阈值,在背景局部邻域方差大于设定的方差阈值的区域则设置采样间隔阈值为2,即采样密度大,得到采样点多,在背景局部邻域方差小于设定的方差阈值的区域则设置采样间隔阈值为10,即采样密度小,得到采样点少,滤除不易于LK算法匹配的采样点,同时保留目标所在位置的采样点。

3.根据权利要求1所述的基于光流特征的视频目标检测与跟踪方法,其特征在于,步骤S12的实现方法是:

利用LK光流法计算S11采样后的像素点集合S中每个像素点的光流矢量,第j个采样点表示为Sj={Cj,Vj},Cj为采样点的坐标,Vj为采样点的位移,将所有采样点映射到极坐标(r,θ)上,N为采样点个数,则以Vj均值作为Mean Shift迭代初始值的表达式为:

<mrow> <msub> <mi>V</mi> <mrow> <mi>m</mi> <mi>s</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>r</mi> <mo>,</mo> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>0</mn> </mrow> <mi>N</mi> </munderover> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>/</mo> <mi>N</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

由Mean Shift迭代步骤找出核密度最大的位置,核中心坐标即为背景的运动矢量Vb

4.根据权利要求1所述的基于光流特征的视频目标检测与跟踪方法,其特征在于,步骤S13中的(2)中,基于颜色对比度的Center-Surround模型,通过像素点在邻域空间的特征差异度来计算颜色显著性,定义式为Sc=Pc*G,其中Sc表示某像素点的颜色显著性,Pc为该像素点在邻域内像素点显著性概率分布图中对应的概率值,G为邻域内高斯函数;

通过颜色显著性计算得到图像的颜色显著性分布图,颜色显著性分布图上亮度越大则表明该像素点越显著。

5.根据权利要求1所述的基于光流特征的视频目标检测与跟踪方法,其特征在于,步骤S1.4中,取背景显著性为0.1作为分割阈值,实现目标区域与背景区域的分离。

6.根据权利要求1所述的基于光流特征的视频目标检测与跟踪方法,其特征在于,步骤S2.2中,利用Haar特征描述目标纹理特征的方法为:设Ti,ti为两个不重复的随机矩形卷积窗,I为输入图像,g表示特征函数,定义Haar特征的定义式为分别设定两者的比较阈值以及两者间的差值阈值,当两者的取值都小于比较阈值同时两者间的差值小于差值阈值时,g能够描述目标的边缘特征;当两者的取值都大于比较阈值同时两者间的差值小于差值阈值时,g能够描述目标的整体特征;当两者中一个的取值大于比较阈值、另一个的取值小于比较阈值且两者间的差值大于差值阈值时,g能够描述目标的局部特征分布情况。

7.根据权利要求6所述的基于光流特征的视频目标检测与跟踪方法,其特征在于,步骤S2.3的实现方法是:

初始化目标位置与Haar特征,在目标周围以R为半径,等权重地均匀投放粒子,通过贝叶斯准则计算每个粒子与目标的相似度,公式(5)如下:

<mrow> <msub> <mi>H</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>log</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <munderover> <mi>&Pi;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>y</mi> <mo>=</mo> <mn>1</mn> <mo>)</mo> </mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>y</mi> <mo>=</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> <mrow> <munderover> <mi>&Pi;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>y</mi> <mo>=</mo> <mn>0</mn> <mo>)</mo> </mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>y</mi> <mo>=</mo> <mn>0</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <mi>log</mi> <mrow> <mo>(</mo> <mfrac> <mrow> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>y</mi> <mo>=</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> <mrow> <mi>p</mi> <mrow> <mo>(</mo> <msub> <mi>v</mi> <mi>i</mi> </msub> <mo>|</mo> <mi>y</mi> <mo>=</mo> <mn>0</mn> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

其中,以所有粒子加权重心位置为圆心,将投放的粒子按照距离圆心半径尺度分为n个层级,以p(y=1)表示粒子属于正样本区域的概率,p(y=0)表示粒子属于负样本区域的概率,则p(vi|y=1)表示粒子位于第i层级条件下且属于正样本区域的概率,p(vi|y=0)表示粒子位于第i层级条件下且属于负样本区域的概率;

根据概率论与数理统计学知识可以由均值和标准差近似得到正样本p(vi|y=1)和负样本p(vi|y=0)的概率,即其中N表示离散型随机变量函数,μ1和δ1分别为目标样本的均值和标准差,μ0和δ0分别为背景样本的均值和标准差,目标的最终位置由所有粒子加权估计得到,如公式(6)所示,式中Li表示每个粒子的位置,L'表示最终目标位置;

<mrow> <msup> <mi>L</mi> <mo>&prime;</mo> </msup> <mo>=</mo> <mfrac> <mrow> <msub> <mi>&Sigma;H</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> <mo>*</mo> <msub> <mi>L</mi> <mi>i</mi> </msub> </mrow> <mrow> <msub> <mi>&Sigma;H</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>v</mi> <mo>)</mo> </mrow> </mrow> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> <mo>.</mo> </mrow>

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