点云精简系统及方法

文档序号:6615185阅读:214来源:国知局
专利名称:点云精简系统及方法
技术领域
本发明涉及一种精简系统及方法,尤其是一种点云精简系统及方法。
背景技术
逆向工程是相对于正向工程而言,所谓正向工程是指已有产品的设计图纸,然后按图纸 加工出产品实物。而逆向工程是由高速三维激光扫描器对已有的实物(样品或模型)进行准 确、高速的扫描,获取实物的点云数据,根据所获点云数据构建三维数字模型,进而利用 CAM系统完成产品的制造。
目前,利用三维激光扫描器扫描受测对象后,获得的点云数据一般密度较大,通常有数 十万、上百万、甚至上千万。而目前在逆向工程中,曲面重构算法的时间复杂度大都为n3, 因此,时间耗费是逆向工程软件需要解决的首要问题。
进一步的,利用三维激光扫描器扫描受测对象得到的点云数据中,由于各种原因会导致 得到的点云数据有误差,甚至会出现噪声点,这样会导致重构出来的面极不平滑。

发明内容
鉴于以上内容,有必要提供一种点云精简系统,其可快速地对点云数据进行精简及过滤 ,以便获得一个数据量少、不失真且较均匀的点云。
鉴于以上内容,还有必要提供一种点云精简方法,其可快速地对点云数据进行精简及过 滤,以便获得一个数据量少、不失真且较均匀的点云。
一种点云精简系统,包括应用服务器。所述的应用服务器包括点云接收模块,用于从 一个点云获取装置中接收点云数据;拓扑结构建立模块,用于为上述点云建立拓扑结构,即 将点云中的所有点建立起关联;相邻点寻找模块,用于根据上述建立的拓扑结构,为点云中 的点寻找与之距离最近的若干个点;曲率计算模块,用于计算点云中的点的曲率,即将某一 点与距离该点最近的若干个点进行局部抛物面的拟和,得到该局部抛物面的一般方程式,并 根据该一般方程式及曲率计算公式计算出该点的曲率;及点云精简模块,用于根据上述计算 出来的曲率、及用户对该点云设置的精简度参数,对点云进行精简处理,即当某个点的曲率 与距离该点最近的若干个点的曲率平均值的差值在所述的精简度参数范围之内时,精简该点 ,否则,若不在精简度参数范围之内时,保留该点。
一种点云精简方法,该方法包括如下步骤(a)从一个点云获取装置中接收点云数据;(b)为上述点云建立拓扑结构,即将点云中的所有的点建立起关联;(c)选择点云中的 一个点;(d)根据上述的拓扑结构,在点云中寻找与该点距离最近的若干个点;(e)将该 点与距离该点最近的若干个点进行局部抛物面拟和,得到该局部抛物面的一般方程式,并根 据该抛物面的一般方程式及曲率计算公式计算出该点的曲率;重复上述步骤(c)到步骤( e),直至点云中的所有的点的曲率都计算完毕;及(f)根据上述计算出来的曲率,以及用 户对该点云设置的精简度参数,对该点云进行精简处理。
利用本发明,可以对三维激光扫描器扫描得到的点云数据进行精简,利用曲率差表示每 个点相较于该点相邻点的形变程度,对形变较小的平面,只保留必要的点,而精简掉其他冗 余点,对形变程度较大的点曲面,根据精简度要求决定保留的点数,因此可以获得一个数据 量少、不失真且较均匀的点云。


