网格处理

泊松重建

Possion重建是Kazhdan等2006年提出的网格重建方法[1]。Possion重建的输入是点云及其法向量,输出是三维网格。Poisson有公开的源代码[2]。PCL中也有Poisson的实现。

它的核心思想是点云代表了物体表面的位置,其法向量代表了内外的方向。通过隐式地拟合一个由物体派生的指示函数,可以给出一个平滑的物体表面的估计。

参考: 从点云到网格(三)Poisson重建: https://www.cnblogs.com/luyb/p/5730932.html

相机标定

5-点算法

5-点算法是指相机内参数已知的情况下,已知二幅图像之间的 5 组图像对应点,如何求取二幅图像之间的本质矩阵,进而分解出对应的旋转矩阵平移向量的一种方法。 5-点算法由 David Nister 于 2004 年提出( Nister 2004),现已成为为基于图像的三维重建的一种广泛使用的方法。 5-点算法涉及大量的数学推导,有兴趣的学生可参阅这篇文章。

5-点算法尽管理论上比较复杂,也不能得到唯一解(最多有 10组解),但在具体应用中,不正确的解可以通过其它对应点快速剔除,且作者提供了算法代码,所以,目前基于图像的三维重建,人们基本都使用 5-点算法。

也许,人们会提的一个问题是,既然 5-点算法得到的多个解可以通过其它对应点剔除,为什么不直接用多组对应点求解本质矩阵呢?这样得到的解的个数会更少。当有 8-组对应点时,理论上可以得到唯一的本质矩阵。这主要是因为实际应用中,二幅图像之间会匹配到大量对应点,但这些对应点中有很多是错误对应点。为了提高估计的鲁棒性,人们一般在 RANSAC ( RANdom SAmplying Consensus ) (Fischler & Bolles 1981) 框架下进行估计,即反复提取待估计问题的最小点集( minimal set) , 然后对估计的结果进行验证,而 5-组对应点是能够求取本质矩阵的最小点集。

参考: http://vision.ia.ac.cn/zh/teaching/index.html 第四章

光束法平差(Bundle Adjustment)

也可能翻译为束调整捆集调整、捆绑调整,或者最小化重投影误差(高翔slam---第七讲)等等。

本质是一个优化模型(一个图优化模型),其目的是最小化重投影误差

              

光束:所谓bundle,来源于bundle of light,其本意就是指的光束,这些光束指的是三维空间中的点投影到像平面上的光束,而重投影误差,正是利用这些光束来构建的,因此称为光束法,强调光束也正是描述其优化模型是如何建立的。

平差:由于测量仪器的精度不完善和人为因素及外界条件的影响,测量误差总是不可避免的。为了提高成果的质量,处理好这些测量中存在的误差问题,实际观测值的个数,往往要多于确定未知量所必须观测的个数,也就是要进行多余观测。有了多余观测,势必在观测结果之间产生矛盾,测量平差的目的就在于消除这些矛盾而求得观测量的最可靠结果,并评定测量成果的精度。测量平差采用的原理就是“最小二乘法”。(百度词条)

重投影:也就是指的第二次投影;第一次投影指的就是相机在拍照的时候三维空间点投影到图像上,然后我们利用这些图像对一些特征点进行三角定位(triangulation,很多地方翻译为三角化或者三角剖分等等,即利用几何信息构建三角形来确定三维空间点的位置,相关内容请参考对极几何);最后利用我们计算得到的三维点的坐标(注意不是真实的)和我们计算得到的相机矩阵(当然也不是真实的)进行第二次投影(第二次投影到图像平面上),通过最小化两次在图像平面上投影的误差,达到优化相机参数的目的。

        Bundle adjustment优化的是sum of reprojection error(重投影误差的和)这是一个geometric distance)几何距离[为什么要minimize geometric distance可以参考[Hartley00]],可以转换成一个least squares problem(最小二乘问题), 如果nosie是gaussian,那就是一个最大似然估计(maximum likelihood estimator),是这种情况下所能得到的最优解了。 

        这个reprojection error的公式是非线性的,所以这个least squares problem得用迭代法来求解一般都是用Gauss-Newton 法或者LM算法迭代求解。

Bundle adjustmen由于是特定的形式,所以可以化成sparse matrix (稀疏矩阵)的形式,这样计算量大大减小了。不论GN,LM,中间都要解一个Ax=b形式的linear system,一般情况下算法的效率就取决于解这个linear system的效率。所以说到底,这些nonlinear least squares problem,最后也就是解一个linear system。这个linear system你可以直接解,也可以用QR分解,乔姆斯基分解 ,或者奇异值分解法来解

现实中,并不是所有观测过程中的噪声都服从 gaussian noise的(或者可以说几乎没有),遇到有outlier的情况,这些方法非常容易挂掉,这时候就得用到robust statistics里面的robust cost(*cost也可以叫做loss, 统计学那边喜欢叫risk) function了,比较常用的有huber, cauchy等等。

  • BA一种启发式的阻尼高斯牛顿法,在几何视觉中广泛使用
  • BA有效性的关键在于提供理想的初始值

参考:Bundle Adjustment---即最小化重投影误差 https://www.cnblogs.com/Jessica-jie/p/7739775.html

Bundle Adjustment简述 https://blog.csdn.net/OptSolution/article/details/64442962

点云配准

ICP算法(迭代最近点)

