| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 基于图像的三维重建——基于空间patch扩散的方法(PMVS) -> 正文阅读 |
|
[人工智能]基于图像的三维重建——基于空间patch扩散的方法(PMVS) |
1.PMVS:多视图匹配经典算法简介导语:常见的稠密重建方法主要有三种:基于体素的方法、基于深度图融合的方法以及基于3D patch扩张的方法。第一种基于体素的方法仅适用于小场景,单个物体,遮挡较少的情况,不予赘述。第二种基于深度图融合的方法在前面已经介绍过:基于图像的三维重建——深度图计算方法1-SGM/tSGM(9)以及基于图像的三维重建——深度图计算方法2-PatchMatch(10),这两种都是通过计算得到的不同视角的深度图进行融合来获取稠密点云。而今天要介绍的就是第三种方法:基于3D patch扩张的方法,PMVS就是其中的典型算法,主要以已知内外参数的多幅图像(sfm的结果)为输入,重建出真实世界中物体/场景的三维模型。 论文题目:Accurate,Dense,and Robust Multiview Stereopsis. 算法流程: 算法效果:如下所示,从左到右一次为输入图像(不同角度共48张),特征点提取,特征匹配结果,扩张剔除迭代3次后效果,转换为网状模型效果。 2.基本模型基本模型中提及的符号含义:
面片模型: 所谓面片,是指三维物体表面的局部切平面,可以近似地表示某一局部范围内地三维物体表面,与数学中在某一范围内用切线研究曲线的做法一致,都是“非线性函数线性化来近似处理”的思想。本质上看,一个面片是三维空间中的一个矩形,由其中心点、单位法向和参考图像三者共同确定,中心点 c( p )是其对角线交点的坐标,单位法向 n( p )是从中心点指向参考图像 R( p)对应的摄影中心的单位向量,这里之所以要引入参考图像的概念,是因为一个面片会在多幅图像中出现,选定其中的某一图像作为该面片的参考图像,将包含该面片的所有图像组成的集合 V( p )称为该面片的可视集。 接着作者在可视集的基础上引入了成像差异函数(Photometric Discrepancy Function)的概念,或者叫灰度差异函数。 要想理解g( p )函数,要先明白h( p )函数的意思,而这里的h( p )函数也是一个成像差异函数,h(p,I1,I2)表示图像I1和I2之间的成像差异。两个函数建立的基础不一样,g( p )是建立在某一面片的可视集上,包括两张及两张以上图像,h( p )是针对两张图像而言的。总的来说,两者的关系如下,h( p )函数是g( p )函数|V( g )| = 2时的特殊情况,计算g( p )是通过对多个h( p )求和得到的。成像差异函数如下图所示: 由于g( p )对于图像中出现高光或者有障碍物的情况下的效果不好,因此在实际情况下,我们需要保证图像I和图像R( p )的灰度一致性函数大于一定的α。因此有: 图像模型: 基于面片的表面表示方式最大的优势是其灵活性,但缺少面片与面片之间的连接信息,这使得寻找临近面片,面片规整操作实现起来比较复杂,为此引入图像模型(Image Model),建立重建出面片和其可视图像上投影间的联系。具体的讲,将每张图片分割为
β
\beta
β×
β
\beta
β的网格单元Ci(x,y),这里的x,y表示图像块的下标,i表示这是第i张图像的。给定一个面片p和对应的V( p ),把p投影到V( p )的图像中,以得到面片p对应的图像块,每个图像块Ci(x,y)用一个集合Qi(x,y)记录了所有投影到这个图像块的面片,同理,我们用Qi*(x,y)来表示V*( p )得到的结果。如下图所示: 3.初始面片生成该论文提出的多视图匹配三维重建方法,可以分为初始面片、面片扩展、面片剔除三部分,经过初始特征匹配得到一组稀疏的面片集合,然后通过反复扩展、剔除面片的过程得到最终的结果。每幅图像通过Harris和Dog算子提取处特征点后,进入到特征匹配阶段,这是PMVS算法的核心内容,思路如下: 4.面片扩展经过上述的特征匹配后,重建出了一组稀疏的面片,接下来通过已有的面片在周围空处生成新的面片进行扩展,期望达到的效果是每个图像网格单元上都至少包含有一个面片。首先,对于一个面片p,明确其周边可以扩张的网格单元,然后按照某种扩展策略进行扩展,具体步骤如下: 确定可扩展网格单元: 存在面片p的网格单元Ci(x,y),根据下式,将其上下左右四个网格单元视作临近网格单元,但并非每个临近网格单元都是可扩张的网格单元,还需要满足两个基本条件。 结合下图总结如下:在确定可扩张的网格单元时分为三种情况,没有面片时(绿色箭头a)进行扩张;有面片且为邻近面片时(红色箭头b)没有必要扩张;有面片但非邻近面片时(橙色c)需要进一步判断成像差异函数,若小于给定阈值没有必要扩张,大于给定阈值则扩张。 扩展策略: 在明确了哪些网格可以扩展后,接下来的问题就是如何根据已有的面片构建出新的面片了,思路如下: 5.面片剔除在面片的扩展过程中,可能会出现一些误差比较大的面片,因为需要剔除来确保面片的准确性。每次剔除分三步进行,每步的侧重不同,前两部从可视一致性入手,第三部强调面片间的关联性。 6.优缺点优点: 算法适用性强;适用于各种形状的物体。 朗伯面假设;容易产生空洞。 参考:https://blog.csdn.net/lhanchao/article/details/51885998 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 9:41:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |