财务报表自动录入的相关技术

2023-11-07 22:59

本文主要是介绍财务报表自动录入的相关技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 概述
  • Tesseract OCR 验证
  • 安装EasyOCR环境
    • 安装anaconda
    • 安装EasyOCR环境
      • 第一步创建Python虚拟机并安装easyocr环境
      • 第二步开启GPU加速
    • 第三步下载用于检测的模型文件
    • 编写验证程序
  • 基于图片的测试
  • 异常情况

概述

基于目前已有的技术,实现财务报表的自动录入
技术目录请参考如下链接
开源软件目录

Tesseract OCR 验证

如何实现,将各种文件类型的财务报表自动录入到系统中
以下是对开源技术TesseractOCR进行验证的过程:

要验证 Tesseract OCR 技术并搭建一个本地测试环境,你可以按照以下步骤进行操作:

安装 Tesseract OCR:首先,你需要安装 Tesseract OCR。你可以在 Tesseract OCR 的官方网站上找到安装指南,根据你的操作系统选择合适的安装方法。
安装 OCR 测试工具:除了 Tesseract OCR 本身,你还需要安装一个 OCR 测试工具,例如 OCRopus4 或 EasyOCR。这些工具可以帮助你进行 OCR 测试并评估其性能。
准备测试数据集:为了测试 Tesseract OCR,你需要准备一个包含各种图像和文本的测试数据集。你可以从公开可用的数据集中选择一个,或者自己创建一个数据集。确保数据集包含不同的字体、大小、分辨率、背景和噪声等条件下的图像。
运行 OCR 测试:使用你选择的 OCR 测试工具,运行 OCR 测试。根据你选择的工具,你可以按照其文档或指南中的说明进行操作。通常,你需要将测试数据集中的图像输入到 OCR 测试工具中,并指定要使用的 OCR 引擎(在本例中是 Tesseract OCR)。
评估 OCR 性能:在运行 OCR 测试后,你将获得一系列识别结果。为了评估 Tesseract OCR 的性能,你需要将这些结果与真实的文本标签进行比较。你可以使用各种指标来评估性能,例如字符错误率(CER)、单词错误率(WER)和准确率(Accuracy)。
调整和优化:根据评估结果,你可能需要对 Tesseract OCR 进行调整和优化,以提高其性能。你可以尝试使用不同的配置参数、训练数据和图像处理技术来改进 OCR 结果。
请注意,以上步骤提供了一个基本的框架,你可以根据自己的需求和环境进行适当的调整和修改。同时,确保你在操作过程中参考相关的文档、指南和教程,以确保正确地安装、配置和使用 Tesseract OCR。

安装EasyOCR环境

验证机系统环境
操作系统:win11
软件环境:Anaconda V23.31

安装anaconda

anaconda安装步骤请参考一下链接
安装过程描述

安装EasyOCR环境

anaconda安装好后采用命令行安装EasyOCR环境

第一步创建Python虚拟机并安装easyocr环境

先输入一个命令查看conda创建过的所有虚拟环境

conda env list

创建虚拟机并指定python版本为3.7

conda create -n EasyOCR python=3.7

将当前的python环境切换到 EasyOCR

conda activate EasyOCR

在EasyOCR环境中安装easyocr软件包

pip install easyocr

验证软件包是否安装成功

python -c "import easyocr"

执行命令后不报错,就证明安装成功了。

第二步开启GPU加速

如果需要使用GPU加速,则需要安装CUDA。根据EasyOCR官方文档,可以选择CUDA 10.1版本。
使用GPU加速前需要先验证机器是否支持GPU加速
若不需要开启GPU加速可跳过此步骤

