行人重识别(REID)——原理方法

行人重识别:短时

  • 类内差异增大,类间差异减小

应用——行人跟踪

  1. 单摄像头单目标
  2. 单摄像头多目标
  3. 多摄像头多目标

行人重识别系统

行人重识别(REID)——原理方法_第1张图片

  1. 特征提取

    学习能够应对在不同摄像头下行人变化的特征

  2. 度量学习

    将学习到的特征映射到新的空间使相同的人更近,不同的人更远

  3. 图像检索

    根据图片特征之间的距离进行排序,返回检索结果

评价模式

  • single query vs multi query

    Single query是指probe中每个人的图像为一张(N=1),而multi query是指probe中每个人的图像为N>1张图像,然后融合N张图片的特征(最大池化或者平均池化)作为最终特征。同样的Rank-k下,一般N越大,得到的识别率越高。

特征

全局特征

每一张图片的全局信息进行一个特征抽取,全局特征没有任何的空间信息。

  • 噪声区域会对全局特征造成极大的干扰
  • 姿态的不对齐也会使全局特征无法匹配

局部特征

对图像的某一个区域进行特征提取,最后将多个局部特征融合起来作为最终特征

水平切块 ★★★

  • 将图像进行水平方向的等分,每一个水平切块通过水平池化提取一个特征

  • Gate Siamese 和 AlignedReID 通过设计规则融合所有的局部特征计算距离

  • PCB,ICNN,SCPNet 对每一个局部特征计算一个 ReID 损失,直接将局部特征拼接起来

  • 联合局部特征和全局特征往往能够得到更好的结果

Gate Siamese

  • 每一块经过 CNN 网络得到特征,局部特征按顺序输入到 LSTM 网络,自动表达为图像最终的特征
  • 利用对比损失训练网络

AlignedReID

  • 主要解决姿态不对齐的问题

  • 骨架网络为 ResNet50

    动态对齐 (DMLI)
    • 假如输入图像为256×128,输出的特征图尺寸为 8×4×2048
    • 利用水平池化得到 8 个局部特征,并计算一个 8×8 的距离方阵
    • 对齐局部信息不能有跳连(从上到下)
    • 利用 shortest path 来找到最优的动态连接

PCB

  • 输入图像 384×128,分成 6 块
  • 利用 ResNet50 提取特征,最后 24×8 的 feature map
  • 每一行提取一个局部特征,连接一个 ReID loss
  • 使用的时候把 6 个局部特征 concatenate 起来

ICNN

ICNN≈PCB + global branch with triplet loss

SCPNet

利用 spatial part 特征连监督 channel group 特征,将 local feature 传给 global feature

姿态信息 ★★★

  • 利用一个姿态估计模型得到行人的(14个)关键姿态点
  • 根据姿态点得到具有语义信息的 part 区域
  • 对于每个 part 区域提取局部特征
  • 联合局部特征和全局特征往往能够得到更好的结果
  • 姿态点估计模型:Hourglass、OpenPose、CPM、AlphaPose
  • Part:通过一定规则手工设置一些矩形框区域
  • Attention:网络自动学习出的比较重要的任意形状区域

PIE

  • CRM 提取姿态点
  • 分成几个part,进行仿射变换对齐
  • 融合原图和仿射图的特征
  • 采用 ID 损失训练网络

Spindle Net

  • FFN 网络提取特征,FFN 网络层次性地融合特征

PDC

  • 利用姿态点信息分割为六个part
  • 改进 STN 网络为 PTN 网络,学习仿射变换参数得到 modified part image
  • 融合全局特征和局部特征
  • 计算三个 ReID 损失
  • 浅层网络共享,高层网络独立

GLAD

  • 分为头,上身,下身三个 part
  • 融合全局特征和三个 part 的特征

PABP

  • 利用 ReID 网络提取 feature map A
  • 利用 openpose 提取 feature map P
  • A 和 R 每个对应像素位置的向量进行外积,并向量化
  • 会激活对应位置的外观特征

分割信息 ★★

  • 图像语义分割是一种极精细的像素级别 part 信息
  • 图像分割分为粗粒度的行人前景分割和细粒度的肢体语义分割
  • 分割结果通常作为图像预处理的 Mask 或者 feature map 中的 attention 相乘
  • 目前基于分割的方法没有取得特别广泛的应用

前背景提取

SPReID

网格特征 ★

  • 网格特征是比较细粒度的物理区域特征
  • 早期工作将网格特征扩展为part特征计算两幅图像的特征图差
  • 近期利用网格特征解决 partial ReID 工作
  • 总体而言网格特征并不常用

