网格分割算法(Random Walks)

  首先以一维随机游走(1D Random Walks)为例来介绍下随机游走(Random Walks)算法,如下图所示,从某点出发,随机向左右移动,向左和向右的概率相同,都为1/2,并且到达0点或N点则不能移动,那么如何求该点到达目的地N点的概率。

  该问题可以描述为如下数学形式:

P(0) = 0

P(N) = 1

P(x) = 1/2*P(x - 1) + 1/2*P(x + 1) for x = 1, 2, 3, … , N-1

  如果用矩阵形式描述,即:

那么通过求解该线性方程组就可以得到各个点到达目的地N点的概率,以上就是一维随机游走算法原理。

[Grady et al. 2006]提出了利用随机游走思想来分割二维图像,文章将图像考虑成一张图(Graph),每个像素对应图中一个节点,根据亮度差值定义节点间的权重(相当于一维随机游走中向左和向右的概率),然后用户指定前景(foreground)和背景(background)标签(相当于一维随机游走中N点和0点),通过求解线性方程组就可以得到各个像素点属于前景或背景的概率,如果将阈值概率设置为0.5,那么就可以分割得到期望的图像区域。

[Lai et al. 2008]将这种思想扩展到三维网格分割,文章将网格中每个三角片对应图中一个节点,利用相邻三角片之间的二面角来定义节点之间的权重,具体如下:

对于三角片fi,定义一个fi与相邻三角片fi,k(k = 1, 2, 3)之间几何差异的函数d(fi, fi,k):

d(fi, fi,k) = η·[1 – cos(dihedral(fi, fi,k))] = η/2·||Ni – Ni,k||2

其中:dihedral(fi, fi,k)代表相邻三角片fi与fi,k之间的二面角,Ni为三角片fi的法向,对于凹边η设置为1.0,对于凸边η设置为0.2。

  将d归一化:

  节点之间的权重pi,k可以根据函数d(fi, fi,k)给定:

  同样通过求解线性方程组可以得到网格分割效果。

  [Zhang et al. 2010]对[Lai et al. 2008]的网格分割算法做了部分改进,文章将网格中每个顶点对应图中一个节点,由于一个网格的三角片数量通常是顶点数量的2倍左右,这样求解的方程变量数就会减少一半左右,计算速度就会得到提高。

效果:

 

欢迎大家一起探讨计算机图形学算法问题,邮箱:shushen@126.com

本文为原创,转载请注明出处:http://www.cnblogs.com/shushen。

参考文献:

[1] Grady, L., "Random Walks for Image Segmentation," in Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.28, no.11, pp.1768-1783, Nov. 2006

