一种融合卷积神经网络的跟踪方法及系统与流程

文档序号:11865968阅读:304来源:国知局
一种融合卷积神经网络的跟踪方法及系统与流程

本发明涉及跟踪技术领域,更具体地说,涉及一种融合卷积神经网络的跟踪方法及系统。



背景技术:

现有的关于TLD(Tracking-Learning-Detection,目标跟踪算法)的研究,大部分都是基于人工手动标识待跟踪目标,而在实际生产生活实时跟踪系统中,我们会发现这样的操作方式并不实用。例如在交通、以及工厂自动化生产线中,目标出现在监控视频流中的时间是不确定的,若需要用户手工标记待跟踪目标,则每当程序初始化之后,用户需要手动标记待跟踪目标。此用户体验效果较差,因为在手动标记待跟踪目标这个过程中,待跟踪目标可能从监控视频流中消失,或者是发生位移,甚至因为位移而发生遮挡,等等上述可能情况会导致标记操作的难度较大,用户操作体验差。此外,还有特征的选择问题,经过实际测试,我们的跟踪结果很大程度取决于我们选用的特征。对于不同跟踪对象,若要取得很好的跟踪效果,应该使用不同的特征对待检测图像块进行描述,进而使得检测器的能较好地工作,其中涉及到特征选择的问题,所以,从技术实现上而言,这对于编程实现的难度比较大。

因此,如何标识待跟踪目标,增加用户操作体验是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种融合卷积神经网络的跟踪方法及系统,以实现自动标识待跟踪目标,增加用户操作体验。

为实现上述目的,本发明实施例提供了如下技术方案:

一种融合卷积神经网络的跟踪方法,包括:

通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1

接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2;将所述最终模型CNN2替换TLD算法中的分类器;

接收用户输入的带有所述跟踪目标的监控视频流,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪。

其中,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪之后,还包括:

在显示屏上显示跟踪结果。

其中,所述通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1,包括:

利用CIFAR-10训练集,通过前向传播算法和反向传播算法对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1

其中,接收用户输入的带有跟踪目标的视频文件,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2,包括:

接收用户输入的带有跟踪目标的视频流;

通过初始矩形框表示所述跟踪目标,并利用所述初步模型CNN1对所述跟踪目标进行跟踪;

跟踪出所述视频流的每一帧图像中的所述跟踪目标的位置后,获取每一帧图像中的目标模型和背景,并跟新至目标模型集合和背景集合;

根据跟新后的目标模型集合和背景集合,利用梯度下降法对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2

其中,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别,包括:

从所述监控视频流获取窗口网格;

通过前向传播算法计算每个窗口网格的输出值,并将最大的输出值所对应的窗口图像,作为所述跟踪目标。

其中,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行跟踪,包括:

计算所述跟踪目标的窗口图像的初始方差;

将获取的图像块的方差与所述初始方差的差值大于第一预定阈值的图像块,输入所述最终模型CNN2,并在输出的第一数值大于第二预定阈值时,将所述第一数值和对应的图像块存入第一待确定集合;

获取所述跟踪目标的目标框,并从所述目标框中选取网格点;利用光流法计算所述网格点在下一帧图像中的位置,根据所述网格点中每个点的移动位移和所有点的位移中值,确定每个点的位移残差;

将位移残差大于第二预定阈值的点作为成功点,根据所有成功点的相对运动估计出下一帧图像中目标框的大小,并根据所有成功的点的坐标的平均值,计算所述下一帧图像中目标框的中心位置,得到跟踪器输出结果;

将所述跟踪器输出结果输入所述最终模型CNN2,得到与所述目标框对应的图像块的第二数值,并将所述第二数值和对应的图像块存入第二待确定集合,通过整合模块根据所述第一待确定集合和所述第一待确定集合确定目标框的位置。

其中,还包括:

根据所述整合模块确定的所述跟踪目标的运动轨迹,利用P约束条件生成正样本更新所述目标模型集合,利用N约束条件生成负样本更新所述背景集合;根据更新后的目标模型集合和背景集合,利用梯度下降法对所述最终模型CNN2进行微调;

