R2D2: Repeatable and Reliable Detector and Descriptor(2019)(七)

本文的核心思想是提出一套同时detector和descriptor的网络,区别于别的网络,本文会输出Repeatable和Reliable层
用来表示feature map的score和权重(置信度)。
 
首先我们来看下整体网络结构:
    
输入一张W*H的image,输出三块东西:
        1)dense 的descriptor 的feature map(H*W*128)
         2)H*W*1的reliability层表示每个像素的feature的置信度(可靠性)Rij ∈ [0, 1]
         3)repeatability层表示每个像素的score(其实就是detector)(S ∈ [0, 1])
 
1.Learning repeatability
    假设知道两张匹配图,并且知道他们之间的转换关系U,那么理想情况下: 最大
(第一项是一张图输出的score map,第二项是另一张图输出的scoremap通过U变换到和第一章图一样的坐标下,
    理想情况下两个向量W*H的数值完全相同),但是由于S维度很大,往往很难满足,因此将S拆分成一个一个
 有overlap的patch,计算每个应该相同的小patch的相似性,如下:
 
      
        考虑到????不知道啥意思,增加了一项约束项
 
  1. Learning reliability
        feature层和reliability层的loss同时回传,定义feature之间的相似性度量矩阵D ,
          假设匹配图是A和B,本文由于是dense的descriptor map因此构建D的行是图像A中的descriptor个数。
          列是图像B中descriptor的个数,每个元素表示的是一个匹配距离。
          引用了一个AP概念,所谓的AP就是对D中的每一行距离进行排序,距离越近的越靠前,如果真正的匹配越靠前,这时候两张图的匹配的AP值越大,
           因此最大化AP即可监督学习descriptor,具体公式如下;
    ·····
        
     文中提到如果使用AP来训练就需要作用到整个descriptor上并且计算复杂,因此引入了 reliability层,该层就是类似score一样提供每个pixel位置
    descriptor的置信度(比如天空了,树叶了等不应该作用在网络上),因此使用如下loss:
        
        上述公式是(i, j )表示每个像素位置,Rij表示 reliability 层输出的置信度,k是设置的阈值, ,这样就在R=0的时候不再计算AP
        这个loss同时回传到descriptor网络和reliability网络。
 
!!!!!!!!!!!!!!!上述是训练的过程!!!!!!!!!!!!!!!!!!!!!!
 
teset的时候:首先输入image,然后在S层进行非极大值抑制得到最终的score map,然后将S和R相乘的到每个像素上的最终的score,
 然后取出score>阈值的descriptor作为最终的descriptor和detector。
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值