PYTHON如何调取OCR识别模块识别发票并输出到EXCLE?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PYTHON如何调取OCR识别模块识别发票并输出到EXCLE?相关的知识,希望对你有一定的参考价值。

根据专票的照片或者扫描的图片,借助百度或者腾讯的OCR识别模块,识别票面信息,并导入到EXCLE中,通过python实现

import qqai
from os import path
from win32com.client import Dispatch
import os
from datetime import datetime

def file_path():
global path_this_file
path_this_file = path.abspath('.') + "\\"
global path_excel
path_excel = path_this_file + '信息导出.xlsx'
global path_pic_file
path_pic_file = path_this_file + '照片'

def get_pic_name():
pic_list = []
for pic in os.listdir(path_pic_file):
pic_path = path_pic_file + '\\' + pic
pic_list.append(pic_path)
return pic_list

def HandwritingOCRImage(filename):
robot = qqai.vision.ocr.HandwritingOCR(app_id, app_key)
useless_list = ['登记表']
value_list = []
with open(filename, 'rb') as image_file:
result = robot.run(image_file)
item_list = result['data']['item_list']
for value in item_list:
words= value['itemstring']
if words in useless_list:
continue
else:
value_list.append(words)
return value_list

def get_useful_list(value_list):
key_list = ['姓名', '性别', '出生日期', '国家/地区', '民族', '职业', '手机号码', '固定电话', '证件类型', '证件有效期限', '证件号码', '通讯地址', '邮编']
useful_list = []
for words in value_list:
if words in key_list:
key_index = value_list.index(words)
next_index = key_index + 1
if value_list[next_index] in key_list:
useful_list.append('')
else:
if words == '证件号码':
ID_NUM = "'" + str(value_list[next_index]) #这边是为了避免科学计数法的问题
useful_list.append(ID_NUM)
else:
useful_list.append(value_list[next_index])
else:
continue
return useful_list

def put_into_excel(useful_list):
xl = Dispatch("Excel.Application")
xl.Visible = False # True是显示, False是隐藏
xl.DisplayAlerts = 0
excel_input = xl.Workbooks.Open(path_excel)
sheet = excel_input.Sheets('Sheet1')
max_row = sheet.UsedRange.Rows.Count
values = len(useful_list)
for i in range(values):
sheet.Cells(max_row + 1, i + 1).Value = str(useful_list[i])
excel_input.Save()
excel_input.Close()
xl.quit()

starttime = datetime.now()
"""腾讯AI开放平台 图片识别"""
app_id = '2110179251'
app_key = '******'
"""app_id , app_key 可以自己去腾讯AI开放平台注册,是免费的"""

file_path()
pic_list = get_pic_name()
for filename in pic_list:
value_list =HandwritingOCRImage(filename)
useful_list = get_useful_list(value_list)
put_into_excel(useful_list)
endtime = datetime.now()
total_time = (endtime - starttime).seconds
print(">>>成功录入信息条,总共耗时秒!".format(len(pic_list),total_time))
参考技术A 现场需要根据打印的表格手工填写好内容,然后再在电脑上一个个录入进去,费时费力,所以想是否可以通过程序把照片内需要的数据读取出来并导出到excel表格里。

发票识别,增值税发票识别,OCR票据识别

对于一些大的集团公司来说,分散式财务管理模式管理效率不高,管理成本相对较高,同时也制约了集团企业发展战略的实施,因而需要建设财务共享中心。一个企业想建造财务共享中心,面临的难题是大量的数据采集和信息处理工作,需要投入大量的人力物力,这中间最大的一个压力是原始票据的采集和信息录入工作。

对于专业的财务公司来说,更是这样,繁重的票据录入和管理工作,既耗费人力,又耗费时间。

针对企业财务部门繁重的原始票据信息采集和管理工作,译图智讯推出了发票自动识别解决方案,通过利用发票OCR扫描识别技术,批量采集增值税发票等票据上的信息,并输出结构化的数据,与传统的人工录入数据相比,大大的减少了财务人员的工作量,提升了其工作效率。

技术分享

译图(ETOP)发票OCR识别技术优势

1、支持多种发票类型:增值税专用发票、增值税普通发票、电子发票图像版、电子发票打印版。

2、支持多种文件格式:支持PDF、JPG、TIF、BMP等文件格式。

3、发票识别性能

精准:关键字段识别率>98%

快速:识别时间1—2秒

产品形态1:发票专用扫描仪 + 译图发票OCR识别客户端软件

1.1 产品形态

A4加宽专用扫描仪 + 译图发票OCR识别客户端软件。

1.2 产品功能特点

1) 高度集成:扫描硬件和发票OCR识别软件高度无缝集成,一键完成发票扫描识别、OCR结果返回,业务流程高度自动化;

2) A4加宽扫描仪,发票可以横向放置,同时可以扫描加宽的订单和文档材料;

3) 识别发票类型:支持增值税专用发票、普票、电子发票、电子发票打印件识别,覆盖目前所有增值税发票类型;

4) 识别速度:客户端平均1秒/张,60页/分钟的扫描速度;

产品形态2:译图发票OCR识别服务

1.1 产品形态

识别软件部署在Linux服务器上,对外提供标准的API;

1.2 产品功能特点

1) 应用场景广阔:支持各种应用场景,如扫描的发票、拍照的发票、粘贴在A4纸上的发票等;

2) 易部署易维护:发票OCR识别服务部署在服务器上,方便更新和维护。

以上是关于PYTHON如何调取OCR识别模块识别发票并输出到EXCLE?的主要内容,如果未能解决你的问题,请参考以下文章

财务报表OCR自动识别方案,发票识别,票据OCR识别,OCR发票识别

财务报表OCR自动识别方案,发票识别,,OCR发票识别

[Python][爬虫]利用OCR技术识别图形验证码

OCR文字识别

发票识别,增值税发票识别,OCR票据识别

多票种智能识别技术,让财务报销简单便捷~