表面配准论文1--基于高阶图匹配方法的稠密表面配准

Dense Non-rigid Surface Registration Using High-Order Graph Matching

一.摘要
      提出高阶图匹配方程来解决非刚性表面配准问题,单阶项描述了几何和外观相似性(曲率和纹理),高阶项对内部嵌入能量(intrinsic embedding energy)进行建模。
      三个创新点:
      1、将3D表面配准转化为图匹配问题,结合了几何外观相似性和内在信息;
      2、用高阶图匹配算法解决了非凸优化问题;
      3、有效的两级优化算法,限制了稠密表面配准的搜索空间。
二、引言
      问题中往往有局部的高维度的自由形变,为了解决这个问题,多种现有方法是通过将表面嵌入到一个保持地线或角度的正则域中来获得密集点的对应关系。这种嵌入需要一组初始的特征对应或边界条件。但上述方法难以找到可靠的特征对应点和连续的边界条件。为了解决这个问题,[34]考虑了一种优先级驱动的策略,在等距假设的基础上寻找稀疏特征的对应关系。在[22]中引入了一种Mobius投票方案,在两个稀疏特征集之间寻找对应关系。但稠密配准效果不好。此外,由于大多数表面形变不是等距的,仅考虑内在信息会引入误差,考虑外在相似性也很重要。
       近年来,图匹配成为一个建立特征对应的有效框架,结合了表面相似性和几何兼容性。以往已将其应用于图像特征。仅考虑单阶匹配,即指派问题。对于二阶匹配问题(pairwise matching ),[28]提出采用双分解方法,这对于求解非凸能量函数很有用。对于高阶匹配问题,以往包括概率超图、张量度量,当能量函数为凸时优化效果较好,非凸未知。
     图匹配已经成功应用于二维图像,但三维表面不能再欧几里得二维域内表示,所以两点的距离无法以封闭形式计算。根据单值化理论,任何3D
表面可以被保形映射到2D域。 然而,这种保形映射并不是唯一的。通过Mobius变换可以捕捉到保角映射集合。在将拓扑的表面等价于球体的情况下,至少需要三个对应关系来确定一个唯一的保形映射,可以以封闭形式计算,这就可以将图匹配应用于表面配准。由于Mobius变换是通过在曲面上固定任意三个点来唯一确定的,所以我们可以通过高阶图的相互作用来有效地模拟嵌入的能量。
     思路:曲率和纹理等测量方法描述几何和外观相似性,高阶图相互作用对内部嵌入能量建模。这些度量是在一个高阶图匹配框架中使用的,该框架使用伪布尔公式以有效的方式解决。这种方法将高阶项降低为二次项[15],并基于双分解技术得到近似最优解。最后,提出了一种通过候选选择和局部图匹配来约束搜索空间的层次算法,该算法允许以子顶点精度实现稠密的表面配准。
三、数学方程
        通过对方程的全局优化实现,方程包括形变消耗和匹配消耗。能解决含有部分重叠的非等距表面配准问题。由于这种高阶图匹配具有非凸能量函数,一般很难直接用[13]等现有技术来求解。本文采用伪布尔公式将高阶项减少到二次项。因此,基于dual分解技术可以得到全局最优或近似最优解。
1、伪布尔方程
        
大多数算法选择松弛求解,这里将其降为二阶项

这样高阶图匹配问题变为伪布尔优化问题:

       因为正系数θ∞编码匹配约束,能量函数5非凸,一般来说这是一个np难问题。伪布尔公式的优点是,理论上任何高阶项都可以简化为一个二次项。本文采用灵活的双分解技术,得到近似最优解。
2、势函数
       仅考虑一阶三阶项
(1)一阶势
       旋转图像