ICP算法能够使不同的坐标下的点云数据合并到同一个坐标系统中,首先是找到一个可用的变换,配准操作实际是要找到从坐标系1到坐标系2的一个刚性变换

ICP算法本质上是基于最小二乘法的最优配准方法。该算法重复进行选择对应关系点对, 计算最优刚体变换,直到满足正确配准的收敛精度要求。

ICP 算法的目的是要找到,待配准点云数据与参考云数据之间的,旋转参数R和平移参数 T,使得两点数据之间满足某种度量准则下的最优匹配。

参考:https://www.cnblogs.com/haoyul/p/7979289.html

三维重建笔记_重建方法简介与汇总相关推荐

  1. 三维重建领域_常用算法简介

    目录 1. 三维重建领域, SFM效果较好的算法或者框架有哪些? 2. MVE.NVM.AliceVision 3. OpenMVG各个模块的功能,特点,适用场景,优缺点? OpenMVG的特点和优势 ...

  2. 系统集成项目管理工程师笔记_备考常见英文词汇汇总

    1.备考常见计算机技术词汇 缩写 英文全称 中文 IS Information System 信息系统 MIS Management Information System 管理信息系统 ERP Ent ...

  3. 三维图形几何变换算法实验_计算机视觉方向简介 | 深度学习视觉三维重建

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 作者: Moonsmile https://zhuanlan.zhihu.com/p/79628 ...

  4. 三维重建技术 各种方法简介

    三维重建技术通过深度数据获取.预处理.点云配准与融合.生成表面等过程,把真实场景刻画成符合计算机逻辑表达的数学模型.这种模型可以对如文物保护.游戏开发.建筑设计.临床医学等研究起到辅助的作用. 1.1 ...

  5. 三维重建技术(2)各种方法简介

    转自:三维重建技术 各种方法简介, G换一种活法 这个博主也是转载的,可是来源不可查,所以暂把来源写为这个博主的博客 三维重建技术通过深度数据获取.预处理.点云配准与融合.生成表面等过程,把真实场景刻 ...

  6. 微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关

    微服务笔记:第一章_微服务简介|Eureka注册中心|Nacos注册中心|Nacos配置管理|Feign|Gateway服务网关 1. 微服务简介 1.1 服务架构演变 1.2 SpringCloud ...

  7. python双目视觉三维重建代码_双目立体视觉的三维重建方法与流程

    本发明为双目立体视觉的三维重建方法,属于图像处理与机器视觉领域,涉及halcon软件,具体涉及空间场景的三维重建. 背景技术: 三维重建技术作为计算机视觉领域的一个重要分支,在人工智能.虚拟现实.非接 ...

  8. Python笔记:matplotlib 三维图表绘制方法简介

    Python笔记:三维图表绘制方法简介 1. python三维图表绘制方法简介 2. 实例说明 1. 三维曲线图绘制 2. 三维散点图绘制 3. 三维曲面图绘制 3. 参考链接 1. python三维 ...

  9. 音速索尼克 怪人_优势演员评论家方法简介:让我们玩刺猬索尼克!

    音速索尼克 怪人 by Thomas Simonini 通过托马斯·西蒙尼(Thomas Simonini) 优势演员评论家方法简介:让我们玩刺猬索尼克! (An intro to Advantage ...

  10. 人力资源之选人方法学习笔记_职位胜任素质模型

    续接上篇:人力资源之选人方法学习笔记_建立科学的人才观   本篇主要讲解关于职位胜任素质模型课程的学习笔记. 什么是职位胜任素质模型 就是用行为方式来定义员工为了完成某项工作应该具备的知识.技能等特质 ...

最新文章

  1. java启动无线网络连接_在无线模式存在的情况下,如何连接无线网络
  2. 【shell】docker images 拿到ID
  3. android中AVD的使用
  4. SpringBoot 配置环境属性
  5. AngularJS 自定义控件
  6. leetcode124. 二叉树中的最大路径和
  7. Android多线程的使用
  8. ICEM: 合并混合网格
  9. word论文封面下划线对齐
  10. 使用snap安装microk8s
  11. 2020年重磅喜讯!热烈祝贺王家林大咖人工智能及大数据领域经典著作《Apache Spark+AI全息代码解密》清华大学出版社发行上市!
  12. linux查询数据库归档日志,关于 Oracle 归档日志
  13. 基于LXC的GPU服务器搭建
  14. java合并word_java实现合并多个word文档 且可换页 实例代码(基于docx4j)
  15. Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名
  16. Nexus私服使Maven更加强大
  17. Shellcode生成工具Donut测试分析
  18. 微信小程序直播卖货模式怎么开启
  19. 第十周实验指导--任务3--先建立一个Point(点)类,再派生出一个Circle(圆)类,再派生出一个Cylinder(圆柱体)类...
  20. 批量修改照片(图片)格式、批量旋转照片方向(图片)、批量命名照片(图片)

热门文章

  1. 机器学习三剑客之Matplotlib
  2. 在阿里云上创建带gpu的ecs实例
  3. 百度ocr文字识别接口使用
  4. python自动化,自动登录并且添加一个门店
  5. BZOJ 4698: Sdoi2008 Sandy的卡片
  6. 调用腾讯的API接口
  7. 深入理解 ASP.NET 动态控件 (Part 1 - 感性认识)
  8. signal(SIGPIPE,SIG_IGN)与signal(SIGCHLD,SIG_IGN)
  9. VS2015 编译boost
  10. Maven中DependencyManagement和Dependencies区别