D2-Net: A Trainable CNN for Joint Description and Detection of Local Features(2019)(五)

本文是一个集合detector和descriptor为一体的网络,并且只需要知道匹配就能同时训练一个detector和descriptor的网络
这也是D2的来历
 
一些思考:1. 一些deeplearning的feature匹配其实在descriptor表现的已经很好了(感受野也比较稳定),
                            所以认为瓶颈在detector上,本文主要解决的问题就是这个。
                  2. descriptor中融合了许多信息,那么是否这种detector的稳定性score也可反应出来呢(肯定可以)
 
  1. 先看网络形式
            
                1.输入一张图,经过cnn网络输出W*H*C的feature map,一般descriptor就是从channel中获取比如C=128,
                   那么(I, j)位置的descriptor就是1x1x128的向量
                    这样其实是一个dense 的feature map(每个像素都有一个channel方向的vector)
                2.再然后根据一些方法在这个dense 的feature map上找到是否是角点即可得到最终detector和descriptor
 
那么我们来看如何判断是否是角点,下图是网络输出的feature map层:
                
可以看出 dij表示的是1x1x128的descriptor,从这个feature map的结构看,每一层(每一个channel)
是不是都类似一个sift中的金字塔的一层呢?只不过金字塔每一层有大有小,feature map每一层的大小都一样而已,
那么detector信息肯定也能从这个feature map中提取出来(类似金字塔)
 
因此定义:
        
            这个公式的意思是,如果上述feature map中的某个元素在channel上最大(其实就是sift金字塔上的最大),
并且在那层局部也是最大
          (和sift一模一样的判断方式),那么他就是一个角点。
 
为了使其可微分,定义:
    
上述四个公式最终将feature map层输出W*H*1的score map,并且这个单层的score map所有元素之和为1(其实就是上述过程公式化),
 最终得到一个scoremap,一会训练的时候作为loss中descriptor的权重。
 
train & loss
     训练的时候通过sfm是可以得到一些匹配的(最好是dense的重建或者rgbd的数据),然后直接以这个匹配为gt。
      学习的目的有三个:1,正确的匹配descriptor更加接近。2,错误的匹配descriptor更加远离。3,匹配的位置detector的score还应该挺高。
      1. 正确匹配的特征的度量方式还是L2距离,        ,其中d表示的是特征向量,
          用来惩罚正确匹配的不一致性
      2. 正确匹配局部的次近邻应该用来惩罚不匹配的相似性
      3. 1和2一起就是:
      4. 最终的loss,在考虑descriptor的同时还应考虑该地方的score:
        
 
结果不错,时间论文没有提,文中提到解决scale的问题可以将原始image resize成多个size,然后分别通过网络生成feature map,最后
 将他们的feature map累加,得到最后的feature map(这个只在test的时候使用,也合理,毕竟角点在任意scale的feature上都应该是角点,响应很高)
 
 
总结
      0. 要解决什么问题(现在的deep feature detector是瓶颈,对光照或者纹理变化的时候detector根本检测不出来,更别说匹配了)
  1. 训练数据(最好使用dense 的rgbd 重建的match)
  2. scale(train的时候未考虑,在test的时候可以resize不同size的image然后求和得到)
  3. oritation(未考虑, 全靠训练数据
  4. wild-base(未考虑,全靠训练数据)
  5. detector & descriptor(同时进行,其实这样的话,他的descriptor中就已经融合了一些detector信息)
  6. 网络的输入输出(输入image,输出完整的feature)
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值