CN115017931B - 一种批量qr码实时提取方法及*** - Google Patents
一种批量qr码实时提取方法及*** Download PDFInfo
- Publication number
- CN115017931B CN115017931B CN202210669471.6A CN202210669471A CN115017931B CN 115017931 B CN115017931 B CN 115017931B CN 202210669471 A CN202210669471 A CN 202210669471A CN 115017931 B CN115017931 B CN 115017931B
- Authority
- CN
- China
- Prior art keywords
- module
- image
- code
- data
- real
- 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
- 238000000605 extraction Methods 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims abstract description 36
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000003708 edge detection Methods 0.000 claims abstract description 33
- 238000006243 chemical reaction Methods 0.000 claims abstract description 18
- 230000000877 morphologic effect Effects 0.000 claims abstract description 18
- 238000001914 filtration Methods 0.000 claims description 20
- 238000011176 pooling Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 10
- 238000013527 convolutional neural network Methods 0.000 claims description 9
- 230000001133 acceleration Effects 0.000 claims description 7
- 102000016916 Complement C8 Human genes 0.000 claims description 6
- 108010028777 Complement C8 Proteins 0.000 claims description 6
- 230000003628 erosive effect Effects 0.000 claims description 6
- 238000013139 quantization Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 4
- 238000005192 partition Methods 0.000 claims description 2
- 238000011897 real-time detection Methods 0.000 abstract description 3
- 238000007689 inspection Methods 0.000 abstract description 2
- 238000010339 medical test Methods 0.000 abstract description 2
- 238000003062 neural network model Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 8
- 238000012216 screening Methods 0.000 description 7
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003153 chemical reaction reagent Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 229960005486 vaccine Drugs 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1447—Methods for optical code recognition including a method step for retrieval of the optical code extracting optical codes from image or text carrying said optical code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/146—Methods for optical code recognition the method including quality enhancement steps
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Toxicology (AREA)
- Health & Medical Sciences (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种批量QR码实时提取方法及***,本发明利用QR码图形的边缘信息对其进行检测,通过灰度转化、去模糊、边缘检测、二值化、形态学处理、轮廓提取、分级多步判别、网络模型判别等步骤对包含多个QR码图形的单帧图像进行处理,并重点考虑到了图形模糊问题,通过统计边缘灰度值的坡度分布对图像进行去模糊处理;结合了传统图像处理方式和神经网络模型,保证了方法的识别准确率的同时提高了运算效率;针对包含有大量QR码的图像的离线实时检测和提取问题,能够快速部署在实际的嵌入式实时场景中并进行应用,满足批量医疗试管登记和大批仓储货物检录等场景对多个QR码进行检测和提取的实时需求。
Description
技术领域
本发明涉及信息技术和物联网技术领域,更具体地,涉及一种批量QR码实时提取方法及***。
背景技术
随着信息技术和物联网技术的快速发展,QR码(Quick Response Code,QR code)作为物联网感知层中一种信息容量大、安全性强、成本低廉的二维码标识方案,被大量地部署在电子商务、仓储物流、设备管理等各个领域。特别是在一些车间流水线上,每个物件货品上都有一个QR码标签,随着传送带的传送,QR码扫描设备需要及时快速无遗漏地对所扫描的区域里的所有QR码进行读取。类似的,在一些生化实验室,实验人员需要通过识别大量的样本试管、疫苗试剂上的QR码标识来进行记录和存取。此外,仓储物流行业里也需要识别大批货物上的QR码标签来进行登记和入库追踪。这些场景都需要一种能够实时检测大批量QR的技术。
片上***(SoC,System on Chip)是一种集成了处理器、专用电路、外设控制器的芯片级***,用户能够自由地对其进行定制化,现场可编程门阵列(FPGA,FieldProgrammable Gate)是作为专用集成电路(ASIC,Application Specific IntegratedCircuit)领域的其中一种SoC半定制电路芯片。FPGA采用了包括内部连线(Interconnect)、可配置逻辑模块(CLB,Configurable Logic Block)和输出输入模块(IOB,Input OutputBlock)的逻辑单元阵列(LCA,Logic Cell Array),内部拥有大量的输入输出引脚和触发器。使用FPGA进行算法实现,能够让程序的运算从硬件底层进行加速,达到运算实时性的效果。而为了减少FPGA重复模块的开发,知识产权核(IP核,Intellectual Property Core)被广泛使用于FPGA的开发阶段中。IP核是经过验证的、可重复利用的和拥有确定功能的集成电路模块,能够大幅度降低开发时间和成本,提高设计效率。
现有技术中公开了一种批量QR码图像提取方法及***的专利,该专利:对实际拍摄的一幅包含多个QR码的高分辨率图像,首先进行灰度变换及滤波去噪等预处理操作;接着采用边缘检测方法提取边缘梯度值,并通过截断归一化得到边缘图像:通过设置分块尺寸初始值,进行迭代搜索后确定最佳分块尺寸;接着以最佳分块尺寸再次进行分块,特征计算及阈值分割,标记块聚类得到候选矩形框集合,并通过筛选将显然不满足QR码区域特征的矩形框剔除;最后再经过压缩,训练好的轻量级、高性能的mobileNet系列分类器,判定候选框中是否包含QR码图案,剔除背景矩形框,并将原图中对应的区域分离出来,完成分割、提取QR码图案操作。然而,该专利方法的运算步骤多,涉及的计算量大,对硬件性能的要求相对来说不低,而且当输入图片模糊时,该方法的检测精度极低。
发明内容
本发明提供一种批量QR码实时提取方法,该方法能够实时地对含有大批量的QR码的图片进行检测并提取出QR码。
本发明的又一目的在于提供一种应用上述方法的批量QR码实时提取***。
为了达到上述技术效果,本发明的技术方案如下:
一种批量QR码实时提取方法,包括以下步骤:
S1:采集QR码图像数据并进行缓存;
S2:对缓存的QR码图像数据进行滤波和边缘检测处理,完成QR码图像的灰度转化、去模糊、边缘检测、二值化、形态学处理;
S3:对经过步骤S2处理后的QR码图像进行轮廓提取QR码矩形框,并在各个矩形框之间的IOU矩阵通过流水线加速的方式被快速计算出来,从而剔除掉QR码矩形框的背景区域;
S4:利用步骤S3中得到的QR码矩形框,使用卷积神经网络对其进行分类计算,并将计算结果进行显示。
进一步地,所述步骤S2中,进行灰度转化的过程是:
将QR码图像数据从RGB颜色空间变换到灰度颜色空间,转化公式为如式(1):
I=0.30×Ir+0.59×Ig+0.11×Ib (1)
其中,I表示转化后的灰度图像,Ir表示输入图像的r通道的数据信息,Ig表示输入图像的g通道的数据信息,Ib表示输入图像的b通道的数据信息;
对式(1)进行加速处理,如式(2):
I=(300×Ir+590×Ig+110×Ib+500)>>10 (2)
此时得到的图像数据像素的灰度值范围在0~255。
进一步地,所述步骤S2中,进行去模糊的过程是:
1)、将QR码图像分成B×B的图像块,然后计算每一块垂直方向的DCT系数Cv(k)和水平方向的DCT系数Ch(k),如公式(3)和(4)所示,其中,f(m,n)为像素点(m,n)灰度值:
2)、通过该DCT系数判断图像块的边缘响应,再通过公式(5)计算整个图像的边缘响应,其中,M为边缘方向大于0的个数,si为图像块的边缘响应:
3)、利用S(n)估计出PSF系数,再通过维纳滤波器对灰度图形进行去模糊处理。
进一步地,所述步骤S2中,进行边缘检测的过程是:
通过Sobel算子模板与图像数据做卷积运算,从而对图像进行边缘检测:
将Sobel算子模板定义为常量型的数据:
parameter h1=8'hff,h2=8'h00,h3=8'h01,h4=8'hfe,h5=8'h00,h6=8'h02,h7=8'hff,h8=8'h00,h9=8'h01;
parameter v1=8'h01,v2=8'h02,v3=8'h01,v4=8'h00,v5=8'h00,v6=8'h00,v7=8'hff,v8=8'hfe,v9=8'hff;
Sobel模板中变量的位宽都为8,十进制的-1采用补码8’hff表示,十进制的-2采用补码8’hfe表示,其中最高位表示符号位,使用Sobel模板求得图像水平和垂直方向的梯度值后,两者再取绝对值相加,求得整幅图像的灰度梯度。
进一步地,所述步骤S2中,进行二值化的过程是:
二值化操作主要是将梯度图像转化为黑白图,转化公式如式(6):
进一步地,所述步骤S2中,进行形态学处理的过程是:形态学处理是消除噪声、分割出独立的QR码图像元素和寻找图像中的极大值区域或极小值区域,包括腐蚀Erosion和膨胀Dilation操作,如公式(7)所示,I(x,y)表示QR码图像数据里位置为(x,y)的像素值:
进一步地,所述步骤S3中,由于形态学处理所处理的图像数据被存储在数据缓存单元里,所以要先将数据缓存单元里的图像数据读取出来,然后调用OpenCV库里的findContours()函数,提取出各个QR码前景的轮廓,第i个轮廓用[xi,yi,wi,hi]表示,n表示当前图片所获得的的矩形框轮廓的数量,x、y分别表示该矩形框的左上角顶点的横坐标和纵坐标,w、h分别表示该矩形框的宽度和高度,之后利用式(8)计算各个矩形框的方形度,通过算法1对这些QR矩形框进行预筛选,将可能包含QR码的矩形框添加进集合Λout里:
经过预筛选后,将包含QR码的矩形框进一步筛选出来,利用已获得的QR码矩形框作为先验信息,再次对算法1输出的可能包含QR码的矩形框集合进行筛选,具体过程如算法2:
算法2筛选后的矩形框包含在集合里,利用公式(9)计算该集合里各个矩形框的IOU值,其中,表示矩形框recti和矩形框rectj的IOU值,Inter(recti,rectj)是这两个矩形框重叠的面积大小,Union(recti,rectj)是这两个矩形框并集的面积大小:
将进一步筛选后的矩形框分成独立矩形框和重叠矩形框,重叠矩形框又可分为相交矩形框和包含矩形框,具体的流程如算法3,依据算法3获得筛选的矩形框后,判断两两是否重叠,将互不重叠的矩形框集合添加到独立矩形框集合里,再计算重叠矩形框的相互的重合度,如果重合度小于1,则判断这两个矩形框相交,如果大于等于1,则将矩形框添加进包含矩形框集合里,将冗余的外框剔除掉,保留被包含的矩形框到独立矩形框集合里,然后将独立矩形框集合作为先验信息,通过计算相交矩形框集合里各个矩形框的灰阶分布,将包含有QR码的矩形框给筛选出来,并保留进独立矩形框集合里:
进一步地,所述步骤S4中,卷积神经网络包括3个卷积层、3个池化层、两个全连接层和一个softmax;第一卷积层、第二卷积层、第三卷积层分别将图像特征信息映射到16维、32维、64维的高纬空间中,第一池化层、第二池化层、第三池化层均使用最大池化对特征信息进行下采样处理,第一全连接层1的输出数据维度为1×1×64,第二全连接层的输出数据维度为1×1×2,表示背景和QR码前景两种概率值,通过softmax层,获取到数据维度为1×1的分数值,该值表示所输入的数据维度为32×32×3的QR码区域可被判定为包含有QR码对象的概率。
进一步地,所述步骤S4中,卷积神经网络对图像上的矩形框区域进行分类之前,需要先将已训练好的网络参数权值和偏置值进行结构化处理,将这些参数值和偏置值进行定点量化;使用的定点量化方式如公式(10)-(12)所示,其中,r′表示浮点实数的网络权值,q表示量化后的定点数,数据类型为有符号8bit整数,r′max和r′min分别是r′的最大值和最小值,qmax和qmin分别是q的最大值和最小值,S′是缩放稀疏因子,Z表示浮点实数中的0映射到数时所对应的整数大小,round(·)表示四舍五入:
一种批量QR码实时提取***,包括摄像头模块、图像采集模块、数据缓存模块、存储模块、总线配置模块、滤波和边缘检测模块、轮廓提取模块、多级分步并行判别模块、网络模型分类模块、图像显示模块、显示屏模块;
总线配置模块、摄像头模块、图像采集模块和数据缓存模块顺次连接,存储模块连接到数据缓存模块上;数据缓存模块、滤波和边缘检测模块、轮廓提取模块、多级分步并行判别模块、网络模型分类模块、图像显示模块、显示屏模块顺次连接;
***通过总线配置模块对摄像头模块进行配置,图像采集模块会接收来自摄像头模块传送过来的图像信号,然后输送到数据缓存模块;
数据缓存模块则将图像数据传到滤波和边缘检测模块,在滤波和边缘检测模块内进行灰度转化、去模糊、边缘检测、二值化、形态学处理;
通过轮廓提取模块提取QR码矩形框,输入到多级分布并行判别模块中,各个矩形框之间的IOU矩阵通过流水线加速的方式被快速计算出来,从而剔除掉背景区域,将可能包含QR码的矩形框送入到网络模型分类模块中;
网络模型分类模块从数据缓存模块和存储模块同时加载矩形框数据、网络偏置值数据和网络权重数据,然后进行正向计算,并将结果输送到图像显示模块中,让显示屏模块显示效果图像。
与现有技术相比,本发明技术方案的有益效果是:
本发明利用QR码图形的边缘信息对其进行检测,通过灰度转化、去模糊、边缘检测、二值化、形态学处理、轮廓提取、分级多步判别、网络模型判别等步骤对包含多个QR码图形的单帧图像进行处理,并重点考虑到了图形模糊问题,通过统计边缘灰度值的坡度分布对图像进行去模糊处理。另外,本发明的方法结合了传统图像处理方式和神经网络模型,保证了方法的识别准确率的同时提高了运算效率。本发明针对包含有大量QR码的图像的离线实时检测和提取问题,能够快速部署在实际的嵌入式实时场景中并进行应用,满足批量医疗试管登记和大批仓储货物检录等场景对多个QR码进行检测和提取的实时需求。
附图说明
图1为本发明***结构图;
图2为Sobel算子模板示意图;
图3为滤波和边缘检测模块的中间输出图像和结果输出图像;
图4为多级分步判别算法流程图;
图5为矩形框类别判定网络模型图;
图6为卷积神经网络的卷积运算流程图。
图7为矩形框类别判定网络模型的IP核结构示意图;
图8为数据集图片的处理效果图;
图9为摄像头捕获图片的处理效果图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种批量QR码实时提取***,包括摄像头模块、图像采集模块、数据缓存模块、存储模块、总线配置模块、滤波和边缘检测模块、轮廓提取模块、多级分步并行判别模块、网络模型分类模块、图像显示模块、显示屏模块;
总线配置模块、摄像头模块、图像采集模块和数据缓存模块顺次连接,存储模块连接到数据缓存模块上;数据缓存模块、滤波和边缘检测模块、轮廓提取模块、多级分步并行判别模块、网络模型分类模块、图像显示模块、显示屏模块顺次连接;
***通过总线配置模块对摄像头模块进行配置,图像采集模块会接收来自摄像头模块传送过来的图像信号,然后输送到数据缓存模块;
数据缓存模块则将图像数据传到滤波和边缘检测模块,在滤波和边缘检测模块内进行灰度转化、去模糊、边缘检测、二值化、形态学处理;
通过轮廓提取模块提取QR码矩形框,输入到多级分布并行判别模块中,各个矩形框之间的IOU矩阵通过流水线加速的方式被快速计算出来,从而剔除掉背景区域,将可能包含QR码的矩形框送入到网络模型分类模块中;
网络模型分类模块从数据缓存模块和存储模块同时加载矩形框数据、网络偏置值数据和网络权重数据,然后进行正向计算,并将结果输送到图像显示模块中,让显示屏模块显示效果图像。
实施例2
一种批量QR码实时提取方法,包括以下步骤:
S1:采集QR码图像数据并进行缓存;
S2:对缓存的QR码图像数据进行滤波和边缘检测处理,完成QR码图像的灰度转化、去模糊、边缘检测、二值化、形态学处理;
S3:对经过步骤S2处理后的QR码图像进行轮廓提取QR码矩形框,并在各个矩形框之间的IOU矩阵通过流水线加速的方式被快速计算出来,从而剔除掉QR码矩形框的背景区域;
S4:利用步骤S3中得到的QR码矩形框,使用卷积神经网络对其进行分类计算,并将计算结果进行显示。
步骤S2中,进行灰度转化的过程是:
将数据从RGB颜色空间变换到灰度颜色空间,转化公式为如式(1):
I=0.30×Ir+0.59×Ig+0.11×Ib (1)
其中,I表示转化后的灰度图像,Ir表示输入图像的r通道的数据信息,Ig表示输入图像的g通道的数据信息,Ib表示输入图像的b通道的数据信息;
对式(1)进行加速处理,如式(2):
I=(300×Ir+590×Ig+110×Ib+500)>>10 (2)
此时得到的图像数据像素的灰度值范围在0~255。
步骤S2中,进行去模糊的过程是:
1)、将图像分成B×B的图像块,然后计算每一块垂直方向的DCT系数Cv(k)和水平方向的DCT系数Ch(k),如公式(3)和(4)所示,其中,f(m,n)为像素点(m,n)灰度值:
2)、通过该DCT系数判断图像块的边缘响应,再通过公式(5)计算整个图像的边缘响应,其中,M为边缘方向大于0的个数,si为图像块的边缘响应:
3)、利用S(n)估计出PSF系数,再通过维纳滤波器对灰度图形进行去模糊处理。
如图2所示,步骤S2中,进行边缘检测的过程是:
通过Sobel算子模板与图像数据做卷积运算,从而对图像进行边缘检测:
将Sobel算子模板定义为常量型的数据:
parameter h1=8'hff,h2=8'h00,h3=8'h01,h4=8'hfe,h5=8'h00,h6=8'h02,h7=8'hff,h8=8'h00,h9=8'h01;
parameter v1=8'h01,v2=8'h02,v3=8'h01,v4=8'h00,v5=8'h00,v6=8'h00,v7=8'hff,v8=8'hfe,v9=8'hff;
Sobel模板中变量的位宽都为8,十进制的-1采用补码8’hff表示,十进制的-2采用补码8’hfe表示,其中最高位表示符号位,使用Sobel模板求得图像水平和垂直方向的梯度值后,两者再取绝对值相加,求得整幅图像的灰度梯度,
步骤S2中,滤波和边缘检测模块内进行二值化的过程是:
二值化操作主要是将梯度图像转化为黑白图,转化公式如式(6):
步骤S2中,进行形态学处理的过程是:形态学处理是消除噪声、分割出独立的图像元素和寻找图像中的极大值区域或极小值区域,包括腐蚀Erosion和膨胀Dilation操作,如公式(7)所示,I(x,y)表示图像数据里位置为(x,y)的像素值:
图3(a)是原图,图3(b)是滤波和边缘检测模块的中间输出图像,图3(c)是形态学处理后输出图像。
步骤S3中,对形态学处理后的图像数据进行轮廓提取,主要是调用移植到ZYNQ平台上的OpenCV库里的findContours()函数。具体的移植操作上,先构建好ZYNQ硬件***和添加设计约束文件,再导出该硬件配置文件。然后在PC机上生成FSBL文件和BOOT.BIN启动文件,以及复制Linux内核文件、设备树和文件***,从而生成Ubuntu启动镜像,通过SD卡将Ubuntu环境移植到配置好硬件环境的ZYNQ平台上。之后使用ARM交叉编译工具在PC机上编译好OpenCV静态库,再通过SD卡移植到ZYNQ的Ubuntu***里,从而实现OpenCV库到ZYNQ平台的移植。由于滤波和边缘检测模块里最后形态学处理所处理的图像数据被存储在数据缓存单元里,所以要先将数据缓存单元里的图像数据读取出来,然后调用OpenCV库里的findContours()函数,提取出各个QR码前景的轮廓,第i个轮廓用[xi,yi,wi,hi]表示,n表示当前图片所获得的的矩形框轮廓的数量,x、y分别表示该矩形框的左上角顶点的横坐标和纵坐标,w、h分别表示该矩形框的宽度和高度,之后利用式(8)计算各个矩形框的方形度,通过算法1对这些QR矩形框进行预筛选,将可能包含QR码的矩形框添加进集合Λout里:
经过预筛选后,多级分布并行判别模块将包含QR码的矩形框进一步筛选出来,利用已获得的QR码矩形框作为先验信息,再次对算法1输出的可能包含QR码的矩形框集合进行筛选,具体过程如算法2:
/>
算法2筛选后的矩形框包含在集合里,利用公式(9)计算该集合里各个矩形框的IOU值,其中,表示矩形框recti和矩形框rectj的IOU值,Inter(recti,rectj)是这两个矩形框重叠的面积大小,Union(recti,rectj)是这两个矩形框并集的面积大小:
计算矩形框IOU值的主要Verilog代码如下:
real left_col_max,right_col_min,up_row_max,down_row_min;
real s1,s2,cross,result;
initial begin
left_col_max<=r1_x1>r2_x1?r1_x1:r2_x1;
right_col_min<=r1_x2<r2_x2?r1_x2:r2_x2;
up_row_max<=r1_y1>r2_y1?r1_y1:r2_y1;
down_row_min<=r1_y2<r2_y2?r1_y2:r2_y2;
s1<=0.0;s2<=0.0;cross<=0.0;
result<=0.0;
end
begin
if(left_col_max>=right_col_min||down_row_min<=up_row_max)begin
result=0.0;
end
else begin
s1=r1_w*r1_h;
s2=r2_w*r2_h;
cross=(down_row_min-up_row_max)*(right_col_min-left_col_max);
result=cross/(s1+s2-cross);
end
end
将进一步筛选后的矩形框分成独立矩形框和重叠矩形框,重叠矩形框又可分为相交矩形框和包含矩形框,具体的流程如算法3如图4,依据算法3获得筛选的矩形框后,判断两两是否重叠,将互不重叠的矩形框集合添加到独立矩形框集合里,再计算重叠矩形框的相互的重合度,如果重合度小于1,则判断这两个矩形框相交,如果大于等于1,则将矩形框添加进包含矩形框集合里,将冗余的外框剔除掉,保留被包含的矩形框到独立矩形框集合里,然后将独立矩形框集合作为先验信息,通过计算相交矩形框集合里各个矩形框的灰阶分布,将包含有QR码的矩形框给筛选出来,并保留进独立矩形框集合里:
/>
如图5所示,步骤S4中,卷积神经网络的网络模型包括3个卷积层、3个池化层、两个全连接层和一个softmax;第一卷积层、第二卷积层、第三卷积层分别将图像特征信息映射到16维、32维、64维的高纬空间中,第一池化层、第二池化层、第三池化层均使用最大池化对特征信息进行下采样处理,第一全连接层1的输出数据维度为1×1×64,第二全连接层的输出数据维度为1×1×2,表示背景和QR码前景两种概率值,通过softmax层,获取到数据维度为1×1的分数值,该值表示所输入的数据维度为32×32×3的QR码区域可被判定为包含有QR码对象的概率。
如图6所示,在进行卷积运算的时候,以单个卷积核运算为例,本分明使用多个FIFO缓存单元和多个寄存器,实现卷积运算的流水线并行加速处理。因为单帧图像的大小是32×32,使用FIFO缓存单元1、FIFO缓存单元2和FIFO缓存单元3,通过相互之间延时32个时间单位,可实现图像的三行数据输入,之后,再通过FIFO缓存单元4和FIFO缓存单元5,以及3个寄存器组,实现每次只读取三行三列图像数据的目的,即寄存器组1输出对应着卷积窗口此时所读取的图像数据v0~v8,然后这些数据与大小为3×3的卷积核进行乘积累加运算,C0~C8表示该卷积核的权值,中间运算结果保存在寄存器reg9~reg24中,寄存器reg25保存最终的卷积运算输出结果。从图中架构可知,在右侧进行卷积运算的时候,左侧依据时钟周期不断将图像数据读取出来,并通过各个FIFIO缓存单元和寄存器将数据输送到右侧等待下次运算,实现流水线并行运算处理,从而提高网络模型的运算效率。
步骤S4中,在调用卷积神经网络的网络模型对图像上的矩形框区域进行分类之前,需要先将已训练好的网络参数权值和偏置值进行结构化处理,将这些参数值和偏置值进行定点量化,然后输入进存储模块内;使用的定点量化方式如公式(10)-(12)所示,其中,r′表示浮点实数的网络权值,q表示量化后的定点数,数据类型为有符号8bit整数,r′max和r′min分别是r′的最大值和最小值,qmax和qmin分别是q的最大值和最小值,S′是缩放稀疏因子,Z表示浮点实数中的0映射到数时所对应的整数大小,round(·)表示四舍五入:
实施例3
采用高层次综合(High-level Synthesis,HLS)技术对网络模型进行FPGA平台的快速部署,图7是矩形框类别判定网络模型的IP核结构示意图。在调用网络模型模块对图像上的矩形框区域进行分类之前,需要先将已训练好的网络参数权值和偏置值进行结构化处理,将这些参数值和偏置值进行定点量化,然后输入进存储模块内。
所使用的定点量化方式如公式(10)-(12)所示。其中,r′表示浮点实数的网络权值,q表示量化后的定点数,数据类型为有符号8bit整数,r′max和r′min分别是r′的最大值和最小值,qmax和qmin分别是q的最大值和最小值,S′是缩放稀疏因子,Z表示浮点实数中的0映射到数时所对应的整数大小,round(·)表示四舍五入:
全局控制模块主要提供网络模型运算时各个操作的控制信号,让网络权值和图像数据可以被加载到网络运算单元中。具体来说,当网络模型分类模块收到来自全局控制模块的运算开始使能信号后,会将从FIFO缓存单元读取到的图像数据和存储模块的权值数据传输到片上存储器进行分块存储,然后网络运算单元取得到这些数据并进行正向计算,最终输出和保存计算得到的分数值。
采用了型号为XC7Z020系列的ZYNQ芯片,该芯片包含PS(Processing System)和PL(Programmable Logic)两部分,PS侧是双核Cortex-A9处理器,最大频率可达766Mhz,PL端则包含85K个逻辑单元和4.9Mbit的块随机存储器等。硬件平台上的数据存储模块包括1GB的DDR3和8GB的EMMC,此外,平台还搭载了VGA接口、SD卡接口等外设接口。本发明的算法经Verilog语言编程后,用Xilinx Vivado 2017.4软件进行编译和综合,然后下载到硬件平台的芯片内部形成相应的硬件电路,并将Ubuntu***移植到ZYNQ平台上。***启动后,总线配置模块通过I2C总线协议对OV5640摄像头模块进行配置,使其能输出24位分辨率的RGB图像,这些图像经由图像采集模块缓存到数据缓存单元中,然后QR码提取IP核从存储模块中加载预设参数和权值数据等,读取缓存单元中的图像数据并对其进行处理,最后将结果图像通过图像显示模块显示到显示屏上。图像显示模块采用VGA协议,其接口包括场同步信号线、行同步信号线、R信号线、B信号线、B信号线和两根I2C通讯线,该模块还包括一个独立的块随机存储单元作为显示存储区,用于图像显示缓存。图8和图9是本发明的硬件***在实际应用时的QR码提取的效果图,图8(a)是来自于QR码数据集的一张图片,存储于硬件平台的EMMC存储模块上,直接调用程序对图像进行处理,图8(b)是其效果图像。图9(a)是硬件平台上的摄像头模块所拍摄的QR码图像,图9(b)是***的处理效果图像。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (8)
1.一种批量QR码实时提取***的应用方法,其特征在于,所述批量QR码实时提取***包括摄像头模块、图像采集模块、数据缓存模块、存储模块、总线配置模块、滤波和边缘检测模块、轮廓提取模块、多级分步并行判别模块、网络模型分类模块、图像显示模块、显示屏模块;
总线配置模块、摄像头模块、图像采集模块和数据缓存模块顺次连接,存储模块连接到数据缓存模块上;数据缓存模块、滤波和边缘检测模块、轮廓提取模块、多级分步并行判别模块、网络模型分类模块、图像显示模块、显示屏模块顺次连接;
***通过总线配置模块对摄像头模块进行配置,图像采集模块会接收来自摄像头模块传送过来的图像信号,然后输送到数据缓存模块;
数据缓存模块则将图像数据传到滤波和边缘检测模块,在滤波和边缘检测模块内进行灰度转化、去模糊、边缘检测、二值化、形态学处理;
通过轮廓提取模块提取QR码矩形框,输入到多级分布并行判别模块中,各个矩形框之间的IOU矩阵通过流水线加速的方式被快速计算出来,从而剔除掉背景区域,将可能包含QR码的矩形框送入到网络模型分类模块中;
网络模型分类模块从数据缓存模块和存储模块同时加载矩形框数据、网络偏置值数据和网络权重数据,然后进行正向计算,并将结果输送到图像显示模块中,让显示屏模块显示效果图像;其中,所述方法包括以下步骤:
S1:采集QR码图像数据并进行缓存;
S2:对缓存的QR码图像数据进行滤波和边缘检测处理,完成QR码图像的灰度转化、去模糊、边缘检测、二值化、形态学处理;
S3:对经过步骤S2处理后的QR码图像进行轮廓提取QR码矩形框,并在各个矩形框之间的IOU矩阵通过流水线加速的方式被快速计算出来,从而剔除掉QR码矩形框的背景区域;
S4:利用步骤S3中得到的QR码矩形框,使用卷积神经网络对其进行分类计算,并将计算结果进行显示。
2.根据权利要求1所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S2中,进行灰度转化的过程是:
将QR码图像数据从RGB颜色空间变换到灰度颜色空间,转化公式为如式(1):
I=0.30×Ir+0.59×Ig+0.11×Ib(1)
其中,I表示转化后的灰度图像,Ir表示输入图像的r通道的数据信息,Ig表示输入图像的g通道的数据信息,Ib表示输入图像的b通道的数据信息;
对式(1)进行加速处理,如式(2):
I=(300×Ir+590×Ig+110×Ib+500)>>10 (2)
此时得到的图像数据像素的灰度值范围在0~255。
3.根据权利要求2所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S2中,进行去模糊的过程是:
1)、将QR码图像分成B×B的图像块,然后计算每一块垂直方向的DCT系数Cv(k)和水平方向的DCT系数Ch(k),如公式(3)和(4)所示,其中,f(m,n)为像素点(m,n)灰度值:
2)、通过该DCT系数判断图像块的边缘响应,再通过公式(5)计算整个图像的边缘响应,其中,M为边缘方向大于0的个数,si为图像块的边缘响应:
3)、利用S(n')估计出PSF系数,再通过维纳滤波器对灰度图像进行去模糊处理。
4.根据权利要求3所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S2中,进行边缘检测的过程是:
通过Sobel算子模板与图像数据做卷积运算,从而对图像进行边缘检测:
将Sobel算子模板定义为常量型的数据:
parameter h1=8'hff,h2=8'h00,h3=8'h01,h4=8'hfe,h5=8'h00,h6=8'h02,h7=8'hff,h8=8'h00,h9=8'h01;
parameter v1=8'h01,v2=8'h02,v3=8'h01,v4=8'h00,v5=8'h00,v6=8'h00,v7=8'hff,v8=8'hfe,v9=8'hff;
Sobel模板中变量的位宽都为8,十进制的-1采用补码8’hff表示,十进制的-2采用补码8’hfe表示,其中最高位表示符号位,使用Sobel模板求得图像水平和垂直方向的梯度值后,两者再取绝对值相加,求得整幅图像的灰度梯度。
5.根据权利要求4所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S2中,进行二值化的过程是:
二值化操作是将梯度图像转化为黑白图,转化公式如式(6):
6.根据权利要求5所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S2中,进行形态学处理的过程是:形态学处理是消除噪声、分割出独立的QR码图像元素和寻找图像中的极大值区域或极小值区域,包括腐蚀Erosion和膨胀Dilation操作,如公式(7)所示,I(x,y)表示QR码图像数据里位置为(x,y)的像素值:
7.根据权利要求6所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S4中,卷积神经网络包括3个卷积层、3个池化层、两个全连接层和一个softmax层;第一卷积层、第二卷积层、第三卷积层分别将图像特征信息映射到16维、32维、64维的高维空间中,第一池化层、第二池化层、第三池化层均使用最大池化对特征信息进行下采样处理,第一个全连接层的输出数据维度为1×1×64,第二个全连接层的输出数据维度为1×1×2,表示背景和QR码前景两种概率值,通过softmax层,获取到数据维度为1×1的分数值,该值表示所输入的数据维度为32×32×3的QR码区域可被判定为包含有QR码对象的概率。
8.根据权利要求7所述的批量QR码实时提取***的应用方法,其特征在于,所述步骤S4中,卷积神经网络对图像上的矩形框区域进行分类之前,需要先将已训练好的网络参数权值和偏置值进行结构化处理,将这些网络参数权值和偏置值进行定点量化;使用的定点量化方式如公式(10)-(12)所示,其中,r′表示浮点实数的网络权值,q表示量化后的定点数,数据类型为有符号8bit整数,r′max和r′min分别是r′的最大值和最小值,qmax和qmin分别是q的最大值和最小值,S′是缩放稀疏因子,Z表示浮点实数中的0映射到数时所对应的整数大小,round(·)表示四舍五入:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669471.6A CN115017931B (zh) | 2022-06-14 | 2022-06-14 | 一种批量qr码实时提取方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210669471.6A CN115017931B (zh) | 2022-06-14 | 2022-06-14 | 一种批量qr码实时提取方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115017931A CN115017931A (zh) | 2022-09-06 |
CN115017931B true CN115017931B (zh) | 2024-06-14 |
Family
ID=83075806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210669471.6A Active CN115017931B (zh) | 2022-06-14 | 2022-06-14 | 一种批量qr码实时提取方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017931B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573709A (zh) * | 2023-10-23 | 2024-02-20 | 昆易电子科技(上海)有限公司 | 数据处理***、电子设备及介质 |
CN117314951B (zh) * | 2023-11-20 | 2024-01-26 | 四川数盾科技有限公司 | 一种二维码识别预处理方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902806A (zh) * | 2019-02-26 | 2019-06-18 | 清华大学 | 基于卷积神经网络的噪声图像目标边界框确定方法 |
CN111597848A (zh) * | 2020-04-21 | 2020-08-28 | 中山大学 | 一种批量qr码图像提取方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109961049B (zh) * | 2019-03-27 | 2022-04-26 | 东南大学 | 一种复杂场景下香烟品牌识别方法 |
CN113450376A (zh) * | 2021-06-14 | 2021-09-28 | 石河子大学 | 一种基于fpga的棉株边缘检测方法 |
-
2022
- 2022-06-14 CN CN202210669471.6A patent/CN115017931B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109902806A (zh) * | 2019-02-26 | 2019-06-18 | 清华大学 | 基于卷积神经网络的噪声图像目标边界框确定方法 |
CN111597848A (zh) * | 2020-04-21 | 2020-08-28 | 中山大学 | 一种批量qr码图像提取方法及*** |
Non-Patent Citations (2)
Title |
---|
余顺园.《弱图像信号的复原理论与方法研究》.中国纺织出版社,2021,第6-12页. * |
崔吉,崔建国.《工业视觉实用教程》.上海交通大学出版社,2018,第58-64页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115017931A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115017931B (zh) | 一种批量qr码实时提取方法及*** | |
CN109190752B (zh) | 基于深度学习的全局特征和局部特征的图像语义分割方法 | |
Liu et al. | Understanding the effective receptive field in semantic image segmentation | |
Alidoost et al. | A CNN-based approach for automatic building detection and recognition of roof types using a single aerial image | |
CN108898065B (zh) | 候选区快速筛选与尺度自适应的深度网络舰船目标检测方法 | |
AU2011212422B2 (en) | Efficient scale-space extraction and description of interest points | |
WO2023193401A1 (zh) | 点云检测模型训练方法、装置、电子设备及存储介质 | |
CN110363211B (zh) | 检测网络模型和目标检测方法 | |
CN110570440A (zh) | 一种基于深度学习边缘检测的图像自动分割方法及装置 | |
CN111695609A (zh) | 目标物损伤程度判定方法、装置、电子设备及存储介质 | |
CN110570442A (zh) | 一种复杂背景下轮廓检测方法、终端设备及存储介质 | |
CN113159064A (zh) | 基于精简的YOLOv3电路板电子元件目标检测的方法与装置 | |
CN115830004A (zh) | 表面缺陷检测方法、装置、计算机设备和存储介质 | |
CN113516053A (zh) | 一种具有旋转不变性的舰船目标精细化检测方法 | |
CN107610136B (zh) | 基于凸包结构中心查询点排序的显著目标检测方法 | |
CN113255555A (zh) | 中国交通标志牌识别方法、***、处理设备及存储介质 | |
CN111145196A (zh) | 图像分割方法、装置及服务器 | |
CN114821554A (zh) | 图像识别方法、电子设备及存储介质 | |
CN111161348A (zh) | 一种基于单目相机的物***姿估计方法、装置及设备 | |
CN116309612B (zh) | 基于频率解耦监督的半导体硅晶圆检测方法、装置及介质 | |
CN112396564A (zh) | 一种基于深度学习的产品封装质量检测方法及*** | |
CN111738069A (zh) | 人脸检测方法、装置、电子设备及存储介质 | |
CN115619618A (zh) | 一种基于高层次综合工具的图像处理方法及*** | |
Safaei et al. | A system-level design for foreground and background identification in 3d scenes | |
CN111291767A (zh) | 一种细粒度识别方法、终端设备及计算机可读存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |