基于Ctpn及Tesseract的分纤箱喷码识别技术

2020-07-04 02:13李飞盛刚毕佳佳
电脑知识与技术 2020年13期

李飞 盛刚 毕佳佳

摘要:为了有效识别装维人员在分纤箱上标记的唯一标识码,将识别出来的标识信息与资源系统工单中的信息进行比对,实现家庭宽带装维工单的一致性检验,本文提出了一种分纤箱喷码识别技术。该方法将文本检测技术Ctpn及tesseract文字识别技术进行结合,实现对分纤箱喷码的有效智能识别,替代了人工抽查的方式,提升了质检效率。

关键词:文本检测;分纤箱;喷码识别;工单质检;质检效率

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2020)13-0018-02

当前家庭宽带装维工单的质检工作普遍采用人工抽查的方式进行,需要大量人力进行重复性劳作,存在覆盖率低、时延长、效率低、成本高等问题。因此,装维质量监管力量有限,成为影响装维工作质量的重要因素之一。在装维工作中,装维人员需要根据工单分配的信息对装机的分纤箱进行唯一标识喷码标记,为了检验施工人员的施工一致性,需要将分纤箱上的唯一标识喷码识别出来,与工单中的标识信息进行比对,校验施工是否一致。传统的检验方式是需要人工进行核对,对于这种重复性的工作是非常耗费人力的。因此,随着人工智能技术的飞速发展,OCR文字识别技术也得到了进一步的发展,应用到不同的场景中,如证件识别、车牌识别、拍照识别等不同场景,并取得了很好的效果。本文中的分纤箱喷码识别场景属于一种比较复杂的场景,存在着拍摄角度问题、喷码清晰度问题以及字体多样化等问题,因此本文采用CTPNm网络及tesser-act文字识别结合的方式,对分纤箱上的喷码进行识别,有效提高了识别的准确率,提高工单智能质检的效率和准确性。

1基于Ctpn和tesseract结合的分纤箱喷码识别方法

采用基于CTPN文本检测及tessemct文字识别技术相结合的方式,对分纤箱喷码进行识别。首先,先对采集的图片进行图像预处理,提高输入图像的质量;然后将处理后的图片输入到Ctpn网络中,实现文字区域的检测与分割;最后调用tesseract文字识别技术,实现对喷码的识别,并输出识别的喷码字符。

1.1文字图像预处理

实验所用图片由运营商的服务保障系统采集而来。采集后的分纤箱图片先经过喷码预检测模型,过滤掉一些喷码拍摄不完整、无喷码以及喷码非常模糊的图片,如图2所示。图中的boxl.ipg、box2.ipg、box4.i,pg属于不合规图片,需要过滤掉。box3.jpg属于合规图片,将相对合格的分纤箱喷码图片进行后面的文字识别。将保留合规喷码的图片进行图像预处理,主要包括图像灰度化、图像去噪、图像增强以及图像二值化处理方法。图像预处理过程如图3所示。

1.2基于Ctpn的文字检测与分割方法

对于复杂场景的文字识别,首先要定位文字的位置,即文字检测,然后再对检测的文字区域进行文字识别。文本检测可以看成特殊的目标检测,但又不同于通用的目标检测。文本检测不仅要正确检测到文字,还需要覆盖整个文本长度。本文采取的CTPN算法是在ECCV 2016提出的一种文字检测算法。

传统的文字检测方法没有考虑到上下文,是先将单个字符检测出来后再连接起来。CTPN结合CNN与LSTM深度网络,进行序列特征识别和深度特征提取,能有效地检测出复杂场景的横向分布的文字。CTPN的关键思想是:1)采用垂直anchor回归机制,检测小尺度的文本候选框;2)只预测文本的竖直方向的位置,水平方向的位置不预测,并将候选区域产生的滑窗宽度设为固定值;3)采用RNN循环网络将检测的小尺度文本进行连接,得到文本行。

CTPN的具体实现流程包含三个部分:检测小尺度文本框、循环连接文本框、文本行边缘细化。具体的实现步骤如下:

1)使用VGGl6作为基网络提取特征,得到W*H*C大小的特征图;

2)在上述得到的特征图上使用大小3*3的滑动窗口进行滑动,每个窗口都得到一个长度为3*3*C的特征向量;

3)将特征向量输入到一个双向的LSTM中,得到长度为W*256的输出;

