具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
图1给出了按照本发明的在视频图像中进行PTZ单目标自动跟踪的装置的模块图。如图1所示,按照本发明的PTZ单目标自动跟踪的装置可以包括:PTZ目标ID选择模块101、模板提取和形成模块102、跟踪区域提取模块103、相关系数及匹配位置计算模块104、跟踪状态判定模块105、PTZ跟踪结束判断模块106、模板更新模块107、目标位置预测模块108和PTZ命令计算和输出模块109。
下面,将详细介绍按照本发明的在视频图像中进行PTZ单目标自动跟踪的装置的各模块。
PTZ目标ID选择模块101用于选择PTZ跟踪目标的ID。模块101根据检测的目标,选择需要PTZ的目标的ID。所述检测的目标是指经过目标检测方法或者目标跟踪方法处理后输出的结果。目标检测方法、目标跟踪方法可以通过常见的目标检测算法、目标跟踪算法实现。可以通过两种方式选择需要PTZ的目标的ID。第一种方式是根据设定的目标属性进行选择,例如可以将目标属性设定为选择第一个出现在视场内的目标,或者选择视场内速度最快的目标,或者选择视场内面积最大的目标等。第二种方式是通过用户手工操作来进行选择。
所述模板提取和形成模块102用于提取原始模板并形成跟踪所需的另外两个模板,大模板和小模板。模块102接收模块101所确定的目标位置点和目标的宽度与高度,并且输出原始模板、大模板和小模板数据。所述模块102首先根据所述目标的ID,确定该目标所处的位置以及目标区域,并且根据该目标区域的信息,提取出原始图像中对应的区域作为目标的原始模板OT;然后针对该目标的原始模板OT,按照设定的缩小比例和放大比例进行缩小和放大,分别形成略小于和略大于目标模板的2个扩展模板,即小模板LT和大模板BT。按照这一实施例,所述目标区域是矩形区域,该矩形区域的左上角点和右下角点分别为目标的左上角点和右下角点,初始目标区域必须包含需要跟踪的目标,否则后续跟踪无法正常进行。缩小和放大时设定的比例值是依据PTZ高速球机的Z方向的运动速率而选择的,具体而言,所述缩小比例和放大比例是这样选择的:已知高速球机图像采集频率为f帧/秒,以及图像PTZ跟踪算法每帧的计算时间t秒;先将高速球对准某大小和位置不动的物体(即目标成像与象平面中心),然后控制高速球机进行Z方向缩小,对比同一物体在连续的N帧后成像大小与初始成像大小之间的总变化率S,则每帧变化量为S/N,最后根据公式可确定,缩小比例=S×t/(N×f),同理可计算出放大比例。缩小时,所设定的缩小比例可以选择0.8~1.0范围内一值,即,0.8≤缩小比例<1.0;放大时,所设定的放大比例可以选择1.0~1.2范围内一值,即,1.0<放大比例≤1.2。所述缩小和放大可以采用二次线性插值方法进行。
图2描述的是二次线性插值方法。如图2所示,假设e点为缩小或者放大图像中某个点根据缩放比例反推到原始图像中的点,a、b、c、d点为原始图像中与e点相邻的四个整数像素点,则e点的灰度值可以通过如下的计算得到:
其中,gray(a)~gray(f)表示点a~f的灰度值,af、ab、cg、cd、ef、fg分别表示点a与点f、点a与点b、点c与点g、点c与点d、点e与点f、点f与点g之间的距离。
由于PTZ跟踪的目标通常是人或者车,因此为了突出目标本身的灰度特征同时减少背景的影响,所述模板提取和形成模块102还用于计算目标模板所对应的权重系数模板WT,所述目标模板包括原始模板OT、小模板LT和大模板BT。图3给出了计算权重系数模板WT的图。权重系数模板WT的行数和列数与对应的目标模板相同,权重系数模板WT里的每个元素代表了在计算相关性时对应位置像素在计算中的权重,例如可以将处于模板边缘位置上的像素权重设置成一个比较小的值(因为根据经验,处于边缘位置上的像素是背景像素的可能性很大),而越靠近模板中心位置处的权重设置得越大,这样设计的目的在于,在公式6的计算中,尽量使得计算过程突出目标的作用而减小背景的影响。如图3所示,权重系数模板WT的宽和高与对应的目标模板相同,假设为w和h,则
α=0.9,c1和c4基于模板中心点对称;
β=0.6,c2和c3也基于模板中心点对称,
γ=0.5,
确定c1、c2、c3、c4、r1几个点位置后,就可以把权重系数模板分割成几个不同的区域,见图3,根据所跟目标(行人、轿车等)的特点,可以认为斜线区域为背景,横线区域介于目标和背景之间,白色区域处于目标体上。为了消除部分背景的影响,将斜线区域权重取值为0。同时,将白色区域权重取值远大于横线区域权重取值,以增加目标体上的灰度在相关计算中的权重,本专利优先选择的权重值为:白色区域内权重取10,横线区域权重值取1。
所述跟踪区域提取模块103用于提取跟踪区域图像,输入数据是模块101(或者模块108中预测产生的下一帧的跟踪匹配区域TR)所获取的目标区域中心位置点和目标区域宽度和高度,输出跟踪匹配区域TR。按照本发明,所述跟踪区域提取模块103首先根据确定的PTZ跟踪目标,得到目标在图像中的位置信息和目标所处区域的信息,进而确定一个代表目标的目标区域的宽度和高度;随后以目标位置点为中心,在图像的行方向和列方向上分别向两侧扩展出等于目标区域宽度和高度的预定倍数N+1的宽度和高度,以形成扩展后的跟踪区域TR(TR的宽度和高度是目标区域宽度和高度的N+1倍);以作为后续的跟踪匹配区域,也就是说后续的跟踪计算只在TR这个区域内进行,以减少计算量。其中所述预定倍数是根据PTZ高速球的P方向和T方向的运动速率选取的。在优选实施例中,该预定倍数优选为N∈[1,3]。
图4示出了所述相关系数及匹配位置计算模块104的原理图。模块104接收到103确定的跟踪区域TR以及102(或者模板更新模块107)所确定的原始模板、大模板和小模板,输出精确的目标位置点、目标大小、最终相关系数等。相关系数及匹配位置计算模块104可以包括:原始模板粗搜索子模块41、原始模板细搜索子模块42、大模板细搜索子模块43以及小模板细搜索子模块44。
原始模板粗搜索子模块41使用原始模板OT在跟踪匹配区域TR内进行粗搜索,扫描整个跟踪区域,以得到最匹配的4个位置点。粗搜索时以n为搜索步长,n∈{2,3,4,5},所选用的搜索步长根据原始模板的大小有所不同,原始模板越大,搜索步长可以越大。粗搜索的方法很多,为了减少计算量,按照本发明的一种优选实施方式,采用SSD方法来进行粗搜索。SSD方法包括:假设原始模板大小为M×N,T(i,j)、I(i,j)分别表示原始模板像素值和与原始模板相对应的图像像素值,wij表示权重系数模板对应位置的值,则有
由于sum值越小,表明图像上与原始模板相对应的子图像与原始模板越匹配。因此SSD粗检索的目的就是在搜索区域内找到对应sum值最小的4个位置点,即4个粗匹配位置点。
原始模板细搜索子模块42的搜索区域是以原始模板粗搜索子模块41所找到的可能的粗匹配位置点为中心,以粗搜索步长n为边长的矩形区域。原始模板细搜索子模块42中细搜索步长为1个像素,细搜索的搜索区域内每个像素位置对应的子图像(这里,每个像素位置对应的子图像指的是:以该像素位置为起始点,与原始模板的宽度和高度相等的图像块)与原始模板之间的相关系数γ(x,y)的计算公式如下:
其中,I是图像中对应于目标模板(包括大模板、小模板和原始模板)的子图像,
是此子图像的灰度均值,T是指目标模板,
是目标模板内像素的灰度均值。引进带有权重分配的图像相关计算后,改进的细搜索的搜索区域内每个像素位置对应的子图像与目标模板之间的相关系数γ′(x,y)的计算公式为:
其中,w(s,t)是指权重系数模板对应位置(s,t)的权重系数。
原始模板粗搜索子模块41找到了4个粗匹配点,由每个粗匹配点可以确定细搜索区域,原始模板细搜索子模块42就是针对所确定的细搜索区域内的所有点使用公式(6),以计算每个位置的子图像与目标模板之间的相关系数,然后从所计算出的相关系数中找到最大的一个,并保存其对应的位置点和此位置点上的子图像ST,该位置点就是可能的目标在图像中的位置点,此子图像ST用于后续更新模板。
大模板细搜索子模块43在使用原始模板细搜索子模块42所得到的位置点附近区域BNR(BNR区域是以此位置点为中心,以大模板与原始模板的宽度的差值、高度的差值之中的较大值为直径的区域),使用大模板BT进行相关系数计算,计算每个像素位置对应的子图像与大模板BT之间的相关系数,然后找出大模板BT在BNR区域内的最大相关系数及其对应的位置点以及这一点上的子图像BST。该子模块43中计算相关系数采用上述公式(5)。
小模板细搜索子模块44在使用原始模板细搜索子模块42所得到的位置点附近区域LNR(LNR区域是以此位置点为中心,以原始模板与小模板的宽度的差值、高度的差值之中的较大值为直径的区域),使用小模板LT进行相关系数计算,计算每个像素位置对应的子图像与小模板LT之间的相关系数,然后找出小模板LT在LNR区域内最大的相关系数及其对应的位置点和此点上的子图像LST。该子模块44中计算相关系数采用上述公式(5)。
所述跟踪状态判定模块105用于判定跟踪状态,输入数据是104计算的当前帧相关系数以及预先保存的上一帧相关系数,输出当前帧的跟踪状态。跟踪状态是进行后期模板更新和跟踪后处理工作的依据。所述跟踪状态包括四种状态:正常状态、一般退化状态、严重退化状态以及失败状态。正常状态代表这样一种状态:在跟踪过程中,目标变化缓慢且干扰小的状态,即,由所述相关系数及匹配位置计算模块104计算出来的相关系数很大。一般退化状态是摄像头相对于目标的角度和距离逐渐变化而导致的状态。严重退化状态是由于不可预知的原因,或者是图像采集系统的瞬时故障,或者是目标突然被完全遮挡,或者障碍物从目标位置模板窗口的边缘逐渐穿越或遮挡目标而导致的状态。失败状态是由于跟踪严重退化超过一定时间后,目标丢失,在跟踪区域内已经无法搜索到目标了而产生的状态。
按照本发明,根据最佳匹配模板与当前帧的相关系数和相关系数的变化比率,来判定跟踪状态。进入跟踪状态判定之前,使用上述相关系数及匹配位置计算模块104计算出的大模板BT、小模板LT和原始模板OT对应的三个相关系数,将这三个相关系数中最大的一个相关系数对应的目标模板(大模板BT、小模板L或原始模板OT)作为最佳匹配模板,换句话说,这个最大的相关系数就是最佳匹配模板与当前帧的相关系数。而后首先计算最佳匹配模板与上一帧的相关系数、最佳匹配模板与当前帧的相关系数,然后计算前后两个相关系数的比值,该比值就是相关系数的变化率。
所述跟踪状态判定的方法如下:
需要注意的是,在首次判断时,前一帧跟踪状态默认为跟踪正常状态。
(1)前一帧跟踪为正常状态。
如果相关系数的变化率小于预定的低阈值,则认为相关系数下降很大,跟踪进入严重退化状态。如果相关系数的变化率大于所述预定的低阈值并小于预定的高阈值,则认为跟踪进入一般退化状态。如果相关系数的变化率大于所述预定的高阈值,若此时模板的相关系数小于所述预定的低阈值,则认为跟踪进入严重退化状态,若此时模板的相关系数大于所述预定的低阈值并小于所述预定的高阈值,则认为跟踪进入一般退化状态;若此时模板的相关系数大于所述预定的高阈值,则认为跟踪进入正常状态。
(2)前一帧跟踪为一般退化状态。
如果相关系数的变化率小于所述预定的低阈值,或者模板的相关系数小于所述预定的低阈值,则认为跟踪进入严重退化状态。如果模板的相关系数大于所述预定的高阈值,则认为跟踪进入正常状态。其他情况下,如果连续两次的一般退化跟踪状态下的模板更新都没有使跟踪回到正常状态,则认为跟踪进入严重退化状态,否则跟踪一直保持一般退化状态。
(3)前一帧跟踪为严重退化状态。
如果当前帧模板的相关系数大于所述预定的高阈值,则认为跟踪进入正常状态;如果模板的相关系数大于所述预定的低阈值并小于所述预定的高阈值,则认为跟踪进入一般退化状态。其他情况下,则认为跟踪保持严重退化状态。
此外,如果跟踪处于严重退化状态的持续时间超过预定的时间阈值而没有回到正常状态,则认为跟踪进入失败状态。
所述PTZ跟踪结束判断模块106用于判断PTZ跟踪是否结束。按照本发明的实施方式,PTZ跟踪结束判断模块106根据跟踪状态判定模块105中跟踪状态的判定结果,判断PTZ跟踪是否结束。如果跟踪处于正常状态或者一般退化状态或者严重退化状态,则进行相应的后处理工作;如果跟踪属于失败状态,则结束此次PTZ跟踪。
按照本发明的优选实施方式,如果跟踪状态判定模块105中得出判定状态为正常状态,若此时最佳匹配模板为大模板BT或者小模板LT,则所述模板更新模块107将模板更新标志置1(模板更新标志为一个独立的全局数据,标识是否应该更新模板数据),从而需要把当前帧的最佳匹配模板更新为下一帧计算时的原始模板OT,并使用二次线性插值方法重新计算下一帧的大模板BT和小模板LT以及它们所对应的权重模板WT;如果跟踪状态判定模块105判定跟踪状态为一般退化,则此时无论最佳匹配模板是原始模板OT还是大模板BT或小模板LT,所述模板更新模块107均要置模板更新标志为1,表示需要进行模板更新,在模板更新的时候,如果最佳匹配模板是原始模板OT,则选择预存的子图像ST更新原始模板OT,如果最佳匹配模板为大模板BT,则子图像BST更新原始模板OT,若最佳匹配模板为小模板LT,则子图像LST更新原始模板OT,更新完原始模板OT后,使用二次线形插值方法计算大模板BT和小模板LT,并计算出各模板对应的权重模板WT;其余的跟踪状态下,所述模板更新模块107不更改模板更新标志,即不对模板进行更新。
所述目标位置预测模块108用于预测下一帧目标位置。按照本发明的实施方式,所述目标位置预测模块108将当前帧的最佳匹配位置作为下一帧确定跟踪区域时的中心位置点,将本帧最佳匹配模板的宽度和高度作为目标的宽度和高度,以此来确定下一帧跟踪区域TR,并且将所确定的下一帧跟踪区域TR反馈给跟踪区域提取模块103。按照本发明的实施方式,在开始处理时,对于第一帧,也就是初始帧,模块103根据从模块101所获取的目标区域中心位置点和目标区域宽度和高度,输出跟踪匹配区域TR;接着,对于第二帧以及以后的帧,模块103直接获取模块108输出的跟踪匹配区域TR,进而构成循环。
PTZ命令计算和输出模块109用于根据模块104当前帧所计算出的目标在视场里所处的位置点,计算目标与视场中心点的矢量距离,得出PTZ高速球的运动方向以及运动速率,并按照PTZ高速球的控制协议,形成控制PTZ高速球运动的指令,并发送给PTZ高速球。
图5是按照本发明的视频图像中进行PTZ单目标自动跟踪的方法的流程图。如图5所示,该方法包括步骤:步骤S1,选择PTZ跟踪目标的ID;步骤S2,根据所选择的PTZ跟踪目标的ID提取目标的原始模板并根据所述原始模板形成PTZ跟踪所需其它模板;步骤S3,根据所选择的PTZ跟踪目标的ID提取视频图像帧中的跟踪区域;步骤S4,计算所述原始模板和PTZ跟踪所需模板与所述跟踪区域的相关系数及匹配位置;步骤S5,选择最佳匹配模板并且根据最佳匹配模板与当前视频图像帧的相关系数和相关系数的变化比率判定跟踪状态;步骤S6,根据所述跟踪状态判断是否结束PTZ跟踪,如果不结束PTZ跟踪,则输出所述原始模板、所述PTZ跟踪所需其它模板、所述原始模板和PTZ跟踪所需模板与所述跟踪区域的匹配位置、所述最佳匹配模板;步骤S7,根据所判定的跟踪状态为下一视频图像帧更新模板;步骤S8,预测下一帧目标位置;和步骤S9,根据当前帧所计算出的目标在视场里所处的位置点、与视场中心点的矢量距离,得出PTZ高速球的运动方向以及运动速率,并按照PTZ高速球的控制协议,形成控制PTZ高速球运动的指令,并发送给PTZ高速球。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,应当理解,本发明并不限于这里所描述的实现方案,这些实现方案描述的目的在于帮助本领域中的技术人员实践本发明。任何本领域中的技术人员很容易在不脱离本发明精神和范围的情况下进行进一步的改进和完善,因此本发明只受到本发明权利要求的内容和范围的限制,其意图涵盖所有包括在由所附权利要求所限定的本发明精神和范围内的备选方案和等同方案。