Norm-Aware Embedding for Efficient Person Search
引言
该篇文章来自CVPR2020,需要更多的数学知识,但是代码开源。
方法
文章认为:
- 问题:端到端的网络中,检测和重识别的目的不同。
- 解决:将行人向量映射到极坐标中,向量范数部分区分背景和行人,向量角度部分用于重识别。
作者通过下图展示了通常的方法与本文的方法的不同。
图中黑线表示背景,彩线表示不同的行人。灰色部分表示背景与行人的决策边界。
图a表示通常的l2 normalized 的embedding在空间的表示。图b表示在极坐标下的表示。
从图a中可以看出,背景的空间压缩行人的空间,使得行人类间的角度距离被压缩。区分不够明显。而图b中,将向量作极坐标处理后的向量称为norm-aware embedding,可以看到该向量的行人空间的行人类间距离非常广泛。
网络结构
在学习结构前需要具备一些数学知识。
l_p范数为一种向量范数,其中:
l_0范数:向量非零元个数。最优解为NP问题。
l_1范数:元素绝对值之和。最优解为稀疏解,因此l_1范数也被叫做稀疏规则算子,可以滤去一些关系不大的特征。
l_2范数:元素平方和在开根号。优化问题常用作优化目标函数的正则化项以防止过拟合。
- l2 norm和l2 normalized
l2 norm指的是l2范数。
l2 normalized指的是l2归一化,逐个转换向量的元素,使得转换后的向量的l2 norm为1.
设,则,则
网络结构图如下图所示。
图中表示函数,表示bn层。虚线表示只有在推理阶段才执行。
图a表示通常的端到端网络结构,图b表示norm-aware embedding。图c表示图b的像素级扩展。
图b中原始特征向量,经过转换,得到norm-aware embedding向量.
图c的提出:
- 问题:图b中ROI特征图直接通过GAP转为特征向量,丢失了部分空间信息。
- 解决:使用像素级的分类。
训练和推理
训练
bs设为5,全景图片被resize到
推理
query的检测置信度设置为1。那么相似度计算为:
其中作为余弦相似度的权重,与Focal loss中处理正负样本加权重的作用类型,对结果十分重要,可以提升1-2个百分点,如下图。
缺点
- 在像素级NAE+模型中,检测置信度处理的方法不太好,将每个位置的置信度除以整个特征图置信度的最大值,这样每个位置的置信度值都变大了且在范围[0, 1]内,但是像背景的像素也会变得不那么像了。
- 效果没有想象的那么好,可能是因为embedding空间中,背景范围与行人范围取决于二分类和多分类损失值相对的大小,可能并没有文章中体现的背景范围严重挤压行人范围那么夸张。