4)然后接一个512的全连接层,输出2k个垂直坐标,2k个评分,k个边缘细化;

5)使用一个标准的非极大值抑制算法来过滤多余的文本框;

6)使用基于图的文本行构造算法,得到由一个个文本段合并的文本行。

本文采用YCG09在github上开源的chinese_ocr项目中基于CTPN训练的模型,该模型使用3420张左右自然场景的文字图片进行训练,并采用定向文本连接器对文字进行连接,最终得到模型参数。由于拍摄角度原因,分纤箱图片上喷码字体存在倾斜的情况,因此在使用CTPN模型检测出文字区域后,根据每个文字区域的坐标计算其倾斜角度degree,degree的计算方法通过调用python中math库下的degrees0函数获取,核心代码计算如下图4所示。其中pt2[o]、pt2[l]是检测的文本矩形框的右下角坐标中的x轴坐标值及y轴坐标值,ptl[o]、ptl[l]是检测的文本矩形框左下角坐标中的x轴坐标值及v轴坐标值。

之后以图像为中心,角度为degree对图像进行旋转,并且在旋转矩阵中加入平移操作,使得原图旋转后完全落在图像中。这样就会输出每个相对水平的文字区域图像,能够有效提高识别准确率。将检测出的文字区域进行分割,如图2中的box3jpg图片经过Ctpn后分割后的字符图片如图5所示。

1.3基于Tesseract的文字識别方法

Tesseract是一款开源的文字识别引擎,最先由HP实验室于1985年研发,后来由Google接收进行改进和优化嘲。Tesser-act能够兼容多种语言的字符识别,在识别英文字符和数字上有着比较精准的效果。

Tesseract的核心步骤包括字符定位与分割、字符识别。Tesseract的字符定位与分割是先将一段文本分割成单个字符,然后逐个识别每个字符。字符识别则采用基于LSTM的深度学习框架。

本文初始尝试了直接调用开源的tesseraet引擎对喷码图片进行识别,先进行图片字符的定位与分割,然后再进行字符识别,但识别的效果非常差,原因是许多分纤箱图片中喷码拍摄不是水平的,tesseraet中对喷码字符的定位与分割效果比较差。因此,本文尝试将Ctpn的文字检测与tesseract文字识别技术相结合,利用Ctpn将图片的文字区域检测并分割出子图,每个子图是一个文本行图片。然后将子图输入到tesseraet中,并设置tesseract中参数PSM为7,7代表将整个图像作为一个单个的文本行。经实验验证,该方法大大提高了识别准确率。

由于分纤箱图片中不仅仅包含喷码字符,还包括其他无关字符,如图5所示,为了精准定位到喷码字符图片,精确输出喷码字符文字,本文做了如下工作:

1)首先对图5中的每一张图片进行文字识别,输出每张图片的识别结果;

2)将每张图片识别的文字结果依次与原图对应的工单中的喷码字符进行文本相似度计算,输出每个相似度值;

3)取相似度值最大的文本字符,即是原图中对应的喷码字符。

2识别准确率的验证结果及分析

为了验证文中的喷码识别方法,从运营商的服务保障系统采集了8000张分纤箱图片进行实验。经过喷码预检测模型,过滤掉4957张不合规图片,对3043张拍摄合规的分纤箱喷码图片进行文字检测与识别。为了对比本文中识别方法的有效性,本文将该方法与直接调用tesseract方法和由CTPN检测、由DenseNet及CTC训练识别文字的方法进行对比,实验对比结果如表1所示。

由表1可知,本文提出的基于CTPN和Tesseract的喷码识别方法在准确率上有了较大的提高,验证了本方法的有效性。

3结束语

本文针对装维质检场景中的分纤箱喷码识别,提出了将Ctpn与tesseract技术相结合的方法对喷码进行识别。本文通过读取分纤箱喷码图片,经过一系列的预检测、灰度化、图像去噪、图像增强以及图像二值化处理预处理,然后Ctpn对图片进行文字检测与分割,分割成多个文字子图,并将子图输入到tes-seract中识别结果,并对识别结果通过相似度匹配进行筛选,输出喷码字符。通过实验对比,验证了本方法的有效性。但本方法仍有一定的缺陷,由于在分割文字子圖后直接调用tesseract,没有考虑到编码的规则性及上下字符的关联,后期再继续研究过程中,将根据实际喷码文字制作喷码字符的图片,利用tes-seract进行自训练,提高识别的准确率。