一种工件数据获取方法和装置与流程

文档序号:28530182发布日期:2022-01-19 12:20阅读:103来源:国知局
一种工件数据获取方法和装置与流程

1.本发明涉及计算机技术应用领域,尤其涉及一种工件数据获取方法和装置。


背景技术:

2.在相关技术中,线结构光相机是由一个线激光器和一个2d面阵相机按特定角度组合构成,经过标定算法计算两者物理关系。线激光在物体表面形成反射光被相机传感器接受,物体凹凸变化的轮廓在相机靶面生成平面图像,从而转换成立体数据点云数据。当需要对其中线激光或面阵相机的位置或参数进行调整测试时,必须对工件再次拍照才能获取到点云数据。这样会导致在需要对不同的特定参数的线结构光相机进行测试时,会造成大量的时间上的浪费。并且,在线结构光相机工作的过程中,由于最终的点云是每一条线扫描图像转化拼接而来,在拼接过程中容易造成精度损失。故对于任意特定参数的线结构光相机来说,现有技术无法做到快速精确的得到和表示出工件在该相机下的投影成像数据。
3.针对目前相关技术无法做到快速精确的得到和表示出工件在线结构光相机下的投影成像数据的问题,目前尚未得到有效的解决。


技术实现要素:

4.为解决上述技术问题,本发明实施例期望提供一种工件数据获取方法和装置,能够解决目前相关技术无法做到快速精确的得到和表示出工件在线结构光相机下的投影成像数据的问题。
5.本发明的技术方案是这样实现的:第一方面,本发明实施例提供一种工件数据获取方法,应用于线结构光相机,包括:通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集;通过面阵相机创建对应的虚拟相机模型;依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图;依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图;依据第一成像图和第二成像图,生成目标成像图。
6.可选的,通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集包括:获取工件模型的工件模型文件和线激光的光平面信息;依据光平面信息创建线激光光源矩阵;依据线激光光源矩阵和工件模型文件,获取工件模型中所有可见点的坐标集。
7.进一步地,可选的,获取工件模型的工件模型文件包括:从工件模型文件中提取工件模型的顶点信息和面片信息;将顶点信息和面片信息由文本格式转换为数组格式,得到转换后的顶点数组和面片数组;其中,顶点信息包括:每个顶点的位置;面片信息包括:工件模型中每个面包含的顶点序号。
8.可选的,光平面信息包括:光平面方程、光心位置坐标和光轴方向向量。
9.进一步地,可选的,依据光平面信息创建线激光光源矩阵包括:依据光心位置坐标,光轴方向向量和向上的指定方向得到线激光光源矩阵。
10.可选的,依据线激光光源矩阵和工件模型文件,获取工件模型中所有可见点的坐
标集包括:依据线激光光源矩阵创建线激光坐标系;依据线激光坐标系和线激光光源矩阵,创建线激光虚拟相机模型;依据线激光虚拟相机模型和工件模型文件,得到工件模型中所有可见点的坐标集。
11.可选的,通过面阵相机创建对应的虚拟相机模型包括:获取面阵相机参数文件;从面阵相机参数文件中获取外参矩阵和内参矩阵;依据外参矩阵创建虚拟相机的第一矩阵,并将第一图库中的面阵相机坐标系转换为第二图库中的面阵相机坐标系;依据内参矩阵创建虚拟相机的第二矩阵,并将内参矩阵中的参数转换为第二图库中投影矩阵的参数;依据第一矩阵和第二矩阵得到虚拟相机模型;其中,外参矩阵,用于表示面阵相机在世界坐标系下的平移和旋转信息;内参矩阵,用于表示面阵相机的焦距和图像中心坐标。
12.进一步地,可选的,依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图包括:通过虚拟相机模型调用第二图库中的指定函数读取坐标集中每个可见点对应的第一深度值信息;依据第一深度值信息生成所有可见点在面阵相机下的第一成像图。
13.可选的,依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图包括:通过虚拟相机模型调用第二图库中的指定函数读取工件模型的所有可见点的第二深度值信息;依据第二深度值信息生成工件模型在面阵相机下的第二成像图。
14.可选的,依据第一成像图和第二成像图,生成目标成像图包括:将第一成像图和第二成像图中每个像素点的深度值进行比对;判断第一成像图中每个像素点的深度值是否大于第二成像图中对应位置的像素点的深度值,且第一成像图中每个像素点的深度值与第二成像图中对应位置的像素点的深度值的误差大于预设阈值;在判断结果为是的情况下,剔除对应像素点,生成剔除后的成像图;将剔除后的成像图进行二值化处理,得到目标成像图。
15.第二方面,本发明实施例提供一种工件数据获取装置,应用于线结构光相机,包括:扫描模块,用于通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集;创建模块,用于通过面阵相机创建对应的虚拟相机模型;第一获取模块,用于依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图;第二获取模块,用于依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图;图像获取模块,用于依据第一成像图和第二成像图,生成目标成像图。
16.本发明实施例提供了一种工件数据获取方法,通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集;通过面阵相机创建对应的虚拟相机模型;依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图;依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图;依据第一成像图和第二成像图,生成目标成像图,达到能够精准的表示工件在线结构光相机下的投影成像。
附图说明
17.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为本发明实施例一提供的一种工件数据获取方法的流程示意图;图2a为本发明实施例一提供的一种工件数据获取方法中第一图库的坐标系示意
图;图2b为本发明实施例一提供的一种工件数据获取方法中第二图库的坐标系示意图;图3为本发明实施例一提供的一种工件数据获取方法中面阵相机的内参fx,fy,cx,cy转换成opengl中投影矩阵的参数过程示意图;图4为本发明实施例一提供的一种工件数据获取方法中线结构光相机成像原理示意图;图5为本发明实施例一提供的一种工件数据获取方法中成像公式的流程示意图;图6为本发明实施例二提供的一种工件数据获取装置的示意图。
具体实施方式
18.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
19.需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于限定特定顺序。
20.还需要说明是,本发明下述各个实施例可以单独执行,各个实施例之间也可以相互结合执行,本发明实施例对此不作具体限制。
21.下面,对网络安全事件的关联分析方法、装置及其技术效果进行详细描述。
22.实施例一图1为本发明实施例一提供的一种工件数据获取方法的流程示意图,应用于线结构光相机,如图1所示,该方法可以包括如下步骤:步骤s102,通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集;其中,步骤s102中通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集包括:步骤s1021,获取工件模型的工件模型文件和线激光的光平面信息;具体的,在步骤s1021中获取工件模型的工件模型文件包括:从工件模型文件中提取工件模型的顶点信息和面片信息;将顶点信息和面片信息由文本格式转换为数组格式,得到转换后的顶点数组和面片数组;其中,顶点信息包括:每个顶点的位置;面片信息包括:工件模型中每个面包含的顶点序号。
23.其中,将工件模型文件中的顶点信息和面片信息解构,保存成mesh数组(即,本技术实施例中的数组格式),用于计算工件中每一个坐标点的成像情况。
24.需要说明的是,在本技术实施例中,对顶点信息和面片信息的格式转换,是由于获取到的顶点信息和面片信息为文本信息,用于描述工件模型中各个顶点的坐标,以及各顶点组成的面的光学特征,其中,光学特征至少包括:颜色,纹理;为了便于后续计算,将文本信息转换为计算机能够识别的数字代码,因此选择以mesh数组为例的数组格式;以三角锥为例,三角锥包括四个顶点a,b,c,d;由该四个顶点能够得到四个面,包括:面abc,面bcd,面
acd和面abd;因此顶点信息可以包括顶点a,b,c,d的世界坐标;面片信息至少包括:面abc,面bcd,面acd和面abd,以及面abc,面bcd,面acd和面abd的纹理和颜色。
25.实际上仅以上述示例为例进行说明,以实现本技术实施例提供的工件数据获取方法为准,具体不做限定。
26.可选的,光平面信息包括:光平面方程、光心位置坐标和光轴方向向量。
27.其中,光平面方程可以为:ax+by+cz+d=0,其中a,b,c,d为光平面方程参数;光心位置坐标(格式为三维向量),以及光轴方向向量(格式为三维向量)。
28.步骤s1022,依据光平面信息创建线激光光源矩阵;其中,步骤s1022中依据光平面信息创建线激光光源矩阵包括:依据光心位置坐标,光轴方向向量和向上的指定方向得到线激光光源矩阵。
29.具体的,根据步骤s1021中得到的光平面信息,构建lookat矩阵(即,本技术实施例中的线激光光源矩阵)。lookat矩阵是由以下几种信息来定义的:光心位置,光轴方向,以及向上的up方向(即,本技术实施例中的向上的指定方向),这几种信息均以向量的形式组成矩阵。
30.步骤s1023,依据线激光光源矩阵和工件模型文件,获取工件模型中所有可见点的坐标集。
31.其中,步骤s1023中依据线激光光源矩阵和工件模型文件,获取工件模型中所有可见点的坐标集包括:依据线激光光源矩阵创建线激光坐标系;依据线激光坐标系和线激光光源矩阵,创建线激光虚拟相机模型;依据线激光虚拟相机模型和工件模型文件,得到工件模型中所有可见点的坐标集。
32.具体的,通过opengl图像库中的绘制函数,将读入的工件模型绘制出来。由于只需要线激光扫描到的工件模型上的部分(一条线状的点云数据),所以在绘制工件模型时,可通过以下处理只绘制线激光扫描到的模型部分:通过lookat矩阵,构建一个以光心为坐标原点,以光轴方向为z轴,光平面法向量为x轴,向上up方向为y轴的坐标系(即,本技术实施例中的线激光坐标系)。
33.创建一个位置与光心坐标重合,视口宽度只有1个像素的虚拟相机模型(即,本技术实施例中的线激光虚拟相机模型)。其创建过程如下表示:view矩阵即是lookat矩阵。projection矩阵则通过opengl图像库中的perspective函数创建。注意该虚拟相机的视口宽度为1像素,视口高度应尽可能的高(不超过10240像素),以提高模型绘制的精度。
34.通过得到的view和projection矩阵,根据成像公式,计算工件的投影图。得到线激光下工件模型的所有可见点。
35.通过矩阵逆运算,计算出所有可见点在世界坐标系下的坐标(即,本技术实施例中的坐标集)。将这些可见点的坐标(世界坐标系下)存入数组中。
36.此外,在计算工件在线激光下所有的可见点的过程中,可以选择不构造一个视口宽度为1的虚拟相机模型,而选择直接绘制出工件的完整模型,然后通过遍历工件模型的所有点的在世界坐标系下的坐标,将坐标带入光平面方程,判断该点是否在光平面上,以此来获取到工件在线激光下的可见点。
37.步骤s104,通过面阵相机创建对应的虚拟相机模型;其中,在本技术实施例中面阵相机可以为2d面阵相机,步骤s104中通过面阵相机
创建对应的虚拟相机模型包括:获取面阵相机参数文件;从面阵相机参数文件中获取外参矩阵和内参矩阵;依据外参矩阵创建虚拟相机的第一矩阵,并将第一图库中的面阵相机坐标系转换为第二图库中的面阵相机坐标系;依据内参矩阵创建虚拟相机的第二矩阵,并将内参矩阵中的参数转换为第二图库中投影矩阵的参数;依据第一矩阵和第二矩阵得到虚拟相机模型;其中,外参矩阵,用于表示面阵相机在世界坐标系下的平移和旋转信息;内参矩阵,用于表示面阵相机的焦距和图像中心坐标。
38.具体的,获取面阵相机的内外参矩阵和畸变参数文件;根据外参矩阵构建虚拟相机的view矩阵(即,本技术实施例中的第一矩阵),需要将opencv(即,本技术实施例中的第一图库)中的相机坐标系绕x轴旋转180度,得到opengl(即,本技术实施例中的第二图库)的相机坐标系。
39.其中,如图2a和图2b所示,图2a为本发明实施例一提供的一种工件数据获取方法中第一图库的坐标系示意图;图2b为本发明实施例一提供的一种工件数据获取方法中第二图库的坐标系示意图;其中,将opencv(即,本技术实施例中的第一图库)中的相机坐标系绕x轴旋转180度,得到opengl(即,本技术实施例中的第二图库)的相机坐标系,能够根据opencv的坐标系和opengl的坐标系的区别得到,其中,图2a为opencv的坐标系,图2b为opengl的坐标系。
40.根据内参矩阵(和fov信息)构建虚拟相机的projection矩阵(即,本技术实施例中的第二矩阵),需要根据其相似三角形原理进行换算,将fx,fy,cx,cy转换成opengl中投影矩阵的参数(即,本技术实施例中的第二图库中投影矩阵的参数)。其中,如图3所示,图3为本发明实施例一提供的一种工件数据获取方法中面阵相机的内参fx,fy,cx,cy转换成opengl中投影矩阵的参数过程示意图。
41.综上,如图4所示,图4为本发明实施例一提供的一种工件数据获取方法中线结构光相机成像原理示意图,其中,图4中oc指的是面阵相机的光心,op表示的是线激光的光心。以光心为坐标原点,构建xpypzp坐标系,zp表示光轴。oc是面阵相机的光心,以xcyczc构建坐标系,zc为光轴。从a到b的曲线为光平面与工件表面的交线,即所有在线激光下工件表面的可见点。
42.步骤s106,依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图;其中,步骤s106中依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图包括:通过虚拟相机模型调用第二图库中的指定函数读取坐标集中每个可见点对应的第一深度值信息;依据第一深度值信息生成所有可见点在面阵相机下的第一成像图。
43.具体的,根据成像公式,计算出线激光下的工件可见点在面阵相机下的投影。通过opengl(即,本技术实施例中的第二图库)中的glreadpixels函数(即,本技术实施例中的指定函数)读取每个点的深度值信息(即,本技术实施例中的第一深度值信息),将所有点(这些点为线激光下可见的点在面阵相机下的可见点)的深度值信息保存成深度图(即,本技术实施例中的第一成像图)的格式(即每个像素点的颜色值为该像素点的深度值)。
44.步骤s108,依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图;
其中,步骤s108中依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图包括:通过虚拟相机模型调用第二图库中的指定函数读取工件模型的所有可见点的第二深度值信息;依据第二深度值信息生成工件模型在面阵相机下的第二成像图。
45.具体的,根据成像计算公式,计算整个工件模型在面阵相机下的投影。通过opengl(即,本技术实施例中的第二图库)中的glreadpixels函数(即,本技术实施例中的指定函数)读取每个点的深度值信息(即,本技术实施例中的第二深度值信息),将所有点(这些点为整个工件在面阵相机下的可见点)的深度值信息保存成深度图(即,本技术实施例中的第二成像图)的格式。
46.在本技术实施例中,成像计算公式可以为:。其中, 指的是某点在世界坐标系下的坐标; 指的是观察矩阵,将点在世界坐标系下的坐标转换至相机坐标系下的坐标;指的是投影矩阵,将点在相机坐标系下的坐标转换至成像坐标系(即像素坐标系)下的坐标;指的是模型矩阵,用于表示模型的缩放、旋转、平移过程,默认值为一个单位矩阵;指的是点在成像坐标系(即像素坐标系)下的坐标。
47.如图5所示,图5为本发明实施例一提供的一种工件数据获取方法中成像公式的流程示意图,其中,对应成像公式所表示的成像流程的图像化表达,对应一点的坐标在每一个空间坐标系内的转化。
48.步骤s110,依据第一成像图和第二成像图,生成目标成像图。
49.其中,步骤s110中依据第一成像图和第二成像图,生成目标成像图包括:将第一成像图和第二成像图中每个像素点的深度值进行比对;判断第一成像图中每个像素点的深度值是否大于第二成像图中对应位置的像素点的深度值,且第一成像图中每个像素点的深度值与第二成像图中对应位置的像素点的深度值的误差大于预设阈值;在判断结果为是的情况下,剔除对应像素点,生成剔除后的成像图;将剔除后的成像图进行二值化处理,得到目标成像图。
50.具体的,对比线激光下可见点的深度图(即,本技术实施例中的第一成像图)和整个工件的深度图(即,本技术实施例中的第二成像图)中每个像素点的深度值大小。
51.若某点在第一成像图中的深度值大于第二成像图中的深度值,且误差大于阈值(即,本技术实施例中判断第一成像图中每个像素点的深度值是否大于第二成像图中对应位置的像素点的深度值,且第一成像图中每个像素点的深度值与第二成像图中对应位置的像素点的深度值的误差大于预设阈值),则表示该点在面阵相机下存在被遮挡,应剔除。通过该步骤,去除所有的错误点,可进一步提高最终获得的点云精度。
52.将经过剔除后的深度图(即,本技术实施例中的剔除后的成像图)进行二值化处理,作为最终输出的线结构光相机下的投影图(即,本技术实施例中的目标成像图)。
53.需要说明的是,本技术实施例提供的上述示例,仅以说明本技术实施例提供的工件数据获取方法为准,具体不做限定。
54.本发明实施例提供了一种工件数据获取方法,基于opengl和opencv的线结构光相机模型设计,作为模拟工件在真实相机下投影情况的虚拟环境。该模型设计由一个线激光
模型和一个面阵相机模型组成,映射了实际情况下工件在线结构光相机下的扫描和投影成像过程。其中,线激光由一个光平面方程、光心坐标以及光轴朝向向量作为参数来构造,面阵相机由一个视锥模型来模拟。通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集;通过面阵相机创建对应的虚拟相机模型;依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图;依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图;依据第一成像图和第二成像图,生成目标成像图,达到能够精准的表示工件在线结构光相机下的投影成像。
55.实施例二图6为本发明实施例二提供的一种工件数据获取装置的示意图,应用于线结构光相机,如图6所示,该工件数据获取装置可以包括:扫描模块60,用于通过线激光扫描工件模型,得到工件模型中所有可见点的坐标集;创建模块62,用于通过面阵相机创建对应的虚拟相机模型;第一获取模块64,用于依据坐标集和虚拟相机模型,得到坐标集中所有可见点在面阵相机下的第一成像图;第二获取模块66,用于依据工件模型和虚拟相机模型,得到工件模型在面阵相机下的第二成像图;图像获取模块68,用于依据第一成像图和第二成像图,生成目标成像图。
56.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
57.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
58.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
59.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
60.以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1