(2)高阶势
          根据单值化定理,任何三维表面都可以被展平到一个规范的2D域,因此,每个特征点在复平面上都有一个参数坐标。这种保角映射的灵活性在于可以用一个Mobius变换来表示,这个变换可以通过固定表面上的任意三个点来唯一地确定。我们基于Mobius变换计算两个triplets之间的匹配分值作为的变形误差。

         仅考虑Mobius变换会导致等距模糊。因而再考虑表面的高斯分布。高斯映射被定义为平面上每个点上的法线到单位球的映射,表达了外部几何信息。每个triplets 都有方向,当且仅当两个triplets的法线有相同的符号,他们的方向才相同。如下:
 3、优化和计算复杂度
       对偶分解是将原问题分解成几个容易解决的子问题。
       theta代表单、双、三阶项的权重向量;I代表子问题的集合;
    rou代表每个子问题的权重。原问题可以这样解决:更新每个子问题σ的参数θσ,对偶问题的能量增加。
       同时有以下分解约束:
 
      我们把原问题分解成三个子问题:
(1)仅考虑单阶项的线性问题,即线性指派问题;
(2)高阶伪布尔子问题通过将高阶项降为二阶项,可以用QPBO算法求解;
(3)将原表面分为小区域的局部子问题可以用穷举法在每个小区域内寻找最优解;
四、稠密表面配准
    1   两级优化策略:稀疏特征匹配+稠密点匹配
       由于初始特征点是在网格边缘的顶点和中间点选择的,如果网格分辨率较低,匹配结果可能是不可靠的。为了解决上述问题,我们考虑了由不同的Mobius变换引起的所有正形映射,它们由两个表面之间的每三个对应关系决定,用于密集点匹配。
        Candidate Voting(候选投票): 在稀疏阶段计算出了两个表面间的稀疏对应点,由于表面形变不是等距的,我们提出基于莫尔比斯变换的投票策略来弥补近似误差。给定任意三个对应点对,莫尔比斯变换都可以以封闭形式计算。所以S1上任一点都会映射到S2上一个不同的候选位置。因此通过考虑特征对应的所有可能的变换,可以得到原表面到目标表面的所有候选对应关系。
       Candidate clustering(候选聚类):S2上的投票候选点是通过对齐三个对应关系得到的,该匹配能量中存在莫尔比斯代价,因此该代价越低且曲率和纹理越接近,两个点匹配的可能性越大。因此定义每个候选匹配点的可能性:

2 局部高阶图匹配
        新目标是为每个稠密点寻找一个好的局部匹配位置,该问题类似于高阶图匹配问题。由于候选投票策略已经去除了由莫尔比斯变换导致的模糊,现在仅需要考虑基于纹理和几何相似性的匹配代价,以及方向连续性。在单值化域内,每个三角形和他的匹配三角形应该有相同的方向,即无翻转。

      并不能保证每个点都有至少一个匹配点,因此,我们删除没有任何匹配的候选点,并通过Delaunay三角测量算法在单值化域中获得对S1剩余点的三角剖分。
      假设S1上每个点p只能有最多一个候选点,则有如下约束:
      这样,可用上述优化算法解决这个问题。
      与高阶图匹配算法相比,我们的局部图匹配算法的一个主要优点是,每个点的匹配候选数通常小于6,因此,变量的数量非常小。在局部地匹配n个点时,只有O(n)个变量和O(n)个三阶项,因为密集点在平面参数域中是三角化的。

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

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

相关文章

Apache Spark软件包,从XML到JSON

Apache Spark社区为扩展Spark付出了很多努力。 最近,我们希望将XML数据集转换为更易于查询的内容。 我们主要对每天进行的数十亿笔交易之上的数据探索感兴趣。 XML是一种众所周知的格式,但是有时使用起来可能很复杂。 例如,在Apache Hive中&a…

js中几种实用的跨域方法原理详解

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下表给出了相对http://store.…

python中matplotlib画图_Python-matplotlib画图(莫烦笔记)

这个是我对于莫烦老师的matplotlib模块的视频做的一个笔记。1.前言Matplotlib是一个python的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib,开发者可以仅需要几行代码,便可以生成绘图&#xff0c…

js词法分析

javascript词法分析函数在运行的瞬间,生成一个活动对象(Active Object),简称AO;具体分为两个阶段:一.分析阶段JavaScript代码运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤&…

如何使一维数组一行一行的输出成二维数组的格式

