浙江大学学报(工学版), 2023, 57(5): 948-956 doi: 10.3785/j.issn.1008-973X.2023.05.011

计算机技术与控制工程

基于卷积循环神经网络的芯片表面字符识别

熊帆,, 陈田,, 卞佰成, 刘军

上海电机学院 机械学院,上海 201306

Chip surface character recognition based on convolutional recurrent neural network

XIONG Fan,, CHEN Tian,, BIAN Bai-cheng, LIU Jun

School of Mechanical Engineering, Shanghai Dianji University, Shanghai 201306, China

通讯作者: 陈田,女,教授. orcid.org/0000-0002-2796-4147. E-mail: chent@sdju.edu.cn

收稿日期: 2021-12-25  

基金资助: 上海市地方院校能力建设计划项目(22010501000);上海多向模锻工程技术研究中心资助项目(20DZ2253200)

Received: 2021-12-25  

Fund supported: 上海市地方院校能力建设计划项目(22010501000);上海多向模锻工程技术研究中心资助项目(20DZ2253200)

作者简介 About authors

熊帆(1996—),男,硕士生,从事计算机视觉研究.orcid.org/0000-0002-4167-2255.E-mail:2404440261@qq.com , E-mail:2404440261@qq.com

摘要

基于积分图运算的阈值分割将图像二值化,使用仿射变换完成文本字段图像的方向校正,从而实现文本行的定位.在原始卷积循环神经网络(CRNN)的基础上,将骨干网络替换成MobileNet-V3结构,在2层LSTM之间加入注意力机制,同时引入中心损失函数.利用改进的CRNN实现文本行字符的识别.将改进后的CRNN在40 510 张芯片文本行图像上进行测试.通过小样本数据集进行模型微调训练得到多个子模型,从而实现集成推理,使用3个模型的综合识别准确率稳定在99.97%左右,单张芯片图像的总识别时间小于60 ms.实验结果表明,改进的CRNN算法的准确率比原始CRNN提升了大约27.48%,多模型集成推理的方法可以实现更高的准确率.

关键词: 图像处理 ; 积分图 ; 卷积循环神经网络 ; 字符识别 ; 集成推理

Abstract

A character recognition method based on an improved convolutional recurrent neural network (CRNN) was proposed for the recognition of characters on the chip surface. The image was binarized by the threshold segmentation based on integral map operation, and the orientation correction of the text field image was completed using affine transformation to achieve the localization of text lines. Based on the original CRNN, the backbone network was replaced with MobileNet-V3 structure and the attention mechanism was added between the two layers of LSTM, while the center loss function was introduced. The improved CRNN was used to implement the text line character recognition and tested on 40 510 chip text line images. The multiple sub-models were obtained by fine-tuning the model training with small sample datasets to achieve integrated inference. The combined recognition accuracy used three models was stable at about 99.97%, and the total recognition time of a single chip image was less than 60 ms. The experimental results showed that the accuracy of the improved CRNN algorithm was improved by about 27.48% over the original CRNN, and the integrated inference of multiple models could achieve higher accuracy.

Keywords: image processing ; integral image ; convolutional recurrent neural network ; character recognition ; integrated inference

