fastReID论文总结

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的亮点

  1. 模块化和可扩展设计:方便研究人员快速地将新设计的模块插入到系统的任意部分,而且能够帮助研究员和工程师快速地实验新的想法。
  2. 配置化:可统一配置模型结构、模型训练、模型评价、模型部署到YAML文件中。可自定义模型结构的主干网络、训练测试、损失函数等。
  3. 评估体系丰富:ROC、mINP
  4. 工程部署:提供知识蒸馏来获取轻量级模型,同时提供了不同框架的模型转换工具。
  5. 提供了最先进的预训练模型:提供多个任务包括行人重识别、遮挡/部分行人重识别、跨域行人重识别和车辆行人重识别的模型和配置。

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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/182730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot实现的教务查询系统

一、系统架构 前端:html | js | css | jquery | bootstrap 后端:springboot | springdata-jpa 环境:jdk1.7 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 管理员端-课程管理 03. 管理员端-学生管理 04. 管理员端-教师管理…

史上最全接单平台集锦,程序员不容错过!

非典型程序员不是每天都累成狗,天天”996"甚至”007“。可能,面临着上班摸鱼没事干,下班躺尸打游戏的无聊境况。那么,如果你也是这样的程序员,有没有什么安排可以打发时间? 闲着还不如挣钱~心情好的时…

【QML】qml+gstreamer显示的同时录像,避免卡顿

1. 问题 使用QML的CameravideoRecorder(Camera)VideoOutput实现显示加录像功能。在Ubuntu上运行正常,视频流畅。但是在开发板上(RK3568)上出现明显卡顿,无法正常录像。 2. 解决方案 将摄像头数据通过gstreamer共享内存到某个位…

cddd 安装指南(pip install cddd)

pip install cddd 这个命令可能会报错,因为要求是TensorFlow1.10.0 TensorFlow1.10.0对应的Python版本是3.6,所以如果你的Python版本是3.6以上是不行的.....

OpenCV实现手势音量控制

前言: Hello大家好,我是Dream。 今天来学习一下如何使用OpenCV实现手势音量控制,欢迎大家一起前来探讨学习~ 一、需要的库及功能介绍 本次实验需要使用OpenCV和mediapipe库进行手势识别,并利用手势距离控制电脑音量。 导入库&am…

Python内置函数与标准库函数的详细解读

一、内置函数与标准库函数的区分 Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要导入某个模块。 Python 解释器也是一个程序,它给用户提供了一些常用功能,并给它们起了独一无二的名字,这些常用功能…

C++初阶 | [五] 内存管理

摘要:new and delete,定位new,(C内存管理的方式),malloc/free和new/delete的区别,内存泄漏 关于内存: 栈又叫堆栈——非静态局部变量/函数参数/返回值等等,栈是向下增长…

华为OD机试 - 园区参观路径(Java JS Python C)

题目描述 园区某部门举办了Family Day,邀请员工及其家属参加; 将公司园区视为一个矩形,起始园区设置在左上角,终点园区设置在右下角; 家属参观园区时,只能向右和向下园区前进,求从起始园区到终点园区会有多少条不同的参观路径。 输入描述 第一行为园区的长和宽; 后…

Linux详解——安装JDK

目录 一、下载jdk 二、tar包安装 三、rpm包安装 一、下载jdk 1.下载jdk https://www.oracle.com/technetwork/java/javase/downloads/index.html 2.通过CRT|WinSCP工具将jdk上传到linux系统中 二、tar包安装 # 1.将JDK解压缩到指定目录 tar -zxvf jdk-8u171-linux…

FreeRTOS学习之路,以STM32F103C8T6为实验MCU(2-12:内存管理)

学习之路主要为FreeRTOS操作系统在STM32F103(STM32F103C8T6)上的运用,采用的是标准库编程的方式,使用的IDE为KEIL5。 注意!!!本学习之路可以通过购买STM32最小系统板以及部分配件的方式进行学习…

MyBatis使用教程详解<下>

回顾上一篇博文,我们讲了如何使用注解/XML的方式来操作数据库,实际上,一个Mapper接口的实现,这两种方式是可以并存的. 上一篇博文中,我们演示的都是比较简单的SQL语句,没有设计到复杂的逻辑,本篇博文会讲解复杂SQL的实现及一些细节处理.话不多说,让我们开始吧. 一. #{}和${} …

CLion安装与配置教程

目录 一、下载并安装CLion1、下载1、官网:2、注意: 2、安装1、下载完成后,直接点击安装包安装,即可。2、开始安装,然后下一步3、可以在此处自定义地址,然后下一步4、根据系统版本选择,然后下一步…

智慧工地信息化管理系统源码带APP

需求痛点:建筑行业是一个安全事故多发的行业。目前,工程建设规模不断扩大,工艺流程纷繁复杂,如何搞好现场施工现场管理,控制事故发生频率,一直是施工企业、政府管理部门关注的焦点。利用现代科技&#xff0…

[Python程序打包: 使用PyInstaller制作单文件exe以及打包GUI程序详解]

文章目录 概要Python 程序打包—使用 Pyinstaller 打包 exePython程序打包—使用Pyinstaller打包GUI程序Python程序打包—使用 Pyinstaller 设置 exe 图标小结 概要 使用PyInstaller工具将Python程序打包成可执行(EXE)文件。将Python程序打包成EXE的好处…

【产品设计】SaaS产品数据分析之指标与标签

数据分析能够应用到各个领域和岗位,那么在SaaS产品中的应用会是如何?本文将探索SaaS产品在数据分析中的应用,并对其指标与标签的设计进行总结分析,一起来看看吧。 数据分析是业务开展过程中,收集记录各种行为产生的数据…

Linux 进程(二)

1.当前工作目录 Linux 下使用 ls /proc 查看程序中的进程,其中这些蓝色的数字代表的就是进程。 其中cwd(current working directory)就是当前工作目录,那么为什么cwd 和 exe 是在同一级目录下呢因为 进程需要依赖可执行程序,可执行程序需要依…

jmeter多个接口测试

针对接口文档,进行对应接口设计,多个接口设计用例需要使用事物控制器。 1.通过登录接口提取sign值 发送一个登录请求,然后通过正则表达式提取该sign值 正则表达式的使用,我稍后会在下一个博文中详细说明,这边就不多说…

如何用SWIG封装c++接口给java使用?

SWIG是什么? SWIG(Simplified Wrapper and Interface Generator)是一个将C/C接口转换为其他语言接口的工具,从而可以讲C/C的库集成到其他语言的系统中。目前SWIG已经可以支持Python, Java, C#,Ruby,PHP,R语言等十多种语言。 官方网址&…

Android项目实战开发-----期末总结2

项目三:网络层和数据模型的封装 任务一:网络请求和数据解析 1,网络请求 (1)Android中的网络存储主要是使用HTTP/HTTPS协议访问服务器,与服务器发生数据交互。 (2)Android提供两种…

python -- python安装

1、python的诞生和发展: python语言是一种解释型、面向对象型、动态数据类型的高级程序设计语言。 2、python的安装: 1、安装解析器: 在安装的过程中需要注意的是: 在安装pycharm的时候也是同样的道理,需要指定安装…