对于财务专业等学生或者公司财务人员来说,将报账发票等汇总到excel简直就是一个折磨。 尤其是到年底的时候,公司的财务人员面对一大堆的发票简直就是苦不堪言。正好我们学会了Python,我们应该将Python的优势发挥起来。 一.场景描述这里有以四张发票为例(辰哥网上搜的),将发票图片放到pic文件夹下。
随便打开一张发票
提取目标:金额、名称、纳税人识别号、开票人。
最后将每一张发票的这四个内容保存到excel中:
二.准备环境需要用到的库如下:
安装的命令如下:
发票中含有中文内容,我们需要对图片中的中文进行识别,那么 cnocr 是一个不错的选择。 提示:安装好上面的库之外,还需要安装额外的exe文件,不然会出现下面这种错误
需要安装的exe文件: 1. ImageMagick2. tesseract-OCR这两个软件的安装过程就不再赘述了,大家可以自行搜索教程进行安装。 三.提取内容下面以其中一张图片为例,讲解如何提取目标内容:金额、名称、纳税人识别号、开票人。
读取图片:pic/pic1.jpg
1.提取金额需要截取到发票中金额的位置
这里的left、top、right、bottom的数值是通过多次修改定位而来。大家根据自己的发票内容去定位即可。
接着将图片中的数字提取出来
同样的,下面继续提取:名称 2.提取名称
这里的名称是中文的,咱们不能再像提取金额(数字)操作。需要使用到cnocr去将图片中的中文取出。
3.提取纳税人识别号
将图片中的纳税人识别号提取出来,结果如下:
4.提取开票人
由于有中文,咱们这里同样和提取名称一样,使用cnocr将图片中的中文取出。
ok这样我们就将发票中的四个目标内容提取出来,接着将文件夹pic下的所有发票,进行识别将内容保存到excel。 四.批量识别发票并保存到excel在读取图片之前,先将上面的四个操作封装成函数,方便每一种发票对象进行调用。
读取文件夹下的所有图片。
开始进行识别,并将结果写入到excel中。
最后保存为:发票汇总-李运辰.xls,其结果如下:
五.发票验证真伪在辰哥的交流群里,和小伙伴聊到这个内容时,小伙伴建议可以加一个功能:发票验证真伪。
所有在上面的开始识别之前(自己公司的发票可能不需要查验这步),先调用一下第三方的接口,对发票进行识别,识别通过之后再将其提取发票中目标内容。 1.申请百度AI应用
2.获取token
这里的client_id 为官网获取的AK, client_secret 为官网获取的SK,是上面申请好应用即可获取 3.查验
咱以这张图片为例,进行查验
其中的发票类型对应如下:
结果如下:
感觉这个结果查询不是很好(不详细)。下面还可以去税务局查询 4.税务局查询发票
同样以这张图片为例,进行查验
填写好信息点击查验,结果如下:
再税务局查验更加清晰。读者可以根据自己的情况去选择自己的方式去查验。 小结本文基本就成功实现目标要求,从效果来看还是非常不错的!完整源码可由文中代码组合而成(已全部分享在文中),感兴趣的读者可以自己尝试! 一定要动手尝试****!一定要动手尝试****!一定要动手尝试! 最后想说的是,其实本文的案例可以应用再其他方面,例如
|