CN115222828A - 用于视觉定位的正六边形编码标志解码方法 - Google Patents
用于视觉定位的正六边形编码标志解码方法 Download PDFInfo
- Publication number
- CN115222828A CN115222828A CN202210584704.2A CN202210584704A CN115222828A CN 115222828 A CN115222828 A CN 115222828A CN 202210584704 A CN202210584704 A CN 202210584704A CN 115222828 A CN115222828 A CN 115222828A
- Authority
- CN
- China
- Prior art keywords
- mark
- regular hexagon
- coding
- characteristic
- corner
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/001—Model-based coding, e.g. wire frame
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种用于视觉定位的正六边形编码标志解码方法,主要步骤为:拍摄多幅空间中的正六边形编码标志图案并经灰度化和二值化处理,以六个顶点作为编码标志的特征角点,利用六边形轮廓检测算法获取编码标志的轮廓以及相应的六个特征角点坐标作为粗定位角点;利用角点检测算法提取编码标志特征角点集合,筛选出相对应的六边形角点坐标作为精定位角点坐标,并计算出正六边形编码标志的质心坐标;根据直线检测算法获得指向特征角点坐标,进而区分出特征角点序号;对编码标志进行解码,获得编码标志的编码号;根据该编码标志的编码号和特征角点的序号,获得每个特征角点的编号,从而完成对正六边形编码标志中每个特征角点的解码。
Description
技术领域
本发明涉及计算机视觉中的视觉测量领域,适用于相机标定、目标特征提取、立体匹配和三维数据拼接等领域,具体为用于视觉定位的正六边形编码标志解码方法。
背景技术
随着现代工业的发展,为提高产品质量和产品效益,解决大尺寸和小尺寸及复杂背景的测量问题,视觉测量技术顺应而生。视觉测量技术具有非接触、高精度、便携性好等特点。在视觉测量领域中,大视场、复杂背景下的相机标定困难,以及大尺寸目标如何实现立体匹配和三维数据拼接等问题仍是研究热点。
为有效解决上述问题,编码标记点技术飞速发展,出现了很多编码标志点类型,但大多都为环形、圆形或扇形等,而这些编码标记点在面对仿射变换图像,或大尺寸目标三维拼接时,不能保证结果的准确度和精确度。因此,本发明提出的一种用于视觉定位的正六边形编码标志解码方法,有效弥补了以上缺陷,在实现复杂条件的相机标定的同时,仍保证了较高的精度和鲁棒性,同时由于编码容量较大,面对大尺寸目标的三维数据拼接仍能保持较高的准确性,且操作简便。
发明内容
本发明旨在克服现有技术的不足,提出了用于视觉定位的正六边形编码标志解码方法,克服了现有技术的不足,利用编码图案质心到指向图案质心和其对应特征角点的距离关系进行编码工作的方法,在保持精确度和准确度的情况下,仍能应对大视场、复杂背景下的相机标定,以及大尺寸目标的立体匹配和三维数据拼接。
为实现上述效果,本发明采用的技术方案为:
一种用于所述解码方法的正六边形编码标志,所述正六边形编码标志的6个顶点作为特征角点,在视觉结构光三维测量过程中,用于目标曲面的三维点云拼接;所述正六边形编码标志内含有指向图案和编码图案,其中编码图案又由多个编码单元图案组成,由指向图案可实现正六边形编码标志起始角点的判断,编码图案则是用于对正六边形编码标志中的每一个角点进行编码。
进一步的,所述正六边形编码标志为边长为a的正六边形,指向图案、编码图案均不重叠且不连通,指向图案为边长为β、弧长为ε的扇形,指向图案的质心和正六边形的质心为同一个点,所有编码单元图案为圆形。
进一步的,所述正六边形编码标志中,指向图案的周长小于6a,每个编码单元图案的轮廓长度均小于指向图案的轮廓长度。
进一步的,所述正六边形编码标志的背景颜色与指向图案的颜色具有明显差异,所有编码单元图案的颜色与正六边形编码标志的背景颜色相同或与指向图案的颜色相同。
进一步的,在所述正六边形编码标志中,指向图案和所有编码单元图案的面积大小满足如下关系:指向图案的面积大于编码单元图案的面积,各个编码单元图案的面积相同。
还提供了一种用于视觉定位的正六边形编码标志解码方法,以正六边形编码标志的6个顶点作为特征角点,在视觉结构光三维测量过程中,用于目标曲面的三维点云拼接,该解码方法主要包括以下步骤:
步骤1、利用摄像机拍摄空间中放置的N个正六边形编码标志,进而获得编码标志图像,所述编码标志图像当中包含N个正六边形编码标志,N为正整数;
步骤2、对编码标志图像进行灰度处理得到编码标志灰度图像P1,其中,编码标志灰度图像P1为8位灰度图;对编码标志灰度图像P1进行复制备份得到编码标志灰度备份图像P1′;
步骤3、对编码标志灰度备份图像P1′进行二值化处理,使得每个正六边形编码标志的背景颜色均为黑色(即灰度值为0),每个正六边形编码标志内的指向图案均为白色(即灰度值为255),编码单元图案的颜色根据正六边形编码标志的编码规则可以为白色也可以为黑色,进而得到编码标志二值化图像P2;
步骤4、将编码标志二值化图像P2进行三次复制备份,分别得到第ζ组第1个备份二值化图像P′ζ,1、第ζ组第2个备份二值化图像P′ζ,2和第ζ组第3个备份二值化图像P′ζ,3,其中ζ为整数,且1≤ζ≤N;
步骤5、在上述拍摄的包含N个正六边形编码标志的图像中,选取图像左上角作为角点像素坐标系的原点o,自左向右为角点像素坐标系的x轴方向,自上向下作为角点像素坐标系的y轴方向,由此建立角点像素坐标系o_xy;
步骤6、利用六边形轮廓检测方法获取正六边形编码标志的6个特征角点的亚像素坐标C′ζ,i(x′ζ,i,y′ζ,i),其中i=1,2,3,4,5,6;
步骤7、在第ζ组第2个备份二值化图像P′ζ,2上,获得第ζ个正六边形编码标志的角点六边形Sζ;
步骤8、利用直线检测算法在第ζ组第3个备份二值化图像P′ζ,3上获取离第ζ个编码标志质心像素坐标值o″d,ζ(x″d,ζ,y″d,ζ)中最近的两条直线,把两条直线的交点记为指向特征角点并且将得到的第ζ个指向特征角点坐标作为指向特征角点集合∪的第ζ个元素;创建一幅和P′ζ,3尺寸相同且所有像素点的灰度值均为255的图像,并在所创建图像上画出获取到的两条直线,得到的图像记为第ζ个指向角点图像P″ζ,3;
步骤9、在第ζ组第2个备份二值化图像P′ζ,2上,根据得到指向特征角点经过处理计算得到第ζ个正六边形编码标志中的第1特征角点Cζ,1(xζ,1,yζ,1)、第2特征角点Cζ,2(xζ,2,yζ,2)、第3特征角点Cζ,3(xζ,3,yζ,3)、第4特征角点Cζ,4(xζ,4,yζ,4)、第5特征角点Cζ,5(xζ,5,yζ,5)、第6特征角点Cζ,6(xζ,6,yζ,6),完成第ζ个正六边形特征角点的排序;
步骤10、在第ζ组第2个备份二值化图像P′ζ,2上,根据得出的第ζ个正六边形编码标志中的第1特征角点Cζ,1(xζ,1,yζ,1)、第2特征角点Cζ,2(xζ,2,yζ,2)、第3特征角点Cζ,3(xζ,3,yζ,3)、第4特征角点Cζ,4(xζ,4,yζ,4)、第5特征角点Cζ,5(xζ,5,yζ,5)、第6特征角点Cζ,6(xζ,6,yζ,6)和编码标志质心o″d,ζ(x″d,ζ,y″d,ζ),进一步处理计算得到第ζ个正六边形编码标志的编码号Wζ;
步骤12、判断ζ是否小于等于N,若满足,则将ζ+1重新赋值给ζ,并返回步骤4重复顺序执行步骤4至步骤11,完成其余(N-1)个正六边形编码标志上6个特征角点各自的编号和对应的亚像素坐标值;若不满足,则已经找到每个正六边形编码标志上6个特征角点各自的编号和对应的亚像素坐标值。
进一步的,在步骤6中,提取正六边形编码标志的6个特征角点的亚像素坐标C′ζ,i(x′ζ,i,y′ζ,i),具体方法包括以下步骤:
步骤6.1、对编码标志灰度图像P1再次进行复制备份,获得第ζ个备份灰度图像P″ζ;
步骤6.2、利用六边形轮廓检测算法在第ζ组第1个备份二值化图像P′ζ,1中提取6个角点的亚像素坐标,进而得到第ζ个无复杂背景六边形轮廓图像P″ζ,1;在所述第ζ个无复杂背景六边形轮廓图像P″ζ,1中,包含编码标志的6个备选特征角点C″ζ,1(x″ζ,1,y″ζ,1)、C″ζ,2(x″ζ,2,y″ζ,2)、C″ζ,3(x″ζ,3,y″ζ,3)、C″ζ,4(x″ζ,4,y″ζ,4)、C″ζ,5(x″ζ,5,y″ζ,5)、C″ζ,6(x″ζ,6,y″ζ,6),且六边形轮廓内部的所有像素点的灰度值被置为0,外部的所有像素点的灰度值被置为255;
步骤6.3、利用角点检测算法在第ζ个备份灰度图像P″ζ中提取所有角点的亚像素坐标并存入第ζ个初选角点亚像素坐标集合Bζ中,进而得到第ζ个初选角点图像P″′ζ;其中,第ζ个初选角点亚像素坐标集合Bζ中存放着第ζ个初选角点图像P″′ζ上包含六边形编码标志的6个特征角点亚像素坐标值和干扰角点的亚像素坐标值,所述干扰角点是除特征角点以外的干扰角点;
步骤6.4、取整数变量i并赋值i=1;
步骤6.5、在所述第ζ个初选角点亚像素坐标集合Bζ中寻找距离亚像素坐标值C″ζ,i(x″ζ,i,y″ζ,i)最近的角点亚像素坐标并记为C′ζ,i(x′ζ,i,y′ζ,i);
步骤6.6、判断i是否小于等于6,若i≤6,则将i+1赋值给i并返回执行步骤6.4;否则,此时已经获得六边形编码标志的6个特征角点的亚像素坐标C′ζ,1(x′ζ,1,y′ζ,1)、C′ζ,2(x′ζ,2,y′ζ,2)、C′ζ,3(x′ζ,3,y′ζ,3)、C′ζ,4(x′ζ,4,y′ζ,4),C′ζ,5(x′ζ,5,y′ζ,5),C′ζ,6(x′ζ,6,y′ζ,6);
步骤6.7、在第ζ组第3个备份二值化图像P′ζ,3上画出正六边形编码标志的6个特征角点,得到角点图像P″ζ,3;所述角点图像P″ζ,3中六个特征角点所形成的六边形外部的所有像素点的灰度值被置为255,内部的所有像素点的灰度值保持不变。
进一步的,在步骤7中,获得包含正六边形编码标志质心坐标值o″d,ζ(x″d,ζ,y″d,ζ)的第ζ个正六边形编码标志的角点六边形Sζ的方法为:
步骤7.1、根据步骤6中获取得正六边形编码标志的6个特征角点亚像素坐标,由公式(1)和公式(2)计算出正六边形编码标志质心坐标值(x″d,ζ,y″d,ζ);
x″d,ζ=1/3×[1/2×(x′ζ,1+x′ζ,2+...x′ζ,6)] (1)
y″d,ζ=1/3×[1/2×(y′ζ,1+y′ζ,2+...y′ζ,6)] (2)
步骤7.2、在第ζ组第2个备份二值化图像P′ζ,2上,将包含质心像素坐标值o″d,ζ(x″d,ζ,y″d,ζ)的编码标志记为第ζ个正六边形编码标志;
步骤7.3、在第ζ组第2个备份二值化图像P′ζ,2上,分别选取亚像素坐标值C′ζ,1(x′ζ,1,y′ζ,1)、C′ζ,2(x′ζ,2,y′ζ,2)、C′ζ,3(x′ζ,3,y′ζ,3)、C′ζ,4(x′ζ,4,y′ζ,4),C′ζ,5(x′ζ,5,y′ζ,5),C′ζ,6(x′ζ,6,y′ζ,6)的6个像素点作为第ζ个正六边形编码标志的角点六边形Sζ的6个顶点,将6个顶点相连进而获得第ζ个正六边形编码标志的角点六边形Sζ。
进一步的,在步骤9中,完成第ζ个正六边形特征角点的排序的方法包括以下步骤:
步骤9.1、在第ζ组第2个备份二值化图像P′ζ,2上,把第ζ个正六边形编码标志的特征角点的亚像素坐标值为(x′ζ,1,y′ζ,1)、(x′ζ,2,y′ζ,2)、(x′ζ,3,y′ζ,3)、(x′ζ,4,y′ζ,4)、(x′ζ,5,y′ζ,5)、(x′ζ,6,y′ζ,6)的6个像素点分别记为C″′ζ,1(x″′ζ,1,y″′ζ,1)、C″′ζ,2(x″′ζ,2,y″′ζ,2)、C″′ζ,3(x″′ζ,3,y″′ζ,3)、C″′ζ,4(x″′ζ,4,y″′ζ,4)、C″′ζ,5(x″′ζ,5,y″′ζ,5)、C″′ζ,6(x″′ζ,6,y″′ζ,6);
步骤9.3、在第ζ组第2个备份二值化图像P′ζ,2上,通过公式(4)、(5)、(6)、(7)、(8)和(9)计算出在第ζ个正六边形编码标志中的第1判断向量第2判断向量第3判断向量第4判断向量第5判断向量和第6判断向量并根据式(10)计算出的余弦值cosαζ,j来判断出第1特征角点和第4特征角点,其中,j=1,2...6;
若0.95≤cosαζ,j≤1,则第j判断向量对应的像素点C″′ζ,j(x″′ζ,j,y″′ζ,j)记为第1特征角点,记为Cζ,1tem(xζ,1tem,yζ,1tem),则Cζ,1tem(xζ,1tem,yζ,1tem)为第ζ个正六边形编码标志中的第1特征角点,把Cζ,1tem(xζ,1tem,yζ,1tem)的亚像素坐标值赋值给Cζ,1(xζ,1,yζ,1);若-0.95≤cosαζ,j≤-1,则第j判断向量对应的像素点C″′ζ,j(x″′ζ,j,y″′ζ,j)记为第4特征角点,记为Cζ,4tem(xζ,4tem,yζ,4tem),则Cζ,4tem(xζ,4tem,yζ,4tem)为第ζ个正六边形编码标志中的第1特征角点,把Cζ,4tem(xζ,4tem,yζ,4tem)的亚像素坐标值赋值给Cζ,4(xζ,4,yζ,4);
步骤9.4、在第ζ组第2个备份二值化图像P′ζ,2上,找出剩余4个像素点中距离第1编码标志点像素坐标Cζ,1(xζ,1,yζ,1)最近的2个像素点,并分别记为Cζ,2tem(xζ,2tem,yζ,2tem)和Cζ,6tem(xζ,6tem,yζ,6tem);通过公式(11)、(12)和(13)计算出在第ζ个正六边形编码标志中的第7判断向量第8判断向量和第9判断向量并通过式(14)和式(15)计算出第2编码角点划分正弦值sinαζ和第6编码角点划分正弦值sinβζ;
若sinαζ<0,sinβζ>0,则Cζ,2tem(xζ,2tem,yζ,2tem)为第ζ个正六边形编码标志中的第2特征角点,把Cζ,2tem(xζ,2tem,yζ,2tem)的像素坐标值赋值给Cζ,2(xζ,2,yζ,2);Cζ,6tem(xζ,6tem,yζ,6tem)为第ζ个正六边形编码标志中的第6特征角点,把Cζ,6tem(xζ,6tem,yζ,6tem)的像素坐标值赋值给Cζ,6(xζ,6,yζ,6);
若sinαζ>0,sinβζ<0,则Cζ,2tem(xζ,2tem,yζ,2tem)为第ζ个正六边形编码标志中第6特征角点,把Cζ,2tem(xζ,2tem,yζ,2tem)的亚像素坐标值赋值给Cζ,6(xζ,6,yζ,6);Cζ,6tem(xζ,6tem,yζ,6tem)为第ζ个正六边形编码标志中第2特征角点,把Cζ,6tem(xζ,6tem,yζ,6tem)的亚像素坐标值赋值给Cζ,2(xζ,2,yζ,2);
步骤9.5、在第ζ组第2个备份二值化图像P′ζ,2上,找到剩余2个特征角点的序号:
记离Cζ,2(xζ,2,yζ,2)距离最远的特征角点为第5特征角点,记为Cζ,5tem(xζ,5tem,yζ,5tem),则Cζ,5tem(xζ,5tem,yζ,5tem)为第ζ个正六边形编码标志中的第5特征角点,把Cζ,5tem(xζ,5tem,yζ,5tem)的亚像素坐标值赋值给Cζ,5(xζ,5,yζ,5);记离Cζ,6(xζ,6,yζ,6)距离最远的特征角点为第3特征角点,记为Cζ,3tem(xζ,3tem,yζ,3tem),则Cζ,3tem(xζ,3tem,yζ,3tem)为第ζ个正六边形编码标志中的第3特征角点,把Cζ,5min(xζ,5min,yζ,5min)的亚像素坐标值赋值给Cζ,3(xζ,3,yζ,3);
至此,在第ζ组第2个备份二值化图像P′ζ,2上找到了第ζ个正六边形编码标志中第1特征角点Cζ,1(xζ,1,yζ,1)、第2特征角点Cζ,2(xζ,2,yζ,2)、第3特征角点Cζ,3(xζ,3,yζ,3)、第4特征角点Cζ,4(xζ,4,yζ,4)、第5特征角点Cζ,5(xζ,5,yζ,5)、第6特征角点Cζ,6(xζ,6,yζ,6)。
进一步的,步骤10中,在第ζ组第2个备份二值化图像P′ζ,2上,根据得出的第ζ个正六边形编码标志中的编码标志质心和特征角点处理计算得到第ζ个正六边形编码标志的编码号Wζ的方法包括以下步骤:
步骤10.1、在第ζ组第2个备份二值化图像P′ζ,2上,第ζ个正六边形编码标志的角点六边形Sζ内部的所有像素点的灰度值保持不变,将第ζ个正六边形编码标志的角点六边形Sζ以外的所有像素点的灰度值赋值为255;
步骤10.2、在第ζ组第2个备份二值化图像P′ζ,2上,提取第ζ个正六边形编码标志的角点六边形Sζ中所有的内、外轮廓,记为第ζ个正六边形编码标志内的轮廓集合Dζ;
步骤10.3、根据第ζ个正六边形编码标志内的轮廓集合Dζ中,除去包含像素点数最多的两个轮廓,剩余轮廓个数κζ的大小分为如下情况:
情况1、若κζ==0,则执行步骤11;
步骤10.4、给整数变量i并赋予初值i=1;
步骤10.5、在第ζ组第2个备份二值化图像P′ζ,2上,计算编码标志圆轮廓的质心像素坐标将i+1重新赋值给i后继续执行此步骤,直到i>κζ结束;由此可以得到对应编码标志圆轮廓编码标志圆轮廓…、编码标志圆轮廓的质心像素坐标
步骤10.6、在第ζ组第2个备份二值化图像P′ζ,2上,根据得出的第ζ个正六边形编码标志中第i特征角点Cζ,i(xζ,i,yζ,i),分别连接第i特征角点Cζ,i(xζ,i,yζ,i)和编码标志质心o″d,i(x″d,i,y″d,i)得到线段Loi,其中i=1,2,3,4,5,6;
步骤10.7、在第ζ组第2个备份二值化图像P′ζ,2上,通过公式(16)和(17)分别计算出在第ζ个正六边形编码标志中的第i个判别向量和第ε个分辨向量并根据式(17)、(18)、(19)、(20)、(21)和(22)计算出的余弦值来判断出第ε个编码标志圆所在的对应线段Loi,其中,i=1,2...6,ε=1,2...κζ;
若则编码标志圆位于位于线段Lo1上;若则编码标志圆位于位于线段Lo2上;若则编码标志圆位于位于线段Lo3上;若则编码标志圆位于位于线段Lo4上;若则编码标志圆位于位于线段Lo5上;若则编码标志圆位于位于线段Lo6上;
步骤10.8、定义6个浮点型二维数组用于存放第ζ个正六边形编码标志中分别位于线段Loi上的编码标志圆轮廓质心在第ζ组第2个备份二值化图像P′ζ,2上的像素坐标,初始化这6个二维数组中的所有元素,且赋值为-1;其中i=1,2,3,4,5,6;
步骤10.9、定义6个浮点型二维数组用于存放第ζ个正六边形编码标志中分别位于线段Loi上的编码标志圆轮廓质心在第ζ组第2个备份二值化图像P′ζ,2上的像素坐标,初始化这6个二维数组中的所有元素,且赋值为-1;
Wζ=Vζ T·U (24)
进一步的,步骤11中,第ζ个正六形编码标志中6个特征角点各自的编码号与其相应的亚像素坐标值的编号规则为:
记第ζ个正六边形编码标志上属于第σ特征角点的编码号为其中下脚标Wζ为特征角点所属编码标志的编码号,上角标σ的取值为特征角点的角点序号,其中,σ=1,2,3,4,5,6;则获得了第ζ个正六形编码标志中6个特征角点各自的编号与其相应的亚像素坐标值:
还提供了一种计算机可读存储介质,其存储有与具有图像处理功能的电子设备结合使用的计算机程序,所述计算机程序可被处理器执行以实现所述的解码方法。
与现有技术相比较,本发明的有益效果如下:
1.本发明提出用于视觉定位的正六边形编码标志中的编码图案,由指向图案和编码标志图案构成,其中,指向图案能够实现在相机标定、三维数据拼接等过程中,自动判断所测目标与摄像机相对旋转方向,提高了灵活性;
2.本发明提出的用于视觉定位的正六边形编码标志具有较大的编码容量,针对尺寸较大的目标也能完成三维数据拼接;
3.本发明提出的用于视觉定位的正六边形编码标志解码方法,能够有效地去除噪声的干扰,发明中提出的去除复杂背景的方法极大地提高了解码的准确性;
4.本发明提出的用于视觉定位的正六边形编码标志解码方法具有高效性,解码速度快,且可以实现实时解码。
附图说明
图1为本发明的正六边形编码标志示意图;
图2为实施例中编码标志灰度图像P1的展示图;
图3为实施例中编码标志二值化图像P2的展示图;
图4为实施例中第1个无复杂背景六边形轮廓图像P″1,1的展示图;
图5为实施例中利用角点检测算法提取得到的初选角点图像P1″′的展示图;
图6为实施例中经过筛选之后的得到的角点图像P″1,3的展示图;
图7为实施例中第1个指向角点图像P″′1,3的展示图;
图8为实施例中在第1组第2个备份二值化图像P′1,2上,将第1个正六边形编码标志的角点六边形S1以外的所有像素点的灰度值赋值为255后所得图像的展示图。
具体实施方式
下面结合附图对本发明的实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
请参阅图1-图8,一种应用于本发明的解码方法的用于视觉定位的正六边形编码标志,所述正六边形编码标志的6个顶点作为特征角点,在视觉结构光三维测量过程中,用于目标曲面的三维点云拼接;所述正六边形编码标志内含有指向图案、编码图案和正六边形背景图案,其中编码图案又由多个编码单元图案组成。由指向图案可实现正六边形特征角点的判断,编码图案则是用于对正六边形编码标志中的每一个角点进行编码。
所述正六边形编码标志为边长为a的正六边形;正六边形编码标志中的编码标志包括指向图案和编码图案,指向图案、编码图案均不重叠且不连通,指向图案为扇形连通域,指向图案的质心和正六边形的质心为同一个点,指向图案的边长为β,弧长为ε,所有编码单元图案为圆形连通域。所述正六边形编码标志中,指向图案和所有编码单元图案的面积大小满足如下关系:指向图案的面积大于编码单元图案的面积,各个编码单元图案的面积相同。
本实施例中正六边形编码标志为边长为20毫米的正六边形,指向图案的扇形半径为5.2毫米,弧度为π/3。正六边形编码标志中,指向图案的周长小于6a;本实施例中,指向图案的周长为15.84毫米。
在所述正六边形编码标志中,每个编码单元图案的轮廓长度均小于指向图案的轮廓长度;本实施例中,每个编码单元图案的轮廓长度为6.28毫米,小于指向图案的轮廓长度15.84毫米。
在本实施列中,所述正六边形编码标志的背景颜色为颜色1,指向图案的颜色为颜色2,所有编码单元图案的颜色与颜色1相同或与颜色2相同,并且颜色1与颜色2具有明显差异。在本实施列中,颜色1为黑色,颜色2为白色。
所述正六边形编码标志中,所有编码单元图案的位置和颜色均由编码方法确定,可以为白色(即颜色2)也可以为黑色(即颜色1)。
下面以N取值为8为例,来详细阐述本发明的用于视觉定位的正六边形编码标志解码方法及其具体应用过程。该解码方法以正六边形编码标志的6个顶点作为特征角点,在视觉结构光三维测量过程中,用于目标曲面的三维点云拼接,该解码方法根据所用于视觉定位的正六边形编码标志的特征,利用数字图像处理的方法获得摄像机拍摄的包含N个正六边形编码标志的图像中每个特征角点的编码序号和亚像素坐标,进而完成正六边形编码标志的解码。该解码方法主要包括以下步骤:
步骤1、利用摄像机拍摄空间中放置的8个正六边形编码标志,进而获得编码标志图像,所述编码标志图像当中包含8个正六边形编码标志;
步骤2:
步骤2.1、对编码标志图像进行灰度处理,得到编码标志灰度图像P1,如图2所示;其中,编码标志灰度图像P1为8位灰度图;
步骤2.2、对编码标志灰度图像P1进行复制备份,得到编码标志灰度备份图像P1′;
步骤3、对编码标志灰度备份图像P1′进行二值化处理,使得每个正六边形编码标志的背景颜色均为黑色(即灰度值为0),每个正六边形编码标志内的指向图案均为白色(即灰度值为255),编码单元图案的颜色根据正六边形编码标志的编码规则可以为白色也可以为黑色,进而得到编码标志二值化图像P2,如图3所示;
步骤4:
步骤4.1、取整数变量ζ,并赋值ζ=1且1≤ζ≤8;
步骤4.2、将编码标志二值化图像P2进行三次复制备份,分别得到第1组第1个备份二值化图像P′1,1、第1组第2个备份二值化图像P′1,2和第1组第3个备份二值化图像P′1,3;
步骤5、在上述拍摄的包含8个正六边形编码标志的图像中,选取图像左上角作为角点像素坐标系的原点o,自左向右为角点像素坐标系的x轴方向,自上向下作为角点像素坐标系的y轴方向,由此建立角点像素坐标系o_xy;
步骤6、利用六边形轮廓检测方法获取正六边形编码标志的6个特征角点的亚像素坐标C′1,i(x′1,i,y′1,i),其中i=1,2,3,4,5,6;具体方法包括以下步骤:
步骤6.1、对编码标志灰度图像P1再次进行复制备份,获得第1个备份灰度图像P1″;
步骤6.2、利用六边形轮廓检测算法在第1组第3个备份二值化图像P′1,3中提取6个角点的亚像素坐标,进而得到第1个无复杂背景二值化图像P″1,3;在所述第1个无复杂背景二值化图像P″1,3中,包含编码标志的6个备选特征角点C″1,1(57.3224,32.1457)、C″1,2(109.6452,32.2746)、C″1,3(132.8453,73.6175)、C″1,4(109.3272,114.1723)、C″1,5(57.1837,114.3969)、C″1,6(35.4249,73.2189),且六边形轮廓内部的所有像素点的灰度值被置为0,外部的所有像素点的灰度值被置为255;第1个无复杂背景二值化图像P″1,3如图4所示;
步骤6.3、利用Shi-Tomasi角点检测算法在第1个备份灰度图像P″ζ中提取所有角点的亚像素坐标并存入第1个初选角点亚像素坐标集合B1中,进而得到第1个初选角点图像P1″′;其中,第1个初选角点亚像素坐标集合B1中存放着第1个初选角点图像P1″′上包含六边形编码标志的6个特征角点亚像素坐标值和干扰角点的亚像素坐标值,所述干扰角点是除特征角点以外的干扰角点;初选角点图像P1″′如图5所示;
步骤6.4、取整数变量i并赋值i=1;
步骤6.5、在所述第1个初选角点亚像素坐标集合B1中寻找距离亚像素坐标值(x″1,i,y″1,i)最近的角点亚像素坐标并记为C′1,i(x′1,i,y′1,i);
步骤6.6、判断i是否小于等于6,若i≤6,则将i+1赋值给i并返回执行步骤6.4;循环执行上述步骤后获得了6个特征角点的亚像素坐标(59.3615,34.6724)、(107.4126,34.6933)、(130.2783,75.8326)、(107.4169,116.4716)、(59.3924,116.4913)、(37.9261,75.8179);
步骤6.7、在第1组第3个备份二值化图像P′1,3上画出正六边形编码标志的6个特征角点,得到角点图像P″1,3;所述角点图像P″1,3中六个特征角点所形成的六边形外部的所有像素点的灰度值被置为255,内部的所有像素点的灰度值保持不变;所述角点图像P″1,3如图6所示。
步骤7:在第1组第2个备份二值化图像P′1,2上,获得第1个正六边形编码标志的角点六边形S1,具体步骤如下:
步骤7.1、根据步骤6中获取得正六边形编码标志的6个特征角点亚像素坐标,由公式(1)和公式(2)计算出正六边形编码标志质心坐标值(x″d,ζ,y″d,ζ);
x″d,1=1/3×[1/2×(x′1,1+x′1,2+...x′1,6)]=83.6313 (1)
y″d,1=1/3×[1/2×(y′1,1+y′1,2+...y′1,6)]=75.6632 (2)
步骤7.2、在第1组第2个备份二值化图像P′1,2上,将包含质心像素坐标值o″d,1(83.6313,75.6632)的编码标志记为第1个正六边形编码标志;
步骤7.3、在第1组第2个备份二值化图像P′1,2上,选取亚像素坐标值分别为(59.3615,34.6724)、(107.4126,34.6933)、(130.2783,75.8326)、(107.4169,116.4716)、(59.3924,116.4913)、(37.9261,75.8179)的6个像素点作为第1个正六边形编码标志的角点六边形S1的6个顶点,将6个顶点相连进而获得第1个正六边形编码标志的角点六边形S1;
步骤8、利用HoughLines检测算法在第1组第3个备份二值化图像P′1,3上获取离第1个编码标志质心像素坐标值o″d,1(83.6313,75.6632)中最近的两条直线,把两条直线的交点记为指向特征角点o″d,1(83.6313,75.6632),并且将得到的第1个指向特征角点坐标∪1(80.7581,71.1853)作为指向特征角点集合∪的第1个元素;创建一幅和P′1,3尺寸相同且所有像素点的灰度值均为255的图像,并在上面画出获取到的两条直线,得到的图像记为第1个指向角点图像P″′1,3;第1个指向角点图像P″′1,3如图7所示;
步骤9、在第1组第2个备份二值化图像P′1,2上,根据得到指向特征角点∪1(79.7581,72.1853)经过处理计算得到第1个正六边形编码标志中的第1特征角点C1,1(59.3615,34.6724)、第2特征角点C1,2(107.4126,34.6933)、第3特征角点C1,3(130.2783,75.8326)、第4特征角点C1,4(107.4169,116.4716)、第5特征角点C1,5(59.3924,116.4913)、第6特征角点C1,6(37.9261,75.8179),完成第1个正六边形特征角点的排序;
具体包括以下步骤:
步骤9.1、在第1组第2个备份二值化图像P′1,2上,把第1个正六边形编码标志的特征角点的亚像素坐标值为(59.3615,34.6724)、(107.4126,34.6933)、(130.2783,75.8326)、(107.4169,116.4716)、(59.3924,116.4913)、(37.9261,75.8179)的6个像素点分别记为C″′1,1(59.3615,34.6724)、C″′1,2(107.4126,34.6933)、C″′1,3(130.2783,75.8326)、C″′1,4(107.4169,116.4716)、C″′1,5(59.3924,116.4913)、C″′1,6(37.9261,75.8179);
步骤9.3、在第1组第2个备份二值化图像P′1,2上,通过公式(4)、(5)、(6)、(7)、(8)和(9)计算出在第ζ个正六边形编码标志中的第1判断向量第2判断向量第3判断向量第4判断向量第5判断向量和第6判断向量并根据式(10)计算出的余弦值cosα1,j来判断出第1特征角点和第4特征角点,其中,j=1,2...6;
本实施例中,cosα1,1=0.9992,满足0.95≤cosα1,1≤1,则第1判断向量对应的像素点C″′1,1(59.3615,34.6724)记为第1特征角点,记为C1,1tem(59.3615,34.6724),则C1,1tem(59.3615,34.6724)为第ζ个正六边形编码标志中的第1特征角点,把C1,1tem(59.3615,34.6724)的亚像素坐标值赋值给C1,1(59.3615,34.6724);cosα1,4=-0.9912,-0.95≤cosα1,4≤-1,则第4判断向量对应的像素点C″′1,4(107.4169,116.4716)记为第4特征角点,记为C1,4tem(107.4169,116.4716),则C1,4tem(107.4169,116.4716)为第ζ个正六边形编码标志中的第1特征角点,把C1,4tem(107.4169,116.4716)的亚像素坐标值赋值给C1,4(107.4169,116.4716);
步骤9.4、在第1组第2个备份二值化图像P′1,2上,找出剩余4个像素点为中距离第1编码标志点像素坐标C1,1(59.3615,34.6724)最近的2个像素点,并分别记为C1,2tem(107.4126,34.6933)和C1,6tem(37.9261,75.8179);可通过公式(2)、(3)和(4)计算出在第1个正六边形编码标志中的第7判断向量第8判断向量和第9判断向量并通过式(5)和式(6)计算出第2编码角点划分正弦值sinα1和第6编码角点划分正弦值sinβ1;
本实施例中,sinα1<0,sinβ1>0,则C1,2tem(107.4126,34.6933)为第1个正六边形编码标志中第2编码区域的特征角点,把C1,2tem(107.4126,34.6933)的像素坐标值赋值给C1,2(107.4126,34.6933);C1,6tem(37.9261,75.8179)为第1个正六边形编码标志中第6编码区域的特征角点,把C1,6tem(37.9261,75.8179)的像素坐标值赋值给C1,6(37.9261,75.8179);
步骤9.5、在第ζ组第2个备份二值化图像P′ζ,2上,找到其它特征角点的序号:
记离C1,2(107.4126,34.6933)距离最远的特征角点为第5特征角点,记为C1,5tem(59.3924,116.4913),则C1,5tem(59.3924,116.4913)为第1个正六边形编码标志中的第5特征角点,把C1,5tem(59.3924,116.4913)的亚像素坐标值赋值给C1,5(59.3924,116.4913);记离C1,6(37.9261,75.8179)距离最远的特征角点为第3特征角点,记为C1,3tem(130.2783,75.8326),则C1,3tem(130.2783,75.8326)为第1个正六边形编码标志中的第3特征角点,把C1,3tem(130.2783,75.8326)的亚像素坐标值赋值给C1,3(130.2783,75.8326);
至此,在第1组第2个备份二值化图像P′1,2上找到了第1个正六边形编码标志中第1特征角点C1,1(59.3615,34.6724)、第2特征角点C1,2(107.4126,34.6933)、第3特征角点C1,3(130.2783,75.8326)、第4特征角点C1,4(107.4169,116.4716)、第5特征角点C1,5(59.3924,116.4913)、第6特征角点C1,6(37.9261,75.8179)。
步骤10、在第1组第2个备份二值化图像P′1,2上,根据得出的第1个正六边形编码标志中的第1特征角点C1,1(59.3615,34.6724)、第2特征角点C1,2(107.4126,34.6933)、第3特征角点C1,3(130.2783,75.8326)、第4特征角点C1,4(107.4169,116.4716)、第5特征角点C1,5(59.3924,116.4913)、第6特征角点C1,6(37.9261,75.8179),进一步处理计算得到第1个正六边形编码标志的编码号W1,具体方法包括以下步骤:
步骤10.1、在第1组第2个备份二值化图像P′1,2上,第1个正六边形编码标志的角点六边形S1内部的所有像素点的灰度值保持不变,将第1个正六边形编码标志的角点六边形S1以外的所有像素点的灰度值赋值为255,如图7所示;
步骤10.2、在第1组第2个备份二值化图像P′1,2上,提取第1个正六边形编码标志的角点六边形S1中所有的内、外轮廓,记为第1个正六边形编码标志内的轮廓集合D1;
步骤10.3、根据第1个正六边形编码标志内的轮廓集合D1中,除去包含像素点数最多的两个轮廓,本实施例中剩余轮廓个数κ1==3满足情况2:κ1≠0,则这1个轮廓即为第1个正六边形编码标志内编码标志圆的轮廓,记为编码标志圆编码标志圆和编码标志圆
步骤10.4、给整数变量i并赋予初值i=1;
步骤10.5、在第1组第2个备份二值化图像P′1,2上,计算编码标志圆轮廓的质心像素坐标,将i+1重新赋值给i后继续执行此步骤,直到i>3结束;由此可以得到编码标志圆轮廓的质心像素坐标编码标志圆轮廓的质心像素坐标和编码标志圆轮廓的质心像素坐标
步骤10.6、在第1组第2个备份二值化图像P′1,2上,根据得出的第1个正六边形编码标志中第1特征角点C1,1(59.3615,34.6724)、第2特征角点C1,2(107.4126,34.6933)、第3特征角点C1,3(130.2783,75.8326)、第4特征角点C1,4(107.4169,116.4716)、第5特征角点C1,5(59.3924,116.4913)、第6特征角点C1,6(37.9261,75.8179),连接第1特征角点C1,1(59.3615,34.6724)和正六边形编码标志质心o″d,1(83.6313,75.6632),记为线段Lo1,连接第2特征角点C1,2(107.4126,34.6933)和正六边形编码标志质心o″d,1(83.6313,75.6632),记为线段Lo2,连接第3特征角点C1,3(130.2783,75.8326)和正六边形编码标志质心o″d,1(83.6313,75.6632),记为线段Lo3,连接第4特征角点C1,4(107.4169,116.4716)和正六边形编码标志质心o″d,1(83.6313,75.6632),记为线段Lo4,连接第5特征角点C1,5(59.3924,116.4913)和正六边形编码标志质心o″d,1(83.6313,75.6632),记为线段Lo5,连接第6特征角点C1,6(37.9261,75.8179)和正六边形编码标志质心o″d,1(83.6313,75.6632),记为线段Lo6;
步骤10.7、在第1组第2个备份二值化图像P′ζ,2上,通过公式(16)和(17)分别计算出在第ζ个正六边形编码标志中的第i个判别向量和第ε个分辨向量并根据式(17)、(18)、(19)、(20)、(21)和(22)计算出的余弦值来判断出第ε个编码标志圆所在的对应线段Loi,其中,i=1,2...6,ε=1,2...κζ;
步骤10.8、定义6个浮点型二维数组Cr1 1[2][2]、Cr1 2[2][2]、Cr1 3[2][2]、Cr1 4[2][2]、Cr1 5[2][2]、Cr1 6[2][2]用于存放第1个正六边形编码标志中分别位于线段Lo1、线段Lo2、线段Lo3、线段Lo4、线段Lo5、线段Lo6上的编码标志圆轮廓质心在第1组第2个备份二值化图像P′1,2上的像素坐标,初始化这6个二维数组中的所有元素,且赋值为-1;
情况1、若Cr1 i[0][0]==-1,Cr1 i[0][1]==-1,Cr1 i[1][0]==-1,Cr1 i[1][1]==-1,则把i+1赋值给i,当满足i>6时,继续执行下一步骤10.11;否则,返回执行步骤10.10;
情况2、若Cr1 i[0][0]==-1,Cr1 i[0][1]==-1,Cr1 i[1][0]≠-1,Cr1 i[1][1]≠-1,记坐标点(Cr1 i[1][0],Cr1 i[1][1])到正六边形质心的距离为到第i特征角点C1,i(x1,i,y1,i)的距离为若并令若则令把i+1赋值给i,当满足i>6时,继续执行下一步骤10.11;否则,返回执行步骤10.10;
情况3、若Cr1 i[0][0]≠-1,Cr1 i[0][1]≠-1,Cr1 i[1][0]==-1,Cr1 i[1][1]==-1,记坐标点(Cr1 i[0][0],Cr1 i[0][1])到正六边形质心的距离为到第i特征角点C1,i(x1,i,y1,i)的距离为若则令若令把i+1赋值给i,当满足i>6时,继续执行下一步骤10.11;否则,返回执行步骤10.10;
情况4、若Cr1 i[0][0]≠-1,Cr1 i[0][1]≠-1,Cr1 i[1][0]≠-1,Cr1 i[1][1]≠-1,则令把i+1赋值给i,当满足i>6时,继续执行下一步骤10.11;否则,返回执行步骤10.10;
在本实施例中,
W1=V1 T·U=770 (24)
其中,列向量U=(20,21,22,...211)T,列向量V1=(0,1,0,0,0,0,0,0,1,1,0,0)T。
具体的编号规则为:
记第1个正六边形编码标志上属于第σ特征角点的编码号为其中下脚标W1为特征角点所属编码方格的编码号,上角标σ的取值为标定角点所属编码区域的编码号;其中σ=1,2,3,4,5,6;则获得了第1个正六形编码标志中6个特征角点各自的编码号与其相应的亚像素坐标值:
步骤12、由于此时ζ=1,N=8,满足ζ≤8,则将2重新赋值给ζ,并返回步骤4重复顺序执行;直至ζ=8,找到8个正六边形编码标志上6个特征角点的编号和对应的亚像素坐标。
本发明还提供了一种计算机可读存储介质,其存储有与具有图像处理功能的电子设备结合使用的计算机程序,所述计算机程序可被处理器执行以实现所述的解码方法。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种用于视觉定位的正六边形编码标志解码方法,其特征在于:以正六边形编码标志的6个顶点作为特征角点,该解码方法主要包括以下步骤:
步骤1、利用摄像机拍摄空间中放置的N个正六边形编码标志,进而获得编码标志图像,所述编码标志图像当中包含N个正六边形编码标志,N为正整数;
步骤2、对编码标志图像进行灰度处理得到编码标志灰度图像P1,对编码标志灰度图像P1进行复制备份得到编码标志灰度备份图像P′1;
步骤3、对编码标志灰度备份图像P′1进行二值化处理,使得每个正六边形编码标志的背景颜色均为黑色,灰度值为0,每个正六边形编码标志内的指向图案均为白色,灰度值为255,编码单元图案的颜色根据正六边形编码标志的编码规则可以为白色也可以为黑色,进而得到编码标志二值化图像P2;
步骤4、将编码标志二值化图像P2进行三次复制备份,分别得到第ζ组第1个备份二值化图像P′ζ,1、第ζ组第2个备份二值化图像P′ζ,2和第ζ组第3个备份二值化图像P′ζ,3,其中ζ为整数,且1≤ζ≤N;
步骤5、在上述拍摄的包含N个正六边形编码标志的图像中,选取图像左上角作为角点像素坐标系的原点o,自左向右为角点像素坐标系的x轴方向,自上向下作为角点像素坐标系的y轴方向,由此建立角点像素坐标系o_xy;
步骤6、利用六边形轮廓检测算法获取正六边形编码标志的6个特征角点的亚像素坐标C′ζ,i(x′ζ,i,y′ζ,i),其中i=1,2,3,4,5,6;
步骤7、在第ζ组第2个备份二值化图像P′ζ,2上,获得第ζ个正六边形编码标志的角点六边形Sζ;
步骤8、利用直线检测算法在第ζ组第3个备份二值化图像P′ζ,3上获取离第ζ个编码标志质心像素坐标值o″d,ζ(x″d,ζ,y″d,ζ)中最近的两条直线,把两条直线的交点记为指向特征角点并且将得到的第ζ个指向特征角点坐标作为指向特征角点集合∪的第ζ个元素;创建一幅和P′ζ,3尺寸相同且所有像素点的灰度值均为255的图像,并在上面画出获取到的两条直线,得到的图像记为第ζ个指向角点图像P″ζ,3;
步骤9、在第ζ组第2个备份二值化图像P′ζ,2上,根据指向特征角点经过计算处理得到第ζ个正六边形编码标志中的第1特征角点Cζ,1(xζ,1,yζ,1)、第2特征角点Cζ,2(xζ,2,yζ,2)、第3特征角点Cζ,3(xζ,3,yζ,3)、第4特征角点Cζ,4(xζ,4,yζ,4)、第5特征角点Cζ,5(xζ,5,yζ,5)、第6特征角点Cζ,6(xζ,6,yζ,6),完成第ζ个正六边形特征角点的排序;
步骤10、在第ζ组第2个备份二值化图像P′ζ,2上,根据得出的第ζ个正六边形编码标志中的第1特征角点Cζ,1(xζ,1,yζ,1)、第2特征角点Cζ,2(xζ,2,yζ,2)、第3特征角点Cζ,3(xζ,3,yζ,3)、第4特征角点Cζ,4(xζ,4,yζ,4)、第5特征角点Cζ,5(xζ,5,yζ,5)、第6特征角点Cζ,6(xζ,6,yζ,6)和编码标志质心o″d,ζ(x″d,ζ,y″d,ζ),进一步处理计算得到第ζ个正六边形编码标志的编码号Wζ;
步骤12、重复执行步骤4至步骤11,完成其余(N-1)个正六边形编码标志上6个特征角点各自的编号和对应的亚像素坐标值。
2.根据权利要求1所述的用于视觉定位的正六边形编码标志解码方法,其特征在于:在步骤6中,提取正六边形编码标志的6个特征角点的亚像素坐标C′ζ,i(x′ζ,i,y′ζ,i),具体方法包括以下步骤:
步骤6.1、对编码标志灰度图像P1再次进行复制备份,获得第ζ个备份灰度图像P″ζ;
步骤6.2、利用六边形轮廓检测算法在第ζ组第1个备份二值化图像P′ζ,1中提取6个角点的亚像素坐标,进而得到第ζ个无复杂背景六边形轮廓图像P″ζ,1;在所述第ζ个无复杂背景六边形轮廓图像P″ζ,1中,包含编码标志的6个备选特征角点C″ζ,1(x″ζ,1,y″ζ,1)、C″ζ,2(x″ζ,2,y″ζ,2)、C″ζ,3(x″ζ,3,y″ζ,3)、C″ζ,4(x″ζ,4,y″ζ,4)、C″ζ,5(x″ζ,5,y″ζ,5)、C″ζ,6(x″ζ,6,y″ζ,6),且六边形轮廓内部的所有像素点的灰度值被置为0,外部的所有像素点的灰度值被置为255;
步骤6.3、利用角点检测算法在第ζ个备份灰度图像P″ζ中提取所有角点的亚像素坐标并存入第ζ个初选角点亚像素坐标集合Bζ中,进而得到第ζ个初选角点图像P″′ζ;其中,第ζ个初选角点亚像素坐标集合Bζ中存放着第ζ个初选角点图像P″′ζ上包含六边形编码标志的6个特征角点亚像素坐标值和干扰角点的亚像素坐标值,所述干扰角点是除特征角点以外的干扰角点;
步骤6.4、取整数变量i并赋值i=1;
步骤6.5、在所述第ζ个初选角点亚像素坐标集合Bζ中寻找距离亚像素坐标值C″ζ,i(x″ζ,i,y″ζ,i)最近的角点亚像素坐标并记为C′ζ,i(x′ζ,i,y′ζ,i);
步骤6.6、判断i是否小于等于6,若i≤6,则将i+1赋值给i并返回执行步骤6.4;否则,此时正六边形编码标志的6个特征角点的亚像素坐标C′ζ,1(x′ζ,1,y′ζ,1)、C′ζ,2(x′ζ,2,y′ζ,2)、C′ζ,3(x′ζ,3,y′ζ,3)、C′ζ,4(x′ζ,4,y′ζ,4),C′ζ,5(x′ζ,5,y′ζ,5),C′ζ,6(x′ζ,6,y′ζ,6);
步骤6.7、在第ζ组第3个备份二值化图像P′ζ,3上画出正六边形编码标志的6个特征角点,得到角点图像P″ζ,3;所述角点图像P″ζ,3中六个特征角点所形成的六边形外部的所有像素点的灰度值被置为255,内部的所有像素点的灰度值保持不变。
3.根据权利要求1所述的一种用于视觉定位的正六边形编码标志解码方法,其特征在于:在步骤7中,获得包含正六边形编码标志质心坐标值o″d,ζ(x″d,ζ,y″d,ζ)的第ζ个正六边形编码标志的角点六边形Sζ的方法为:
步骤7.1、根据步骤6中得到的正六边形编码标志的6个特征角点亚像素坐标,由公式(1)和公式(2)计算出正六边形编码标志质心坐标值(x″d,ζ,y″d,ζ);
x″d,ζ=1/3×[1/2×(x'ζ,1+x'ζ,2+...x'ζ,6)] (1)
y″d,ζ=1/3×[1/2×(y'ζ,1+y'ζ,2+...y'ζ,6)] (2)
步骤7.2、在第ζ组第2个备份二值化图像P′ζ,2上,将包含质心像素坐标值o″d,ζ(x″d,ζ,y″d,ζ)的编码标志记为第ζ个正六边形编码标志;
步骤7.3、在第ζ组第2个备份二值化图像P′ζ,2上,分别选取亚像素坐标值C′ζ,1(x′ζ,1,y′ζ,1)、C′ζ,2(x′ζ,2,y′ζ,2)、C′ζ,3(x′ζ,3,y′ζ,3)、C′ζ,4(x′ζ,4,y′ζ,4),C′ζ,5(x′ζ,5,y′ζ,5),C′ζ,6(x′ζ,6,y′ζ,6)的6个像素点作为第ζ个正六边形编码标志的角点六边形Sζ的6个顶点,将6个顶点相连进而获得第ζ个正六边形编码标志的角点六边形Sζ。
4.根据权利要求1所述的一种用于视觉定位的正六边形编码标志解码方法,其特征在于:在步骤9中,完成第ζ个正六边形特征角点的排序的方法包括以下步骤:
步骤9.1、在第ζ组第2个备份二值化图像P′ζ,2上,把第ζ个正六边形编码标志的特征角点的亚像素坐标值为(x′ζ,1,y′ζ,1)、(x′ζ,2,y′ζ,2)、(x′ζ,3,y′ζ,3)、(x′ζ,4,y′ζ,4)、(x′ζ,5,y′ζ,5)、(x′ζ,6,y′ζ,6)的6个像素点分别记为C″′ζ,1(x″′ζ,1,y″′ζ,1)、C″′ζ,2(x″′ζ,2,y″′ζ,2)、C″′ζ,3(x″′ζ,3,y″′ζ,3)、C″′ζ,4(x″′ζ,4,y″′ζ,4)、C″′ζ,5(x″′ζ,5,y″′ζ,5)、C″′ζ,6(x″′ζ,6,y″′ζ,6);
步骤9.3、在第ζ组第2个备份二值化图像P′ζ,2上,通过公式(4)、(5)、(6)、(7)、(8)和(9)计算出在第ζ个正六边形编码标志中的第1判断向量第2判断向量第3判断向量第4判断向量第5判断向量和第6判断向量并根据式(10)计算出的余弦值cosαζ,j来判断出第1特征角点和第4特征角点,其中,j=1,2...6;
若0.95≤cosαζ,j≤1,则第j判断向量对应的像素点C″′ζ,j(x″′ζ,j,y″′ζ,j)记为第1特征角点,记为Cζ,1tem(xζ,1tem,yζ,1tem),则Cζ,1tem(xζ,1tem,yζ,1tem)为第ζ个正六边形编码标志中的第1特征角点,把Cζ,1tem(xζ,1tem,yζ,1tem)的亚像素坐标值赋值给Cζ,1(xζ,1,yζ,1);若-0.95≤cosαζ,j≤-1,则第j判断向量对应的像素点C″′ζ,j(x″′ζ,j,y″′ζ,j)记为第4特征角点,记为Cζ,4tem(xζ,4tem,yζ,4tem),则Cζ,4tem(xζ,4tem,yζ,4tem)为第ζ个正六边形编码标志中的第1特征角点,把Cζ,4tem(xζ,4tem,yζ,4tem)的亚像素坐标值赋值给Cζ,4(xζ,4,yζ,4);
步骤9.4、在第ζ组第2个备份二值化图像P′ζ,2上,找出剩余4个像素点中距离第1编码标志点像素坐标Cζ,1(xζ,1,yζ,1)最近的2个像素点,并分别记为Cζ,2tem(xζ,2tem,yζ,2tem)和Cζ,6tem(xζ,6tem,yζ,6tem);通过公式(11)、(12)和(13)计算出在第ζ个正六边形编码标志中的第7判断向量第8判断向量和第9判断向量并通过式(14)和式(15)计算出第2编码角点划分正弦值sinαζ和第6编码角点划分正弦值sinβζ;
若sinαζ<0,sinβζ>0,则Cζ,2tem(xζ,2tem,yζ,2tem)为第ζ个正六边形编码标志中的第2特征角点,把Cζ,2tem(xζ,2tem,yζ,2tem)的像素坐标值赋值给Cζ,2(xζ,2,yζ,2);Cζ,6tem(xζ,6tem,yζ,6tem)为第ζ个正六边形编码标志中的第6特征角点,把Cζ,6tem(xζ,6tem,yζ,6tem)的像素坐标值赋值给Cζ,6(xζ,6,yζ,6);
若sinαζ>0,sinβζ<0,则Cζ,2tem(xζ,2tem,yζ,2tem)为第ζ个正六边形编码标志中第6特征角点,把Cζ,2tem(xζ,2tem,yζ,2tem)的亚像素坐标值赋值给Cζ,6(xζ,6,yζ,6);Cζ,6tem(xζ,6tem,yζ,6tem)为第ζ个正六边形编码标志中第2特征角点,把Cζ,6tem(xζ,6tem,yζ,6tem)的亚像素坐标值赋值给Cζ,2(xζ,2,yζ,2);
步骤9.5、在第ζ组第2个备份二值化图像P′ζ,2上,找到剩余2个特征角点的序号:
记离Cζ,2(xζ,2,yζ,2)距离最远的特征角点为第5特征角点,记为Cζ,5tem(xζ,5tem,yζ,5tem),则Cζ,5tem(xζ,5tem,yζ,5tem)为第ζ个正六边形编码标志中的第5特征角点,把Cζ,5tem(xζ,5tem,yζ,5tem)的亚像素坐标值赋值给Cζ,5(xζ,5,yζ,5);记离Cζ,6(xζ,6,yζ,6)距离最远的特征角点为第3特征角点,记为Cζ,3tem(xζ,3tem,yζ,3tem),则Cζ,3tem(xζ,3tem,yζ,3tem)为第ζ个正六边形编码标志中的第3特征角点,把Cζ,5min(xζ,5min,yζ,5min)的亚像素坐标值赋值给Cζ,3(xζ,3,yζ,3);
至此,在第ζ组第2个备份二值化图像P′ζ,2上找到了第ζ个正六边形编码标志中第1特征角点Cζ,1(xζ,1,yζ,1)、第2特征角点Cζ,2(xζ,2,yζ,2)、第3特征角点Cζ,3(xζ,3,yζ,3)、第4特征角点Cζ,4(xζ,4,yζ,4)、第5特征角点Cζ,5(xζ,5,yζ,5)、第6特征角点Cζ,6(xζ,6,yζ,6)。
5.根据权利要求1所述的一种用于视觉定位的正六边形编码标志解码方法,其特征在于:步骤10中,在第ζ组第2个备份二值化图像P′ζ,2上,根据第ζ个正六边形编码标志中的编码标志质心和特征角点处理计算得到第ζ个正六边形编码标志的编码号Wζ的方法包括以下步骤:
步骤10.1、在第ζ组第2个备份二值化图像P′ζ,2上,第ζ个正六边形编码标志的角点六边形Sζ内部的所有像素点的灰度值保持不变,将第ζ个正六边形编码标志的角点六边形Sζ以外的所有像素点的灰度值赋值为255;
步骤10.2、在第ζ组第2个备份二值化图像P′ζ,2上,提取第ζ个正六边形编码标志的角点六边形Sζ中所有的内、外轮廓,记为第ζ个正六边形编码标志内的轮廓集合Dζ;
步骤10.3、根据第ζ个正六边形编码标志内的轮廓集合Dζ中,除去包含像素点数最多的两个轮廓,剩余轮廓个数κζ的大小分为如下情况:
情况1、若κζ==0,则执行步骤11;
步骤10.4、给整数变量i并赋予初值i=1;
步骤10.5、在第ζ组第2个备份二值化图像P′ζ,2上,计算编码标志圆轮廓的质心像素坐标将i+1重新赋值给i后继续执行此步骤,直到i>κζ结束;由此可以得到对应编码标志圆轮廓编码标志圆轮廓…、编码标志圆轮廓的质心像素坐标
步骤10.6、在第ζ组第2个备份二值化图像P′ζ,2上,根据得出的第ζ个正六边形编码标志中第j特征角点Cζ,j(xζ,j,yζ,j),分别连接第j特征角点Cζ,j(xζ,j,yζ,j)和编码标志质心o″d,ζ(x″d,ζ,y″d,ζ)得到线段Loi,其中j=1,2,3,4,5,6;
步骤10.7、在第ζ组第2个备份二值化图像P′ζ,2上,通过公式(16)和(17)分别计算出在第ζ个正六边形编码标志中的第i个判别向量和第ε个分辨向量并根据式(18)、(19)、(20)、(21)、(22)和(23)计算出的余弦值来判断出第ε个编码标志圆所在的对应线段Loi,其中,i=1,2...6,ε=1,2...κζ;
若则编码标志圆位于位于线段Lo1上;若则编码标志圆位于位于线段Lo2上;若则编码标志圆位于位于线段Lo3上;若则编码标志圆位于位于线段Lo4上;若则编码标志圆位于位于线段Lo5上;若则编码标志圆位于位于线段Lo6上;
步骤10.8、定义6个浮点型二维数组用于存放第ζ个正六边形编码标志中分别位于线段Loi上的编码标志圆轮廓质心在第ζ组第2个备份二值化图像P′ζ,2上的像素坐标,初始化这6个二维数组中的所有元素,且赋值为-1;其中i=1,2,3,4,5,6;
Wζ=Vζ T·U (24)
6.根据权利要求1所述的一种用于视觉定位的正六边形编码标志解码方法,其特征在于:步骤11中,第ζ个正六形编码标志中6个特征角点各自的编码号与其相应的亚像素坐标值的编号规则为:
记第ζ个正六边形编码标志上属于第σ特征角点的编码号为其中下脚标Wζ为特征角点所属编码标志的编码号,上角标σ的取值为特征角点的角点序号,其中,σ=1,2,3,4,5,6;则获得了第ζ个正六形编码标志中6个特征角点各自的编码号与其相应的亚像素坐标值:
7.一种用于权利要求1-6任意一项所述解码方法的正六边形编码标志,其特征在于:所述正六边形编码标志的6个顶点作为特征角点,在视觉结构光三维测量过程中,用于目标曲面的三维点云拼接;所述正六边形编码标志内含有指向图案和编码图案,其中编码图案又由多个编码单元图案组成,由指向图案可实现正六边形编码标志起始角点的判断,编码图案则是用于对正六边形编码标志中的每一个角点进行编码。
8.根据权利要求7所述的一种正六边形编码标志,其特征在于:所述正六边形编码标志为边长为a的正六边形,指向图案、编码图案均不重叠且不连通,指向图案为边长为β、弧长为ε的扇形,指向图案的质心和正六边形的质心为同一个点,所有编码单元图案为圆形。
9.根据权利要求8所述的一种正六边形编码标志,其特征在于:所述正六边形编码标志中,指向图案的周长小于6a,每个编码单元图案的轮廓长度均小于指向图案的轮廓长度。
10.根据权利要求7或8所述的一种正六边形编码标志,其特征在于:所述正六边形编码标志的背景颜色与指向图案的颜色具有明显差异,所有编码单元图案的颜色与正六边形编码标志的背景颜色相同或与指向图案的颜色相同。
11.根据权利要求7或8所述的一种正六边形编码标志,其特征在于:在所述正六边形编码标志中,指向图案和所有编码单元图案的面积大小满足如下关系:指向图案的面积大于编码单元图案的面积,各个编码单元图案的面积相同。
12.一种计算机可读存储介质,存储有与具有图像处理功能的电子设备结合使用的计算机程序,所述计算机程序可被处理器执行以实现权利要求1所述的解码方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210584704.2A CN115222828A (zh) | 2022-05-26 | 2022-05-26 | 用于视觉定位的正六边形编码标志解码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210584704.2A CN115222828A (zh) | 2022-05-26 | 2022-05-26 | 用于视觉定位的正六边形编码标志解码方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115222828A true CN115222828A (zh) | 2022-10-21 |
Family
ID=83608251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210584704.2A Pending CN115222828A (zh) | 2022-05-26 | 2022-05-26 | 用于视觉定位的正六边形编码标志解码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115222828A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628786A (zh) * | 2023-07-26 | 2023-08-22 | 中南大学 | 一种异形立体标志球制造方法 |
-
2022
- 2022-05-26 CN CN202210584704.2A patent/CN115222828A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116628786A (zh) * | 2023-07-26 | 2023-08-22 | 中南大学 | 一种异形立体标志球制造方法 |
CN116628786B (zh) * | 2023-07-26 | 2023-10-10 | 中南大学 | 一种异形立体标志球制造方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109215016B (zh) | 一种编码标志的识别定位方法 | |
CN108573511B (zh) | 点状分布合作编码标志及其识别定位方法 | |
CN110738273B (zh) | 图像特征点的匹配方法、装置、设备及存储介质 | |
CN111981982B (zh) | 一种基于加权sfm算法的多向合作靶标光学测量方法 | |
CN113129397B (zh) | 一种基于图形几何关系的平行四边形编码标志的解码方法 | |
CN113129385B (zh) | 基于空间中多编码平面靶标的双目摄像机内外参数标定方法 | |
CN113160329B (zh) | 用于摄像机标定的编码平面靶标及其解码方法 | |
CN113673410B (zh) | 人工标记的生成方法、识别方法、装置、设备、介质和程序 | |
CN113096191B (zh) | 基于编码平面靶标的单目摄像机智能标定方法 | |
CN115222828A (zh) | 用于视觉定位的正六边形编码标志解码方法 | |
CN115609591A (zh) | 一种基于2D Marker的视觉定位方法和***、复合机器人 | |
CN109186550B (zh) | 一种可编码近景摄影测量标志的编码解码与测量方法 | |
CN112257721A (zh) | 一种基于Fast ICP的图像目标区域匹配方法 | |
CN110570354B (zh) | 一种基于长条形棋盘格标定板的近景图像拼接方法 | |
CN115880373A (zh) | 基于新型编码特征的立体视觉***的标定板及标定方法 | |
CN113129386B (zh) | 基于编码平面靶标的双目摄像机内外参数的智能标定方法 | |
CN113129396B (zh) | 一种基于区域分割的平行四边形编码标志的解码方法 | |
CN113421311B (zh) | 一种正六边形编码标志及其编码方法 | |
CN113112549B (zh) | 一种基于编码立体靶标的单目摄像机快速标定方法 | |
CN113192143B (zh) | 一种用于摄像机快速标定的编码立体靶标及其解码方法 | |
CN113112550A (zh) | 一种用于摄像机内外参数标定的编码平面靶标及其编码方法 | |
CN108229625B (zh) | 一种编码方法及装置 | |
CN113129394B (zh) | 一种基于区域分割编码的平行四边形编码标志及其编码方法 | |
CN113188524B (zh) | 一种基于图形几何关系的平行四边形编码标志及其编码方法 | |
WO2022015297A1 (en) | Fiducial location |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |