L2-Net论文粗解

本篇文章来自于对L2-Net: Deep Learning of Discriminative Patch Descriptor in Euclidean Space文章的翻译和自己的一些理解,很多内容也参考了添加链接描述然后做了一些修改,如果有不对的地方欢迎指出。
个人觉得最主要的还是理解它的网络结构,损失函数可能不是很好理解,不必过于强求

总述:
卷积神经网络在patch匹配中的应用,可根据有无度量学习层而分为两类:
(1)有度量学习层的把patch的匹配视为一个二进制分类,因此也就不存在描述符的概念。这类模型的一个明显缺点就是不能执行最邻近匹配(NNS)。
(2)没有度量学习层的(输出描述符可以用L2距离匹配的),可以直接用来代替之前的手工描述符。

L2-Net是基于卷积神经网络的,没有度量学习层的,输出是128维描述符的,用L2距离匹配的一种网络结构。

我们可以从匹配的基本概念来理解(对于某个patch,找到他对应匹配的patch,也就是在描述符之间做最邻近匹配),因此我们关注的是描述符的距离是否为最邻近,而不是其距离本身的大小,也就是去关注描述符之间的相对距离。

所以我们的主旨就是通过优化描述符之间的相对距离来训练L2-Net。

L2-Net将一批patch转变为一批描述符,对于每一个描述符,我们的训练策略目的是让一个batch中最邻近的成为正确的描述符。

L2-Net特点:
(1)提出了一种渐进抽样策略,使得网络通过几次迭代便可以访问数十亿个训练样本。
(2)从局部patch匹配的概念出发,强调了描述符之间的相对距离的大小。
(3)对中间的特征图施加了额外的监督(central-surround(CS))。
(4)考虑了描述符的紧凑性(compactness)。
之所以被命名为L2-Net是因为输出的描述符在欧式空间中可以采用L2距离(Euclidean distance)匹配。

L2-Net的网络结构

上图为L2-Net的网络结构,左图为L2-Net网络结构,左图为(CS)L2-Net的网络结构
上图为L2-Net的网络结构,左图为L2-Net网络结构,左图为(CS)L2-Net的网络结构

L2-Net采用全卷积结构,向下采样是通过步长为2的卷积来实现的。每个卷积层之后都跟一个Batch normalization(BN层)(对于BN层我们不更新它的权重和偏置等参数,并将它们分别置为1和0)。

L2-Net将输入的32*32的patch输出为128维描述符。

本文的网络结构还实现了一个central-surround(CS) L2-Net,也就是如上图右边所示,采用两个独立的L2-Net拼起来的,左边的L2Net输入就是32*32的patch,而右边的L2-Net的输入则是对左边L2-Net的输入的patch的中心部分进行裁剪和调整尺寸得到的。使用经过L2-Net网络训练过的参数来初始化(CS) L2-Net的参数。

训练数据和预处理
采用Brown数据集以及新提出的Hpatches数据集来训练数据

Brown数据集和HPatches数据集中分别有大约500K(1.5M)和190K(1.2M)三维点,实际训练时每个patch直接resize(变换尺寸)到32×32。对于每一个patch我们做一个预处理操作(减去它的像素平均值然后再除以它的标准差)。

训练数据过程中的渐进采样策略
在patch匹配中,负样本的数量要远高于正样本的数量。因为负样本数量之多所以不可能全部遍历,因此选定一个好的采样策略是非常关键。现有的采样方法是对相同数量的正样本和负样本进行采样,然后训练;而我们提出的渐进采样策略是通过对更多的负样本采样,来打破这一平衡。
渐进采样流程如下:
假设训练集中P个3D点,每一次迭代,我们都从这P个3D点中取p1个3D点(每次遍历都取p1个以此来遍历这P个3D点),然后在剩余的P-p1个3D点中选取p2个3D点,为了形成一个训练batch,我们随机的为每个3D点选择一个匹配的patch对,用以形成一个batch,所以每个batch中总共有2p个patch。

在这里插入图片描述
是一个batch中的所有patch,其中下标为3D点的索引,上标1和2为3D对应的patch,X为L2-Net的输入,而输出则为128维的描述符Y
在这里插入图片描述
定义距离矩阵在这里插入图片描述
其中在这里插入图片描述
D还可以由一个简单的矩阵相乘得到在这里插入图片描述
其中在这里插入图片描述

其中有p个正样本(矩阵对角线元素),p^2-p个负样本(矩阵的非对角线元素)。
对于具有160K个三维点的训练集来说,若p为128,这就意味着每次训练迭代由2500个batch组成,每次迭代矩阵D中每行有超过128^2×2500个距离被送至网络。L2-Net需要对数据迭代大概40次,由于样本选取的随机性,所以选取过程中不可避免的会产生重复。用于训练的样本绝大多数是负样本,如果只是迭代40次,160K个三维点,p取128的话,那么正样本数量总共是128×40×2500个。

