高密度人群场景中的小目标跟踪
摘要
近年来,用于自动识别和跟踪动物的计算机视觉已发展成为量化行为的流行工具。蜜蜂是学习和记忆的常用模型,因此在蜂群内对蜜蜂进行跟踪是一项特别具有挑战性的任务,原因在于密集种群、目标外观相似以及蜂群中有大量个体频繁离开蜂巢。本文提出了一种基于改进的三帧差分法和VIBE算法的检测方法,以及一种基于卡尔曼滤波的蜜蜂跟踪方法。我们在包含蜜蜂群体活动视频的数据集上评估了所提出方法的性能。实验结果表明,该方法在检测与跟踪方面表现良好。
关键词 :目标检测 · Object跟踪 · Kalman滤波
1 引言
计算机视觉利用计算机模拟人类视觉机制,从而理解外部信息,作为一门交叉学科,它涵盖了计算机科学、数学、工程学、物理学、生物学、神经科学等领域的知识。近年来,计算机视觉已成为人工智能领域的重要基础研究方向。作为该领域的重要研究之一,目标检测与跟踪结合了图像处理、模式识别和自动控制,是解决相关问题的常用手段。其在智能交通、视频会议、图像检索和机器人导航等领域具有广泛的应用。
多目标视频检测与跟踪[1]从视频数据中实时地在视频序列中查找并提取目标,并根据边缘、局部运动和灰度级获取这些目标的轨迹,进而为目标识别、运动分析等后续处理提供数据。[2],光流法[3]和帧间差分算法[4]。帧间差分算法的主要原理是对视频序列中的相邻两帧或三帧进行差分运算,然后通过阈值提取目标。该算法具有良好的实时性,但无法完全提取所有相关特征像素,同一目标可能被分割成多个部分,因此检测精度受到影响。光流法通过利用两帧之间的速度与灰度关系来检测目标,但该算法对光照非常敏感且实时性较低。背景减除法是目前应用最广泛的 目标检测 方法,首先建立一个合适的背景模型,将当前帧图像与背景模型进行差分运算,再根据相应准则确定前景区域。背景建模方法包括多帧平均法、混合高斯背景建模、像素值聚类以及VIBE算法等。其中,VIBE方法由于算法简单、计算速度快而被广泛应用,但也存在一些不足,例如当多个目标粘连在一起时,会被错误地划分为一个目标。
目标跟踪是指基于动态系统的估计和测量来预测其未来位置。有许多跟踪方法。例如,[5]将目标描述为SIFT特征,并利用欧氏距离通过匹配准则来跟踪运动目标,但当目标完全被遮挡后重新出现时,会导致跟踪失败。这种方法称为基于区域的跟踪方法,并提出了一些改进方法,如Mean‐shift跟踪算法[6],Camshift跟踪算法[7]。然而,当目标候选区域范围较大时,这些方法非常耗时,效率很低。另一方面,针对高密度同质目标提出了梯度爬升技术和等值轮廓切片方法,用于分析蜜蜂行为学。然而,由于密集种群、目标外观相似性以及频繁的位置变化等原因,在蜂群内对蜜蜂进行跟踪是一项特别困难的任务。
本文提出了一种改进的检测与跟踪方法,用于高密度人群场景中的多小目标跟踪。本文结构如下:在第2节中,提出了改进的目标检测与跟踪方法。首先,采用结合改进三帧差分法的改进VIBE算法,有效提取目标。在第3节中,使用卡尔曼滤波器实现多目标跟踪。在第4节中,基于蜜蜂数据集的[12]实验结果被报告,以证明所提出方法的有效性。
2 多目标检测
2.1 改进的三帧差分预处理
在相同背景下的不同时刻图像进行比较时,常用的方法是进行差分运算,然后根据差异结果获取物体的运动信息。帧间差分[4]是一种对视频序列中相邻两帧图像进行差分运算,再通过阈值获取目标区域的方法。其原理如下:
$$
g(x, y) =
\begin{cases}
1, & |f_k(x, y) - f_{k-1}(x, y)| \geq Thr \
0, & |f_k(x, y) - f_{k-1}(x, y)| < Thr
\end{cases}
$$
其中Thr是一个阈值。如果Thr过大,检测到的目标会丢失严重;如果T过小,则会产生大量噪声。为了改进这些不足,提出了一种三帧差分法。三帧差分法首先对当前帧和前一帧进行差分运算,然后对下一帧和当前帧进行差分运算,并对结果进行逻辑与操作,最后进行分割,从而提取出目标。设一个视频序列,$f_{k-1}(x, y)$, $f_k(x, y)$, $f_{k+1}(x, y)$为连续的三帧图像,可通过以下公式获得目标的位置。
$$
g_1(x, y) = f_k(x, y) - f_{k-1}(x, y) \tag{2}
$$
$$
g_2(x, y) = f_{k+1}(x, y) - f_k(x, y) \tag{3}
$$
$$
G(x, y) = g_1(x, y) \otimes g_2(x, y) =
\begin{cases}
1, & g_1(x, y) \& g_2(x, y) \neq 0 \
0, & \text{others}
\end{cases} \tag{4}
$$
该方法虽有一定改进,但有时仍无法完全检测出目标区域。因此,本文结合了边缘提取及其后的轮廓填充方法。有许多算法可实现边缘提取,例如复杂度较小的Sobel算子,但其精度不高;Roberts算子抗噪能力弱;Canny算子通过双阈值能够完整提取边缘信息。因此,本文采用Canny算子进行边缘检测。首先设定预处理帧数n,s为帧步长,k为当前帧,对帧$f_{k-s}(x, y)$, $f_k(x, y)$, $f_{k+s}(x, y)$应用传统的三帧差分法。经过差分运算、阈值分割和逻辑与操作后,得到结果res1;接着对k进行边缘提取,同时将两次差分的结果进行扩展,然后分别执行逻辑
对边缘提取的结果进行合取操作,得到两个结果,然后对这两个结果进行逻辑析取得到res2。最后,将该结果与res1进行逻辑析取得到res3。
2.2 基于改进VIBE的目标检测
VIBE方法[8, 9]使用图像的第一帧来初始化背景模型。接着,通过设定阈值,将当前图像的像素与背景模型进行比较,从而判断当前像素是否为背景。当像素属于背景时,随机更新背景模型中该像素的历史值以及邻域像素的历史值。然而,当图像第一帧包含目标时,会导致“鬼影”现象,即目标被错误地初始化为背景。尽管在后续帧中通过更新背景模型可以消除鬼影,但此过程特别缓慢,同时由于鬼影的存在,如果有目标经过鬼影区域,目标检测的精度将会降低。第2.1节提出的改进的三帧差分法计算量小,对光照等场景变化不敏感,具有较强的适应性,且不会产生鬼影。因此,本文采用VIBE方法,并将第1节提到的预处理结果作为真实背景。
从第I帧开始。目标检测的步骤如下。
(a) 构建背景模型。利用预处理结果构建n个背景样本。
(b) 前景检测。计算每个背景样本中对应像素与图像像素的欧氏距离,然后设定阈值,如果至少有两个结果小于该阈值,则判定该像素为背景,并进入步骤(c);否则为前景。
(c) 更新背景。如果当前像素为背景像素,则设置背景更新因子q,即以1/q的概率随机更新背景。同时,以相同概率更新该像素八邻域中的某个像素。
高密度人群场景中的小目标跟踪
3 多目标跟踪
块匹配的目标是找到运动矢量。它是通过参考帧来替代当前帧中块的位置。通常,该方法中一个块的执行包括以下三个组成部分:块确定、搜索和匹配(图1)。
执行以下步骤:
步骤1:将初始运动矢量设为0,并将最佳匹配值设为当前帧中块与参考帧之间的差异值。如果最佳匹配值低于阈值,则停止搜索;否则,进入步骤2。
步骤2:最佳匹配是当前最佳匹配值与参考帧中八个相邻块的差异值中的最小值。此步骤确定新的最佳匹配值,并相应地获得对应的运动矢量。
步骤3:如果步长大于1,则将步长减半并返回步骤2;否则,输出该运动矢量。
3.1 卡尔曼滤波
相邻帧的时间间隔很短,目标的运动状态变化较小,因此可认为目标作匀速运动。卡尔曼滤波器(KF)[10, 11]是一种递归估计器,其基本原理是通过值$x_{k+1}$在时刻$k$给出具有最小均方误差的预测值。它由预测方程(5)和观测方程(6)描述。预测是指在获取下一个测量值时更新状态方程,观测是指根据测量方程对传感器的测量值进行校正。每个卡尔曼滤波器定义如下:
$$
x_{k+1} = A x_k + B \tag{5}
$$
$$
z_{k+1} = H x_{k+1} + C \tag{6}
$$
其中
$$
x = [p_x\ p_y\ v_x\ v_y]^T
$$
$$
A =
\begin{bmatrix}
1 & 0 & T & 0 \
0 & 1 & 0 & T \
0 & 0 & 1 & 0 \
0 & 0 & 0 & 1 \
\end{bmatrix}, \quad
H =
\begin{bmatrix}
1 & 0 & 0 & 0 \
0 & 1 & 0 & 0 \
\end{bmatrix} \tag{7}
$$
其中$p_x$、$p_y$分别为x轴和y轴的中心位置。$v_x$、$v_y$分别为x轴和y轴的速度。矩阵$A$表示转移矩阵,矩阵$H$为测量矩阵。$T$是两帧之间的时间间隔。$B$和$C$分别为系统噪声和测量噪声。
卡尔曼滤波器的循环使用反馈控制系统来估计运动状态。该过程分为两个步骤:预测和校正。预测通过当前状态和带有误差协方差的下一状态获得先验估计。校正则结合新实际观测值和先验估计得到后验估计。
4 实验结果
在本文中,我们在蜜蜂数据集上测试了我们的算法[12]。实验结果分为两组:使用VIBE算法进行运动物体检测和使用卡尔曼滤波进行目标跟踪。
4.1 目标检测
我们使用了第2节中描述的帧差法从图像序列中获取初始运动向量。图2显示了使用VIBE算法进行的蜜蜂检测。从该图可以看出,可以检测到蜜蜂的感兴趣区域(ROI),但由于非均匀光照和蜂巢背景的影响,导致了过分割。
4.2 多运动目标的跟踪
我们实现了所提出的卡尔曼滤波方法,并在多个具有复杂运动模式的移动物体上测试了该方法。在本部分中,我们报告了在蜜蜂数据集上的一些跟踪结果。实验结果如图3,4和5所示。图3显示了从蜜蜂运动中检测到的结果。图3b显示了跟踪结果。
在图4中,多只蜜蜂通过VIBE分割和卡尔曼滤波进行跟踪。结果显示,由于在分割步骤中存在过分割现象,
VIBE分割中,使用卡尔曼跟踪导致了一些误跟踪。一些重叠的蜜蜂被假定为合并成的一个对象,例如图4中的对象35号,包含了5只蜜蜂。因此,即使合并后的对象能够被检测到,也无法用于单只蜜蜂的跟踪。所以,对于单只蜜蜂的跟踪以及绘制蜜蜂的轨迹,提出的方法存在许多问题。
在图5中,仅检测到了移动的蜜蜂。提出的方法展示了对部分移动蜜蜂进行跟踪的有效性。从上述实验可以看出,提出的方法在现实世界中跟踪多个物体方面具有实用性。
5 结论
本文提出了一种改进的三帧差分法和VIBE算法,并结合基于卡尔曼滤波的跟踪方法,用于高密度拥挤场景下的蜜蜂跟踪。实验结果表明,所提出的方法在蜜蜂数据集[12]上具有有效性。然而,在实际应用中,由于目标与背景之间的高度相似性,我们需要开发新的算法来检测蜜蜂。同时,未来我们还将采用基于深度学习的跟踪方法,以提高跟踪的精度。
1569

被折叠的 条评论
为什么被折叠?



