基于多阶段知识蒸馏的行人再识别
期刊:通信技术
时间:2021
研究院:昆明理工大学
关键词:行人再识别;多阶段;知识蒸馏;学生网络;教师网络
方法简介
- 问题来源
而对于行人再识别准确率最为关键的行人特征部分并未做出重点优化
- 蒸馏方法包括两个部分
(1)学习教师网络多个阶段的中间层表示;(2)对教师网络全连接层前的特征进行学习,使学生网络与教师网络的特征尽可能接近
具体方法
PCB 网络结构
本文以提出的蒸馏网络方法应用于行人再识别网络 PCB[5] 为例。PCB 的网络结构如图 1所示。 输入的图像经过 ResNet50[15] 骨干网络,经 Conv5_x 输出的张量图 Tensor T 纵向均匀切分成 6部分, 即6个4×8 的张量,然后各自进行全局平均池化 (Global Average Pooling,GAP),得到 6个张量 p, 每个张量 p 通道数为 2 048,再用 1×1 卷积对张量 p 进行降维得到张量 h,6个张量 h 的向量大小均为256×1×1,最后将输出的向量输入全连接层和softmax 进行分类
蒸馏网络结构
- 第一部
分在骨干网络的不同阶段进行蒸馏,即在 ResNet 的Conv2_x 、Conv3_x、Conv4_x、Conv5_x 末端进行蒸馏。Ft 表示教师骨干网络不同阶段特征图,rs 表示学生骨干网络阶段通过 1×1 卷积升维到与教师网络特征图维度一致后的特征图,Ft 特征图与 rs 特征图之间的距离 d 用作蒸馏损失函数;
- 第二部分
对全连接层前的特征进行蒸馏,即对张量 h 之后拼接起来的教师特征 tFeatureD 和学生特征 sFeatureD 通过最小化损失使学生网络提取的特征与教师网络尽可能接近,从而使学生网络的准确率能与教师网络相当甚至超过。
- 蒸馏位置的原因
多阶段:
只通过 sFeatureD 与 tFeatureD 进行蒸馏很难实现。因此我们在整个骨干网络的多个阶段同时进行蒸馏, 尽可能全面地将教师的重要信息进行传递。
ReLU 之前进行蒸馏:
ReLU 后蒸馏,经过 ReLU 后网络对应特征图值变为 0,神经元失活且难以恢复,而在 ReLU 前蒸馏则不存在这样的问题。
损失函数
- 第一部分在骨干网络部分的蒸馏损失函数
r s ( ⋅ ) r_s(·) rs(⋅)作为学生骨干网络提取特征图后做的 1×1 卷积和批量归一化的转换函数
式中,T 表示教师特征图值,S 表示学生特征图值
- 第二部分蒸馏是针对提取的人体特征,即全连接层前的网络特征进行蒸馏
这部分教师网络的特征为 tFeatureD,学生网络的特征为 sFeatureD,特征中第 j 位值 sFeature DtFeatureDj,sFeatureDj ∈ R。 同样通过均方误差计算第二部分蒸馏损失:
式(3)中的 C 表示特征通道数。因此,提出方法的蒸馏部分的损失函数可以表示为
式(4)中的 ∂ 是一个常数,实验中的 ∂ 为2。 最终得到多阶段蒸馏方法行人再识别损失函数为
当对 PCB 网络进行蒸馏时,Ltask=6soft max,实验中的 β 取为常数 1
改进
改进:
(1)由于图像中的背景噪声会影响到识别的准确率,未来的工作将会把注意力机制嵌入到网络模型中,进一步探究如何提取更具辨别力的特征信息。