标在柱面上的AR码的鲁棒识别方法技术

技术编号:14641895 阅读:136 留言:0更新日期:2017-02-15 16:18
本发明专利技术涉及一种标在柱面上的AR码的鲁棒识别方法,包括以下步骤:对AR码图像进行二值化,提取AR码二值化图像的轮廓,并将轮廓中的AR码区域图像进行摆正处理;对摆正的AR码区域进行弧形畸变检测并旋转,使凹弧边朝上,并将凹弧边拉直;利用局部自适应压缩算法将凸弧边拉直,得到一个轮廓为矩形的AR码区域;对AR码区域进行非线性划线识别。本发明专利技术解决了一些传统识别方法对AR码识别正确率不高以及当AR码产生弧形畸变的情况下无法正确识别的问题,提高了AR码识别的鲁棒性。

【技术实现步骤摘要】

本专利技术涉及一种AR码的识别方法,具体地说是一种标在柱面上的AR码的鲁棒识别方法
技术介绍
增强现实辅助维修技术将虚拟提示信息叠加到真实场景中,在复杂装备维修中为用户提供了直观灵活的操作提示,并可为那些不熟悉复杂装备检测维修的用户提供准确实时的维修帮助,对于缩短装备维护周期、提高维修效率、降低成本具有重要意义。应用于增强现实辅助维修系统的识别手段一般包括基于标识物的识别和基于自然特征的识别两种,而AR码是应用于增强现实系统的典型标识物,目前已获得广泛应用。但由于工业对象存在大量的柱面会导致平面AR码图像发生弧形畸变,限制了其应用范围。AR码是特殊定制的汉明码,也属于线性分组码的范畴。线性分组码的数据位和校验位个数之间满足以下关系:2r≥k+r+1其中:r为数据位,k为校验位。如5×5的AR码,每一行有2个数据位,用上式求得校验位的个数大于等于3。它们的位置分配为:第2、4位为数据位,第1、3、5位为校验位。在AR码的每一行中,数据位只有两位,能表示四种数据,因此5×5的AR码能表达4的5次方即1024个数字。对于5×5的AR码来说,其5行码组每一行都有一个纠错能力,因此有百分之二十的错码恢复能力,但是经典AR码由于没有确定方向的标识符或标示位,当读取到的AR码存在错误位时,即按不同方向读取时,经校验位纠错后可能识别出多个数据,无法确定正确的编码值。随着数据位和校验位的增多,虽然其纠错能力有所增加,但依然存在上述问题。常规的AR码识别过程是:将图像灰度化、二值化,提取AR码轮廓,将轮廓区域做透视变换,成为固定大小的区域,然后在该区域等间隔地划出行列线,形成一个方格矩阵,方格矩阵中的方格都是大小相等的正方形,通过读取每一个方格中的像素值,来判定每一个AR码所表示的数据。这样的读取方法只有在AR码是在一个平面上摆放平整并且用摄像头采集的图像遵循透视原理的情况下才能够有效识别,对于AR码的其他摆放情况(例如粘贴在一个非平面的圆柱面上),就会产生弧形畸变,则常规的AR码识别方法难以正确识别AR码所代表的编码值。
技术实现思路
本专利技术的目的是提供一种标在柱面上的AR码的鲁棒识别方法,以解决传统识别方法对此类AR码识别率低的问题。本专利技术是这样实现的:一种标在柱面上的AR码的鲁棒识别方法,包括以下步骤:1)采集标在柱面上的AR码,得到AR码区域图像I0。2)对AR码区域图像I0进行自适应阈值分割和形态学滤波,得到滤波后的二值化图像I1。3)检测滤波后的二值化图像I1的轮廓,在排除了图像中的非四个顶点、非凸四边形的轮廓和过小的轮廓之后,得到只含有AR码区域的轮廓,将只含有AR码区域轮廓以外的区域像素填充为代表“0”的纯黑色,做成遮罩图层,再将AR码区域图像I0拷贝进该遮罩图层中,得到只含有AR码区域的二值化图像I2。该图像中的AR码区域轮廓的四个顶点从左上角开始顺时针依次标记为c0、c1、c2、c3。4)对只含有AR码区域的二值化图像I2中的AR码区域轮廓进行摆正处理,具体方式是:4-1、以只含有AR码区域的二值化图像I2的左上角顶点为坐标原点,建立直角坐标系,求出连接c0点与c2点的直线L1以及连接c1点与c3点的直线L2,进而求出该两条直线的交点Q的坐标。4-2、求出只含有AR码区域的二值化图像I2中AR码区域轮廓的最佳外接矩形:以只含有AR码区域的二值化图像I2中AR码区域轮廓的四个顶点c0、c1、c2、c3中距离交点Q最远的一个点为基点,在该基点所在的直线上按以下条件求出距离该点为h像素的两个点:R=n×l(l≥10)R/n≤h≤3R/n其中,n为AR码总行数,l为AR码每一行的平均宽度,R为AR码的总宽度。4-3、将上述两点中距交点Q较远的一个点标记为A0,设A0点到交点Q的距离为L,求出直线L1和直线L2上距离交点Q为L的其余三个点的坐标,这三个点按逆时针方向分别标记为A1、A2、A3。连接A0、A1、A2、A3这四个点,构成一个矩形A。4-4、将矩形A透视变换到与该矩形面积相同的一个正方形区域中,具体方式是:以矩形A的A0、A1、A2、A3这四个点的坐标值构成透视变换前的矩阵,以与矩形A面积相等的正方形的四个角点A0’、A1’、A2’、A3’的坐标值构成透视变换后的矩阵,以透视变换前的矩阵和透视变换后的矩阵为变换参数,利用透视变换函数进行透视变换,从而得到AR码被摆正的二值化图像I3。5)对AR码被摆正的二值化图像I3中AR码区域轮廓是否存在弧形畸变和凹弧边进行检测,具体方式是:对AR码被摆正的二值化图像I3进行AR码区域轮廓检测,并以AR码被摆正的二值化图像I3的左上角为坐标原点,AR码区域轮廓的四个顶点自左上角开始,沿逆时针方向分别记做d0、d1、d2、d3,求出d0点与d3点连线的中点横坐标值x。自点(x,0)开始,从上往下扫描AR码被摆正的二值化图像I3上的像素,当扫描到像素值为0时,记下该点的纵坐标值y,将该点的y值与d0点和d3点的y值进行比较,若该点的y值大于d0点与d3点中y值的较大者,则判定d0点与d3点所对应的位于图像最上端的一条边是具有弧形畸变的凹弧边,位于图像最下端的一条边就是与该凹弧边相对应的凸弧边。若该点的y值小于d0点与d3点中y值的较小者,则判定d0点与d3点所对应的位于图像最上端的一条边不是凹弧边。之后,将AR码被摆正的二值化图像I3逆时针旋转90°,重复步骤5),继续进行AR码区域轮廓的检测。如果在旋转检测三次之后均未检测到AR码区域轮廓的凹弧边,则判定所采集到的AR码区域图像I0中的AR码没有发生弧形畸变,直接转到步骤8),对其进行非线性划线识别操作。6)对检测到有弧形畸变的AR码上的凹弧边进行拉直处理,具体方式是:将AR码被摆正的二值化图像I3上端凹弧边的两个顶点的纵坐标值中较小的y值记作TopY03,并作为凹弧边的上拉高度。自AR码被摆正的二值化图像I3的左边界到右边界,从上到下,以一个像素为步长,进行连续扫描。当扫描到像素值为0时,记下该点处的纵坐标值y,将该点处的y值标记为TopY,在此步长内的所有像素向上位移一个TopY03–TopY的距离。遍历整个AR码被摆正的二值化图像I3后,AR码区域轮廓的凹弧边即被拉直,得到AR码凹弧边被拉直的二值化图像I4。7)对AR码凹弧边被拉直的二值化图像I4中的凸弧边进行拉直处理,具体方式是:自AR码凹弧边被拉直的二值化图像I4的左边界到右边界,从下到上,以一个像素为步长,进行连续扫描。当扫描到像素值为0时,记下该点处的纵坐标值y,并与步骤6)中的TopY03做差,得到每一像素列的一个高度值,记做M。而AR码被摆正的二值化图像I3中AR码区域轮廓中的d1点和d2点的纵坐标值中较小的y值记做S,利用以下计算公式:M-S=kM/k=pMmodp=0对AR码凹弧边被拉直的图像I4按照单位像素步长,使用上述计算公式确定被抽掉的点,并进行像素抽取,同时将后面的所有像素上移填补间隙。遍历整个AR码凹弧边被拉直的图像I4后,该图像中的凸弧边即被拉直,得到一个轮廓为矩形的修正的二值化图像I5。8)对修正的二值化图像I5进行非线性划线识别处理,具体方式是:8-1、提取修正的二值化图像I5中的AR码区域轮廓,并对AR码区域轮廓本文档来自技高网
...
标在柱面上的AR码的鲁棒识别方法