PDF (1721KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

熊帆, 陈田, 卞佰成, 刘军. 基于卷积循环神经网络的芯片表面字符识别. 浙江大学学报(工学版)[J], 2023, 57(5): 948-956 doi:10.3785/j.issn.1008-973X.2023.05.011

XIONG Fan, CHEN Tian, BIAN Bai-cheng, LIU Jun. Chip surface character recognition based on convolutional recurrent neural network. Journal of Zhejiang University(Engineering Science)[J], 2023, 57(5): 948-956 doi:10.3785/j.issn.1008-973X.2023.05.011

在工业生产制造领域中,物料追踪是其中不可或缺的环节. 每一块集成芯片在生产完成后,都需要进行物料流动记录,即对芯片表面上印刷的型号和序列号等信息进行提取和数据库更新. 光学字符识别(optical character recognition, OCR)[1]是这项工作的技术要点. OCR可分成文本检测、文本行方向校正和文本识别3步. 文本检测指的是定位到文本行字段在图片中所在的区域,即提取感兴趣区域(region of interest, ROI)[2]. 文本检测所提取的局部字段图像需要进行方向校正,使得转换成水平方向的图像,以便于文本识别算法的处理. 文本识别是OCR的核心内容,当前文本识别算法可分为图像处理和深度学习2个分支.

通过图像处理实现字符识别主要是利用模板匹配[3],这种方法需要将字符逐个地分割出来,并事先制作各类字符固定的模板图片,分割出的单个字符图像去遍历所有的模板图像,与该单字符图像重合程度最大的模板所属字符类别被认为是该字符的种类. 姚文凤等[4]通过提前建立的标准字符模板库与待识图像进行异或运算,但是无法解决形近字符的匹配问题. 马欣欣等[5]在传统模板匹配的基础上,提出加权模板匹配法是对集装箱的箱号识别展开研究. 采用深度学习的方法进行字符识别主要是依靠大量数据训练神经网络模型,提取图片中字符的二维形态特征和时序特征. 同样是对于集装箱箱号的识别问题,白睿等[6]使用Lenet-5对行车道路场景下的字符识别进行有关实验研究. 祁忠琪等[7]基于更深层次的卷积神经网络,以单个字符为单位对车牌字符设计了专门的分类模型结构.

从文本的检测问题来看,OCR按照实际应用领域可分为自然场景[8]和单一场景下的OCR.自然场景下最常见的应用实例是车牌识别[9-11]. 这类场景下OCR的特点是整体背景复杂和字体单一,需要相对灵活以及鲁棒性高的ROI提取方法. Naiemi等[12]使用残差网络 (residual network, ResNet)[13]完成文本行的提取,殷航[14]采用YOLOv3网络(You Only Look Once Version3)[15]与最大极值稳定区域算法来实现文本检测.

研究内容主要是面向工业生产制造场景,文本区域所处背景相对单调,理论上来说通过传统图像处理方法即可实现较好的文本区域提取效果,从而减少字符信息的整体提取时间. 技术难点在于如何实现文本行字符的准确识别,在芯片表面字符印刷过程中容易出现浅蚀、油墨黑斑黏连以及生产环境污渍干扰等问题,并且各类芯片产品表面字符印刷字体多样,基于传统模板匹配进行字符识别的方法很难适应多样且不可预测的字体形式.针对芯片表面字符的识别问题,提出一种结合图像处理和深度学习技术的2阶段OCR方案,主要创新点如下:1) 基于阈值分割和仿射变换[16]实现文本行区域的提取和方向校正,提出使用积分图局部阈值分割法,大大缩短文本提取的耗时. 2)基于卷积循环神经网络算法(convolutional recurrent neural network, CRNN)[17] 实现文本行图像的字符识别,在原始CRNN模型网络的基础上,分别对卷积和循环神经网络模块进行改进,同时引入中心损失函数,进一步优化模型的识别准确率和推理时间. 3)针对实际的工业应用场景,提出采用多模型集成推理的方法,有效提高系统整体的识别准确率.

1. 文本行检测和方向校正

1.1. 积分图局部阈值分割

采用基于连通域分析的方法将字符区域以关键字段为单位从背景中分离,对工业相机采集到的原始灰度图像进行阈值分割. 芯片表面的字符信息可能存在各种污渍干扰或字符印刷深浅不一,导致前景目标出现多层级灰度,给阈值分割带来困难. 阈值分割按照阈值的选取方式可分为全局阈值法和局部阈值法,前者是对整幅图像选取相对固定单一的阈值,而后者是对每个像素在一定的邻域范围内求取不同的阈值,各个像素的阈值由其邻域像素的灰度值情况决定. OTSU法[18]采用前景像素与背景像素之间的类间方差最大灰度值作为该幅图像阈值,是一种常见的全局阈值分割方法,而局部阈值分割常用的邻域阈值计算方法有均值、中值和高斯加权平均等.

本研究采用基于积分图运算的局部阈值分割方法. 常见的邻域阈值计算方法能够应对灰度不均情况下的阈值分割问题,不足之处是算法耗时相对较长. 单通道灰度图像可看作一个由像素点构成的二维矩阵,而积分图[19]是一种对子矩阵中各元素快速求和的算法,利用积分图可以大大减少邻域阈值的计算时间. 图像积分的本质其实就是求和,积分图是一种伪图像,其中每个点的值是相应原图像中该点左上角的所有像素值之和,表达式为

$ I(x,y) = f(x,y)+I(x - 1,y)+I(x,y - 1) - I(x - 1,y - 1). $

式中: $I$为积分图中某点的积分值, $(x,y)$为某点的位置坐标, $f$为灰度图像中某点的像素灰度值.

根据式(1)可反解出一定矩形区域内的灰度值之和:

$ \begin{split} \sum\limits_{x = {x_1}}^{{x_2}} {\sum\limits_{y = {y_1}}^{{y_2}} {f(x,y)} } =\;& I({x_2},{y_2}) - I({x_2},{y_1} - 1) - \\ \;&I({x_1} - 1,{y_2})+I({x_1} - 1,{y_1} - 1). \end{split} $

式中: $({x_2},{y_2})$为矩形区域右下角点的位置坐标; $ ({x_2},{y_1} - 1) $为矩形区域右上角点上一格像素的位置坐标,其余位置关系类似, $({x_1}-1,{y_2} ) $为矩形区域左下角点左一格像素的位置坐标, $({x_1}-1,{y_1}-1 ) $为矩形区域左上角点的左上一格像素的位置坐标. 结合式(1)、(2)设定积分图的阈值分割判别规则表达式为

$ f(x,y)c \leqslant (1 - t)\sum\limits_{x = {x_1}}^{{x_2}} {\sum\limits_{y = {y_1}}^{{y_2}} {f(x,y)} } . $

