Norm-Aware Embedding for Efficient Person Search

引言

该篇文章来自CVPR2020,需要更多的数学知识,但是代码开源。

方法

文章认为:

  • 问题:端到端的网络中,检测和重识别的目的不同。
  • 解决:将行人向量映射到极坐标中,向量范数部分区分背景和行人,向量角度部分用于重识别。
    作者通过下图展示了通常的方法与本文的方法的不同。
    Norm-Aware Embedding for Efficient Person Search_第1张图片
    图中黑线表示背景,彩线表示不同的行人。灰色部分表示背景与行人的决策边界。
    图a表示通常的l2 normalized 的embedding在空间的表示。图b表示在极坐标下的表示。
    从图a中可以看出,背景的空间压缩行人的空间,使得行人类间的角度距离被压缩。区分不够明显。而图b中,将向量作极坐标处理后的向量称为norm-aware embedding,可以看到该向量的行人空间的行人类间距离非常广泛。当roi是背景是,将norm值向0推,因此背景箭头会趋向球心,当roi是行人时,将norm值向1推,也就是向外推。

网络结构

在学习结构前需要具备一些数学知识。

  • l_p范数为一种向量范数,其中:
    l_0范数:向量非零元个数。 m i n ∣ ∣ x ∣ ∣ 0 min||x||_0 minx0最优解为NP问题。
    l_1范数:元素绝对值之和。 m i n ∣ ∣ x ∣ ∣ 1 min||x||_1 minx1最优解为稀疏解,因此l_1范数也被叫做稀疏规则算子,可以滤去一些关系不大的特征。
    l_2范数:元素平方和在开根号。 m i n ∣ ∣ x ∣ ∣ 2 min||x||_2 minx2优化问题常用作优化目标函数的正则化项以防止过拟合。

    • l2 norm和l2 normalized
      l2 norm指的是l2范数。
      l2 normalized指的是l2归一化,逐个转换向量的元素,使得转换后的向量 x ′ x' x的l2 norm为1.
      x = ( x 1 , x 2 . . . . . . ) x=(x_1, x_2......) x=(x1,x2......),则 l 2 n o r m ( x ′ ) = 1 = x 1 2 + x 2 2 + . . . + x i 2 l 2 n o r m ( x ) l2 norm(x')=1=\frac{\sqrt{x^2_1+x^2_2+...+x^2_i}}{l2 norm(x)} l2norm(x)=1=l2norm(x)x12+x22+...+xi2 ,则 x i ′ = x i l 2 n o r m ( x ) x'_i=\frac{x_i}{l2norm(x)} xi=l2norm(x)xi
  • X = r ⋅ θ X=r \cdot \theta X=rθ其中 X X X表示特征向量, r r r表示norm, θ \theta θ表示 X X X经过normalized后的特征向量。其中norm的维度与normalized的维度是正交的。


网络结构图如下图所示。
Norm-Aware Embedding for Efficient Person Search_第2张图片
图中 σ ( ) \sigma() σ()表示 s i g m o i d sigmoid sigmoid函数, B N BN BN表示bn层。虚线表示只有在推理阶段才执行。
图a表示通常的端到端网络结构,图b表示norm-aware embedding。图c表示图b的像素级扩展。
图b中原始特征向量 X = r ⋅ θ X=r \cdot \theta X=rθ,经过转换,得到norm-aware embedding向量 X ~ = r ~ ⋅ θ \widetilde{X}=\widetilde{r}\cdot\theta X =r θ.
图c的提出:

  • 问题:图b中ROI特征图直接通过GAP转为特征向量,丢失了部分空间信息。
  • 解决:使用像素级的分类。

训练和推理

训练

bs设为5,全景图片被resize到 900 × 1500 900\times1500 900×1500
像素级训练时,需要计算gt_norm值,如下图所示。
Norm-Aware Embedding for Efficient Person Search_第3张图片
黑色填0,相交填1,使用bilinear做平滑处理,因此灰色处的值为[0, 1]

推理

query的检测置信度 r r r设置为1。那么相似度计算为:
在这里插入图片描述
其中 r ~ \widetilde{r} r 作为余弦相似度的权重,与Focal loss中处理正负样本加权重的作用类型,对结果十分重要,可以提升1-2个百分点,如下图。
Norm-Aware Embedding for Efficient Person Search_第4张图片

缺点

  1. 在像素级NAE+模型中,检测置信度处理的方法不太好,将每个位置的置信度除以整个特征图置信度的最大值,这样每个位置的置信度值都变大了且在范围[0, 1]内,但是像背景的像素也会变得不那么像了。
  2. 效果没有想象的那么好,可能是因为embedding空间中,背景范围与行人范围取决于二分类和多分类损失值相对的大小,可能并没有文章中体现的背景范围严重挤压行人范围那么夸张。
  • l_p范数为一种向量范数,其中:
    l_0范数:向量非零元个数。 m i n ∣ ∣ x ∣ ∣ 0 min||x||_0 minx0最优解为NP问题。
    l_1范数:元素绝对值之和。 m i n ∣ ∣ x ∣ ∣ 1 min||x||_1 minx1最优解为稀疏解,因此l_1范数也被叫做稀疏规则算子,可以滤去一些关系不大的特征。
    l_2范数:元素平方和在开根号。 m i n ∣ ∣ x ∣ ∣ 2 min||x||_2 minx2优化问题常用作优化目标函数的正则化项以防止过拟合

疑问

  • 这个方法看着挺神奇的,从norm和angle两个方面更新检测与重识别共享的特征向量,我怀疑可能并没有完全解决检测与重识别目的不同的矛盾,是否本文框架用在two-steps上效果会更好?
  • 像素级的模型中,计算重识别部分的损失函数是怎么样计算的?

你可能感兴趣的:(person,search,神经网络)