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

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

相关文章

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne