金融OCR领域实习日志(二)——四种OCR模型效果测试(附图)

2024-01-26 07:52

本文主要是介绍金融OCR领域实习日志(二)——四种OCR模型效果测试(附图),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 四种模型ocr效果简单测试
    • 模型
    • 场景
    • 1.paddle框架下PP-OCRv3
      • 1.1.效果如下:
      • 1.2.总结
    • 2.paddle框架下ppocr_server_v2
      • 2.1.效果如下
      • 2.2.总结
    • 3.CnOCR
      • 3.1.效果如下
      • 3.2.总结
    • 4.TesseractOCR
      • 4.1.效果如下
      • 4.2.总结
    • 5.后续想法

四种模型ocr效果简单测试

模型

PP-OCRv3、ppocr_server_v2、CnOCR、TesseractOCR

场景

发票(扫描件)、表格扫描件

1.paddle框架下PP-OCRv3

使用轻量级模型PP-OCRv3

image-20240125151736395

1.1.效果如下:

1号表格扫描件==(时间2.13s)==:

image-20240125151904558

execl_0

1号发票==(时间1.7s)==

image-20240125152325053

image-20240125153705468

2号发票扫描件==(时间2.36s)==

image-20240125152720286

image-20240125153654880

1.2.总结

表格扫描件:效果一切良好

发票实拍:有部分模糊文字识别不清,图片太糊了

发票扫描件:效果良好,但是特殊字符无法识别,后续补充训练可以解决

2.paddle框架下ppocr_server_v2

使用通用模型PP-OCRv3

image-20240125152829552

2.1.效果如下

1号发票

image-20240125154337770

2.2.总结

效果太差不试了

3.CnOCR

这里ocr参数全部设置默认

3.1.效果如下

1号表格扫描件:

image-20240125154620092

1号发票:

image-20240125154930442

3.2.总结

比起paddle中文模型,有较大差距

表格问题较小,但比如”牡“丹识别成了”社“丹

发票比较模糊,问题很多,比如联合识别成联音,公司识别成公碍等错误

特殊字符也同paddle一样无法识别,image-20240125155034693识别成了8,不过可以补充训练

4.TesseractOCR

4.1.效果如下

1号表格:

image-20240125155311597

1号发票:

image-20240125155351044

4.2.总结

中文识别一团浆糊,完全不能用

5.后续想法

基于paddle2.6发布的版本,PP-OCRv3表现最好,也是百度最新的OCR中文检测识别模型(paddle2.7下的v4没测),百度通用模型的效果相比而言差了很多。CnOCR比paddle差距明显,特别是模糊图片,Tesseract在中文场景下则是完全不能用。

此外,由于发票文档分布非常复杂,导致大部分识别模型无法对齐,但由于发票的模板非常固定,可以通过坐标变换先调整发票摆正,再裁剪图片喂给模型识别,以此来控制各个识别区域,避免文字错位。

这篇关于金融OCR领域实习日志(二)——四种OCR模型效果测试(附图)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java使用SLF4J记录不同级别日志的示例详解

《Java使用SLF4J记录不同级别日志的示例详解》SLF4J是一个简单的日志门面,它允许在运行时选择不同的日志实现,这篇文章主要为大家详细介绍了如何使用SLF4J记录不同级别日志,感兴趣的可以了解下... 目录一、SLF4J简介二、添加依赖三、配置Logback四、记录不同级别的日志五、总结一、SLF4J

Python处理函数调用超时的四种方法

《Python处理函数调用超时的四种方法》在实际开发过程中,我们可能会遇到一些场景,需要对函数的执行时间进行限制,例如,当一个函数执行时间过长时,可能会导致程序卡顿、资源占用过高,因此,在某些情况下,... 目录前言func-timeout1. 安装 func-timeout2. 基本用法自定义进程subp

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

golang 日志log与logrus示例详解

《golang日志log与logrus示例详解》log是Go语言标准库中一个简单的日志库,本文给大家介绍golang日志log与logrus示例详解,感兴趣的朋友一起看看吧... 目录一、Go 标准库 log 详解1. 功能特点2. 常用函数3. 示例代码4. 优势和局限二、第三方库 logrus 详解1.

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应