式中: $ c $为所选取矩形邻域内的像素个数总和, $ t $为可调节的常数参数.

当式(3)成立时,积分图阈值分割将二值化图像对应的像素值 $ f(x,y) $置为255,否则置为0. 如图1所示,求取原图像中D区域内所有像素之和,只需利用积分图中4个伪像素值进行加减法运算.

图 1

图 1   积分图计算示例

Fig.1   Example of integral diagram calculation


以坐标点(2,3)到(4,4)之内的区域为例,对应的实际像素之和为11=1+0+4+1+3+2,而通过式(2)计算得33−17−9+4=11. 通过积分图阈值分割算法,无论选取的邻域尺寸 $({x_2} - {x_1}) \times ({y_2} - {y_1})$多大,需要的运算次数都是固定的.常规计算方法需要 $({x_2} - {x_1}) \times ({y_2} - {y_1})$次加法,时间复杂度也会随着邻域的增大而增大.

1.2. 仿射变换

采用的文本行识别算法是以仅含单行文本字段的水平图像为单位进行处理的,实际获取的芯片样品原图像中芯片放置的角度是随机的,因此需要将ROI提取出来后进行水平方向校正. 仿射变换是一种二维坐标领域的线性变换,通过设置不同的仿射矩阵,可以实现图像的不同变换. 通过仿射变换对各文本字段区域图像进行角度校正的表达式为

$ \left[ {\begin{array}{*{20}{c}} u \\ v \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} {{a_2}} & {{a_1}} & {{a_0}} \\ {{b_2}} & {{b_1}} & {{b_0}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{u'}} \\ {{v'}} \\ 1 \end{array}} \right]. $

式中: $ u $$ v $为经过仿射变换后的像素点坐标; $ {a_2} $$ {a_1} $$ {a_0} $$ {b_2} $$ {b_1} $$ {b_0} $为仿射矩阵的各子元素,各元素参数值可根据需要进行设置; $ {u'} $$ {v'} $为仿射变换前的坐标.

2. 文本行识别

2.1. 系统整体方案

在实际的应用终端,产线要求系统工作过程中的人为参与尽可能少,即需要极高的识别准确率,这就要能够保证系统的运行效能和准确性,以大幅减少系统识别出错和人工修正结果的次数,从而提升自动化程度.考虑到芯片表面字体的多样性以及产能与人力工作量的悬殊,在文本行识别阶段,提出一种基于改进 CRNN 的模型端侧训练和推理的综合方案.

文本行识别整体系统方案流程如图2所示.终端最开始部署的是预训练模型A,该模型能够应对一般情形下的字符识别,但是单一的训练模型广义的准确率难以达到实际要求,因此需要通过在线训练以得到效果更好的模型. 在初始状态下,系统首先获取一张芯片样本图像,经过文本行检测后得到文本行字段图像,进而通过随机添加噪声、高斯模糊等方式实现数据增强,得到更多数量的实际样本,并加入到基础数据集中,对模型A进行微调训练得到首次训练模型B. 将模型B继续投入推理工作流程,模型对每张输入的图像会输出推理结果及相应的置信度. 当置信度低于一定阈值时认为该图像推理可能失误,人工进行修正后将该直接图像加入到训练模型B时使用的数据集中. 当模型B推理失误的样本数据量积累到一定数量后,与上一次训练模型B时所使用的数据集共同构成新的训练数据集,用于在模型B的基础上微调训练得到2次训练模型C,从而最后可使用A、B、C这 3个模型进行综合集成推理.

图 2

图 2   文本行识别整体方案流程

Fig.2   Overall scheme process of text line recognition


2.2. CRNN算法基本原理

CRNN是一种将卷积神经网络(convolutional neural network, CNN)与长短期记忆神经网络(long short term memory, LSTM)[20]结合的文本行识别模型,其中CNN负责学习文本行图像的空间形态特征,LSTM负责学习上下文时间序列特征,最后LSTM的结果通过转译层输出为最后的推理结果,原始CRNN的结构如图3所示.

图 3

图 3   原始CRNN结构系统

Fig.3   Original CRNN structure


在原始CRNN中卷积神经网络模块的骨干网络为VGG (visual geometry group)[21]结构,在其输入将灰度图缩放到尺寸为W×32,W为宽度,即固定高为32. 为了更好提取文本行图像的特征,第3个和第4个池化层采用的核尺寸为1×2,为了加速收敛引入了BatchNormalization模块. CNN的输出尺寸为 (512, 1, 40)的特征图组,每张特征图中第i个元素构成新的特征向量,即得到40个长度为512的特征向量序列,其中每个特征向量对应于原始图像中一个感受野.

