基于Data Matrix码的煤矿设备信息管理
2020-11-26宋彬刘丽丽张磊王磊杜雨馨张宁
宋彬,刘丽丽,张磊,王磊,杜雨馨,张宁
(徐州工程学院 机电工程学院, 江苏 徐州 221018)
0 引言
随着煤矿自动化生产进程的加快,越来越多功能不一、种类复杂的设备投入使用,增加了煤矿设备信息管理的难度。目前,国内仍有不少煤矿采用人工记录和管理设备基础信息和维修情况,记录内容有限、效率低。建立合理、科学、便捷的煤矿设备信息管理模式必不可少。二维码具有承载广泛数据信息的能力且易被识别,被应用在物体定位、装备管理、安全支付等领域[1-3]。梁柯等[4]利用二维码管理电力通信系统中的通信标志,减轻了工作人员劳动强度。高磊等[5]应用二维码管理智能变电站光缆信息,通过移动终端扫描识别光缆上的二维码,可迅速获得光缆纤芯信息,提高了光缆调试、维护效率。鉴于此,通过二维码记录煤矿设备信息可提高设备管理效率[6]。二维码常用类型包括QR Code,PDF417,Data Matrix。QR Code位置特征明显,具有超高速识别的特点,常被应用于日常的信息管理和消费中[7]。PDF417码具有信息容量大、编码范围广、保密性和防伪性能强等特点,被应用于证件信息保存、生产管理、报表管理等私密性要求高的场合。Data Matrix码具有目前二维码中所能印刷的最小尺寸,可在25 mm2的面积上存储30个数字,并且具有出色的纠错能力,最高只需读取条码20%的信息即可精确识别条码内容[8-9]。煤矿生产环境中煤尘遍布,设备负荷量大,机器磨损程度高,为避免二维码图案磨损,减少读取煤矿设备信息的错误率,本文选择尺寸小、纠错力强的Data Matrix码来承载煤矿设备信息,提出了一种基于Data Matrix码的煤矿设备信息管理方法。该方法分为煤矿设备信息Data Matrix码生成和识别2个部分:将煤矿设备信息分类并通过编码生成Data Matrix码;采集煤矿设备上的Data Matrix码图像,对图像进行处理以定位Data Matrix码区域,通过解码识别Data Matrix码包含的设备信息。
1 煤矿设备信息Data Matrix码生成
将煤矿设备信息分为固有信息和运行信息。固有信息是指设备固有属性,包括设备名称、型号、电压、电流及功率等;运行信息是指设备维修记录,包括设备状态、故障现象、故障原因、维修内容、维修时间、维修人员等。运行信息存储在服务器,将服务器地址同设备固有信息编码生成Data Matrix码。
煤矿设备信息Data Matrix码生成步骤如下。
(1) 数据编码。数据编码是将需要编码的字符信息根据二维码编码方案生成码字流的过程。煤矿设备信息由汉字、英文字母和数字组成。汉字采用内码编码模式,内码采用双字节表示,内码编码规则为高字节×162+低字节,将双字节数转换为7位五进制数,在转换后的7位五进制数上再加上50作为标记。英文字母和数字采用ASCII码编码[10-11]。
(2) 添加纠错码。为保证Data Matrix码损坏的情况下正确解码,需要在生成的码字流中添加纠错码。RS纠错码在使用过程中灵活方便且具有较强的数据纠错能力[10],可纠正T错误(译码过程发生错误)和E错误(没有被扫描或不能被译码)2种数据错误类型,且纠正上述2种类型错误数量为
e+2t≤d-p
(1)
式中:e为E错误个数;t为T错误个数;d为纠错码个数;p为检错码字个数。
一般情况下,p=0;当E错误个数大于纠错码个数50%时,p=3;对于小尺寸的Data Matrix码,e=0,p=1。
(3) 确定Data Matrix码符号版本信息。Data Matrix码符号版本信息有24种,最小单元数为10×10,最大单元数为144×144。根据已添加RS纠错码的码字流长度,确定Data Matrix码符号版本信息。
(4) 放置码字流,生成Data Matrix码。将码字流的每一位映射到放置矩阵中。此外,为帮助识读器读取Data Matrix码,需要在放置矩阵中加入校正图形模块,最终生成Data Matrix码。
2 煤矿设备信息Data Matrix码识别
煤矿设备信息Data Matrix码识别首先使用智能移动终端(手机、摄像头)采集煤矿设备上的Data Matrix码图像,然后采用图像识别技术定位Data Matrix码区域,最后通过解码读取Data Matrix码包含的设备信息。
2.1 Data Matrix码图像定位
Data Matrix码图像定位步骤如下。
(1) 将采集的Data Matrix码图像进行灰度化[12]。
(2) 采用中值滤波算法[13](设置中值滤波窗口大小为3×3)去除灰度化后的Data Matrix码图像噪声,同时保留Data Matrix码的边界信息。
(3) 由于煤矿环境中光线不均匀,需要选择合适的阈值(本文设置为150)进行图像二值化操作,将Data Matrix码图像转换为二值图像[14]。
(4) 将二值化后的Data Matrix码图像用Canny算子检测边缘特征[15]。
(5) 采用改进的Hough变换检测Data Matrix码的L型直线。
(6) 通过双线性插值法[16]校正倾斜的Data Matrix码。
上述步骤中,Data Matrix码的L型直线检测最关键,直接影响最终识别结果。
Hough变换思想:笛卡尔坐标系中直线y=kx+b(k为直线斜率,b为直线截距)可由极坐标系中的点(ρ,θ)(ρ为原点到该直线的距离,θ为原点到该直线垂线与x轴夹角)表示[17],且ρ=xcosθ+ysinθ。将直线上所有点进行Hough变换得到的正弦曲线都相交于一点,直线检测转换为寻找参数空间(ρ,θ)局部最大值。
采用改进的Hough变换检测Data Matrix码的L型直线步骤如下。
(1) 将参数空间(ρ,θ)量化,建立计数矩阵P并将所有元素置0。
(2) 针对Data Matrix码图像中每一个像素点(x,y),将不同θ量化值代入ρ=xcosθ+ysinθ,求解对应ρ,结果存入计数矩阵P,且计数值加1。
(3) 当计数值大于设定的阈值时,说明存在直线。计数矩阵P中最大累加值对应点(ρmax,θmax),该点对应Data Matrix码中最长的直线。
(4) 针对Data Matrix码边缘像素点,求解对应ρ,若ρ=ρmax,将该边缘像素点存入矩阵T。
(5) 在矩阵T中,边缘连续像素点个数大于设定的阈值时,说明存在线段,将线段所包含的连续像素点坐标保存到数组M中。
(6) 检测数组M中的峰值——计数矩阵P中最大累加值所对应的点,将峰值相同的线段进行合并,得到Data Matrix码的L型直线。
2.2 Data Matrix解码
Data Matrix解码是编码的逆过程,流程如图1所示。
图1 Data Matrix码解码流程Fig.1 Flow of Data Matrix code decoding
3 实验验证
采用C++语言编写Data Matrix码生成算法,将煤矿设备固有信息及存储运行信息的服务器地址生成Data Matrix码,如图2所示。该Data Matrix码为正方形,单元数为72×72,存储位数为4 400。Data Matrix码打印尺寸可任意调节,本文设置为25 mm×25 mm。
图2 Data Matrix码Fig.2 Data Matrix code
在模拟矿井环境的实验室条件下,通过相机采集Data Matrix码图像,图像经灰度化处理后如图3(a)所示。利用Canny算子检测图像边缘,如图3(b)所示。通过改进的 Hough变换检测Data Matrix码的L型直线,如图3(c)所示。通过双线性插值法将倾斜的Data Matrix码图像进行校正,如图3(d)所示。
(a) 灰度图
(a) 标准Hough变换
为验证改进的Hough变换检测直线的有效性,选用分辨率为487×482的图像,在配置为Intel(R) Core(TM)i3-2330M CPU@2.20 GHz的PC端上利用Matlab R2016a软件进行实验,分别使用标准Hough变换和改进的Hough变换对Data Matrix码图像进行直线检测,结果如图4所示。可看出采用标准Hough变换检测出多条不需要的直线,而采用改进的Hough变换可准确检测Data Matrix码的L型直线。
采集1 125张不同角度的Data Matrix码图像,采用标准Hough变换和改进的Hough变换进行测试,结果见表1。可看出与标准Hough变换相比,改进的Hough变换耗时缩短了74%,直线检测准确率提高了46.8%。
表1 直线检测结果对比Table 1 Comparison of line detection results
4 结语
针对人工记录煤矿设备信息效率低的问题,将煤矿设备信息编码生成Data Matrix码,利用智能移动终端扫描Data Matrix码进行解码识别,不仅可查看煤矿设备固有信息,还可通过服务器地址访问设备运行信息,实现对煤矿设备的管理与维护;针对矿井环境污染严重、噪声大导致二维码图像定位难的问题,提出了一种改进的Hough变换检测Data Matrix码的L型直线,准确定位图像中Data Matrix码的坐标位置,提高了二维码识别率。基于Data Matrix码的煤矿设备信息管理方法可准确获取设备信息,减少了手工记录操作,提高了设备管理效率。