D-Nets算法浅析
D-Nets算法简述
过去局部特征算法以SIFT为代表的Patch-Based Descriptors模式下的描述子几乎研究近二十年,分别对Patch-Based模式下的描述子构建鲁棒性、维数缩减进行大量的研究,但是难以在速度与精度上达到最优。例如:出现一批SIFT-Based下的描述子,尽管如此SIFT仍然是最为标准化的局部特征算法。2012年CVPR上Felixvon Hundelshausen提出Descriptor-Nets(D-Nets)来改进局部特征匹配算法,突破传统Patch-Based模式下描述子的研究。D-Nets通过经典的稀疏(Sparse features) or稠密(Dense features)特征点来构建网络,同时通过采样网络每条边的信息来构建描述子。D-Nets算法不仅对裁剪、平移、尺度、旋转等不变性,同时D-Nets对于非线性扭曲和严重透射变换较Patch-Based下的方法更加鲁棒的匹配。D-Nets算法对比SIFT与ORB算法在Oxford标准数据集上进行对比,在匹配精度与匹配概率大幅提升同事仍然保持计算效率。
D-Nets算法过程
1 网络使用兴趣点算子(完全连接的D-Nets)生成的节点完全连接成图。
2 迭代版本的D-Nets只是在必要时候进行动态构建连接。
3 不需要兴趣点算子,节点通过简单与图像内容无关的规则网格上(Dense D-Nets)进行密集采样方式构建网络。
下面介绍一下全连接模式下的(Fully Connected)D-Nets:
特征点提取算子文章中采取FAST或者SIFT提取的方式,当然这点也可以采用其它特征提取的方式。
D-Nets模式两个连接被定义为正确的匹配,只要开始和结束节点对应于两幅图像中相同的物理点时。例如:图1中连接和是正确匹配点因为节点与匹配。这里解释一下:匹配连接与是通过这两个连接线段进行等间隔采样获取图像强度信息。
当然,你可能会有疑问: 第一:连接的长度不同怎么办?第二:连接长度采样距离多少?文章通过构建一个简易金字塔模式来进行多尺度的匹配策略,缩放因子为其中为连接的欧氏距离,通过尺度缩放因子来适应不同几何变换的连接距离变化。第二个问题,文章固定采样间隔十等分线段图像内容的描述强度信息。最后通过归一化向量来进行进一步提升缩放与平移的干扰。
每个连接的采样图像内容信息都获取之后,存储与一个特定的哈希表中,这个哈希表与标准的哈希表不同之处在于每一个都包含两个单独的列表,每个列表中的连接都需要进行匹配。
最后,通过票决算法进行快速筛选匹配的连接。关于票决算法过程和哈希表构建详细可以阅读文献D-Nets: Beyond Patch-Based Descriptors或者我的译文D-Nets论文翻译。
D-Nets算法优缺点
优点:
更强的匹配性能:旋转、平移、透射等同时保持计算效率。
提出一种描述符网络的匹配策略,通过特殊的哈希存储结构和票决算法进行快速加速筛选匹配。
完全放弃经典的Patch模式,采取拓扑结构表达空间信息,相比较传统块模式表述对非线性扭曲图像间匹配具有更强的鲁棒性。
提出三种策略来进行特征提取,可以采取传统手动工程进行提取特征点,然后建立d-token进行匹配;或者采取稠密特征点提取策略,匹配效果同样不错。
高效的存储数据结构可以在GPU上加速应用,适用于快速和大规模并行实施。
缺点:
D-Nets对于尺度变化匹配效果不是特别的满意。
仍然只是使用灰度图像信息进行匹配,没有参考彩色图像颜色通道信息,或者图像中纹理、相位等综合描述。当让,添加这些描述信息计算效率会降低。
虽然通过点对之间的欧式距离来进行等间隔采取图像强度信息作为描述,但是直接连接两个特征点来采样信息,似乎并没有什么逻辑规律。或许可以结合图像边缘信息来进行采样信息描述,作者文章后续工作有所谈及。
D-Nets算法实验小试
代码下载
作者源码地址: https://sites.google.com/site/descriptornets/ (需要翻墙)
参考文献
论文链接:
http://www.cs.cmu.edu/~rahuls/pub/cvpr2012-dnets-rahuls.pdf