其中,P约束条件成立的条件基于视频流中跟踪目标的运行轨迹是连续的假设;N约束条件成立的条件基于视频流中跟踪目标出现的位置是唯一确定的假设。

一种融合卷积神经网络的跟踪系统,包括:

预训练模块,用于通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1

微调模块,接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2

分类模块,用于将所述最终模型CNN2替换TLD算法中的分类器;

跟踪模块,用于接收用户输入的带有所述跟踪目标的监控视频流,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪。

其中,还包括:

显示模块,用于在显示屏上显示跟踪结果。

其中,还包括:

学习模块,用于根据所述整合模块确定的所述跟踪目标的运动轨迹,利用P约束条件生成正样本更新所述目标模型集合,利用N约束条件生成负样本更新所述背景集合;根据更新后的目标模型集合和背景集合,利用梯度下降法对所述最终模型CNN2进行微调;

其中,P约束条件成立的条件基于视频流中跟踪目标的运行轨迹是连续的假设;N约束条件成立的条件基于视频流中跟踪目标出现的位置是唯一确定的假设。

通过以上方案可知,本发明实施例提供的一种融合卷积神经网络的跟踪方法及系统,包括:通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1;接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2;将所述最终模型CNN2替换TLD算法中的分类器;接收用户输入的带有所述跟踪目标的监控视频流,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪;

可见,在本实施例中,通过线下对卷积神经网络的预训练,并输入一段包含待跟踪目标的视频,在视频流的第一帧中标定待跟踪的目标后,通过线下训练程序对视频流中的跟踪目标进行识别,并在此过程中不断训练卷积神经网络模型CNN1,这样便完成了对卷积神经网络的预训练,实现了对整个TLD算法的初始化,这样用户在线跟踪时,只需将实时的监控视频流输入到利用本方法实现的程序中,程序就会对视频流中跟踪待跟踪目标,并在显示屏上显示目标的位置,并使用一个方框将其跟踪结果显示出来。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种融合卷积神经网络的跟踪方法流程示意图;

图2为本发明实施例公开的一种融合卷积神经网络的跟踪方法框图;

图3为本发明实施例公开的一种融合卷积神经网络的跟踪系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种融合卷积神经网络的跟踪方法及系统,以实现自动标识待跟踪目标,增加用户操作体验。

参见图1,本发明实施例提供的一种融合卷积神经网络的跟踪方法,包括:

S101、通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1

其中,所述通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1,包括:

利用CIFAR-10训练集,通过前向传播算法和反向传播算法对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1

具体的,本实施例中利用CIFAR-10训练集,通过前向传播算法和反向传播算法对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1的预训练操作具体包括:

使用CIFAR-10训练集对卷积神经网络进行训练,在这个过程中,本实施例中使用的算法分为前向传播以及反向传播;在前向传播的阶段,我们使用前向传播操作。在预训练阶段反向传播阶段,利用CIFAR10数据集,对于其中的权值矩阵W使用梯度下降法等方法对网络进行预训练,从而实现对卷积神经网络的预训练,得到卷积神经网络的初步模型CNN1

具体的,本实施例中的前向传播算法的具体前向传播操作包括:

1、首先使用6×6的卷积模板对输入的图像进行卷积,其中K表示6×6的卷积模板,我们将卷积的结果保存在矩阵S中:

<mrow> <msub> <mi>S</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>I</mi> <mo>*</mo> <mi>K</mi> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mi>m</mi> </munder> <munder> <mo>&Sigma;</mo> <mi>n</mi> </munder> <mi>I</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>+</mo> <mi>m</mi> <mo>,</mo> <mi>j</mi> <mo>+</mo> <mi>n</mi> <mo>)</mo> </mrow> <mi>K</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>;</mo> </mrow>

进而对卷积的结果S的每一个元素使用矫正线性函数对卷积的结果进行处理,矫正线性函数如下,其输入量为卷积得到后的矩阵S的每一个元素:

R1(i,j)=relu(S(i,j))=max(0,S(i,j));

