论文阅读《Local Descriptors Optimized for Average Precision》

《Local Descriptors Optimized for Average Precision》

一、重点单词理解

differentiable 可微分的
partial derivative 偏导数
formulation 公式化 指定 构思
derivative 导数
thresholding 阈值
contrast 对比
heuristics 启发式
implicitly 含蓄的
explicitly 明确的
take into account 考虑进
In addition to 除了…之外
nature 性质
distractor 干扰项
supervision 监督
incorporate 包含
inter-前缀 表示在…之间
ideally 完美地
ambiguous 模拟量可的

二、《Local Descriptors Optimized for Average Precision》

    在本文中,作者通过优化描述符匹配的性能来改进局部特征描述符的学习,提出了一种通用学习利用公式进行排名,以优化用于最近邻匹配的方法。作者使用深度神经网络直接优化基于排名公式的性能指标。
由于目前在针对局部特征描述符的学习目标的设计中仍存在一定程度的手工制作,因此作者旨在通过优化更好的目标函数来改善局部特征描述符的学习。作者认为局部特征描述符学习不是一个独立的问题,而是大型流程优化中的一个组成部分。通过检查局部特征匹配流水线中,作者发现可以将特征匹配精确地表述为最近邻检索。与最近的方法相比,作者的方法优化了常用的评估指标,并消除了复杂的优化启发式方法。该文获得的描述符具有最先进的性能,并可通过特定于任务的改进得到进一步增强。
    本文中作者不使用优化基于三重态的替代损失,而采用基于列表的学习进行排名,以直接优化匹配阶段的性能。作者指出端到端优化非常困难且依赖于任务。通过专注于两个与任务无关的阶段(描述符提取和匹配),作者证明了解决方案是通用的。

图1 基于图片特征匹配的流程例子

1.最近邻匹配

    如上图1,描绘了用于估计匹配图像I1和I2之间的基本矩阵的流水线。任务是使用RANSAC等的鲁棒估计技术来估计图像I =(I1,I2)之间的基本矩阵F。作者使用深度神经网络对特征描述符提取器进行建模,并为描述符匹配的后续阶段直接优化基于排名的目标(即平均精度)。
    该流程包括了四个阶段:特征检测,描述符提取,描述符匹配和鲁棒估计。假设从每个图像中检测并提取M个局部特征。Descriptor Matching阶段的操作如下:它计算具有 M 2 M^2 M2的成对距离矩阵,并且对于I1中的每个特征,在I2中查找其最近的邻居,反之亦然。在Robust Estimation阶段,互为最邻近的特征对成为候选匹配。作者指出,I1中的每个功能都用于查询位于数据库中的I2特征。为了获得良好的性能,应将真正的匹配项作为最重要的检索结果返回,而将错误的匹配项尽可能低地排名。为了评估最近邻的匹配性能,作者采用平均精度(AP)。接下来,作者通过学习二进制和实值局部特征描述符以优化AP。

2.优化平均精度

    令X为图像块的空间 S ⊂ X S \subset X SX,S为数据库,而查询块 q ∈ X q \in X qX,令 S q + S^+_q Sq+是其在S中的匹配块的集合, S q − S^-_q Sq是不匹配块的集合。给定一个距离度量D,令(X1,…,Xn)为 S q − ∪ S q + S^-_q\cup S^+_q SqSq+中各项的排名,按与到q的距离排序,即 D ( x 1 , q ) ≤ D ( x 2 , q ) . . . ≤ D ( x 3 , q ) D(x_1,q) \leq D(x_2,q) ...\leq D(x_3,q) D(x1,q)D(x2,q)...D(x3,q)给定排名,AP是在不同位置评估的精度值的平均值(Prec@K):
P r e c @ K = 1 K ∑ i = 1 K 1 [ x i ∈ S q + ] (公式1) Prec@K= \frac{1}{K} \sum_{i=1}^K {1 \left[x_i \in S^+_q \right] } \tag{公式1} Prec@K=K1i=1K1[xiSq+](1)

A P = 1 ∣ S q + ∣ ∑ K = 1 n 1 [ x k ∈ S q + ] P r e c @ K (公式2) AP = \frac{1}{\left| S^+_q \right|} \sum_{K=1}^n {1 \left[x_k \in S^+_q \right]}Prec@K \tag{公式2} AP=Sq+1K=1n1[xkSq+]Prec@K(2)
    其中1[·]是二进制指示符。当且仅当 S q + S^+_q Sq+中的每个查询块都排在空间X的所有之上时(即不匹配的排序 S q − S^-_q Sq在后),AP才能达到其最佳值。
    作者指出,可以将AP的优化视为度量学习问题,目标是学习距离度量D,该距离度量D在用于检索时会提供最佳AP。理想情况下,如果所有上述步骤都可以用可区分的形式表示,则可以通过利用链式规则来优化AP。但是这是不可能的,作者指出这是因为产生排名所需的分类操作是不可微分的,并且输入距离的连续变化会导致AP值不连续的。因此必须进行适当的平滑处理才能得出AP的可微近似值,作者基于此度量学习社区的最新成果:对于学习用于图像检索的二进制图像级描述符的问题,He等作者观察到对整数值汉明距离的排序可以实现为直方图合并,并采用可微分的直方图合并,来优化基于梯度下降和基于排名的目标。作者使用此优化框架为二进制和实值局部特征描述符优化AP。

