Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)

本文要解决的问题:
        本文主要解决detector 问题,为什么要解决这个问题呢?目前已知的detector的可重复性检测不鲁棒
           作者分析是没有像fast等这样使用像素的梯度信息,因此本文提出了一种新的方法解决detector问题。
本文主要的贡献:
            提出了一种融合传统detector方法和deeplearning的方法的特征detector 器,更加鲁棒稳定健壮。
首先是整体框架:
        Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)
网络框架很简单,首先为了仿照金字塔,对原始图像降采样+高斯blur(3层scale),然后在每个scale上进行网络学习。
然后每个输入首先执行像素上的梯度的一阶导数,得到一个feature map层,然后执行像素的二阶导数得到一个feature map层。
再然后经过几层CNN层,最后上采样到原始image 大小。再然后每个scale层累加融合,得到最终的一层W*H*1的response map
上述融合两层的像素梯度导数层是第一个创新
 
然后看下loss:
    Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)
将response层分割成grid,每个grid为N*N的windows大小(上述图片N=8),然后在每个小windows中进行局部极大值抑制。
 1)首先对respondse的score进行归一化:
        Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)
       其中i表示这个windows的编号,wi(u, v)表示坐标u v处的响应值(类似superpoint)
  2)然后直接“回归”出keypoint在这个小的windows中的坐标:
    Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)
i还是表示windows的编号(那么也就是每个windows将会获得一个keypoint的候选),cw表示这个windows的左上角坐标
好了有了上述结果就可以类似别的deeplearning使用homograph”弱监督”的惩罚两张图的detector不一致性获得loss了:
    
Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)
 
其中a,b表示输入的两张图H表示之间的变换,xi,yi表示这个windows上的keypoint位置,R表示响应值。(上述就是两张图的keypoint的一致性)
为了使用multi-scale的windows因此做了不同的windows,如下图所示:
Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)
loss将会统计每个不同scale的windows的一致性
 
Key.Net: Keypoint Detection by Handcrafted and Learned CNN Filters(2019)(十三)