发明内容
有鉴于此,本发明实施例目的在于提供一种目标跟踪方法及装置,用于在线跟踪目标。
为实现上述目的,本发明实施例提供如下技术方案:
第一方面,本发明实施例提供一种目标跟踪方法,包括:
获取跟踪目标在当前帧图像上的待跟踪区域;
在所述当前帧图像中确定多个关键点,获取每个所述关键点的位置;
基于所述每个所述关键点的位置,得到当前帧图像上的辅助跟踪区域,所述辅助跟踪区域用于辅助跟踪所述跟踪目标在后续帧上的位置;
依据所述待跟踪区域和所述辅助跟踪区域的运动轨迹,将所述待跟踪区域和所述辅助跟踪区域划分成多个群组;
对每个所述群组建立空间结构模型,根据所述空间结构模型得到所述待跟踪区域在下一帧图像中的位置。
在第一方面的第一种可行方式中,基于每个所述关键点的位置,得到当前帧图像上的辅助跟踪区域,包括:
基于每个所述关键点的位置,计算所述当前帧图像的运动矩阵;
依据所述当前帧图像的所述运动矩阵,得到所述当前帧图像的图模型;
基于所述图模型将所述关键点划分成多个集合;
为每个集合构建一个辅助跟踪区域,其中所述辅助跟踪区域的中心点的x轴坐标为所述集合内的所有关键点的x轴坐标的均值,所述辅助跟踪区域的中心点的y轴坐标为所述集合内的所有关键点的y轴坐标的均值,所述辅助跟踪区域在x轴方向的宽度为所述集合内的所有关键点的x轴坐标的标准差的N倍,所述辅助跟踪区域在y轴方向的宽度为所述集合内的所有关键点的y轴坐标的标准差的N倍,N为大于1的实数。
结合第一种可行方式,在第一方面的第二种可行方式中,基于每个所述关键点的位置,计算所述当前帧图像的运动矩阵,包括:
寻找当前帧图像中每个关键点的不变邻域,其中不变邻域是:在连续的预设数量的帧图像中每个所述关键点的第一预设个数的最近邻关键点的交集,所述最近邻关键点为距离所要寻找不变邻域的所述关键点最近的关键点;
为当前帧图像构建运动矩阵,并计算运动矩阵中每个元素Ci,j的取值,其中计算步骤包括:
如果第j个关键点属于第i个关键点的不变邻域,则其中t和t+d为第二预设时间内连续跟踪的开始帧和结束帧,表示第i个关键点在第τ帧的瞬时运动速度矢量,表示第j个关键点在第τ帧的瞬时运动速度矢量;
如果第j个关键点不属于第i个关键点的不变邻域,则Ci,j=0。
结合第二种可行方式,在第一方面的第三种可行方式中,依据所述当前帧图像的所述运动矩阵,得到当前帧图像的图模型,包括:
将当前帧图像中的所述关键点作为当前帧图像的图模型的节点;
计算任意两个节点之间的连线构成的所述图模型的边长,其中所述边长的计算步骤包括:
如果所述运动矩阵中第i行第j列的元素Ci,j和第j列第i行的元素Cj,i都大于第一阈值,则第i个关键点和第j个关键点之间的边Gij=1,图模型的边长dist(i,j)是第i个关键点和第j个关键点之间的距离,
如果所述运动矩阵中第i行第j列的元素Ci,j和/或第j列第i行的元素Cj,i小于等于第一阈值,则图模型的边长
结合第一种可行方式,在第一方面的第四种可行方式中,依据所述待跟踪区域和所述辅助跟踪区域的运动轨迹,将所述待跟踪区域和所述辅助跟踪区域划分成多个群组,包括:
计算当前帧图像上每个关键点的瞬时运动矢量,并基于所述瞬时运动矢量,计算每个所述关键点与第二预设个数的最近邻关键点之间的运动相关性,其中最近邻关键点是:在连续的预设数量的帧图像中与所述关键点距离最近的关键点;
当当前帧图像上任意两个所述关键点之间的运动相关性大于第二阈值时,为大于第二阈值的两个所述关键点标记为相同的运动轨迹;
将所述待跟踪区域和所述辅助跟踪区域作为跟踪区域,并获取每个所述跟踪区域的运动轨迹,所述跟踪区域的运动轨迹为所述跟踪区域内最多关键点所标记的运动轨迹;
计算当前帧图像的连通矩阵Lt,所述连通矩阵Lt中第i行第j列元素Lt(i,j)的计算步骤为:如果第i个跟踪区域和第j个跟踪区域的运动轨迹相同,则Lt(i,j)=1,否则Lt(i,j)=0;
对第二预设时间内所有帧图像的所述连通矩阵Lt进行逐元素相加并对相加结果进行阈值化,得到当前帧图像的矩阵Lsum,矩阵Lsum中元素Lsum(i,j)的计算步骤为:如果阈值化结果大于第三阈值,则Lsum(i,j)=1,否则Lsum(i,j)=0,Lsum(i,j)=1表示第i个跟踪区域与第j个跟踪区域之间存在连接;
依据矩阵Lsum将存在连接的至少两个所述跟踪区域划分成一个群组,以得到多个群组。
结合第四种可行方式,在第一方面的第五种可行方式中,对每个所述群组建立空间结构模型,根据所述空间结构模型得到所述待跟踪区域在下一帧图像中的位置,包括:
将当前帧图像中的每个群组划分为两层,其中第1层为:当前帧图像中聚成所述群组的所述跟踪区域,第2层为:分别对每个群组中包含的关键点,以大于不变邻域中第一预设个数的数值,重新构建得到的当前帧图像上的所述跟踪区域,不变邻域中第一预设个数为计算所述第1层的跟踪区域的运动矩阵使用的数值;
对每个群组构建树型结构,所述树型结构通过对同一群组各层中的所述跟踪区域构建最小生成树,以及对同一群组不同层之间的具有重叠的跟踪区域相连接得到;
对所述树型结构进行约束,以得到所述跟踪区域在下一帧图像中的位置,对所述树型结构进行约束包括:
采用公式对所述树型结构进行表观约束,其中m表示层数,Nm为当前帧第m层的跟踪区域总数,表示第m层的第i个跟踪区域,是从中提取的视觉特征向量,是视觉特征向量训练得到的线性支持向量机的权重,在训练线性支持向量机时,正样本为当前帧第m层的跟踪区域,负样本是正样本周围随机选择的背景区域;
采用公式对所述树型结构进行层内空间约束,其中Em表示所述树型结构中第m层中相连接的跟踪区域对总数,和表示下一帧中第m层的第i个跟踪区域和第j个跟踪区域的位置坐标,为第一预设常数,为第i个跟踪区域和第j个跟踪区域之间的期望距离,的初始值为第i个跟踪区域与第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第i个跟踪区域与第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值
采用公式对所述树型结构进行层间空间约束,其中Ec表示所述树型结构中第1层和第2层之间相连接的跟踪区域对总数,和表示下一帧第1层的第i个跟踪区域和第2层相连的第j个跟踪区域的位置坐标,λij为第二预设常数,eij为第1层的第i个跟踪区域和第2层相连的第j个跟踪区域之间的期望距离,eij的初始值为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值。
第二方面,本发明实施例提供一种目标跟踪装置,包括:
第一获取单元,用于获取跟踪目标在当前帧图像上的待跟踪区域;
第二获取单元,用于在所述当前帧图像中确定多个关键点,获取每个所述关键点的位置;
第三获取单元,用于基于所述每个所述关键点的位置,得到当前帧图像上的辅助跟踪区域,所述辅助跟踪区域用于辅助跟踪所述跟踪目标在后续帧上的位置;
划分单元,用于依据所述待跟踪区域和所述辅助跟踪区域的运动轨迹,将所述待跟踪区域和所述辅助跟踪区域划分成多个群组;
跟踪单元,用于对每个所述群组建立空间结构模型,根据所述空间结构模型得到所述待跟踪区域在下一帧图像中的位置。
在第二方面的第一种可行方式中,所述第三获取单元包括:
计算子单元,用于基于每个所述关键点的位置,计算所述当前帧图像的运动矩阵;
模型建立子单元,用于依据所述当前帧图像的所述运动矩阵,得到所述当前帧图像的图模型;
划分子单元,用于基于所述图模型将所述关键点划分成多个集合;
构建子单元,用于为每个集合构建一个辅助跟踪区域,其中所述辅助跟踪区域的中心点的x轴坐标为所述集合内的所有关键点的x轴坐标的均值,所述辅助跟踪区域的中心点的y轴坐标为所述集合内的所有关键点的y轴坐标的均值,所述辅助跟踪区域在x轴方向的宽度为所述集合内的所有关键点的x轴坐标的标准差的N倍,所述辅助跟踪区域在y轴方向的宽度为所述集合内的所有关键点的y轴坐标的标准差的N倍,N为大于1的实数。
结合第一种可行方式,在第一方面的第二种可行方式中,所述计算子单元包括:
获取子单元,用于寻找当前帧图像中每个关键点的不变邻域,其中不变邻域是:在连续的预设数量的帧图像中每个所述关键点的第一预设个数的最近邻关键点的交集,所述最近邻关键点为距离所要寻找不变邻域的所述关键点最近的关键点;
元素取值计算子单元,用于为当前帧图像构建运动矩阵,并计算运动矩阵中每个元素Ci,j的取值,其中计算步骤包括:如果第j个关键点属于第i个关键点的不变邻域,则其中t和t+d为第二预设时间内连续跟踪的开始帧和结束帧,表示第i个关键点在第τ帧的瞬时运动速度矢量,表示第j个关键点在第τ帧的瞬时运动速度矢量;如果第j个关键点不属于第i个关键点的不变邻域,则Ci,j=0。
结合第二种可行方式,在第二方面的第三种可行方式中,所述模型建立子单元包括:
节点获取子单元,用于将当前帧图像中的所述关键点作为当前帧图像的图模型的节点;
边长计算子单元,用于计算任意两个节点之间的连线构成的所述图模型的边长,所述边长的计算步骤包括:
如果所述运动矩阵中第i行第j列的元素Ci,j和第j列第i行的元素Cj,i都大于第一阈值,则第i个关键点和第j个关键点之间的边Gi,j=1,图模型的边长dist(i,j)是第i个关键点和第j个关键点之间的距离,
如果所述运动矩阵中第i行第j列的元素Ci,j和/或第j列第i行的元素Cj,i小于等于第一阈值,则图模型的边长
结合第一种可行方式,在第二方面的第四种可行方式中,所述划分单元包括:
第一计算子单元,用于计算当前帧图像上每个关键点的瞬时运动矢量,并基于所述瞬时运动矢量,计算每个所述关键点与第二预设个数的最近邻关键点之间的运动相关性,其中最近邻关键点是:在连续的预设数量的帧图像中与所述关键点距离最近的关键点;
标记子单元,用于当当前帧图像上任意两个所述关键点之间的运动相关性大于第二阈值时,为大于第二阈值的两个所述关键点标记为相同的运动轨迹;
轨迹获取子单元,用于将所述待跟踪区域和所述辅助跟踪区域作为跟踪区域,并获取每个所述跟踪区域的运动轨迹,所述跟踪区域的运动轨迹为所述跟踪区域内最多关键点所标记的运动轨迹;
第二计算子单元,用于计算当前帧图像的连通矩阵Lt,所述连通矩阵Lt中第i行第j列元素Lt(i,j)的计算步骤为:如果第i个跟踪区域和第j个跟踪区域的运动轨迹相同,则Lt(i,j)=1,否则Lt(i,j)=0;
第三计算子单元,用于对第二预设时间内所有帧图像的所述连通矩阵Lt进行逐元素相加并对相加结果进行阈值化,得到当前帧图像的矩阵Lsum,矩阵Lsum中元素Lsum(i,j)的计算步骤为:如果阈值化结果大于第三阈值,则Lsum(i,j)=1,否则Lsum(i,j)=0,Lsum(i,j)=1表示第i个跟踪区域与第j个跟踪区域之间存在连接;
划分子单元,用于依据矩阵Lsum将存在连接的至少两个所述跟踪区域划分成一个群组,以得到多个群组。
结合第四种可行方式,在第二方面的第五种可行方式中,所述跟踪单元包括:
群组分层子单元,用于将当前帧图像中的每个群组划分为两层,其中第1层为:当前帧图像中聚成所述群组的所述跟踪区域,第2层为:分别对每个群组中包含的关键点,以大于不变邻域中第一预设个数的数值,重新构建得到的当前帧图像上的所述跟踪区域,不变邻域中第一预设个数为计算所述第1层的跟踪区域的运动矩阵使用的数值;
结构构建子单元,用于对每个群组构建树型结构,所述树型结构通过对同一群组各层中的所述跟踪区域构建最小生成树,以及对同一群组不同层之间的具有重叠的跟踪区域相连接得到;
跟踪子单元,用于对所述树型结构进行约束,以得到所述跟踪区域在下一帧图像中的位置,对所述树型结构进行约束包括:
采用公式对所述树型结构进行表观约束,其中m表示层数,Nm为当前帧第m层的跟踪区域总数,表示第m层的第i个跟踪区域,是从中提取的视觉特征向量,是视觉特征向量训练得到的线性支持向量机的权重,在训练线性支持向量机时,正样本为当前帧第m层的跟踪区域,负样本是正样本周围随机选择的背景区域;
采用公式对所述树型结构进行层内空间约束,其中Em表示所述树型结构中第m层中相连接的跟踪区域对总数,和表示下一帧中第m层的第i个跟踪区域和第j个跟踪区域的位置坐标,为第一预设常数,为第i个跟踪区域和第j个跟踪区域之间的期望距离,的初始值为第i个跟踪区域与第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第i个跟踪区域与第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值
采用公式对所述树型结构进行层间空间约束,其中Ec表示所述树型结构中第1层和第2层之间相连接的跟踪区域对总数,和表示下一帧第1层的第i个跟踪区域和第2层相连的第j个跟踪区域的位置坐标,λij为第二预设常数,eij为第1层的第i个跟踪区域和第2层相连的第j个跟踪区域之间的期望距离,eij的初始值为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值。
从上述的技术方案可以看出,本发明实施例可以首先在当前帧图像上获取跟踪目标的待跟踪区域和用于辅助跟踪的辅助跟踪区域,依据待跟踪区域和辅助跟踪区域的运动轨迹,将待跟踪区域和辅助跟踪区域划分成多个群组,再对每个群组建立空间结构模型,根据空间结构模型得到待跟踪区域在下一帧图像中的位置,在得到待跟踪区域在下一帧图像中的位置后,位于待跟踪区域内的跟踪目标在下一帧图像中的位置也被得到。相对于现有基于模型的目标跟踪方法来说,本发明实施例提供的目标跟踪方法无需离线训练,从而实现在线跟踪。
具体实施方式
为了使本领域技术人员更好地理解本发明实施例,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的目标跟踪方法的一种流程图,该目标跟踪方法用于对跟踪目标进行在线跟踪,可以包括以下步骤:
101:获取跟踪目标在当前帧图像上的待跟踪区域。其中跟踪目标是当前帧图像上需要进行位置跟踪的对象,待跟踪区域是跟踪目标在当前帧图像上的所占区域,可以从当前帧图像开始跟踪所述跟踪目标在后续帧上的位置。
后续帧是在当前帧图像之后获取到的多帧图像,后续帧可以是预先指定的预设数量的图像,后续帧也可以是当前所要跟踪的在线视频中,从当前帧图像开始到在线视频播放结束之间的图像。
在本发明实施例中,待跟踪区域的一种方式是手工定位。例如在具有摄像装置的显示终端上,可以手动操作显示终端的触摸屏,用手指划定跟踪目标的待跟踪区域。在手工定位待跟踪区域过程中,还可以借助于按键来定位,具体可以是:当显示终端检测到手指指定跟踪目标时,在触摸屏上跟踪目标的中心位置显示一个方框表示的初始区域,然后检测用于控制方框变大和变小的两个按键,以及检测用于控制方框位置的四个方向按键,当检测到相应按键被操作时,显示终端执行相应操作来控制方框,并最终将方框框住跟踪目标,此时方框所框住的区域即为待跟踪区域。
待跟踪区域的另一种方式是自动定位,其实现过程是:首先预先用某一种尺度获取跟踪目标的大量样本为正样本,非跟踪目标的大量样本为负样本,通过模式识别方法(例如支持向量机)对正负样本进行训练得到用于区分跟踪目标与非跟踪目标的分类器;其次采用不同尺度对跟踪目标所在当前帧图像进行区域划分,并将得到的不同尺度区域缩放到与训练时采用的尺度区域;然后用分类器识别出包括跟踪目标的区域,将其作为待跟踪区域。
需要说明的是:本发明实施例在训练得到分类器和采用分类器自动定位待跟踪区域时,应该针对同一个跟踪目标在同一个应用场景,比如当跟踪目标的应用场景是运动员在操场踢球,如图2所示,则训练得到分类器时采用的样本是采样该运动员以前在操场踢球的帧图像中的样本。如2所示当前帧图像在经过手工定位和自动定位后得到的待跟踪区域如图3所示,其中图3中方框所框住的区域为待跟踪区域,其所包括的对象为跟踪目标。
102:在当前帧图像中确定多个关键点,获取每个关键点的位置。在本发明实施例中,关键点是图像中具有显著视觉特征的点,比如图像中的角点、边缘点等。关键点的确定及位置获取可以通过现有算法,如KLT(Kanade-Lucas-Tomasi,关键点跟踪)算法,其算法过程如下:
首先,预先设定在当前帧图像中要确定的关键点个数M,其中M是一经验值,在跟踪目标所在场景较复杂的情况下,M的取值较大;在跟踪目标所在场景较简单的情况下,M的取值较小。一般情况下,当前帧图像中的每个对象上至少要有三个关键点;
其次,获取当前帧图像之前连续的预设数量的帧图像,如当前帧图像为第t+d帧,之前预设数帧图像为t+d-1帧、t+d-2帧、……、第t帧,即获取当前帧图像之前连续的d帧图像,d优选为10。从第t帧图像自动检测关键点,并将检测到的关键点按照特征的显著程度进行排序,从中选取特征最显著的前M个关键点作为初始化的关键点集合,其中显著程度是KLT算法中用于衡量关键点重要性的一个特征量,对此不再过多阐述;
然后,优化关键点集合:计算关键点集合中各个关键点在第t+1帧图像中的位置以及各个关键点在第t帧和第t+1帧之间的匹配程度,如果匹配程度小于匹配阈值(关键点被遮挡会导致匹配程度降低),则丢弃匹配程度小于匹配阈值的关键点,并重新在第t+1帧上自动检测关键点,在检测到的关键点中选取特征最显著的关键点加入到关键点集合中,以保证关键点集合中关键点个数为M;
对后续第t+2帧至第t+d帧图像依次执行优化关键点集合这一步骤,从而依据相邻两帧图像中关键点的匹配程度优化关键点集合,得到第t+d帧图像上的关键点以及每个关键点的位置,即得到当前帧图像上的关键点及每个关键点的位置,如图4所示,关键点跟踪优化从第t帧开始至第t+d帧为止,其示出了从第t帧至第t+d帧关键点的变化,图中的圆点为关键点。
103:基于每个关键点的位置,得到当前帧图像上的辅助跟踪区域,辅助跟踪区域用于辅助跟踪所述跟踪目标在后续帧上的位置。
104:依据待跟踪区域和辅助跟踪区域的运动轨迹,将待跟踪区域和辅助跟踪区域划分成多个群组。
在本发明实施例中,待跟踪区域的运动轨迹可以由跟踪目标的运动轨迹决定,辅助跟踪区域的运动轨迹可以由位于该辅助跟踪区域的关键点的运动轨迹决定,跟踪目标的运动轨迹和关键点的运动轨迹可以由运动方向和运动速度指示。
在将待跟踪区域和辅助跟踪区域进行划分时,可以将具有相同运动轨迹的区域划分至一个群组中以得到多个群组,也可以综合考虑多帧图像中待跟踪区域和辅助跟踪区域的运动轨迹进行划分,具体过程可以参阅后续对步骤104的详细说明。
105:对每个群组建立空间结构模型,根据空间结构模型得到待跟踪区域在下一帧图像中的位置,其中下一帧图像是在当前帧图像之后捕获到的图像,是从捕获时间来看与当前帧图像相邻且位于当前帧图像之后的图像。
对于待跟踪目标来说,待跟踪区域内仅包括跟踪目标,因此在得到待跟踪区域在下一帧图像中的位置后,位于待跟踪区域内的跟踪目标的位置也可以得到,并且可以将待跟踪区域在下一帧图像中的位置作为跟踪目标在下一帧图像中的位置。
在本发明实施例中,每个群组的空间结构模型可以采用现有算法建立,再利用现有动态规划算法对空间结构模型进行约束以得到待跟踪区域在下一帧图像中的位置,其中空间结构模型是得到每个群组内待跟踪区域和辅助跟踪区域的两层空间图形来展示每个群组内待跟踪区域和辅助跟踪区域的位置关系,其中两层空间图形包括:第1层待跟踪区域、第1层辅助跟踪区域、第2层待跟踪区域和第2层辅助跟踪区域。
在利用动态规划算法对空间结构模型进行约束时,可以采用循环迭代方式对空间结构模型中群组的两层空间图形进行层内优化和层间优化。进一步在进行层内优化和层间优化时,可以首先优化群组的第1层,然后将优化后的第1层的位置进行固定,再优化第1层和第2层的层间关系。由于在进行层内优化时省去了第2层的优化,所以降低了优化量,节省优化时间。
本发明实施例可以首先在当前帧图像上获取跟踪目标的待跟踪区域和用于辅助跟踪的辅助跟踪区域,依据待跟踪区域和辅助跟踪区域的运动轨迹,将待跟踪区域和辅助跟踪区域划分成多个群组,再对每个群组建立空间结构模型,根据空间结构模型得到待跟踪区域在下一帧图像中的位置,在得到待跟踪区域在下一帧图像中的位置后,位于待跟踪区域内的跟踪目标在下一帧图像中的位置也被得到。相对于现有基于模型的目标跟踪方法来说,本发明实施例提供的目标跟踪方法可以在在线视频的当前帧图像上进行操作,实现在线跟踪。
在跟踪到跟踪目标在下一帧图像中的位置后,还需要对跟踪目标继续跟踪以得到跟踪目标在后续帧中的位置,在进行后续跟踪时可以将下一帧图像作为当前帧图像,基于得到的待跟踪区域和辅助跟踪区域在下一帧图像中的位置,执行步骤104和105,以得到跟踪目标在后续帧中的位置。后续帧是在当前帧图像之后获取到的多帧图像,后续帧可以是预先指定的预设数量的图像,后续帧也可以是当前所要跟踪的在线视频中,从当前帧图像开始到在线视频播放结束之间的图像,在跟踪次数等于待跟踪图像的数量时,结束跟踪,如图5所示,在图1基础上还包括:
步骤106:获取跟踪次数,其中跟踪次数指示已对跟踪目标的位置进行评估的次数。
步骤107:判断跟踪次数是否等于待跟踪图像的数量,如果否执行步骤104和105,如果是执行结束跟踪。
当跟踪次数等于待跟踪图像的数量时,表明已获取到跟踪目标在所有待跟踪图像中的位置,此时则可以结束跟踪;当跟踪次数小于待跟踪图像的数量时,表明仍需要继续进行跟踪,此时会继续执行步骤104和105以得到跟踪目标在剩余的待跟踪图像中的位置。
其中待跟踪图像的数量是所要跟踪图像的总数量,其可以是预先指定的某一数值,也可以是当前所跟踪的在线视频的总帧数,对此本发明实施路不再阐述。
需要说明的一点是:本发明实施例提供的目标跟踪方法虽然可以评估出跟踪目标在后续帧的位置,但是相对于跟踪目标在后续帧中的实际位置来说有一定的误差,因此为了避免误差累积,在反复执行步骤104和105一段时间后需要重新获取跟踪目标的待跟踪区域,如图6所示,本发明实施例提供的目标跟踪方法还包括:
当跟踪次数小于待跟踪图像的数量时,执行步骤108;
108:判断执行时间是否等于第一预设时间,如果否,继续执行步骤104和105;如果是,返回执行步骤101。
其中第一预设时间用于指示需要重新获取跟踪目标的待跟踪区域,且重新获取的待跟踪区域与之前获取的待跟踪区域位于不同的图像中,重新获取的待跟踪区域位于第一预设时间后的某帧图像上。第一预设时间的取值至少与所要求的跟踪精度有关,当跟踪精度要求越高,第一预设时间取值越小;当跟踪精度要求较低,第一预设时间取值越大。
经过上述图5和图6所示的目标跟踪方法,可以跟踪到跟踪目标在后续帧中的位置,并且在跟踪过程中重新获取跟踪目标在某帧图像上的实际位置,可以提高重新获取实际位置后在后续跟踪的精度。
下面则详细介绍本发明实施例提供的目标跟踪方法中的步骤103至步骤105,请参阅图7,其示出了本发明实施例提供的目标跟踪方法中步骤103的流程图,可以包括以下步骤:
1031:基于每个关键点的位置,计算当前帧图像的运动矩阵。其中当前帧图像的运动矩阵中元素Ci,j的取值的决定因素之一为:关键点之间在当前帧图像和当前帧图像之前连续的预设数量的帧图像的位置关系,该位置关系可以为关键点的不变邻域。
不变邻域是:在连续的预设数量的帧图像中每个关键点的第一预设个数的最近邻关键点的交集,最近邻关键点为距离所要寻找不变邻域的关键点最近的关键点,在本发明实施例中第一预设个数优选为10。
连续的预设数量的帧图像为在执行步骤102确定关键点是所参考的帧图像,即获取当前帧图像之前的d帧图像,预设数量优选为10。
在查找不变邻域时可以以当前帧图像的某个关键点为寻找点,从d帧图像中获取离该寻找点距离最近的第一预设个数的关键点,且第一预设个数的关键点全部存在于d帧图像中,则这第一预设个数的关键点的交集为寻找点的不变邻域。
在寻找到不变邻域后,计算运动矩阵中每个元素Ci,j的取值,其中计算步骤包括:
如果第j个关键点属于第i个关键点的不变邻域,则其中t和t+d为第二预设时间内连续跟踪的开始帧和结束帧,表示第i个关键点在第τ帧的瞬时运动速度矢量,表示第j个关键点在第τ帧的瞬时运动速度矢量;如果第j个关键点不属于第i个关键点的不变邻域,则Ci,j=0。
瞬时运动速度矢量是一个关键点在相邻两帧上的位置差。如关键点在τ帧上的位置是(x1,y1),关键点在τ-1帧的位置为(x0,y0),则瞬时运动速度矢量是(x1-x0,y1-y0)。
1032:依据当前帧图像的运动矩阵,得到当前帧图像的图模型。其中图模型的节点为当前帧图像中的关键点,任意两个节点之间的连线构成图模型的边长,边长的计算步骤如下:
如果运动矩阵中第i行第j列的元素Ci,j和第j列第i行的元素Cj,i都大于第一阈值,则第i个关键点和第j个关键点之间的边Gi,j=1,图模型的边长dist(i,j)是第i个关键点和第j个关键点之间的距离,如果运动矩阵中第i行第j列的元素Ci,j和/或第j列第i行的元素Cj,i小于等于第一阈值,则图模型的边长第一阈值为一经验值,具体取值可以基于应用场景设定,取值范围可以在(0.5,1)区间内,优选为0.8。
1033:基于所述图模型将所述关键点划分成多个集合。
本发明实施例对关键点进行划分时可以采用现有的基于图模型的聚类方法对关键点进行划分。在进行划分时首先将图模型中的作为节点的每个关键点各自划分为一类,并迭代计算任意两个类之间的密切程度,然后将密切程度最高的两个类划分为一个集合,当聚集度达到最大时,停止聚类,将当前聚类的结果当作划分的结果,得到划分后的多个集合。其中类间的密切程度根据构建的图模型的边进行计算,聚集度同样基于构建的图模型的边进行计算。
1034:为每个集合构建一个辅助跟踪区域,其中所述辅助跟踪区域的中心点的x轴坐标为所述集合内的所有关键点的x轴坐标的均值,所述辅助跟踪区域的中心点的y轴坐标为所述集合内的所有关键点的y轴坐标的均值,所述辅助跟踪区域在x轴方向的宽度为所述集合内的所有关键点的x轴坐标的标准差的N倍,所述辅助跟踪区域在y轴方向的宽度为所述集合内的所有关键点的y轴坐标的标准差的N倍,N为大于1的实数。
在本发明实施例中N优选为2,如图8所示,图8为N等于2时得到的辅助跟踪区域,其中圆角矩形框住的为待跟踪区域,方角矩形框住的区域为辅助跟踪区域。
请参阅图9,其示出了本发明实施例提供的目标跟踪方法中步骤104的流程图,可以包括以下步骤:
1041:计算当前帧图像上每个关键点的瞬时运动矢量,并基于瞬时运动矢量,计算每个关键点与第二预设个数的最近邻关键点之间的运动相关性,其中最近邻关键点是:在连续的预设数量的帧图像中与所述关键点距离最近的关键点,在本发明实施例中第二预设个数优选为20。
连续的预设数量的帧图像为在执行步骤102确定关键点是所参考的帧图像,即获取当前帧图像之前的d帧图像,预设数量优选为10。
瞬时运动速度矢量是一个关键点在相邻两帧上的位置差。如关键点在τ帧上的位置是(x1,y1),关键点在τ-1帧的位置为(x0,y0),则瞬时运动速度矢量是(x1-x0,y1-y0)。运动相关性则是指两个关键点之间速度大小和方向的相似性,可以采用瞬时运动速度矢量之间的夹角余弦值表示。
1042:当当前帧图像上任意两个关键点之间的运动相关性大于第二阈值时,为大于第二阈值的两个关键点标记为相同的运动轨迹。第二阈值为一经验值,具体取值可以基于应用场景设定,例如第二阈值取值范围为(0.02,0.04)这一区间范围,对此本发明实施例不加以限制。
1043:将待跟踪区域和辅助跟踪区域作为跟踪区域,并获取每个跟踪区域的运动轨迹,跟踪区域的运动轨迹为跟踪区域内最多关键点所标记的运动轨迹。
比如某个跟踪区域中包括十个关键点,其中有两个关键点的运动轨迹为第一种运动轨迹,三个关键点的运动轨迹为第二种运动轨迹,五个关键点的运动轨迹为第三种运动轨迹,那么就取最多关键点标记的运动轨迹作为这个跟踪区域的运动轨迹,即第三种运动轨迹。
1044:计算当前帧图像的连通矩阵Lt,连通矩阵Lt中第i行第j列元素Lt(i,j)的计算步骤为:如果第i个跟踪区域和第j个跟踪区域的运动轨迹相同,则Lt(i,j)=1,否则Lt(i,j)=0。
1045:对第二预设时间内所有帧图像的连通矩阵Lt进行逐元素相加并对相加结果进行阈值化,得到当前帧图像的矩阵Lsum,矩阵Lsum中元素Lsum(i,j)的计算步骤为:如果阈值化结果大于第三阈值,则Lsum(i,j)=1,否则Lsum(i,j)=0,Lsum(i,j)=1表示第i个跟踪区域与第j个跟踪区域之间存在连接。
其中第三阈值的选取与第二预设时间内的图像总帧数有关,优选为0.7*(d+1),d+1为第二预设时间内的图像总帧数,d为在第二预设时间内除当前帧图像之外,当前侦图像之前连续的预设数量的帧图像,在获取当前图像的矩阵Lsum所使用的第二预设时间内所有帧图像与步骤1031中寻找不变邻域所用到的所有帧图像相同。
1046:依据矩阵Lsum将存在连接的至少两个所述跟踪区域划分成一个群组,以得到多个群组。
在本发明实施例中,图8所示图像经过图9所示流程处理后,得到的群组示意图如图10所示,其中不同线条所示方框代表不同群组,这样存在连接的至少两个跟踪区域聚成一个群组。
请参阅图11,其示出了本发明实施例提供的目标跟踪方法中步骤105的流程图,可以包括以下步骤:
1051:将当前帧图像中的每个群组划分为两层,其中第1层为:当前帧图像中聚成群组的跟踪区域,第2层为:对每个群组中包含的关键点以大于不变邻域中第一预设个数的数值,重新构建得到的当前帧图像上的跟踪区域,不变邻域中第一预设个数为计算第1层的跟踪区域的运动矩阵使用的数值。在本发明实施例中第2层优选采用20个关键点重新构建跟踪区域。
经过上述群组的分层处理后,一帧图像被划分为两层,且第2层中跟踪区域的尺度大于第1层中跟踪区域的尺度,如图12所示,其示出了图10所示群组经过1051处理后得到的群组分层结果,从图12可以看出,第1层中相邻的跟踪区域容易被遮挡,而在第2层中相邻的跟踪区域被划分至一个跟踪区域中,解决跟踪区域彼此遮挡的问题,使得第2层中的跟踪区域(尺度大的跟踪区域)对遮挡具有更好的容忍度。
1052:对每个群组构建树型结构,所述树型结构通过对同一群组各层中的跟踪区域构建最小生成树,以及对同一群组不同层之间的具有重叠的跟踪区域相连接得到。在本发明实施例中,可利用现有技术,如kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法构建最小生成树,图12所示群组分层所构建的最小生成树如图13所示。
并对图13所示最小生成树进行同群组不同层之间的重叠的跟踪区域相连接,得到的树型结构如图14所示。
1053:采用公式对树型结构进行表观约束,其中m表示层数,Nm为当前帧第m层的跟踪区域总数,表示第m层的第i个跟踪区域,是从中提取的视觉特征向量,是视觉特征向量训练得到的线性支持向量机的权重,在训练线性支持向量机时,正样本为当前帧第m层的跟踪区域,负样本是正样本周围随机选择的背景区域。
1054:采用公式对树型结构进行层内空间约束,其中Em表示树型结构中第m层中相连接的跟踪区域对总数,和表示下一帧中第m层的第i个跟踪区域和第j个跟踪区域的位置坐标,为第一预设常数,优选取值为0.001,为第i个跟踪区域和第j个跟踪区域之间的期望距离,的初始值为第i个跟踪区域与第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第i个跟踪区域与第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值。
1055:采用公式对树型结构进行层间空间约束,其中Ec表示树型结构中第1层和第2层之间相连接的跟踪区域对总数,和表示下一帧第1层的第i个跟踪区域和第2层相连的第j个跟踪区域的位置坐标,λij为第二预设常数,优选取值为0.001,eij为第1层的第i个跟踪区域和第2层相连的第j个跟踪区域之间的期望距离,eij的初始值为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值。
上述步骤1053至1055给出对树型结构的约束过程,通过上述约束过程中的公式可以得到跟踪区域在下一帧图像中的位置,而待跟踪区域为一个跟踪区域,跟踪目标位于待跟踪区域中,因此在得到跟踪区域在下一帧图像中的位置后即得到跟踪目标在下一帧图像中的位置。
在采用上述步骤1053至1055对树型结构进行优化时,可以忽略对第2层跟踪区域的层内优化,将优化后的第1层跟踪区域的位置进行固定,优化第1层跟踪区域和第2层跟踪区域之间的层间关系以完成对第2层跟踪区域的优化,这样可以降低优化量。
利用本发明实施例提供的目标跟踪方法对图2所示的真实场景进行跟踪,不同时间下跟踪结果可以参阅图15至18所示,其中图15至图18为按时间顺序抽取的前后四帧图像的跟踪结果,并且为了清楚显示跟踪结果仅给出了第1层辅助跟踪区域,圆角方框并填充灰色的部分表示跟踪目标的待跟踪区域,其它方框表示第1层的辅助跟踪区域,不同跟踪区域之间的连线表示不断演化的群组及层内的树型结构。从图15至图18可以看出在跟踪目标具有遮挡、跟踪目标与其他目标之间外观十分接近、角度等原因引起跟踪目标外观经常变化的情况下,采用本发明实施例提供的目标跟踪方法依然能得到准确的跟踪结果。
以Error(跟踪位置像素误差)和Recall(跟踪正确率,跟踪区域有50%以上和真实区域有重叠,就认为跟踪正确)作为实验指标。本发明实施例提供的目标跟踪方法的单目标跟踪Error约4.5个像素,比现有技术中的最好结果精确约19个像素;本发明实施例提供的目标跟踪方法的单目标跟踪Recall约92%,比现有技术中的最好结果提高30%。本发明实施例提供的目标跟踪方法的多目标跟踪平均Error约5.7个像素,比现有技术中的最好结果精确约10个像素;本发明实施例提供的目标跟踪方法的多目标跟踪平均Recall约89%,比现有技术中的最好结果提高16%。
与上述方法实施例相对应,本发明实施例还提供一种目标跟踪装置,其结构示意图如图19所示,可以包括:第一获取单元11、第二获取单元12、第三获取单元13、划分单元14和跟踪单元15。其中,
第一获取单元11,用于获取跟踪目标在当前帧图像上的待跟踪区域。其中跟踪目标是当前帧图像上需要进行位置跟踪的对象,待跟踪区域是跟踪目标在当前帧图像上的所占区域,可以从当前帧图像开始跟踪跟踪目标在后续帧上的位置。后续帧是在当前帧图像之后获取到的多帧图像,后续帧可以是预先指定的预设数量的图像,后续帧也可以是当前所要跟踪的在线视频中,从当前帧图像开始到在线视频播放结束之间的图像。
在本发明实施例中,待跟踪区域的获取方式可以有手工定位和自动定位两种,具体可以参阅方法部分说明,对此装置实施例不再详述。
第二获取单元12,用于在当前帧图像中确定多个关键点,获取每个关键点的位置。在本发明实施例中,关键点是图像中具有显著视觉特征的点,比如图像中的角点、边缘点等。关键点的确定及位置获取可以通过现有算法,如KLT(Kanade-Lucas-Tomasi,关键点跟踪)算法,其算法过程如下:
首先,预先设定在当前帧图像中要确定的关键点个数M,其中M是一经验值,在跟踪目标所在场景较复杂的情况下,M的取值较大;在跟踪目标所在场景较简单的情况下,M的取值较小。一般情况下,当前帧图像中的每个对象上至少要有三个关键点;
其次,获取当前帧图像之前连续的预设数量的帧图像,如当前帧图像为第t+d帧,之前预设数帧图像为t+d-1帧、t+d-2帧、……、第t帧,即获取当前帧图像之前连续的d帧图像,d优选为10。从第t帧图像自动检测关键点,并将检测到的关键点按照特征的显著程度进行排序,从中选取特征最显著的前M个关键点作为初始化的关键点集合,其中显著程度是KLT算法中用于衡量关键点重要性的一个特征量,对此不再过多阐述;
然后,优化关键点集合:计算关键点集合中各个关键点在第t+1帧图像中的位置以及各个关键点在第t帧和第t+1帧之间的匹配程度,如果匹配程度小于匹配阈值(关键点被遮挡会导致匹配程度降低),则丢弃匹配程度小于匹配阈值的关键点,并重新在第t+1帧上自动检测关键点,在检测到的关键点中选取特征最显著的关键点加入到关键点集合中,以保证关键点集合中关键点个数为M;
对后续第t+2帧至第t+d帧图像依次执行优化关键点集合这一步骤,从而依据相邻两帧图像中关键点的匹配程度优化关键点集合,得到第t+d帧图像上的关键点以及每个关键点的位置,即得到当前帧图像上的关键点及每个关键点的位置,如图4所示,关键点跟踪优化从第t帧开始至第t+d帧为止,其示出了从第t帧至第t+d帧关键点的变化,图中的圆点为关键点。
第三获取单元13,用于基于每个关键点的位置,得到当前帧图像上的辅助跟踪区域,辅助跟踪区域用于辅助跟踪所述跟踪目标在后续帧上的位置。
划分单元14,用于依据待跟踪区域和辅助跟踪区域的运动轨迹,将待跟踪区域和辅助跟踪区域划分成多个群组。在本发明实施例中,待跟踪区域的运动轨迹可以由跟踪目标的运动轨迹决定,辅助跟踪区域的运动轨迹可以由位于该辅助跟踪区域的关键点的运动轨迹决定,跟踪目标的运动轨迹和关键点的运动轨迹可以由运动方向和运动速度指示。
在将待跟踪区域和辅助跟踪区域进行划分时,可以将具有相同运动轨迹的区域划分至一个群组中以得到多个群组,也可以综合考虑多帧图像中待跟踪区域和辅助跟踪区域的运动轨迹进行划分。
跟踪单元15,用于对每个群组建立空间结构模型,根据空间结构模型得到待跟踪区域在下一帧图像中的位置,其中下一帧图像是在当前帧图像之后捕获到的图像,是从捕获时间来看与当前帧图像相邻且位于当前帧图像之后的图像。
对于待跟踪目标来说,待跟踪区域内仅包括跟踪目标,因此在得到待跟踪区域在下一帧图像中的位置后,位于待跟踪区域内的跟踪目标的位置也可以得到,并且可以将待跟踪区域在下一帧图像中的位置作为跟踪目标在下一帧图像中的位置。
在本发明实施例中,每个群组的空间结构模型可以采用现有算法建立,再利用现有动态规划算法对空间结构模型进行约束以得到待跟踪区域在下一帧图像中的位置,其中空间结构模型是得到每个群组内待跟踪区域和辅助跟踪区域的两层空间图形来展示每个群组内待跟踪区域和辅助跟踪区域的位置关系,其中两层空间图形包括:第1层待跟踪区域、第1层辅助跟踪区域、第2层待跟踪区域和第2层辅助跟踪区域。
在利用动态规划算法对空间结构模型进行约束时,可以采用循环迭代方式对空间结构模型中群组的两层空间图形进行层内优化和层间优化。进一步在进行层内优化和层间优化时,可以首先优化群组的第1层,然后将优化后的第1层的位置进行固定,再优化第1层和第2层的层间关系。由于在进行层内优化时省去了第2层的优化,所以降低了优化量,节省优化时间。
本发明实施例可以首先在当前帧图像上获取跟踪目标的待跟踪区域和用于辅助跟踪的辅助跟踪区域,依据待跟踪区域和辅助跟踪区域的运动轨迹,将待跟踪区域和辅助跟踪区域划分成多个群组,再对每个群组建立空间结构模型,根据空间结构模型得到待跟踪区域在下一帧图像中的位置,在得到待跟踪区域在下一帧图像中的位置后,位于待跟踪区域内的跟踪目标在下一帧图像中的位置也被得到。相对于现有基于模型的目标跟踪方法来说,本发明实施例提供的目标跟踪方法可以在在线视频的当前帧图像上进行操作,实现在线跟踪。
下面详细介绍本发明实施例提供的目标跟踪装置中第三获取单元13、划分单元14和跟踪单元15的结构,其中第三获取单元13的结构示意图请参阅图20所示,包括:计算子单元131、模型建立子单元132、划分子单元133和构建子单元134。
计算子单元131,用于基于每个关键点的位置,计算当前帧图像的运动矩阵。其中当前帧图像的运动矩阵中元素Ci,j的取值的决定因素之一为:关键点之间在当前帧图像和当前帧图像之前连续的预设数量的帧图像的位置关系,该位置关系可以为关键点的不变邻域。
不变邻域是:在连续的预设数量的帧图像中每个关键点的第一预设个数的最近邻关键点的交集,最近邻关键点为距离所要寻找不变邻域的关键点最近的关键点,在本发明实施例中第一预设个数优选为10。连续的预设数量的帧图像为在执行步骤102确定关键点是所参考的帧图像,即获取当前帧图像之前的d帧图像,预设数量优选为10。
在本发明实施例中,计算子单元131包括:获取子单元和元素取值计算子单元,其中,获取子单元,用于寻找当前帧图像中每个关键点的不变邻域,其中不变邻域是:在连续的预设数量的帧图像中每个关键点的第一预设个数的最近邻关键点的交集,最近邻关键点为距离所要寻找不变邻域的关键点最近的关键点。
元素取值计算子单元,用于为当前帧图像构建运动矩阵,并计算运动矩阵中每个元素Ci,j的取值,其中计算步骤包括:如果第j个关键点属于第i个关键点的不变邻域,则其中t和t+d为第二预设时间内连续跟踪的开始帧和结束帧,表示第i个关键点在第τ帧的瞬时运动速度矢量,表示第j个关键点在第τ帧的瞬时运动速度矢量。如果第j个关键点不属于第i个关键点的不变邻域,则Ci,j=0。
模型建立子单元132,用于依据当前帧图像的运动矩阵,得到当前帧图像的图模型。模型建立子单元包括:节点获取子单元和边长计算子单元,其中节点获取子单元,用于将当前帧图像中的关键点作为当前帧图像的图模型的节点。
边长计算子单元,用于计算任意两个节点之间的连线构成的图模型的边长,边长的计算步骤包括:如果运动矩阵中第i行第j列的元素Ci,j和第j列第i行的元素Cij都大于第一阈值,则第i个关键点和第j个关键点之间的边第j列的元素Ci,j和/或第j列第i行的元素Cj,i小于等于第一阈值,则图模型的边长第一阈值为一经验值,具体取值可以基于应用场景设定,取值范围可以在(0.5,1)区间内,优选为0.8。
划分子单元133,用于基于图模型将关键点划分成多个集合。
本发明实施例中,划分子单元133对关键点进行划分时可以采用现有的基于图模型的聚类方法对关键点进行划分。在进行划分时首先将图模型中的作为节点的每个关键点各自划分为一类,并迭代计算任意两个类之间的密切程度,然后将密切程度最高的两个类划分为一个集合,当聚集度达到最大时,停止聚类,将当前聚类的结果当作划分的结果,得到划分后的多个集合。其中类间的密切程度根据构建的图模型的边进行计算,聚集度同样基于构建的图模型的边进行计算。
构建子单元134,用于为每个集合构建一个辅助跟踪区域,其中辅助跟踪区域的中心点的x轴坐标为集合内的所有关键点的x轴坐标的均值,辅助跟踪区域的中心点的y轴坐标为集合内的所有关键点的y轴坐标的均值,辅助跟踪区域在x轴方向的宽度为集合内的所有关键点的x轴坐标的标准差的N倍,辅助跟踪区域在y轴方向的宽度为集合内的所有关键点的y轴坐标的标准差的N倍,N为大于1的实数,优选为2。
在本发明实施例中,划分单元14的结构示意图可以参阅图21,包括:第一计算子单元141、标记子单元142、轨迹获取子单元143、第二计算子单元144、第三计算子单元145和划分子单元146,其中,
第一计算子单元141,用于计算当前帧图像上每个关键点的瞬时运动矢量,并基于瞬时运动矢量,计算每个关键点与第二预设个数的最近邻关键点之间的运动相关性,其中最近邻关键点是:在连续的预设数量的帧图像中与关键点距离最近的关键点。连续的预设数量的帧图像为在执行步骤102确定关键点是所参考的帧图像,即获取当前帧图像之前的d帧图像,预设数量优选为10。
瞬时运动速度矢量是一个关键点在相邻两帧上的位置差。如关键点在τ帧上的位置是(x1,y1),关键点在τ-1帧的位置为(x0,y0),则瞬时运动速度矢量是(x1-x0,y1-y0)。运动相关性则是指两个关键点之间速度大小和方向的相似性,可以采用瞬时运动速度矢量之间的夹角余弦值表示。
标记子单元142,用于当当前帧图像上任意两个关键点之间的运动相关性大于第二阈值时,为大于第二阈值的两个关键点标记为相同的运动轨迹。第二阈值为一经验值,具体取值可以基于应用场景设定,例如第二阈值取值范围为(0.02,0.04)这一区间范围,对此本发明实施例不加以限制。
轨迹获取子单元143,用于将待跟踪区域和辅助跟踪区域作为跟踪区域,并获取每个跟踪区域的运动轨迹,跟踪区域的运动轨迹为跟踪区域内最多关键点所标记的运动轨迹。
比如某个跟踪区域中包括十个关键点,其中有两个关键点的运动轨迹为第一种运动轨迹,三个关键点的运动轨迹为第二种运动轨迹,五个关键点的运动轨迹为第三种运动轨迹,那么就取最多关键点标记的运动轨迹作为这个跟踪区域的运动轨迹,即第三种运动轨迹。
第二计算子单元144,用于计算当前帧图像的连通矩阵Lt,连通矩阵Lt中第i行第j列元素Lt(i,j)的计算步骤为:如果第i个跟踪区域和第j个跟踪区域的运动轨迹相同,则Lt(i,j)=1,否则Lt(i,j)=0。
第三计算子单元145,用于对第二预设时间内所有帧图像的连通矩阵Lt进行逐元素相加并对相加结果进行阈值化,得到当前帧图像的矩阵Lsum,矩阵Lsum中元素Lsum(i,j)的计算步骤为:如果阈值化结果大于第三阈值,则Lsum(i,j)=1,否则Lsum(i,j)=0,Lsum(i,j)=1表示第i个跟踪区域与第j个跟踪区域之间存在连接。
其中第三阈值的选取与第二预设时间内的图像总帧数有关,优选为0.7*(d+1),d+1为第二预设时间内的图像总帧数,d为在第二预设时间内除当前帧图像之外,当前侦图像之前连续的预设数量的帧图像,在获取当前图像的矩阵Lsum所使用的第二预设时间内所有帧图像与步骤1031中寻找不变邻域所用到的所有帧图像相同。
划分子单元146,用于依据矩阵Lsum将存在连接的至少两个跟踪区域划分成一个群组,以得到多个群组。
在本发明实施例中,跟踪单元15的结构示意图可以参阅图22所示,包括:群组分层子单元151、结构构建子单元152和跟踪子单元153,其中,
群组分层子单元151,用于将当前帧图像中的每个群组划分为两层,其中第1层为:当前帧图像中聚成群组的跟踪区域,第2层为:分别对每个群组中包含的关键点,以大于不变邻域中第一预设个数的数值,重新构建得到的当前帧图像上的跟踪区域,不变邻域中第一预设个数为计算第1层的跟踪区域的运动矩阵使用的数值,在本发明实施例中第2层优选采用20个关键点重新构建跟踪区域。
由于第2层跟踪区域的尺度大于第1层跟踪区域的尺度,所以当第2层可能会将第1层中相邻且存在遮挡的至少两个跟踪区域划分至同一个跟踪区域中,从而降低第2层跟踪区域的遮挡概率。
结构构建子单元152,用于对每个群组构建树型结构,树型结构通过对同一群组各层中的跟踪区域构建最小生成树,以及对同一群组不同层之间的具有重叠的跟踪区域相连接得到。在本发明实施例中,可利用现有技术,如kruskal(克鲁斯卡尔)算法或Prim(普里姆)算法构建最小生成树,图12所示群组分层所构建的最小生成树如图13所示。
跟踪子单元153,用于对树型结构进行约束,以得到跟踪区域在下一帧图像中的位置,对树型结构进行约束包括:
采用公式对树型结构进行表观约束,其中m表示层数,Nm为当前帧第m层的跟踪区域总数,表示第m层的第i个跟踪区域,是从中提取的视觉特征向量,是视觉特征向量训练得到的线性支持向量机的权重,在训练线性支持向量机时,正样本为当前帧第m层的跟踪区域,负样本是正样本周围随机选择的背景区域。
采用公式对树型结构进行层内空间约束,其中Em表示树型结构中第m层中相连接的跟踪区域对总数,和表示下一帧中第m层的第i个跟踪区域和第j个跟踪区域的位置坐标,为第一预设常数,为第i个跟踪区域和第j个跟踪区域之间的期望距离,的初始值为第i个跟踪区域与第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第i个跟踪区域与第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值
采用公式对树型结构进行层间空间约束,其中Ec表示树型结构中第1层和第2层之间相连接的跟踪区域对总数,和表示下一帧第1层的第i个跟踪区域和第2层相连的第j个跟踪区域的位置坐标,λij为第二预设常数,eij为第1层的第i个跟踪区域和第2层相连的第j个跟踪区域之间的期望距离,eij的初始值为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧图像上的距离,在后续图像帧中动态更新为第1层的第i个跟踪区域与第2层相连的第j个跟踪区域在当前帧的距离与前一次更新得到的期望距离的均值。
请参阅图23,其示出了本发明实施例提供的目标跟踪设备的结构示意图,目标跟踪设备200在硬件上可包括CPU(Central Processing Unit,中央处理单元)201和存储器202。其中,CPU201通过运行存储在存储器202内的软件程序203以及调用存储在存储器202内的数据,至少可执行如下步骤:
获取跟踪目标在当前帧图像上的待跟踪区域;
在所述当前帧图像中确定多个关键点,获取每个所述关键点的位置;
基于所述每个所述关键点的位置,得到当前帧图像上的辅助跟踪区域,所述辅助跟踪区域用于辅助跟踪所述跟踪目标在后续帧上的位置;
依据所述待跟踪区域和所述辅助跟踪区域的运动轨迹,将所述待跟踪区域和所述辅助跟踪区域划分成多个群组;
对每个所述群组建立空间结构模型,根据所述空间结构模型得到所述待跟踪区域在下一帧图像中的位置。
上述各个步骤的详细执行过程参见本文前述方法的介绍,在此不作赘述。
上述存储器具体可为DDR SDRAM(Double Data Rate SDRAM,双倍速率同步动态随机存储器)、SRAM(Static RAM,静态随机存储器)、FLASH(闪存)、SSD(Solid State Drive,固态硬盘)等,其主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统,以及至少一个功能所需的应用程序(例如上述软件程序203)等;数据存储区可存储根据CPU的执行情况而最终产生的数据,至于CPU在执行上述步骤所产生的中间数据,则存储在内存中。CPU201和存储器202可集成于同一芯片内,也可为独立的两个器件。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。