特征
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:负责处理目标的尺度变化。