基于会计信息智能化管理的票据图像处理与识别
2020-10-20李宗民
李宗民
(中原工学院经济管理学院,郑州 450007)
在数字经济时代,随着智能技术的快速发展与广泛应用,将深刻影响会计行业和业务的发展,促进会计信息处理方式的创新和会计人员职能的转型升级[1]. 通过人工智能与会计业务的融合,会计人员可以借助智能算法实现会计信息的高效、精准、自动处理,弥补传统会计信息处理方式的准确性、实效性和完整性不足等缺点,提升会计信息处理的效率与效益[2],原有流程性、标准化和重复性的会计业务将被人工智能取代[3]. 这些特征将促使会计人员从会计核算职能,向强化内控、辅助与参与企业经营决策等管理会计职能方向转型.
会计核算业务中的大部分凭证、票据等信息会计都是以图像为载体呈现,如何借助人工智能算法和图像处理技术将图像信息转换成准确、及时和有效的文本信息,对提高会计处理处理效率、质量、及时性等方面具有关键意义,也是促进会计人员职能转型升级的前提与保障.
近年来,针对会计信息智能处理方面的研究,一些专家、学者做了有意义的研究与探索. 张艳等提出运用框线检测,建立框线相似模型,精确提取票据图像框架特征,对票据类别进行分类[4]. 李治江等提出运用朴素贝叶斯理论,构建朴素贝叶斯分类模型,把图像中的各个像素分成二类放到模型中,有效地实现彩色图像各颜色区域的分离[5]. 韩征等提出运用蒙特卡洛模拟的图像二值化增强算法,对背景复杂、亮度不均匀的图像进行二值化分割[6]. 倬栋等综合最大类间方差法和Bernsen算法,进行实时二值化处理,解决光照不均匀条件下的图像处理问题[7]. 卜飞宇等提出运用框线去除算法,排除框线对字符识别的干扰[8]. 欧阳欢等提出运用最大对称环绕算法,通过对图像目标进行聚类分析,实现图章的识别与校正[9]. 钟侠提出运用基于Hough的票据图像倾斜检测与校正方法,以图像中心为原点,通过平移变换,确定峰值点,精确计算倾斜角度,并进行校正[10]. 罗晓萍提出运用向上优先区域生长法搜索行间留白,实现文本行分割与图像校正[11]. 曹玉东等提出移动基准点定位算法,对银行票据文本信息区域进行定位[12]. 金海燕等提出运用二值化法,根据垂直投影和轮廓特征对发票中的数字进行自适应字符分割与识别,提高了图像字符串的分割效率和准确率[13]. 崔文成等提出运用数字结构特征算法,对发票编号的字体结构与特征进行识别,与基于轮廓特征的识别相比,具有高识别率、准确性和低噪声鲁棒性[14]. 蒋方等提出依据发票信息布局和文本特征,结合双向LSTM(Long Short-Term Memory)序列学习结构对文本进行分割与识别[15]. 宋琦悦等提出运用改进滴水算法,寻找粘连字符切分路径,对粘连字符进行分割,效果较好[16].
尽管针对会计票据智能化处理方面已有许多研究成果,但仍存在识别的准确性、完整性、效率性和智能性等方面的问题不足. 本文综合相关研究成果与实践,综合运用票据图像处理技术,采用二值化、定向白游改进算法对票据图像进行预处理与倾斜校正,然后,运用维纳滤波法和灰度投影法对图像进行去噪与字符分割,最后,利用卷积神经网络特征识别模型从票据图像中提取特征数据,智能识别会计信息,实现会计信息的智能化采集与处理.
本文运用上述思路与方法,对真实的150张增值税发票样本进行仿真实验,识别率为98.42%,实验结果具有很强的有效性,本文的研究成果将对会计信息处理智能化,促进会计人员职能转型升级有一定的促进作用.
1 图像识别相关方法
1.1 图像二值化
图像二值化是将彩色图像或多灰度图像转换成只有两个黑白灰度图像的过程. 其处理步骤与方法如下.
1)脱色处理. 对于彩色图像首先进行图像脱色,即灰度处理. 将彩色像素转换成灰度像素的常用算法是计算RGB三种颜色系列的平均值,并使用平均值表示灰度像素的灰度(0~255). 该算法非常简单,许多图像处理APP平台为图像脱色提供了封装功能.
2)黑白分割. 通过将像素的灰度值与阈值进行比较来确定像素是黑色还是白色(像素值是1 还是0).计算公式如下:
式(1)中e是选择的阈值. 当图像的像素值为0时为白色. 当图像的像素值为1时为黑色,即字符图像. 如果图像背景不在灰度值上(如纹理不同),可以将差别特征值,转换为灰度差别,然后再利用阈值判断分割该图像,并通过动态调节阈值实现图像的二值化分割.
1.2 倾斜校正
在票据图像获取过程中由人为或其他原因,所获取的图像经常会出现倾斜现象. 这样将影响图像后续的字符分割效果,必须通过倾斜识别,以校正图像的水平度.
王威等提出了基于定向白游倾斜角度检测算法,从白色像素开始,沿着特定方向搜索,进行倾斜校正[17].该方法的计算误差比较大,本文提出一种基于方向白色行进的改进方法. 具有步骤与方法如下.
1)采集样本点. 在预处理后的图像中,扫描图像的行和列,以第一个黑色像素为样本起点,在水平和垂直方向上以一定间隔获取一个采样点,并依次获取完整图像的采样点.
2)分析采样点. 确定采样点是否是文本和直线之间的中心点,若在采样点的区域中存在黑色像素,则删除采样点,否则,写下更改的位置.
3)计算倾斜角. 首先以每个满足条件的采样点作为图像中心,以1°为单位计算白色游程的长度,找到各采样点白游程的最大长度. 然后,沿着各采样点的白游程长度方向上下搜索每个角度的白色游程,遇到带有黑色像素就停止搜索,从而获得线之间的每个角度的白色游程,并对获得的角度进行平均,然后记录角度值. 最后,对满足条件的每个采样点重复上述步骤,并再次平均每个采样点获得的角度的平均值,即获得准确的倾斜角度.
4)倾斜校正. 根据获得的倾斜角度,以图像的中心点为原点旋转. 任意一点(x,y)旋转后的水平和垂直坐标公式如下:
该方法采用选择多个采样点,计算各方向的白游程,并通过平均值作为最终的白游程,获取的倾斜角度更准确.
1.3 信息降噪
会计票据图像在打印、传输、转换或存储的过程中会受到各种随机因素的影响而产生许多噪音,使图像变得粗糙、质量下降、特征淹没[18]. 为了确保字符分割与识别的准确性,必须对会计票据图像进行降噪处理.
根据噪声与信号之间的关系,可以将噪声分为加性噪声、乘性噪声和附加噪声. 其中,加性噪声是背景噪声,包括热噪声、散粒噪声,它与信号叠加,具有普遍性;乘性噪声(也称为卷积噪声)是由系统衰落或其他非线性等,时变因素引起,取决于信号的存在;附加噪声主要来源于人为、自然和内部因素.
信息降噪主要采用均值滤波、中值滤波与维纳滤波等方法,其中,维纳滤波是自适应滤波中使用最广泛的方法[19],是在可计算的情况下,通过使用原始获得的滤波参数的结果来自动调整后续的滤波参数,以获得适合于输入图像和噪声的统计特性[20],它可以更好地消除噪音点并保留图像的高频和边缘信息.
维纳滤波是通过信号和噪声的概率密度随机函数,找到未污染图像的估计值fˆ(x,y),以便满足估计图像和原始图像f(x,y)之间的误差最小:
当E || f(x,y)-w(x,y)*g(x,y)2=min 时,维纳滤波方程满足以下等式:
式(5)中:H(u,v)是退化函数;H*(u,v)是H(u,v)的共轭函数;H(u,v)和W(u,v)分别是h(x,y)和w(x,y)的傅里叶变换;Pf(u,v)/Pn(u,v)为分别信噪比. 其中,图像功率谱Pf(u,v)、噪声功率谱Pn(u,v)公式如下:
因此,维纳滤波估计值可表示为
式(8)中,G(u,v)是w(x,y)的傅里叶变换.
1.4 基于灰度投影的字符分割
经过降噪处理后,获得相对干净的数字字符串区域,需要将数字字符串区域中的打印数字一一分割用于后续的数字识别处理. 本文使用基于灰度投影的字符切割算法来准确、快速地切割单个字符[21]. 其思路如下:
1)根据降噪后的二值化图像的像素分布,分别进行水平与垂直方向投影,对每一行或每一列所有灰度值为0的像素数求和.
2)在水平和垂直方向分别设定一个搜索范围与步长,并计算两个曲线的一阶差分值.
3)选择相差最小的位置,识别判断投影的每一行或列,找到分割点.
4)根据分割点进行字符分割.
5)依据思路,设计算法,用Matlab实现上述思路.
对于会计票据,比如发票,在水平和垂直方向投影时,由于许多字符交错排列,投影的效果会受到影响.这时发票在水平和垂直方向投影时,许多字符行和列是交错排列的,并且会受到影响,应考虑动态设置子区域投影以减少票据类型和格式的影响.
1.5 基于卷积神经网络的字符识别模型
卷积神经网络(Convolutional Neural Networks,CNN)是一种包含卷积计算的深度前馈神经网络,直接将图像作为网络的输入,通过权重共享机制,自动提取图像特征;通过池化合并减少参数量、有效地避免过拟合和图像平移变性,并通过连接的稀疏性,实现多维数据“扁平化”[22].
本文采用卷积神经网络对票据图像特征进行识别与分类. 首先把30×30的原始票据图像,采用16维度的5×5 卷积核,1 个卷积步长对图像进行卷积,获得16 维度的26×26 大小的特征图,经过2×2 池化最大化合并,获得16个维度的13×13大小的特征图. 在此基础上,进行2层卷积与池化,采用32维度的4×4卷积核,2×2化池最大化合并,获得32×5×5 大小的扁平化向量. 最后,运用ReLu 函数作为全连接层每个神经元的激励函数,采用softMax分类器实现对会计票据图像的分类识别与最大化输出.
2 仿真实验与结果分析
2.1 实验环境
本文的实验环境为Intel Core i3-4150@3.50 GHz 的CPU,4G 内存的硬件配置,64 bit win7 和MATLAB 2013B软件配置.
2.2 数据采集
本文收集了150张增值税发票,以测试系统数字识别的准确性. 实验总共使用了10 410个字符,其中发票代码区域中使用了1800 个字符;购买方名称区域945 个字符;纳税人识别号为2700 个字符;开票日期为2100个字符;数量区域有495个字符;单价区域有1125个字符;金额区域有1245个字符.
2.3 仿真结果分析
本文以150张发票作为会计票据图像样本,由于发票的信息量非常大,本文仅对发票代码、开票日期、纳税人识别号、数量、单价、金额等文本信息进行分割与识别,具体仿真结果分析如下.
1)字符分割效果分析
该仿真实验采用灰度投影法,并结合分割区域的字符纵横比,对150张发票图像的相关文本信息进行水平与垂直字符分割. 首先对发票图像二值化、倾斜校正与降噪处理,然后计算出水平与垂直坐标后,对文本字符进行分割,并各文本字符进行单独分析,以验证分割算法的有效性. 由于本文仅对发票代码、纳税人识别号、开票日期、金额、单价、数量等信息进行分析,以验证分割算法的有效性. 对150张发票样本的分割区域总数为945个(由于购买方有时购买商品类型或种类不止一种,对数量、单价及金额区域的分割多于150个),仿真实验分割效果如表1所示.
表1 发票字符分割实验结果Tab.1 Experimental results of invoice character segmentation
从表1可以看出,采用基于灰度投影法的字符分割模型对发票文本字符分割平均正确率为98.37%,效果较好. 由于数量、单价、金额区域基本上都是数字或字符,纵横比差异很小,每个字符都是一个完整的部分,受到复杂结构的影响很少,其正确分割率相对较高. 开票是可变域信息,会受到字条重叠、布局重叠等因素的影响,结构相对复杂,正确分割率较低,仅为96.00%,仍有很大的改进空间.
2)区域字符识别效果分析
发票图像经过二值化预处理、图像校正、图像去噪、定位和分割操作后,采用基于卷积神经网络的识别模型对字符进行仿真识别. 在150 张增值税发票样本中,共对10 922 个字符进行识别,其中发票代码区域1800个字符,纳税人识别号2700个字符,开票日期2100个字符,数量区812个字符,单价区1643个字符,货币区1867个字符. 经过仿真实验,各区域及整体的字符正确识别数及识别率如表2所示.
表2 各区域字符识别率Tab.2 Regional character recognition rate
从表2可以看出,发票图像确定区域的字符正确识别率明显高于总体字符平均正确识别率,开票日期作为可变域,其字符正确识别率低于平均识别率,且远远低于确定区域字符正确识别率,主要是由于机器打印引起日期、区域重叠等问题造成的,仅通过结构和投影特征来分割与识别字符已不能达成预期目标. 总体上,基于卷积神经网络构建的识别模型具有较好的字符识别率(平均98.42%),但仍存在进一步优化的空间,特别是对可变域的字符分割与识别方面.
3 结论
本文采用二值化、改进型定向白游法、维纳滤波、灰度投影及卷积神经网络等方法,对增值税发票图像进行预处理、倾斜校正、去噪、字符分割及识别,实现会计信息的智能化提取. 仿真实验效果表明,该方法是有效的,可以大大提高会计信息处理的准确性、效率与及时性. 该研究有助于提升会计信息智能化水平,提高会计信息处理效率,并促进会计人员从流程化、固化的会计核算事务中解脱出来.