循环神经网络模块采用2层各256单元的双向LSTM网络,其目标就是为了预测各个感受野对应属于的字符类别. CNN输出的特征向量序列作为LSTM的时间步输入,LSTM输出为所有字符的Softmax后验概率矩阵,该后验概率矩阵的宽度和高度分别为特征序列向量的个数和字符类别数,该后验概率矩阵将作为转译层的输入. 最后转译层将各特征向量对应的预测结果转译成标签向量,每个特征向量的预测结果中筛选出置信度最高的标签向量. CRNN通过连接时序分类(connectionist temporal classification, CTC)损失函数来对CNN和LSTM进行端到端的联合训练.

2.3. 改进的CRNN算法

2.3.1. CNN模块

芯片表面字符识别的应用主要在于产品型号和序列号等英文字符信息的获取,字符类别相对较少. 为了进一步提高模型推理的速度,将VGG替换成MobileNet-V3[22]结构作为CNN模块的骨干网络,修改后的网络结构如表1所示. 表1中卷积参数k为卷积核的尺寸,s为卷积核滑动的步长,p为特征图四边填充的宽度.与特征图的宽、高2个方向相对应,表1中卷积参数列括号中的每组值对应着卷积核横向、纵向2个参数.

表 1   改进后的CNN模块结构

Tab.1  Improved CNN module structure

类型 描述 激活函数 卷积参数
Input W×32
Conv Layer 1 3→32 h-swish k: (3,3)s: (2,2)p: (1,1)
Conv Block 1 32→32 relu k:(1,1)-(3,3)-(1,1)s:(1,1)-(1,1)-(1,1)p:(0,0)-(1,1)-(0,0)
Conv Block 2 32→48 relu k:(1,1)-(3,3)-(1,1)s:(1,1)-(2,2)-(1,1)p:(0,0)-(1,1)-(0,0)
Conv Block 3 48→48 relu k:(1,1)-(3,3)-(1,1)s:(1,1)-(1,1)-(1,1)p:(0,0)-(1,1)-(0,0)
Conv Block 4 48→64 h-swish k:(1,1)-(3,3)-(1,1)s:(1,1)-(2,2)-(1,1)p:(0,0)-(1,1)-(0,0)
Conv Block 5 64→96 h-swish k:(1,1)-(3,3)-(1,1)-(1,1)s:(1,1)-(1,1)-(1,1)-(1,1)p:(0,0)-(1,1)-(0,0)-(0,0)
Conv Block 6 96→128 h-swish k:(1,1)-(3,3)-(1,1)-(1,1)s:(1,1)-(1,1)-(1,1)-(1,1)p:(0,0)-(1,1)-(0,0)-(0,0)
Conv Block 7 128→256 h-swish k:(1,1)-(3,3)-(1,1)s:(1,1)-(2,1)-(1,1)p:(0,0)-(1,1)-(0,0)
Conv Block 8 256→256 h-swish k:(1,1)-(3,3)-(1,1)s:(1,1)-(1,1)-(1,1)p:(0,0)-(1,1)-(0,0)
Conv Layer 2 256→512 h-swish k:(2,2) s:(1,1)p:(0,0)
Output 512×1×40

新窗口打开| 下载CSV


改进后的CNN模块包括8个卷积模块组和2个卷积层,其中每个卷积模块组包含3、4个卷积层. 随着神经网络层次的加深,应用非线性激活函数的成本会降低,同时减少参数量. swish类的激活函数本身具有无上界、有下界、平滑且非单调的特性,可以带来更好的效果,表达式为

$ {{\rm{swish}}}\; (x) = x \cdot \sigma \;(x). $

式中: $ x $为输入的网络特征张量中某一元素的值, $\sigma \;(x)$为sigmoid激活函数, ${{\rm{swish}}}\; (x)$为经过swish激活函数之后的元素活性值.

h-swish激活函数是swish激活函数的一个近似拟合函数,但是去掉了sigmoid操作,计算量得以大大减少,因此MobileNet-V3结构在后半部分卷积模块中将relu激活函数替换为h-swish激活函数,表达式为

$ {h} {\text{-}} {\rm{swish}}\;(x) = x\left( {\frac{{{{\rm{ReLU}}} 6\;(x+3)}}{6}} \right). $

式中: $ x $为输入的网络特征张量中某一元素的值; $ {{\rm{ReLU}}} 6 $为relu激活函数的变体,当输入 $ x $>6时,导数为0; ${{\rm{h}}} {\text{-}}{\rm{swish}}\;(x)$为经过h-swish激活函数之后的元素活性值.

图4中,横纵坐标分别为2种激活函数的输入值和输出值,从图中可以看出swish与h-swish激活函数的函数特性基本一致,其最大偏差值不会超过0.2,元素活性值继续经过归一化之后二者的差距几乎可以忽略.

图 4

图 4   swish和h-swish激活函数曲线特性

Fig.4   Curve characteristics of swish and h-swish activation functions


2.3.2. LSTM模块

注意力机制(attention mechanism)[23]是对输入的权重进行分配,最开始使用注意力机制是编码器和解码器的应用, 通过对编码器所有时间步的隐藏状态做加权平均来得到下一层的输入变量. 注意力机制的广义表达式为

