摘 要
视觉跟踪技术是计算机视觉领域(人工智能分支)的一个重要课题,有着重要的研究意义;且在军事制导、视频监控、机器人视觉导航、人机交互、以及医疗诊断等许多方面有着广泛的应用前景。随着研究人员不断地深入研究,视觉目标跟踪在近十几年里有了突破性的进展,使得视觉跟踪算法不仅仅局限于传统的机器学习方法,更是结合了近些年人工智能热潮—深度学习(神经网络)和相关滤波器等方法,并取得了鲁棒(robust)、精确、稳定的结果。
视觉目标跟踪是指对图像序列中的运动目标进行检测、提取、识别和跟踪,获得运动目标的运动参数,如位置、速度、加速度和运动轨迹等,从而进行下一步的处理与分析,实现对运动目标的行为理解,以完成更高一级的检测任务。根据跟踪目标的数量可以将跟踪算法分为单目标跟踪与多目标跟踪。相比单目标跟踪而言,多目标跟踪问题更加复杂和困难。多目标跟踪问题需要考虑视频序列中多个独立目标的位置、大小等数据,多个目标各自外观的变化、不同的运动方式、动态光照的影响以及多个目标之间相互遮挡、合并与分离等情况均是多目标跟踪问题中的难点。
本次内容主要研究的内容基于目标跟踪下的:Opencv-python七种自带的跟踪算法以及:背景减除法、帧差法、混合高斯模型、卡尔曼滤波、粒子滤波、
光流估计发、sift。
绪论
目标跟踪划分为五项主要的研究内容:
运动模型(Motion Model):如何生成众多有效的候选框,生成候选样本的速度与质量直接决定了跟踪系统表现的优劣。常用的有两种方法:粒子滤波(Particle Filter)和滑动窗口(Sliding Window)。粒子滤波是一种序贯贝叶斯推断方法,通过递归的方式推断目标的隐含状态。而滑动窗口是一种穷举搜索方法,它列出目标附近的所有可能的样本作为候选样本。
特征提取(Feature Extractor): 利用何种特征表示目标,鉴别性的特征表示是目标跟踪的关键之一。根据目标的情况选择不同的特征表示,常用的特征被分为两种类型:手工设计的特征(Hand-crafted feature)和深度特征(Deep feature)。常用的手工设计的特征有灰度特征(Gray),方向梯度直方图(HOG),哈尔特征(Haar-like),尺度不变特征(SIFT)等。与人为设计的特征不同,深度特征是通过大量的训练样本学习出来的特征,它比手工设计的特征更具有鉴别性。因此,利用深度特征的跟踪方法通常很轻松就能获得一个不错的效果。
观测模型(Observation Model):为候选框打分(置信分数),大多数的跟踪方法主要集中在这一块的设计上。为候选框打分根据不同的思路,观测模型可分为两类:生成式模型(Generative Model)和判别式模型(Discriminative Model). 生成式模型通常寻找与目标模板最相似的候选作为跟踪结果,这一过程可以视为模板匹配。常用的理论方法包括:子空间,稀疏表示,字典学习等。而判别式模型通过训练一个分类器去区分目标与背景,选择置信度最高的候选样本作为预测结果。判别式方法已经成为目标跟踪中的主流方法,因为有大量的机器学习方法可以利用。常用的理论方法包括:逻辑回归,岭回归,支持向量机,多示例学习,相关滤波等。
模型更新(Model Update): 更新观测模型使其适应目标的变化,防止跟踪过程发生漂移。模型更新没有一个统一的标准,通常认为目标的表观连续变化,所以常常会每一帧都更新一次模型。但也有人认为目标过去的表观对跟踪很重要,连续更新可能会丢失过去的表观信息,引入过多的噪音,因此利用长短期更新相结合的方式来解决这一问题。
集成方法(Ensemble Method): 集成方法有利于提高模型的预测精度,也常常被视为一种提高跟踪准确率的有效手段。可以把集成方法笼统的划分为两类:在多个预测结果中选一个最好的,或是利用所有的预测加权平均。
在本次研究中使用环境如下:
pycharm64
nimpy-1.19.0rc1
opencv-contrib-python-4.3.0.36
matplotlib-3.1.3
硬件环境:
CPU:I7-7700HQ
GPU:GTX1050Ti
视频数据:
来源:网站下载
图像大小:768*576
时长:00:01:19
帧速率:10.00帧/秒
第2章 背景建模
2.1 帧差法
由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。
帧差法非常简单,但是会引入噪音和空洞问题。
2.2 混合高斯模型
2.2.1 混合高斯模型的建立
在进行前景检测前,先对背景进行训练,对图像中每个背景采用一个混合高斯模型进行模拟,每个背景的混合高斯的个数可以自适应。然后在测试阶段,对新来的像素进行GMM匹配,如果该像素值能够匹配其中一个高斯,则认为是背景,否则认为是前景。由于整个过程GMM模型在不断更新学习中,所以对动态背景有一定的鲁棒性。最后通过对一个有树枝摇摆的动态背景进行前景检测,取得了较好的效果。背景的实际分布应当是多个高斯分布混合在一起,每个高斯模型也可以带有权重。
混合高斯模型学习方法
1.首先初始化每个高斯模型矩阵参数。
2.取视频中T帧数据图像用来训练高斯混合模型。来了第一个像素之后用它来当做第一个高斯分布。
3.当后面来的像素值时,与前面已有的高斯的均值比较,如果该像素点的值与其模型均值差在3倍的方差内,则属于该分布,并对其进行参数更新。