发明内容
为解决上述问题,本发明提供一种陶瓷片高度检测方法、装置及计算机可读存储介质,以解决现有技术中所存在的一个或多个技术问题,至少提供一种有益的选择或创造条件。
为了实现上述目的,本发明提供以下技术方案:
一种陶瓷片高度检测方法,包括:
获取相机采集到的激光条纹图像,该激光条纹图像中的每个点均具有三维坐标;
根据所述激光条纹图像上各个点的三维坐标生成待检陶瓷的三维点云模型,将所述三维点云模型分割为多个子模型,每个子模型对应一层陶瓷片;
根据所述多个子模型的中心坐标得到每层陶瓷片的高度值,判断所述高度值是否在高度区间内,得出待检陶瓷的检测结果。
根据本发明的一些实施例,所述将所述三维点云模型分割为多个子模型之前,包括:
确定标准陶瓷中每层陶瓷片到底层的高度区间,将所述高度区间作为检测待检陶瓷是否符合生产标准的判断依据。
根据本发明的一些实施例,所述将所述三维点云模型分割为多个子模型,每个子模型对应一层陶瓷片,包括:
以所述高度区间为基准,确定该高度区间所在的陶瓷片;
将该高度区间进行边界扩展,得到该层陶瓷片的分割区间;
将所述三维点云模型按所述分割区间进行分割,得到多个子模型,每个子模型对应各自高度区间所在的陶瓷片。
根据本发明的一些实施例,所述将所述三维点云模型分割为多个子模型,每个子模型对应一层陶瓷片,还包括:
从所述激光条纹图像中确定任一层陶瓷片的部分图像区域;
从所述三维点云模型中分割出该部分图像区域的子模型;
对该子模型的中心坐标进行求解,得出该区域的高度值;
通过判断该部分图像区域的高度值是否在高度区间内,得出该部分图像区域的陶瓷片的检测结果。
根据本发明的一些实施例,所述根据所述多个子模型的中心坐标得到每层陶瓷片的高度值,包括:
获取各个所述子模型的中心坐标,将所述中心坐标在z轴的坐标值作为所述子模型对应的陶瓷片的高度值。
根据本发明的一些实施例,所述将所述三维点云模型分割为多个子模型之前,包括:
对所述三维点云模型进行去噪处理。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的陶瓷片高度检测方法的步骤。
一种陶瓷片高度检测装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述任一项所述的陶瓷片高度检测方法。
本发明的有益效果是:本发明公开一种陶瓷片高度检测方法、装置及计算机可读存储介质,本发明提供的实施例在求取各个所述分割模型的中心坐标后,即可得到任意一层陶瓷片是否符合生产标准,在检测过程中无需人工处理,本发明可以快速、高效的对具有梯度的陶瓷片检测出各个层面的高度。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
参考图1,根据本申请的第一方面,本申请实施例提供的一种陶瓷片高度检测方法,包括以下步骤:
步骤S100、获取相机采集到的激光条纹图像,该激光条纹图像中的每个点均具有三维坐标;
本发明提供的实施例应用于对具有梯度的陶瓷进行高度差检测,陶瓷中最底层的陶瓷片面积最大,在最底层的陶瓷片之上又有一个面积较小的陶瓷片,这就形成了梯度,以此类推,直至最上面面积最小的一层;在一个示例性的实施例中,将激光发射器与相机安装在待检陶瓷的上方,待检陶瓷由传动带承载运送,在运送过程中,待检陶瓷被激光扫描,在激光扫描待检陶瓷的过程中,由于待检陶瓷表面具有不同的高度,因此从待检陶瓷表面返回的激光具有时间差,在相机采集待检陶瓷图像的过程中,从待检陶瓷的最底层开始扫描,以最底层的陶瓷片为基准,将其z轴坐标设为0,在对待检陶瓷的扫描过程中,由于激光发射器的位置固定,根据激光返回的时间差与光速的乘积可以确定待检陶瓷中各层陶瓷片的高度差,就得到了具有深度信息的激光条纹图像,即采集到的陶瓷表面的激光条纹图像中,每个点均具有三维坐标。
步骤S200、根据所述激光条纹图像上各个点的三维坐标生成待检陶瓷的三维点云模型;
在激光扫描的过程中,通过记录激光条纹图像上各个点的三维坐标(X,Y,Z),将激光条纹图像上各个点的三维坐标形成数组,然后将三维坐标形式的数组转换成可视化的点云,从而得到整个待检陶瓷的三维点云模型。
在一个示例性的实施例中,采用C#计算机语言实现将三维坐标形式的数组转换成可视化的点云,在一个具体的实施例中,通过引用C#计算机语言中的Halconnet库,然后调用函数HOperatorSet.GenObjectModel3dFromPoints(),从而得到整个待检陶瓷的三维点云模型。
步骤S300、将所述三维点云模型分割为多个子模型,每个子模型对应一层陶瓷片;
步骤S400、根据所述多个子模型的中心坐标得到每层陶瓷片的高度值;
其中,所述中心坐标为所述多个子模型中全部点的平均值,在一个示例性的实施例中,通过引用C#计算机语言中的Halconnet库,然后调用Halcon中的函数get_object_models_center(BackgroundObject1,Center1)得出。
步骤S500、判断所述高度值是否在高度区间内,得出待检陶瓷的检测结果。
具体地,当判断任一所述高度值偏离高度区间时,判定该高度值所代表的陶瓷片不符合生产标准,当有多个所述高度值偏离高度区间时,判定多个所述高度值所代表的多层陶瓷片均不符合生产标准,从而准确得出待检陶瓷详细的检测结果。
在理想状态下,每层陶瓷片到底层的高度为一确定值;然而在实际生产过程中,允许待检陶瓷的各层陶瓷片到底层的高度有一定的误差范围,在误差范围内的陶瓷片判定为符合生产标准,根据该误差范围,可以确定每层陶瓷片到底层的高度区间,将该高度区间作为检测待检陶瓷是否符合生产标准的判断依据。
本发明提供的实施例在求取各个所述分割模型的中心坐标后,即可得到任意一层陶瓷片是否符合生产标准,在检测过程中无需人工处理,可以准确得出待检陶瓷详细的检测结果。
在一个优选的实施例中,所述步骤S100之前,还包括:
确定标准陶瓷中每层陶瓷片到底层的高度区间,将所述高度区间作为检测待检陶瓷是否符合生产标准的判断依据。
示例性的,在一类具有梯度的陶瓷片中,选取一定数量的标准件,通过对这些标准件进行测试,确定每一层陶瓷片的高度区间范围,得出每层陶瓷片的z轴阈值范围,作为检测陶瓷片是否符合生产标准的判断依据。
参考图2,在一个优选的实施例中,所述步骤S300包括:
步骤S310、以所述高度区间为基准,确定该高度区间所在的陶瓷片;
步骤S320、将该高度区间进行边界扩展,得到该层陶瓷片的分割区间;
步骤S330、将所述三维点云模型按所述分割区间进行分割,得到多个子模型,每个子模型对应各自高度区间所在的陶瓷片。
具体地,以所述高度区间为基准,确定该高度区间所在的陶瓷片,然后将该高度区间进行边界扩展,得到该层陶瓷片的分割区间,接着将所述三维点云模型按所述分割区间进行分割,得到多个子模型,每层陶瓷片对应有一个子模型、一个分割区间和一个高度区间,当确定子模型后,可以得到该子模型对应高度区间所在的陶瓷片;同样的,也就可以确定出每个子模型对应各自高度区间所在的陶瓷片。
需要说明的是,对高度区间进行边界扩展时,应对相邻两层的陶瓷片的分割区间的边界值做出合理界定,防止将所述三维点云模型中的点划分到错误的子模型中;同时,应尽可能的对高度区间进行边界扩展,使得分割区间的范围足够大,从而保留足够多的点,尽可能真实的反映陶瓷片的实际情况;发明人在结合上述两个前提条件的基础上,将相邻两个分割区间的边界值留有一定间隔,具体的,可根据实际情况进行人为调节,以达到上述目的。
参考图3、图4和图5,在一个具体的实施例中,设一待检陶瓷共包括3层陶瓷片,每层的高度区间分别为:[-8,-4]、[-2.5,-2]和[-0.5,0],在对这3个高度区间进行扩展时,考虑到上述两方面因素,得到的分割区间分别为:[-10,-3.5]、[-3,-1.5]和[-1,0]。
图3是分割前的整体图,图4和图5是分割后得到的效果图,经试验结果表明,分割得到的图像能够体现各层陶瓷片的表面区域,各层陶瓷片对应的子模型可以真实的反映陶瓷片的三维坐标。
在一个优选的实施例中,所述方法还包括:
从所述激光条纹图像中截取任一层陶瓷片的部分图像区域;
从所述三维点云模型中分割出该部分图像区域的子模型;
对该子模型的中心坐标进行求解,得出该区域的高度值;
通过判断该部分图像区域的高度值是否在高度区间内,得出该部分图像区域的陶瓷片的检测结果。
示例性的,当需要判断任一层陶瓷片的某些区域是否平整时,可以从所述激光条纹图像中截取出该区域所在的图像区域,即从所述三维点云模型中选取出一个子模型,然后对该子模型的中心坐标进行求解,进而得出该区域的高度值,通过判断该区域的高度值是否在高度区间内,得出该区域的陶瓷片的检测结果。
截取的方式可以为限定一个区间范围,例如,从任一高度区间中限定一个更小范围的区间,从而得出该层陶瓷片的某个区域,如,从高度区间[-1,0]中截取出区间范围为[-0.5,0]的陶瓷片区域;
或者人工选取一个区域,示例性的,在一个示例性的实施例中,通过引用C#计算机语言中的Halconnet库,然后调用Halcon中的函数draw_region()和函数reduce_object_model_3d_by_view()分割出陶瓷片的部分图像区域。
在一个优选的实施例中,所述步骤S500包括:
获取各个所述子模型的中心坐标,将所述中心坐标在z轴的坐标值作为所述子模型对应的陶瓷片的高度值;
在一个优选的实施例中,所述步骤S300之前,包括:对所述三维点云模型进行去噪处理。
即,去除所述三维点云模型的噪音数据,在一个可选的实施例中,对相邻两个点云数据之间的欧式距离设定阈值,优选的,设定相邻两个点云数据之间的欧式距离最大不超过1个像素,通过计算相邻两个点云数据之间的欧式距离,当计算得到的欧式距离超过阈值时,就将该点云数据过滤掉,从而达到去噪的效果。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的陶瓷片高度检测方法的步骤。
本发明还提供一种陶瓷片高度检测装置,所述装置包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述任一项所述的陶瓷片高度检测方法。
所述陶瓷片高度检测装置可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述陶瓷片高度检测装置,可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是陶瓷片高度检测装置的示例,并不构成对陶瓷片高度检测装置的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述陶瓷片高度检测装置还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central-Processing-Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital-Signal-Processor,DSP)、专用集成电路(Application-Specific-Integrated-Circuit,ASIC)、现场可编程门阵列(Field-Programmable-Gate-Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述陶瓷片高度检测装置的控制中心,利用各种接口和线路连接整个陶瓷片高度检测装置可运行装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述陶瓷片高度检测装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart-Media-Card,SMC),安全数字(Secure-Digital,SD)卡,闪存卡(Flash-Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。