$ {\boldsymbol{O}} = {{\rm{softmax}}}\; ({\boldsymbol{Q}}{{\boldsymbol{K}}^{\rm{T}}}){\boldsymbol{V}}. $

式中: $ {\boldsymbol{O}} $为注意力机制的输出向量, $ {{\rm{softmax}}} $为归一化指数函数, $ {\boldsymbol{Q}} $为查询项矩阵, $ {{\boldsymbol{K}}^{\rm{T}}} $为键项的转置矩阵, $ {\boldsymbol{V}} $为加权平均项.

可以将注意力机制理解成一个由查询项矩阵 $ {\boldsymbol{Q}} $和所对应的键项转置矩阵 $ {{\boldsymbol{K}}^{\rm{T}}} $以及需加权平均的值项 $ {\boldsymbol{V}} $所构成的一层感知机. $ {\boldsymbol{Q}} $$ {{\boldsymbol{K}}^{\rm{T}}} $进行相似度计算,得到权值,权值经过 $ {{\rm{softmax}}} $归一化之后得到可用的权重项,最后与 $ {\boldsymbol{V}} $进行加权求和. 注意力机制可以获得较长的依赖,能够使得模型对较长文本段的识别能力增强. 并擅长捕捉局部与全局的关系,并且每一步的计算都是独立的,每一步的计算都不依赖于上一步的计算结果,可以实现并行加速,从而减少模型训练的收敛时间与推理时间.

在2层LSTM之间加入一层注意力机制结构,如图5所示. 对于第1层LSTM的每个时间步的输出 $ {\boldsymbol{O}}_i $,分别计算 $ {\boldsymbol{O}}_i $其他时间步输出 $ {\boldsymbol{O}}_i $之间的距离 ${d_{i,j}}$. 从而根据时间步输出向量的距离可构成一个新的距离矩阵 $ {\boldsymbol{D}} $,那么第2层LSTM的输入表达式为

图 5

图 5   改进后的LSTM模块结构

Fig.5   Improved LSTM module structure


$ {\boldsymbol{O}}_{\boldsymbol{i}}' = {{\boldsymbol{D}}_i}[{{\boldsymbol{O}}_1},{{\boldsymbol{O}}_2},\cdots ,{{\boldsymbol{O}}_i}]. $

式中: $ {\boldsymbol{O}}_{\boldsymbol{i}}' $为注意力机制层层的输出向量, $ {{\boldsymbol{D}}_i} $为距离矩阵 $ {\boldsymbol{D}} $的第i行; $ {{\boldsymbol{O}}_1} $$ {{\boldsymbol{O}}_i} $分别为上一层LSTM各时间步的输出向量.

2.3.3. 中心损失函数

原始CRNN中使用的CTC损失函数对于形近字可能表征不足,为了更好地扩大类间距离、缩小类内距离,提出引入中心损失函数(center loss)[24]与CTC-Loss组成新的损失函数,进行联合训练. 中心损失函数的表达式为

$ {L_{\text{c}}} = \frac{1}{2}\sum\limits_{i = 1}^m {\left\| {{{\boldsymbol{x}}_i} - {{\boldsymbol{c}}_{_{{y_i}}}}} \right\|_2^2} . $

式中: $ {L_{\text{c}}} $为中心损失函数计算值, ${{\boldsymbol{c}}_{_{{y_i}}}} $为第yi个类别的特征中心向量, $ {{\boldsymbol{x}}_i} $为全连接层之前的特征向量, $ m $为特征向量的个数.CTC损失函数表达式为

$ {L_{{\text{ctc}}}} = - \sum\limits_{(z,l) \in S} {\ln }\; p(l|z). $

式中: $ {L_{{\text{ctc}}}} $为CTC损失函数计算值, $ l $ 为目标样本类别, $ z $为输入样本类别, $ p(l|z) $为输入样本类别 $ z $属于目标样本类别 $ l $的概率值, $ S $为所有类别标签的集合.

首先得到第2层LSTM的输出以及模型的最后预测结果,将预测结果中字符数量和标签字符数量相等的部分保留下来,并提取出相应的真实标签和对应的特征向量. 将LSTM的输出特征与相应类别的特征中心计算中心损失函数值,将计算出的中心损失函数结果乘以系数 $ \lambda $然后与连接时序分类损失函数求和,最终损失函数表达式为

$ {L_{{\text{c - ctc}}}} = {L_{{\text{ctc}}}}+\lambda {L_{\text{c}}}. $

式中: $ \lambda $为可调节的比例因子.

通过引入中心损失函数,可以强化字符特征的差异,比如“0”和“O”、 “6”和“G”这种形态相近的字符,使得相近字符的特征分布更加分散,从而提高分类的准确率.

2.4. 集成推理

监督学习下的神经网络模型算法的目标是通过大量训练得到一个在任意目标数据下都表现良好的模型,但实际多数情况下只能得到多个有偏好的模型. 对于工业层面的实际应用,系统单位时间内的工作量比非工业应用大得多,因此对目标任务的检测精度和效率都有着极高的要求. 通过模型的多线程集成推理可以在保证效率的前提下有效提高检测精度.