(1)二进制描述符

    二进制描述符提供紧凑的存储和快速匹配,在速度或存储受限制的应用程序中很有用。由于二进制描述符一次只能学习一位,作者采用基于梯度的松弛方法来学习固定长度的哈希码。深度神经网络F用于建模从块到低维汉明空间的映射: F : X → { − 1 , 1 } b F:X \to \left\{-1,1 \right\}^b F:X{ 1,1}b,对于汉明距离D,取值在{0,1,…,b},可以使用直方图 h + = ( h 0 + , . . . , h b + ) h^+=(h^+_0,...,h^+_b) h+=(h0+,...,hb+)以封闭形式计算AP,每个元素 h k + = ∑ x ∈ S q + 1 [ D ( q , x ) = k ] h^+_k=\sum_{x \in S^+_q}{1 \left[ D(q,x) = k\right]} hk+=xSq+1[D(q,x)=k]
链式规则的下一步是相对于网络F区分h的项。将直方图合并操作近似为: h k + ≈ ∑ x ∈ S q + δ ( D ( q , x ) , k ) (公式3) h^+_k\approx \sum_{x \in S^+_q } {\delta \left( D(q,x),k \right)} \tag{公式3} hk+xSq+δ(D(q,x),k)(3)
    当时,可用可微分函数替代二进制指标。这可以得出近似梯度为:
∂ h k + ∂ F ( q ) ≈ ∑ x ∈ S q + ∂ δ ( D ( q , x ) , k ) ∂ D ( q , x ) ∂ D ( q , x ) ∂ F ( q ) (公式4) \frac{\partial{h^+_k}}{\partial{F(q)}} \approx \sum_{x \in S^+_q} \frac{\partial{\delta (D(q,x),k)}}{\partial{D(q,x)}} \frac{\partial{D(q,x)}}{\partial{F(q)}} \tag{公式4} F(q)hk+xSq+D(q,x)δ(D(q,x),k)F(q)D(q,x)(4)
∂ h k + ∂ F ( x ) ≈ 1 ∣ x ∈ S q + ∣ ∑ x ∈ S q + ∂ δ ( D ( q , x ) , k ) ∂ D ( q , x ) ∂ D ( q , x ) ∂ F ( x ) (公式5) \frac{\partial{h^+_k}}{\partial{F(x)}} \approx 1\left| x \in S^+_q \right| \sum_{x \in S^+_q} \frac{\partial{\delta (D(q,x),k)}}{\partial{D(q,x)}} \frac{\partial{D(q,x)}}{\partial{F(x)}} \tag{公式5} F(x)hk+1xSq+xSq+D(q,x)δ(D(q,x),k)F(x)D(q,x)(5)

    汉明距离的偏导数是通过以下可微分公式得出的:
D ( x , x ′ ) = 1 2 ( b − F ( x ) T F ( x ′ ) ) (公式6) D(x,x')=\frac{1}{2}\left( b-F(x)^T F(x') \right) \tag{公式6} D(x,x)=21(bF(x)TF(x))(6)

    最后,使用tanh函数对用于生成二进制位的阈值运算进行平滑处理,其中f是激活函数:
F ( x ) = ( s g n ( f 1 ( x ) ) , . . . , s g n ( f b ( x ) ) ) ≈ ( t a n h ( f 1 ( x ) ) , . . . , t a n h ( f b ( x ) ) ) (公式7和8) \begin{aligned} F(x) & = (sgn(f_1(x)),...,sgn(f_b(x))) \\ \tag{公式7和8} & \approx (tanh(f_1(x)),...,tanh(f_b(x))) \end{aligned} F(x)=(sgn(f1(x)),...,sgn(fb(x)))(tanh(f1(x)),...,tanh(fb(x)))(78)

