什么是Re-ID?

  • 行人重识别(Person re-identification,简称Re-ID)也称行人再识别,是利用计算机视觉技术判断图像或者视频序列中是否存在特定行人的技术。广泛被认为是一个图像检索的子问题。给定一个监控行人图像,检索跨设备下的该行人图像。旨在弥补目前固定的摄像头的视觉局限,并可与行人检测/行人跟踪技术相结合,可广泛应用于智能视频监控、智能安保等领域。
  • 如下图所示:一个区域有多个摄像头拍摄视频序列,ReID的要求对一个摄像头下感兴趣的行人,检索到该行人在其他摄像头下出现的所有图片。


为什么要Re-ID?

在监控视频中,由于相机分辨率和拍摄角度的缘故,通常无法得到质量非常高的人脸图片。当人脸识别失效的情况下,ReID就成为了一个非常重要的替代品技术。


研究形式

  • 数据集通常是通过人工标注或者检测算法得到的行人图片,目前与检测独立,注重识别
  • 数据集分为训练集、验证集、Query、Gallery
  • 在训练集上进行模型的训练,得到模型后对Query与Gallery中的图片提取特征计算相似度,对于每个Query在Gallery中找出前N个与其相似的图片
  • 训练、测试中人物身份不重复


两大方向

  • 特征提取:学习能够应对在不同摄像头下行人变化的特征
  • 度量学习 :将学习到的特征映射到新的空间使相同的人更近不同的人更远

存在挑战

  • 不同下摄像头造成行人外观的巨大变化;
  • 目标遮挡(Occlusion)导致部分特征丢失;
  • 不同的 View,Illumination 导致同一目标的特征差异;
  • 不同目标衣服颜色近似、特征近似导致区分度下降;

常用数据集

CUHK03

Market1501

DukeMTMC-reID

MSMT17

这里只列举了常用的数据集,更全的数据集可以参考:Person Re-identification Datasets


常用评价指标

  • rank-k:算法返回的排序列表中,前k位为存在检索目标则称为rank-k命中。eg:rank1:首位为检索目标则rank-1命中。
  • Cumulative Match Characteristic (CMC)

举个很简单的例子,假如在人脸识别中,底库中有100个人,现在来了1个待识别的人脸(假如label为m1),与底库中的人脸比对后将底库中的人脸按照得分从高到低进行排序,我们发现:

如果识别结果是m1、m2、m3、m4、m5……,则此时rank-1的正确率为100%;rank-2的正确率也为100%;rank-5的正确率也为100%;

如果识别结果是m2、m1、m3、m4、m5……,则此时rank-1的正确率为0%;rank-2的正确率为100%;rank-5的正确率也为100%;

如果识别结果是m2、m3、m4、m5、m1……,则此时rank-1的正确率为0%;rank-2的正确率为0%;rank-5的正确率为100%;

同理,当待识别的人脸集合有很多时,则采取取平均值的做法。例如待识别人脸有3个(假如label为m1,m2,m3),同样对每一个人脸都有一个从高到低的得分,

比如:

人脸1结果为m1、m2、m3、m4、m5……,

人脸2结果为m2、m1、m3、m4、m5……,

人脸3结果m3、m1、m2、m4、m5……,

则此时rank-1的正确率为(1+1+1)/3=100%;

rank-2的正确率也为(1+1+1)/3=100%;

rank-5的正确率也为(1+1+1)/3=100%;

比如:

人脸1结果为m4、m2、m3、m5、m6……,

人脸2结果为m1、m2、m3、m4、m5……,

人脸3结果m3、m1、m2、m4、m5……,

则此时rank-1的正确率为(0+0+1)/3=33.33%;

rank-2的正确率为(0+1+1)/3=66.66%;

rank-5的正确率也为(0+1+1)/3=66.66%;

curve:计算rank-k的击中率,形成rank-acc的曲线,如下图:

  • mAP(mean average precision):反应检索的人在数据库中所有正确的图片排在排序列表前面的程度,能更加全面的衡量ReID算法的性能。如下图,假设该检索行人在gallery中有10张图片,在检索的list中位置(rank)分别为1、2、3、4、5、6、7、8、9,则ap为(1/ 1 + 2 / 2 + 3 / 3 + 4 / 4 + 5 / 5 + 6 / 6 + 7 / 7 + 8 / 8 + 9 / 9) / 10 = 0.90;ap较大时,该行人的检索结果都相对靠前,对所有query的ap取平均值得到mAP

