基于智能展示线二维码识别系统的研究与设计
2022-03-12王明睿刘振国吕开旺
田 禛,王明睿,刘振国,郭 瑞,吕开旺
(北京机械工业自动化研究所,北京 100120)
0 引言
二维码内可以储存大量的信息,比如产品的说明、产品的生产日期和产地等等,而且二维码的译码可靠性很强加上其读取速度快,这三个突出的优点使二维码广泛应用在各行各业。我们如果能精确的识别出二维码内存储的信息,那么就会对我们下一步要进行的产品的数据采集、产品的分类及存储等工作提供很大的便利。
1 面向智能展示线工作流程介绍
本智能展示线实现的工作是一套笔筒的制作流程,完成从任务订单下发后机器人自动插取物料、相机拍照识别物料是否准确、笔筒圆管的激光打码、笔筒的压装及包装等一系列工艺,具体流程如下。
首先,由Mes下达指令,在自动模式下有三个指令,分别为:生产种类、生产任务、启动,上位机拆解任务逐条下发。上位给机器人发送出库指令,机器人抓取笔筒的托盘至第一工位工作台缓存区,PLC呼叫AGV,然后机器人移至拍照点拍照,得出偏移量,上位读取后下达机器人从缓存区的出库指令,机器人执行出库指令,出库完成后移至第二工位,然后上位给机器人下达拍照指令,相机对笔筒的圆筒、方管和底板进行拍照识别,拍摄物料上的编码来进行识别圆筒的直径,方管长度、宽度,把取出的数据和上位的数据进行判断,若合格,则驱动机器人进行激光打码,打码完成后移至第三工位,机器人把物料送至压装位进行压装,压装通过PLC控制气缸来进行,压装完成后物料由机器人送至AGV移至下一工位。在此工位进行物料包装,包装完成后,机器人给上位完成信号,AGV取出成品入库。工作流程如图1所示。
图1 展示线工作流程图
该系统采用模块化设计,通过信息数据进行逻辑串联、信息绑定及数据追踪等方法进行智能化生产,本文着重于写由相机进行拍照扫码进行物料的判断及防呆的设计。
2 提取目标物的物理信息
本展示线相机采用的型号是海康MV-CE120-10GM,因为其平稳度高,在任何情况下运行图像都不会有抖动动的情况出现,在光照的情况下运动不会出现拖影的情况,支持手动调节光圈大小及焦距等,相机拍摄工位示意图如图2所示。
图2 相机拍摄示意图
首先使用机器人把相机移动至合适的拍照位置,使其对笔筒的托盘、底板、圆筒和方管进行拍照,把提取出来的特征信息保存在数据库中,然后扫描二维码和数据库比对,判断出是否是准确的物料。拍照如图3~图8所示。
调节相机拍照获得的物料特征合适的最小匹配分数(0.5~0.9之间),使其可以实现快速的特征匹配。如图3、图7、图8所示用来判断笔筒托盘的有无和正反,如图4、图5、图6所示,是底板、圆筒和方管的特征识别及物料尺寸测量。
图3
图4
图5
图6
图7
图8
2.1 二维码的扫描及识别
笔筒物理特征提取完成之后,接下来通过扫描二维码对物料进行判断识别,相机扫描二维码流程图如图9所示。
图9 相机拍摄二维码的流程图
拍摄二维码如图10~12所示。
图10
3 二维码图像处理
因为扫描的二维码图像比较模糊,所以需要对其进行图像处理使其变得更加清晰,清晰的图像才能保证识别的准确度,处理流程如图13所示。
图13 二维码的处理流程图
3.1 图像的灰度处理
本文展示线采用工业相机对二维码图像进行拍摄,其拍摄到的是彩色图像,为了减少数据处理量对彩色图像进行灰度化处理,使其成为黑白二维码,灰度化处理公式如式(1)所示。
R、G、B是彩色图像像素的三个分量。
3.2 图像滤波降噪
中值滤波对于一些高密度噪声图像的滤波效果不太理想,因为其算法会对窗口有所限制致使滤波失效,而自适应中值滤波算法优化了这种窗口受限的问题,其可以通过设定好的窗口来判断所取的中值点是否为噪声点。本文采用自适应中值滤波算法[6]。表示自适应滤波器所选窗口的大小,步骤流程如图14所示。
图14 自适应中值滤波流程图
首先判断第一个不等式Pmed>Pmin&Pmax>Pmed是否成立(Pmin/max表示灰度的最小/最大值),若成立,继续判断第二个不等式Pxy>Pmin&Pmax>Pxy,若第一个不等式不成立,那么增大窗口尺寸(大小不能超过允许的最大值Pmax),然后返回第一个不等式进行判断(循环此步骤至满足条件),否则输出Pmed。如果两个不等式都成立则输出Pxy(图像在坐标处的像素值);否则输出Pmed(灰度值的中值)。
3.3 图像二值化处理
二值化处理实际就是把我们不需要识别的部分色彩给弱化掉,把我们需要进行识别的部分突出出来,一般我们二值化处理之后呈现出黑白两种颜色,就是把指定图片的像素点只设置为两种,一种是0另一种是255,这样就可以把目标图和背景图有效的分开。其实就是把选定的阈值T当作是一个基准,然后把选定图片像素点的灰度值以这个基准分为两类,高于这个基准值的分为一类称其为背景图,低于这个基准值的分为一类称其为目标图。公式如下:
图11
图12
其中,g表示经过上述比较分类之后的灰度值。阈值的选取采用Ostu算法进行。
3.4 Ostu算法
Ostu算法是把使得类间方差最大(或最小)的那个值取为最佳阈值T,然后通过这个值把指定图像的像素划分为成了目标和背景。图像总的平均灰度值如式(3)所示:
类间方差如式(4)所示:
可简化如式(5)所示:
g-类间方差值、ω0-目标像素占图像比例、ω1-背景像素占图像比例、μ0-平均灰度、μ1-平均灰度值
其中g的值增大时,目标图与背景图的区分程度就越明显,那么划分错误就不容易出现。所以最佳分割阈值即为g取值最大时对应取的阈值T[6]。
3.5 图像定位处理
二维码的定位就是找到并提取出目标码的位置,这一步骤处理的结果直接关系到后期识别的准确度。定位处理涉及两个部分,一是图像的边缘检测(使用Canny算子边缘检测),二是把其检测到的边缘像素连接成封闭区域(使用Hough变换)。
Canny算子的处理步骤如下:
首先近似计算出和,这两个函数是滤波器一阶偏导数。如式(6)所示:
然后计算出图像的幅度如式(7)所示:
接着计算出图像的方向如式(8)所示:
其中当M(x,y)取最大值时方向角θ(x,y)代表了边缘的方向。
然后使用非极大值抑制算法确定出图像的边缘,接着采用双阈值法检测并连接边缘,即令非极大值阈值为ht1和th2,取th1=th20.4[6]。
Hough变换就是把原空间的图线映射到参数空间中去。原始图像中的点都在式(9)所示直线方程上。
图像的直线在参数空间的方程如式(10)所示:
由上可得,原空间中的点在参数空间中是一条线。
3.6 图像校正处理
经过上述定位后的二维码图像,一般都会出现一些旋转,所以接下来需要把图像的角度给校正回来。
我们使用Hough变换来达到这一目的,此变换是通过检测图像的边界,然后与没做任何处理的原图像的位置对比,进而得出偏移的角度,然后把图像依照偏移的角度还原回去,得到端正图像。如图15所示:
图15 图像旋转示意图
在上图中可看出坐标(x0,y0)与坐标(x1,y1)有θ1度的偏移角度,l是坐标到原点的距离也是坐标旋转的旋转半径。θ2是其旋转半径与x轴的夹角[6]。
初始图像坐标如式(11)所示:
旋转后的图像坐标如式(12)所示:
图像进行旋转或者平移恢复正规形之后会出现一定的几何失真,所以需要对图像进行修正,利用透视变换算法来实现图像的校正,即通过矩阵H,将采集点(x,y)与标准图像平面坐标(μ,ν)之间的关系表示出来,则数学表达式如式(14)所示。H如式(13)所示。
整理得式(15)。
通过求出的矩阵H就可以求出原图像坐标,通过转换得到畸变校正后的图像[6]。
校正之后二维码如图16~图18所示。
图16
图17
图18
3.7 二维码识别结果
把二维码经过处理之后,使用相机进行扫描,识别结果展示如图19~图24所示。
图19
图20
图21
图22
图23
图24
由图16~图23所示可看出方管、圆筒、地板二维码扫描匹配成功即批次及物料特征均正确,方刻二维码及圆刻二维码确认成功,图24可看出物料特征信息,所有物料匹配成功。
4 结语
本文主要是对二维码的内容进行识别判断,首先由相机进行拍照提取物料特征信息,把信息储存在数据库中,然后对二维码进行图像处理提高扫描的准确性。获得的主要结论如下:
根据智能生产线项目,设计了一套高效率、高可靠性、高安全性的二维码智能识别系统,不再使用人工识别,使生产更具智能化和柔性化,也提高了物料识别的准确性。
因为本次设计没有涉及二维码上有遮挡物时的情况,所以没有对此类情况进行分析和探究,这是后续需要深入研究的方向。