2、使用最大池化的方法,对矫正后的结果进行池化,使用局部2×2区域进行池化,其中输入量x(i,j)表示输入R中某一个相邻的2×2区域,结果保存在矩阵P中:

P1(i,j)=ρ(x(i,j))=max(0,x(i,j))

这样子的一个三层结构构成一个卷积神经网络的一个阶段(stage),对于本实施例中所使用的卷积神经网络,使用一共有两个阶段的结构,进而对上文中的矩阵P进行新一轮的卷积,矫正,池化之后,得到了对应的第二阶段的输出P2之后对其应用全连接层,对得到的P2乘以权值矩阵W,并运用sigmoid函数作为激活函数,我们可以得到该图像的标签:

<mrow> <mi>L</mi> <mi>a</mi> <mi>b</mi> <mi>e</mi> <mi>l</mi> <mo>=</mo> <mi>s</mi> <mi>i</mi> <mi>g</mi> <mi>m</mi> <mi>o</mi> <mi>i</mi> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>P</mi> <mn>2</mn> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mn>1</mn> <mo>+</mo> <mi>exp</mi> <mrow> <mo>(</mo> <mo>-</mo> <mo>(</mo> <mi>W</mi> <mo>*</mo> <msub> <mi>P</mi> <mn>2</mn> </msub> <mo>+</mo> <mi>b</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> </mfrac> <mo>.</mo> </mrow>

S102、接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2;将所述最终模型CNN2替换TLD算法中的分类器;

其中,接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2,包括:

S11、接收用户输入的带有跟踪目标的视频流;

S12、通过初始矩形框表示所述跟踪目标,并利用所述初步模型CNN1对所述跟踪目标进行跟踪;

S13、跟踪出所述视频流的每一帧图像中的所述跟踪目标的位置后,获取每一帧图像中的目标模型和背景,并跟新至目标模型集合和背景集合;

S14、根据跟新后的目标模型集合和背景集合,利用梯度下降法对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2

具体的,得到初步模型CNN1之后,用户输入一个关于待跟踪目标的视频文件,并在视频的第一帧中标定了待跟踪的物体,并且使用初始矩形框表示待跟踪目标,之后我们的程序开始对目标进行跟踪。在这个过程中我们使用参数微调操作,在对用户输入的关于待跟踪目标的视频文件的每一帧图像,跟踪出物体的位置,之后用获取目标模型操作更新目标模型集合以及背景集合,之后对新的集合采用梯度下降操作,进而实现在一帧视频中的参数微调。对整个视频文件中的每一帧图像实施上述操作,从而实现对卷积神经网络的微调,得到卷积神经网络的最终模型CNN2

具体的,本实施例中的获取目标模型操作具体包括:

在距离初始矩形框最近的扫描网格中,选择10个矩形框,对于每一个矩形框,通过仿射变换(±1%的偏移,±1%比例缩放,±10°的平面旋转)生成20个仿射的不同矩形框,并附加以方差为5的标准高斯噪声,这样就得到了200个正样本,并将其更新到目标模型的集合之中。之后对视频中的其他位置随机获取相同数目,相同规格的矩形框作为负样本,并更新到背景集合中。目标模型中的正样本表示该矩形框内图像块为目标模型的外观,负样本的矩形框内的图像块为背景。

具体的,本实施例中的梯度下降操作具体包括:

在这个过程中,输出量目标模型集合以及背景集合,并且在本实施例中定义目标模型集合中的样本的标签均为1即y=1,而背景集合中的样本的标签均为0,即y=0,并且定义卷积神经网络最终的输出量为我们定义损失函数:

<mrow> <mi>E</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>;</mo> <mi>W</mi> <mo>,</mo> <mi>b</mi> <mo>)</mo> </mrow> <mo>=</mo> <mo>|</mo> <mo>|</mo> <mi>y</mi> <mo>-</mo> <mover> <mi>y</mi> <mo>^</mo> </mover> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> <mo>;</mo> </mrow>

在本实施例中微调的目的是最小化卷积神经网络的输出值与样本标签之间的平方误差,公式化上述优化问题:

<mrow> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mi>&theta;</mi> </munder> <mi>E</mi> <mrow> <mo>(</mo> <mi>X</mi> <mo>;</mo> <mi>W</mi> <mo>,</mo> <mi>b</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>i</mi> <mi>n</mi> </mrow> <mi>&theta;</mi> </munder> <mo>|</mo> <mo>|</mo> <mi>y</mi> <mo>-</mo> <mover> <mi>y</mi> <mo>^</mo> </mover> <mo>|</mo> <msubsup> <mo>|</mo> <mi>F</mi> <mn>2</mn> </msubsup> </mrow>

我们使用带动量因子的随机梯度下降法,解决上述优化问题,在上述的两个集合中的某一个元素对于其中的第i层而言:

<mrow> <msub> <mi>&Delta;</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> <mo>=</mo> <mn>0.9</mn> <msub> <mi>&Delta;</mi> <mi>i</mi> </msub> <mo>-</mo> <mn>0.001</mn> <msubsup> <mi>eW</mi> <mi>i</mi> <mi>l</mi> </msubsup> <mo>-</mo> <mi>e</mi> <mfrac> <mrow> <mo>&part;</mo> <mi>E</mi> </mrow> <mrow> <mo>&part;</mo> <msubsup> <mi>W</mi> <mi>i</mi> <mi>l</mi> </msubsup> </mrow> </mfrac> <mo>,</mo> <mi>w</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>e</mi> <mfrac> <mrow> <mo>&part;</mo> <mi>E</mi> </mrow> <mrow> <mo>&part;</mo> <msubsup> <mi>W</mi> <mi>i</mi> <mi>l</mi> </msubsup> </mrow> </mfrac> <mo>=</mo> <msup> <mi>h</mi> <mrow> <mi>l</mi> <mo>-</mo> <mn>1</mn> </mrow> </msup> <mrow> <mo>(</mo> <msup> <mi>e</mi> <mi>l</mi> </msup> <mo>)</mo> </mrow> </mrow>

<mrow> <msubsup> <mi>W</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> <mi>l</mi> </msubsup> <mi>=</mi> <msubsup> <mi>W</mi> <mi>i</mi> <mi>l</mi> </msubsup> <mi>+</mi> <msub> <mi>&Delta;</mi> <mrow> <mi>i</mi> <mo>+</mo> <mn>1</mn> </mrow> </msub> </mrow>

其中使用增广权值矩阵表示上述的权值矩阵以及参数,我们按照下式更新权值矩阵:

其中可以表示为:

表示为上一层的输出以及上一层误差的偏导之间的Hadamard乘积。对于激活函数为sigmoid函数的层而言,我们将其反向传播误差表示为:

联立上述式子,并实施上述操作,就可以实现一次对卷积神经网络的微调。

具体的,在本实施例中获得卷积神经网络的最终模型CNN2之后,使用最终模型CNN2代替原始TLD算法中检测器中级联分类器的随机数森林分类器以及最近邻分类器,进而实现与检测器的融合。

S103、接收用户输入的带有所述跟踪目标的监控视频流,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪。

其中,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪之后,还包括:

在显示屏上显示跟踪结果。

具体的,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别,包括:

从所述监控视频流获取窗口网格;

通过前向传播算法计算每个窗口网格的输出值,并将最大的输出值所对应的窗口图像,作为所述跟踪目标。

具体的,在本实施例中得到卷积神经网络的最终模型CNN2后,通过对视频流中的待跟踪目标进行自动检测操作,得到跟踪目标,检测操作具体包括:使用获取扫描窗口网格操作,得到一系列窗口网格。并且对每个一个窗口,使用前向传播操作,识别出目标的位置,并将目标可能出现的位置,将网络输出最大值的窗口的图像块作为待跟踪目标。

具体的,本实施例中获取扫描窗口网格操作具体包括:

对于视频流中的每一帧,使用扫描窗口对扫描窗口网格使用如下方法获取:设定以下参数,缩放比例的步长系数为1.2,水平步长系数为宽度的10%,垂直步长系数为高度的10%,并且规定最小的矩形框大小为20个像素,这样就得到了能够包含所有可能的大小和变换的初始矩形框。

具体的,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行跟踪,包括:

S21、计算所述跟踪目标的窗口图像的初始方差;

具体的,在获得视频流中的待跟踪目标的初始图像块之后,我们执行获取目标模型操作获取目标模型和背景,并再一次微调卷积神经网络的最终模型CNN2的参数,即使用梯度下降操作对网络进行微调。并且进行一次卷积神经网络与检测器的融合操作,实现对改进后的TLD算法的初始化。并且计算出跟踪目标的初始图像块的初始方差。

S22、将获取的图像块的方差与所述初始方差的差值大于第一预定阈值的图像块,输入所述最终模型CNN2,并在输出的第一数值大于第二预定阈值时,将所述第一数值和对应的图像块存入第一待确定集合;

具体的,检测器在对跟踪目标进行跟踪时,对于每个图像块,我们首先将其输入到方差滤波器,若图像块通过了方差滤波器,则将图像输入到卷积神经网络最终模型CNN2中,经过卷积神经网络运算之后,卷积神经网络会输出一个实数,即第一数值y,表示这个图像块属于目标区域的程度,我们设定一个第二预定阈值yth,若y>yth,则认为该图像块是可接受的,可能包含了目标,并将该图像块以及其对应的y放入到第一待确定集合中,对上述的每一个扫描窗口都进行同样的操作,则可以得到一系列可接受的图像块,我们将这一系列可接受的图像块放入到第一待确定集合中。

具体的,本实施例中的方差滤波器具体实现流程如下:

如果图像块和目标图像块之间的方差小于50%,那么就拒绝这些图像块。对一个图像块p,方差计算公式为

var=E(p2)-E2(p)

其中E(p)为图像块的期望。这一步骤就拒绝了超过50%的不包含目标的背景。同时,方差阈值的选择也会约束目标所能够发生的最大的形变,即如果目标发生的形变过大,图像块会有可能被拒绝。不过,阈值大小是可以自行设定的,可以根据实际问题和应用来调整大小。在我们的实验中,我们保持阈值是恒定不变的。

S23、获取所述跟踪目标的目标框,并从所述目标框中选取网格点;利用光流法计算所述网格点在下一帧图像中的位置,根据所述网格点中每个点的移动位移和所有点的位移中值,确定每个点的位移残差;

S24、将位移残差大于第二预定阈值的点作为成功点,根据所有成功点的相对运动估计出下一帧图像中目标框的大小,并根据所有成功的点的坐标的平均值,计算所述下一帧图像中目标框的中心位置,得到跟踪器输出结果;

S25、将所述跟踪器输出结果输入所述最终模型CNN2,得到与所述目标框对应的图像块的第二数值,并将所述第二数值和对应的图像块存入第二待确定集合,通过整合模块根据所述第一待确定集合和所述第一待确定集合确定目标框的位置。

具体的,本实施例中TLD算法中的跟踪器基于中值光流法(Median-Flow)。假设整个跟踪算法得到了视频流中目标的位置,并且输出了目标框。那么,我们可以在目标框中的图像块中平均取得一个10×10大小的网格点,利用光流法计算出此100个点在下一帧图像中的位置,在此过程中我们利用金字塔光流法(PLK)来估计他们的移动,即这10×10个点在下一帧图像中的位置,此后,在后向流光法再利用后向金字塔光流法(PLK)来估计他们在当前中的位置。在本实施例中采用两层金字塔光流,估计跟踪10×10大小图像块里的点。经过前后跟踪之后得到的点与上文中的初始化的点之间存在一个相对应的位置上的位移,我们用di表示其中某一个点的移动位移,dm表示所有点位移中值,则某一个点的位移残差可定义为|di-dm|。如果残差|di-dm|大于10个像素,那么就认为该点跟踪失败。之后我们根据跟踪成功的点之间的相对运动估计出目标框的大小,根据所有成功的点的坐标的平均值,计算出目标框的中心位置,进而得到跟踪器的输出结果。并将跟踪到的结果运用卷积神经网络,得到该图像块对应的第二数值y,并将该图像块以及对应的第二数值y放入到第二待确定集合中。

通过TLD算法中的整合器对检测器输出的第一待确定集合和跟踪器输出的第二待确定集合的进行评估,得到最终的目标框的位置。这一部分的输入量为上述的待确定集合。如果跟踪器或者检测器都没有返回矩形框,那么就认为目标是不可见的。否则,整合器将根据测到的保守相似度输出最有可能的矩形框。跟踪器和检测器具有完全等同的优先权,但是,他们代表着目标区域不同的部分。检测器局部化已经知道的模板,跟踪器局部化将要知道的新的模板,并为检测器带来新的数据。

具体的,本实施例中保守相似度的计算方法具体为:

物体的目标模型可以定义为一个集合。该集合包含了目标自身的信息以及周围的一直观测得到的信息,它包含了振幅样本的图像块的集合,即:

<mrow> <mi>M</mi> <mo>=</mo> <mo>{</mo> <msubsup> <mi>p</mi> <mn>1</mn> <mo>+</mo> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mn>2</mn> <mo>+</mo> </msubsup> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msubsup> <mi>p</mi> <mi>m</mi> <mo>+</mo> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mn>1</mn> <mo>-</mo> </msubsup> <mo>,</mo> <msubsup> <mi>p</mi> <mi>2</mi> <mo>-</mo> </msubsup> <mo>,</mo> <mo>...</mo> <mo>,</mo> <msubsup> <mi>p</mi> <mi>n</mi> <mo>+</mo> </msubsup> <mo>}</mo> </mrow>

其中分别表示目标和背景的图像块正样本图像块根据图像块被添加到数据结构集的时间来进行排序。表示第一个被添加到数据集的正样本,表示最新一个被添加的。

任意给定一个图像块p和目标模型M,我们定义几个量化指标:

正样本最近邻相似度,也叫正最近邻相似度:

<mrow> <msup> <mi>S</mi> <mo>+</mo> </msup> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>M</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>max</mi> <mrow> <msubsup> <mi>p</mi> <mi>i</mi> <mo>+</mo> </msubsup> <mo>&Element;</mo> <mi>M</mi> </mrow> </msub> <mi>S</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mo>+</mo> </msubsup> <mo>)</mo> </mrow> </mrow>

负样本最近邻相似度,也叫负最近邻相似度:

<mrow> <msup> <mi>S</mi> <mo>-</mo> </msup> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <mi>M</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>max</mi> <mrow> <msubsup> <mi>p</mi> <mi>i</mi> <mo>-</mo> </msubsup> <mo>&Element;</mo> <mi>M</mi> </mrow> </msub> <mi>S</mi> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <msubsup> <mi>p</mi> <mi>i</mi> <mo>-</mo> </msubsup> <mo>)</mo> </mrow> </mrow>

