一种基于多目视觉的标记点定位方法
2022-10-31赵晓伟李德江
马 礼,赵晓伟,李德江*
(1.中国地质大学(北京)信息工程学院,北京 100083;2.黑龙江省测绘科学研究所,黑龙江 哈尔滨 150081)
视觉定位技术[1-3]是智能机器人自主导航的关键技术之一,在各类工程中具有迫切的需求和广阔的应用价值。基于计算机视觉的目标定位是近年来发展起来的一种定位方法[4],是利用视觉传器获取物体图像,然后用计算机进行图像处理,进而获得物体的位置信息。现有的室内定位技术[5-7],测量方法大多受测量精度或室内信号强度的限制,无法真正满足现代化生产对高精度、大尺寸三维整体现场测试技术需求,因此,多目视觉方法[8-10]应运而生。多目视觉定位技术不依赖于内置信源和天然信源,不受信源信号强弱的影响,并且具有非接触、自动化、效率高等优点,具有很高的实用价值[11]。本文基于摄影测量与机器视觉理论,提出一种基于多目视觉的标记点定位方法,最后通过实验验证了本研究算法的正确性和有效性,同时对本研究识别的椭圆误差来源进行了有效的分析。本研究能够为相关室内定位技术以及标志点提取算法提供有价值的参考。
1 环形编码标记点设计与识别
1.1 编码标志点设计
本文采用的环形编码标志具有结构简单、提取容易、识别方便、精度高且稳定等特点。标志设计采用代表性的Schneider[12]等设计的环状编码方式:二进制编码原理。编码带上每个位置都可以作为二进制的一位,再换算为十进制,作为该编码标志的编码数,使每个编码标志都有唯一的数字与之相对应。本文采用8位编码带环形编码(CCT),并将编码设计为对称形状,便于识别。编码带8等分,每个单元之间相隔45°,白色为1,黑色为0,以任意单元为起点,组成的编码环带对应的最小8位二进制数,就是该编码标号。按此方法,设计以下易于识别的编码标志点,如图1所示。
图1 编码标志点
1.2 编码标志点识别
本研究环形编码标记点提取主要分为2个步骤:
1)检测图片中的所有图斑,并筛选出可能为编码标志的中心圆。本文采用一种基于梯度和位置的椭圆检测函数,对原图进行初步检测和筛选,以找到编码标志点中心圆可能存在的区域,从而减小基于梯度和位置检测椭圆的检测范围。首先将图像基于Otsu算法[18]二值化,然后利用以轮廓为基础的椭圆检测函数检测图中所有可能的椭圆。
2)进行多次椭圆筛选。筛选出圆形在可接受倾角范围(45°)内的投影长短轴之比范围为1~1.6内的椭圆,剔除2个圆心距离小于两个圆中大圆半径的大圆,剔除椭圆周围连通域过小或者不存在连通域的椭圆,即不符合编码标志形态的椭圆剔除。最后对筛选出的可能的编码标志点中心圆进行以梯度为基础的椭圆检测,确定所有编码标志点的中心圆,并精确计算出其坐标。首先以经过第一步筛选的椭圆为中心,截取其周围的一个矩形区域,作为椭圆检测的目标区域,再将基于梯度的椭圆检测函数中的感兴趣区域设为该矩形区域,以此类推,对所有目标区域进行椭圆检测。
1.3 编码标志点的解码
解码过程可以分为以下几步:
1)以中心圆的圆心为中心裁剪一个能覆盖编码标志点的小图像,对小图像进行轮廓提取得到每个白色区域轮廓的质心(编码环的质心),从而得到“1”的个数。
2)计算所有编码环的质心与中心圆的质心连线间的夹角,并且将这些夹角除以45°取整,从而得到“0”的个数。
3)将“1”和“0”组成的8位二进制数循环移位得到编码值。将相机采集到的图像中编码值相同的点对应起来,对CCT椭圆区域进行仿射变换将其变为正圆。
4)得到仿射变换矩阵,计算仿射变换后的中心点坐标,该坐标可以视为CCT中心坐标,得到CCT的3个半径,8位编码,转45圈,每圈加一度,360°/N,以N为标准在2.5倍的圆环上均匀采样,每一圈得到的编码都转换为最小编码,调用解码函数,二进制数转换为最小整数,进行解码。
2 基于多目视觉的物体识别
2.1 基于梯度与位置的椭圆检测算法
首先对图像进行预处理,在复杂的图像信息中提取出边缘特征。使用Otsu阈值分割算法[13]对图像进行二值化,二值化后的图像进行轮廓提取,Roberts[14]边缘提取方法,返回所有轮廓点,方便后面做筛选。将边缘提取细化后得到的二值图像作为椭圆识别的基础输入数据。
由椭圆方程ax2+2bxy+cy2+2dx+2yf+1=0可知,至少需要5个方程才能够解算出所有参数。传统的随机Hough变换[15]椭圆检测方法是基于边缘点位置,随机选取椭圆上5个点以上求解椭圆方程,但是必须保证该5个点来自同一椭圆,否则会采样到虚假椭圆,采样无效,运算效率较低。而三点椭圆检测方法[16]会同时考虑到3个点的位置和梯度,基于两点位置和梯度来确定一组椭圆,由第三点位置来椭圆组中确定一椭圆,梯度信息验证这三点是否是同一椭圆。因为这种验证机制,采样有效性大大提高。但是随机噪音和图像像素化的影响,该方法在计算椭圆中心存在较大的误差,且多椭圆检测效率较低。本研究将结合2种椭圆检测方法,设计同时基于梯度与位置来确定椭圆的算法,具体算法如下:
随机选取N个点(N≥3),设这N个点的坐标为(xi,yi)。i=1,2,3,4,…,N,代入椭圆方程得:
由此,可利用N个点的坐标有N个方程。然后基于N个点梯度信息构建方程组,fi为N个点中任意pi(xi,yi)处灰度值。
而椭圆方程的切线方向为:
因为梯度方向垂直于切线方向可得:
将式(6)代入式(5),并将(xi,yi)的坐标代入,可得:
这样利用梯度信息也得到了N个方程。联立式(4)和(7),便可利用最小二乘法得到椭圆方程的系数。椭圆的中心点坐标(x0,y0)为:
长轴平方a2为:
长轴平方b2为:
沿逆时针方向从x轴正方向旋转到椭圆长轴的角度θ为:
2.2 算法测实验
首先布设标记点,用手机拍摄照片,导入本文的标记点识别系统,先对图片进行灰度化和Otsu二值化处理,使标记点在图片中更突出地显示。接下来,根据编码标志点的识别算法步骤对编码标志点进行椭圆检测与识别。本文采用的中心圆识别算法中,圆形可接的倾角范围为45°,长短半轴之比在0~1.6。当相机同时拍摄2个相互垂直的平面时,这2个平面的45°相交平面互相平行。因此,此场景必须采用至少3个视角拍摄才能实现。此拍摄场景光线较暗,Otsu阈值设置较低(为70),拍摄距离为0.5 m左右,成像时椭圆比场景大,相应地,将最小像素设置为30。依据上述实验步骤,分别在0.5 m、1 m、2 m不同距离下进行3次拍摄测试,图2~5为距离0.5 m下的测试过程图。
为了进一步验证本研究算法在复杂的室内环境下的有效性和精确性,随机选取室内比较复杂的场景(电脑办公桌)。同样,此场景采用3视角拍摄Otsu阈值设置为60,拍摄距离为0.5 m左右,最小像素设置为30。依据上述测试实验步骤,在0.5 m距离下进行3次拍摄测试,图6为该测试下的过程图。
图6 椭圆检测结果和标记点编码
以测试1为例,表1为测试1的检测标记点编码及解算的中心圆圆心坐标。
表1 检测标记点编码及其中心圆圆心坐标
结合图2~6和表1可以看出,采用本文提出的室内多目视觉标记点定位算法,无需人工,能够提高工作效率,且提取率较高。无论是单物体还是相对复杂的室内环境,均可实现环形编码标记点的快速定位,快速的计算出检测标记点编码及其中心圆圆心坐标。
图2 编码标志点成像
图3 Otsu阈值分割二值化成像
图4 识别的环形编码带
图5 椭圆检测结果和标记点编码
3 标记点定位结果分析
实现编码标志点的自动提取的主要目的是提高自动提取与定位的效率和精度,从而提高识别与定位效率。本文从精度提取率和误差等方面对上述实验结果进行分析。采用手动椭圆提取为基于轮廓的椭圆中心检测,在同一椭圆尺寸、同一噪声水平下进行测试。
3.1 精度验证
将本文算法提取的圆心坐标与手动提取的圆心坐标进行对比,定量分析坐标提取的精度,如表2所示。
表2 提取圆心坐标误差分析
表2中,在拍摄距离为0.5 m时,x、y坐标平均误差分别为0.019 5和0.021 5;中误差为0.021 1和0.015 4,为0.01~0.02像素级别。由于实验材料有限,共有6个编码点,其中成功识别6个,成功率为100%,识别成功率高,可以初步验证本算法的稳定性。此外还进行了另外30组实验,提取率稳定在90%以上。
3.2 误差分析
本研究在同一椭圆、同一噪声水平条件下,此算法的精度表现与拍摄距离有关。如图7所示,当拍摄距离为0.5 m、1 m、1.5 m、2 m、3 m时,中心圆圆心坐标提取中误差按照0.01~0.04像素左右依次递增。
图7 拍摄距离与像素误差
从图7可知,拍摄距离越小,环形编码标记点在图像中成像越大,中心圆圆心坐标提取误差越小,算法精度表现越好,拍摄距离与中心圆圆心坐标提取中误差呈现正相关关系。
本研究在实验过程中,发现拍摄角度为0°时,即相机镜头和标记点图像相互平行时,椭圆的识别率最高。而当二者的角度大于45°时,环形编码标记点中心圆投影椭圆变形过大,程序无法识别。为进一步探讨二者的关系,本研究将拍摄倾斜角度做按照0°~45°,间隔为1°进行拍摄实验,检测椭圆识别率,如图8所示。
图8 拍摄角度与椭圆识别率
从图8可知,拍摄角度越大,环形编码标记点中心圆投影椭圆的识别率越低,这样势必导致中心圆圆心坐标提取误差越大,算法精度表现越差,拍摄角度与中心圆圆心坐标提取中误差呈现负相关关系。对于此类标记点,可以采取调整相机位置或增加视觉点进行拍摄后再次识别的方法来改善。
室内光照的强弱同样对椭圆检测率有一定的干扰,也是误差的来源之一,但是因为实验条件限制,无法对光照进行定量计算。结合本研究的实验经验来看,室内光照越强,椭圆识别效果越差。这是因为光照会导致灰度化后的图像中亮图斑多,易被系统识别为编码中心圆。第二个原因是在二次椭圆筛选,计算平均椭圆大小时会将非椭圆图斑的面积计算在内,导致最终识别结果出现误差。
4 结论
针对多目视觉定位技术,本文主要对标志点视觉定位和环形编码标志点的设计、检测和识别等技术进行研究,利用基于梯度和位置的椭圆检测算法进行实验,最后做出精度验证和误差分析。
1)本文编码标记点采用8位编码带环状编码的设计,此类编码标记点具有结构简单、提取容易、识别方便、精度高且稳定等优点。
2)在标记点提取中最重要的步骤为椭圆识别,本文采用了一种基于梯度与位置的椭圆检测方法,并在筛选出可能的椭圆图斑后进行多次筛选,保证提取椭圆的准确度。
3)采用本文提出的室内多目视觉标记点提取算法,提取率较高,并且速度较快,能够大大提高工作效率,实现环形编码标记点快速定位;环形编码标记点自动提取获取的圆心坐标与标记点实际圆心坐标之间的中误差均分布在0.05像素以下,说明算法精度较高。