损失函数
根据上述的渐进采样策略,我们的损失函数包含有三个特点:
(1)我们使用相对距离来区分匹配对和非匹配对。
(2)我们强调输出描述符的紧凑性(compactness),也就是输出的描述符的所有维度应该不那么相关。
(3)对中间的特征图施加额外的监督,以获得更好的性能。

根据损失函数的三个特点,我们将损失函数分为三部分:
1)描述符相似度的部分
此项误差是基于相对距离而言的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
为了便于操作,我们分别对行和列进行了一波操作:

在这里插入图片描述

在这里插入图片描述
2)描述符紧凑性的部分
渐进采样策略使得L2-Net可以访问大量的训练样本,但这容易导致过拟合。过拟合的程度与描述符维度之间的相关性程度是有直接关系的(论文中并未给出原因)。因此,我们引入了一个误差项,它解释了描述符的紧凑性。紧凑性也就意味着不同的维度之间要有较少的冗余,每个维度应该尽可能多的携带信息,一定程度上可以减少过拟合。
本文提出一种计算描述符 compactness (即各个维度直接关联度)的误差项来防止过拟合。
对于描述符的某个维度来说,在大量描述符数据上如果该维度变化越大,一般就是指方差越大,可以说明该维度信息有效性越高。
在这里插入图片描述
在这里插入图片描述
我们期望相关矩阵R_s的非对角线元素为0,因此我们简单的去最小化非对角线元素的平方和
在这里插入图片描述
3)中间 feature maps的部分
本文对学习过程中间的feature maps进行额外的监督,进一步提高L2-Net的性能。该误差项的思路与E1完全类似。也就是在中间的feature map上,互相匹配的patch对应尽可能相似,而非匹配的则尽可能不相似。
我们定义第K层输出的feature map是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们将这种方法命名为Discriminative Intermediate Feature maps (DIF)。实验表明把DIF放在归一化的feature map上效果会更好,因此我们把DIF放在BN之后的feature map上,特别是在第一个BN和最后一个BN上。这是因为第一个卷积层之前和最后一个卷积层之后都没有其他卷积层,因此feature map的顺序是固定的,即第一个卷积直接应用于输入数据(输入数据的每个通道具有固定的数学或物理意义),最后一个卷积层的输出对应于最终描述符。
综上所述,E_1在最终输出上计算,E_2在最后一个BN层之后计算,E_3在第一和最后一个BN层之后计算。所以总损失为E1+E2+E3。
training
我们使用随机梯度下降算法训练网络,起始学习速率为0.01,动量为0.9,权重因子为0.0001。每迭代20次学习速率除以10,迭代次数一般不超过50次。我们使用训练良好的L2-Net去初始化CSL2-Net的参数。CSL2-Net中左边的那个L2-Net的参数是固定不变的,我们只对右边的L2-Net的参数进行微调直至其收敛。p_1=p_2=64,q=128。
实验
Brown数据集

我们按照Brown数据集提出的方法进行评价,训练100K对patch,并比较他们在95%回归率(召回率(Recall)=系统检索到的相关文件/系统所有相关的文件总数)下的假样本率(即负样本被错误识别为正样本),将L2-Net和其他的以sift为基线的并基于CNN的模型进行了比较,“+”表示做了数据增强。其中“Binary”前缀表示根据 float 描述符的正负进行二值化,得到的 binary 的描述符,并比较性能。为了验证L2-Net的泛化能力,我们还在HPatches数据集上对其进行了训练。结果如下:
在这里插入图片描述
Oxford数据集
为了验证网络的泛化能力,我们在一个完全不同的数据集Oxford上进行测试。在该数据集的6个图像序列上进行测试,分别是graf(viewpoint),bikes(blur),ubc(JPEG compression),leuven(light),boat(zoom 和 rotation)和wall(viewpoint)。每个图像序列有六张图像,每个序列按照相对于第一张图像产生畸变递增的顺序进行的排序。图像中的特征点采用Harris-Affine检测。patches归一化到32*32的大小,缩放因子为3。
1)CS结构不能保证在所有的数据集以及所有类型的描述符上都能取得较好的效果,因为Brown和Hpatches数据集的patch具有相同的尺度,因此两者都使用CS结构会取得较好的结果。然而不同的检测器和尺度,随机的裁剪中央50%的patch(有更少的纹理),可能不会取得很好的效果。
2)此外,基于CNN的方法对图像模糊特别敏感。
3)Hpatches数据集表现出了更好的泛化能力。

结束
#######################################################
个人觉得可以总结的也就这些,后面的内容都是关于前文一些操作的可行性的验证,诸如:紧凑性、相对距离、DIF、BN、二进制描述符等,主要通过实验来验证这些的操作的合理性,在此就不一一列举了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值