前50%正样本图像块的正最近邻相似度:

相关相似度:

<mrow> <msup> <mi>S</mi> <mi>r</mi> </msup> <mo>=</mo> <mfrac> <msup> <mi>S</mi> <mo>+</mo> </msup> <mrow> <msup> <mi>S</mi> <mo>-</mo> </msup> <mo>+</mo> <msup> <mi>S</mi> <mo>+</mo> </msup> </mrow> </mfrac> </mrow>

相关相似度变化范围从0到1。相关相似度Sr的取值越大表示图像块越有可能是目标区域。

保守相似度:

<mrow> <msup> <mi>S</mi> <mi>c</mi> </msup> <mo>=</mo> <mfrac> <msubsup> <mi>S</mi> <mrow> <mn>50</mn> <mi>%</mi> </mrow> <mo>+</mo> </msubsup> <mrow> <msup> <mi>S</mi> <mo>-</mo> </msup> <mo>+</mo> <msubsup> <mi>S</mi> <mrow> <mn>50</mn> <mi>%</mi> </mrow> <mo>+</mo> </msubsup> </mrow> </mfrac> </mrow>

保守相似度变化范围从0到1。保守相似度Sr的取值越大表示图像块越有可能属于正样本图像块的前50%。

在整个TLD实施过程中,相似度(Sr,Sc)被用于指出一个任意的图像块和目模型中的部分有多大的相似。相关相似度用来定义最近邻分类器。如果Sr(p,M)>θNN那么图像块p被分类为正样本,否则就被分类为负样本。定义分类边缘为Sr(p,M)>θNN,θNN参数能够让最近邻分类器趋于收敛或稳定。

