【关键词】 自动化;Tesseract;OCR;MATLAB
[Abstract] At present, domestic accountants still use manual way to input bill data and complete the account processing. The error rate is high and the efficiency is low. Aiming at this problem, this system develops a software to realize automatic information identification and account reporting for invoices, which realizes the automation service from data collection to account reporting. The system runs on MATLAB software and combines with Tesseract software of optical recognition 0C engine to realize the functions. The basic functions include: wireless receipt and dispatch of bills image, information extraction and recognition of bills image, automatic generation of financial statements and other functions. In addition, in order to improve the reliability of the system, such as multi-segment key information interception, Image tilt correction, mathematical morphology processing and other technologies are added.
[Keywords] automation; tesseract ; OCR; MATLAB
1 系統整体概述
本软件主要在PC 及其兼容机上运行,使用WINDOWS 7以上操作系统。成功安装软件并配置相应的系统环境后,在MATLAB上运行,利用FTP传输协议接收票据图像,根据用户需要制作不同票据图像模板,自动批量准确提取相关区域图像,对图像进行预处理后,结合光学识别引擎Tesseract软件,对图像中的字符信息进行识别,并将结果制成汇总表格,根据《小企业会计准则》和手工报账标准生成财务报表。
票据自动报账系统软件利用MATLAB进行编程,核心部分包括票据图像的无线收发、信息提取处理与识别,自动生成财务报表等功能。票据图像信息提取处理与识别部分包括票据图像自动化分类、图像的倾斜校正、关键信息的截取、图像二值化和数学形态学处理以及对票据信息的OCR识别,并储存在TXT文件中;自动报账部分用于完成最后的报账任务,遵循《小企业会计准则》的做账原则,按一定规律进行报账,同时提供导出功能便于输出纸质报表和核查财务数据。项目整体系统框图如图1所示。
2 系统实现部分
2.1 票据图像的无线收发
2.1.1 图像输入读取 在filezilla软件的服务器端开放“download”及“upload”接收、传送图像。可以使用imread,dir函数检测指定目录下图像的张数,设置for循环函数自动读取完目录下所有图像。
在此过程中,需要检测图像是否正向读取,若不可取,则反馈给图像输入模块,若可取,则进行下一步操作。在这个过程中,当图像不被读取反馈回去时,下一步操作中将出现图像空缺,在下一级读取图像时,添加判别出错算法。
2.1.2 图像初级处理 基于无线接收到的图像可直接根据MATLAB处理匹配的命名方式进行批量命名和文件建立,需要考虑图像是否可用,接收到的图像基于以下三种处理方式进行触及处理:
(1)正反面(颠倒):根据对发票右上角的“二维码”进行定位判断,可通过canny算子提取“二维码”边缘,计算统计得出灰度值的平均值,可连接起被分隔开的区域,判断该区域是否存在对应宽度信息,以此判断图像是正面或颠倒,如果判定结果为颠倒,可以通过imrotate语句将图像旋转180度保存以便下一步处理。
(2)里外面:如果发票的上下方位都检测不到“二维码”区域,则表明该图像放置反了,可以反馈回硬件系统,提醒翻转。