论文阅读笔记《Matching Images With Multiple Descriptors: An Unsupervised Approach for Locally Adaptive》

article/2025/9/1 20:27:51

核心思想

  本文提出一种将多种特征描述算法融合起来实现更好图像匹配的方法。近些年来,图像特征的描述算法层出不穷如SIFT、LIOP 、DAISY等等,每种方法都有各自的优势和侧重点,对于不同图像其效果也各有优劣。那么能不能将多种算法的优势结合起来,提出一种混合的特征描述算法来满足各个情况呢?最简单方法就是将多个特征向量级联或者加权求和得到融合特征向量,但这个方法有很大的问题,因为不同算法得到的特征向量维度不同,数值表达的含义也不同,因此简单的级联或者相加都不能保留原有算法的性能。如果要将多种特征描述算法更好的融合起来,就必须把他们映射到一个统一的空间中,在这个空间中各个算法的优劣有一个统一的度量方法。
在这里插入图片描述
  作者首先使用三种特征描述算法对两幅图像进行匹配,结果如上图(c)、(d)、(e)所示,黑色连线表示错误匹配,彩色连线表示正确匹配,作者发现无论是哪种特征描述算法,其正确匹配通常都满足几何连续性,他们的几何变换(单应性)都是一致的。这启发了作者将特征向量映射到单应性空间中,如图(f)所示,作者发现对于正确的匹配点,无论用任何特征描述算法,在该空间中的位置都是临近甚至是一致的,而误匹配点不同算法得到的映射坐标是不同的,无规律的散布在空间中。利用这一规律,作者利用一种无监督的单类SVM算法将正确匹配点分类出来。

实现过程

  根据上面的思路,作者首先使用Hessian-Affine检测器从两幅图像 I P I^P IP I Q I^Q IQ中分别提取关键点,构成点集 U P U^P UP U Q U^Q UQ,特征点的坐标表示为 x i \mathbf{x}_i xi,然后用 M M M种特征描述算法分别提取特征描述向量 { f i , m } m = 1 M \{f_{i,m}\}^M_{m=1} {fi,m}m=1M C ~ = U P × U Q \tilde{C}=U^P\times U^Q C~=UP×UQ表示所有特征点之间的对应关系,为了提高计算效率,对于每个 I P I^P IP图中的特征点 u P u^P uP都只保留相似程度最大的 r r r个匹配点作为后续匹配的候选对象,因此对于每个特征点、每种特征描述算法都会得到一个候选匹配点集 C i , m = { ( u i P , u i k , m Q ∈ I Q ) } k = 1 r C_{i,m}=\{(u_i^P,u_{i_k,m}^Q\in I^Q)\}_{k=1}^r Ci,m={(uiP,uik,mQIQ)}k=1r,则每个特征点都有 r × M r\times M r×M个候选匹配点,而整个点集 U P U^P UP中包含 N P N^P NP个特征点,则整个匹配点集 C C C表示为
在这里插入图片描述
  对于特征点 u i u_i ui所在的特征描述区域(特征描述算法通常提取以特征点为中心的一块区域内的特征信息),经过仿射变换可得
