基于SSD+ReID的行人重识别

1、 实现方法
  主要利用SSD和ReID两层网络实现行人重识别功能,首先利用SSD做为前端网络监测出图片中的行人,再把监测的行人从原图中切割下来和须要识别的人的图片 一块儿送入到后端网络ReID中判断是否为同一人。html

2、 SSD和ReID原理
  这里简单介绍一下SSD和ReID网络的结构,详细原理了解请查看论文原文,本文末尾附有论文连接。
2.1 SSD结构简介
  SSD算法是一种直接预测目标类别和bounding box的多目标检测算法。与faster rcnn相比,该算法没有生成 proposal 的过程,这就极大提升了检测速度。针对不一样大小的目标检测,传统的作法是先将图像转换成不一样大小(图像金字塔),而后分别检测,最后将结果综合起来(NMS)。而SSD算法则利用不一样卷积的 feature map 进行综合也能达到一样的效果。算法的主网络结构是VGG16,将最后两个全链接层改为卷积层,并随后增长了4个卷积层来构造网络结构。对其中5种不一样的卷积层的输出(feature map)分别用两个不一样的 3×3 的卷积核进行卷积,一个输出分类用的confidence,每一个default box 生成21个类别confidence;一个输出回归的 localization,每一个 default box 生成4个坐标值(x, y, w, h)。此外,这5个feature map还通过 PriorBox 层生成 prior box(生成的是坐标)。上述5个feature map中每一层的default box的数量是给定的(8732个)。最后将前面三个计算结果分别合并而后传给loss层。SSD网络结构图以下图1所示(转载自https://www.cnblogs.com/xuanyuyt/p/7447111.html)
网络结构
                      图1 SSD网络结构图前端

2.2 ReID结构简介
  ReID提出了一种深度神经网络体系结构,它将人员从新识别的问题表述为二元分类。 给定一对输入图像,任务是肯定两个图像是否表明同一我的。 图2说明了咱们网络的体系结构。ReID网络由如下不一样的层组成:两层绑定卷积,具备最大池,交叉输入邻域差别,跨补丁特征,全链接层,最后是softmax函数,以产生输入图像是否属于同一我的的最终估计。
在这里插入图片描述
                        图2 ReID网络结构图
2.3 训练过程
  SSD采用基于imageNet的VGG16做为提取图像特征的预训练模型,在VOC2007数据集上训练,ReID采用CUHK03数据集进行训练,没有采用任何预训练模型。web

3、测试效果
两个模型训练完成之后从网上找了两张图片进行了测试,测试过程和效果以下:
           在这里插入图片描述
                          图3
                         在这里插入图片描述
                          图4  
             在这里插入图片描述
                          图5算法

如上所示,我首先把穿红色格子衫的女生从图3中截取出来做为须要重识别的行人ID图片,再把图4和图5输入到训练好的PersonReID(SSD+ReID)中运行会获得以下结果:
         在这里插入图片描述后端

4、参考论文:网络

  1. SSD:https://arxiv.org/abs/1512.02325
  2. ReID:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7299016