网格简化之顶点聚类算法 学习笔记

作者: 开飞机的乔巴 | 来源:发表于2019-09-30 13:36 被阅读0次

本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权,请告知删除。

传统2D计算机视觉学习笔记目录------->传送门
传统3D计算机视觉学习笔记目录------->传送门

前言

马上就要国庆节了,热祝中华人民共和国成立七十周年,祝祖国繁荣富强,当然还有一个高兴的事情就是,要放假了O(∩_∩)O~

刚刚准备写网格简化近似方法的时候,笔记里面就列了要写顶点聚类算法,由于比较简单吧,也一直没有写,为了庆祝我国生日,还是来写一下子吧。

顶点聚类算法思路

网格简化的目的就是减少面片的数目,或者说减少顶点的数目。顶点聚类的算法的思路就是类似于我们在点云中的体素降采样,我们将网格分成很多小格子,我们称之为体素,每个体素里面都有若干顶点或没有,将含有顶点的体素里面的顶点 合并为一个顶点。 将体素相连的顶点重新连接成三角面片,形成新的网格。

但是从上图看,明天网格的连接结构发生了很大的变化,两个不相连的边被连在了一起,改变了拓补结构。在下一节我们来看看顶点聚类怎么来处理这个问题。

嗯…………,基本的处理方式就是这么简单,好像说完了,我要是理解错了别打我,~~~~ (>_<) ~~~~

顶点聚类算法具体过程

在上面我们简单的描述了顶点聚类的基本原理,但是也表明了其中的问题。下面我们来讲解一下常用的基于顶点聚类的算法。

基于八叉树的顶点聚类网格简化算法,使用八叉树的主要优势可以对原模型包围盒进行自适应划分,即对体素的大小进行自适应的划分,同时利用二次误差度量控制简化模型的变形,类似与QEM误差度量。

我们来描述一下算法的流程:

  1. 根据模型构建八叉树,保证在每个八叉树体素内顶点和边所构成的图是连通的,如果又不连通则继续拆分八叉树体素。
  2. 计算每个顶点的Q值(我们在QEM中有描述Q是什么)
  3. 计算出每个体素点合并后,其新点到之前的面的误差的最小值,以及新点的位置
  4. 将所有的体素按照误差权值放到一个最小堆里
  5. 每次合并度量(cost)最小的体素,并且更新连着该体素的所有有效体素的代价
  6. 如果没有达到阈值则重复5,否则退出

算法的流程基本上和QEM一样,不过qem是针对边,而顶点聚类的话是针对八叉树内的一个体素。

效果展示【代码】

vcg的代码太繁杂了,也比较长,如果有需要的可以联系我微信。
原理网格边长2cm 体素大小5cm
体素大小10cm 体素大小20cm

总结

在刚开始看顶点聚类算法的时候,貌似好像跟QEM没有什么联系,两种不同的方案。但是最后我们看到,我们使用顶点聚类的基础,采用QEM的策略来优化简化方法,也能使方法有着更优秀的提高。其实学习算法最重要的是发现分析处理事情的思路,让其方法更接近最优解。而且处理不同事情的算法,没有任何联系,但是其解决问题的策略可能能使用很多的事情。所以大家一起努力吧,先从简单的算法开始,慢慢的来,由简入繁,深入浅出,简单的东西往往包含更正确的原理。


重要的事情说三遍:

如果您看到我的文章对您有所帮助,那就点个赞呗 ( * ^ __ ^ * )

如果您看到我的文章对您有所帮助,那就点个赞呗( * ^ __ ^ * )

如果您看到我的文章对您有所帮助,那就点个赞呗( * ^ __ ^ * )

传统2D计算机视觉学习笔记目录------->传送门
传统3D计算机视觉学习笔记目录------->传送门

任何人或团体、机构全部转载或者部分转载、摘录,请保留本博客链接或标注来源。博客地址:开飞机的乔巴

作者简介:开飞机的乔巴(WeChat:zhangzheng-thu),现主要从事机器人抓取视觉系统以及三维重建等3D视觉相关方面,另外对slam以及深度学习技术也颇感兴趣,欢迎加我微信或留言交流相关工作。

相关文章

  • 网格简化之顶点聚类算法 学习笔记

    本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权...

  • <<Polygon Mesh Processing&

    网格简化的算法大致上可以分为下面几种: Vertex clustering algorithms:顶点聚类算法拥有...

  • 空间聚类算法简述

    空间数据聚类算法主要包括四大类:(1)给予划分的聚类;(2)基于层次的聚类;(3)基于密度的聚类;(4)基于网格的...

  • 聚类算法

    #聚类算法 标签(空格分隔): 机器学习 聚类算法 --- ###聚类算法的原理 无监督算法,相似的样本自动归...

  • 机器学习之k-means聚类算法学习

    关于聚类算法,之前整理过一篇dbscan的,可以与本文相互参考,链接地址: 机器学习之DBSCAN聚类算法学习 1...

  • 聚类算法k-means

    聚类算法 聚类算法 是 无监督学习 聚类算法有特征,无标签,是无监督分类。 sklearn 聚类模块 cluste...

  • 网格简化之QEM学习笔记

    本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权...

  • 网格简化之VSA学习笔记

    本博客内容来源于网络以及其他书籍,结合自己学习的心得进行重编辑,因为看了很多文章不便一一标注引用,如图片文字等侵权...

  • 聚类算法之K均值算法(k-means)的Python实现

    聚类算法之K均值算法(k-means) 算法简介 K-means算法是硬聚类算法,是典型的基于原型的目标函数聚类方...

  • 无标题文章

    聚类方法整理 标签(空格分隔): 算法学习 聚类算法大类 1. K-Mean 2. 层次聚类算法 3. SOM聚类...

网友评论

    本文标题:网格简化之顶点聚类算法 学习笔记

    本文链接:https://www.haomeiwen.com/subject/gryhyctx.html