基于上述技术方案,本方案还包括:

根据所述整合模块确定的所述跟踪目标的运动轨迹,利用P约束条件生成正样本更新所述目标模型集合,利用N约束条件生成负样本更新所述背景集合;根据更新后的目标模型集合和背景集合,利用梯度下降法对所述最终模型CNN2进行微调;

其中,P约束条件成立的条件基于视频流中跟踪目标的运行轨迹是连续的假设;N约束条件成立的条件基于视频流中跟踪目标出现的位置是唯一确定的假设。

具体的,在本实施例中利用学习器更新的目标模型,用核心模型更新卷积神经网络,即利用正负样本以及核心模型,利用其中的每个图像块,进行梯度下降操作对卷积神经网络进行微调,从而实现检测器的更新。

具体的,本实施例中的学习器具体包括:

TLD算法中的学习器基于两个假设:目标在视频流中的每条轨迹是连续的,并且,任意时刻当目标出现在视频流中时,目标出现的位置是唯一确定的,为此在本实施例中设计了以下两个约束:

1、P约束

P约束的目的就是找出目标新的外观。目标的运动是按照一定的轨迹的,然后P约束从这些运动轨迹中提取增加正样本。然而,在TLD系统中,目标的运动轨迹是由跟踪器,检测器和整合器组合产生的。这也导致可能产生一个不连续的轨迹。P约束就是用来找出轨迹的最可靠部分,并将其用于生成正样本。为了找出运动轨迹的可靠部分,P约束依赖于目标模型M。在一个特征空间中,目标模型可以用有色的点来表示。正样本用红点表示,红点根据运动轨迹按先后顺用曲线连接起来。负样本用黑点表示。利用保守相似度Sc,定义特征空间里的一个子集,如果样本空间中的正样本点的Sc比阈值稍大。我们把这个样本点视作目标模型的核心部分。注意到这个核心部分并不会固定不变的,他是会随着新样本的加入而生长的,只要其Sc比阈值稍大。不过,其生长量是远小于整个模型的。

