论文阅读笔记《Common Visual Pattern Discovery via Spatially Coherent Correspondences》

news2024/11/16 8:41:17

核心思想

  两组点集中共有的匹配区域通常具备两个特点:1.局部的特征相似;2.特征点在空间上的分布也相似。作者将候选匹配点对作为图的节点,将两种相似性统一到边的权重来表示。通过寻找图中稠密连接的子图来寻找两个点集中的匹配区域,如下图所示
在这里插入图片描述

实现过程

  首先,利用SIFT等算法分别从两幅图像中提取特征点集 P , Q P,Q P,Q,其中的特征点 p p p包含两个特征信息 p d , p c p_d,p_c pd,pc p d p_d pd表示由SIFT提取的局部特征向量, p c p_c pc表示特征点的坐标。内积空间 C = P × Q C=P\times Q C=P×Q表示所有可能的对应关系,每组对应点 c i c_i ci都由一对点 ( i , i ′ ) (i,i') (i,i)表示,其中 i ∈ P , i ′ ∈ Q i\in P, i'\in Q iP,iQ。每组对应点的局部特征相似得分 S c i = f 1 ( i d , i d ′ ) S_{c_i}=f_1(i_d,i'_d) Sci=f1(id,id),由于匹配点通常局部特征都比较相似,因此仅保留相似得分较大的对应点 M = { c ∣ c ∈ C , S c > ϵ } M=\{c|c\in C, S_{c}>\epsilon \} M={ccC,Sc>ϵ}
在这里插入图片描述

  对于两组对应点 c i = ( i , i ′ ) c_i=(i,i') ci=(i,i) c j = ( j , j ′ ) c_j=(j,j') cj=(j,j),设第一幅图中的点 i i i j j j之间的距离为 l i j l_{ij} lij,第二幅图中的点 i ′ i' i j ′ j' j之间的距离为 l i ′ j ′ l_{i'j'} lij。如果它们是两组匹配点,那么我们应该可以通过对第二幅图放缩 l i j / l i ′ j ′ l_{ij}/l_{i'j'} lij/lij倍,来使两组点对齐。同理,如果两个公共的匹配区域包含 n n n组对应点,那么他们两两之间构成的匹配关系应该有较为接近的放缩系数,而噪点或离群点通常不具备这样的特点。两组对应点之间的几何一致性得分 S c i c j ( s ) = f 2 ( ∣ l i j − s l i ′ j ′ ∣ ) S_{c_ic_j}(s)=f_2(|l_{ij}-sl_{i'j'}|) Scicj(s)=f2(lijslij) s s s表示放缩系数。 f 2 ( x ) f_2(x) f2(x)是一个非负单调递减函数,本文中取
在这里插入图片描述
  假设一个对应点集 M M M包含 m m m组对应点, M = { c 1 , c 2 . . . c m } M=\{c_1, c_2...c_m\} M={c1,c2...cm}。可以构建一个包含 m m m个节点的图 G G G,每个节点都表示一组对应点,这个图称之为动态对应图(dynamic correspondence graph)。节点 i i i j j j之间的边的权重 w i j w_{ij} wij可表示为
在这里插入图片描述
该权重与放缩系数 s s s有关,则加权邻接矩阵 A ( s ) A(s) A(s)可定义为
在这里插入图片描述
A ( s ) A(s) A(s)是一个对称的非负矩阵。
  对于一个由 n n n个特征点构成的共同匹配区域,当选择正确的放缩系数 s 0 s_0 s0时,对应点之间的局部特征相似得分和几何一致性得分应该都很高,即边的权重会较大,那么就对应图 G G G中的一个稠密子图 T T T。这个稠密子图具备较高的平均类内相似性得分(average intra-cluster affinity score) S a v ( s 0 ) = 1 n 2 ∑ i ∈ T , j ∈ T A ( i , j ) ( s 0 ) S_{av}(s_0)=\frac{1}{n^2}\sum_{i\in T,j\in T}A(i,j)(s_0) Sav(s0)=n21iT,jTA(i,j)(s0)。如果使用指示向量 y y y来表示 T T T,即如果 i ∈ T i\in T iT y ( i ) = 1 y(i)=1 y(i)=1否则为 0 0 0。则 S a v ( s 0 ) S_{av}(s_0) Sav(s0)可表示为 S a v ( s 0 ) = 1 n 2 y T A ( s 0 ) y = x T A ( s 0 ) x S_{av}(s_0)=\frac{1}{n^2}y^TA(s_0)y=x^TA(s_0)x Sav(s0)=n21yTA(s0)y=xTA(s0)x,其中 x = y / n x=y/n x=y/n。由于 ∑ i y ( i ) = n \sum_iy(i)=n iy(i)=n,则 ∑ i x ( i ) = 1 \sum_ix(i)=1 ix(i)=1
  根据Motzkin-Straus定理,下式中的局部极大值点就对应图中的一个最大团
在这里插入图片描述
其中
在这里插入图片描述
简而言之,作者将寻找图 G G G中稠密子图 T T T的问题转化为了求解目标函数 f ( x ) f(x) f(x)的局部极大值点的问题。
  给定一个放缩系数 s 0 s_0 s0,优化目标函数 f ( x ) f(x) f(x)可能包含许多的局部极大值点,极值点的值越大越有可能对应正确的公共匹配区域。给定一个初始的 x ( 1 ) x(1) x(1),则 f ( x ) f(x) f(x)的局部极大值点 x ∗ x^* x可通过模仿者等式 (Replicator Equation)得到
在这里插入图片描述
通过迭代计算上述等式,当数值收敛于稳定点时,则对应于 f ( x ) f(x) f(x)的一个局部极大值点。
  为了找到全部的局部最大值点 { x ∗ } \{x^*\} {x},可以提供多个初始化 x ( 1 ) x(1) x(1)分别进行迭代计算。由于局部最大值点 x ∗ x^* x对应于共同匹配区域,因此它具备两个特性:

  1. 局部性,对于图 G G G中每个节点 v v v,包含 v v v在内的共同匹配区域是 N ( v ) ∪ v N(v)\cup v N(v)v的子集, N ( v ) N(v) N(v)表示 v v v的邻域。因此只需要对图 G G G中每个节点 v v v的邻域中对 x ( 1 ) x(1) x(1)进行初始化。
  2. 非交叉性,两个不同的共同匹配区域通常不会包含公共的顶点。这意味这两个局部极大值点 x ∗ , y ∗ x^*,y^* x,y,其对应两个不同的共同匹配区域,应满足 x ∗ T y ∗ ≈ 0 x^{*T}y^*\approx 0 xTy0

  利用上述特性,可以对图 G G G中的每个节点及其邻域分别进行初始化,然后通过模仿者等式寻找到该初始化对应的局部极大值点。将所有的局部极大值点进行降序排列,并将极值较小的点舍去。最后,根据 x ∗ T y ∗ x^{*T}y^* xTy是否大于 η \eta η来将局部极大值点进行合并,从而求得最终要保留的局部极大值点,如算法1所示
在这里插入图片描述
  得到局部极大值点还要将其恢复到对应的共同匹配区域, x ∗ x^* x中的每个点 x i ∗ x_i^* xi表示对应点 i i i是正确匹配点的概率,可以通过算法2得到共同匹配区域
在这里插入图片描述
  在实际应用中,放缩系数 s s s通常属于一个范围 R = [ s 0 , s 1 ] R=[s_0,s_1] R=[s0,s1],因此可以通过在该范围内均匀采样得到 s s s,然后分别计算不同放缩系数条件下对应的共同匹配区域,如算法3所示
在这里插入图片描述

创新点

  • 将特征点的匹配问题转化为了寻找图的最大团问题
  • 利用共同匹配区域的局部性和非交叉性来优化求解过程

算法总结

  作者关注的是寻找两幅图中局部的共同匹配区域问题,并且非常巧妙地将其转化为了寻找图的最大团问题,并利用了共同匹配区域的局部性和非交叉性来优化求解过程,使其能够更好更快地求解。该方法还有一个优势是可以解决一对一、一对多和多对多的匹配问题,这在应用中具备很高的价值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/349599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年浙江建筑特种工(施工升降机)真题题库及答案

百分百题库提供特种工(施工升降机)考试试题、特种工(施工升降机)考试预测题、特种工(施工升降机)考试真题、特种工(施工升降机)证考试题库等,提供在线做题刷题,在线模拟考…

大数据DataX(一):DataX的框架设计和插件体系

文章目录 DataX的框架设计和插件体系 一、DataX是什么

Python客户端使用SASL_SSL连接Kafka需要将jks密钥转换为pem密钥,需要转化成p12格式再转换pem才能适配confluent_kafka包

证书生成 生成证书以及jks参考以下文章 https://blog.csdn.net/qq_41527073/article/details/121148600 证书转换jks -> pem 需要转化成p12以下转换才能适配confluent_kafka包,直接jks转pem会报错不能使用,具体参考以下文章 https://www.ngui.cc/z…

我的Android启动优化—【黑白屏优化】

简述 在Android App使用过程中,对于应用的优化是一个加分项,举个例子,打开你的App需要2秒,人家0.5秒,这就是很大的用户体验上的优化。 问题的产生 在开发中,我们在启动app的时候,屏幕会出现一…

C语言之函数

函数不可嵌套定义&#xff0c;函数之间为平行关系#include<stdio.h> //比较大小 int max(int x,int y){int z;if(x>y){zx;}else{zy;}return z;//带返回值 }//不带参数 void help(void){printf("**********hello********\n"); }int main(){int num;nummax(3,…

Kubernetes集群编排工具helm3 工作学习记录

文章目录1. helm 介绍、组件、安装和目录结构1.1 helm 介绍1.2 helm 组件1.2.1 helm2 和 helm3 的区别1.3 helm 安装1.4 helm 目录结构2. 编写一个chart 和 helm3 内置对象讲解2.1 创建编写一个chart2.1.1 创建chart,引用内置对象的变量值2.1.2 helm通过各种类型chart包安装一个…

微信上线外卖小程序“门店快送”

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 抖音入局外卖&#xff0c;微信都开始下场做外卖了&#xff0c;难道都知道这块儿特赚钱吗&#xff0c;只能说如今大环境还是不太好&#xff0c;南山必胜客都开始搞兼职了…… 2月15日&#xff0c;有…

【管理您的整个软件供应链】上海道宁与​Sonatype助力您以更安全的开源更快地交付产品

Sonatype是 美国一家开源DevOps服务供应商 支持开源组件&#xff08;中央仓&#xff09; 为开发者提供资源库管理器&#xff08;Nexus&#xff09; 帮助加速软件创新 配备Nexus产品的组织 可以做出更好的决策 更快地进行大规模创新 并且知道他们的应用程序 始终由最高质…

微电影的行业痛点有哪些?

微电影全称微型电影&#xff0c;又称微影。是指能够通过互联网新媒体平台传播&#xff08;几分钟到60分钟不等&#xff09;的影片&#xff0c;适合在移动状态、短时休闲状态下观看&#xff0c;具有完整故事情节的“微(超短)时”(几分钟-60分钟)放映、“微(超短)周期制作(7-15天…

iOS开发framework和demo 使用cocoapod方法集成三方库

使用workspace。workspace相当于项目管理&#xff0c;创建workspace形成的文件是.xcworkspace。使用 一、xcode创建workspace并放入SDKFramework文件夹内&#xff0c;如图 选择File → new→Workspace → 点击save 这时候文件夹中就多了 SDKFramework.xcworkspace 文件 1-4.p…

功率放大器在MEMS微结构模态测试研究中的应用

实验名称&#xff1a;功率放大器在MEMS微结构模态测试研究中的应用研究方向&#xff1a;元器件测试测试目的&#xff1a;随着MEMS器件在各个领域中广泛应用&#xff0c;对微结构进行模态测试获得其动态特性参数对微结构的设计、仿真、制造、以及质量控制和评价等方面具有十分重…

机器学习:self-attention

输入 编码方式&#xff1a; one-hot:word-embedding:能更明显的区分不同类别的输入 图也能看作是多个向量输入 输出 每个向量都有一个label 一整个sequence有一个label 模型自己决定有多少个label&#xff08;sequence to sequence&#xff09; 重点介绍每个vector有一个…

Qt编写视频监控系统71-外网访问摄像头等设备(获取各种信息及拉流)

一、前言 最近遇到个需求是通过外网接入摄像机或者NVR&#xff0c;通用的做法是将视频流推流到服务器&#xff0c;然后拉取rtmp视频流&#xff0c;这样就多了服务器的要求&#xff0c;而且实现的功能有限比如不能直接用onvif协议对设备获取信息和配置信息&#xff0c;还有个做…

Guitar Pro8.0吉他打谱作曲中文版有哪些新功能?

很多人在听到Guitar Pro这个名词时&#xff0c;本能反应就是跟吉他有关的软件吧&#xff0c;但是具体是什么样子&#xff0c;有什么功能我们却不一定知道的那么详细&#xff0c;下面呢&#xff0c;我们就来详细的介绍下Guitar Pro这款软件。最后&#xff0c;Guitar Pro绝对是初…

【JAVA八股文】并发相关

并发相关1. 线程状态2. 线程池3. wait vs sleep4. lock vs synchronized5. volatile6. 悲观锁 vs 乐观锁7. Hashtable vs ConcurrentHashMap8. ThreadLocal1. 线程状态 六种状态及转换 分别是 新建 当一个线程对象被创建&#xff0c;但还未调用 start 方法时处于新建状态此时…

20- Xgboost 算法参数最优化 (集成算法) (算法)

Xgboost 方式一 from xgboost import XGBClassifier model XGBClassifier(learning_rate 0.1, # 学习率&#xff0c;控制每次迭代更新权重时的步长&#xff0c;默认0.3。值越小&#xff0c;训练越慢use_label_encoderFalse,n_estimators10, # 总共迭代的次数&#xff0c;即…

英特尔研究院探索负责任的生成式AI,让AI应用真正惠及大众

ChatGPT的爆火让AI再次成为大众热议的焦点&#xff0c;作为英特尔所提出的搭建起从模拟时代到数字时代桥梁的五大“超级技术力量”之一&#xff0c;伴随着无处不在的智能化&#xff0c;AI可将无穷的数据转化为切实可行的洞察。作为半导体行业的领先企业&#xff0c;在这一前沿技…

Windows系统从权限维持角度进行应急响应

一、基本介绍 红队攻击者在对目标进行渗透利用后通常都会进行权限维持&#xff0c;以达到持续利用的目的。而作为防守方进行应急响应时&#xff0c;应该如何与技术高超&#xff08;jiaohuajianzha&#xff09;的攻击者斗智斗勇呢&#xff1f;或许可以通过本文可以找到答案。以…

企业小程序开发步骤【教你创建小程序】

随着移动互联网的兴起&#xff0c;微信已经成为了很多企业和商家必备的平台&#xff0c;而其中&#xff0c;微信小程序是一个非常重要的工具。本文将为大家介绍小程序开发步骤&#xff0c;教你创建小程序。 步骤一、注册小程序账号 先准备一个小程序账号&#xff0c;在微信公…

ROS从入门到精通5-5:局部路径规划插件开发案例(以DWA算法为例)

目录0 专栏介绍1 局部规划插件制作框架2 DWA算法源码分析2.1 全局路径裁剪2.2 更新局部代价2.3 运行DWA算法2.3.1 构造动态窗口2.3.2 生成最优轨迹2.4 终点规划3 算法测试0 专栏介绍 本专栏旨在通过对ROS的系统学习&#xff0c;掌握ROS底层基本分布式原理&#xff0c;并具有机…