②真实值描述符

    实值描述符作为高精度场景中的首选。作者将描述符建模为实值网络激活的向量,并应用L2范式: ∣ ∣ F ( x ) = 1 , ∀ X ∣ ∣ ||F(x)=1, \forall X|| F(x)=1,X。在这种情况下,欧几里得距离D为: D ( x , x ′ ) = 2 − 2 F ( x ) T F ( x ′ ) (公式9) D(x,x')=\sqrt{2-2F(x)^TF(x')} \tag{公式9} D(x,x)=22F(x)TF(x) (9)

    针对实值描述符优化AP的主要挑战是不可微分的排序,但是实值排序没有简单的替代形式。但作者想到,直方图合并可以用作近似值,于是使用直方图合并对实值距离进行量化,获得直方图h,然后将优化问题减少,使用L2归一化向量,由于欧几里得距离的封闭范围为[0,2],作者指出只需将[0,2]均匀地划分为b+1个bin。在附录中作者给出了完整的推导,距离函数的偏导数需要在(4)和(5)中进行修改。直方图bin的数目b现在是一个自由参数,但需要权衡,过大过小都会影响实验,作者推荐使用b≤25可获得良好的结果。

3.与其他方法的比较

    作者首先与三重损失函数triplet loss进行比较,triplet loss旨在寻找一个度量距离D满足: D ( a , p + ) < D ( a , p − ) − p D(a,p^+) < D(a,p^-)-p D(a,p+)<D(a,p)p,其中a是anchor样本, p + p^+ p+代表是与a相同的类匹配的图像块,而 p − p^- p是与a不同类不匹配的,p是一个阈值。三元组定义了局部成对的排名损失,而作者的方法是列表式listwise的,因为优化的评估指标(AP)是在排名列表上定义的。
    但作者指出,优化三重态损失却非常困难,对于N个训练示例,三元组的集合的大小为 O ( N 3 ) O(N^3) O(N3),作者指出优化困难源于三元组损失与按列表评估之间的根本不匹配。如图2所示,展示了基于三重态排名和文档列表方法排名的比较。在顶部基于三重态的训练中,大多数三元组会得到正确的正确分类,通过启发式方法(称为hard negative mining)来发现和纠正高级错误至关重要。在底部,是位置敏感的listwise列表排序中,按列表度量是位置敏感的,而局部损失是不敏感的,这里我的理解是列表只需要保证匹配的patch在所有不匹配的patch之前,而忽略正确匹配和不匹配各自内部之间的排序。作者的列表式优化无需使用mining heuristics,即可纠正此类错误,直接优化了列表评估指标“平均精度”,listwise优化还隐式编码了hard negative mining,要求将匹配的patch排在所有不匹配的patch之上,这会自动强制对批中最难的三元组进行正确分类,而无需明确找到它。

图2 基于三重态排名和文档列表方法排名的比较

4.特定任务的改进

    作者还开发了两项改进,其中考虑了局部特征匹配的性质。分别是处理集合噪声和标签挖掘。

(1)处理集合噪声Handling Geometric Noise

    为了提高匹配的局部特征的鲁棒性,关键是在描述符中建立几何噪声的不变性。同样作者指出也可以在描述符网络中包含几何对齐模块。作者使用the Spatial Transformer,可以通过预测6自由度仿射变换来对齐输入图像块,而无需额外的监督。基于patch的网络输入量有限,并且预测的仿射变换通常会导致越界采样,从而破坏采样patch。作者通过使用适当的边界填充来应对这一挑战。

(2)用于图像匹配的标签挖掘 Label Mining for Image Matching

    作者指出解决更高级别的任务。作者通过HPatches数据集中的图像匹配任务来证明。在图像匹配中,图像以相同的顺序与其他图像匹配,这意味着所有干扰因素实际上都是按顺序排列的。因此,在优化patch检索时,可以通过包含顺序干扰项来提高图像匹配性能。当在HPatches中优化patch检索时,作者执行标签挖掘Label Mining以增加一组标识符。为了避免在重复结构存在的情况下产生嘈杂的标签,作者使用一种简单的方法:聚类。对于每个图像序列,根据视觉外观对所有patch进行聚类。然后通过3D验证,将具有较高群集间距离的patch彼此标记为分散器。

(5)总结与思考

    在该文中,作者使用深度神经网络来学习可优化最近邻匹配性能的二值和实值局部特征描述符。这是通过基于列表listwise的学习来对公式进行排名,从而直接优化平均精度。作者还通过任务特定的组件进一步增强了公式化:①使用Spatial Transformer处理几何噪声,②以及使用聚类方法实现Label Mining。所学习的描述符在patch验证,patch检索和图像匹配方面实现了最先进的性能。作者的方法是通用的,并且优于最近的局部排名方法。
我认为可以在接下来去合并鲁棒估计的不同版本,探索视觉管道中较大部分的优化。

猜你喜欢

转载自blog.csdn.net/weixin_43823854/article/details/102865044