核心思想:
本文是一种refine特征提取网络的技术,并且是无监督学习,不需要标注数据方便refine
任何deep feature网络
解决问题以及出发点:
一个完整的feaure包含角点信息和描述符信息,直观上讲描述符的维度那么高
理论上他应该包含了一些关于角点的信息,而且应该也比较鲁棒,那么是否可以
从描述符中抽取出来detector信息呢?这就是本文出发点。
简单review:
现在的deepfeature基本分为两类:1)先detecror在descriptor
2)detector和descriptor同时进行
本文提出的新的一种方式,先进行descriptor,然后无监督即可从descriptor中分析出detector
![](https://i-blog.csdnimg.cn/blog_migrate/328f107b4e53d52764179f3b0be9997d.png)
本文思路:
-
什么是角点?
角点应该满足两个性质:
1)high absolute saliency,也就是必须包含高度的显著性,这个意思是说应该在纹理丰富的区域。
2)high relative saliency,也就是必须在局部具有显著的区分性,这个意思是说局部应该有区别。
综上所述:
必须满足上述两条。光有丰富的纹理不行,比如相似纹理。光有局部区分也不行,比如墙角没啥纹理信息。
-
那么怎样提取出来满足上述两个条件呢?
2.1 首先是absolute saliency
想当然,想要看一个向量(descriptor)的信息是否充足,用熵呀,但是熵又需要概率,不好计算,
那么用方差代替吧:
![](https://i-blog.csdnimg.cn/blog_migrate/687cc439e2436cb278a511459a64c68c.png)
其中F(x, y)表示的是pixel(x, y)位置的descriptor向量,F帽是均值。向量的平方的期望-向量的均值的平方(方差)
2.2 其次是high relative salienc
在sift中局部邻域区分性用的是像素之间的梯度差:
![](https://i-blog.csdnimg.cn/blog_migrate/ef22da542ec89b78ebc1d1dbb1b9e1f5.png)
第一项W是权重可以使用卷积核。后边是像素值。u,v是设置一个windows滑动窗口。
在本文中使用descriptor:
![](https://i-blog.csdnimg.cn/blog_migrate/8f876017080699e801bf53971017cb9f.png)
2.3 最终descore:
![](https://i-blog.csdnimg.cn/blog_migrate/8f876017080699e801bf53971017cb9f.png)
!!!!!好了 有了loss,然后就可以训练refine了!!!!!!!
整个算法流程:
![](https://i-blog.csdnimg.cn/blog_migrate/8d5fda65de1ee059d691ec36d61c3d6c.png)
首先输入image 然后获得dense 的descriptor的map,然后抽取detector。
结果:对原有网络的提升还是挺明显的