一种标定板上圆孔的圆心提取方法
文献发布时间:2024-04-18 19:58:30
技术领域
本发明涉及数据处理技术领域,尤其涉及一种标定板上圆孔的圆心提取方法。
背景技术
目前针对利用点云数据提取标定板上圆孔的圆心的方法是根据拟合平面点云的深度和标定板的实际物理尺寸,推算出四个圆心的位置。但该方法有以下几个缺陷:
1.稳定性较差,在拟合的平面有缺损的情况下无法得到正确的圆心位置,从而标定失败;
2.通用性较差,需要手动设置合适的参数以及提前量取标定板的尺寸;
3.结果不够准确,因为计算过程中存在多次近似,会导致结果有所偏差。
发明内容
为解决现有技术中的上述问题中的至少一部分问题,本发明提供一种标定板上圆孔的圆心提取方法,包括:
将平面拟合处理后的点云投影到图像平面以生成点云图像,其中点云为激光雷达采集的标定板的点云;
对所述点云图像进行形态学处理,以提取标定板上圆孔的圆心。
进一步地,其中将平面拟合处理后的点云投影到图像平面以生成点云图像包括:
确定点云中x坐标和y坐标的最大值和最小值;
根据y坐标的范围确定图像的行数;
根据x坐标的范围确定图像的列数,并创建一张全为0的2值图像;
将点云坐标转换成图像坐标;以及
将图像中对应坐标位置的点像素值改为1。
进一步地,图像的行数和列数的表达式为:
Img_rows=ceil((Ymax–Ymin)/cellSize),
Img_cols=ceil((Xmax–Xmin)/cellSize),
其中,Img_rows为图像行数,Img_cols为图像列数,cellsize为栅格的单元长度,这里取值0.001,ceil表示向上取整。
进一步地,其中图像坐标的表达式为:
Yimg=floor((Ymax–Ypt)/cellSize)
Ximg=floor((Xpt–Xmin)/cellSize)
其中Ypt为点云的Y轴坐标,Xpt为点云的X轴坐标,Yimg表示该点在图像中的Y坐标,Ximg表示该点在图像中的X坐标,floor表示向下取整。
进一步地,其中对所述点云图像进行形态学处理,以提取标定板上圆孔的圆心包括:
使用圆形内核将点云进行膨胀;
提取连通区域,其中连通区域是图像中具有相同像素值且位置相邻的前景像素点组成的图像区域;以及
筛选连通区域,去掉外轮廓以及面积小于设定值的连通区域,并求取每个连通区域最小外接矩形的中心。
进一步地,其中使用圆形内核将点云进行膨胀包括:
将圆形内核通过平移与图像的每个点进行比对,如果图像中被核覆盖的范围内有非零点,则将被核覆盖的部分所有像素值都用该范围的最大值替换,其中膨胀的数学公式为:
dst(x,y)=max(src(x+x1,y+y1)),(x1,y1):element(x1,y1)!=0,
其中dst(x,y)表示处理完成后(x,y)位置像素点的值,max表示取集合中的最大值,src表示输入的像素点集合,element(x1,y1)表示形态学的核,即需要判断的所有像素点所组成的集合。
进一步地,其中提取连通区域包括:
使用轮廓提取函数findContours提取连通区域。
进一步地,其中求取每个连通区域最小外接矩形的中心包括:
遍历连通区域内所有像素点的坐标位置,分别确定x,y的最大值和最小值,则最小外接矩形的左上顶点的坐标为(xmin,ymin),右下顶点的坐标为(xmax,ymax),因此最小外接矩形的中心为((xmax+xmin)/2,(ymax+ymin)/2)。
进一步地,还包括确定圆心个数,若圆心个数满足条件则进行求取变换矩阵步骤,否则根据已有圆心估计剩余圆心的位置。
进一步地,其中根据已有圆心估计剩余圆心的位置包括:
若圆心个数是3个,已知标定板中圆心分布在正方形的四个角,因此利用已知圆心坐标位置绘制平行四边形来补齐缺失的圆心。
本发明至少具有下列有益效果:本发明公开的一种标定板上圆孔的圆心提取方法,稳定性高,针对部分拟合平面有缺损的情况依然能准确地提取出圆心,同时不需要测量标定板的尺寸,该方法的通用性强,不需要设置过多的参数,也不受限制于标定板的尺寸,相较之前传统方法,求得的圆心更准确。
附图说明
为了进一步阐明本发明的各实施例的以上和其它优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。
图1示出了常用的标定板的示意图;
图2示出了现有的相机与激光雷达联合标定的流程图;
图3示出了根据本发明一个实施例的基于改进标定板上圆孔的圆心提取的相机与激光雷达联合标定的流程图;
图4示出了根据本发明一个实施例的点云投影到图像平面生成的图像的示意图;
图5示出了根据本发明一个实施例的点云膨胀后的示意图;
图6示出了根据本发明一个实施例的膨胀所用的圆形核的示意图;
图7示出了根据本发明一个实施例的依据4个连通区域确定圆心的示意图;
图8示出了根据本发明一个实施例的缺损的点云投影到图像平面生成的图像的示意图;
图9示出了根据本发明一个实施例的缺损的点云膨胀后的示意图;以及
图10示出了根据本发明一个实施例的利用已经求得的3个圆心位置估计确实圆心的位置的示意图。
具体实施方式
应当指出,各附图中的各组件可能为了图解说明而被夸大地示出,而不一定是比例正确的。
在本发明中,各实施例仅仅旨在说明本发明的方案,而不应被理解为限制性的。
在本发明中,除非特别指出,量词“一个”、“一”并未排除多个元素的场景。
在此还应当指出,在本发明的实施例中,为清楚、简单起见,可能示出了仅仅一部分部件或组件,但是本领域的普通技术人员能够理解,在本发明的教导下,可根据具体场景需要添加所需的部件或组件。
在此还应当指出,在本发明的范围内,“相同”、“相等”、“等于”等措辞并不意味着二者数值绝对相等,而是允许一定的合理误差,也就是说,所述措辞也涵盖了“基本上相同”、“基本上相等”、“基本上等于”。
在此还应当指出,在本发明的描述中,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是明示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为明示或暗示相对重要性。
另外,本发明的各方法的步骤的编号并未限定所述方法步骤的执行顺序。除非特别指出,各方法步骤可以以不同顺序执行。
图1示出了常用的标定板的示意图。图2示出了现有的相机与激光雷达联合标定的流程图。
整个相机-激光雷达的联合标定的原理是通过寻找两个传感器之间的几组相同点,从而确定变换矩阵,完成标定。常见的标定板如图1所示,标定板的中部具有棋盘格,在棋盘格的两侧共有4个圆孔。相机和激光雷达都抓取了标定板的数据之后开始进行分析。
如图2所示,相机和激光雷达进行数据采集,相机采集图像数据,激光雷达采集点云数据。根据图像数据确定标定板的圆心。具体的,根据棋盘格的交点确定棋盘格的范围,加上已知圆孔和棋盘格的相对位置,因此能够确定四个圆孔圆心在图像中的坐标。最后利用图像数据确定的圆心和点云数据确定的圆心求取变换矩阵。
利用点云数据进行计算分析来确定标定板上圆孔的圆心,点云数据的处理经过滤波和预处理以及平面拟合,最后确定圆心。在点云数据中,因为标定板是一个平面有四个圆孔,因此在平面拟合之后能够得到一个包含四个圆孔的平面数据(非该平面上的点会被删除)。传统的做法中因为已知标定板的真实尺寸以及圆孔的相对位置,从而可以求得在该平面数据中圆心的位置。但遇到标定板不够平,或者采集数据发生缺损都会影响圆心的获取,从而使得该次数据标定失效。
本发明针对相机-激光雷达联合标定方法中利用激光雷达采集的点云数据确定标定板的圆孔的圆心部分进行了改进。
图3示出了根据本发明一个实施例的基于改进标定板上圆孔的圆心提取的相机与激光雷达联合标定的流程图。
如图3所示,将点云数据进行平面拟合,之后映射到图像平面,并将点云转换成图像数据,生成图像。利用图像处理中的形态学相关技术对图像进行形态学处理,能够准确地提取出标定板上圆孔的圆心位置,从而完成标定,也大大提高了标定算法的稳定性和通用性。
平面拟合是利用采样一致性算法(RANSAC)进行平面的分割,分割之后只保留该平面上的点云,再通过旋转矩阵将该平面旋转至XOY平面,以便于进行下一步图像的映射。假定平面拟合后的点云平面是矩形的平面,旋转到的XOY平面,则矩形平面的长和宽与X、Y坐标轴平行。点云数据平面拟合后映射到图像平面是为了便于转换成图像,之后再使用图像处理相关手段进行圆心提取,该图像平面与相机拍摄的图像无关,提取到图像上的圆心后再根据映射关系确定点云中的坐标,即最后用于计算变换矩阵的坐标。
1、将平面拟合处理后的点云投影到图像平面,生成图像,具体流程如下:
(1)确定点云中x坐标和y坐标的最大值(Xmax、Ymax)和最小值(Xmin、Ymin),根据y坐标的范围确定图像的行数,根据x坐标的范围确定图像的列数,并创建一张全为0的2值图像,即:
行数Img_rows=ceil((Ymax–Ymin)/cellSize)
列数Img_cols=ceil((Xmax–Xmin)/cellSize)
注:cellsize为栅格的单元长度,这里取值0.001,ceil表示向上取整。
(2)将点云坐标转换成图像坐标,即:
Yimg=floor((Ymax–Ypt)/cellSize)
Ximg=floor((Xpt–Xmin)/cellSize)
其中Ypt为点云的Y轴坐标,Xpt为点云的X轴坐标,Yimg表示该点在图像中的Y坐标,Ximg表示该点在图像中的X坐标,floor表示向下取整。
(3)将图像中对应坐标位置的点像素值改为1,生成的图像如图4所示。
2、利用图像处理中的形态学相关技术对点云图像进行形态学处理,具体流程如下:
(1)由于点云在图像中比较稀疏,先用圆形内核将点云进行膨胀,膨胀后的图像如图5所示,膨胀所用的圆形内核如图6所示。
膨胀的方法包括:将圆形内核通过平移与图像的每个点进行比对,如果图像中被核覆盖的范围内有非零点,则将被核覆盖的部分所有像素值都用该范围的最大值替换。
膨胀的数学公式如下:
dst(x,y)=max(src(x+x1,y+y1)),(x1,y1):element(x1,y1)!=0,其中dst(x,y)表示处理完成后(x,y)位置像素点的值,max表示取集合中的最大值,src表示输入的像素点集合,element(x1,y1)表示形态学的核,即需要判断的所有像素点所组成的集合。
(2)提取连通区域。
连通区域是指图像中具有相同像素值且位置相邻的前景像素点组成的图像区域。具体的提取是通过opencv的轮廓提取函数findContours实现的,其具体原理是利用边界追踪算法来遍历图像中的每个像素值完成的。因此在本方案中还需要剔除4个近圆形以外的所有连通区域。
(3)筛选连通区域,去掉外轮廓以及面积小于设定值的连通区域,并求取每个连通区域最小外接矩形的中心。求取连通区域最小外接矩形的中心的具体过程如下:
遍历连通区域内所有像素点的坐标位置,分别找出x,y的最大值和最小值,则最小外接矩形的左上顶点的坐标为(xmin,ymin),右下顶点的坐标为(xmax,ymax),因此最小外接矩形的中心即为((xmax+xmin)/2,(ymax+ymin)/2)。
3、确定圆心个数,如圆心个数满足条件则进行求取变换矩阵步骤,否则根据已有圆心估计剩余圆心的位置。
若圆心个数为4,则所有圆心均已获得,如图7所示。
若圆心个数小于4,例如是3个,需要根据已有连通区域的位置判断缺失的连通区域位置,即(左上,右上等)。已知标定板中圆心分布在正方形的四个角,因此基于该特点利用已知圆心坐标位置绘制平行四边形来补齐缺失的圆心。理想情况下,4个圆心分布在正方形的4个顶点,但算法提取的圆心会有偏差,4个圆心连线构成的不是正方形,更接近于平行四边形,因此采用平行四边形的方式来补齐缺失的圆心。
如图8所示,采集的点云中会存在一部分数据,拟合平面之后会发生缺损。如图9所示,形态学膨胀之后缺损依旧存在,左上的圆心连通区域无法提取。如图10所示,根据已经求得的三个圆心位置绘制平行四边形来估计缺失圆心的位置。
虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是本领域技术人员能够理解,这些实施方式仅仅是作为示例示出的。本领域技术人员在本发明的教导下可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并借此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。
- 一种适用于可见光/红外相机标定的高精度、低成本标定板及标定方法
- 一种机器人的标定方法、系统及标定板
- 一种五圆标定板的五圆心标定方法
- 一种五圆标定板的五圆心标定方法