三维空间中平面(基本图元)检测方法

三维空间中平面检测方法(其他基本图元的方法也类似)

前言:

宏观上在三维空间中做平面检测可以分为 三类:(1)RANSAC(2)Hough变换(3)区域增长等聚类算法
其他的一些方法都是在这三个基础上进行的扩展或者变形,核心思想可以分为三类。

这三种方法不仅适用于检测三维空间中的平面,进行适当的变形,还能完成对三维空间中球体,圆锥体等等基本图元的检测。

一、RANSAC:

ransac在三维空间中除了检测某种具有特定数学表达式的模型外,还能够完成点云配准的任务,有兴趣的小伙伴可以自己查一下。

三维空间中平面(基本图元)检测方法
基本原理:(以二维平面中检测直线为例讲解,三维中同理)首先在下图左中,随机选择两个点,根据直线方程建立具体直线的表达式,然后判断其他点到这条直线的距离,该距离小于一定阈值时,就认为该点在这个直线上。然后进行不断的迭代,直到碰到终止条件(可以是都选择完,选择这个点数量最多的直线,也可以直接设置阈值,当该直线中的点的数量超过一定阈值之后,直接将该直线输出出来。)
三维空间中平面(基本图元)检测方法
下图为在三维空间中循环使用RANSAC来检测平面的结果。
三维空间中平面(基本图元)检测方法
三维空间中平面(基本图元)检测方法

; RANSAC方法的优缺点:

三维空间中平面(基本图元)检测方法

二、Hough变换 (参数空间聚类)

三维空间中平面(基本图元)检测方法
简单理解为:将形状检测问题转换成了峰值统计问题 ,其中峰值统计问题很好求解。
如何将检测问题转换成峰值统计问题:就是变换空间。如下面讲解:(详细讲解部分可以参考知乎大神https://zhuanlan.zhihu.com/p/47649796 ) 此处只做简述。
(还是以二维空间的讲解为例)
一条线段所在的直线可以被描述成一个一次函数: y=k x + b。而找图中的直线的基本思想就是把这张图转化到一个类似(k,b)的空间中去,其中遇到一个问题就是:如果所处理的线中有竖直的线,那么就会遇到非常大的k,这个会在数值上造成一些麻烦。
所以就将直角坐标系中的参数方程改成求坐标系中。将任意点(X0,Y0)代入变换空间中的参数方程得:

三维空间中平面(基本图元)检测方法
将直线上任意两个点代入该参数方程,然后画出对应的曲线。如下图所示,我们会发现这两条曲线交于一点。
三维空间中平面(基本图元)检测方法
那么多点的情况那?如下图所示:

三维空间中平面(基本图元)检测方法
三维空间中平面(基本图元)检测方法
我们会发下,在空间中同属于一个直线上的点,画出对应的参数方程后,都会在参数空间中相交于一点。然后再通过峰值聚类的方法,就可以得出该直线的具体表达式了。
三维空间中类似。

; Hough变换的优缺点:

三维空间中平面(基本图元)检测方法

三、区域增长等聚类算法:

三维空间中平面(基本图元)检测方法
如下图进行的超体素分割(具体可以参考:https://blog.csdn.net/qq_41918369/article/details/114436941)的过程就是一个局域增长算法的延伸。
三维空间中平面(基本图元)检测方法
或者如下图二维空间中的图割算法,也是在空间中选择种子点,然后一点点扩展,来完成对图像的分割任务。
三维空间中平面(基本图元)检测方法
三维空间中平面(基本图元)检测方法
下图是一个在利用区域增长算法在三维空间中完成三维平面提取的算法:
三维空间中平面(基本图元)检测方法
三维空间中平面(基本图元)检测方法

; 区域增长算法的优缺点:

三维空间中平面(基本图元)检测方法

Original: https://blog.csdn.net/qq_41918369/article/details/116448938
Author: 种花家的德棍
Title: 三维空间中平面(基本图元)检测方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/560588/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球