ReID专栏 任务与数据集概述
Posted CV技术指南(微信公众号)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ReID专栏 任务与数据集概述相关的知识,希望对你有一定的参考价值。
前言 本专栏针对Closed-world的ReID任务,首先介绍本任务的目标与主要数据集,包括行人重识别、跨模态行人重识别与车辆重识别。然后从三类表征学习的角度解读相关论文,表征学习是本任务的核心,大量重识别工作都致力于提高表征学习的性能。再次,我们介绍了度量学习和排序优化的发展。最后,我们解读了重识别领域最新的研究方法和研究思路。
本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【CV技术指南】CV全栈指导班、基础入门班、论文指导班 全面上线!!
任务概述
ReID( Re-identification),是利用计算机视觉技术判断图像或视频中是否存在特定行人或车辆的技术,它是属于图像检索的一个子任务。ReID的概念最早在2006年的CVPR会议上被提出,简单来说,在监控拍不到目标的情况下,ReID可以代替行人、车辆识别来在视频中找到目标对象。
现阶段的reid问题主要分为两大类:closed-world和open-world。closed-world重在研究,主要是从一大堆行人或车辆的bounding box图片中去检索目标,而open-world重在“落地”,主要是直接从视频中去检索目标,或者是偏向无监督、弱监督学习。以下是两个world的具体区别:
ReID作为匹配任务在测试时会用到两个数据集,Query sets 和Gallery sets,主要有以下特征:ReID数据集:1.数据集分为训练集、验证集、Query sets、Gallery sets 2.数据集通常是通过人工标注或者检测算法得到的行人、车辆图片,目前与检测独立,每个行人或车辆为一个类别子集 3.在训练集上进行模型的训练,得到模型后对Query与Gallery中的图片提取特征计算相似度,对于每个Query在Gallery中找出前N个与其相似的图片 4.训练、测试中目标身份不重复
总体步骤:
行人重识别
任务难点:
- Gallery中同一个行人照片的视角不一样
- 光照条件不一样
- 行人在照片中的尺寸很小,也就导致了行人的bounding box像素很低
- 行人的姿势不一样
- 可能存在遮挡
而对于现实的“落地”,难点就更多了:
- 摄像机可能在不断增加,拍摄的场景也就更加复杂
- Gallery十分巨大
- 训练时可能不存在标注的信息(也就是需要无监督或者弱监督学习)
- 对网络的泛化能力要求很高(跨域)
- testing环节是未知的
- 行人可能换衣服了
数据集
单模态
经典数据集:
Market-1501:Person Re-Identification Meets Image Search:
链接:https://pan.baidu.com/s/1ntIi2Op
2015年,论文 Person Re-Identification Meets Image Search 提出了 Market 1501 数据集,现在 Market 1501 数据集已经成为行人重识别领域最常用的数据集之一。
Market 1501 的行人图片采集自清华大学校园的 6 个摄像头,一共标注了 1501 个行人。其中,751 个行人标注用于训练集,750 个行人标注用于测试集,训练集和测试集中没有重复的行人 ID,也就是说出现在训练集中的 751 个行人均未出现在测试集中。
训练集:751 个行人,12936 张图片 测试集:750 个行人,19732 张图片 query 集:750 个行人,3368 张图片 query 集的行人图片都是手动标注的图片,从 6 个摄像头中为测试集中的每个行人选取一张图片,构成 query 集。测试集中的每个行人至多有 6 张图片,query 集共有 3368 张图片。
网络模型训练时,会用到训练集;测试模型好坏时,会用到测试集和 query 集。此时测试集也被称作 gallery 集。因此实际用到的子集为,训练集、gallery 集 和 query 集。
MARS: A Video Benchmark for Large-Scale Person Re-identification(基于视频)
链接:https://pan.baidu.com/s/1XKBdY8437O79FnjWvkjusw 提取码: ymc5
考虑了视频中的人员再识别(reid)问题,本文介绍了一个新的视频reid数据集,名为运动分析和重新识别集(MARS),是Market-1501 datase数据集的视频扩展。
MARS是迄今为止最大的视频reid数据集,它包含1,261个id和大约20,000个tracklet,与基于图像的数据集相比,它提供了丰富的视觉信息。
DukeMTMC-reID:Unlabeled Samples Generated by GAN Improve the Person Re-identification Baseline in vitro
链接:https://drive.google.com/open?id=1jjE85dRCMOgRtvJ5RQV9-Afs-2_5dY3O
它的行人数据来源于论文 Performance Measures and a Data Set for Multi-Target, Multi-Camera Tracking 提出的行人追踪 DukeMTMC 数据集,DukeMTMC-reID 是 DukeMTMC 数据集的一个子集。需要注意的是,该数据集存在隐私泄露问题,作者已在官方渠道下架数据集。目前部分顶会文章仍在使用。
DukeMTMC 数据集采集自 Duke 大学的 8 个摄像头,数据集以视频形式存储,具有手动标注的行人边界框。DukeMTMC-reID 数据集从 DukeMTMC 数据集的视频中,每 120 帧采集一张图像构成 DukeMTMC-reID 数据集。原始数据集包含了85分钟的高分辨率视频,采集自8个不同的摄像头。并且提供了人工标注的bounding box。从视频中每120帧采样一张图像,得到了 36,411张图像。一共有1,404个人出现在大于两个摄像头下,有408个人只出现在一个摄像头下。所以作者随机采样了 702 个人作为训练集,702个人作为测试集。在测试集中,采样了每个ID的每个摄像头下的一张照片作为 查询图像(query)。剩下的图像加入测试的 搜索库(gallery),并且将之前的 408人作为干扰项,也加到 gallery中。最终,DukeMTMC-reID 包含了 16,522张训练图片(来自702个人), 2,228个查询图像(来自另外的702个人),以及 17,661 张图像的搜索库(gallery)。并提供切割后的图像供下载。
跨模态
RegDB:Person Recognition System Based on a Combination of Body Images from Visible Light and Thermal Cameras
数据集RegDB包含了412个行人身份,每个行人收集了10张RGB图像和10张热图像,其中有254个女性和158个男性,并且412个人中有156个人是从正面拍摄,256个人从背面拍摄。
SYSU-MM01(最常用)
链接:https://pan.baidu.com/share/init?surl=mAp_722PlqXCLYAzJi5mSw 提取码:sysu
491和人物ID,296个用于训练,99个用于验证,96个用于测试,287,628 RGB images and 15,792 IR images。4个RGB相机,2个红外相机。
SYSU_MM01数据集共包含七个文件夹, 其中cam1,cam2,cam4,cam5均为RGB图像,cam3和cam6为IR(Infrared)图像.
车辆重识别
任务难点:
- 摄像机的拍摄角度不同
- 光照强度不同
- 车辆间遮挡、环境遮挡
- 色差变化
- 车头车尾角度不同
- 同型号车相似度极高
数据集
VeRi776:A Deep Learning-Based Approach to Progressive Vehicle Re-identification for Urban Surveillance
链接:https://vehiclereid.github.io/VeRi/
包含超过50,000张776辆车的图像,这些图像由20台摄像机拍摄,在24小时内覆盖1.0平方公里的面积,这使得该数据集可扩展到足以用于车辆Re-Id和其他相关研究。图像是在真实世界的无约束监视场景中捕获的,并标有不同的属性,例如:BBox,类型,颜色和品牌。因此可以学习和评估车辆Re-Id的复杂模型。每辆车在不同的视点,照明,分辨率和遮挡下由2~18台摄像机拍摄,在实际监控环境中为车辆Re-Id提供高复发率。它还标有足够的牌照和时空信息,例如板块的BBox,板条,车辆的时间戳以及相邻相机之间的距离。
VehicleID:Deep Relative Distance Learning: Tell the Difference Between Similar Vehicles
链接:https://www.pkuml.org/resources/pku-vehicleid.html
数据集包含白天在中国一个小城市中分布的多个真实监控摄像头捕获的数据,其中包括26267辆车(共221763张图像),主要包含前后两种视角,且每张图像除了车辆ID、摄像头编号的标注信息以外,还有车辆型号的详细信息(共 250 种厂商车型),为了使车辆再识别方法的性能评测更加全面,VehicleID将测试集按照车辆图像的尺寸划分为大、中、小3个子集。每个图像都带有一个与现实世界中的身份相对应的id标签。此外,作者手动标记了10319辆车辆(共90196张图像)的车辆型号信息。
VERI-Wild: A Large Dataset and a New Method for Vehicle Re-Identification in the Wild
链接:https://pan.baidu.com/share/init?surl=FzvR5iRQgh8ZbSYZPbi9aQ 提取码:kob9
该数据集收集于市郊地区,包含174个交通摄像头拍摄的 416 314 张关于 40 671 辆汽车的图像。VERI-Wild是在超过200平方公里的市郊地区收集得到的,摄像机是24小时连续拍摄30天,其长时间的连续拍摄考虑了车辆真实的各种天气和光照问题,因此车辆在被捕获的过程中不受过多限制,且车辆所处场景更加丰富,车辆图像的采集时间跨度长,光照和天气的变化十分明显。训练集包括277 797张图像(共30 671辆汽车),测试集包括138 517张图像(共10 000辆汽车)。同样地,VERI-Wild的测试集也根据图像尺寸被分为了大、中、小3个子集。
评价指标
- Rank-n:图像库搜索中置信度最靠前的 n 张图片中有正确结果的概率。例如 Rank-5 代表,搜索库中计算置信度排序,置信度最高的前 5 张图片中有正确结果的概率。
- mAP 与 mINP:AP 的计算和目标检测 AP 计算类似,即求不同 Recall 对应Precision 的平均值,mAP 为 AP 的平均值;mINP(mean Inverse Negative Penalty)计算公式如下:
即 平均逆置负样本惩罚率。
小结
在后续的分享中,我们将从全局表征学习、局部表征学习和f辅助表征学习的思路去详细介绍这一领域的发展,然后介绍重识别中有关度量方法的进展,这与其他视觉任务的度量有较大区别。最后,我们总结重识别最新的赛道和未来的发展方向。
欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。
【技术文档】《从零搭建pytorch模型教程》122页PDF下载
QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。
其它文章
CVPR\'23|泛化到任意分割类别?FreeSeg:统一、通用的开放词汇图像分割新框架
全新YOLO模型YOLOCS来啦 | 面面俱到地改进YOLOv5的Backbone/Neck/Head
通用AI大型模型Segment Anything在医学图像分割领域的最新成果!
可复现、自动化、低成本、高评估水平,首个自动化评估大模型的大模型PandaLM来了
实例:手写 CUDA 算子,让 Pytorch 提速 20 倍
BEV专栏(一)从BEVFormer深入探究BEV流程(上篇)
可见光遥感图像目标检测(三)文字场景检测之Arbitrary
深度学习目标分割概述
目录
1 图像分割的定义
计算机视觉旨在识别和理解图像中的内容,包含三大基本任务:图像分类(图a)、目标检测(图b)和图像分割,其中图像分割又可分为:语义分割(图c)和实例分割(图d)。
这三个任务对图像的理解逐步深入。假设给定一张输入图像,
-
图像分类旨在判断该图像所属类别。
-
目标检测是在图像分类的基础上,进一步判断图像中的目标具体在图像的什么位置,通常是以外包矩形(bounding box)的形式表示。
-
图像分割是目标检测更进阶的任务,目标检测只需要框出每个目标的包围盒,语义分割需要进一步判断图像中哪些像素属于哪个目标。但是,语义分割不区分属于相同类别的不同实例。如上图所示,当图像中有多个cube时,语义分割会将所有立方体整体的所有像素预测为“cube”这个类别。与此不同的是,实例分割需要区分出哪些像素属于第一个cube、哪些像素属于第二个cube……。
-
定义:在计算机视觉领域,图像分割(Object Segmentation)指的是将数字图像细分为多个图像子区域(像素的集合)的过程,并且同一个子区域内的特征具有一定相似性,不同子区域的特征呈现较为明显的差异。
图像分割的目标就是为图像中的每个像素分类。应用领域非常的广泛:自动驾驶、医疗影像,图像美化、三维重建等等。
- 自动驾驶(Autonomous vehicles):汽车需要安装必要的感知系统以了解它们的环境,这样自动驾驶汽车才能够安全地驶入现有的道路
- 医疗影像诊断(Medical image diagnostics):机器在分析能力上比放射科医生更强,而且可以大大减少诊断所需时间。
图像分割是一个非常困难的问题,尤其是在深度学习之前。深度学习使得图像分割的准确率提高了很多,接下来主要围绕深度学习方法给大家介绍图像分割的内容。
2 任务类型
2.1 任务描述
简单来说,我们的目标是输入一个RGB彩色图片(height×width×3)或者一个灰度图(height×width×1),然后输出一个包含各个像素类别标签的分割图(height×width×1)。如下图所示:
与我们处理分类值的方式类似,预测目标可以采用one-hot编码,即为每一个可能的类创建一个输出通道。通过取每个像素点在各个channel的argmax可以得到最终的预测分割图,(如下图所示):
比如:person的编码为:10000,而Grass的编码为:00100
当将预测结果叠加到单个channel时,称这为一个掩膜mask,它可以给出一张图像中某个特定类的所在区域:
2.2 任务类型
目前的图像分割任务主要有两类: 语义分割和实例分割
我们以下图为例,来介绍这两种分割方式:
- 语义分割就是把图像中每个像素赋予一个类别标签,如下图我们将图像中的像素分类为人,羊,狗,草地即可。
- 实例分割,相对于语义分割来讲,不仅要区分不同类别的像素,还需要需要对同一类别的不同个体进行区分。如下图所示,不仅需要进行类别的划分,还要将各个个体划分出来:羊1,羊2,羊3,羊4,羊5等。
目前图像分割的任务主要集中在语义分割,而目前的难点也在于“语义”,表达某一语义的同一物体并不总是以相同的形象出现,如包含不同的颜色、纹理等,这对精确分割带来了很大的挑战。而且以目前的模型表现来看,在准确率上还有很大的提升空间。而实例分割的思路主要是目标检测+语义分割,即用目标检测方法将图像中的不同实例框出,再用语义分割方法在不同检测结果内进行逐像素标记。
3 常用的开源数据集
图像分割常用的数据集是PASCAL VOC,城市风光数据集,coco数据集等。
3.1 VOC数据集
VOC数据集共有20类数据,目录结构如下图所示:
这个在目标检测概述一节中已经给大家介绍过,接下来我们主要介绍目标分割相关的内容:
- JPEGImages中存放图片文件
- imagesets中的segmentation中记录了用于分割的图像信息
- SegmentationClass中是语义分割的标注信息
- SegmentationObject中是实例分割的标注信息
VOC中的图片并不是所有都用于分割,用于分割比赛的图片实例都记录在txt文件中,如下图所示:
相关的图像记录在相应的文本文件中,如训练集数据记录在train.txt文件中,其中内容如下:
那我们就可以使用这些数据进行图像分割模型的训练。图像的标注效果如下图所示:
原图像002378.jpg的语义分割和实例分割的标注结果如上所示,背景是黑色的,不同类别的像素标注为不同的颜色。可以看出,语义分割只标注了像素的类别,而实例分割不仅标注了类别,还对同一类别的不同个体进行了区分。
在写程序的时候就利用 train.txt 对图片进行挑选,因为不是所有的图片都有分割真实值,获取图片及其对应的真实值,对网络进行训练即可。
3.2 城市风光Cityscapes数据集
Cityscapes是由奔驰于2015年推出的,提供无人驾驶环境下的图像分割数据集。它包含50个城市不同场景、不同背景、不同季节的街景,提供了5000张在城市环境中驾驶场景的高质量像素级注释图像(其中 2975 for train,500 for val,1525 for test)。
Cityscapes是目前公认的自动驾驶领域内最具权威性和专业性的图像语义分割评测集之一,其关注真实场景下的城区道路环境理解,任务难度更高且更贴近于自动驾驶等热门需求。接下来我们看下数据的内容,数据集的文件目录结构如下图所示:
其中txt文件中保存了相关样本图片的路径和文件名,便于查找相应的数据,我们主要使用数据是leftImg8bit和gtFine中的内容,如下所示:
- leftImg8bit文件夹有三个子目录:test, train以及val,分别为测试集,训练集以及验证集图片。这三个子目录的图片又以城市为单元来存放,如下图所示:
这里解释下leftImg8bit的含义,因为cityscapes实际上来源于双摄像头拍摄的立体视频序列,所以这里的leftImg就是来自于左摄像头的图片,而8bit意味着该图片集都为RGB每个分量为8bit的图片。
- gtFine是样本图片对应的标注信息,gtFine下面也是分为train, test以及val,然后它们的子目录也是以城市为单位来放置图片。这些都是和leftImg8bit的一一对应。 不同的是,在城市子目录下面,每张样本图片对应有6个标注文件,如下所示:
精细标注数据集里面每张图片只对应四张标注文件:xxx_gtFine_color.png, xxx_gtFine_instanceIds.png, xxx_gtFine_labelsIds.png以及xxx_gtFine_polygons.json。 xxx_color.png是标注的可视化图片,真正对训练有用的是后面三个文件。xxx_instanceIds.png是用来做实例分割训练用的,而xxx_labelsIds.png是语义分割训练需要的。而最后一个文件xxx_polygons.json主要记录了每个多边形标注框上的点集坐标。
该数据集的标注效果可视化如下所示:
4 评价指标
图像分割中通常使用许多标准来衡量算法的精度。这些标准通常是像素精度及IoU的变种,以下我们将会介绍常用的几种逐像素标记的精度标准。
为了便于解释,假设如下:共有k+1个类(从L0到Lk,其中包含一个背景类),pij表示本属于类ii但被预测为类jj的像素。即pii表示预测正确的像素。
4.1 像素精度
Pixel Accuracy(PA,像素精度):这是最简单的度量,为预测正确的像素占总像素的比例。
对于样本不均衡的情况,例如医学图像分割中,背景与标记样本之间的比例往往严重失衡。因此并不适合使用这种方法进行度量。
4.2 平均像素精度
Mean Pixel Accuracy(MPA,平均像素精度):是PA的一种简单提升,计算每个类内被正确分类像素数的比例,之后求所有类的平均。
4.3 平均交并比
Mean Intersection over Union(MIoU,平均交并比):为语义分割的标准度量,其计算两个集合的交集和并集之比,在语义分割的问题中,这两个集合为真实值(ground truth)和预测值(predicted segmentation)。交集为预测正确的像素数(intersection),并集为预测或真实值为ii类的和减去预测正确的像素,在每个类上计算IoU,之后求平均即可。
那么,如何理解这里的公式呢?如下图所示,红色圆代表真实值,黄色圆代表预测值。橙色部分红色圆与黄色圆的交集,即预测正确的部分,红色部分表示假负(真实值为该类预测错误)的部分,黄色表示假正(预测值为i类,真实值为其他)的部分。
MIoU计算的是计算A与B的交集(橙色部分)与A与B的并集(红色+橙色+黄色)之间的比例,在理想状态下A与B重合,两者比例为1 。
在以上所有的度量标准中,MIoU由于其简洁、代表性强而成为最常用的度量标准,大多数研究人员都使用该标准报告其结果。PA对于样本不均衡的情况不适用。
5 总结
- 图像分割的定义
图像分割(Object Segmentation)指的是将数字图像细分为多个图像子区域(像素的集合)的过程,并且同一个子区域内的特征具有一定相似性,不同子区域的特征呈现较为明显的差异。
- 图像分割的任务类型
图像分割的任务就是给图像中的每一个像素点进行分类
语义分割和实例分割
- 图像分割的常见数据集
Voc 数据集,城市风光数据集,coco数据集等
- 图像分割的评估指标
像素精度(PA),平均像素精度(mPA)和 平均交并比(mIOU)
最常用的是MIOU
以上是关于ReID专栏 任务与数据集概述的主要内容,如果未能解决你的问题,请参考以下文章