多模型集成推理的思想是即使其中某一个子模型输出错误的预测,依靠其他子模型最终也可以给出更可靠的结果.如果各子模型在不同的数据上的表达能力存在差异性,那么模型集成通过综合多个子模型的推理结果,可以实现更佳的预测.理论上来说随着系统综合子模型数量的增多,集成推理的准确率将无限接近于100%.

硬投票法假设投票最多的类别为最佳结果,即在多个模型的预测结果中出现次数最多的结果为最终结果,则将其作为模型集成的最后输出.在硬投票法的基础上,利用A、B、C这3个模型的输出结果和置信度. 通过集成推理筛选出最佳结果I. 多模型集成推理过程如图6所示. 当3项结果的置信度均大于所设的阈值时,直接通过硬投票法选出最佳结果;当存在低于所设阈值的结果时,选出置信度值最高的结果作为最佳结果.

图 6

图 6   多模型集成推理

Fig.6   Multi-model integrated inference


3. 实验结果分析

3.1. 文本行检测

将OTSU、高斯局部阈值分割、积分图局部阈值分割3种方法进行对比测试,从图7可以看到OTSU阈值分割法在各字符印字内部灰度均匀分布的情况下分割效果较好,并且噪点最少,对于一些浅印的字符会出现前景丢失的情况. 局部阈值分割能够应对图像灰度不均的情况,缺点是带来了一些噪点像素,可以通过形态学方法进行滤除. 本研究采用的基于积分图运算的局部阈值分割法比高斯加权平均运算的方法噪点更少.

图 7

图 7   不同算法的阈值分割效果对比

Fig.7   Comparison of threshold segmentation effects of different algorithms


在效率方面,测试采集的芯片图像尺寸为762×382,3种方法的阈值分割平均时间分别为0.42、24.98和1.78 ms,可见作为全局阈值法的OTSU耗时最短,但是分割效果的鲁棒性较低. 在局部阈值法中使用积分图运算的耗时比高斯加权平均运算小得多. 综合来看,提出的基于积分图运算的局部阈值分割方法最佳.

3.2. 方向校正

图8所示,通过对原灰度图进行基于积分图运算的阈值分割,利用不对称的横向结构元素对得到的二值化图像进行闭操作,从而将文本行区域各字符连通起来形成整体区域块,每个区域块对应着一个字段.再从中查找轮廓,得到各文本块的位置,每个文本块对应着一个带角度的倾斜矩形,利用该矩形的中心点坐标和角度信息可以求取仿射矩阵,进而通过仿射变换将图像中的文字校正为水平方向. 最后,逐个将经过方向校正的文本行图像提取出来.

图 8

图 8   文本字段区域的方向校正

Fig.8   Orientation correction of text field area


3.3. 文本行识别

采用ICDAR2019-LSVT数据集对改进后的CRNN进行预训练,得到预训练模型.测试数据源自实拍的20 255张芯片图像,面阵相机分辨率为30万,光源采用的是同轴红光光源.实验的计算机平台环境为Windows10系统,CPU 为Intel Core i5-9500E,GPU平台为NVIDIA Quadro P1000 显卡,显存大小为4G.Python版本为3.7.4,深度学习框架为Pytorch 1.6.0.

经过文本行检测提取之后得到40 510张文本字段图像,以文本字段整体为基本单位,原始的CRNN在这批实际数据上的识别准确率为67.353%. 以型号信息“N002D1”为例,其中有大量的字符数字“0”被识别成字母“O”,数字“1”被识成字母“I”.改进的CRNN预训练模型在这批实际数据的识别准确率为94.831%,尚未达到产线实际要求.再使用小样本规模的芯片表面字符实拍数据集对预训练模型进行微调,通过调整小样本的数据源,最后得到3个可用的子模型进行集成推理.

模型微调使用的基础数据集为算法随机生成的62张伪文本图像,如图9所示. 加入少量实际样本数据增强的图像后,共同构成实际训练模型所用的数据集. 基于Adam优化器,每次训练的迭代周期为30轮,完成1次模型微调训练的时间控制在小于50 s. 表2显示了6组实验测试结果,ACC为准确率,其中初次训练使用的一组文本行图像能将预训练模型微调至比较擅长该系列芯片图像及字体样本的预测,平均准确率能提高到99.872%左右,还需要二次训练再次进行微调.二次训练模型的准确率在首次训练模型的基础上略有浮动,最后将预训练模型、首次训练模型和二次训练模型进行综合集成推理,可将模型准确率提高到99.970%左右,单个文本字段的平均集成推理时间在27 ms左右,单张芯片的全阶段字符识别时间在小于60 ms以内,总体达到了产线需求.

图 9

图 9   基础数据集图像

Fig.9   Basic dataset images


表 2   集成推理准确率测试结果

Tab.2  Integrated inferring accuracy test results