P约束是确认出运动轨迹的最可靠部分的。只要运动轨迹进入了核心部分,那么他就是可靠的,并保持该稳定直到重新初始化,或者跟踪器跟踪失败。如果这个位置是可靠的,即这个位置位于某一条轨迹上,并且该轨迹进入了核心部分,P约束就在该位置周围会生成一些正样本,这些正样本用于更新目标模型和合并分类器。我们在距离当前矩形框的、最近的扫描网格中选择10个矩形框。对于每一个矩形框,我们利用几何变换(±1%的偏移,±1%比例缩放,±5°的平面旋转)生成10个仿射的不同的矩形框,并附加以方差为5的高斯噪声。最终可以得到100个正样本用于更新检测器。

2、N约束

N约束的目的就是生成负样本。他的目标就是发现检测器应该忽视的周围的背景部分。N约束的前提假设就是目标在一帧中只出现在一个位置。所以,如果目标的位置已知的话,那么该位置的周围部分就被标注为负样本。N约束和P约束同时进行,如果运动轨迹是可靠的。此时,远离当前矩形框的图像块(重叠度小于0.2)就被标注为负样本。对于检测器的更新和合并分类器,我们只考虑那些没被方差滤波器和合并分类器拒绝的图像块。

具体的,参见图2,本实施例提供的融合卷积神经网络的跟踪方法框图,即通过卷积神经网络CNN0和训练样本进行预训练后生成卷积神经网络CNN1,并通过和带有待跟踪目标的训练样本对神经网络模型进行微调,生成卷积神经网络CNN2,通过卷积神经网络CNN2、跟踪器、检测器和整合期确定跟踪目标的位置,并且通过学习器不断更新跟踪器和检测器。

