深度学习基础与实践 课件 10.2_ResNet行人重识别实战.pptx
ResNet行人重识别实战;
行人重识别的介绍
行人重识别,是指在给定某个监控摄像机下的行人图像,利用行人的外观特征,在不重叠的跨域场
景下摄像机拍摄的行人图像集合中准确的检索到该特定行人。广泛应用于智能城市,刑事侦查等重要的
应用场景中。;
行人重识别主要是在多摄像头多场景下,识别行人身
份一项技术。由于是在无约束场景下识别行人,因此会受
到外观;姿态;遮挡;光线;检测误差等一些难点问题,比如
行人外观上会存在非常相似的问题,在姿态方面会存在非
刚性变换,造成检测部位不匹配,在遮挡方面会存在行人身体遮挡,这也是行人识别需要克服一大难题,光线较暗,起雾,也会问题识别上的问题。;
行人重识别系统一般是分两步骤:先检测+再识别。而当前的行人重识别研究重点是识别。它的主要任
务包含特征提取和相似度量两个步骤。传统的方法思路为手工提取图像特征,例如颜色。但是它很难适应复杂场景下的大量数据量任务。近年来,更多以卷积神经网络来提取行人图像的深层次特征。;
行人重识别的介绍
基于不同损失函数的行人识别模型:表征学习和度量学习
表征学习:直接在训练网络的时候考虑图片间的相似度,而把行人重识别任务当做分类问题或者验证问
题来看待。表征学习下的损失函数包括:分类损失和验证损失。
分类损失包括两大类,一类是属性损失,例如行人外貌标签,有没有戴帽子,是否为短头发,一类
是ID损失,是否是小明,及确定行人的ID。
验证损失:输入一对(两张)行人图片,让网络来学习这两张图片是否属于同一个行人,等效于二
分类问题。下图中:图片通过主干是Resnet网络提取到的特征后,再经过平均池化,与各个全连接层连接分别计算分类损失。;
行人重识别的介绍
度量学习:
基于表征模型的Re-id模型存在一个问题,因为最后一层是分类ID层,它会随着行人ID的n的增大
而增大。因此只适用于闭集下的情况。将行人重识别问题看作是距离问题:通过网络提取到样本的特
征,然后定义一个度量函数来计算两个特征向量的距离,最后通过最小化网络度量损失,来寻找一个
最优的映射fx。使得相同行人两张图片的距离尽可能小,不同行人图片尽可能大。如下图:;
Market1501行人重识别数据集
Market1501数据集简介
Market-1501数据集在清华大学校园中采集,夏天拍摄,在2015年构建并公开。它包
括由6个摄像头(其中5个高清摄像头和1个低清摄像头)拍摄到的1501个行人、32668个检
测到的行人矩形框。每个行人至少由2个摄像头捕获到,并且在一个摄像头中可能具有多张图
像。训练集有751人,包含12,936张图像,平均每个人有17.2张训练数据;测试集有;
bounding_box_test——用于测试集的750人,包含19,732张图像,前缀为0000表示-1表示为垃圾图片,也就是
不完整图片,可以图仅拍摄到了四肢等情况。
bounding_box_train——用于训练集的751个不同的人,包含12,936张图像。训练集中没有与测试集中的人。query——为750人在每个摄像头中随机选择一张图像作为query,因此一个人的query最多有6个,共有3,368张图像,都来自测试集。
gt_query——对query集中3,368张图像加注了好或坏的标签,可用于图像质量评估。
gt_bbox——包括对25259张图片手工标注的boundingbox,这些图片来自训练集和测试集中的1501个人的照片。可用
于判断DPM检测的boundingbox是不是一个好的box。;
02Market1501行人重识别数据集
图片命名规则
图片命名规则:0001_c1s1_000151_01.jpg为例:0001表示每个人的标签编号,从0001到1501;c1表示第一个摄像头(camera1),共有6个摄像头;s1表示第一个录像片段(sequece1),每个摄像机都有数个录像段;000151表示c1s1的第000151帧图片,视频帧率25fps;01表示c1s1_001051这一帧上的第1个检测框,由于采用DPM检测器,对于每一帧上的行人可能会框出好几个bbox。00表示手工标注框。;
Market1501行人重识别数据集
Junkimage
Market1501在采样图片时候,会采样到一些垃圾图片,这种图片只拍摄到部分肢体,例
如:脚、手、上半身、没有训练价值的图像。在训练阶段时,会选择删除掉这些这些以0000和
-1开头的图片。;
03Pytorch实现行人重识别
数据集管理器data_manager
在数据集管理器,首先指定各个文件路径:使用变量来存储训