机打发票软件操作手册(精选2篇)
1.机打发票软件操作手册 篇一
机打发票的管理规定
1、所有的机打发票在领取时必须查看看所 有编码是否连续无中
断,使用完后以此换新(也必须连号);
2、领取回来的新发票,由收银妥善管理并盖上公司的章方可使
用,不允许其他人介入使用以免混乱造成错误,更不得乱涂乱画;
3、在使用过程中,要求如下
每使用的发票号码三联都必须与电脑上号码一致方可打印
必须填写发票抬头,如:公司名称、个人名称等
所开费用必须与消费金额一致,不可多开;如所开费用少A、B、C、于消费金额,请在《发票登记本》上注明此事与少开金额,方便其他同事和客人来店查询补开剩余金额的发票
D、4、所开发票内容在电脑上填写完毕后,请认真检查以下内容再点所开发票的项目必须是餐饮(因为我们营业项目为餐饮);
击打印,以免造成错误和作废量较大,检查内容(日期、抬头、项目、单价金额、总计金额);
5、如所开发票需作废,必须发票三联全部收回方可在电脑上输入
相应编号进行电脑作废,之后再在发票三联上都盖上公司的作废章,作废发票不允许丢弃。
2.机打发票软件操作手册 篇二
1 算法原理与实现
1.1 图像二值化
该算法主要分为文字定位和文字识别两部分。其中, 文字定位的步骤包括:二值化、跳变检测、连续区域检测;文字识别的步骤包括:神经网络识别单项名称、Tesseract-ocr识别单项具体内容。
图像二值化无论在视觉检测领域, 还是在智能识别领域都是非常关键的一步[1]。图像在二值化之后, 原有的很多信息将会被丢失, 二值化需要尽可能多地保留图像中的纹理和边缘信息。因此, 二值化的结果直接影响整个检测识别系统的性能。常用的二值化算法有:固定阈值二值化、双阈值二值化、大津法 (OTSU) 、递归阈值法及直方图阈值法等[2]。其中, 大津法、递归阈值法、直方图阈值法对整体光照较均匀的图像效果较好[3]。但是, 当光照不均、有阴影、发票反面字迹过深或字迹颜色不同时, 这些全局二值化方法的效果就不理想。本文采用的是局部自适应阈值修正法, 其实现原理是:对每个像素, 以当前像素为中心, 求周边m×n矩形内的所有像素灰度值之和S, 阈值mean=S/ (m×n) +delta, 其中delta为修正值, 可根据实际情况调整。
1.2 跳变检测
图片二值化后, 需要对图片进行文字单项定位, 如要读取发票代码、金额等信息。本文采用的原理是:根据单项内文字间隔、文字内笔画间间隔较小的特征[4], 利用像素点的跳变信息 (黑白点之间的跳变) , 取一个距离阈值, 将同一行中两个相邻跳变点之间距离小于阈值的点连接起来, 形成一条白线段[5], 并记录下每一行每一条线段的起始列和终止列, 这样处理完后, 整个文字单项都会连接成一个白色的矩形状。其中, 本文选取的距离阈值为两个正常字符的高度。处理后的结果如图1所示。
1.3 连续文字区域的定位
经过上述处理后, 发票上的文字区域均已形成白色的条块状, 下面将讲述如何定位出每一个文字区域, 具体原理如下。
从第一行开始, 从左至右依次取出当前行每个线段的起始列, 然后对每个线段进行判断下方是否有与之相匹配的线段, 具体判断方法是:取出当前行下一行的每个线段, 逐个判断是否有线段的起始列、终止列分别与当前线段的起始列、终止列在相邻范围内, 即两线段的起始列之差的绝对值小于指定阈值, 并且两线段的终止列之差的绝对值小于指定阈值, 本文中的指定阈值取的是两个正常字符的高度;若下一行找到匹配的线段, 则继续向下方逐行匹配, 直到找不到匹配线段的连续行数大于5, 则认为当前线段匹配完毕, 最后对找到的这些匹配行的线段进行区域合并, 得出每组匹配线段的外包矩形区域, 即要找的单项文字区域。
对每一行的每个线段完成上述匹配搜索后, 即可找出所有的文字区域, 并用黑框框出, 如图2所示。
最后, 依次将定位到的文字区域取出灰度图, 并用大津法 (OTSU) 进行二值化, 为后面的字符切分及识别作预处理, 如图3所示。
1.4 字符切分
针对1.3小节中二值化后的每个文字区域, 采用水平投影和垂直投影的方法进行字符切分[6], 然后再根据字符宽度和相对位置进行修正。具体步骤如下: (1) 对二值化后的字符区域利用hough变换, 进行倾斜纠正; (2) 水平投影, 找出字符区域的上下边界, 去除边界外部分; (3) 垂直投影, 初步分出黑点数大于0的连续列, 作为初步分割结果; (4) 对初步分割结果进行宽度统计, 统计出分布最为广泛的两个宽度范围, 若其中较小的宽度小于或等于较大宽度的一半, 则将这两个宽度分布作为汉字和数字的宽度参考; (5) 利用统计出来的参考宽度、字符间隙及左右相邻字符的相对位置, 对初步切分结果进行宽度修正, 主要目的是对被分割为两部分的汉字进行拼接以及黏连字符的分割; (6) 对修正后的切分结果, 再进行水平投影, 修正上下字符边界, 去除边界外像素, 这样就完成了最终的字符切分。
1.5 利用神经网络识别条款项名称
针对1.4小节中切分出来的字符, 要进行文字识别。由于发票中常用的一些票据条项名是固定的, 如机打代码、机打号码、金额及单价等名称, 这些文字的总数有限, 大约二三十个。因此, 为了提高汉字的识别准确率, 可以将这些常用汉字用BP神经网络训练成样本库, 这样汉字的识别准确率可以达到95%以上。
BP神经网络算法是一种按误差逆传播算法训练的多层前馈网络[7]。它是利用输出后的误差来估计输出层的直接前导层的误差, 再用这个误差估计更前一层误差, 就这样一层层反复传导下去, 获得所有其他各层的误差估计, 再根据误差估计对前导层的权值做修正, 直至最后输出层的误差达到期望的范围内即收敛。
选取了机打发票中常用的汉字与数字、符号通过神经网络进行训练, 得到网络数据, 然后将每个字符区域的前半部分用神经网络数据去识别, 这样可以准确定位到每个具体条款项, 如“发票代码”“收款方纳税识别号”“付款方名称”及“收付款方名称”等。因为条款项后面的内容, 主要是数字和公司名称、地址、开票人名称等超大集合汉字, 用神经网络无法采集样本训练这些汉字, 所以只能借助第三方识别库进行字符识别, Tesseract-OCR就是这样一个开源识别库, 对汉字的识别支持较好, 而且对字母和数字的识别准确率非常高。因此, 将条款项后面或下面 (因为有些条款项内容在条款项名称的下面, 所以在识别的时候, 先查找条款项名称后面3个字符宽度之内有没有内容, 如果没有, 则向条款项名称的下方寻找) 的内容交给Tesseract-OCR识别库进行识别。
1.6 利用Tesseract-OCR识别条款项内容
Tesseract-OCR是一个开源的OCR识别引擎, 最初由HP实验室开发, 后来贡献给开源软件业, 目前由谷歌进行代码维护和更新[8], 最新版本为3.04。它是少有的支持汉字识别的开源识别库[9], 并且支持用户自己提取样本进行训练, 以提升识别率。将每个条款项名称后面或下面对应的条款项内容的二值图, 用TesseractOCR进行识别, 识别结果如图4所示。
2 结语
由识别结果可以看出, 除了单位名称、地址、人名等超大集合汉字的区域有个别字识别出错以外, 其他内容完全识别正确, 尤其是发票代码、发票号码、金额等关键数字区域都识别得非常准确, 可以达到实用的要求。有了识别结果, 录入人员只需做一下校验即可进行简单修改, 计算机软件就可以实现将发票的信息自动录入数据库和发票管理系统, 大大减轻了每张发票信息的录入工作, 节约了时间和成本。
参考文献
[1]郭佳, 刘晓玉, 吴冰, 等.一种光照不均匀图像的二值化方法[J].计算机应用与软件, 2014, 31 (03) :183-187
[2]罗松, 王俊峰, 唐鹏, 等.面向条码识读的自适应二值化改进算法[J].计算机工程与设计, 2013, 34 (04) :1324-1330
[3]许海洋, 马龙龙, 吴健.基于背景估计和边缘检测的文档图像二值化[J].计算机应用与软件, 2014, 31 (08) :196-200
[4]王善发, 吴道荣.基于灰度跳变的车牌定位算法及其实现[J].计算机仿真, 2012, 29 (01) :318-321
[5]王洪亚.基于灰度跳变与形态学的车牌定位法[J].成都大学学报, 2013, 32 (03) :270-273
[6]曹卫.脱机手写体汉字切分算法研究[D].武汉:中南民族大学计算机学院, 2012
[7]王泰刚.基于神经网络的手写字符识别系统[D].大连:大连海事大学计算机学院, 2013
[8]张扬.基于Tesseract光学字符辨识应用的设计与实现[D].西安:西安电子科技大学计算机学院, 2013
【机打发票软件操作手册】推荐阅读:
在税控机开具增值税普通发票的操作流程11-09
社保服务软件操作手册10-28
智能电控软件操作手册10-29
加工工艺软件操作手册01-10
收银管理软件操作手册09-19
会计软件操作流程06-26
钢筋下料软件操作手册08-31
创业孵化软件用户手册08-20
药房系统软件用户手册11-09
大数据分软件用户手册12-13