可以看到,开运算其实就是X被结构元素B先腐蚀后膨胀。开运算操作可以去除一些孤立的小点、毛刺和小桥,且不会影响区域总的位置和形状。如下图2-5是我们对一副运动检测后二值前景图像进行形态学开运算处理的效果,右边图像为左边图像开操作处理后得到的图像。可以看到左边图像中间的一个孤立的小斑点,运算后得到了去除,但图像下方人的前景掩码经过操作后头部也丢失了。
图1-6 前景图像开操作示意图
1.4.4 二值图像闭操作
如果X被结构元素B先膨胀,然后再腐蚀,这个运算就称为X对B的闭运算,用表示:
闭运算能够填平前景区域小孔,对较小的裂缝也能有效弥合。如下图2-6所示,可以看到左边图像里两个靠得比较近的人的前景掩码,经过闭运算操作后就完全连接在一起成了一个区域,如右图所示。
图1-7 前景图像闭操作示意图
2 运动目标跟踪
在前面通过目标检测在序列图像中分割出属于运动目标的图像区域,接下来需要对运动目标进行跟踪。目标跟踪就是在序列图像不同时刻检测到的目标之间根据目标的某些特征在时间上建立起联系,通俗一点说就是跟踪上的目标在图像序列的不同帧里,始终赋予稳定一致的编号。目标跟踪在计算机视觉领域里是一个充满挑战的问题。在视频分析领域,对多个目标跟踪的主要困难是在相邻两帧间建立起目标正确的关联关系,尤其是在复杂场景里多个相似目标之间存在遮挡、合并分离等情况时,确定目标之间的正确对应关系变得很困难。
2.1 多目标跟踪关联
2.1.1 特征代价函数
为了降低系统的复杂度,使系统具备实时处理性能。运动检测阶段得到的目标我们使用它们的外接矩形来表征。在跟踪阶段,相邻两帧的目标链间进行匹配关联,建立匹配矩阵。这里我们采取了一种简单的特征融合代价函数来度量两个目标的相似性。经过运动检测、分割、形态学滤波去噪、标记等过程后,我们统计各个检测到的团块的信息,可以得到团块的形心坐标,外接矩形区域。利用这些信息我们计算代价函数。
2.1.2 跟踪流程
(1)跟踪启动并整理已捕获目标链
(1.1)如果当前帧号是第一帧,所有检测到的目标都被认为是新目标,设置一个初始的置信度。
(1.2)如果不是第一帧,检查已捕获目标列表。对目标做线性滤波,预测其在当前帧的位置。目标的位置用其连通区域外接矩形中心表示,令为第i个目标在第K帧里的位置。
(2)目标关联:这部分也是多目标跟踪的核心,我们建立了一个代价函数矩阵记录已捕获链中各个目标和当前帧检测目标链中各个目标的代价函数值,同时建立一个关联矩阵确定目标最优的对应关系。对于捕获链中的第i个目标,我们能够在当前检测链中找到使得代价函数最小的检测目标j。同时进一步比较形心距离和一个距离门限。
(2.1)如果,我们认为当前检测到的第j个目标是已捕获链中第i个目标时间上的后续对应。增加第i个已捕获目标的置信度并更新它的特性参数。
(2.2)如果,我们认为第i个已捕获目标没有在当前帧里找到时间上的后续对应。它的置信度会降低,如果它的位置已经接近了场景的边缘,我们认为它已经走出了场景,将其从已捕获链表中移除。如果它置信度降低了后仍然较高,且它的位置在场景观测区中,我们仍然使用(1)中的线性滤波去预测它的下一帧位置。
(2.3)当前检测到的目标,若在已捕获目标链里未找到合适的关联目标,将其作为新目标添加进已捕获目标链表,并赋予一个初始的置信度。
(3)按照(1)和(2)的过程处理下一帧视频直到图像序列结束。
图2-1 绿茵场上对球员跟踪
2.2基于卡尔曼滤波的运动目标跟踪
卡尔曼滤波是以最小均方误差作为估计的最佳准则,来寻找一套递推估计的算法,其基本实现是:采用信号与噪声的状态空间模型,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,求出当前时刻的估计值。卡尔曼滤波方法流程分为预测和更新两个部分。
在运动目标跟踪中采用卡尔曼滤波的方法,就是要合适地运用卡尔曼滤波的预测和更新方程。在本系统中的卡尔曼滤波跟踪中,将目标块的状态用两个位置变量和,以及两个速度变量和表示。这四个变量组成状态向量的元素。认为目标块的运动为线性的,则传递矩阵和状态向量表示为:
,
目标块测量向量只包括测量到的目标块的位置信息,也就是:
得到了运动目标块以后,为运动目标块的状态向量、过程噪声、测量值和最重要的传递矩阵进行初始化,然后就可以按照卡尔曼滤波的预测和更新两个过程对运动目标块的运动进行跟踪了。
在本算法中采用最近邻匹配法和卡尔曼滤波法相融合的方法来进行运动目标跟踪。由于最近邻匹配法依靠与前景检测的结果,在前景中存在噪声或者是前景检测结果不佳的情况下无法对运动目标块进行准确的跟踪,可能会造成目标块丢失等情况的发生。在这种情况下可以采用基于卡尔曼滤波的方法,根据目标块的历史记录信息来预测运动目标块可能存在的位置,从而进行跟踪。
本算法的流程如下:
1、对目标链中的目标块与候选链进行最近邻匹配法。若通过最近邻法,在候选链中找到了与此目标块相匹配的目标块,则进行2。否则,执行第3步。
2、将相匹配的候选链中的块的位置信息当作目标链中此目标块在当前时刻的位置。若此目标块之前进行过卡尔曼滤波,则删除该目标块的卡尔曼滤波相关结构。
3、对未找到匹配的运动目标块进行卡尔曼滤波。若此运动目标块之前进行了卡尔曼滤波没有超过阈值,则继续进行卡尔曼滤波。若此运动目标块之前没有进行过卡尔曼滤波则初始化该块的卡尔曼滤波参数,进行卡尔曼滤波。除此以外,执行第4步。
4、若此运动目标块进行卡尔曼滤波次数超过了预设的阈值,还未通过最近邻法找到匹配块,则认为此块丢失。
【想第一时间了解安防行业的重磅新闻吗?请立即关注中安网官方微信(微信号:cpscomcn)——安防行业第一人气微信,万千精彩,千万不要错过!!!
网友评论
共有0条评论 点击查看全部>>24小时阅读排行
本周阅读排行