IDLA

  • 骨干网络为 Siamese 网络计算
  • 两幅图 5x5 网格特征差值
  • 交换"主客"分别计算 K 和 K’
  • 计算二分类验证损失

PersonNet

DSR

  • 将一副图像的所有网格特征作为一个特征集合
  • 对两个特征集合进行稀疏重建得到集合距离

序列重识别

行人重识别(REID)——原理方法_第2张图片

  • 姿态变化丰富
  • 遮挡现象普遍
  • 总有几帧质量好,也有几帧质量差
  • 需要考虑如何融合各帧的信息

单帧 → 序列

  • 对每一帧图像都提取一个ReID特征
  • 直接通过平均池化或者最大池化来得到最终的ReID特征
  • 比较简单,性能依赖于单帧 ReID 的性能

CNN+LSTM

  • 类似于动作识别,利用 CNN 提取特征,然后利用 LSTM 提取时序特征

难点

  • 如何对多帧特征进行特征融合?
  • 如何对每帧图像进行质量判断?
  • 如何提取序列图像的运动特征?
  • 如何解决序列帧数不统一问题?
  • 如何提高序列 ReID 的运算效率?

学术尝试

AMOC

  • 帧与帧之间存在着运动(步态)特征,也有利于 ReID 任务
  • 包含空间子网络和运动子网络
    • 空间子网络提取单帧图像的内容特征
    • 运动子网络提取相邻两帧的运动特征
    • 融合内容特征与运动特征作为该帧的最终特征
  • 利用 RNN 网络融合所有帧的特征信息
  • 利用对比损失判断两个序列是否属于同一个行人ID

DFGP

  • 采用传统的 LOMO 特征提取序列每一帧图像的行人特征
  1. 利用 PCN 网络提取每一帧特征,之后平均池化得到序列特征,找到最稳定帧 MSVP
  2. 对 MSVP 提取 LOMO 特征,并与序列q计算特征距离,按照距离进行 softmin 归一化,得到每帧权重
  3. 特征×权重之后进行最大池化
  4. 融合池化后的序列特征和最稳定帧的特征作为最终特征

RQEN

  • 遮挡是序列重识别中非常普遍的一个问题,会造成特征分布不均匀
  1. 对每帧行人提取14个关键姿态点,并分为3个语义 part

  2. 当某个姿态点被遮挡之后,pose map 的响应值会非常低

  • 全局分支提取全局特征
  • 局部分支提取局部特征
  • 姿态分支对图像进行质量(遮挡)判断

基于 GAN 的方法

痛点

  • 数据不够用 → 生成图像
    • 政府限制监控数据的采集
    • 人工标注采集数据价格昂贵
    • 缺乏一些极难的极端样本
  • 数据有偏差 → 减小偏差
    • 姿态与姿态之间存在偏差
    • 相机与相机之间存在偏差
    • 地域与地域之间存在偏差

组成

  • 生成器:随机数 → 生成样本
  • 判别器:判断生成样本是否真实

代表方法

GAN+LSRO

利用 GAN 网络随机生成行人图片,利用 LSRO 技术平滑 ID 标签,训练交叉熵损失

  • 照片随机生成,ID 信息不可靠

CamStyle

利用 CycleGAN 来实现任意两个相机之间的风格转换

  • 原始样本计算ID损失,生成样本利用平滑标签计算交叉熵损失

PTGAN

不同场景下采集的数据存在明显的偏差

  • 利用 PSPNet 分割行人前景 mask
  • 利用 CycleGAN 的思想进行图像风格转换
  • 计算mask区域生成损失,保持行人前景尽可能不变
  • 联合风格损失与生成损失

SPGAN

与 PTGAN 类似,利用 source domain 的数据生成 target domain,解决不同场景下采集的数据间的明显偏差

PNGAN

利用 GAN 来生成固定姿态样本

  • 利用 GAN 生成目标姿态的样本
  • 原图和生成图分别进入两个 ReID 网络
  • 融合原图和生成图的特征作为最终特征,融合方式使用max池化

对比

算法 GAN CycleGAN PTGAN SPGAN PNGAN
基础 GAN CycleGAN CycleGAN CycleGAN InfoGAN
额外 标签平滑 标签平滑 前景分割 孪生网络 姿态估计
目标 数据增广 相机偏差 数据域偏差 数据域偏差 姿态偏差

你可能感兴趣的:(计算机视觉,深度学习,人工智能)