一种多个不规则二维码批量定位识别方法与流程

文档序号:23829862发布日期:2021-02-03 18:05阅读:266来源:国知局
一种多个不规则二维码批量定位识别方法与流程
一种多个不规则二维码批量定位识别方法
【技术领域】
[0001]
本发明涉及二维码图像识别领域,具体涉及一种多个不规则二维码批量定位识别方法。


背景技术:

[0002]
qr码是二维条码的一种,qr来自英文“quick response”的缩写,即快速反应的意思,源自发明者希望qr码可让其内容快速被解码。qr码比普通条码可储存更多资料,亦无需像普通条码般在扫描时需直线对准扫描器。qr码呈正方形,只有黑白两色。在4个角落的其中3个,印有较小,像“回”字的正方图案。这3个“回”字的正方图案是帮助解码软件定位的图案,使用者不需要对准,无论以任何角度扫描,资料仍可正确被读取。qr码由两部分组成:a、位于内部区域的qr码;b、位于外部的辅助定位框。qr码有两种尺寸:根据camera安装位置离目标qr码的距离,定义两种尺寸:外框边长24mm(较小的qr码)、外框边长28mm(较大的qr码)。qr码字定义样例:xb050n3941042513、xb082n3157920410。具体码字可以自行定义。
[0003]
在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。相机标定方法有:传统相机标定法、主动视觉相机标定方法、相机自标定法、零失真相机标定法。标定模板(标定板calibration target):在机器视觉、图像测量、摄影测量、三维重建等应用中,为校正镜头畸变;确定物理尺寸和像素间的换算关系;以及确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,需要建立相机成像的几何模型。通过相机拍摄带有固定间距图案阵列平板、经过标定算法的计算,可以得出相机的几何模型,从而得到高精度的测量和重建结果。而带有固定间距图案阵列的平板就是标定模板(标定板calibration target)。标定模板种类:

等间距实心圆阵列图案ti-timescg-100-d;

国际象棋盘图案ti-times cg-076-t;

相移光栅(3纵、3横,120
°
相位移)。相机标定工具gml camera calibration,“相机2.0”开发包sdk、c++api函数库、c++源程序等。
[0004]
rtsp(real time streaming protocol),rfc2326,实时流传输协议,是tcp/ip协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过ip网络传送多媒体数据。undistort变换:无畸变的变换。dlib由c++编写,提供了和机器学习、数值计算、图模型算法、图像处理等领域相关的一系列功能。imglab是一个在图像上标注矩形的工具。hog特征:方向梯度直方图(histogram of oriented gradient,hog)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子;它通过计算和统计图像局部区域的梯度方向直方图来构成特征;hog特征结合svm分类器已经被广泛应用于图像识别中。支持向量机(support vector machine,svm)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalizedlinear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。直方图拉伸,就是当图像的
灰度级分布不均匀,只集中在某些区域时,把它扩充开来,使其充满整个灰度级。单应性变换,可简单理解为用来描述物体在世界坐标系和像素坐标系之间的位置映射关系,对应的变换矩阵称为单应性矩阵,单应性在图像校正、图像拼接、相机位姿估计、视觉slam等领域有非常重要的作用。zxing是一个开放源码的,用java实现的多种格式的1d/2d条码图像处理库,它包含了联系到其他语言的端口,zxing可以实现使用手机的内置的摄像头完成条形码的扫描及解码。opencv是一个基于bsd许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、windows、android和mac os操作系统上;它轻量级而且高效,由一系列c函数和少量c++类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。roi(region of interest),感兴趣区域;机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,称为感兴趣区域,roi;在halcon、opencv、matlab等机器视觉软件上常用到各种算子(operator)和函数来求得感兴趣区域roi,并进行图像的下一步处理。opencvrect模板类是一个比较重要的类,可以设置图像roi区域,截取图像等;rect类的成员变量有x,y,width,height,分别为左上角座标和矩形宽高。
[0005]
本发明利用上述现有图像识别技术对多个二维码批量定位识别方法进行了改进。


技术实现要素:

