本技术涉及视觉检测领域,特别涉及一种线扫3d相机距离检测方法、装置、3d相机及存储介质。
背景技术:
1、工业相机大多需要通过视觉检测进行测距和标定,相机标定对测量精度和识别的准确性极其重要。
2、在常规的相机标定中,通常使用棋盘格标定和激光标定来同步进行,且需要对不同空间位置的棋盘格和激光取向,连续执行多次。这种方法执行步骤复杂,拍摄标定的时间较长,且精度还有待提高。
技术实现思路
1、本技术实施例提供一种线扫3d相机距离检测方法、装置、3d相机及存储介质,解决相机标定精度不高和过程复杂的问题。
2、一方面,本技术提供一种线扫3d相机距离检测方法,所述方法包括:
3、在3d相机的高曝光模式下拍摄多帧棋盘格图像,提取所述棋盘格图像中所有角点,并根据所述3d相机位置坐标生成相机的标定矩阵;所述标定矩阵用于生成相机测距的配置文件;
4、在所述3d相机的低曝光模式下通过激光照射两个具有平面高度差的标定物体,并拍摄所述标定物体的多帧激光图像;所述3d相机以高曝光和低曝光交替拍摄所述标定物体,每拍摄一组棋盘格图像和激光图像后移动所述标定物体的位置;
5、遍历所述激光图像中的所有激光点,通过生成的所述标定矩阵将所述激光图像中的2d点转换成所述3d相机视角下的3d点云,并拟合出激光平面;
6、拍摄多帧非标物体并调取相机配置文件,根据从多帧非标图像中提取的2d点云坐标和所述配置文件拟合两个测距平面,并基于测距平面计算出物体实际距离;其中,所述相机配置文件中包含标定计算的所述标定矩阵和拟合的所述激光平面。
7、具体的,所述提取所述棋盘格图像中所有角点,并根据所述3d相机位置坐标生成相机的内参矩阵,包括:
8、基于相机标定函数提取所述棋盘格图像中角点信息,根据所述3d相机的空间位置建立世界坐标系,并根据角点信息生成相机的所述标定矩阵,包括相机内参矩阵s、畸变矩阵d、旋转矩阵r和平移矩阵m。
9、具体的,所述通过生成的所述标定矩阵将所述激光图像中的2d点转换成所述3d相机视角下的3d点云,包括:
10、提取旋转矩阵r和平移矩阵t,通过如下公式计算出解析矩阵kt:
11、kt=s*rt;
12、其中,s为3×3矩阵,r为3×1矩阵,t为1×3矩阵,kt为3×4矩阵;
13、分别抓取所述激光图像中每个激光线条的2d激光点p(u,v),并根据解析矩阵kt计算出对应激光线条的水平线性方程;其中,2d激光点p(u,v)根据激光光源建立的二维坐标系确定;
14、根据对应的水平线性方程、旋转矩阵r和平移矩阵t将激光线条上的2d激光点p(u,v)转换为3d点云q,表示如下:
15、r*(x,y,0)t+t=qt;
16、其中,(x,y,0)表示激光点p(u,v)通过水平线性方程计算后得到的中间坐标,t表示将三维坐标点转置为3×1矩阵。
17、具体的,所述分别抓取所述激光图像中每个激光线条的2d激光点p(u,v),并根据解析矩阵kt计算出对应激光线条的水平线性方程,包括:
18、基于解析矩阵kt中的目标元素计算第一水平线性方程a1x+b1y+c1=0;
19、其中,
20、基于解析矩阵kt中的目标元素计算第二水平线性方程a2x+b2y+c2=0;
21、其中,
22、第一水平线性方程和第二水平线性方程分别为两个不同水平高度的标定物体。
23、具体的,所述拟合出激光平面,包括:
24、获取不同位置下拍摄所述标定物体获得的激光线条的三维点云坐标,并存储获得点云文件;
25、基于不同帧下至少两条激光线条的水平线性方程构建出所述标定物的激光平面;第一水平线性方程对应的第一激光平面laser1:a1x+b1y+c1z+d1=0;第二水平线性方程对应的第二激光平面laser2:a2x+b2y+c2z+d2=0;
26、两个标定物体同步运动,其平面上的激光线条移动后形成激光平面,其中的a1、b1、c1和d1表示一个标定物体移动后形成的激光平面的系数;a2、b2、c2和d2表示另一个标定物体移动后形成的激光平面的系数;
27、拟合出两个物体的激光平面后,将激光平面和相机的所述标定矩阵生成相机配置文件并保存。
28、具体的,所述根据从多帧非标图像中提取的2d点云坐标和所述配置文件拟合两个测距平面,并基于测距平面计算出物体实际距离,包括:
29、调取相机内参矩阵s,基于内参矩阵s中的目标元素和激光平面将各自物体的2d点云转换成3d点云;
30、
31、其中的fx=s[0,0],cx=s[0,2],fy=s[1,1],cy=s[1,2];a,b,c,d为激光平面方程的系数;(x,y)为图像中识别的2d点云坐标,(point_x,point_y,point_z)为转换后的3d点云坐标;
32、基于转换后的3d点云坐标分别构建出各自的测距平面,并计算两个测距平面之间的垂直距离。
33、另一方面,本技术提供一种线扫3d相机距离检测装置,包括:
34、参数生成模块,用于在3d相机的高曝光模式下拍摄多帧棋盘格图像,提取所述棋盘格图像中所有角点,并根据所述3d相机位置坐标生成相机的标定矩阵;所述标定矩阵用于生成相机测距的配置文件;
35、图像获取模块,用于在所述3d相机的低曝光模式下通过激光照射两个具有平面高度差的标定物体,并拍摄所述标定物体的多帧激光图像;所述3d相机以高曝光和低曝光交替拍摄所述标定物体,每拍摄一组棋盘格图像和激光图像后移动所述标定物体的位置;
36、拟合模块,用于遍历所述激光图像中的所有激光点,通过生成的所述标定矩阵将所述激光图像中的2d点转换成所述3d相机视角下的3d点云,并拟合出激光平面;
37、测距模块,用于拍摄多帧非标物体并调取相机配置文件,根据从多帧非标图像中提取的2d点云坐标和所述配置文件拟合两个测距平面,并基于测距平面计算出物体实际距离;其中,所述相机配置文件中包含标定计算的所述标定矩阵和拟合的所述激光平面。
38、另一方面,本技术提供一种3d相机,所述3d相机包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一方面所述的线扫3d相机距离检测方法。
39、另一方面,一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任一方面所述的线扫3d相机距离检测方法。
40、本技术提供的技术方案带来的有益效果至少包括:该方法利用高曝光下的棋盘格图像构建出转换坐标系视角的标定矩阵,进而利用低曝光的激光图像中的两个激光线条;采用标定矩阵可以将激光图像中的2d点云转换为相机坐标系下的3d点云,而多帧组合可以根据物体位移形成的多个激光线条构建出激光平面。激光平面和和标定矩阵作为相机的配置文件存储,在后续实测阶段直接根据配置文件来提取物体2d点云麻将棋转换为3d点云后形成测距平面,进而计算出平面距离。该方案相对于传统相机标定,其标定精度更高且操作方案更为简单。