本站小编为你精心准备了HOG特征下的财务报表图像识别参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:在财务领域,纸质报表向电子报表的转换需要大量的人工和时间成本。本文探究了纸质财务报表的自动识别过程,通过预处理、表头和表格区域的分割提取、单元格分割、字符提取与识别、表格还原等过程实现报表图片的转换,在实现报表信息便捷存储和查询的同时,也克服了人工录入的低效率、高成本等缺点。实验结果表明,该算法能有效实现图像的倾斜校正,且无需设置提示框限定拍摄范围;能有效分割表格格式的字符,其准确率为99.3%,无需手动框选待识别字符;字符识别准确率为93.7%,其中数字识别的准确率为97.8%,总体字符识别准确率相较Tesseract提升了8.1%。
关键词:纸质财务报表;单元格分割;字符分割;训练样本制作;字符识别
报表以其直观的数据显示作用在财务领域有着广泛的运用,然而大量的纸质文档不仅不便存放,而且报表信息会随着时间推移变得难以确认。为此,本文研究了一种光学字符识别方法,扫描纸质财务报表,然后通过字符识别算法将其中的数字和汉字转换成计算机文字以便分析和使用。目前市场上成功的光学字符识别(OpticalCharacterRecognition,OCR)软件有:汉王科技[1]、清华文通TH-OCR、赛酷文档秘书、丹青、蒙恬、FineReader[2]和Google的开源OCR项目Tesseract等,这些OCR软件有着很高的识别率,并广泛应用于身份证识别[3]、银行卡识别、名片识别、文档识别、报刊杂志数字化应用等。但在财务报表识别中,这些OCR软件会受表格线、倾斜角度、背景环境、光线条件等因素的影响,无法准确地对单元格进行分割或需要手动框选待识别字符,且一些OCR软件需要注册或付费,给使用造成不便。针对这些问题,本文设计研究了一套智能化程度高、适应性强、成本低的财务报表识别算法,采集图像时对报表摆放的位置和倾斜状态可以不做过多要求,算法能适应不同的外界环境,对于复杂的背景条件能很好地处理,有较强的适应能力。
1整体流程
本文财务报表识别流程如图1所示。图像预处理:主要包括图像灰度化、二值化、倾斜校正等过程,是图像信息和字符提取的前提,直接影响后续处理的效果。表头和表格区域的分割提取:表头定义报表类型,表格区域定义报表内容,将含表格线的表格区域与不含表格线的表头区域分割开进行单独处理。单元格分割:根据表格区域特点,定位水平、垂直线,利用线段相交特性,提取出单元格区域。字符提取与识别:采用一维投影的方式,根据像素分布情况对字符进行分割。选取财务报表常用字作为训练样本,然后提取样本方向梯度直方图(HistogramofOrientedGradient,hog)特征,利用支持向量机(SupportVectorMachine,SVM)分类器,对数字和汉字进行识别。表格还原:将识别结果存储为excel,以便查询和使用。
2报表处理与识别过程
2.1图像预处理
图像预处理[4]是在识别前所做的前期处理,其目的在于抑制无关信息、突出重要信息。本文所用的图片为相机拍摄的财务报表图片,其光线复杂且存在不同程度的倾斜,需要通过预处理来改善图像数据。其过程包括图像灰度化、二值化、倾斜校正。图像灰度化可以在保证图像信息完整性的前提下降低图像处理的数据量,提高识别速度,二值化[5]可以减少干扰信息,提高识别精度,图像自适应阈值二值化效果如图2(b)所示。在图像采集的过程中,纸质报表摆放的位置、拍摄的角度等因素可能会造成图片的倾斜,这些倾斜会对后续的分割和识别工作造成干扰,所以需要进行倾斜校正。财务报表的表格区域有明显的表格线,利用多边形逼近[6]的方式得到表格区域的4个顶点(如图3(a)中圆圈所示)。通过透视变换[7]对图像进行倾斜校正,其原理为:
2.2表头和表格区域的分割提取
对报表中的字符进行提取和识别时需要去除表格线的影响。整张财务报表可以大致分为含表格线区域和不含表格线区域,本文通过定位表格线来实现单元格的定位,在这之前需要对表格区域和表头区域进行分割。报表图片中面积最大轮廓的外接矩形为表格区域,根据轮廓位置提取感兴趣区域(RegionOfInterest,ROI)即可获得。表头区域不含表格线,以表格区域的位置信息作为参考,根据表格区域外接矩形的顶点坐标和矩形的width可以计算出表头区域四个顶点的位置,提取感兴趣区域即可获得表头区域。
2.3单元格分割
2.3.1表格线提取结合自定义核,运用形态学算子,通过选择核的大小和形状,构造一个对输入图像的特定形状敏感的形态学运算得到表格的水平线和竖直线[8],将表格水平线和竖直线合并得到如图4所示的整体的表格线。
2.3.2单元格提取在表格区域中,利用线段相交特性,水平、垂直表格线相互相交,构成闭合区域,即寻找的单元格区域,记录其位置信息,提取如图5(b)所示的单元格。
2.4字符提取与识别
2.4.1字符提取财务报表的字符信息由汉字和数字组成,考虑到汉字中存在分隔较开的上下结构和左右结构,不能通过找连通域或直接对二值图进行一维投影的方式分割字符。例如“二、公、利”等汉字,上述方式分割后得到只是字符的一部分,从而影响识别结果。本文先对单元格二值图进行膨胀和腐蚀操作,然后再利用一维投影的方式对字符进行分割。在实际运行过程中,按上述操作分割后可能会出现相邻字符相互牵连的情况(如图6(d)所示),因此对分割后的轮廓需判断其外接矩形长宽比,根据实际情况,设定基准值为1.5,对于长宽比超过该值的轮廓进行二次分割。一幅N×M的二值图可用矩阵表示为:
2.4.2字符识别字符识别主要有模板匹配法和人工神经网络[9]。前者因特征维数过大会导致识别速度慢,后者需考虑网格输入数据选择和网络结构设计问题[10]。图像特征[11]有矩特征、颜色特征、边缘轮廓特征、方向梯度直方图等,其中HOG特征具有几何和光学转化不变性[12],所以本文通过HOG+SVM的方式对字符进行识别,识别过程为:选取财务报表常用字作为字符模板,制作训练样本集,提取训练样本集的HOG特征,每个特征向量标有指定其类别的标签,将特征向量输入SVM进行训练,得到SVM模型,然后将待识别字符归一化后提取方向梯度直方图特征,加载训练模型进行预测,得到识别结果。识别过程如图7所示。财务报表包含:利润表、现金流量表、资产负债表3种类型。选取财务报表常用字323字(宋体)作为字符模板,将其归一化到20*40的字符模板,并对单个的模板进行角度为-5°~5°、缩放系数为0.5~1的仿射变换,每一个字符模板有66张训练样本。此外,为数字0~9制作了相邻数字样本集100张,整个训练集共22318张样本。仿射变换原理[13]可表示为:根据实际运行情况,设置HOG特征[14]的窗口大小:20×40像素、块大小:4×4像素、块滑动增量:4×4像素、胞元大小:4×4像素、一个胞元中统计梯度的方向数目:9,HOG特征的维数为450维,按照字符识别流程分别对不同背景环境和倾斜角度下三种类型的财务报表(宋体)进行识别。
2.5表格还原
将识别结果根据单元格的位置对应还原成如图8所示的excel表格,存储在计算机中,方便以后的查询和使用。
3测试结果与分析
在实际运用中,由于三种类型的财务报表都有相对固定的格式,有经验的财务人员会很熟悉其中的汉字部分,所以数字识别是本文主要研究的内容,通过统计105张如图9所示的不同版式、不同倾斜角度、不同光线和背景环境下的财务报表,字符(宋体)识别率为93.7%,其中对数字的识别率达到97.8%。资产负债表由于版式为纵向,且字符较多,识别准确率较其他两种表有所降低。由于财务报表识别主要是对数字的识别,所以通常的语义矫正在此处的作用并不明显,在实际运用中,字符识别的结果可以通过人工核对的方式进行校正,由此可以大大降低手动录入造成的人员时间和精力的消耗。为对比实验结果,利用Google开源的tesseract-ocr[15]进行测试,由于表格格式、背景环境、倾斜角度等因素的限制,tesseract-ocr在对表格进行版面分析时存在诸多问题,此处将利用本文算法分割好的单个字符结合tesseract-ocr自带的字符库进行识别,识别结果对比如表1所示。从表1可以看出,本算法对于带表格格式的字符能较好地分割和识别。在利用tesseract-ocr识别时,输入图片可以是整张报表图片、整个单元格或单个字符,表格线和倾斜角度等因素对于tesseract的字符分割造成了很大影响,所以在识别前需要自行分割。tesseract-ocr也可以自己训练字符库,但生成的字典很多识别出来的是空字符,因为tesseract库可能会将单个字符识别成多个部分或将多个部分识别成一个字符,此时需要手动点击Merge、Split[16-18]等操作,校正过程十分繁琐,给实际操作带来不便。
4结束语
本文对财务报表的识别进行了研究,通过预处理、表头和表格区域的分割提取、单元格分割、字符提取与识别、表格还原等处理步骤,实现了纸质财务报表的预处理、分割、识别和还原,对倾斜校正、字符分割等算法的实现进行了特殊情况的处理,以适应多种复杂的环境条件,是一套可靠、稳定的财务报表识别算法。该方法也可以扩展运用于银行卡识别、名片识别、文档识别等,有较好的可扩展性。今后会对除宋体外的其他字体进行样本集的训练,以适应多种字体的财务报表识别需求。
作者:邓小宁 孙琳 陈念年 张玉浦 单位:西南科技大学