[0006]
本发明的目的是,提出一种自动识别二维码位置及编码字串、识别效率高的多个不规则二维码定位识别方法。
[0007]
为实现上述目的,本发明采取的技术方案是一种多个不规则二维码批量定位识别方法,包括以下步骤:
[0008]
s1、对用于拍摄多个二维码图像的照相机进行相机标定,获得照相机的内
[0009]
参矩阵、镜头畸变参数用于照片图像畸变校正;
[0010]
s2、使用经过相机标定的照相机拍摄若干张包括多个二维码的样张照片,将经过畸变校正的样张照片用于计算机机器学习,获得二维码定位检测模型;
[0011][0012]
s3、使用经过相机标定的照相机拍摄包括多个二维码的视频图像,对经过畸变校正的视频图像帧使用二维码定位检测模型进行多个二维码图像定位;
[0013][0014]
s4、对经过定位的多个二维码图像进行二维码图像解码识别,获得多个二维码编码字串。
[0015]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s1包括以下步骤:
[0016]
s11、照相机使用棋盘标定板采集若干标定样张照片;
[0017]
s12、把采集的标定样张照片保存在一个文件夹中;
[0018]
s13、利用标定脚本对照相机进行相机标定;
[0019]
s14、生成照相机内参矩阵、镜头畸变参数,用于照相机采集的照片图像畸变校正。
[0020]
优选地,上述照相机采用超广角、鱼眼镜头;上述棋盘格标定板尺寸大于60cm*40cm,每个格子为边长3cm的正方形。
[0021]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s2包括以下步骤:
[0022]
s21、使用经过相机标定的照相机拍摄若干张包括多个二维码的样张照片;
[0023]
s22、将经过畸变校正的样张照片使用样张标注工具进行标注;
[0024]
s23、将经过标注的样张照片用于计算机机器学习训练二维码定位检测模型。
[0025]
优选地,上述步骤s22对样张照片进行1/4下采样,长宽各缩小0.5倍后进行标注。
[0026]
优选地,上述步骤s23采用hog特征+svm分类器训练二维码定位检测模型。
[0027]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s3包括以下步骤:
[0028]
s31、使用经过相机标定的照相机拍摄包括多个二维码的视频图像;
[0029]
s32、灰度化视频图像帧;
[0030]
s33、根据需要对视频图像帧进行畸变校正;
[0031]
s34、将畸变校正后的视频图像帧下采样到1/4;
[0032]
s35、使用二维码定位检测模型对视频图像帧进行二维码定位检测,得到多个二维码位置列表。
[0033]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s4包括以下步骤:
[0034]
s41、根据二维码位置列表得到所有的二维码位置矩形;
[0035]
s42、选中一个二维码位置矩形,根据选中的二维码位置矩形得到图像子块;
[0036][0037]
s43、调用二维码解码器对图像子块进行第一次二维码识别,如果第一次
[0038]
二维码识别成功跳转执行步骤s42;
[0039]
s44、如果第一次二维码识别不成功,检测图像子块中的二维码定位外框,如果没有检测到二维码定位外框跳转执行s42;
[0040]
s45、如果检测到二维码定位外框,根据二维码定位外框对图像子块进行单应性变换,调用二维码解码器进行第二次二维码识别,第二次二维码识别成功/不成功跳转执行步骤s42。
[0041]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述二维码解码器执行以下步骤:
[0042]
s51、遍历各缩放比例因子,循环执行s52、s53步骤直到识别出二维码编
[0043]
码字串为止;
[0044]
s52、对图像子块进行直方图拉伸;
[0045]
s53、进行二维码识别,获得二维码编码字串。
[0046]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述比例因子序列为{1.0,1.2,1.5,2.0}。
[0047]
本发明有如下有益效果:1.在idc机房的机柜中,很多设备正面会在不同或者相同的位置黏贴用于资产管理的二维码标签,传统的通过手持设备进行手工识别,效率会很低,如果通过视频识别技术进行批量识别,效率会提高很多,而且可以做到自动识别;2.qr码识别准确率(识别个数/检测出来的个数),达到96%以上(未能识别的qr码几乎都是边缘形变
较大的)。
【附图说明】
[0048]
图1是一种多个不规则二维码批量定位识别方法流程图。
[0049]
图2是一种多个不规则二维码批量定位识别方法相机标定流程图。
[0050]
图3是一种多个不规则二维码批量定位识别方法检测模型训练流程图。
[0051]
图4是一种多个不规则二维码批量定位识别方法二维码定位流程图。
[0052]
图5是一种多个不规则二维码批量定位识别方法二维码识别流程图。
[0053]
图6是一种多个不规则二维码批量定位识别方法二维码解码器流程图。
【具体实施方式】
[0054]
下面结合实施例并参照附图对本发明作进一步描述。
[0055]
实施例1
[0056]
本实施例实现一种多个不规则二维码批量定位识别方法。
[0057]
附图1所述一种多个不规则二维码批量定位识别方法流程图。如图1所示,一种多个不规则二维码批量定位识别方法,包括以下步骤:
[0058]
s1、对用于拍摄多个二维码图像的照相机进行相机标定,获得照相机的内
[0059]
参矩阵、镜头畸变参数用于照片图像畸变校正;
[0060]
s2、使用经过相机标定的照相机拍摄若干张包括多个二维码的样张照片,将经过畸变校正的样张照片用于计算机机器学习,获得二维码定位检测模型;
[0061][0062]
s3、使用经过相机标定的照相机拍摄包括多个二维码的视频图像,对经过畸变校正的视频图像帧使用二维码定位检测模型进行多个二维码图像定位;
[0063][0064]
s4、对经过定位的多个二维码图像进行二维码图像解码识别,获得多个二维码编码字串。
[0065]
附图2所述一种多个不规则二维码批量定位识别方法相机标定流程图。如图2所示,优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s1包括以下步骤:
[0066]
s11、照相机使用棋盘标定板采集若干标定样张照片;
[0067]
s12、把采集的标定样张照片保存在一个文件夹中;
[0068]
s13、利用标定脚本对照相机进行相机标定;
[0069]
s14、生成照相机内参矩阵、镜头畸变参数,用于照相机采集的照片图像畸变校正。
[0070]
优选地,上述照相机采用超广角、鱼眼镜头;上述棋盘格标定板尺寸大于60cm*40cm,每个格子为边长3cm的正方形。
[0071]
附图3所述一种多个不规则二维码批量定位识别方法检测模型训练流程图。如图3所示,优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s2包括以下步骤:
[0072]
s21、使用经过相机标定的照相机拍摄若干张包括多个二维码的样张照片;
[0073]
s22、将经过畸变校正的样张照片使用样张标注工具进行标注;
[0074]
s23、将经过标注的样张照片用于计算机机器学习训练二维码定位检测模型。
[0075]
优选地,上述步骤s22对样张照片进行1/4下采样,长宽各缩小0.5倍后进行标注。
[0076]
优选地,上述步骤s23采用hog特征+svm分类器训练二维码定位检测模型。
[0077]
附图4所述一种多个不规则二维码批量定位识别方法二维码定位流程图。如图4所示,优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s3包括以下步骤:
[0078]
s31、使用经过相机标定的照相机拍摄包括多个二维码的视频图像;
[0079]
s32、灰度化视频图像帧;
[0080]
s33、根据需要对视频图像帧进行畸变校正;
[0081]
s34、将畸变校正后的视频图像帧下采样到1/4;
[0082]
s35、使用二维码定位检测模型对视频图像帧进行二维码定位检测,得到多个二维码位置列表。
[0083]
附图5所述一种多个不规则二维码批量定位识别方法二维码识别流程图。如图5所示,优选地,上述的一种多个不规则二维码批量定位识别方法,所述步骤s4包括以下步骤:
[0084]
s41、根据二维码位置列表得到所有的二维码位置矩形;
[0085]
s42、选中一个二维码位置矩形,根据选中的二维码位置矩形得到图像子块;
[0086][0087]
s43、调用二维码解码器对图像子块进行第一次二维码识别,如果第一次
[0088]
二维码识别成功跳转执行步骤s42;
[0089]
s44、如果第一次二维码识别不成功,检测图像子块中的二维码定位外框,如果没有检测到二维码定位外框跳转执行s42;
[0090]
s45、如果检测到二维码定位外框,根据二维码定位外框对图像子块进行单应性变换,调用二维码解码器进行第二次二维码识别,第二次二维码识别成功/不成功跳转执行步骤s42。
[0091]
附图6所述一种多个不规则二维码批量定位识别方法二维码解码器流程图。如图6所示,优选地,上述的一种多个不规则二维码批量定位识别方法,所述二维码解码器执行以下步骤:
[0092]
s51、遍历各缩放比例因子,循环执行s52、s53步骤直到识别出二维码编
[0093]
码字串为止;
[0094]
s52、对图像子块进行直方图拉伸;
[0095]
s53、进行二维码识别,获得二维码编码字串。
[0096]
优选地,上述的一种多个不规则二维码批量定位识别方法,所述比例因子序列为{1.0,1.2,1.5,2.0}。
[0097]
实施例2
[0098]
本实施例实现一种多个不规则二维码批量定位识别方法。本实施例是在实施例1的基础上具体实施实现。
[0099]
本实施例涉及多个qr二维码(下文简称qr码)在超广角camera(基于可见光)下的定位识别:输入一帧由camera捕获的图像(约1080p尺寸),要求经由qr码定位识别模块,得到其中包含的qr码的位置及编码字串。
[0100]
一、qr码的制作
[0101]
1.qr码外观及尺寸
[0102]
(1)qr码由两部分组成:a、位于内部区域的qr码;b、位于外部的辅助定位框。
[0103]
(2)两种尺寸:根据camera安装位置离目标qr码的距离,定义两种尺寸:外框边长24mm(较小的qr码)、外框边长28mm(较大的qr码)
[0104]
2.qr码类型选择(涉及version、纠错等级、可编码字长):采用version1;待编码字符串仅包含字母和数字(alphanumeric),且字母均为大写。纠错等级:15%纠错时,若字母不区分大小写时字长为23(区分大小写则为20);25%纠错时,若字母不区分大小写时字长为18(区分大小写则为16)。
[0105]
3.qr码码字的定义
[0106]
(1)qr码字定义样例:xb050n3941042513、xb082n3157920410。具体码字可以自行定义。
[0107]
二、camera标定
[0108]
1.camera标定的必要性
[0109]
(1)camera标定可以为qr码、u位或其他标记物的物理空间精确定位提供支持;
[0110]
(2)camera标定后可对画面进行镜头畸变校正,有利于提高qr码的检出率和识别率。
[0111]
2.camera标定过程
[0112]
(1)标定板:采用棋盘格标定板,因用于超广角、鱼眼镜头的标定,标定板尺寸大于60cmx40cm以上为佳;每个格子(正方形)的边长约3cm;
[0113]
(2)camera:固定一个或多个camera(多个camera以ip地址区分),camera启动rtsp服务,把capture到的图像发送到pc主机。
[0114]
(3)标定过程:
[0115]

