背景技术
基于视觉的目标跟踪技术(一般是指基于视频或者是图像序列的目标跟踪),是在一系列的图像中对目标物体进行检测、提取、识别和跟踪,从而获得目标物体的相关参数,如位置、速度、尺度、轨迹等;进一步根据跟踪结果进行处理和分析,实现对目标物体的行为理解,或者完成更高一级的任务。这是一个迅猛崛起的热点领域,属于计算机视觉领域的研究范畴,具有广泛的应用前景和科学研究价值。经过近二三十年的发展过程,国内外已经出现了各种跟踪算法,包括一些经典的算法以及基于这些算法的创新性算法。
根据跟踪算法的原理与技术不同,可以将这些跟踪算法分为判决模型的跟踪方法和生成模型的跟踪方法。基于判决模型的跟踪算法将跟踪问题看成是分类问题,尤其在单目标跟踪中,将跟踪问题看成是二分类问题,比较经典的分类器有SVM(Support VectorMachine)分类器,Adaboost的分类器。最近较为流行的基于分类器的算法有CSK,Struct,CT等算法。对于基于生成模型的跟踪算法而言,跟踪的目的是在邻域内寻找到与目标相似度最大的区域,实际上是寻找与目标相似度函数最大的区域,即最优化估计目标的状态,其中比较有效的经典算法有卡尔曼滤波、粒子滤波,最近较为流行的有MTT,LSK等算法。
稀疏跟踪算法是近年来发展比较迅速的一种新兴跟踪算法,属于生成模型的跟踪方法。由于算法是基于一系列的模板库得到的最终结果,因此对于光照变化、复杂环境以及姿态改变等都具有较好的鲁棒性,如文献“X.Mei and H.Ling.“Robust visual trackingCN 103440645 A using L1 minimization”.12th International Conference onComputer Vision,Kyoto,Japan,2009(1436-1443).”但是,由于模板库往往采用目标的整体模板作为特征,因此对目标遮挡的情况处理效果不佳。
上述算法大多能够在简单的场景中进行鲁棒的实时跟踪。但在不受限制的日常视频中跟踪目标仍然是一个重大挑战。光照、尺寸变化、遮挡、目标旋转、复杂背景等都是带来困难的因素。因此,如何设计一个鲁棒性较强的跟踪算法,能够在条件较为苛刻的情况下获得较好的表现,是计算机视觉领域一个重要的课题。
发明内容
本发明提出了一种基于稀疏表示的视觉跟踪算法,对跟踪目标姿态变化,环境光照变化以及遮挡等情况具有很强的鲁棒性,且能改善对目标遮挡的情况处理效果。
本发明包括两个部分,首先构造用于跟踪目标的判决字典D、匹配字典A和灰度矩阵T,然后在当前帧中基于判决字典D、匹配字典A和灰度矩阵T在候选图像中查找与跟踪目标最相似的候选图像,确定当前所跟踪目标的目标图像,其具体过程为:
步骤1:确定初始化图像并确定所述初始化图像的目标图像,在该步骤中,通常取视频或者是图像序列的第一帧图像为初始化图像,并确定初始化图像的目标图像(矩形图像块),即目标模板,可根据初始化图像手动给定的初始化位置得到目标图像(目标大小、在图像中的位置坐标)。
步骤2:基于当前目标图像生成判决字典D、匹配字典A和目标模板灰度属性矩阵T:
在初始化图像中,确定距离目标图像中心P1(预设值,具体值根据不同的处理环境根据经验设定,通常设置为1~10)个像素点的矩形区域为前景模板的采样区域,确定距离目标图像中心P2(预设值,且P2大于P1,具体值根据不同的处理环境根据经验设定,通常设置P2与P1的差值为1~5)个像素点的矩形区域与前景模板的采样区域的空集为背景模板的采样区域(即围绕着前景模板的采样区域的回字形区域);对前景模板的采样区域进行随机采样,并选择Np(预设值,具体值根据不同的处理环境根据经验设定,通常取值为[30,60])个与目标图像大小相等的采样图像作为前景模板D+;对背景模板的采样区域进行随机采样,并选择Nn(预设值,具体值根据不同的处理环境根据经验设定,通常取值设置为[200,300])个与目标图像大小相等的采样图像作为背景模板D-,由前景模板D+和背景模板D-构成判决字典D;
基于预设的矩形滑动窗(尺寸为w*h,其宽w、高h的取值为预设值,具体值根据不同的处理环境根据经验设定,通常可基于目标图像大小进行设置,例如w可以设置为目标图像宽度的1/8,1/16,1/32,1/64等,h可以设置为目标图像高度的1/8,1/16,1/32,1/64等),在目标图像上进行左、右、上、下滑动采样,且左右采样间隔相同,上下采样间隔相同(通常为可设置为w/2,上下采样间隔可设置为h/2,当然也可以进行其他设置例如w/4,h/4等,取决于计算的精细度要求),得到目标图像的碎片集,并基于K均值聚类方法从所述碎片集中选取K个碎片(K个具有代表性的碎片),由K个碎片构成训练集并得到匹配字典A,其中K是K均值聚类方法的泛称,为预设值,具体值根据不同的处理环境根据经验设定,通常取值范围为[50,100],下文描述的K均值聚类方法计算时,K的取值可以设置各不相同的取值,通常取值范围为[50,100];设置用于存放目标图像的碎片集的各碎片的灰度值的灰度矩阵T,所述灰度矩阵T中各碎片的灰度值为:碎片的各点像素值的累加和。
步骤3:基于构建好的判决字典D、匹配字典A和灰度矩阵T,确定初始化图像的各后续帧图像的目标位置,即对非第一帧图像进行目标跟踪处理:
301:候选粒子的采样及候选粒子的预选取
首先是候选粒子的采样:对当前帧图像进行采样(本处理过程直接基于惯用技术完成即可,本发明不作限定,通常可以用粒子滤波方式完成采样,采样的粒子数量具体依实际情况而定,一般可选择500左右),得到第一候选图像样本集,然后基于K均值聚类从第一候选样本集中选取K个聚类中心,并计算每个聚类中心的置信值Hc:
基于公式(1)计算对应的稀疏系数:
其中D为判决字典(具体指前景模板D+(也可称前景模板字典D+)和背景模板D-(也可称背景模板字典D-)),X为某个样本(本发明中具体指各候选图像),通过L1优化问题可求得稀疏系数α,其中μ为稀疏表示公式的预设系数,具体值根据不同的实验环境根据经验设定。‖.‖1、‖.‖2分别表示对应向量的1范数、2范数。
因为如果一个样本在前景模板集上有小的重构误差就表示该样本很可能是一个目标。反之,如果一个样本在背景模板集上有小的重构误差就表示这个样本很可能是背景。因此,根据样本在前景模板集上的重构误差和背景模板集上的重构误差可以构造样本的置信值Hc:
Hc=exp(-εf+εb) (2)
上式中,是样本(候选图像)X在前景模板D+上的重构误差,a+是聚类中心所对应的候选图像X基于前景模板D+的稀疏系数(根据公式(1)计算求解),是样本X在背景模板D_上的重构误差,α_是聚类中心所对应的候选图像X基于前景模板D-的稀疏系数(根据公式(1)计算求解)。
取K个聚类中心中置信值最大的聚类中心为候选样图像本采样中心,基于所述候选图像样本采样中心进行采样得到第二候选图像样本集。
其次是对候选粒子的预选取,该处理主要是通过预选取,去掉大量偏离比较大的候选粒子,以进一步缩小候选范围。其处理为:对第二候选图像样本集,根据公式(1)和(2)计算各候选图像的置信值,再从中选取置信值最高的前N(经验值,取值范围通常可设置为[20,60])个候选作为新的候选图像,以待后面进一步处理。此处不直接选择置信值最高的一个候选图像作为目标,是考虑到因为遮挡的原因,置信值最高的候选可能并不是最佳候选,需经过后面的遮挡处理才能选择最佳候选。
考虑到在后续的目标跟踪过程中,目标有可能被背景遮挡,如果不进行遮挡处理,有可能跟踪过程中把目标当成背景,从而造成错误的跟踪结果,因此,有必要进行遮挡处理,使得本发明对遮挡情况也有着较好的鲁棒性,所谓的遮挡处理为:
首先对每一个新的候选图像以滑动窗的方式进行碎片采样(需要记录碎片的坐标位置),采样的方式与步骤2中对目标图像的采样方式相同,采样得到的碎片包含了该候选图像的每一个局部,然后对每一个碎片基于匹配字典A,利用公式(1)计算对应的稀疏系数βi,接着基于公式计算每个碎片yi的重构误差εi(下标i用于标识不同的碎片)。对于属于背景的碎片,其重构误差会较大,属于前景的碎片,其重构误差会比较小,设一个阈值ε0(取值范围通常为[0.3 0.6]),依次来判断候选图像的每一个碎片的属性,即当εi>ε0,说明该碎片属于背景;当εi≤ε0时,说明该碎片属于前景。然后建立一个依次记录每个碎片的属性的属性矩阵(例如,定义目标图像或者候选图像所对应的碎片总数为m*n个,其中m为每行的碎片总数,n为每列的碎片总数,则属性矩阵为m*n阶的二维矩阵,当然也可以按行向量或列向量依次存储,只是需要限定目标图像和候选图像所采取的存储方式一致,从而实现匹配处理),即当碎片属于前景时,在该矩阵对应位置值设为1,属于背景时,其值设为0,这样对每一个候选都建立一个0—1矩阵。用同样的方式对初始化图像(第一帧图像)中的目标建立一个0—1矩阵作为目标模板(目标模板属性矩阵),然后将每个候选与模板进行匹配,匹配度最高的一个候选图像即为当前帧的目标图像。若直接基于目标图像所对应的属性矩阵与候选图像所对应的属性矩阵进行匹配跟踪目标,则在步骤2可以不用生成目标模板灰度属性矩阵T,仅基于上述描述生成目标图像对应的目标属性矩阵即可。
具体实方法如下:
对每个新的候选图像c,首先设一个w*h大小的矩形滑动窗,利用该滑动窗在候选图像c上进行滑动采样,得到候选图像c的碎片集,基于匹配字典A(亦可称为稀疏字典A),根据公式(3)求解得到每一个碎片yi的稀疏系数向量βi:
即将公式(1)中的判决字典替换为匹配字典A,样本对应为每个碎片。
再根据计算每个碎片yi的重构误差εi,并基于重构误差εi与预设阈值ε0的大小关系设置每个碎片的属性值,再将每个碎片的属性值依次记录在属性矩阵Sc的中。
若直接基于目标图像所对应的属性矩阵与候选图像所对应的属性矩阵进行匹配跟踪目标,则直接将N个属性矩阵Sc分别与目标属性矩阵S进行匹配处理,取匹配度最高的属性矩阵Sc所对应的候选图像为当前帧的目标图像。
同时,本发明还可以基于目标的灰度矩阵与新的候选图像所对应的灰度矩阵的相似度来跟踪当前帧的目标图像。其具体处理为,即首先需要在步骤2中,基于初始化图像的目标图像确定目标模板灰度属性矩阵T(依次存放目标图像的各碎片的灰度值),然后在遮挡处理中,还需要为每个新的候选图像设置一个灰度矩阵Fc,用于存放新的候选图像c的每个碎片的灰度值,为了简化计算,基于各候选图像的属性矩阵Sc对其灰度矩阵Fc进行归一化处理,即当Sc中的属性值为0时,则将Fc中对应位置的取值置为0;当Sc中的属性值为1时,Fc中对应位置的取值为对应碎片的灰度值,即该碎片的各点像素值的累加和。最后,取与灰度矩阵T最相似的灰度矩阵Fc所对应的新候选图像c作为当前帧的目标图像。
进一步的,可根据公式(4)计算候选图像与目标图像的相似度Lc:
M为目标图像(目标模板灰度属性矩阵T)的所有点的灰度值总和,即将计算值归一化。表示候选图像c的灰度矩阵Fc的各元素,Tij表示目标模板灰度属性矩阵T的各元素。经过以上公式所求得的相似度在[0,1]范围内,找出所有候选中相似度Lc最大的一个候选,该候选图像与目标图像的匹配度最高,因此,可将该候选图像作为当前帧的跟踪目标(目标图像)。
为了保持跟踪处理的实时性,在确定完当前帧的目标图像后,设置更新处理,其具体更新处理方式可以是:
基于当前帧的目标图像,根据步骤2对前景模板D+、背景模板D-、匹配字典A和目标模板属性矩阵S或目标模板灰度属性矩阵T进行更新;
或者,基于当前帧的目标图像,根据步骤2对匹配字典A和灰度矩阵T进行更新;并且每隔5-10帧,基于当前帧的目标图像,根据步骤2在背景模板的采样区域进行随机采样,选择N’个与目标图像大小相等的采样图像,加入到背景模板D-中,并删除背景模板D-中离当前帧相隔时间最长的N’个采样图像,其中1≤N′≤Nn(在后面的跟踪过程中,跟踪环境在不断的变化,跟踪目标变化不大,但是背景变化较大,故可只考虑周期对背景模板进行更新处理);进一步的,还可以将当前帧的目标图像加入到前景模板D+中,并删除前景模板D+中离当前帧相隔时间最长的一个采样图像。
综上所述,由于采用了上述技术方案,本发明的有益效果是:对跟踪目标姿态变化,环境光照变化以及遮挡等情况具有很强的鲁棒性,且能改善对目标遮挡的情况处理效果。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
参见图1,对于实际的当前帧图像,首先判断当前帧是否是第一帧,若是第一帧,则需要依据第一帧中的目标图像信息(目标在图像中的位置,大小(长宽分别为W、H)等信息提前获取)求取本发明的跟踪方法中所需的判决字典(前景模板和背景模板)、匹配字典及其它信息,具体是:对于第一帧图像,首先在图二中所示的采样区域进行模板采样,获取正负模板作为训练集。正模板是在用中心矩形框所标示的目标位置通过上、下、左、右平移1-5个像素的方式随机采样一些图像,然后通过K均值聚类的方式选取Np个聚类中心作为正模板(前景模板)。负模板是在距离标记的位置相对较远距离的位置采样一些图像,同样利用K均值聚类的方法选取Nn个图像(即在距离目标中心一定距离的一个回形区域内,大小同样归一化为W*H),这些采样图像作为负模板(背景模板)。
同时还需计算在第一帧中获得匹配字典A和灰度矩阵T,即要通过对目标模板的碎片获取进行对应计算,其方法是:首先设一个w*h大小的矩形滑动窗,利用该滑动窗在目标图像上左、右、上、下进行滑动采样,左右采样间隔为w/2,上下采样间隔为h/2,设目标图像的高和宽分别为H和W,则采样数目为[W/(w/2)–1]*[H/(h/2)–1](如图3所示,其采样数目为8*8)。同样的将这些碎片先利用K均值聚类方法求取K个最具有代表性的碎片,然后按列堆放的方式堆成列向量构成训练集,利用逼近法(例如凸松弛法)生成判决字典A。对于目标模板灰度属性矩阵对于T中每个点,都对应着目标图像的一个局部碎片的灰度值。
若当前帧不是第一帧图像,则需要估计当前帧的目标位置(确定当前帧的目标图像)。首先利用粒子滤波方式对当前帧图像进行采样,获取比较多的候选图像作为第一候选图像样本集合,然后利用K均值聚类选取K个聚类中心,根据公式(1)和(2)计算每个聚类中心的置信值,将置信值最大的一个聚类中心作为候选采样中心。然后依据该采样中心再次以粒子滤波方式获得一定数量的候选图像作为第二候选图像样本集合。计算对第二候选图像样本集合中的各候选图像的置信值,取置信值最高的前20个候选作为新的候选图像。
对20个新的候选图像中的每一个,依据第一帧中碎片获取的方式获取碎片,对每一个碎片,利用匹配字典A求每一个碎片的重构误差εi,当εi>ε0,说明该碎片属于背景;当εi≤ε0时,说明该碎片属于前景。将该碎片在属性矩阵Sc对应位置的值设为1。经过重复计算,对于每个候选图像,都可以得到其对应的属性矩阵Sc。然后同第一帧中灰度矩阵T的求取方法类似,求取每个候选图像的灰度矩阵不过这里和第一帧不同的是需要结合属性矩阵Sc,即是当属性矩阵中某点的属性值为0时,灰度矩阵中对应点的归一化灰度值也为0,当属性值为1时,归一化灰度值不变。参照图3,以碎片的总数目为8*8为例,其对应的属性矩阵Sc、目标模板灰度属性矩阵T和新的候选图像的灰度矩阵Fc则均为8*8的二维矩阵,若(3,4)的碎片的属性值为0,则属性矩阵Sc中S34的取值为0,且灰度矩阵Fc中F34的取值也为0,若(4,2)的碎片的属性值为1,则属性矩阵Sc中S42的取值为1,且灰度矩阵Fc中F42的取值为碎片(4,2)的各点像素值相加所求得的总和。
最后根据公式(4)计算候选与模板的相似度,将其中相似度最高的一个候选图像作为当前帧的目标图像,并利用该目标图像更新前景模板、背景模板、匹配字典A和目标模板灰度属性矩阵T。