在这里插入图片描述
其中 A ( u i ) A(u_i) A(ui)是一个 2 × 2 2\times 2 2×2的非奇异矩阵,用于记录特征点 u i u_i ui的尺度、形状和方向,对于 U P U^P UP U D U^D UD中的特征点都进行仿射变换,并得到下式
在这里插入图片描述
H i j H_{ij} Hij是一个6自由度的仿射变换,他也可以看成是6维的仿射单应性空间 H \mathcal{H} H中的一个点。因此对于匹配点集 C C C中的任意一对匹配点 c = ( u i P , u j Q ) c=(u^P_i, u_j^Q) c=(uiP,ujQ)都可以映射到上述空间中的一个点。可考虑两对匹配点 c = ( u i P , u j Q ) c=(u^P_i, u_j^Q) c=(uiP,ujQ) c ′ = ( u i ′ P , u j ′ Q ) c'=(u^P_{i'}, u_{j'}^Q) c=(uiP,ujQ),其对应的放射单应性矩阵分别为 H i j H_{ij} Hij H i ′ j ′ H_{i'j'} Hij,则匹配点 c = ( u i P , u j Q ) c=(u^P_i, u_j^Q) c=(uiP,ujQ) H i ′ j ′ H_{i'j'} Hij之间的投影误差可表示为
在这里插入图片描述
这个误差反映了将匹配点 c = ( u i P , u j Q ) c=(u^P_i, u_j^Q) c=(uiP,ujQ)的单应性矩阵从 H i j H_{ij} Hij更换成 H i ′ j ′ H_{i'j'} Hij时产生的误差,进而两对匹配点之间的重投影误差可表示为
在这里插入图片描述
重投影误差用于计算两对匹配点之间的几何差异。
  作者构建了一个无向图 G = ( V , E ) \mathcal{G}=(\mathcal{V},\mathcal{E}) G=(V,E)来描绘匹配点之间的几何和空间关系。图中的每个节点 v i v_i vi都对应一对匹配点 c i c_i ci,如果两个节点对应的匹配点 c i c_i ci c j c_j cj在图像 I P I^P IP中的特征点 u i u_i ui u j u_j uj之间的距离足够近(这里距离足够近的概念是特征点 u j u_j uj u i u_i ui的K最近邻),则两个节点 v i v_i vi v j v_j vj之间有边 e i j e_{ij} eij连接,且边上的权重如下
在这里插入图片描述
其中 d ( c i , c j ) d(c_i,c_j) d(ci,cj)就是上文介绍的重投影误差,这表现了匹配点之间的几何一致性。为了描述匹配点在空间上的连续性,作者计算了 C C C中所有匹配点的测地距离 d g e o ( c i , c j ) d_{geo}(c_i,c_j) dgeo(ci,cj),测地距离是指两个节点在图 G \mathcal{G} G中的最短路径距离。如前文所说,正确匹配点之间具备更强的几何和空间一致性,也即测地距离更短。
  最后作者使用一个单类SVM从匹配点集 C C C中选取出正确的匹配点,该方法假设正确的数据之间都是相似的,而错误数据之间各有各的不同。这一思想正好与正确匹配点之间具备更强的几何和空间一致性的思想不谋而合,因此可以用来识别正确的匹配点。SVM方法通过解决下述带约束的最优化问题来预测每个样本的标签,
在这里插入图片描述
其中 C 0 C_0 C0 v v v是SVM的参数分别取1和0.5,函数 ϕ \phi ϕ将数据映射到再生核希尔伯特空间(RKHS),利用核技巧能够很容易的计算两个映射后数据之间的内积,即 k ( c i , c j ) = < ϕ ( c i ) , ϕ ( c j ) > k(c_i,c_j)=<\phi(c_i),\phi(c_j)> k(ci,cj)=<ϕ(ci),ϕ(cj)>,本文选择的核函数为
在这里插入图片描述
其中 σ \sigma σ设置为每对匹配点到其最近邻之间的平均测地距离。每对匹配点 c i c_i ci对应的匹配得分 f ( c i ) f(c_i) f(ci)可得
在这里插入图片描述
其中 α j \alpha_j αj表示支持向量的优化系数,对于每对匹配点对应的匹配点集 C i C_i Ci(其中包含多种特征描述算法对应的匹配结果),选择匹配得分最高的点作为最终的匹配点。

创新点

  • 通过将匹配点映射到放射单应性空间中,使得多种特征描述算法具有统一的比较标准
  • 设计重投影误差和测地距离来描述匹配点之间的几何一致性和空间连续性
  • 利用单类SVM算法来预测每对匹配点使用不同特征描述算法的匹配得分,并选择得分最高的作为最终匹配点

算法评价

  本文是从特征描述算法的角度来提高匹配效果的,融合多种特征描述算法并从其中选择出对于当前匹配点最好的方法。通过仿射变换解决了不同的特征描述算法之间无法直接比较和融合的问题,并且利用正确匹配点具备较高的几何和空间连续性的这一假设,通过构建重投影误差和测地距离来计算匹配得分。这一思想还是很有特色,而且曾经也备受关注,但问题是计算耗时实在太长了,单幅图像匹配时间长达36秒,这对于很多应用而言是无法接受的。

如果大家对于深度学习与计算机视觉领域感兴趣,希望获得更多的知识分享与最新的论文解读,欢迎关注我的个人公众号“深视”。在这里插入图片描述


http://chatgpt.dhexx.cn/article/dA0CINkv.shtml

相关文章

LIFT: Learned Invariant Feature Transform详细笔记

LIFT: Learned Invariant Feature Transform Paper: LIFT: Learned Invariant Feature Transform | SpringerLink Code: GitHub - cvlab-epfl/LIFT: Code release for the ECCV 2016 paper 文章目录 Abstract思路来源LIFT文献来源 方法&#xff1a;LIFTPipeline网络架构训练流…

简单的倒计时shell脚本

效果如下: 代码如下: #! /bin/bash #####################倒计时################ #作者:liop #完成时间:2019.12.17 #三位数以内秒数的倒计时 ########################################## display(){case $1 in1)case $2 in1)echo "******** ";;2)echo "…

计算机视觉领域经典论文源码

计算机视觉领域经典论文源码 转载自&#xff1a;http://blog.csdn.net/ddreaming/article/details/52416643 2016-CVPR论文代码资源&#xff1a; https://tensortalk.com/?catconference-cvpr-2016 一个GitHub账号&#xff0c;里面有很多计算机视觉领域最新论文的代码实现&am…

【译文】Local Intensity Order Pattern for Feature Description

在上一篇文章【特征检测】LIOP特征描述算法中讲到了LIOP描述符&#xff0c;下面我将原文翻译如下&#xff0c;如有出入请以原文为准。 —————————————————————————————————————————————————————————————————…

[2015 Springer] Local Image Descriptor: Modern Approaches——2 Classical Local Descriptors

转载请注明链接&#xff1a; 有问题请及时联系博主&#xff1a;Alliswell_WP 第一篇链接&#xff1a;https://blog.csdn.net/qq_21685903/article/details/103475243 第二篇链接&#xff1a;https://blog.csdn.net/qq_21685903/article/details/103610331 翻译 本地图像描述…

[2015 Springer] Local Image Descriptor: Modern Approaches——3 Intensity Order-Based Local Descriptors

转载请注明链接&#xff1a; 有问题请及时联系博主&#xff1a;Alliswell_WP&#xff1a;Alliswell_WP 第一篇链接&#xff1a;https://blog.csdn.net/qq_21685903/article/details/103475243 第二篇链接&#xff1a;https://blog.csdn.net/qq_21685903/article/details/10361…

在SIFT和SURF之后,有哪些比较新的且具有一定影响力的自然图像配准算法?

链接&#xff1a;https://www.zhihu.com/question/32066833/answer/2041516754 编辑&#xff1a;深度学习与计算机视觉 声明&#xff1a;仅做学术分享&#xff0c;侵删 作者&#xff1a;Vinjn张静https://www.zhihu.com/question/32066833/answer/54575191 我就提一下 OpenCV 中…

matlab vlfeat hog,vlfeat-0.9.20-bin 特征提取的工具包,实现各种 ,如hog,lbp,sift. matlab 242万源代码下载- www.pudn.com...

文件名称: vlfeat-0.9.20-bin下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 17828 KB 上传时间: 2015-07-21 下载次数: 0 提 供 者: 刘晓晶 详细说明&#xff1a;特征提取的工具包&#xff0c;实现各种特征&#xff0c;如hog,lbp,sift.-Feature extraction kit …

关于视觉SLAM的最先进技术的调查-A survey of state-of-the-art on visual SLAM

原文见文章末尾&#xff1a; 今天读了一篇视觉slam的综述&#xff0c;真的是读了一天&#xff0c;记录一下。我比较关注的是特征提取和匹配和深度学习有关的章节。好久&#xff0c;但是还算是有收获的吧。 摘要&#xff1a; 本文概述了视觉同步定位和测绘&#xff08;V-SLAM&a…

队列

目录 队列的概念及结构队列代码实现 队列的概念及结构 队列和栈略有不同&#xff0c;队列是先进后出的一种数据结构&#xff0c;通常使用链表来表示&#xff0c;当然有一种特殊的循环队列使用顺序表来进行表示的。 队列只允许从后进入&#xff0c;从前弹出&#xff0c;就像我们…

HPatches数据集(图像匹配)---2关于评估代码的解释---和python画出结果

关于画图: 参考: Matplotlib系列: https://blog.csdn.net/yuyh131/category_7823048.html 关于评估代码的解释: 我们先提前下载所有算法对数据集patches提取的描述符: ./download.sh descr List of available descriptor results file for HPatches: ----------------------…

LIOP特征

注&#xff1a;本文是笔者在阅读相关英文文献后&#xff0c;翻译、整理所得&#xff1b;原文是&#xff1a;Local Intensity Order Pattern for Feature Description&#xff1b; Zhenhua Wang, Bin Fan, and Fuchao Wu&#xff1b;ICCV2011 LIOP: Local Intensity Order Patte…

【特征检测】LIOP特征描述算法

简介&#xff1a; LIOP特征描述算法&#xff0c;是2011年ICCV上一片paper《Local Intensity Order Pattern for Feature Description》中提出的一种特征描述算法。等有空闲时间把原文仔细翻译一遍&#xff0c;然后放上来分享给大家。 算法的提出者也是比较厉害的&#xff0c;其…

php把字符串日期转成时间戳,php怎样把日期转成时间戳

php把日期转成时间戳的方法&#xff1a;可以利用strtotime()函数来实现。strtotime()函数可以将任何字符串的日期时间描述解析为Unix时间戳&#xff0c;若成功则返回时间戳&#xff0c;失败则返回false。 strtotime() 函数将任何字符串的日期时间描述解析为 Unix 时间戳&#x…

java日期转时间戳精确到毫秒

代码如下&#xff1a; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test {public static void main(String[] args) {long daytimeToStamp("2019-08-06 11:22:32");System.out.println(day);//输出1…

go 日期时间戳转换

一、日期字符串转成时间戳 //设置时区 var LOC, _ time.LoadLocation("Asia/Shanghai") //日期时间字符串 timeStr : "2022-10-10 10:00:00" //要转换成时间日期的格式模板&#xff08;go诞生时间&#xff0c;模板必须是这个时间&#xff09; timeTmepla…

java中如何把字符串日期转时间戳

定义一个字符串日期; String dataStr"2022-06-01"; public static java.sql.Timestamp parseTimestamp(String dateStr) {return parseTimestamp(dateStr, "yyyy/MM/dd HH:mm:ss"); } public static java.sql.Timestamp parseTimestamp(String dateStr,…

C语言 日期转时间戳

C语言 日期转时间戳 废话先说啥时候开始数&#xff1f;站在2022的肩膀上&#xff01;一年能“嘀嗒”多少下&#xff1f;言归正传 废话先说 关于用C实现日期转时间戳&#xff0c;面对这样一个很基础的功能&#xff0c;作为一个小白白当然是&#xff0c;先百度&#xff0c;再看C…

制作持久化U盘Kali 用U盘启动 使用fluxion破解WIFI密码(上)

这次文章包含两部分, 一部分是如何制作U盘KALI, 另一部分说明如何使用这新制作的U盘启动, 再使用fluxion 破解WIFI密码. 等以后有空写一份如何用airmon-ng来破WIFI密码吧. 本文针对有一定基础的初学者, 主要是说明有哪些坑要避开。因为装了几次发现太多坑了, 不想大家再走弯…

fluxion破解wifi

https://streamja.com/P30oE 上面有教程可以看一下&#xff0c;最近搞一个会爆炸的小玩意&#xff0c;如果搞成功了就可以理论上100%拿到wifi密码