以9个元素的数组为例,输出3x3的格式 基本思想是对每一个元素的index进行检查,当index是3,6,9等可以被3整除的数时,在打印它们之前,先打印一个\n。注意0也可以被3整除,但是此时不打印\n,所以要加上i>0的…

python我想对你说_python学习第3天-----字典、解构

1.字典1)定义:查找速度快,效率高;用{}括起来,内部使用key:value的形式来保存数据;键值对是无序的,不是按照定义的方式保存数据的(类似于json文件),例如: {jay:周杰伦,jj::林俊杰}注&…

bms_output.put_line使用方法

https://blog.csdn.net/sxww321/article/details/4020300转载于:https://www.cnblogs.com/diyunpeng/p/10022923.html

linux 权限掩码 umask

一 权限掩码umaskumask是chmod配套的,总共为4位(gid/uid,属主,组权,其它用户的权限),不过通常用到的是后3个,例如你用chmod 755 file(此时这文件的权限是属主读(4)写(2)+执行(1),同…

ant 构建_有用的Ant构建标签

ant 构建问题: 如何在ant文件中执行以下任务? 制作zip文件。 运行命令。 将文件复制到远程计算机。 在远程Linux机器上运行命令。 打开输入框并响应输入值。 拨打蚂蚁电话。 答案: 1.制作zip文件: 以下是在ant中制作zip文…

C++文件交互(txt、excel)

前些天完成了计算机视觉大作业,《基于双目立体视觉的深度图像生成》,虽然刚开始觉得作业很难,也没找到现成的程序,但做到最后还是学到很多知识,get到很多技能,现在一一总结下来。 1、C输出数据到txt 包含…

基类数组存放派生类_永远不要将派生类数组赋值给基类类型指针

C.152: Never assign a pointer to an array of derived class objects to a pointer to its baseC.152:永远不要将派生类数组的指针赋值给基类指针Reason(原因)Subscripting the resulting base pointer will lead to invalid object access and probably to memory corruptio…

路由器和网关的区别?

1.网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.2…

C++error:找不到指定文件

做作业遇到这样的问题:新建了一个C工程,在内部新建了a.cpp a.h文件,将另一个工程里面的内容复制了过来,但是运行显示“找不到指定文件”,找了一下,发现虽然我的项目源文件里包换这个cpp文件,但是…

MVC 1.0的可能方法

如《 Java EE 8积极路线图》中所述,Java EE 8计划中未包含MVC 1.0。 我的看法以及在JavaOne期间与我交谈过的几个人的指示,这样做的可能结果是: MVC已完全删除 MVC继续并包含在Java EE 8(JSR 366)中 MVC继续作为Ja…

ES2015 中的函数式Mixin

原文链接:http://raganwald.com/2015/06/17/functional-mixins.html 在“原型即对象”中,我们看到可以对原型使用 Object.assign 来模拟 mixin,原型是 JavaScript 中类概念的基石。现在我们将回顾这个概念,并进一步探究如何将功能…

spring中的设计模式_面试:设计模式在spring中的应用

设计模式为我们解决一类问题提供了最佳的解决方案,我们在实际工作其实不太常用到,以至于会经常想不到设计模式。究其原因都是我们只是在使用别人框架的缘故,在这些框架的代码中经常能看到设计模式的影子,我们以spring为例&#xf…

linux route命令的使用详解

route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局…

C如何将二维数组作为返回值

做大作业遇到这样一个问题:在子函数里申请了一个二维数组,在主函数里要用到二维数组里的数据,但是在主函数里又不能提前申请(因为不知道数组长度),所以需要将数组return得到。 子函数: float **…

Spring的IOC底层实现

IOC的底层实现 续图: 转载于:https://www.cnblogs.com/phyger/p/10027712.html

python传文件给java_python使用简单http协议来传送文件

python使用简单http协议来传送文件!在ubuntu环境下,局域网内可以使用nc来传送文件,也可以使用基于Http协议的方式来下载文件我们可以使用python -m SimpleHTTPServer ${port}来启动服务默认的端口是8000,另外我们也可以指定端口&a…