特征
VGG是第一个提出使用块的想法,通过使用循环和子程序,可以很容易地在任何现代深度学习框架的代码中实现这些重复的架构。
原始VGG网络有5个卷积块,其中前两个块各有一个卷积层,后三个块各包含两个卷积层。 第一个模块有64个输出通道,每个后续模块将输出通道数量翻倍,直到该数字达到512。由于该网络使用8个卷积层和3个全连接层,因此它通常被称为VGG-11。VGG-11比AlexNet计算量更大。
在VGG论文中,发现深层且窄的卷积(即3×3)比较浅层且宽的卷积更有效。
1. 总体架构
整个系统是一个用于人体跟踪和重识别的系统,主要模块包括:
- 检测模块(Detector):用于检测图像中的人脸和身体。
- 跟踪模块(Tracker):用于跟踪检测到的人脸和身体位置。
- 重识别模块(ReID):用于在丢失目标后重新识别目标。
- 特征提取模块(Feature Extractor):用于提取图像特征,辅助跟踪和重识别。
- 关键点检测模块(Keypoints):用于检测人体关键点。
- 分类器模块(Classifier):用于对目标进行分类,比如姿态分类。
2. 数据流
数据主要是图像数据,从摄像头捕获,然后经过以下处理流程:
- 图像捕获:从摄像头捕获图像。
- 图像预处理:对图像进行必要的预处理,比如缩放。
- 目标检测:使用检测模块检测图像中的人脸和身体位置。
- 特征提取:提取检测到的目标的图像特征。
- 跟踪:初始化跟踪器,开始跟踪目标。
W/Wo 深度信息 - 重识别:在目标丢失时,使用重识别模块重新识别目标。
设置 ReID 条件:通过设置 ReidCondition 对象的各个属性来为 ReID 提供条件,包括之前的边界框、跟踪状态、匹配模式和丢失帧数。
执行 ReID 匹配:调用 ReID 模块的 match 方法,根据设置的条件和当前的输入图像进行 ReID 匹配,返回匹配结果。
重置跟踪状态:在处理匹配结果之前,先将面部和身体的边界框和状态重置为默认值,以确保之后的更新是基于最新的匹配结果。
处理 ReID 结果:根据匹配结果更新面部和身体的边界框和状态。如果匹配成功,则更新对应的边界框和状态。如果身体匹配成功,但深度差异过大,则认为匹配不成功。
- 结果输出:输出跟踪结果和重识别结果。
3. 模块间交互
检测模块和跟踪模块
检测模块检测到目标后,将目标的位置传递给跟踪模块,跟踪模块初始化跟踪器,开始跟踪目标。
跟踪模块和重识别模块
在跟踪过程中,如果目标丢失,跟踪模块会调用重识别模块进行目标的重新识别。重识别模块根据图像特征和先前的跟踪信息进行匹配,找到最符合的目标位置。
特征提取模块
特征提取模块在检测和重识别过程中都起到重要作用。它提取图像中的特征信息,用于目标的识别和跟踪。
- EcoTracker:这个模块是整个系统的核心,负责目标跟踪和管理样本。
- FeatureFactory:特征提取工厂,负责从图像中提取特征。
- ReID(重识别):负责在目标丢失后重新识别目标。
- ScaleFilter:负责处理目标的尺度变化。
ECO (Efficient Convolution Operators) Tracker 是一种结合了深度学习和相关滤波技术的跟踪算法。因此,它既包含了深度学习的特点也包含了滤波类算法的特点。下面详细解释这两种特性是如何融合在一起的:
深度学习部分
- 特征提取:ECO Tracker 使用深度神经网络来提取目标的特征。这通常涉及到使用预训练的网络,如ResNet或其他卷积神经网络(CNNs)来获取目标区域的深度特征表示。
- 深度特征的高效利用:ECO Tracker 设计了一种高效的机制来利用这些深度特征,同时保持实时跟踪的速度。这意味着它能够在CPU上运行并保持实时性能。
滤波类算法部分
- 相关滤波:ECO Tracker 利用相关滤波器的思想来跟踪目标。相关滤波器是一种基于频域的操作,可以高效地实现目标模板与搜索区域之间的匹配。
- 滤波器更新:ECO Tracker 通过不断更新滤波器来适应目标外观的变化。这种更新机制使得跟踪器能够更好地应对遮挡、光照变化等问题。
结合方式
- 特征与滤波器的结合:ECO Tracker 使用深度学习提取的特征作为输入,然后通过相关滤波器来预测目标的位置。这种方法将深度学习的强大表示能力和相关滤波器的高效性结合起来。
- 异步更新:ECO Tracker 引入了异步更新机制,这意味着滤波器的更新可以在不影响实时跟踪的情况下进行,从而保证了跟踪的连续性和准确性。
总结
ECO Tracker 是一种混合型的跟踪方法,它将深度学习的高级特征表示与相关滤波器的高效跟踪能力相结合。这种方式使得ECO Tracker 能够达到甚至超过许多纯深度学习跟踪器的性能,同时保持实时跟踪速度。因此,可以说ECO Tracker 同时具备深度学习类跟踪和滤波类算法跟踪的特点。
在ECO Tracker中,特征被提取出来之后,主要用于构建跟踪模型和更新模型。具体地,这些特征被用来训练滤波器,进而通过滤波器来预测目标的位置。以下是特征提取后用于跟踪的主要步骤:
-
特征提取:
- 特征提取是通过
FeatureFactory
完成的,它可以提取多种类型的特征,例如颜色直方图、HOG特征等。 - 提取的特征通常会被转换到频域中,以便于进行快速傅里叶变换(FFT)操作。
- 特征提取是通过
-
特征预处理:
- 提取后的特征会经过一些预处理步骤,比如应用余弦窗口或高斯窗口,以减少边缘效应,并且进行归一化处理。
- 这些步骤有助于提高滤波器的性能和鲁棒性。
-
滤波器训练:
- 特征被用来训练一个或多个滤波器。训练过程涉及求解一个最小二乘问题,通常使用共轭梯度法(Conjugate Gradient, CG)或其他优化算法。
- 在训练过程中,会根据学习率和其他参数更新滤波器系数。
-
响应计算:
- 训练好的滤波器会被应用于新提取的特征上,通常是通过卷积操作来计算响应。
- 响应表示目标在图像中的可能位置,通常表现为一个峰值,峰值对应的位置就是预测的目标位置。
-
位置更新:
- 根据响应的最大值来确定目标的新位置。
- 如果使用多尺度搜索,则会在不同尺度上重复上述过程,选择最佳的尺度和位置组合。
-
模型更新:
- 如果目标被成功跟踪,跟踪器会定期更新滤波器,以适应目标外观的变化。
- 更新可以通过异步方式进行,即在独立的线程中进行,以避免影响实时跟踪性能。
-
置信度评估:
- 可选地,ECO Tracker还可以使用置信度评估机制来判断跟踪结果的可靠性。
- 如果置信度低,可能会触发重新初始化或修正跟踪过程。
-
异常处理:
- 如果目标消失或跟踪失败,跟踪器会进入修正模式,可能需要人工干预或者使用其他策略来恢复跟踪。
综上所述,特征提取之后的关键步骤包括特征预处理、滤波器训练、响应计算、位置更新以及模型更新。这些步骤共同构成了ECO Tracker的核心跟踪逻辑。