[2] Yu-Kun Lai, Shi-Min Hu, Ralph R. Martin, and Paul L. Rosin. 2008. Fast mesh segmentation using random walks. In Proceedings of the 2008 ACM symposium on Solid and physical modeling (SPM '08). ACM, New York, NY, USA, 183-191.

[3] Zhang, J., Wu, C., Cai, J., Zheng, J. and Tai, X.-c. (2010), Mesh Snapping: Robust Interactive Mesh Cutting Using Fast Geodesic Curvature Flow. Computer Graphics Forum, 29: 517–526.

网格分割算法(Random Walks)相关推荐

  1. 图像处理(三)图像分割(1)Random Walks分割

    基于随机游走的图像分割算法 基于随机游走的图像分割算法是属于图论分割方法中的一种,这个算法比较偏,网上的paper比较少,刚开始学习找个资料都不容易,其实这个算法的原理就是通过求解一个邻接矩阵方程组, ...

  2. 激光雷达:点云语义分割算法

    作者 | 巫婆塔里的工程师@知乎 来源 | https://zhuanlan.zhihu.com/p/412161451 编辑 | 焉知智能汽车 1. 前言 之前的文章中介绍了基于LiDAR点云的物体 ...

  3. Random Walks: A Review of Algorithms and Applications2020翻译

    Random Walks: A Review of Algorithms and Applications2020翻译 在翻译的时候公式太多,公式部分有些乱码.如果需要可以看看本文的文字,感兴趣的话直 ...

  4. CVPR2020论文解析:实例分割算法

    CVPR2020论文解析:实例分割算法 BlendMask: Top-Down Meets Bottom-Up for Instance Segmentation 论文链接:https://arxiv ...

  5. 一文详解点云分割算法

    作者丨书生意封侯@知乎 来源丨https://zhuanlan.zhihu.com/p/470782623 编辑丨3D视觉工坊 从某种意义上说,地面点剔除(分割)也属于点云分割的一种,但两者技术路线有 ...

  6. 实例分割综述(单阶段/两阶段/实时分割算法汇总)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 简介 目标检测或定位是数字图像从粗到细的一个渐进过程.它不仅提供了图像对象的类,还提供了已分类图像中对 ...

  7. 实时语义分割算法大盘点

    本文转载自计算机视觉工坊 语义分割论文 语义图像分割是计算机视觉中发展最快的领域之一,有着广泛的应用.在许多领域,如机器人和自动驾驶汽车,语义图像分割是至关重要的,因为它提供了必要的上下文,以采取行动 ...

  8. 3D-BoNet:比3D点云实例分割算法快10倍!代码已开源

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自新智元(AI_era)   新智元报道   来源:投稿 编辑:元子 [新智元导读]本文提出了一种基于边界框回归的高效点云实例分割算法,通过最小 ...

  9. mask rcnn算法分析_实例分割综述(单阶段/两阶段/实时分割算法汇总)

    作者:Danny明泽 来源:公众号@3D视觉工坊 链接:实例分割综述(单阶段/两阶段/实时分割算法汇总) 简介 目标检测或定位是数字图像从粗到细的一个渐进过程.它不仅提供了图像对象的类,还提供了已分类 ...

最新文章

  1. 分布式存储(姚文辉)
  2. 使用Gradle禁止Java和Spring Boot Web应用程序中的FindBugs警告
  3. 立镖机器人浙江_立镖在美国获2020 NextGen供应链解决方案奖
  4. 动态规划--图像压缩
  5. CF 46D Parking Lot
  6. 9 MM配置-主数据-维护物料管理的公司代码
  7. iPhone 12 Pro Max机模曝光:有乔布斯内味儿了
  8. HTML限制输入个数,如何使用CSS(或jQuery,如果需要)限制输入HTML输入的字符数?
  9. mysql 只有 .ibd_mysql数据库被破坏,只剩下ibd文件时如何恢复
  10. 算法与数据结构 第3章 高级排序算法中 归并算法改进
  11. nonebot2+cqhttp 防闪照与防撤回插件
  12. Color-UI 简介及使用教程
  13. 交易系统开发(二)——行情数据
  14. 迅捷PDF转Word转换器
  15. 解决虚拟机ubuntu20.04不能连外网问题
  16. PTA(C++):L1-2 大笨钟(10分)[简单if判断]
  17. 【R-CNN论文翻译】目标检测经典论文R-CNN最新版本(v5版)全面中文翻译
  18. libnet发包java语言_Libnet11手动构建IPv6数据包
  19. 1.IEC 62056-21 E模式通信
  20. Quartus Prime 与 Modelsim 调试 及do文件使用

热门文章

  1. 图像转置的MATLAB和OpenCV源码
  2. KVM中I/O设备直接分配和SR-IOV(十六)
  3. 奇奇seo优化软件_seo优化软件如何选择
  4. 在Putty或mRemote下输入和显示中文
  5. 不同编程语言在发生stackoverflow之前支持的调用栈最大嵌套层数
  6. Unity -- 入门教程三
  7. 「daza.io」这将是我独立完成全端开发的项目
  8. Linux-HA 高可用开源方案 Keepalived VS Heartbeat 对比
  9. Java 使用 URLConnection 模拟 Http Get和Post 提交
  10. 无法访问android.git.kernel.org的情况下如何使用repo