下面对本发明实施例提供的跟踪系统进行介绍,下文描述的跟踪系统与上文描述的跟踪方法可以相互参照。

参见图3,本发明实施例提供的一种融合卷积神经网络的跟踪系统,包括:

预训练模块100,用于通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1

微调模块200,接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2

分类模块300,用于将所述最终模型CNN2替换TLD算法中的分类器;

跟踪模块400,用于接收用户输入的带有所述跟踪目标的监控视频流,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪。

基于上述技术方案,本方案还包括:

显示模块,用于在显示屏上显示跟踪结果;

检测模块,用于计算所述跟踪目标的窗口图像的初始方差;将获取的图像块的方差与所述初始方差的差值大于第一预定阈值的图像块,则将获取的图像块输入所述最终模型CNN2,并在输出的第一数值大于第二预定阈值时,将所述第一数值和对应的图像块存入第一待确定集合;

跟踪模块,用于获取所述跟踪目标的目标框,并从所述目标框中选取网格点;利用光流法计算所述网格点在下一帧图像中的位置,根据所述网格点中每个点的移动位移和所有点的位移中值,确定每个点的位移残差;将位移残差大于第二预定阈值的点作为成功点,根据所有成功点的相对运动估计出下一帧图像中目标框的大小,并根据所有成功的点的坐标的平均值,计算所述下一帧图像中目标框的中心位置,得到跟踪器输出结果;将所述跟踪器输出结果输入所述最终模型CNN2,得到与所述目标框对应的图像块的第二数值,并将所述第二数值和对应的图像块存入第二待确定集合;