图l是本发明点云精简系统系统较佳实施例的硬件架构图。
图2是图1中应用服务器的功能模块图。
图3是本发明点云精简方法较佳实施例的主流程图。
图4是图3中步骤S11建立点云之间拓扑结构的具体实施流程图。
图5是图3中步骤S13在点云中寻找距离一点最近的若干个点的具体实施流程图。
图6是图3中步骤S 14计算一个点的曲率的具体实施流程图。
图7是图3中步骤S 16对点云进行精简处理的具体实施流程图。
具体实施例方式
如图1所示,是本发明点云精简系统较佳实施例的硬件架构图。该系统主要包括点云获 取装置l、应用服务器2、网络3及多个使用者端计算机4。
其中分布式分布的多个使用者端计算机4利用网络3与应用服务器2相连,网络3可以是一 企业内部网(Intranet),也可以是互联网(Internet)或其它类型的通讯网络。
点云获取装置1与应用服务器2相连,用于获取扫描受测对象得到的点云数据。在本较佳 实施方式中,该点云获取装置l可以是一个三维激光扫描器,其通过扫描受测对象获取点云 数据。
应用服务器2用于从点云获取装置1中接收点云数据,并对上述点云进行精简处理。 使用者端计算机4提供图形处理界面,该图形处理界面能够生成并显示应用服务器2汇入 的点云数据组成的图像,并可以显示对点云精简后的结果。
如图2所示,是本发明点云精简系统较佳实施例中应用服务器2的功能模块图。所述应用
服务器2主要包括点云接收模块20、拓扑结构建立模块21、点选择模块22、相邻点寻找模 块23、曲率计算模块24、判断模块25、点云精简模块26及点云输出模块27。本发明所称的模 块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因 此在本发明以下对软件描述中都以模块描述。
其中,所述点云接收模块20用于从点云获取装置1中接收点云数据,并在使用者端计算 机4提供的图形处理界面中生成并且显示上述点云数据形成的图像。
所述拓扑结构建立模块21主要用于为上述点云建立拓扑结构,即将点云中的所有的点建 立起关联。该拓扑结构建立模块21按照一个设定的网格间距St印将上述点云所在的立方体区 域以一定的网格数目进行网格化以得到多个网格,并为每个网格设置序号,将每一个网格的 序号与在立方体空间内与该网格相邻的26个网格的序号存储在一个列表中,从而将所有的网 格之间建立起关联。所述的网格间距St印根据实际的情况可以设定不同的值,例如,用户希 望每个网格中的点多,则网格间距St印的值可以设置的大一些,若希望每个网格中的点少, 则网格间距St印的值可以小一些。
所述点选择模块22用于在上述点云中任意选择其中一个点(下称该点)。
所述相邻点寻找模块23用于根据上述建立的拓扑结构,寻找与该点距离最近的若干个点 。寻找与该点距离最近的若干个点是通过所述相邻点寻找模块23取得该点所在的网格(下称 :该网格)序号,根据上述列表寻找与该网格在立方体空间内相邻的26个网格,计算包括该 网格在内,共27个网格中所有点与该点的距离,得到距离该点最近的若干个点。
曲率计算模块24主要用于将该点与距离该点最近的若干个点(本较佳实施例中为24 32 个点)进行局部抛物面的拟和,并根据该抛物面的一般方程式,及曲率的计算公式计算出该 点的曲率。以下以计算点云中一个点的曲率对所述曲率计算模块24的功能进行详细说明
首先,建立以该点为原点的局部坐标系,则所述24 32个点在该局部坐标系下的坐标值 分别为将该24 32个点在原坐标系下的坐标值减去该点(原点)在原坐标系下的坐标值。
在局部坐标系下,将该点与所述24 32个点进行局部抛物面拟和,得到该局部抛物面的 一般方程式<formula>formula see original document page 8</formula><formula>formula see original document page 9</formula>其中,u, v, h分别代表该点以及与所述24 32个点的x, y, z坐标值;N代表进行抛物面 拟和的点的个数,例如,若所述相邻点寻找模块23寻找到30个与该点距离最近的点,则 N=31。
最后,所述曲率计算模块24利用曲率计算公式 Curvature = ( 4氺a化 _ b氺b ) / 2 计算出该点的曲率。
计算该点云中其他点的曲率过程与上述过程相同。
所述判断模块25用于判断是否点云中的所有点的曲率都已经计算完毕。若不是,则所述 点选择模块22选择点云中另 一个点。
所述点云精简模块26主要用于根据上述计算出来的所有点的曲率,及用户对该点云的精 简度要求,对点云进行精简处理。以下以对点云中一个点进行精简处理的过程对点云精简模 块26的功能进行详细说明
首先,所述相邻点寻找模块23根据点云之间的拓扑结构寻找距离该点最近的若干个点, 本较佳实施例中,此处的若干个点为9 15个点;计算该9 15个点的曲率平均值;计算该点的 曲率与上述曲率平均值的差值;根据用户对该点云的精简度要求,判断该点是否应该被精简 ,即判断上述的差值是否在用户设置的精简度参数范围之内;若在范围之内,则说明该点与 上述9 15点所组成的曲面的形变较少,该点可以被精简;否则,若不在范围之内,则说明该
点与上述9 15点所组成的曲面的形变较大,该点不可以被精简。 对该点云中其他点的精简处理与上述过程相同。 所述点云输出模块27用于输出精简后的点云。 图3是本发明点云精简方法较佳实施例的主流程图。 步骤SIO,点云接收模块20从点云获取装置1中接收点云数据。
步骤Sll,拓扑结构建立模块21为上述点云建立拓扑结构,即将点云中的所有的点建立 起关联。
步骤S12,点选择模块22选择点云中的一个点(下称该点)。
步骤S13,相邻点寻找模块23根据上述的拓扑结构,在点云中寻找与该点距离最近的若 干个点。在本实施例中,此处的若干个点为24 32个点。
步骤S14,所述曲率计算模块24将该点与上述得到的距离该点最近的若干个点(24 32个 )进行局部抛物面拟和,并根据该抛物面的一般方程式及曲率的计算公式计算出该点的曲率
步骤S15,判断模块25判断是否点云中的所有点的曲率都已经计算完毕。若不是,则返 回步骤S 12,所述点选择模块22选择点云中另一个点。
若点云中所有点的曲率都已经计算完毕,则步骤S16,点云精简模块26根据上述计算出 来的曲率,以及用户的精简度要求,对该点云进行精简处理。
步骤S17,点云输出模块27输出精简后的点云。
参阅图4所示,是图3中步骤S 11建立点云之间拓扑结构的具体实施流程图。 步骤S 110,拓扑结构建立模块21按照一个设定的网格间距St印将上述点云所在的立方体 区域以一定的网格数目进行网格化,以得到多个网格。所述的网格间距St印根据实际的情况 可以设定不同的值,例如,用户希望每个网格中的点多,则网格间距St印的值可以设置的大 一些,若希望每个网格中的点少,则网格间距St印的值可以小一些。 步骤Slll,拓扑结构建立模块21为每个网格设置序号。
步骤S112,该拓扑结构建立模块21将其中一个网格的序号与在立方体空间内与该网格相 邻的26个网格的序号存储在一个列表中,从而将该网格与其他网格之间建立起关联。
步骤S113,判断模块25判断是否已将所有的网格与其相邻的网格之间建立起了关联。若 没有,则返回步骤S112。否则,点云之间的拓扑结构建立完毕。
参阅图5所示,是图3中步骤S13在点云中寻找距离一点最近的若干个点的具体实施流程
步骤S130,所述相邻点寻找模块23取得所选择的点所在的网格序号,并根据该网格序号 在上述列表中取得与该网格在立方体空间内相邻的26个网格。
步骤S131,判断模块25判断该点所在的网格及其相邻的26个网格,共27个网格内的点的 总数是否不少于一个设定的值。在本实施例中,该设定的值为24。
若该27个网格内的点的总数少于所设定的值,即少于24,则步骤S132,所述相邻点寻找 模块23可以通过上述列表,得到与该27个网格相邻的其他网格。直至得到的网格内的点的总 数不少于24,则步骤S133,所述相邻点寻找模块23计算所得到的所有网格中的所有点与该点 的距离,得到距离该点最近的24 32个点。
参阅图6所示,是图3中步骤S 14计算一个点的曲率的具体实施流程图。
步骤S 140,所述曲率计算模块24建立以所选择的点为原点的局部坐标系,则所述24 32 个点在该局部坐标系下的坐标值分别为将该24 32个点在原坐标系下的坐标值减去该点(原 点)在原坐标系下的坐标值。
步骤S141,所述曲率计算模块24在局部坐标系下,将该点与所述24 32个点进行局部抛 物面拟和,得到该局部抛物面的一般方程式
<formula>formula see original document page 11</formula>^
其中
<formula>formula see original document page 11</formula>
2i, 2、2
2=1 =i
4
=1 !.= 1 ].=1 ].=1
其中,u, v, h分别代表该点以及与该点距离最近的24 32个点的x, y, z坐标值;N代表 进行抛物面拟和的点的个数,例如,若所述相邻点寻找模块23寻找到30个与该点距离最近的 点,贝,=31。
步骤S142,所述曲率计算模块24利用曲率计算公式 Curvature = ( 4氺a化 _ b氺b ) / 2 计算出该点的曲率。
参阅图7所示,是图3中步骤S 16对点云进行精简处理的具体实施流程图。 步骤S160,用户设置对点云的精简度要求,即输入一个精简度参数。 步骤S 161,点选择模块22选择点云中的一个点。
步骤S 162,点云精简模块26根据点云之间的拓扑结构寻找距离该点最近的9 15个点(方 法与上述图5所示的步骤相似)。
步骤S 163,点云精简模块26计算出上述9 15个点的曲率平均值。 步骤S 164,点云精简模块26计算该点的曲率与上述9 15个点的曲率平均值的差值。 步骤S165,点云精简模块26将上述计算出来的差值与所设置的精简度参数相比较,根据 比较结果,为该点设置不同的精简标志。若上述差值在所设置的精简度参数范围之内,则说 明该点与上述9 15点所组成的曲面的形变较少,该点可以被精简,所述点云精简模块26可以 将该点设置精简标志为"1";否则,若上述差值不在用户设置的精简度参数范围之内,则 说明该点与上述9 15点所组成的曲面的形变较大,该点不可以被精简,所述点云精简模块 26可以将该点设置精简标志为"0"。
步骤S166,判断模块25判断是否该点所在的网格内的所有点都已经设置了精简标志。 若该点所在的网格内还有点没有被设置精简标志,则步骤S 167,点选择模块22选择该网 格内的其他点,然后回到步骤S162。
否则,若该点所在的网格所有的点都已经设置精简标志,则在步骤S168中,判断模块 25根据设置的精简标志判断是否该网格内所有的点都将被精简,即是否该网格内的所有点都 被设置了标志"1"。
若是,则步骤S169,点云精简模块26保留该网格内距离中心位置最近的一个点,即将距 离该网格中心位置最近的一个点的精简标志修改为"0"。在每个网格中至少保留一个点可
以使精简后的点云分布较均匀。
若该网格内至少有一个点可以保留,则步骤S170,判断模块25判断是否该点云中的所有 点都已经设置了精简标志。
若还有点没有设置精简标志,则返回步骤S161,点选择模块22继续选择点云中的另一个点。
若该点云中点所有的点都已经设置了精简标志,则步骤S 171,点云精简模块26根据上述 设置的精简标志精简点云中的点。
本发明所述的24 32个点或者9 15个点,只是经过验证后得到的较佳的取值范围,对于 其他的取值范围都不应该排除在本发明所保护的范围之内。
本发明所提供的点云精简系统及方法可以对三维激光扫描器扫描出的点云数据进行精简 ,利用曲率差表示每个点相较于其相邻点的形变程度,对形变较小的平面,只保留必要的点 ,而精简掉其他冗余点,对形变程度较大的点曲面,根据精简度要求决定保留的点数,因此 可以获得一个数据量少、不失真且较均匀的点云。进一步的,本发明将点云之间建立起了关 联,因此在计算距离某一点最近的若干个点时,不用计算该点与点云中所有点的距离,而通 过点云之间的关联,在距离该点较近的点中寻找,因此,极大的提高了运算速度。
权利要求
1.一种点云精简系统,包括应用服务器,其特征在于,所述应用服务器包括点云接收模块,用于从一个点云获取装置中接收点云数据;拓扑结构建立模块,用于为上述点云建立拓扑结构,即将点云中的所有点建立起关联;相邻点寻找模块,用于根据上述建立的拓扑结构,为点云中的点寻找与之距离最近的若干个点;曲率计算模块,用于计算点云中的点的曲率,即将某一点与距离该点最近的若干个点进行局部抛物面的拟和,得到该局部抛物面的一般方程式,并根据该一般方程式及曲率计算公式计算出该点的曲率;及点云精简模块,用于根据上述计算出来的曲率、及用户对该点云设置的精简度参数,对点云进行精简处理,即当某个点的曲率与距离该点最近的若干个点的曲率平均值的差值在所述的精简度参数范围之内时,精简该点,否则,若不在精简度参数范围之内时,保留该点
2.如权利要求l所述的点云精简系统,其特征在于,所述的拓扑结构 建立模块建立拓扑结构是依据如下步骤按照一个设定的网格间距将点云所在的立方体区域 以一定的网格数目进行网格化以得到多个网格;为每个网格设置序号;将每一个网格的序号 与在立方体空间内与该网格相邻的26个网格的序号存储在一个列表中,从而将所有的网格之 间建立起关联。
3.如权利要求2所述的点云精简系统,其特征在于,所述的相邻点寻 找模块为点云中的点寻找与之距离最近的若干个点是依据如下步骤在点云中选择一个点; 取得该点所在的网格的序号;根据所述列表寻找与该点所在的网格在立方体空间内相邻的26 个网格;计算包括该点所在网格在内,共27个网格中所有点与该点的距离,取得距离该点最 近的若干个点。
4.如权利要求l所述的点云精简系统,其特征在于,在曲率计算模块 中所述的若干个点为24 32个点,在点云精简模块中所述的若干个点为9 15个点。
5. 一种点云精简方法,其特征在于,该方法包括如下步骤(a) 从一个点云获取装置中接收点云数据;(b) 为上述点云建立拓扑结构,即将点云中的所有点建立起关联;(c) 选择点云中的一个点;(d) 根据上述的拓扑结构,在点云中寻找与该点距离最近的若干个点;(e) 将该点与距离该点最近的若干个点进行局部抛物面拟和,得到该局部抛物面的一 般方程式,并根据该抛物面的一般方程式及曲率计算公式计算出该点的曲率;重复上述步骤(c)到步骤(e),直至点云中所有点的曲率都计算完毕;及(f) 根据上述计算出来的曲率,以及用户对该点云设置的精简度参数,对该点云进行 精简处理。
6. 如权利要求5所述的点云精简方法,其特征在于,所述步骤(b)包括(b 1)按照一个设定的网格间距将上述点云所在的立方体区域以一定的网格数目进行 网格化,以得到多个网格;(b2)为每个网格设置序号;(b3)将其中一个网格的序号与在立方体空间内与该网格相邻的26个网格的序号存储 在一个列表中,从而将该网格与其他网格之间建立起关联;及重复上述步骤(b3),直至将所有网格都与其相邻的网格之间建立起了关联。
7.如权利要求6所述的点云精简方法,其特征在于,所述步骤(d)包括取得所选择的点所在的网格序号,并根据该网格序号在上述列表中取得与该网格在立 方体空间内相邻的26个网格;及计算包括该点所在网格在内,共27个网格中所有点与该点的距离,取得距离该点最近 的若干个点。
8.如权利要求7所述的点云精简方法,其特征在于,所述的若干个点 为24 32个点。
9.如权利要求6所述的点云精简方法,其特征在于,所述步骤(f)包括 (fl)用户设置对点云的精简度要求,即输入一个 (f2)选择点云中的一个点;(f3)根据点云之间的拓扑结构寻找距离该点最近的若干个点; (f4)计算该点的曲率与上述若干个点的曲率平均值的差值;(f5)将上述计算出来的差值与上述设置的精简度参数相比较,根据比较的结果,为 该点设置不同的精简标志;(f6)从该点所在的网格内选择其他的点,并重复步骤(f3)到步骤(f5),直至该 点所在的网格内的所有点都被设置了精简度标志;(f7)根据设置的精简标志判断是否该网格内所有的点都将被精简;(f8)若是,则保留该网格内距离中心位置最近的一个点,即修改距离该网格中心位 置最近的点的精简度标志;(f9)重复步骤(f2)到(f8),直至点云中所有的点都被设置了精简度标志;及(no)根据上述设置的精简标志精简点云中的点。
10.如权利要求9所述的点云精简方法,其特征在于,所述的若干个 点为9 15个点。
11.如权利要求5所述的点云精简方法,其特征在于,所述的抛物面的一般方程式为<formula>formula see original document page 4</formula>其中<formula>formula see original document page 4</formula><formula>formula see original document page 5</formula>其中,公式中的u, v, h分别代表该点及距离该点最近的若干个点的x, y, z坐标值, N代表进行抛物面拟和的点的个数。
12.如权利要求ll所述的点云精简方法,其特征在于,所述的曲率计算公式为<formula>formula see original document page 5</formula>
全文摘要
本发明提供一种点云精简方法,包括步骤(a)从一个点云获取装置中接收点云数据;(b)为上述点云建立拓扑结构;(c)选择点云中的一个点;(d)根据拓扑结构,寻找与该点距离最近的若干个点;(e)将该点与所述若干个点进行局部抛物面拟和,得到该抛物面的一般方程式,并根据该一般方程式及曲率计算公式计算该点的曲率;重复步骤(c)到(e),直至点云中所有点的曲率都计算完毕;及(f)根据上述计算出来的曲率,以及用户对该点云设置的精简度参数,对该点云进行精简处理。本发明还提供一种点云精简系统。利用本发明所提供的点云精简系统及方法,可快速地对点云数据进行精简及过滤,以便获得一个数据量少、不失真且较均匀的点云。
文档编号G06T11/20GK101373540SQ200710201400
公开日2009年2月25日 申请日期2007年8月20日 优先权日2007年8月20日
发明者付山阳, 吴新元, 孙小超, 张旨光 申请人:鸿富锦精密工业(深圳)有限公司;鸿海精密工业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1