采集标定样张:棋盘格标定板在camera前摆出多种位姿(位置和姿态),尽量使棋盘格在camera视野内各个位置均出现,且其位姿均呈现多样化。样张数量在10张左右即可;
[0116]

把采集到的标定样张保存在一个文件夹中,若多个camera则保存在多个文件夹中;
[0117]

利用标定脚本对单个或多个camera进行标定;
[0118]

把生成的单个或多个camera的内参矩阵、镜头畸变参数保存起来。
[0119]
3.camera畸变校正
[0120]
(1)载入camera对应的内参矩阵、镜头畸变参数;
[0121]
(2)初始化camrea的畸变校正map;
[0122]
(3)对camera新采集的图像帧序列进行undistort变换,并对画面进行裁剪,得到畸变校正后的图像帧画面。
[0123]
三、qr码检测和定位
[0124]
1.基于机器学习的qr码定位
[0125]
(1)学习样张的采集。把制作好的qr码粘贴在设备表面,qr码的位姿应当尽量丰富,或者尽量包括系统在实际应用环境中部署后的位姿状况;然后用camera拍摄,得到学习样张,并按4:1的比例分别保存在指定文件目录中。
[0126]
(2)学习样张的标注。为了提高速度,对样张进行1/4下采样(长宽各缩小0.5倍);再利用dlib提供的样张标注工具imglab进行标注。
[0127]
(3)模型的训练。dlib采用hog特征+svm分类器训练检测模型。训练完成后可以看到训练结果:
[0128]
test detector(precision,recall,ap):0.962963 0.899209 0.894933
[0129]
parameters used:
[0130]
threads:20
[0131]
c:3
[0132]
eps:0.01
[0133]
target-size:2100
[0134]
detection window width:46
[0135]
detection window height:46
[0136]
upsample this many times:1
[0137]
trained using left/right flips。
[0138]
训练结束后得到一个object_detector.svm模型。
[0139]
2.定位流程:对输入的图像帧做如下处理:
[0140]
(1)灰度化图像帧;
[0141]
(2)根据需要进行畸变校正;
[0142]
(3)下采样图像到1/4;
[0143]
(4)利用dlib载入检测模型进行qr码检测,得到qr码的位置列表。
[0144]
四、qr码识别
[0145]
1.qr码识别:本实施例综合采用zxing和opencv对定位出来的全部qr码图像子块进行识别,定义qrdecode方法如下:
[0146]
(1)定义缩放比例因子序列{1.0,1.2,1.5,2.0},遍历各因子,执行以下步骤直到识别出qr码为止;
[0147]
(2)对图像子块roi进行直方图拉伸;
[0148]
(3)调用qr码识别功能。
[0149]
2.总体识别流程,对每个rect进行如下处理:
[0150]
(1)根据rect得到图像子块roi,调用qrdecode尝试第一次识别,若成功则跳到下一个rect继续识别;否则继续以下过程。
[0151]
(2)检测roi中的定位外框,若无法检出定位外框,则该rect对应的qr码无法识别,跳到下一个rect继续识别;否则继续以下过程。
[0152]
(3)根据定位外框对roi进行单应变换,调用qrdeocde进行第二次识别;无论是否识别,跳到下一个rect继续识别。
[0153]
3.本实施例qr码识别准确率(识别个数/检测出来的个数),达到96%以上(未能识别的qr码几乎都是边缘形变较大的)。
[0154]
本实施例25cm camera距离,且已经进行畸变校正的识别情况,可以看出,位于camera中央区域的qr码基本能被检测和识别出来。
[0155]
五、本实施例应用于idc机房的资产管理
[0156]
在idc机房的机柜中,很多设备正面会在不同或者相同的位置黏贴用于资产管理的二维码标签,传统的通过手持设备进行手工识别,效率会很低,如果通过本实施例视频识别技术进行批量识别,效率会提高很多,而且可以做到自动识别。
[0157]
本领域普通技术人员可以理解,实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random acessmemory,ram)等。
[0158]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1