IC文本行图像 ACC/%
初次训练 二次训练 多模型综合
99.946 99.872 99.981
99.965 99.958 99.973
99.876 99.953 99.963
99.891 99.968 99.976
99.936 99.963 99.973
99.662 97.759 99.847

新窗口打开| 下载CSV


最后一组测试的准确率比前几组有所下降,原因在于初次训练使用的样本图像中字符种类相对集中在“0”、 “1”、 “2”这几种类别,导致训练效果不佳,不过此问题可通过调整初次训练所用的样本图像数据集进行解决,使样本中所含的字符类别尽可能分散.以单模型为对象,将原始CRNN与提出的改进CRNN进行对比实验,实验结果如表3所示.

表 3   CRNN各项改进的对比测试结果

Tab.3  Comparative test results of CRNN improvements

模型形态 A/% T/ms
原始CRNN 67.353 25.04
CNN改进后 74.068 14.58
LSTM改进后 78.474 19.14
损失函数改进后 90.751 23.90
综合改进后 94.831 11.85

新窗口打开| 下载CSV


在前述的40 510张文本字段图像测试数据上,与原始CRNN相比,将CNN模块改进后,模型准确率提升至74.068%,单张图像平均推理时间缩短至14.58 ms. 将LSTM模块改进后,相比于原始CRNN,模型准确率可提升至78.474%,平均推理时间为19.14 ms. 在损失函数的改进测试中,取 $ \lambda $=0.2,模型准确率A=90.751%,平均推理时间T=25.04 ms,时间基本持平于原始CRNN.

在综合3处改进后,模型准确率提升至94.831%,平均推理时间缩短至11.85 ms. 可以看出引入中心损失函数对准确率带来的提升最大,提高了形近字符的分辨能力,而CNN模块的改进在提升推理效率方面产生的效果最好.

4. 结 语

提出的基于改进CRNN的芯片表面字符识别是一种针对工业产品物料追踪问题的OCR综合方案,具有较强的理论意义和应用价值,可以方便地部署在应用终端.作为两阶段的OCR算法,本研究利用基于积分图运算的局部阈值分割方法,有效降低了文本字段的检测时间. 改进后的CRNN在效率和准确率方面都有较大的提升,引入的中心损失函数能有效解决形近字符的识别失误问题. 通过在端侧的模型实时调整训练和多模型综合集成推理策略,可以保证系统的准确率和高可用性,大大节省了人工成本,同时进一步提高产能.

参考文献

王珂, 杨芳, 姜杉

光学字符识别综述

[J]. 计算机应用研究, 2020, 37 (Suppl.2): 22- 24

[本文引用: 1]

WANG Ke, YANG Fang, JIANG Shan

Overview of optical character recognition

[J]. Application Research of Computers, 2020, 37 (Suppl.2): 22- 24

[本文引用: 1]

陈景柱, 鲍玉斌

图像处理中基于改进YOLO的ROI提取算法研究

[J]. 数学的实践与认识, 2020, 50 (22): 179- 185

[本文引用: 1]

CHEN Jing-zhu, BAO Yu-bin

ROI extraction algorithm based on improved YOLO in image processing

[J]. Journal of Mathematics in Practice and Theory, 2020, 50 (22): 179- 185

[本文引用: 1]

郭晓峰, 王耀南, 毛建旭

基于几何特征的IC芯片字符分割与识别方法

[J]. 智能系统学报, 2020, 15 (1): 144- 151

DOI:10.11992/tis.201904028      [本文引用: 1]

GUO Xiao-feng, WANG Yao-nan, MAO Jian-xu

IC chip character segmentation and recognition method based on geometric features

[J]. CAAI Transactions on Intelligent Systems, 2020, 15 (1): 144- 151

DOI:10.11992/tis.201904028      [本文引用: 1]

姚文凤, 甄彤, 吕宗旺, 等

车牌字符分割与识别技术研究

[J]. 现代电子技术, 2020, 43 (19): 65- 69

DOI:10.16652/j.issn.1004-373x.2020.19.016      [本文引用: 1]

YAO Wen-feng, ZHEN Tong, LV Zong-wang, et al

Research on technology of segmentation and recognition of license plate character

[J]. Modern Electronics Technique, 2020, 43 (19): 65- 69

DOI:10.16652/j.issn.1004-373x.2020.19.016      [本文引用: 1]

马欣欣, 李小平

集装箱箱号字符识别关键技术的研究

[J]. 现代电子技术, 2019, 42 (14): 131- 134

DOI:10.16652/j.issn.1004-373x.2019.14.030      [本文引用: 1]

MA Xin-xin, LI Xiao-ping

Research on key technologies for character recognition of container numbers

[J]. Modern Electronics Technique, 2019, 42 (14): 131- 134

DOI:10.16652/j.issn.1004-373x.2019.14.030      [本文引用: 1]

白睿, 徐友春, 李永乐, 等

智能车道路场景数字字符识别技术

[J]. 激光与光电子学进展, 2021, 57 (15): 178- 185