验证是否可以使用GPU加速,方法如下
要确定自己的电脑是否支持GPU加速,可以按照以下步骤进行操作:

  1. 检查显卡类型:打开任务管理器,点击性能,然后在下拉框中查看是否有GPU。如果有,则表示您的电脑支持GPU加速。另一种方法是打开设备管理器,查看显示适配器中是否有GPU。
  2. 检查驱动和CUDA Toolkit:要使用GPU加速,需要安装合适的驱动和CUDA Toolkit。可以通过在命令窗口中输入“nvidia-smi”来检查驱动版本是否大于396.26。如果没有安装合适的驱动,可以访问NVIDIA官方网站下载并安装。另外,CUDA Toolkit的版本也很重要,建议使用9.2版本,可以在NVIDIA官方网站或CUDA下载页面上找到相应的版本。

以上步骤可以帮助您确定自己的电脑是否支持GPU加速。如果您需要使用GPU加速功能,建议您按照以上步骤进行检查和设置,以保证您的电脑能够最佳地运行相关软件和应用程序。

第三步下载用于检测的模型文件

模型名称识别文字
craft_mlt_25k.zip文字检测模型(CRAFT)(必须)
chinese_sim.zip中文(简体)模型(识别中文必须)

编写验证程序

编码工具:IDEA (需要配置python的开发环境,请自行搜索教程)

测试代码的目录结构
data:用于存放测试数据
model:用于存放模型文件
easyocrtest.py : 是测试代码,内容如下

import easyocr as esif __name__ == '__main__':# 指定 craft_mlt_25k 文件的路径# 将路径替换为您实际的文件路径craft_mlt_25k_path = 'D:\python-project\easyocrtest\model\craft_mlt_25k'# 初始化 EasyOCR 检测器,并加载指定的模型文件detector =  es.Reader(lang_list=['ch_sim','en'],gpu=False,model_storage_directory=craft_mlt_25k_path)# 使用 detector 进行文本检测和识别image_path = 'D:\python-project\easyocrtest\data\\1_1.jpg'  # 将路径替换为您实际的图像路径results = detector.detect(image_path)# 处理结果...# 打印识别的结果for result in results:print(result)

基于图片的测试

测试图片

财务报表图片

测试输出结果
不知道,输出了一堆什么东东,看不懂

测试结果

异常情况

异常 Neither CUDA nor MPS are available - defaulting to CPU. Note: This module is much faster with a GPU

这个问题是与代码和程序运行相关的。

这个问题通常出现在使用TensorFlow或PyTorch等深度学习库时,并且你的计算机上没有安装合适的GPU驱动或CUDA工具包。

解决这个问题的方法如下:

  1. 确保你的计算机上有一个兼容的GPU:TensorFlow和PyTorch等库都对GPU有特定的要求。请检查你的GPU是否与这些库兼容。
  2. 安装CUDA工具包:CUDA是NVIDIA开发的一种技术,用于在NVIDIA的GPU上执行计算。如果你有一个NVIDIA的GPU,你可以从NVIDIA的官方网站上下载并安装CUDA工具包。
  3. 安装GPU驱动:确保你的GPU驱动是最新的,并且与你的操作系统兼容。
  4. 检查MPS(Metal Performance Shaders):如果你使用的是Mac,确保你的系统支持MPS。
    使用虚拟环境:如果你正在使用虚拟环境(如conda),确保你安装了与GPU兼容的库版本。
    查看库的文档:参考你正在使用的库的文档,查看如何配置GPU支持。例如,TensorFlow和PyTorch都有详细的安装和配置指南。

这篇关于财务报表自动录入的相关技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366684

相关文章

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

SpringBoot实现文件记录日志及日志文件自动归档和压缩

《SpringBoot实现文件记录日志及日志文件自动归档和压缩》Logback是Java日志框架,通过Logger收集日志并经Appender输出至控制台、文件等,SpringBoot配置logbac... 目录1、什么是Logback2、SpringBoot实现文件记录日志,日志文件自动归档和压缩2.1、

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)

《Golang实现Redis分布式锁(Lua脚本+可重入+自动续期)》本文主要介绍了Golang分布式锁实现,采用Redis+Lua脚本确保原子性,持可重入和自动续期,用于防止超卖及重复下单,具有一定... 目录1 概念应用场景分布式锁必备特性2 思路分析宕机与过期防止误删keyLua保证原子性可重入锁自动

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.