论文阅读《SuperPoint: Self-Supervised Interest Point Detection and Description》

论文地址: https://arxiv.org/abs/1712.07629
代码地址:https://github.com/magicleap/SuperPointPretrainedNetwork


背景与意义

  人工标记特征点需要大量的工作量,且在特征点的语义信息不明确时难以标记;为此提出一种自监督网络框架,基于数据驱动策略来同时获取图像中的特征点位置与描述符,同时本文提出一种Homographic Adaptation策略来增强特征点的复检率与跨域鲁棒性;

  1. 在合成的虚拟数据集上进行有监督训练一个全卷机网络得到初始特征点检测器MagicPoint;
  2. 使用多尺度变换方法Homographic Adaptation对真实场景warp得到不同视角下的图像,再使用使用MagicPoint来得到多个视图的特征点,再将多个视角得到的特征点反warp回原视图作为伪标签;
  3. 图像对之间的位姿表示为warp单应性矩阵,再将已知位姿的图像对送入SuperPoint提取特征点与描述子;
  4. 将原图进行warp得到图像对,将图像对送入SuperPoint中得到图像对的特征点,利用图像对之间的位姿关系与伪标签来构建自监督训练损失,监督模型训练;

网络结构

在这里插入图片描述SuperPoint Architecture结构主要包含三个部分:权值共享特征提取、兴趣点检测、描述符生成;
在这里插入图片描述
其中权值共享特征提取模块:使用VGG网络来得到特征图 H 8 × W 8 × 128 \frac{H}{8}\times\frac{W}{8}\times128 8H×8W×128
在这里插入图片描述

兴趣点检测模块: 通常可以通过反卷积或者双线性插值来得到原图大小的图像,但这样会导致计算量剧增,因此本文采用了一个“子像素卷积”(像素洗牌)的方式对图像进行上采样:先使用一个CNN将特征图转换为 H 8 × W 8 × 65 \frac{H}{8}\times\frac{W}{8}\times65 8H×8W×65 的特征图,其中每个点代表特征图中每一点对应原图的的8*8邻域中的点是否为特征点,以及第65维代表该邻域内无特征点,在channel维度做softmax,将非特征点dustbin剔除,最后将 H 8 × W 8 × 64 \frac{H}{8}\times\frac{W}{8}\times64 8H×8W×64的概率图reshape为原图 H × W H\times W H×W大小 ;

在这里插入图片描述
描述子生成模块:使用一个CNN将特征图转换为 H 8 × W 8 × c 1 \frac{H}{8}\times\frac{W}{8}\times c_1 8H×8W×c1 的稀疏描述子图,再通过双三次多项式插值得到原图大小的描述符(代码中使用双线性插值完成),然后通过 L 2 L_{2} L2得到正则化后描述符;


损失函数

  损失函数包含两个部分:特征点检测损失 L p \mathcal{L}_{p} Lp 与描述子损失 L d \mathcal{L}_{d} Ld
