CN104933387B - 一种基于二维码解码的快速定位识别的方法 - Google Patents
一种基于二维码解码的快速定位识别的方法 Download PDFInfo
- Publication number
- CN104933387B CN104933387B CN201510350263.XA CN201510350263A CN104933387B CN 104933387 B CN104933387 B CN 104933387B CN 201510350263 A CN201510350263 A CN 201510350263A CN 104933387 B CN104933387 B CN 104933387B
- Authority
- CN
- China
- Prior art keywords
- quick response
- response code
- black
- coordinate
- image
- 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.)
- Active
Links
Abstract
本发明属于二维码识别技术领域,提供了一种基于二维码解码的快速定位识别的方法,包括:对整幅图像做中值滤波处理;对图像做扫描,判断图像是否存在二维码,若存在,则取得二维码区域坐标;截取二维码图像;做自适应二值化处理;对黑色像素点做连通域处理;筛选出4个边界;从图像的坐标系转换到二维码的坐标系;二维码在新坐标系下进行投影,获得二维码的方向性、实边界长度和坐标、黑白方块的重心坐标;判断黑白方块的灰度值,获取二维码信息矩阵;取得解码信息。本发明能够适应各种工况,对比度高、抗干扰能力强,投入成本低,仅需一套工业相机和光源即可完成自动定位和识别的功能,工作效率快,最大程度的满足流水线的生产需求。
Description
技术领域
本发明属于二维码识别技术领域,特别涉及一种基于二维码解码的快速定位识别的方法。
背景技术
现今社会,二维码技术日益成熟,被广泛的应用在各行各业。因此,制造业生管系统以及仓储管理系统的自动化解决方案将要面对愈来愈多的关于二维码自动定位识别的问题。
目前,大部分制造业生产线对于产品二维码的扫描还是采用传统人工的方式,然而每个环节都要检验是否存在不良品,并将不良品信息通过扫描二维码的方式传入生管系统,如果通过人工完成检验不良品的过程将会增加大量的人力成本;即便采用自动化方案,一般的自动化厂商所给出的设计方案也是以改进机械设计为主,即增加导向和定位装置,继而再加装自动识别二维码模块,但是此种方案安装有定位装置,占用大量流水时间进而会降低生产效率;完全不影响生产效率可以依靠自动定位识别二维码的工业自动化系统,但是成本过于昂贵。
在自动化仓储管理系统中,自动导引车AGV占据了极其重要的一环,目前市场上主流AGV是通过磁条、彩条、激光等实现AGV的自动导航,这些导航方式所能够提供的信息主要是AGV与路线的偏转角度以及AGV在某标志点处进行何种动作,很少可以提供AGV在整个工作空间之内的具体坐标,即便少数AGV可以提供,但是存储信息偏少,工作空间越大,就越不可能反馈有效的实时方位坐标。
因此,二维码识别技术领域急需一种基于二维码解码的快速定位识别的方法,与其配套的二维码能够适应各种工况,对比度高、抗干扰能力强,投入成本低,仅需一套工业相机和光源即可完成自动定位和识别的功能,工作效率快,每秒可以处理60张图片,最大程度的满足流水线的生产需求。
发明内容
本发明为了解决物品滞留在海关,无法即时发出的问题,针对其仓储系统提供了一种基于二维码解码的快速定位识别的方法,技术方案如下:
一种基于二维码解码的快速定位识别的方法,包括如下步骤:
步骤一,对工业相机取得的整幅图像做中值滤波处理,减少干扰噪点的影响度;
步骤二,对图像分别做横向和纵向扫描,判断当前图像是否存在二维码,若存在,则取得二维码在图像中的区域坐标,执行步骤三,若不存在,则结束本次操作;
步骤三,从整幅图像中截取二维码图像;
步骤四,将二维码图像做自适应二值化处理;
步骤五,以白色像素点为背景,对黑色像素点做连通域处理;
步骤六,过滤所有的连通域,筛选出4个边界;
步骤七,将二维码图像从基于图像的坐标系转换到基于二维码的坐标系;
步骤八,二维码分别在新坐标系下沿着x轴和y轴进行投影,获得二维码的方向性以及取得二维码实边界的长度和坐标;
步骤九,获取二维码所有黑、白方块的重心坐标;
步骤十,判断黑、白方块的灰度值,进而获取整个二维码信息矩阵;
步骤十一,将二维码信息矩阵代入二维码解码模块通过二维码编码规则分析二维码信息矩阵,取得解码信息。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,步骤二的具体操作步骤为:特制的二维码周围有规则的分布四条狭长边界,每条扫描线穿过二维码区域必然会符合一个条件,以横向扫描为例,首先穿过黑色边界AB,其次穿过中间的条码区,最后穿过另一条黑色边界CD;A、B、C、D四个点在整条扫描线中属于和相邻点对比灰度值变化最大的一类点,|AB| 和 |CD| 的长度相近或相等,而且在整条扫描线中A、B点率先出现,C、D点最后出现,竖向扫描与横向扫描原则相同;根据此二维码特征原则,可以判断出图像分别做横向和纵向扫描时,扫描完毕后通过判断符合特征的扫描线数量来确认当前图像中有无二维码存在;若存在,则取得二维码在图像中的坐标位置,即保存A点和D点的坐标,用于确认二维码在整幅图像中的位置。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,步骤五中对黑色像素点做连通域处理的具体步骤为:将所有能够通过相邻黑色像素点依次连接在一起的黑色像素点归为一个连通域。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,二维码图像包括4个边界在内的连通域个数大于等于5个。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,步骤六的具体步骤为:
首先,在系统调试阶段取得4个边界各自黑色像素点的数量,计算得出每个边界黑色像素点数量的平均值为pixCount,进而设置4个边界黑色像素点的数量阈值为pixCount;然后统计每个连通域的黑色像素点数量,并依次与pixCount对比,保留黑色像素点数量与pixCount相近的连通域;
进一步地,在系统调试阶段取得4个边界各自的特征值,计算得出每个边界特征值的平均值为k,进而设置4个边界的特征值阈值为k,对保留下来的连通域做奇异值分解运算SVD,将剩余连通域各自的特征值依次与k值对比,即可筛选出最接近二维码四个边界的连通域;
最后,在系统调试阶段取得4个边界各自的重心X、Y坐标,4个重心能够组成一个正方形,取得该正方形的边长为shortLen和对角线长度为longLen;计算筛选出的连通域的重心X、Y坐标,如果一个连通域的重心能够与其它3个连通域的重心一起组成一个四边形,将该四边形的边长与对角线长度分别与shortLen值、longLen值对比,若均为相近值,则表明4个边界被筛选出来;否则筛选下一个连通域,直至全部筛选完成。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,步骤七的具体步骤为:
首先,建立基于图像的坐标系XOY,设平行的2条边界在基于图像的坐标系内的重心坐标分别为(X0,Y0)、(X1,Y1);
进一步地,计算二维码偏转角度,具体公式为:angle=atan2(Y1-Y0,X1-X0),angle表示二维码偏转角度;
进一步地,在靠近二维码边界区域选择点o(ox1,oy1),此时o点的坐标是基于图像坐标系XOY下,通过公式转换o点的坐标;
ox=ox1×cos(angle)- oy1×sin(angle);
oy=ox1×sin(angle)+ oy1×cos(angle);
进一步地,通过以下公式转换二维码区域所有像素点的坐标,建设基于二维码的坐标系xoy;
x=X×cos(angle)- Y×sin(angle)-ox;
y=X×sin(angle)+ Y×cos(angle)-oy。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,步骤八的具体步骤为:
首先,在基于二维码xoy坐标系下,将不包含4个边界的二维码区域图像分别向x、y方向做投影,投影柱最高的部分是二维码的实边部分,进而判断出二维码的方向性;
进一步地,利用投影结果取得xoy坐标系下二维码实边界长度和黑白块的宽度以及实边界交点坐标。
优选的,在上述一种基于二维码解码的快速定位识别的方法中,步骤九的具体步骤为:
首先,根据步骤八中求出的二维码实边界长度和黑白块的宽度以及实边界交点坐标,依次推断正方形其余三点的坐标;
进一步地,连接做出2条扫描线,每条扫描线均穿过虚边界的黑方块和白方块,确定每个方块的重心坐标;
进一步地,校验取得的方块重心坐标是否有效,统计扫描线上的黑、白方块信息,确定灰度值,若为255,则该点所在的方块为白色方块;若为0,则该点所在的方块为黑色方块,查看点各自所在方块是否是黑白间隔排列,即二维码的一个独特特征是虚边界黑白方块依次间隔排列,若符合则表明二维码虚边界每个黑、白方块重心坐标获取成功,否则失败退出;
进一步地,将2条扫描线上的所有黑、白方块重心坐标进行交叉组合,得到整个二维码所有黑白方块的重心坐标。
步骤十,判断黑、白方块的灰度值,进而获取整个二维码信息矩阵,具体步骤为:
通过步骤九中的重心点查找到对应的信息块,取得当前信息块的颜色值,设黑色二维码信息块数值为1,白色为0,得出二维码的信息矩阵。
本发明的有益效果:
1、二维码采用覆膜防水处理,可重复清洁,能够适应各种工况环境。
2、二维码背景为白色,二维码码块和边界为黑色,与背景相比对比度的程度最高。
3、二维码周边存在特制的四个边界,通过步骤一去除噪点影响,步骤二对图像做横纵扫描查找四个边界来判断当前图像是否存在有效的二维码,极大提高了抗干扰能力。
4、本发明能够运行在可编程工业相机内,外加一套光源即可完成扫描处理并将结果传出,系统运行在自制的基于DSP的工业相机上极大的降低了成本。
5、本发明能够处理低分辨率图像(320×240),通过步骤三从整幅图像上截取二维码区域图像,步骤三之后的所有步骤都是针对二维码区域图像处理,极大减少了运算量,提高了工作效率。
附图说明
下面结合附图和具体实施方式来详细说明本发明:
图1为一种基于二维码解码的快速定位识别的方法的流程图。
图2为横向纵向搜寻二维码边界示意图。
图3为二维码坐标系转换示意图。
图4为二维码分别向X、Y坐标方向投影的示意图。
图5为获取二维码黑白方块重心坐标示意图。
图6为M1至M10以及N1至N10在xoy坐标系下的坐标图。
具体实施方式
为了使本发明技术实现的措施、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
图1为一种基于二维码解码的快速定位识别的方法的流程图。
如图1所示,一种基于二维码解码的快速定位识别的方法,包括如下步骤:
步骤一,对工业相机取得的整幅图像做中值滤波处理,减少干扰噪点的影响度;
步骤二,对图像分别做横向和纵向扫描,判断当前图像是否存在二维码,若存在,则取得二维码在图像中的区域坐标,执行步骤三,若不存在,则结束本次操作,具体操作步骤为:
图2为横向纵向搜寻二维码边界示意图,如图2所示,特制的二维码周围有规则的分布四条狭长边界,每条扫描线穿过二维码区域必然会符合一个条件,以横向扫描为例,首先穿过黑色边界AB,其次穿过中间的条码区,最后穿过另一条黑色边界CD;A、B、C、D四个点在整条扫描线中属于和相邻点对比灰度值变化最大的一类点,|AB| 和 |CD| 的长度相近或相等,而且在整条扫描线中A、B点率先出现,C、D点最后出现,竖向扫描与横向扫描原则相同;根据此二维码特征原则,可以判断出图像分别做横向和纵向扫描时,扫描完毕后通过判断符合特征的扫描线数量来确认当前图像中有无二维码存在;若存在,则取得二维码在图像中的坐标位置,即保存A点和D点的坐标,用于确认二维码在整幅图像中的位置;
步骤三,从整幅图像中截取二维码图像;
步骤四,将二维码图像做自适应二值化处理;
步骤五,以白色像素点为背景,将所有能够通过相邻黑色像素点依次连接在一起的黑色像素点归为一个连通域;
步骤六,过滤所有的连通域,筛选出4个边界,具体步骤为:
首先,在系统调试阶段取得4个边界各自黑色像素点的数量,计算得出每个边界黑色像素点数量的平均值为pixCount,进而设置4个边界黑色像素点的数量阈值为pixCount;然后统计每个连通域的像素点数量,并依次与pixCount对比,保留像素点数量与pixCount相近的连通域;
进一步地,在系统调试阶段取得4个边界各自的特征值,计算得出每个边界特征值的平均值为k,进而设置4个边界的特征值阈值为k,对保留下来的连通域做奇异值分解运算SVD,将剩余连通域各自的特征值依次与k值对比,即可筛选出最接近二维码四个边界的连通域;
最后,在系统调试阶段取得4个边界各自的重心X、Y坐标,4个重心能够组成一个正方形,取得该正方形的边长为shortLen和对角线长度为longLen;计算筛选出的连通域的重心X、Y坐标,如果一个连通域的重心能够与其它3个连通域的重心一起组成一个四边形,将该四边形的边长与对角线长度分别与shortLen值、longLen值对比,若均为相近值,则表明4个边界被筛选出来;否则筛选下一个连通域,直至全部筛选完成;
二维码图像包括4个边界在内的连通域个数大于等于5个,经过筛选仅保留代表边界的4个连通域;
步骤七,将二维码图像从基于图像的坐标系转换到基于二维码的坐标系,具体步骤为:
图3为二维码坐标系转换示意图,如图3所示,首先,建立基于图像的坐标系XOY,设平行的2条边界在基于图像的坐标系内的重心坐标分别为(X0,Y0)、(X1,Y1);
进一步地,计算二维码相对于XOY坐标系的偏转角度,具体公式为:angle=atan2(Y1-Y0,X1-X0),angle表示二维码偏转角度;
进一步地,在靠近二维码边界区域选择2个边界的交点o(ox1,oy1),此时o点的坐标是基于图像坐标系XOY下,通过公式转换o点的坐标;
ox=ox1×cos(angle)- oy1×sin(angle);
oy=ox1×sin(angle)+ oy1×cos(angle);
进一步地,通过以下公式转换二维码区域所有像素点的坐标,建设以o为原点,基于二维码的坐标系xoy,x、y与X、Y的关系为:
x=X×cos(angle)- Y×sin(angle)-ox;
y=X×sin(angle)+ Y×cos(angle)-oy;
步骤八,二维码分别在新坐标系下沿着x轴和y轴进行投影,获得二维码的方向性以及取得是二维码实边界的长度、实边交叉坐标、黑白块的宽度,具体步骤为:
图4为二维码分别向X、Y坐标方向投影的示意图,如图4所示,首先,在基于二维码xoy坐标系下,将不包含4个边界的二维码区域图像分别向x、y方向做投影,投影柱最高的部分是二维码的实边部分,进而判断出二维码的方向性,即二维码的左边界和下边界均为实边界,依此规则判断二维码的上、下、左、右4个方向;
进一步地,利用投影结果取得xoy坐标系下二维码实边界长度len(图4)和黑白块的宽度wid(图4)以及实边界交点坐标P0(图5);
步骤九,获取二维码所有黑、白方块的重心坐标,具体步骤为:
图5为获取二维码黑白方块重心坐标示意图,如图5所示,首先,根据步骤八中求出的二维码实边界长度len(图4)和黑白块的宽度wid(图4)以及实边界交点坐标P0(图5),依次推断正方形其余三点的坐标;
若P0点坐标为(px,py),则其它三点的坐标为,
P1(px,(py+len-wid)),P2((px+len-wid),(py+len-wid)),P3((px+len-wid),py);
进一步地,二维码的大小为len/wid,那么图5中的M系列点和N系列点的坐标为:
M1((px+wid×1),(py+len-wid)),…… M10((px+wid×10),(py+len-wid)),得出M系列的点y坐标相同,x坐标依次加wid,
N1((px+len-wid),(py-wid×1)),…… N10((px+len-wid),(py-wid×10)),得出N系列的点x坐标相同,y坐标依次减wid;
进一步地,连接做出2条扫描线,即一条线穿过点P1和点P2,另一条线穿过点P2和点P3,每条扫描线均穿过虚边界的黑方块和白方块,确定每个方块的重心坐标;
进一步地,校验取得的方块重心坐标是否有效,统计扫描线上的黑、白方块信息,确定M系列点和N系列点的灰度值,若为255则该点所在的方块为白色方块,若为0则该点所在的方块为黑色方块,查看M系列和N系列点各自所在方块是否是黑白间隔排列,因为DM码一个独特特征是虚边界黑白方块依次间隔排列,若符合则表明二维码虚边界每个黑、白方块重心坐标获取成功,即M系列点和N系列点均为有效点,否则失败退出;
进一步地,将2条扫描线上的所有黑、白方块重心坐标进行交叉组合,得到整个二维码所有黑、白方块的重心坐标;
图6为M1至M10以及N1至N10在xoy坐标系下的坐标图,如图6所示,M1(x1,y0),N10(x11,y10),线JN10与线JM1的交点为J,则点J的坐标为(x1,y10),同理,点P的坐标为(x2,y5),点G的坐标为(x10,y1)。从图6可看出二维码虚边界方块重心点M1至M10、点N10至N1,分别包含了二维码信息方块的所有x坐标和y坐标,如图所示横坐标x1至x10,纵坐标y1至y10组成100个坐标点,点J、P、G即为其中的三个点,此100个点是二维码所有信息方块(已扣除DM码实边界和虚边界)的重心点。
通过虚边界黑白方块重心点的x、y坐标交叉组合,则得到二维码所有黑白方块的重心坐标。
步骤十,判断黑、白方块的灰度值,进而获取整个二维码信息矩阵,具体步骤为:
通过步骤九中的重心点查找到对应的信息块,取得当前信息块的颜色值,设黑色二维码信息块数值为1,白色为0,得出如下表的矩阵:
步骤十一,将二维码信息矩阵代入二维码解码模块通过二维码编码规则分析二维码信息矩阵,取得解码信息。
自动化仓储物流系统中,二维码可以用作地标为AGV提供导航信息以及反馈AGV在整个仓库中的具体位置。那么结合本算法作为具体实施例进行分析:
(1)设置初始参数:
AGV车载相机镜头距离地面的距离是基本不变的,因此在搭建调试该系统时就可以读取图像分析当前参数的具体数值,设置适合当前高度的参数,注:单位为像素。
在本实例中,镜头距离地面二维码的高度为18cm,则当前高度下,
二维码的四个边界宽度|AB|=|CD|=6;
四个边界的重心组成正方形,则边长shortLen=80,longLen=113;
四个边界各自组成一个连通域,每个连通域的面积pixCount=1300,每个连通域经过SVD奇异值分解运算后得到的特征值k=221;
二维码的实边界长度len=60,每个黑白方块的宽度为wid=5;
本实例的二维码存储的坐标信息是(5,1),存储信息少,二维码的大小为12×12,此大小也可经 len/wid 计算得出;
(2)设置好初始参数后,将工业相机拍摄的图片代入本算法:
步骤一,对整幅图像做中值滤波处理,达到减少干扰噪点的目的,因为直接调用IMGLIB库函数,所以耗时极短;
步骤二,从上到下对图像做横向扫描,每条横向扫描线均是先从左向右找到A点和B点,再从右向左找到C点和D点,且|AB|=|CD|,若二维码存在角度倾斜,则|AB|>6,如果此时符合以下条件4<|AB|<12且4<|CD|<12且|AB|=|CD|则判定此条横向扫描线是有效的 。
从左到右对图像做纵向扫描,每条纵向扫描线均是先从上向下找到A点和B点,再从下向上找到C点和D点,且|AB|=|CD|,若二维码存在角度倾斜,则|AB|>=6,如果此时符合以下条件4<|AB|<12且4<|CD|<12且|AB|=|CD|则判定此条纵向扫描线是有效的 。
若有效的横向扫描线和有效的纵向扫描线数量均大于30,则判定当前图像存在二维码,遍历所有横向扫描线和纵向扫描线,从所有扫描线A点和D点中找到最小的x、y坐标和最大的x、y坐标,通过最小和最大的x、y坐标可判定当前图像中二维码的所在区域。否则,此图像中不包含二维码,退出程序,重新读入下一张图像。本实例二维码偏转角度小,故|AB|=|CD|=6,并且有效的横向扫描线数量为46,有效的纵向扫描线数量为48,有效的横纵扫描线数量均大于30,表明实例图像存在二维码。
步骤三,从整幅图像中截取二维码图像,步骤二取得的最小x、y大小均减10,最大的x、y大小均加10,这样截取的图像即可将整个二维码包含;
步骤四,将二维码图像做自适应二值化处理;
步骤五,以白色像素点为背景,将所有能够通过相邻黑色像素点依次连接在一起的黑色像素点归为一个连通域,如实例图存在14个连通域,4个边界各自均为一个单独的连通域;
步骤六,过滤所有的连通域,筛选出4个边界,上图可看出代表四个边界的四个连通域均为长条状,所以很容易判断出哪个连通域是代表边界的连通域。
首先,每个连通域的像素点数量,依次与pixCount对比,保留像素点数量与pixCount相近的连通域,其它的过滤掉。实例图中包含的14个连通域,仅代表边界的4个连通域像素点数量各自与pixCount相比差值不超过30,其它均超过300,因此,实例图仅通过第一次过滤就得出了符合像素点数量条件的四个连通域;
进一步地,对保留下来的连通域做奇异值分解运算SVD,取得相应的特征值,并依次与k值对比,即可筛选出最接近二维码四个边界的连通域。实例图经过第一次过滤保留下来的4个连通域,其各自的特征值与k值相比差值不超过20,因此,第二次过滤就得出了符合特征值条件的四个连通域;
最后,计算筛选出连通域的重心X、Y坐标,如果一个连通域的重心能够与其它三个联通域的重心一起组成一个四边形,将该四边形的边长与对角线长度分别与shortLen值、longLen值对比,若均为相近值,则表明4个边界被筛选出来;否则筛选下一个连通域,直至全部筛选完成。实例图经过前两次过滤保留下来的4个连通域,其各自重心点组成的四边形边长和对角线与shortLen值、longLen值对比,差值不超过6。因此,实例图中经过三次筛选保留下来4个连通域,实例图中的四个边界即被筛选出来。
步骤七,将二维码图像从基于图像的坐标系转换到基于二维码的坐标系,
首先,建立基于图像的坐标系XOY,实例图中平行的2条边界在基于图像的坐标系内的重心坐标分别为(98,43)、(99,157);
进一步地,计算二维码偏转角度,具体公式为:angle=atan2(114,1),angle=89.497,表示二维码偏转角度;
进一步地,在靠近二维码边界区域选择点o(55,60),此时o点的坐标是基于图像坐标系XOY下,通过公式转换o点的坐标,
ox=55×cos(angle)- 60×sin(angle),ox=-59.516;
oy=55×sin(angle)+ 60×cos(angle),oy=55.524;
进一步地,通过以下公式转换二维码区域所有像素点的坐标,建设基于二维码的坐标系xoy,
x=X×cos(angle)- Y×sin(angle)-ox;
y=X×sin(angle)+ Y×cos(angle)-oy;
表明建立以o点为原点的新坐标系xoy;
进一步地,将不包含4个边界的二维码区域图像坐标从XOY坐标系转换到xoy坐标系下即可;
步骤八,二维码分别在新坐标系下沿着x轴和y轴进行投影,获得二维码的方向性以及取得是二维码实边界的长度、实边交叉坐标、黑白块的宽度
首先,将在基于二维码xoy坐标系下,将实例图中不包含4个边界的二维码区域图像分别向x、y方向做投影,投影柱最高的部分是二维码的实边部分,得出实例图中的二维码实边界靠左方和上方,因此二维码整个的方向性顺时针偏转了90度;
进一步地,利用投影结果取得xoy坐标系下二维码实边界长度len=60和黑白块的宽度wid=5以及实边界交点坐标P0(68,72);
步骤九,获取二维码所有黑、白方块的重心坐标,
首先,根据步骤八中求出的二维码实边界长度len和黑白块的宽度wid以及实边界交点坐标P0,依次推断正方形其余三点的坐标;
若P0点坐标为(68,72),则其它三点的坐标为:
P1(68,127),P2(123,127),P3(123,72);
实例图中二维码大小为len/wid,即当前二维码是大小为12×12的二维码,那么图5中的M系列点和N系列点的坐标为:
实例图中P0点坐标为(68,72),即px=68,py=72,len=60,wid=5,M1((px+wid×1),(py+len-wid)),…… M10((px+wid×10),(py+len-wid)),M系列的点y坐标相同,x坐标依次加wid,N1((px+len-wid),(py-wid×1)),…… N10((px+len-wid),(py-wid×10)),N系列的点x坐标相同,y坐标依次减wid,通过此公式可以得到实例图中虚边界黑白方块的重心坐标。
进一步地,连接做出2条扫描线,即一条线穿过点P1和点P2,另一条线穿过点P2和点P3,每条扫描线均穿过虚边界的黑方块和白方块;
进一步地,校验取得的方块重心坐标是否有效,统计扫描线上的黑、白方块信息,确定M系列点和N系列点的灰度值,若为255则该点所在的方块为白色方块,若为0则该点所在的方块为黑色方块,查看M系列和N系列点各自所在方块是否是黑白间隔排列(即二维码一个独特特征是虚边界黑白方块依次间隔排列),若符合则表明二维码虚边界每个黑、白方块重心坐标获取成功,即M系列点和N系列点均为有效点,否则失败退出。
进一步地,将2条扫描线上的所有黑、白方块重心坐标进行交叉组合,得到整个二维码所有黑白方块的重心坐标;
通过对实例图二维码虚边界黑白方块重心点的x、y坐标交叉组合,则得到实例图二维码所有黑白方块的重心坐标。
步骤十,判断黑、白方块的灰度值,进而获取整个二维码信息矩阵,通过步骤九得到了实例图中所有黑白方块的重心坐标,根据坐标取得当前信息块的颜色值,设黑色二维码信息块数值为1,白色为0,得出0、1排列的矩阵:
步骤十一,将二维码信息矩阵代入二维码解码模块通过二维码编码规则分析二维码信息矩阵,取得解码信息。本实例中图的解码结果为“5,1”,表明AGV当前所处位置是以整个仓库作为XOY坐标系的(5,1)坐标上。
二维码采用覆膜防水处理,可重复清洁,能够适应各种工况环境。
二维码背景为白色,二维码码块和边界为黑色,与背景相比对比度的程度最高。
由于二维码周边存在特制的四个边界,通过步骤一去除噪点影响,步骤二对图像做横纵扫描查找四个边界来判断当前图像是否存在有效的二维码,极大提高了抗干扰能力。
本发明能够运行在可编程工业相机内,外加一套光源即可完成扫描处理并将结果传出,系统运行在自制的基于DSP的工业相机上极大的降低了成本。
本发明能够处理低分辨率图像(320×240),通过步骤三从整幅图像上截取二维码区域图像,步骤三之后的所有步骤都是针对二维码区域图像处理,极大减少了运算量,提高了工作效率。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
Claims (8)
1.一种基于二维码解码的快速定位识别的方法,其特征在于,包括如下步骤:
步骤一,对工业相机取得的整幅图像做中值滤波处理,减少干扰噪点的影响度;
步骤二,对图像分别做横向和纵向扫描,判断当前图像是否存在二维码,若存在,则取得二维码在图像中的区域坐标,执行步骤三,若不存在,则结束本次操作;
具体操作步骤为:特制的二维码周围有规则的分布四条狭长边界,每条扫描线穿过二维码区域必然会符合一个条件,以横向扫描为例,首先穿过黑色边界AB,其次穿过中间的条码区,最后穿过另一条黑色边界CD;A、B、C、D四个点在整条扫描线中属于和相邻点对比灰度值变化最大的一类点,|AB|和|CD|的长度相近或相等,而且在整条扫描线中A、B点率先出现,C、D点最后出现,竖向扫描与横向扫描原则相同;根据此二维码特征原则,可以判断出图像分别做横向和纵向扫描时,扫描完毕后通过判断符合特征的扫描线数量来确认当前图像中有无二维码存在;若存在,则取得二维码在图像中的坐标位置,即保存A点和D点的坐标,用于确认二维码在整幅图像中的位置;
所述步骤三,从整幅图像中截取二维码图像;
步骤四,将二维码图像做自适应二值化处理;
步骤五,以白色像素点为背景,对黑色像素点做连通域处理;
步骤六,过滤所有的连通域,筛选出4个边界;
步骤七,将二维码图像从基于图像的坐标系转换到基于二维码的坐标系;
步骤八,二维码分别在新坐标系下沿着x轴和y轴进行投影,获得二维码的方向性以及取得是二维码实边界的长度和坐标;
步骤九,获取二维码所有黑、白方块的重心坐标;
步骤十,判断黑、白方块的灰度值,进而获取整个二维码信息矩阵;
步骤十一,将二维码信息矩阵代入二维码解码模块通过二维码编码规则分析二维码信息矩阵,取得解码信息。
2.根据权利要求1所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述步骤五中对黑色像素点做连通域处理的具体步骤为:将所有能够通过相邻黑色像素点依次连接在一起的黑色像素点归为一个连通域。
3.根据权利要求2所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述二维码图像包括4个边界在内的连通域个数大于等于5个。
4.根据权利要求2所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述步骤六的具体步骤为:
首先,在系统调试阶段取得4个边界各自黑色像素点的数量,计算得出每个边界黑色像素点数量的平均值为pixCount,进而设置4个边界黑色像素点的数量阈值为pixCount;然后统计每个连通域的像素点数量,并依次与pixCount对比,保留像素点数量与pixCount相近的连通域;
进一步地,在系统调试阶段取得4个边界各自的特征值,计算得出每个边界特征值的平均值为k,进而设置4个边界的特征值阈值为k,对保留下来的连通域做奇异值分解运算SVD,将剩余连通域各自的特征值依次与k值对比,即可筛选出最接近二维码四个边界的连通域;
最后,计算筛选出的连通域的重心X、Y坐标,4个重心能够组成一个正方形,取得该正方形的边长为shortLen和对角线长度为longLen;如果一个连通域的重心能够与其它3个连通域的重心一起组成一个四边形,将该四边形的边长与对角线长度分别与shortLen值、longLen值对比,若均为相近值,则表明4个边界被筛选出来;否则筛选下一个连通域,直至全部筛选完成。
5.根据权利要求4所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述步骤七的具体步骤为:
首先,建立基于图像的坐标系XOY,设平行的2条边界在基于图像的坐标系内的重心坐标分别为(X0,Y0)、(X1,Y1);
进一步地,计算二维码偏转角度,具体公式为:angle=atan2(Y1-Y0,X1-X0),angle表示二维码偏转角度;
进一步地,在靠近二维码边界区域选择点o(ox1,oy1),此时o点的坐标是基于图像坐标系XOY下,通过公式转换o点的坐标;
ox=ox1×cos(angle)-oy1×sin(angle);
oy=ox1×sin(angle)+oy1×cos(angle);
进一步地,通过以下公式转换二维码区域所有像素点的坐标,建设基于二维码的坐标系xoy;
x=X×cos(angle)-Y×sin(angle)-ox;
y=X×sin(angle)+Y×cos(angle)-oy。
6.根据权利要求5所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述步骤八的具体步骤为:
首先,在基于二维码xoy坐标系下,将不包含4个边界的二维码区域图像分别向x、y方向做投影,投影柱最高的部分是二维码的实边部分,进而判断出二维码的方向性;
进一步地,利用投影结果取得xoy坐标系下二维码实边界长度和黑白块的宽度以及实边界交点坐标。
7.根据权利要求6所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述步骤九的具体步骤为:
首先,根据所述步骤八中求出的二维码实边界长度和黑白块的宽度以及实边界交点坐标,依次推断正方形其余三点的坐标;
进一步地,连接做出2条扫描线,每条扫描线均穿过虚边界的黑方块和白方块,确定每个方块的重心坐标;
进一步地,校验取得的方块重心坐标是否有效,统计扫描线上的黑、白方块信息,确定灰度值,若为255,则该点所在的方块为白色方块;若为0,则该点所在的方块为黑色方块,查看点各自所在方块是否是黑白间隔排列,即二维码的一个独特特征是虚边界黑白方块依次间隔排列,若符合则表明二维码虚边界每个黑、白方块重心坐标获取成功,否则失败退出;
进一步地,将2条扫描线上的所有黑、白方块重心坐标进行交叉组合,得到整个二维码所有黑白方块的重心坐标。
8.根据权利要求7所述的一种基于二维码解码的快速定位识别的方法,其特征在于,所述步骤十,判断黑、白方块的灰度值,进而获取整个二维码信息矩阵,具体步骤为:
通过所述步骤九中的重心点查找到对应的信息块,取得当前信息块的颜色值,设黑色二维码信息块数值为1,白色为0,得出二维码的信息矩阵。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510350263.XA CN104933387B (zh) | 2015-06-24 | 2015-06-24 | 一种基于二维码解码的快速定位识别的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510350263.XA CN104933387B (zh) | 2015-06-24 | 2015-06-24 | 一种基于二维码解码的快速定位识别的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104933387A CN104933387A (zh) | 2015-09-23 |
CN104933387B true CN104933387B (zh) | 2017-05-17 |
Family
ID=54120548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510350263.XA Active CN104933387B (zh) | 2015-06-24 | 2015-06-24 | 一种基于二维码解码的快速定位识别的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104933387B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404843B (zh) * | 2015-12-08 | 2018-05-25 | 深圳市福云明网络科技有限公司 | 无屏摄像机获取信息方法、二维码生成方法及识别方法 |
CN105437251B (zh) * | 2016-01-04 | 2017-07-18 | 杭州亚美利嘉科技有限公司 | 一种定位机器人位置的方法及装置 |
CN106370185A (zh) * | 2016-08-31 | 2017-02-01 | 北京翰宁智能科技有限责任公司 | 基于地面基准标识的移动机器人定位方法和系统 |
CN108121982B (zh) * | 2016-11-30 | 2020-02-07 | 杭州海康机器人技术有限公司 | 面单图像的获取方法及装置 |
CN106650873B (zh) * | 2016-12-21 | 2020-05-22 | 深圳若步智能科技有限公司 | 一种识别码、自动引导车的快速导航方法及系统 |
CN108254386B (zh) * | 2016-12-29 | 2021-09-10 | 研祥智能科技股份有限公司 | 一种一维码在线检测方法、装置及系统 |
CN106708051B (zh) * | 2017-01-10 | 2023-04-18 | 北京极智嘉科技股份有限公司 | 基于二维码的导航系统和方法、导航标记物及导航控制器 |
CN106919883B (zh) * | 2017-02-28 | 2020-04-03 | 浙江华睿科技有限公司 | 一种qr码的定位方法及装置 |
CN107301366B (zh) * | 2017-05-12 | 2020-07-31 | 赵毅 | 一种嵌码视频中图形码的解码方法及装置 |
CN107239814B (zh) * | 2017-06-07 | 2020-02-21 | 上海觉感视觉科技有限公司 | 一种融合logo图标的堆叠式二维码的识别方法 |
CN107392078B (zh) | 2017-06-14 | 2019-03-19 | 深圳市百富智能新技术有限公司 | 多角度扫描的方法、终端设备及计算机可读存储介质 |
CN107423653B (zh) * | 2017-07-06 | 2021-06-08 | 上海动联信息技术股份有限公司 | 一种二维码预处理方法、系统及解码方法 |
CN107451508A (zh) * | 2017-09-20 | 2017-12-08 | 天津通信广播集团有限公司 | 一种自定义二维码定位和定向系统及实现方法 |
CN108345816A (zh) * | 2018-01-29 | 2018-07-31 | 广州中大微电子有限公司 | 一种在光照不均匀下的二维码提取方法及系统 |
CN109753838A (zh) * | 2018-12-12 | 2019-05-14 | 深圳市三宝创新智能有限公司 | 二维码识别方法、装置、计算机设备及存储介质 |
CN109886058B (zh) * | 2019-01-03 | 2021-07-13 | 青岛海信移动通信技术股份有限公司 | 一种检测图像的方法和设备 |
CN109785353B (zh) * | 2019-01-15 | 2020-12-08 | 佛山市顺德区中山大学研究院 | 一种二维码的二次遍历二值化方法、装置和存储介质 |
CN110096920B (zh) * | 2019-04-22 | 2022-05-17 | 浙江大学滨海产业技术研究院 | 一种面向视觉伺服的高精度高速定位标签和定位方法 |
CN110245536B (zh) * | 2019-05-09 | 2024-02-27 | 深圳盈达信息科技有限公司 | 条码识别方法 |
CN110222549B (zh) * | 2019-06-05 | 2022-04-01 | 广东旭龙物联科技股份有限公司 | 一种变步长的快速二维码定位方法 |
CN110659529B (zh) * | 2019-09-03 | 2023-06-02 | 珠海市杰理科技股份有限公司 | 条形码识别方法、装置、计算机设备和存储介质 |
CN110827357B (zh) * | 2019-09-30 | 2024-03-29 | 深圳市安思疆科技有限公司 | 一种组合图案标定板以及结构光相机参数标定方法 |
CN110879593A (zh) * | 2019-11-11 | 2020-03-13 | 江苏理工学院 | 一种定位方法、读取方法、定位系统及定位装置 |
CN111337011A (zh) * | 2019-12-10 | 2020-06-26 | 亿嘉和科技股份有限公司 | 一种基于激光和二维码融合的室内定位方法 |
TWI764069B (zh) * | 2019-12-19 | 2022-05-11 | 財團法人工業技術研究院 | 自動導引車定位系統及其操作方法 |
CN111208828B (zh) * | 2020-02-20 | 2021-07-06 | 苏州亿尔奇信息科技有限公司 | 一种新型agv二维码导航系统及其应用 |
CN112414225A (zh) * | 2020-11-13 | 2021-02-26 | 中国船舶重工集团公司第七0七研究所 | 一种二维码和圆形编码盘相结合的靶标及其识别方法 |
CN112364964B (zh) * | 2020-11-23 | 2024-04-19 | 广东塔斯克机器人有限公司 | 二维码、二维码生成方法及其解码方法 |
CN112254722B (zh) * | 2020-12-21 | 2021-05-11 | 之江实验室 | 一种基于qr码和惯性导航融合的车辆定位方法 |
CN112733567B (zh) * | 2021-01-15 | 2023-12-12 | 深圳市豪恩汽车电子装备股份有限公司 | 机动车二维码识别方法、装置及计算机可读存储介质 |
CN112926715B (zh) * | 2021-03-23 | 2024-02-02 | 支付宝(中国)网络技术有限公司 | 一种二维码生成、解码方法、装置及设备 |
CN113705268B (zh) * | 2021-08-30 | 2023-08-15 | 山东大学 | 一种二维码定位方法及系统 |
CN114492496B (zh) * | 2022-01-20 | 2023-04-14 | 三维码(厦门)网络科技有限公司 | 一种点阵码快速识读方法、设备和存储介质 |
CN116151290B (zh) * | 2023-02-21 | 2023-10-24 | 广州玺明机械科技有限公司 | 一种智能化扫码调制奶茶机器人的信息采集系统及方法 |
CN116776909B (zh) * | 2023-08-28 | 2023-11-03 | 四川星点网络技术有限公司 | 一种瓶盖二维码溯源系统 |
CN117291208B (zh) * | 2023-11-24 | 2024-01-23 | 四川数盾科技有限公司 | 一种二维码提取方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2285029A1 (en) * | 2008-12-30 | 2011-02-16 | State Grid Corporation of China | Data transmission method, transmission system and data transmitter |
CN102096795A (zh) * | 2010-11-25 | 2011-06-15 | 西北工业大学 | 磨损二维条码图像识别方法 |
CN104636701A (zh) * | 2014-12-12 | 2015-05-20 | 浙江工业大学 | 一种基于图像修复的激光二维码识别方法 |
-
2015
- 2015-06-24 CN CN201510350263.XA patent/CN104933387B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2285029A1 (en) * | 2008-12-30 | 2011-02-16 | State Grid Corporation of China | Data transmission method, transmission system and data transmitter |
CN102096795A (zh) * | 2010-11-25 | 2011-06-15 | 西北工业大学 | 磨损二维条码图像识别方法 |
CN104636701A (zh) * | 2014-12-12 | 2015-05-20 | 浙江工业大学 | 一种基于图像修复的激光二维码识别方法 |
Non-Patent Citations (1)
Title |
---|
Data Matrix二维条码图像识别的算法研究与实现;李雅静;《中国优秀硕士学位论文全文数据库信息科技辑》;20100215(第2期);第3-4章 * |
Also Published As
Publication number | Publication date |
---|---|
CN104933387A (zh) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933387B (zh) | 一种基于二维码解码的快速定位识别的方法 | |
CN110503112B (zh) | 一种增强特征学习的小目标检测及识别方法 | |
CN105787923B (zh) | 用于平面表面分割的视觉系统和分析方法 | |
CN106960208B (zh) | 一种仪表液晶数字自动切分和识别的方法及系统 | |
EP2417561B1 (de) | Zweidimensionaler symbolcode und verfahren zum lesen des symbolcodes | |
CN101453575B (zh) | 一种视频字幕信息提取方法 | |
CN110427792B (zh) | 一种遮挡二维码的识读匹配方法及其应用 | |
CN101727580B (zh) | 图像处理装置、图像处理单元和图像处理方法 | |
CN109118500A (zh) | 一种基于图像的三维激光扫描点云数据的分割方法 | |
CN101676930A (zh) | 一种识别扫描图像中表格单元的方法及装置 | |
CN110070557A (zh) | 一种基于边缘特征检测的目标识别与定位方法 | |
CN107301368A (zh) | 一种DataMatrix二维码的识别方法 | |
CN110263794B (zh) | 基于数据增强的目标识别模型的训练方法 | |
CN113177959B (zh) | 一种快速运动过程中qr码实时提取方法 | |
CN111259854A (zh) | 一种文本图像中表格的结构化信息的识别方法及装置 | |
CN112560816A (zh) | 一种基于YOLOv4的设备指示灯识别方法及系统 | |
CN109101855B (zh) | 一种基于opencv的缺失定位框二维码识别方法 | |
CN110415304A (zh) | 一种视觉标定方法及系统 | |
Dori et al. | Vector-based segmentation of text connected to graphics in engineering drawings | |
CN108875589B (zh) | 一种道路区域的视频检测方法 | |
CN105426943B (zh) | 钢箱梁虚拟装配中图像采集的编码系统及方法 | |
CN112215308B (zh) | 一种吊装物体单阶检测方法、装置、电子设备及存储介质 | |
CN113311507A (zh) | 一种台风路径的识别方法及装置 | |
Kovanen et al. | A layered method for determining manga text bubble reading order | |
CN112749741A (zh) | 一种基于深度学习的手闸紧固故障识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |