fastReID论文总结
- fastReID
- ReID所面临的挑战
- 提出的背景
- 概念:所谓ReID就是从视频中找出感兴趣的物体(人脸、人体、车辆等)
- 应用场景:
- 存在的问题:当前的很多ReID任务可复用性差,无法快速落地使用
- 解决方式:发布了FastReID,可复用和快速落地
- fastReID的亮点
- fastReID的成就
- 训练策略
- learning rate warm-up
- Backbone Freezing
- 测试
- 排序方法
- QE
- K-reciprocal
- 验证
- CMC
- mAP
- ROC
- mINP
fastReID
ReID所面临的挑战
- 摄像头位置的不同导致角度不一
- 照片像素和色彩存在差异
- 行人姿态不一
- 检测框质量不一
- 存在遮挡和不对齐
提出的背景
概念:所谓ReID就是从视频中找出感兴趣的物体(人脸、人体、车辆等)
应用场景:
- 搜索电视中演员的镜头
- 从视频监控中寻找走失的孩子、嫌疑犯
- 商品追踪、保护野生动物
存在的问题:当前的很多ReID任务可复用性差,无法快速落地使用
解决方式:发布了FastReID,可复用和快速落地
fastReID的亮点
- 模块化和可扩展设计:方便研究人员快速地将新设计的模块插入到系统的任意部分,而且能够帮助研究员和工程师快速地实验新的想法。
- 配置化:可统一配置模型结构、模型训练、模型评价、模型部署到YAML文件中。可自定义模型结构的主干网络、训练测试、损失函数等。
- 评估体系丰富:ROC、mINP
- 工程部署:提供知识蒸馏来获取轻量级模型,同时提供了不同框架的模型转换工具。
- 提供了最先进的预训练模型:提供多个任务包括行人重识别、遮挡/部分行人重识别、跨域行人重识别和车辆行人重识别的模型和配置。
fastReID的成就
- 图像预处理:调整到同一个尺寸(128,256),翻转,随机擦除,自动增强(自动搜索图像增强的最佳策略)
- backbone:使用了3种主干网络ResNet,ResNeXt,ResNetSt,并且加入了注意力机制和IBN
- 聚合层:使用了四种池化方式最大池化、平均池化、GeM池化、注意力池化
- head:三种head BN head、linear head、Reduction head:降低维度
- Loss: CEloss、Arcface、Circle loss、Triplet loss
训练策略
learning rate warm-up
使用较小学习率训练几个epoch,因为模型初始的权重是随机的,直接训练会导致震荡和不稳定
改进:为了避免从较小学习率到大学习率引起的误差,让学习率随着每个step增大,之道和预设的一致。
Backbone Freezing
即微调
测试
采用了DSR计算距离
把qure分成N个小部分(xi),gallery也分成N个小部分(yi),xi从Y中找到最相似的yi得到匹配分数,加上所有匹配分数
排序方法
QE
对前top_k的结果,对它们计算特征求和取平均,再计算一次查询,目的是为了提高召回率
K-reciprocal
验证
CMC
top_k的击中概率[top1,top2,top3]
mAP
平均精度
ROC
模型能力
mINP
mAP存在缺陷
上图中展示了两个匹配列表,其中共10个目标并仅有三个正确结果,绿色表示正确的匹配,。根据平均查准率(Average Precision, AP),第一个匹配列表的AP为0.77,第二个匹配列表的AP为0.7,按照的AP的评价标准,AP值越大的性能越好,因此第二个匹配的性能要优于第一个。
但是,第一个列表中虽然在最靠前的两个结果均正确,但是直到第十个才找到了第三个结果,第二个列表在排序第五的位置就找到了全部的正确结果,因此直观来讲,第二个匹配的性能应该要优于第一个。
R为最后找到的样本,G为找到了多少样本。这个公式的含义就是截止到最后一个正确的结果时,已经查出的样本中错误的样本所占的比例,因此NP的值越小,性能应该越好。当所有的正确结果都在最前面时,NP的值应该为0。