1.一种基于深度学习的局部特征提取方法,其特征在于:其局部特征提取方法包括以下步骤:
S1、首先进行网络训练
在图像数据集MS‑COCO上训练预先构建的网络,数据集被分割成一个训练集和一个验证集,分别包含82783和40504张图像;
S2、然后进行图像匹配
在实验中,利用一个标准局部特征管道来评估所述局部特征提取方法的性能,所述标准局部特征管道是从实验中任一给定的一对图像中提取和匹配特征;
S3、接着进行重复分数Repeatability计算重复分数用于评价所述局部特征提取方法中检测器的性能,更具体地说,让ε代表正确的距离阈值,以获得实验中两幅检测图像之间的正确关键点对应,重复分数定义为正确对应关键点数除以图像对中总的关键点数;
S4、然后进行匹配分数M‑Score计算利用匹配分数评估所述局部特征提取方法中检测器和所述局部特征提取方法中描述器的综合性能,所述匹配分数是所述标准局部特征管道的匹配策略获得的正确匹配与总匹配数量的比率;
S5、最后进行单应估计效果评价单应估计效果评估所述局部特征提取方法估计单应矩阵的能力,所述单应估计是通过RANSAC计算实现;
其中,所述单应估计效果评估采用一种间接比较方法来适应不同尺度的单应矩阵,其测量的是RANSAC估计出的单应矩阵与ground‑truth单应矩阵变换图像四角之间的平均距离。
2.根据权利要求1所述的一种基于深度学习的局部特征提取方法,其特征在于:所述局部特征提取方法包括描述器、检测器和损失函数,其中:所述描述器包括单应性卷积网络HCN和特征描述,所述描述器对原始图像进行操作,最终获得与原始图像分辨率大小相同的稠密描述符;
所述检测器包括检测器CNN网络和关键点提取,所述检测器对所述HCN得到的张量F进行操作,最终获得稀疏的关键点位置;
所述损失函数:
为了共同优化检测器和描述器,所述损失函数由检测损失函数和描述损失函数这两个中间损失组成,其中,所述检测损失函数使网络产生可重复的关键点位置,这些关键点位置与视点或光照是协变的,所述描述损失函数使网络输出区分性强的描述符,获得可靠的匹配,联合优化这两种损失,同时提升检测器和描述器的效果和性能。
3.根据权利要求2所述的一种基于深度学习的局部特征提取方法,其特征在于:所述单应性卷积网络HCN:
接收输入的原始图像数据,利用HCN中的单应估计模块预测不同的原始图像变换,将变换后的原始图像提供给全卷积网络,而不是迫使全卷积网络学习额外的几何变化,这样做能够让网络学习的更多的原始图像信息,从而得到一个张量F;
所述特征描述:
由HCN的计算的得到的张量 作为输入:①通过Bi‑cubic插值输出一个张量②通过L2‑normalizes获得归一化的描述符向量ddij=oij/‖oij‖2
这里i=1,…,H,j=1,…,W,H′=H/4,W′=W/4,H和W分别为原始图像的高和宽;d的通道数D=256,这些描述符向量可以很容易地通过欧几里得距离在图像之间进行匹配,从而获得可靠的对应关系;
所述检测器CNN网络:
检测器CNN网络的目标是输出一个像素级检测分数,检测分数表示该位置是关键点的概率,将张量F输入至检测器CNN网络,获取原始图像数据中每个像素的检测分数,所述检测器CNN网络由一个卷积层和两个上卷积层组成,随着通道数逐渐减少,空间分辨率逐渐增加,最后通过sigmoid激活函数获得最终结果;
所述关键点提取:
关键点提取的目标是输出稀疏的关键点位置,输入所述检测器CNN网络所得到的检测分数,利用非极大值抑制NMS与TopK操作,可以获得指定数量的特征点。
4.根据权利要求3所述的一种基于深度学习的局部特征提取方法,其特征在于:所述单应估计模块由卷积层和线性层组成,原始图像数据经过单应估计模块的网络层后预测6×Nh个参数,用于获得单应变换矩阵;
其中,1×Nh个参数用于计算尺度变换,2×Nh个参数用于计算旋转变换,3×Nh个参数用于计算透视变换;
尺度可由一个参数得到:
λ(α)=exp(tanh(α));
对于旋转,可由两个参数通过下面的公式计算:θ(α,β)=arctan2(tanh(α),tanh(β));
对于透视变换矩阵A,可通过tanh激活函数处理三个参数用于表示(a1,a2,a3),因此,6×Nh个参数可以获得Nh个单应变换矩阵,Nh是一个超参数,考虑到网络的效率和有效性,设置Nh=4;
具体的,设定图像四个角为初始点x=[(‑1,‑1),(1,‑1),(1,1),(‑1,1)],然后利用单应估计模块来预测四个对应点,在这里,对应初始点变换可以表示为:采用张量直接线性变换(Tensor DLT)以可微的方式从这4对对应点x与x计算出单应性变换矩阵H如下:
x′=Hx。
5.根据权利要求2所述的一种基于深度学习的局部特征提取方法,其特征在于:所述检测器采用检测损失函数进行反向梯度更新;
所述检测损失函数计算过程如下:给出一对真实的图像I1和I2,并给出ground‑truth对应关系,表述为w(·),如I1=w(I2),换句话说,通过函数w(·),图像I1中的所有像素可以在图像I2找到,将图像对I1和I2输入网络得到检测分数S1和S2,定义G1和G2为相应的ground‑truth的关键点标签,检测损失函数Ldet通过交叉熵损失定义:Ldet=Ls(S1,G1)+Ls(S2,G2)其中,(i,j)表示坐标点的位置。
6.根据权利要求5所述的一种基于深度学习的局部特征提取方法,其特征在于:所述描述器采用描述损失函数进行反向梯度更新;
所述描述损失函数计算如下:
描述损失函数是基于改进的hardest‑contrastive损失,用更严格的负距离来修改hardest‑contrastive损失,该损失函数最小化正例之间的距离,最大化最接近的负例的距离,描述损失的公式为Ldes:在这里,定义 和 表示图像对第k个对应的描述符,K表示所有对应描述符的数量,因此,正距离表示为:
‖·‖2表示为欧氏距离,负距离定义为:这里n(i,j,k)表示图像Ii中的描述符 与图像Ij中所有不对应的描述符的最小距离,则 表示与 距离最小的不对应的描述符,阈值C是一个安全半径,它的设置是为了排除空间上太接近正确对应的特征点,值得注意的是,所述描述损失函数同时考虑了图像对之间的负距离和图像内部的负距离;
最终,结合所述描述损失函数Ldes和所述检测损失函数Ldet获得最终的损失函数:L=Ldes+Ldet。
7.根据权利要求1‑6中任一所述的一种基于深度学习的局部特征提取方法,其特征在于:网络训练时,在MS‑COCO数据集上进行,将所有图像的分辨率调整为320×240,然后将图像转换为灰度,为了生成像素对应,为每个训练样本随机生成合适的单应变换矩阵,将单应变换后的图像与图像本身同时输入到网络中进行训练,同时对ground‑truth关键点位置进行变换,生成对应变换后的ground‑truth关键点标签,需要注意的是,单应变换矩阵的随机生成会限制在一个合理的范围内。
8.根据权利要求1‑6中任一所述的一种基于深度学习的局部特征提取方法,其特征在于:网络测试时,在HPatches数据集上进行评估,HPatches中有116个图像序列,其中57个序列为光照变化,59个序列为视角变化,对于每个序列,第一个图像作为参考图像,并与所有后续图像进行匹配,从而得到580对图像HPatches数据集在240×320的分辨率和提取N=
1000个特征点的情况下计算,并且采用了相同的相互最近邻MNN匹配策略,MNN匹配策略基于最近邻搜索,即只有当两个描述符是相互最近邻时,才会被接受为匹配,为了强调匹配的准确性,设置了相应像素的阈值ε(ε=3),即重投影误差低于该阈值的匹配被认为是正确的匹配。