[本文引用: 1]

BAI Rui, XU You-chun, LI Yong-le, et al

Digital character recognition technique for intelligent vehicles in road scenes

[J]. Laser and Optoelectronics Progress, 2021, 57 (15): 178- 185

[本文引用: 1]

祁忠琪, 涂凯, 吴书楷, 等

基于深度学习的含堆叠字符的车牌识别算法

[J]. 计算机应用研究, 2021, 38 (5): 1550- 1554

DOI:10.19734/j.issn.1001-3695.2020.04.0147      [本文引用: 1]

QI Zhong-qi, TU Kai, WU Shu-kai, et al

Recognizing license plate with stacked characters based on deep learning

[J]. Application Research of Computers, 2021, 38 (5): 1550- 1554

DOI:10.19734/j.issn.1001-3695.2020.04.0147      [本文引用: 1]

VISHNUVARDHAN A, SRIHARSHA M N

An overview of text detection in natural scene images

[J]. International Journal of Innovative Technology and Exploring Engineering, 2019, 8 (7c2): 384- 387

[本文引用: 1]

ZHAI W, GAO T, FENG J

Research on pre-processing methods for license plate recognition

[J]. International Journal of Computer Vision and Image Processing, 2021, 11 (1): 47- 79

DOI:10.4018/IJCVIP.2021010104      [本文引用: 1]

LAROCA R, ZANLORENSI L A, GONÇALVES G R, et al

An efficient and layout-independent automatic license plate recognition system based on the YOLO detector

[J]. IET Intelligent Transport Systems, 2021, 15 (4): 483- 503

DOI:10.1049/itr2.12030     

CHEN Z, YAN L, YIN S, et al

Vehicle license plate recognition system based on deep learning in natural scene

[J]. Journal of Artificial Intelligence, 2020, 2 (4): 167

DOI:10.32604/jai.2020.012716      [本文引用: 1]

NAIEMI F, GHODS V, KHALESI H

A novel pipeline framework for multi oriented scene text image detection and recognition

[J]. Expert Systems with Applications, 2021, 170: 114549

DOI:10.1016/j.eswa.2020.114549      [本文引用: 1]

HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016: 770-778.

[本文引用: 1]

殷航. 基于YOLO的自然场景中文文本检测算法研究[D]. 武汉: 武汉科技大学, 2020: 17.

[本文引用: 1]

YIN Hang. Research on Chinese text detection algorithm for natural scenes based on YOLO [D]. Wuhan: Wuhan University of Science and Technology, 2020: 17.

[本文引用: 1]

REDMON J, FARHADI A. YOLOv3: an incremental improvement [EB/OL]. [2019-02-25]. https://arxiv.org/abs/1804.02767v1.

[本文引用: 1]

傅勇, 潘晴, 田妮莉, 等

改进级联卷积神经网络的平面旋转人脸检测

[J]. 计算机工程与设计, 2020, 41 (3): 856- 861

DOI:10.16208/j.issn1000-7024.2020.03.041      [本文引用: 1]

FU Yong, PAN Qing, TIAN Ni-li, et al

Face detection of rotation in plane based on improved cascade CNN

[J]. Computer Engineering and Applications, 2020, 41 (3): 856- 861

DOI:10.16208/j.issn1000-7024.2020.03.041      [本文引用: 1]

SHI B G, BAI X, YAO C

An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 39 (11): 2298- 2304

[本文引用: 1]

MERZBAN M H, MAHMOUD E

Efficient solution of Otsu multilevel image thresholding: a comparative study

[J]. Expert Systems with Applications, 2019, 116: 299- 309

DOI:10.1016/j.eswa.2018.09.008      [本文引用: 1]

BRADLEY D, ROTH G

Adaptive thresholding using the integral image

[J]. Journal of Graphics Tools, 2007, 12 (2): 13- 21

DOI:10.1080/2151237X.2007.10129236      [本文引用: 1]

SHI X, CHEN Z, WANG H, et al. Convolutional LSTM network: a machine learning approach for precipitation nowcasting [C]// Advances in Neural Information Processing Systems. Montreal: NIPS, 2015: 802-810.

[本文引用: 1]

SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [C]// International Conference on Learning Representations. San Diego: ICLR, 2015: 1-14.

[本文引用: 1]

HOWARD A, SANGLER M, CHU G, et al. Searching for mobilenetv3 [C]// Proceedings of the IEEE/CVF Intern-ational Conference on Computer Vision. California: IEEE/CVF, 2019: 1314-1324.

[本文引用: 1]

BAHDANAU D, CHO K, BENGIO Y. Neural machine translation by jointly learning to align and translate [C]// International Conference on Learning Representations. San Diego: ICLR, 2015: 1-15. .

[本文引用: 1]

WEN Y, ZHANG K, LI Z, et al. A discriminative feature learning approach for deep face recognition [C]// European Conference on Computer Vision. Cham: Springer, 2016: 499-515.

[本文引用: 1]

/