L ( X , X ′ , D , D ′ ; Y , Y ′ , S ) = L p ( X , Y ) + L p ( X ′ , Y ′ ) + λ L d ( D , D ′ , S ) (1) \begin{aligned} \mathcal{L}\left(\mathcal{X}, \mathcal{X}^{\prime}, \mathcal{D}, \mathcal{D}^{\prime} ; Y, Y^{\prime}, S\right)= \mathcal{L}_{p}(\mathcal{X}, Y)+\mathcal{L}_{p}\left(\mathcal{X}^{\prime}, Y^{\prime}\right)+\lambda \mathcal{L}_{d}\left(\mathcal{D}, \mathcal{D}^{\prime}, S\right) \end{aligned}\tag{1} L(X,X,D,D;Y,Y,S)=Lp(X,Y)+Lp(X,Y)+λLd(D,D,S)(1)
其中 X \mathcal{X} X 代表输入图像中得到的特征点检测的结果, Y Y Y 代表伪标签; X ′ \mathcal{X}^{\prime} X Y ′ Y^{\prime} Y 表示经过单应性变换 H 矩阵 warp后的对应图像的特征点检测结果与其对应的伪标签;
特征点损失:
L p ( X , Y ) = 1 H c W c ∑ h = 1 ; w = 1 H c , W c l p ( x h w ; y h w ) ] (2) \mathcal{L}_{p}(\mathcal{X}, Y)=\frac{1}{H_{c} W_{c}} \sum_{h=1; w=1}^{H_{c}, W_{c}} l_{p}\left(\mathrm{x}_{h w} ; y_{h w}\right)]\tag{2} Lp(X,Y)=HcWc1h=1;w=1Hc,Wclp(xhw;yhw)](2)
其中特征点损失用交叉熵损失来衡量:
l p ( x h w ; y ) = − log ⁡ ( exp ⁡ ( x h w y ) ∑ k = 1 65 exp ⁡ ( x h w k ) ) (3) l_{p}\left(\mathrm{x}_{h w} ; y\right)=-\log \left(\frac{\exp \left(\mathrm{x}_{h w y}\right)}{\sum_{k=1}^{65} \exp \left(\mathrm{x}_{h w k}\right)}\right)\tag{3} lp(xhw;y)=log(k=165exp(xhwk)exp(xhwy))(3)
描述子损失:
L d ( D , D ′ , S ) = 1 ( H c W c ) 2 ∑ h = 1 ; w = 1 H c , W c ∑ h ′ = 1 ; w ′ = 1 H c , W c l d ( d h w , d h ′ w ′ ′ ; s h w h ′ w ′ ) (4) \begin{array}{l} \mathcal{L}_{d}\left(\mathcal{D}, \mathcal{D}^{\prime}, S\right)= \frac{1}{\left(H_{c} W_{c}\right)^{2}} \sum_{h=1; w=1}^{H_{c}, W_{c}} \sum_{h^{\prime}=1; w^{\prime}=1}^{H_{c}, W_{c}} l_{d}\left(\mathbf{d}_{h w}, \mathbf{d}_{h^{\prime} w^{\prime}}^{\prime} ; s_{h w h^{\prime} w^{\prime}}\right) \end{array}\tag{4} Ld(D,D,S)=(HcWc)21h=1;w=1Hc,Wch=1;w=1Hc,Wcld(dhw,dhw;shwhw)(4)
其中 l d l_{d} ld 为Hinge-loss
l d ( d , d ′ ; s ) = λ d ∗ s ∗ max ⁡ ( 0 , m p − d T d ′ ) + ( 1 − s ) ∗ max ⁡ ( 0 , d T d ′ − m n ) (5) \begin{aligned} l_{d}\left(\mathbf{d}, \mathbf{d}^{\prime} ; s\right) &=\lambda_{d} * s * \max \left(0, m_{p}-\mathbf{d}^{T} \mathbf{d}^{\prime}\right) +&(1-s) * \max \left(0, \mathbf{d}^{T} \mathbf{d}^{\prime}-m_{n}\right) \end{aligned}\tag{5} ld(d,d;s)=λdsmax(0,mpdTd)+(1s)max(0,dTdmn)(5)
  若 s = 1 s=1 s=1 时,说明两点是匹配点,则只考虑第一项,此时两点的描述符特征向量 d T d^{T} dT d ′ d^{\prime} d 两者越接近,惩罚越小,若 s = 0 s=0 s=0 时, 说明两点是非匹配点,则 两点的描述符特征向量 d T d^{T} dT d ′ d^{\prime} d 差异越大,惩罚越小, m p m_{p} mp m n m_{n} mn 为超参数, λ d \lambda_{d} λd 是用于平衡正负样本(不匹配点多)之间的数量权重;

s h w h ′ w ′ = { 1 ,  if  ∥ H p h w ^ − p h ′ w ′ ∥ ≤ 8 0 ,  otherwise  (6) s_{h w h^{\prime} w^{\prime}}=\left\{\begin{array}{ll} 1, & \text { if }\left\|\widehat{\mathcal{H} \mathbf{p}_{h w}}-\mathbf{p}_{h^{\prime} w^{\prime}}\right\| \leq 8 \\ 0, & \text { otherwise } \end{array}\right.\tag{6} shwhw={1,0, if Hphw phw8 otherwise (6)
其中 s h w h ′ w ′ s_{h w h^{\prime} w^{\prime}} shwhw 为指示矩阵; P h w P_{hw} Phw 为单元格 ( h , w ) (h, w) (h,w) 中心像素的位置,式6的含义为,原图先检测出的特征点以单应性矩阵H做单应性变换后到对应图像的位置与原图以H做单应性变换后检测的特征点的的距离不超过8(在邻域内),说明两点是匹配上的;


实验结果

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV科研随想录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值