整合模块,用于根据所述第一待确定集合和所述第一待确定集合确定目标框的位置;

学习模块,用于根据所述整合模块确定的所述跟踪目标的运动轨迹,利用P约束条件生成正样本更新所述目标模型集合,利用N约束条件生成负样本更新所述背景集合;根据更新后的目标模型集合和背景集合,利用梯度下降法对所述最终模型CNN2进行微调;

其中,P约束条件成立的条件基于视频流中跟踪目标的运行轨迹是连续的假设;N约束条件成立的条件基于视频流中跟踪目标出现的位置是唯一确定的假设。

需要说明的是,本实施例中的学习器相当于学习模块,检测器相当于检测模块,跟踪器相当于跟踪模块,整合器相当于整合模块。

本发明实施例提供的一种融合卷积神经网络的跟踪方法及系统,包括:通过预定的训练集,对卷积神经网络进行预训练得到卷积神经网络的初步模型CNN1;接收用户输入的带有跟踪目标的视频流,通过所述初步模型CNN1对所述视频流中的所述跟踪目标进行跟踪,并利用微调技术对所述初步模型CNN1的参数进行微调,得到卷积神经网络的最终模型CNN2;将所述最终模型CNN2替换TLD算法中的分类器;接收用户输入的带有所述跟踪目标的监控视频流,通过带有所述最终模型CNN2的TLD算法自动对所述监控视频流中的所述跟踪目标进行识别及跟踪;

可见,在本实施例中,通过线下对卷积神经网络的预训练,并输入一段包含待跟踪目标的视频,在视频流的第一帧中标定待跟踪的目标后,通过线下训练程序对视频流中的跟踪目标进行识别,并在此过程中不断训练卷积神经网络模型CNN1,这样便完成了对卷积神经网络的预训练,实现了对整个TLD算法的初始化,这样用户在线跟踪时,只需将实时的监控视频流输入到利用本方法实现的程序中,程序就会对视频流中跟踪待跟踪目标,并在显示屏上显示目标的位置,并使用一个方框将其跟踪结果显示出来。

可见,本发明是一种不需要在监控视频流中标定待跟踪目标,是根据前期用户输入的视频文件中标定的待跟踪物体的,而实现自动识别与检测待跟踪物体,从而实现自动跟踪。并且将卷积神经网络融合到TLD算法中,并利用关于视频跟踪的假设,即就是目标在视频流中的每一帧图像中的只出现唯一的一次,并且在视频流中的每一条运动轨迹上,每一条轨迹都是连续的,基于这样的假设提出了更新的方法。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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