【技术保护点】
一种标在柱面上的AR码的鲁棒识别方法,其特征是,包括以下步骤:1)采集标在柱面上的AR码,得到AR码区域图像I0;2)对AR码区域图像I0进行自适应阈值分割和形态学滤波,得到滤波后的二值化图像I1;3)检测滤波后的二值化图像I1的轮廓,在排除了图像中的非四个顶点、非凸四边形的轮廓和过小的轮廓之后,得到只含有AR码区域的轮廓,将只含有AR码区域轮廓以外的区域像素填充为代表“0”的纯黑色,做成遮罩图层,再将AR码区域图像I0拷贝进该遮罩图层中,得到只含有AR码区域的二值化图像I2;该图像中的AR码区域轮廓的四个顶点从左上角开始顺时针依次标记为c0、c1、c2、c3;4)对只含有AR码区域的二值化图像I2中的AR码区域轮廓进行摆正处理,具体方式是:4‑1、以只含有AR码区域的二值化图像I2的左上角顶点为坐标原点,建立直角坐标系,求出连接c0点与c2点的直线L1以及连接c1点与c3点的直线L2,进而求出该两条直线的交点Q的坐标;4‑2、求出只含有AR码区域的二值化图像I2中AR码区域轮廓的最佳外接矩形:以只含有AR码区域的二值化图像I2中AR码区域轮廓的四个顶点c0、c1、c2、c3中距离交点Q最远的一个点为基点,在该基点所在的直线上按以下条件求出距离该点为h像素的两个点:R=n×l(l≥10)R/n≤h≤3R/n其中,n为AR码总行数,l为AR码每一行的平均宽度,R为AR码的总宽度;4‑3、将上述两点中距交点Q较远的一个点标记为A0,设A0点到交点Q的距离为L,求出直线L1和直线L2上距离交点Q为L的其余三个点的坐标,这三个点按逆时针方向分别标记为A1、A2、A3;连接A0、A1、A2、A3这四个点,构成一个矩形A;4‑4、将矩形A透视变换到与该矩形面积相同的一个正方形区域中,具体方式是:以矩形A的A0、A1、A2、A3这四个点的坐标值构成透视变换前的矩阵,以与矩形A面积相等的正方形的四个角点A0’、A1’、A2’、A3’的坐标值构成透视变换后的矩阵,以透视变换前的矩阵和透视变换后的矩阵为变换参数,利用透视变换函数进行透视变换,从而得到AR码被摆正的二值化图像I3;5)对AR码被摆正的二值化图像I3中AR码区域轮廓是否存在弧形畸变和凹弧边进行检测,具体方式是:对AR码被摆正的二值化图像I3进行AR码区域轮廓检测,并以AR码被摆正的二值化图像I3的左上角为坐标原点,AR码区域轮廓的四个顶点自左上角开始,沿逆时针方向分别记做d0、d1、d2、d3,求出d0点与d3点连线的中点横坐标值x;自点(x,0)开始,从上往下扫描AR码被摆正的二值化图像I3上的像素,当扫描到像素值为0时,记下该点的纵坐标值y,将该点的y值与d0点和d3点的y值进行比较,若该点的y值大于d0点与d3点中y值的较大者,则判定d0点与d3点所对应的位于图像最上端的一条边是具有弧形畸变的凹弧边,位于图像最下端的一条边就是与该凹弧边相对应的凸弧边;若该点的y值小于d0点与d3点中y值的较小者,则判定d0点与d3点所对应的位于图像最上端的一条边不是凹弧边;之后,将AR码被摆正的二值化图像I3逆时针旋转90°,重复步骤5),继续进行AR码区域轮廓的检测;如果在旋转检测三次之后均未检测到AR码区域轮廓的凹弧边,则判定所采集到的AR码区域图像I0中的AR码没有发生弧形畸变,直接转到步骤8),对其进行非线性划线识别操作;6)对检测到有弧形畸变的AR码上的凹弧边进行拉直处理,具体方式是:将AR码被摆正的二值化图像I3上端凹弧边的两个顶点的纵坐标值中较小的y值记作TopY03,并作为凹弧边的上拉高度;自AR码被摆正的二值化图像I3的左边界到右边界,从上到下,以一个像素为步长,进行连续扫描;当扫描到像素值为0时,记下该点处的纵坐标值y,将该点处的y值标记为TopY,在此步长内的所有像素向上位移一个TopY03–TopY的距离;遍历整个AR码被摆正的二值化图像I3后,AR码区域轮廓的凹弧边即被拉直,得到AR码凹弧边被拉直的二值化图像I4;7)对AR码凹弧边被拉直的二值化图像I4中的凸弧边进行拉直处理,具体方式是:自AR码凹弧边被拉直的二值化图像I4的左边界到右边界,从下到上,以一个像素为步长,进行连续扫描;当扫描到像素值为0时,记下该点处的纵坐标值y,并与步骤6)中的TopY03做差,得到每一像素列的一个高度值,记做M;而AR码被摆正的二值化图像I3中AR码区域轮廓中的d1点和d2点的纵坐标值中较小的y值记做S,利用以下计算公式:M‑S=kM/k=pM mod p=0对AR码凹弧边被拉直的图像I4按照单位像素步长,使用上述计算公式确定被抽掉的点,并进行像素抽取,同时将后面的所有像素上移填补间隙;遍历整个AR码凹弧边被拉直的图像I4后,该图像中的凸弧边即被拉直,得到一个轮廓为矩形的修正的二值化...