一般来说,Precision就是检索出来的条目(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。

正确率 = 检测出来的正样本数/检测出来的总数

召回率 = 检测出来的正样本数/所有正样本个数

我们来举一个新的例子。

假设有一个搜索引擎,根据搜索引擎,有如下结果:

搜索1相关的样本总共有5个: 正,正,正,正,正

Rank1
Recall 1/5=0.2 1/5=0.2 2/5=0.4 2/5=0.4 2/5=0.4 3/5=0.6 3/5=0.6 3/5=0.6 4/5=0.8 5/5=1.0
Precision 1/1=1.0 1/2=0.5 2/3=0.66 2/4=0.5 2/5=0.4 3/6=0.5 3/7=0.42 3/8=0.38 4/9=0.44 7/10=0.5

Precision从左到右1/1, 1/2, 2/3, 2/4…以此类推 

搜索2相关样本总共有3个,以下是搜索引擎返回的结果

Rank1
Recall 0.33 0.33 0.33 0.66 1 1 1
Precision 1.0 0.5 0.33 0.5 0.6 0.5 0.43

我们把每个正样本所对应的Precision求平均

搜索1的mAP:mAP = (1/1 + 2/3 + 3/6 + 4/9+ 5/10) / 5 = 0.72

搜索2的mAP: mAP = (1/1 + 2/4 + 3/5) / 3 = 0.63

整体的mAP = (0.72 + 0.63) /2 = 0.675

行人重识别(ReID) ——概述的更多相关文章

  1. 行人重识别(ReID) ——数据集描述 DukeMTMC-reID

    数据集简介 DukeMTMC 数据集是一个大规模标记的多目标多摄像机行人跟踪数据集.它提供了一个由 8 个同步摄像机记录的新型大型高清视频数据集,具有 7,000 多个单摄像机轨迹和超过 2,700 ...

  2. 行人重识别(ReID) ——数据集描述 Market-1501

    数据集简介 Market-1501 数据集在清华大学校园中采集,夏天拍摄,在 2015 年构建并公开.它包括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的 1501 个行人.32668 个 ...

  3. 行人重识别(ReID) ——基于深度学习的行人重识别研究综述

    转自:https://zhuanlan.zhihu.com/p/31921944 前言:行人重识别(Person Re-identification)也称行人再识别,本文简称为ReID,是利用计算机视 ...

  4. 行人重识别(ReID) ——技术实现及应用场景

    导读 跨镜追踪(Person Re-Identification,简称 ReID)技术是现在计算机视觉研究的热门方向,主要解决跨摄像头跨场景下行人的识别与检索.该技术能够根据行人的穿着.体态.发型等信 ...

  5. 行人重识别(ReID) ——数据集描述 CUHK03

    数据集简介 CUHK03是第一个足以进行深度学习的大规模行人重识别数据集,该数据集的图像采集于香港中文大学(CUHK)校园.数据以"cuhk-03.mat"的 MAT 文件格式存储 ...

  6. 行人重识别(ReID) ——基于Person_reID_baseline_pytorch修改业务流程

    下载Person_reID_baseline_pytorch地址:https://github.com/layumi/Person_reID_baseline_pytorch/tree/master/ ...

  7. 行人重识别(ReID) ——基于MGN-pytorch进行可视化展示

    下载MGN-pytorch:https://github.com/seathiefwang/MGN-pytorch 下载Market1501数据集:http://www.liangzheng.org/ ...

  8. CVPR2020行人重识别算法论文解读

    CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...

  9. 行人重识别和车辆重识别(ReID)中的评测指标——mAP和Rank-k

    1.mAP mAP的全称是mean Average Precision,意为平均精度均值(如果按照原来的顺利翻译就是平均均值精度).这个指标是多目标检测和多标签图像分类中长常用的评测指标,因为这类任务 ...

随机推荐

  1. 10分钟学会React Context API

    Create-react-app来学习这个功能: 注意下面代码红色的即可,非常简单. 在小项目里Context API完全可以替换掉react-redux. 修改app.js import React ...

  2. sift特征点检测和特征数据库的建立

    类似于ORBSLAM中的ORB.txt数据库. https://blog.csdn.net/lingyunxianhe/article/details/79063547   ORBvoc.txt是怎么 ...

  3. 洛谷P4391 [BOI2009]Radio Transmission 无线传输——题解

    题目传送 假如我们有一个用于循环连接的最短串ans,考虑用它造出来的数据(即输入的字符串s)有什么特点.发现:ans自我连接出一个大串z后从中取出的一个子串即为s,对s造一个KMP算法中的next数组 ...

  4. #1126-JSP客户端请求

    JSP 客户端请求 当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的.您可以查阅HTTP协议来获得更多的信息. 下表列出了浏览器 ...

  5. Java中使用Redis的几种数据类型总结

    1.String,最基本的类型 方法  set.get 2.hash redis 127.0.0.1:6379> HMSET user:1 username redis.net.cn passw ...

  6. windows 2008 gpt

    新服务器,4T硬盘,U盘安装Windows Server 2008 R2. 把2008的镜像用UltraISO写入U盘. 安装到分区那块,主分区200G,剩余分区系统自动给分为: 2T + 剩余 两块 ...

  7. 高通平台Camera调试(一)【转】

    本文转载自:http://www.voidcn.com/blog/Winva/article/p-6044730.html 4.3. Camera 参考文档: 1) 80-NA157-22_PRESE ...

  8. 1px渲染成2px的场景及解决方案

    1.场景一: IE6 下默认div最小高度为2px,如何创建高为1px的容器? .minContainer{font-size:0px;overflow:hidden}   2.场景二: 移动端高分辨 ...

  9. leetcode 258. 各位相加 (python)

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 38输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2. 由于 2 是一位数,所以 ...

  10. ES与CQRS之旅

    引言 领域驱动设计(Domain Driven Design),使用统一的建模语言.专注业务领域分析.采取化整为零并反复迭代的方式,以业务领域模型为圆心,向外辐射到系统轮廓的勾勒.具体模块的实现,为我 ...