金融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在中文场景下则是完全不能用。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/348585.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文件操作---C++

文件操作目录 1.文本文件1.1写文件1.2读文件1.2.1第一种方式:流输入方式1.2.2第二种方式:getline成员函数1.2.3第三种方式:getline全局函数1.2.4第四种方式:按一个一个字符读取 2.二进制文件2.1写文件2.2读文件 程序运行时产生的数…

【C++进阶】STL容器--list使用迭代器问题分析

目录 前言 1. list的基本使用 1.1 list构造函数 1.2 list迭代器 1.3 list capacity 1.4 list元素访问 1.5 list 修改操作 insert erase swap resize clear 2. list失效迭代器问题 3. list使用算法库函数问题 总结 前言 list(链表)在C中非常重要…

分享7种SQL的进阶用法

分享7种SQL的进阶用法 前言 还只会使用SQL进行简单的insert、update、detele吗?本文给大家带来7种SQL的进阶用法,让大家在平常工作中使用SQL简化复杂的代码逻辑。 1.自定义排序(ORDER BY FIELD) 在MySQL中ORDER BY排序除了可以…

vue模拟聊天页面列表:滚动到底部,滚动到顶部触发加载更多

先看下效果&#xff1a; 代码&#xff1a; <template><div><div style"text-align: center"><button click"scrollTop">滚动到顶部</button><button click"scrollBottom">滚动到底部</button></d…

GitHub Copilot 与 ChatGPT:哪种工具更适合软件开发?

GitHub Copilot 与 ChatGPT&#xff1a;哪种工具更适合软件开发&#xff1f; 比较 ChatGPT 与 GitHub Copilot编程语言功能性定制化训练数据上下文准确性 ChatGPT 与 GitHub Copilot&#xff1a;哪个更适合软件开发&#xff1f;常见问题解答&#xff1a; 不断发展的编程世界正在…

基数排序算法

1. 排序算法分类 十种常见排序算法可以分为两大类&#xff1a; 比较类排序&#xff1a; 通过比较来决定元素间的相对次序&#xff0c;由于其时间复杂度不能突破O(nlogn)&#xff0c;因此也称为非线性时间比较类排序。比较类排序算法包括&#xff1a;插入排序、希尔排序、选择…

matlab绘图杂谈-stem函数和plot函数

出发点 今天在论文中看到一副这样的图&#xff0c;它既有曲线&#xff0c;又有点&#xff0c;并且对两者都添加了图例。三条曲线应该是用plot函数绘制的&#xff0c;而target哪个绿色的圆圈&#xff0c;我的理解是用stem函数绘制的。它只是1个点&#xff0c;并且没有竖线&…

Ps:可选颜色

可选颜色 Selective Color命令可以按指定的颜色&#xff08;范围&#xff09;进行单独的调整&#xff0c;且不会影响图像中的其他颜色。 Ps菜单&#xff1a;图像/调整/可选颜色 Adjustments/Selective Color Ps菜单&#xff1a;图层/新建调整图层/可选颜色 New Adjustment Laye…

Qt 基于海康相机 的视频标绘

需求&#xff1a; 基于 视频 进行 标注&#xff0c;从而进行测量。 曾经搞在线教育时&#xff0c;尝试在视频上进行文字或者图形的绘制&#xff0c;但是发现利用Qt widget 传sdk 句柄的方式&#xff0c;只能使用窗口叠加的方式&#xff08;Qt 基于海康相机的视频绘图_海康相…

【WPF.NET开发】WPF 中的 Layout

本文内容 元素边界框布局系统测量和排列子元素面板元素和自定义布局行为布局性能注意事项子像素渲染和布局舍入 本主题介绍 Windows Presentation Foundation (WPF) 布局系统。 了解布局计算发生的方式和时间对于在 WPF 中创建用户界面非常重要。 1、元素边界框 在 WPF 中构…

React中使用LazyBuilder实现页面懒加载方法一

前言&#xff1a; 在一个表格中&#xff0c;需要展示100条数据&#xff0c;当每条数据里面需要承载的内容很多&#xff0c;需要渲染的元素也很多的时候&#xff0c;容易造成页面加载的速度很慢&#xff0c;不能给用户提供很好的体验时&#xff0c;懒加载是优化页面加载速度的方…

算法基础之树状数组

文章目录 树状数组 树状数组 树状数组能解决的最关键的问题就是能够 O ( log ⁡ n ) O(\log n) O(logn)内&#xff0c;给某个位置上的数&#xff0c;加上一个数&#xff0c;或者求前缀和 他和前缀和数组的区别就是&#xff0c;树状数组支持修改原数组的内容&#xff0c;而前缀…

前端学习之——react篇(渲染列表)

你将依赖 JavaScript 的特性&#xff0c;例如 for 循环 和 array 的 map() 函数 来渲染组件列表。 假设你有一个产品数组&#xff1a; const products [{ title: Cabbage, id: 1 },{ title: Garlic, id: 2 },{ title: Apple, id: 3 }, ]; 在你的组件中&#xff0c;使用 map…

视频尺寸魔方:分层遮掩3D扩散模型在视频尺寸延展的应用

▐ 摘要 视频延展(Video Outpainting)是对视频的边界进行扩展的任务。与图像延展不同&#xff0c;视频延展需要考虑到填充区域的时序一致性&#xff0c;这使得问题更具挑战性。在本文中&#xff0c;我们介绍了一个新颖的基于扩散模型的视频尺寸延展方法——分层遮掩3D扩散模型(…

linux conda 配置 stable video diffusion

安装教程 1 下载仓库源码 git clone https://github.com/Stability-AI/generative-models.git2 创建conda环境 conda create -n svd python3.10 conda activate svd3 安装pytorch gpu cuda和cudnn请参考其他链接配置&#xff0c;使用 conda 或者 pip 安装 pytorch # 使用c…

Linux 驱动开发基础知识——编写LED驱动程序(三)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;一名喜欢分享和记录学习的在校大学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;V…

Vue开发之proxy代理的配置(附带uniapp代理配置)

vue 1.在vue.config.js中添加 devServer 属性中配置 proxy 属性 module.exports {productionSourceMap: false,publicPath: /,devServer: {port: 8085,proxy: {/api/admin: {target: http://10.58.104.70:6111,changeOrigin: true,pathRewrite: {/api/: /}},/api: {target: …

NIO-Channel详解

NIO-Channel详解 1.Channel概述 Channel即通道&#xff0c;表示打开IO设备的连接&#xff0c;⽐如打开到⽂件、Socket套接字的连接。在使⽤NIO时&#xff0c;必须要获取⽤于连接IO设备的通道以及⽤于容纳数据的缓冲区。通过操作缓冲区&#xff0c;实现对数据的处理。也就是说…

从源头到成品:精酿啤酒原料的完整追踪

对于追求品质的Fendi Club啤酒来说&#xff0c;从源头到成品的完整原料追踪是确保其品质的关键。这种追踪不仅涉及原料的采购&#xff0c;还包括其在生产过程中的处理和产品的质量控制。下面&#xff0c;我们将详细探讨Fendi Club啤酒如何实现从源头到成品的完整原料追踪。 首先…

安全用电管理平台方案介绍——Acrelcloud-6000

安全用电管理平台是一个针对电力系统安全管理的平台&#xff0c;旨在提供对电力设备和用电行为进行监控、分析和管理的解决方案。该平台结合了物联网技术、数据分析和远程监控等技术手段&#xff0c;能够实时监测、分析和预警电力系统的安全状况&#xff0c;以便及时采取措施防…
最新文章