【技术特征摘要】
1.一种标在柱面上的AR码的鲁棒识别方法,其特征是,包括以下步骤:1)采集标在柱面上的AR码,得到AR码区域图像I0;2)对AR码区域图像I0进行自适应阈值分割和形态学滤波,得到滤波后的二值化图像I1;3)检测滤波后的二值化图像I1的轮廓,在排除了图像中的非四个顶点、非凸四边形的轮廓和过小的轮廓之后,得到只含有AR码区域的轮廓,将只含有AR码区域轮廓以外的区域像素填充为代表“0”的纯黑色,做成遮罩图层,再将AR码区域图像I0拷贝进该遮罩图层中,得到只含有AR码区域的二值化图像I2;该图像中的AR码区域轮廓的四个顶点从左上角开始顺时针依次标记为c0、c1、c2、c3;4)对只含有AR码区域的二值化图像I2中的AR码区域轮廓进行摆正处理,具体方式是:4-1、以只含有AR码区域的二值化图像I2的左上角顶点为坐标原点,建立直角坐标系,求出连接c0点与c2点的直线L1以及连接c1点与c3点的直线L2,进而求出该两条直线的交点Q的坐标;4-2、求出只含有AR码区域的二值化图像I2中AR码区域轮廓的最佳外接矩形:以只含有AR码区域的二值化图像I2中AR码区域轮廓的四个顶点c0、c1、c2、c3中距离交点Q最远的一个点为基点,在该基点所在的直线上按以下条件求出距离该点为h像素的两个点:R=n×l(l≥10)R/n≤h≤3R/n其中,n为AR码总行数,l为AR码每一行的平均宽度,R为AR码的总宽度;4-3、将上述两点中距交点Q较远的一个点标记为A0,设A0点到交点Q的距离为L,求出直线L1和直线L2上距离交点Q为L的其余三个点的坐标,这三个点按逆时针方向分别标记为A1、A2、A3;连接A0、A1、A2、A3这四个点,构成一个矩形A;4-4、将矩形A透视变换到与该矩形面积相同的一个正方形区域中,具体方式是:以矩形A的A0、A1、A2、A3这四个点的坐标值构成透视变换前的矩阵,以与矩形A面积相等的正方形的四个角点A0’、A1’、A2’、A3’的坐标值构成透视变换后的矩阵,以透视变换前的矩阵和透视变换后的矩阵为变换参数,利用透视变换函数进行透视变换,从而得到AR码被摆正的二值化图像I3;5)对AR码被摆正的二值化图像I3中AR码区域轮廓是否存在弧形畸变和凹弧边进行检测,具体方式是:对AR码被摆正的二值化图像I3进行AR码区域轮廓检测,并以AR码被摆正的二值化图像I3的左上角为坐标原点,AR码区域轮廓的四个顶点自左上角开始,沿逆时针方向分别记做d0、d1、d2、d3,求出d0点与d3点连线的中点横坐标值x;自点(x,0)开始,从上往下扫描AR码被摆正的二值化图像I3上的像素,当扫描到像素值为0时,记下该点的纵坐标值y,将该点的y值与d0点和d3点的y值进行比较,若该点的y值大于d0点与d3点中y值的较大者,则判定d0点与d3点所对应的位于图像最上端的一条边是具有弧形畸变的凹弧边,位于图像最下端的一条边就是与该凹弧边相对应的凸弧边;若该点的y值小于d0点与d3点中y值的较小者,则判定d0点与d3点所对应的位于图像最上端的一条边不是凹弧边;之后,将AR码被摆正的二值化图像I3逆时针旋转90°,重复步骤5),继续进行AR码区域轮廓的检测;如果在旋转检测三次之后均未检测到AR码区域轮廓的凹弧边,则判定所采集到的AR码区域图像I0中的AR码没有发生弧形畸变,直接转到步骤8),对其进行非线性划线识别操作;6)对检测到有弧形畸变的AR码上的凹弧边进行拉直处理,具体方式是:将AR码被摆正的二值化图像I3上端凹弧边的两个顶点的纵坐标值中较小的y值记作TopY03,并作为凹弧边的上拉高度;自AR码被摆正的二值化图像I3的左边界到右边界,从上到下,以一个像素为步长,进行连续扫描;当扫描到像素值为0时,记下该点处的纵坐标值y,将该点处的y值标记为TopY,在此步长内的所有像素向上位移一个TopY03–TopY的距离;遍历整个AR码被摆正的二值化图像I3后,AR码区域轮廓的凹弧边即被拉直,得到AR码凹弧边被拉直的二值化图像I4;7)对AR码凹弧边被拉直的二值化图像I4中的凸弧边进行拉直处理,具体方式是:自AR码凹弧边被拉直的二值化图像I4的左边界到右边界,从下到上,以一个像素为步长,进行连续扫描;当扫描到像素值为0时,记下该点处的纵坐标值y,并与步骤6)中的TopY03做差,得到每一像素列的一个高度值,记做M;而AR码被摆正的二值化图像I3中AR码区域轮廓中的d1点和d2点的纵坐标值中较小的y值记做S,利用以下计算公式:M-S=kM/k=pMmodp=0对AR码凹弧边被拉直的图像I4按照单位像素步长,使用上述计算公式确定被抽掉的点,并进行像素抽取,同时将后面的所有像素上移填补间隙;遍历整个AR码凹弧边被拉直的图像I4后,该图像中的凸弧边即被拉直,得到一个轮廓为矩形的修正的二值化图像I5;8)对修正的二值化图像I5进行非线性划线识别处理,具体方式是:8-1、提取修正的二值化图像I5中的AR码区域轮廓,并对AR码区域轮廓内的区域进行透视变换,透视变换方式为:以提取到的AR码区域轮廓的四个顶点坐标值为透视变换前的矩阵,以R×R像素大小的正方形空白图像的四个角点坐标值为透视变换后的矩阵,利用透视变换函数,以透视变换前的矩阵和透视变换后的矩阵为变换参数,利用透视变换函数进行透视变换,得到一个R×R像素大小的、完全被AR码填充的二值化图像I6;其中,R为AR码的总宽度,其取值为:R=n×l(l≥10);式中,n为AR码的总行数,l为AR码每一行的平均宽度;8-2、扫描被AR码填充的二值化图像I6中AR码的最上面一行和最下面一行,得到AR码最上面一行的宽度值Y1和最下面一行的宽度值Y2,AR码最上面一行对应的行数记为X1,AR码最下面一行对应的行数为记为X2;若Y1–R/n<Y2–R/n,则记Xmin=X1,否则Xmin=X2;将Y1、X1、X2、Y2代入以下公式中:Y1=aX12+bX1+cY2=aX22+bX2+c2aXmin+b=0求出参数a、b、c,构造抛物线方程:Y=aX2+bX+c8-3、将AR码的总行数为X值,代入所构造的抛物线方程中,求得每一行的宽度值Yn,在被AR码填充的二值化图像I6上,按照对应的宽度进行划线;在水平方向重复步骤8-2,构造关于水平方向划分的抛物线方程,得到每一列的间隔并划线;由此得到n×n个矩形;8-4、统计上述矩形中每个矩形内的像素值为0的个数,如果矩形中的灰度值为0的像素的数量大于该矩形总像素数的一半,则判定该矩形区域表示的信息为0,否则为1;统计完所有矩形区域后,即得到一个n×n的二进制矩阵;8-5、对所得到的n×n的二进制矩阵的数据区域进行解码,即得到该AR码的编码值。2.一种标在柱面上的改进AR码的鲁棒识别方法,其特征是,包括以下步骤:1)在AR码中加入定位标志位,具体方式是:1-1、在n×n的AR码数据区的上沿加入一个数据位的一行定位标志位,在AR码数据区的左侧加入一个数据位的一列定位标志位,行定位标志位与列定位标志位在左上角形成一个重叠标志位,由此形成一个(n+1)×(n+1)的分辨区域;1-2、在行定位标志位上从左至右加入按1010顺序排布的行定位标识符,在列定位标志位上从上至下加入按1010顺序排布的列定位标识符,在左上...

【专利技术属性】
技术研发人员:王伟明孙一杰杨萌何亚轩张勇闫德立靳邵云佀明华
申请(专利权)人:石家庄铁道大学
类型:发明
国别省市:河北;13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1