发明内容
本申请的目的在于提供面片细化方法、装置、电子设备及计算机可读存储介质,解决现有技术中部分面片区域因点云数据稀疏导致面片化结果较为粗糙的问题。
本申请的目的采用以下技术方案实现:
第一方面,本申请提供了一种面片细化方法,所述方法包括:获取产品的点云轮廓数据;根据所述产品的点云轮廓数据,获取面片化处理后的点云轮廓数据,所述面片化处理后的点云轮廓数据包括多个面片的点云轮廓数据;针对每个所述面片执行以下处理:根据所述面片的点云轮廓数据,检测所述面片的细化程度是否满足预定条件;当不满足所述预定条件时,对所述面片进行插值处理,得到至少两个新面片作为所述面片的细化结果。该技术方案的有益效果在于,通过对面片进行数据分析,对于局部区域面片化不均匀的现象,可以对该局部区域内的面片进行细化处理,使得面片的细化程度满足预定条件,提高了面片的精度。
在一些可选的实施例中,所述方法还包括:当所述面片的细化程度满足所述预定条件时,检测下一个所述面片的细化程度是否满足所述预定条件。该技术方案的有益效果在于,通过对多个面片进行细化程度的检测,使得多个面片的细化程度均能满足预定条件,提高了产品整体的精度。
在一些可选的实施例中,所述检测下一个所述面片的细化程度是否满足所述预定条件,包括:检测所有所述面片是否均已完成检测;当存在未完成检测的面片时,检测下一个所述面片的细化程度是否满足所述预定条件,所述下一个所述面片是所述未完成检测的面片的其中一个。该技术方案的有益效果在于,通过上述检测步骤的设置,可以保证产品的所有面片均实现检测,并对所有不满足细化程度的面片进行细化处理,保证产品的所有面片均达到细化程度。
在一些可选的实施例中,所述根据所述产品的点云轮廓数据,获取面片化处理后的点云轮廓数据,包括:根据所述产品的点云轮廓数据,获取结构化的点云轮廓数据;根据所述结构化的点云轮廓数据,获取面片化处理后的点云轮廓数据。该技术方案的有益效果在于,采用结构化处理的方式,将产品的点云轮廓数据转换为结构化数据,该类型的数据可以十分方便的进行检索和处理,提高了后续面片化细化的效率。
在一些可选的实施例中,所述根据所述面片的点云轮廓数据,检测所述面片的细化程度是否满足预定条件,包括:根据所述面片的点云轮廓数据,采用阈值管理的方式检测所述面片的细化程度是否满足预定条件。该技术方案的有益效果在于,通过上述阈值管理的方式进行检测,可以精准控制需要进行面片细化的区域,提高整个面片处理过程的效率。
在一些可选的实施例中,所述面片是多边形面片;所述对所述面片进行插值处理,得到至少两个新面片作为所述面片的细化结果,包括:对所述面片的每条边分别进行多项式插值处理,得到每条所述边对应的至少一个插值点;根据所述面片的顶点和所述面片的所有边对应的插值点,得到至少四个所述新面片作为所述面片的细化结果。该技术方案的有益效果在于,一方面,采用多边形面片来进行面片处理的方式,有容易表示、计算简单且容易绘制等好处,其可以利用较少的细节表达出较为光滑、且与产品轮廓相符的形状,数据量小、处理速度快、效率高;另一方面,插值处理选用多项式插值,表达式简单明确,便于计算推导,便于通过计算逼近函数在某一点的值从而得到原函数在这一点的近似值。
在一些可选的实施例中,所述面片是三角形面片;所述对所述面片的每条边分别进行多项式插值处理,得到每条所述边对应的至少一个插值点,包括:对所述面片的每条边分别进行多项式插值处理,得到每条所述边对应的一个所述插值点。该技术方案的有益效果在于,三角形面片作为多边形面片的其中一种形式,其相较于其他多边形例如四边形、五边形等,所要处理的数据量更少,可以进一步提高面片细化的处理速度,减少内存占用,进一步提高面片细化处理的效率。
在一些可选的实施例中,所述对所述面片进行插值处理,得到至少两个新面片作为所述面片的细化结果,包括:对所述面片进行插值处理,得到至少两个所述新面片;针对每个所述新面片执行以下处理:对所述新面片和所述新面片的每个相邻新面片分别进行法线计算,得到所述新面片的法线信息以及每个所述相邻新面片的法线信息;根据所述新面片的法线信息以及每个所述相邻新面片的法线信息,分别获取所述新面片的法线和每个所述相邻新面片的法线形成的锐角夹角;检测获取到的所有所述锐角夹角是否均小于预定角度;当所有所述锐角夹角均小于所述预定角度时,将所述至少两个所述新面片作为所述面片的细化结果。该技术方案的有益效果在于,通过法线计算的方法来对面片进行细化处理,法线自由过渡的特点可以有效提高面片的细化效果。
第二方面,本申请提供一种面片细化装置,所述装置包括:数据获取模块,用于获取产品的点云轮廓数据;面片化处理模块,用于根据所述产品的点云轮廓数据,获取面片化处理后的点云轮廓数据,所述面片化处理后的点云轮廓数据包括多个面片的点云轮廓数据;细化处理模块,用于针对每个所述面片执行以下处理:根据所述面片的点云轮廓数据,检测所述面片的细化程度是否满足预定条件;当不满足所述预定条件时,对所述面片进行插值处理,得到至少两个新面片作为所述面片的细化结果。
在一些可选的实施例中,所述细化处理模块还用于当所述面片的细化程度满足所述预定条件时,检测下一个所述面片的细化程度是否满足所述预定条件。
在一些可选的实施例中,所述细化处理模块包括:结束判定单元,用于检测所有所述面片是否均已完成检测;继续检测单元,用于当存在未完成检测的面片时,检测下一个所述面片的细化程度是否满足所述预定条件,所述下一个所述面片是所述未完成检测的面片的其中一个。
在一些可选的实施例中,所述面片化处理模块包括:结构化单元,用于根据所述产品的点云轮廓数据,获取结构化的点云轮廓数据;面片化单元,用于根据所述结构化的点云轮廓数据,获取面片化处理后的点云轮廓数据。
在一些可选的实施例中,所述细化处理模块包括:条件检测单元,用于根据所述面片的点云轮廓数据,采用阈值管理的方式检测所述面片的细化程度是否满足预定条件。
在一些可选的实施例中,所述面片是多边形面片;所述细化处理模块包括:插值处理单元,用于对所述面片的每条边分别进行多项式插值处理,得到每条所述边对应的至少一个插值点;新面片获取单元,用于根据所述面片的顶点和所述面片的所有边对应的插值点,得到至少四个所述新面片作为所述面片的细化结果。
在一些可选的实施例中,所述面片是三角形面片;所述插值处理单元用于对所述面片的每条边分别进行多项式插值处理,得到每条所述边对应的一个所述插值点。
在一些可选的实施例中,所述细化处理模块包括:面片插值单元,用于对所述面片进行插值处理,得到至少两个所述新面片;面片处理单元,用于针对每个所述新面片执行以下处理:对所述新面片和所述新面片的每个相邻新面片分别进行法线计算,得到所述新面片的法线信息以及每个所述相邻新面片的法线信息;根据所述新面片的法线信息以及每个所述相邻新面片的法线信息,分别获取所述新面片的法线和每个所述相邻新面片的法线形成的锐角夹角;检测获取到的所有所述锐角夹角是否均小于预定角度;当所有所述锐角夹角均小于所述预定角度时,将所述至少两个所述新面片作为所述面片的细化结果。
第三方面,本申请提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项方法的步骤。
附图说明
下面结合附图和实施例对本申请进一步说明。
图1是第一实施例提供的一种面片细化方法的第一流程示意图;
图2是第一实施例提供的获取面片化处理后的点云轮廓数据的流程示意图;
图3是第一实施例提供的对多边形面片插值处理的流程示意图;
图4是第一实施例提供的对三角形面片插值处理的流程示意图;
图5是第一实施例提供的一种面片细化方法的第二流程示意图;
图6是第一实施例提供的对新面片法线计算的流程示意图;
图7是第一实施例提供的一种面片细化方法的第三流程示意图;
图8是第一实施例提供的一种面片细化方法的第四流程示意图;
图9是第二实施例提供的一种面片细化装置的第一结构示意图;
图10是第二实施例提供的一种面片化处理模块的结构示意图;
图11是第二实施例提供的一种细化处理模块的结构示意图;
图12是第二实施例提供的一种细化处理模块的结构示意图;
图13是第二实施例提供的一种细化处理模块的结构示意图;
图14是本申请实施例提供的一种电子设备的结构示意图;
图15是本申请实施例提供的一种用于实现面片细化方法的程序产品的结构示意图。
具体实施方式
下面,结合附图以及具体实施方式,对本申请做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
参见图1,第一实施例提供了一种面片细化方法,所述面片细化方法包括步骤S10~S40。
步骤S10:获取产品的点云轮廓数据。
其中,所述获取产品点云轮廓数据的方式大多是由3D扫描设备产生,其可以利用现有技术中成熟的点云采集设备、双目立体视觉技术、VR或AR等设备自动获取,这些设备用自动化的方式测量产品表面的大量的点信息,然后通过数据文件输出点云轮廓数据。
其中,点云轮廓数据是指在一个三维坐标系统中的一组向量的集合,这些向量通常以X、Y、Z三维坐标的形式表示,一般主要用来表征物体的外表面形状。当然,除了(X,Y,Z)代表的几何位置信息之外,点云数据还可以表示一个点的RGB颜色、灰度值、深度或分割结果等。
步骤S20:根据所述产品的点云轮廓数据,获取面片化处理后的点云轮廓数据。
参见图2,具体地,在本实施例中,所述步骤S20又具体包括如下处理步骤S201~S202。
步骤S201:根据所述产品的点云轮廓数据,获取结构化的点云轮廓数据。
其中,通过结构化处理的方式,将产品原本庞大的点云轮廓数据进行精缩,变为更易查找、占存更小的高密度数据,该类型的数据可以十分方便的进行索引和处理,提高了后续面片化细化的效率。
步骤S202:根据所述结构化的点云轮廓数据,获取面片化处理后的点云轮廓数据。
其中,所述面片化处理后的点云轮廓数据包括多个面片的点云轮廓数据。
本实施例中的结构化的点云轮廓数据经过面片化处理后,得到的面片例如为多边形,进一步优选可以为三角形,但本申请对此不进行具体限定。
通过对上述结构化的点云轮廓数据进行面片化处理后,其可能存在的问题是所述多个面片中的部分面片区域可能因为目标的高度落差大导致该部分点云数据稀疏,从而导致面片化结果较为粗糙。因此,在通过面片化处理得到多个面片的点云轮廓数据后,需要针对单个面片的细化程度进行检测判定,参见图1,其具体包括步骤S30~S40。
步骤S30:根据所述面片的点云轮廓数据,检测所述面片的细化程度是否满足预定条件。
通过判定细化程度是否满足预定条件决定是否进入步骤S40。本实施例中采用阈值管理的方式检测所述面片的细化程度是否满足预定条件。通过上述阈值管理的方式进行检测,对于步骤S202中可能存在的局部区域面片不均匀的现象,可以通过调整阈值范围的标准来精准控制需要进行面片细化的区域,即当对面片细化程度要求高时,可以缩小阈值范围,当要求较低时可扩大阈值范围,提高整个面片处理过程的效率。
步骤S40:当不满足所述预定条件时,对本次进行检测的单个面片进行插值处理,得到至少两个新面片作为所述面片的细化结果。
其中,本实施例中的所述面片示例性为多边形面片,参见图3,其插值处理方法可以包括步骤S401~S402。
步骤S401:对所述多边形面片的每条边分别进行多项式插值处理,得到每条边对应的至少一个插值点;
步骤S402:根据所述面片的顶点和所述面片所有边对应的插值点,得到至少四个所述新面片作为所述面片的细化结果。
进一步地,在其他实施例中,当所述多边形面片具体为三角形面片时,参见图4,其插值处理方法具体包括步骤S401’~S402’。
步骤S401’:对该三角形面片的每条边分别进行多项式插值处理,得到每条所述边对应的一个所述插值点;
步骤S402’:然后根据所述面片的顶点和所述面片三条边对应的插值点,得到至少四个所述新面片作为所述面片的细化结果。
参见图5,在得到所述新面片之后,还包括步骤S50来对新面片进行法线计算,来判定新面片是否能够作为面片的细化结果。步骤S50具体包括以下处理步骤S501~S504,参见图6。
步骤S501:对所述新面片和所述新面片的每个相邻新面片分别进行法线计算,得到所述新面片的法线信息以及每个所述相邻新面片的法线信息;
步骤S502:根据所述新面片的法线信息以及每个所述相邻新面片的法线信息,分别获取所述新面片的法线和每个所述相邻新面片的法线形成的锐角夹角;
步骤S503:检测获取到的所有所述锐角夹角是否均小于预定角度;
步骤S504:当所有所述锐角夹角均小于所述预定角度时,将所述至少两个所述新面片作为所述面片的细化结果。
可以理解的,当还存在锐角夹角大于所述预定角度时,即表示所述面片的细化程度未达到预定条件,此时需要对所述面片对应的新面片继续做插值处理,直至满足所有锐角夹角均小于所述预定角度,则表示所述面片的细化程度达到预定标准,从而所述面片的细化处理结束。通过法线计算的方法来对面片进行细化处理,法线自由过渡的特点可以有效提高面片的细化效果。
参见图7,在进一步优选的方案中,当所述面片的细化程度满足了所述预定条件时,检测下一个所述面片的细化程度是否满足所述预定条件。
当下一个所述面片的细化程度未满足所述预定条件,对下一个所述面片执行步骤S40中的插值处理。
参见图8,更进一步地,所述检测下一个面片的细化程度是否满足预定条件还包括步骤S60:检测所有面片是否均已完成检测;从而针对下一个所述面片的细化处理结束;当下一个所述面片的细化程度满足所述预定条件,则继续检测下一个未完成检测面片的细化程度的检测判定,直至所有所述面片全部完成检测。通过上述检测步骤的设置,可以保证产品的所有面片均实现检测,并对所有不满足细化程度的面片进行细化处理,保证产品的所有面片均达到细化程度。
参见图9,第二实施例提供了一种面片细化装置,所述装置包括数据获取模块10、面片化处理模块20和细化处理模块30。
数据获取模块10用于获取产品的点云轮廓数据。
面片化处理模块20与数据获取模块10连接,用于根据产品的点云轮廓数据,获取面片化处理后的点云轮廓数据,该面片化处理后的点云轮廓数据包括多个面片的点云轮廓数据。
细化处理模块30与面片化处理模块20连接,用于针对每个单个面片执行以下处理:根据所述面片的点云轮廓数据,检测每个面片的细化程度是否满足预定条件;当不满足预定条件时,对每个面片进行插值处理,得到至少两个新面片作为所述面片的细化结果。
其中,参见图10,面片化处理模块20可以包括结构化单元201和面片化单元202。其中,结构化单元201用于根据产品的点云轮廓数据,获取结构化的点云轮廓数据;面片化单元202用于根据处理得到的结构化的点云轮廓数据,对产品进行面片化处理,从而得到面片化处理后的点云轮廓数据。
细化处理模块30可以包括条件检测单元301,用于根据单个面片的点云轮廓数据,采用阈值管理的方式检测单个面片的细化程度是否满足预定条件。
本实施例中的面片例如为多边形面片时,细化处理模块30还可以包括插值处理单元302和新面片获取单元303,参见图11;其中,插值处理单元302是在当面片的细化程度不满足预定条件时,对面片进行插值处理,本实施例中例如为对不满足预定条件的面片的每条边分别进行多项式插值处理,得到每条所述边对应的至少一个插值点;新面片获取单元303用于根据面片的顶点和所有边对应的插值点,得到至少四个新面片的细化结果。
更进一步地,当多边形面片为三角形面片时,所述插值处理单元302可以用于对所述面片的每条边分别进行多项式插值处理,得到每条所述边对应的一个所述插值点。
在另一种实施例中,参见图12,细化处理模块30可以包括面片插值单元304和面片处理单元305。其中,面片插值单元304用于在当面片的细化程度不满足预定条件时,对所述面片进行插值处理,得到至少两个所述新面片。
面片处理单元305用于针对每个所述新面片执行以下处理:对所述新面片和所述新面片的每个相邻新面片分别进行法线计算,得到所述新面片的法线信息以及每个所述相邻新面片的法线信息;根据所述新面片的法线信息以及每个所述相邻新面片的法线信息,分别获取所述新面片的法线和每个所述相邻新面片的法线形成的锐角夹角;检测获取到的所有所述锐角夹角是否均小于预定角度;当所有所述锐角夹角均小于所述预定角度时,将所述至少两个所述新面片作为所述面片的细化结果。
在进一步优选的方案中,细化处理模块30还可以用于当所述面片的细化程度满足预定条件时,检测下一个面片的细化程度是否满足所述预定条件;更进一步地,直至所有面片完成检测,从而保证产品的所有面片均满足细化程度。
参见图13,在上述进一步优选方案中,细化处理模块30可以包括结束判定单元306和继续检测单元307。其中,结束判定单元306用于检测所有面片是否均已完成检测;继续检测单元307用于当存在未完成检测的面片时,检测下一个面片的细化程度是否满足预定条件,下一个面片是指所有未完成检测面片的其中一个。
参见图14,本申请实施例还提供了一种电子设备200,电子设备200包括至少一个存储器210、至少一个处理器220以及连接不同平台系统的总线230。
存储器210可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)211和/或高速缓存存储器212,还可以进一步包括只读存储器(ROM)213。
其中,存储器210还存储有计算机程序,计算机程序可以被处理器220执行,使得处理器220执行本申请实施例中面片细化方法的步骤。存储器210还可以包括具有一组(至少一个)程序模块215的程序/实用工具214,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
相应的,处理器220可以执行上述计算机程序,以及可以执行程序/实用工具214。
总线230可以为表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、图形加速端口、处理器或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备240例如键盘、指向设备、蓝牙设备等通信,还可与一个或者多个能够与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储平台等。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质用于存储计算机程序,所述计算机程序被执行时实现本申请实施例中面片细化方法的步骤。图15示出了本实施例提供的用于实现上述方法的程序产品300,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品300不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。程序产品300可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言诸如Java、C++等,还包括常规的过程式程序设计语言诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本申请从使用目的上,效能上,进步及新颖性等观点进行阐述,其设置有的实用进步性,已符合专利法所强调的功能增进及使用要件,本申请以上的说明及附图,仅为本申请的较佳实施例而已,并非以此局限本申请,因此,凡一切与本申请构造,装置,特征等近似、雷同的,即凡依本申请专利申请范围所作的等同替换或修饰等,皆应属本申请的专利申请保护的范围之内。