[目标检测] OCR: 文字检测、文字识别、text spotter

概述

OCR技术存在两个步骤:文字检测和文字识别,而end-to-end完成这两个步骤的方法就是text spotter。

文字检测数据集摘要

daaset语言体量特色
MTWI中英文20k源于网络图像,主要由合成图像,产品描述,网络广告(淘宝)
MSRA-TD500中英文
SynthText800k img + 8000k text合成数据
CTW1500中文32k野外场景
ICDAR 2015
ICDAR 2019-ReCTS中文标识牌上的文字(店铺名等)
ICDAR2019-ArT中英文组合Total-Text+SCUT-CTW1500+Baidu Curved Scene Text
ICDAR2019-LSVT中英文30k full annotation + 40k weakly annotationLarge-scale Street View Text with Partial Labeling,
ICDAR2017-DeTextText Extraction from Biomedical Literature Figures, 生物医学文献图形中的文本提取
ICDAR 2011 (Born-Digital Images)、ICDAR 2017英文
CurvedSynText150k英文
Total-Text英文+少量中文1.5k各种形状的文本,包括水平的,多取向的和弯曲的
Lecture Video DB
IMGURhandwriting
KAIST
ILST印度语言三种印度语言(Devanagari 、 Telugu 和Malayalam)的场景文本识别数据集
VinText
BID巴西身份证件数据集
RCTW12k+手机野外拍摄,包括街景、海报、菜单、室内场景以及手机应用的截图
HierText (Google)英文自然图像或者文献

OCR方法

前沿text spotter方法

  • PSENet、PAN、PAN++(PAMI 2021)
  • DeepSolo (CVPR2023)

方法框架

  • mmocr: 集成方法并不是最新的(2022年以前的),其中预训练方法只支持英文,文字检测方法还可以检测出中文,文字识别无法识别中文,text spotter尚未介入到统一的接口中。

Github high star

  • tesseract(57.7k star):大概率是文字识别模型,C/C++,提供command line tool。
  • PaddleOCR(38.1k star): 80+ language support。提供轻量化、提供在线demo(后面有测试),provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices。
  • EasyOCR(21.8k star): pytorch based,文字检测基于CRAFT,识别基于LSTM+Transformer。Ready-to-use OCR with 80+ supported languages and all popular writing scripts including Latin, Chinese, Arabic, Devanagari, Cyrillic and etc.提供 在线DEMO。
  • tesseract.js (33.2k star): pure Javascript OCR for more than 100 Languages。
  • UniOCR (20.6k star): 提供一个界面。
  • OCRmyPDF (11.8k star): 解析pdf图片,基于tesseract。

PaddleOCR(PP-OCRv4)测试图如下

(1)弧形分布文字检测和识别都不准
PPOCRv4
(2) 放大了也识别不出来,应该和training data相关

Reference

  • https://mmocr.readthedocs.io/en/dev-1.x/

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

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

相关文章

Linux下使用C语言实现高并发服务器

高并发服务器 这一个课程的笔记 相关文章 协议 Socket编程 高并发服务器实现 线程池 使用多进程并发服务器时要考虑以下几点: 父进程最大文件描述个数(父进程中需要close关闭accept返回的新文件描述符)系统内创建进程个数(与内存大小相关)进程创建过多是否降低整体…

代码随想录训练营day36

第八章 贪心算法 part05 1.LeetCode. 无重叠区间 1.1题目链接:435. 无重叠区间 文章讲解:代码随想录 视频讲解:B站卡哥视频 1.2思路:我来按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区…

yolov8训练自己数据集的一些小细节

例如我的路径格式如下: 这里要保证两个对齐, train/images/img1.jpg,2,3,xxx train/labels/img1.txt,2,3,xxx val/images/img1.jpg,2,3,xxx val/labels/img1.txt,2,3,xxxyaml文件读取路径的时候,个人猜测是依靠替换字符串找标签的, 因为yaml文件里没有指明如何加载labels,它后…

MobX原理剖析:基于可观察状态和自动依赖追踪的响应式状态管理

我们用代码示例来说明 MobX 的核心原理。 首先,我们定义一个简单的 Store 类,其中包含一个可观察的计数器状态: import { observable, action } from mobx;class CounterStore {observable count 0;actionincrement () > {this.count;};actiondecrement () > {this.…

【STM32G431RBTx】备战蓝桥杯嵌入式→省赛试题→第十四届

文章目录 前言一、题目二、模块初始化三、代码实现interrupt.h:interrupt.c:main.h:main.c: 四、完成效果五、总结 前言 无 一、题目 二、模块初始化 1.LCD这里不用配置,直接使用提供的资源包就行 2.KEY, 四个按键IO口都要配置,分别是PB0, PB1,PB2,PA…

【端云一体化开发】云函数本地运行/调试启动失败的两种解决方案

最近本地调试云函数一直出现这个错误:Before launch task execute failed! details:java.lang.lllegalStateException: npm installfailed 这个问题的原因似乎是运行云函数的时候会重新下载 npm 及相关依赖文件,但是 DevEco 的 npm 模块出错导致这个步骤…

软考121-上午题-【软件工程】-敏捷方法

一、敏捷方法 敏捷开发的总体目标是通过“尽可能早地、持续地对有价值的软件的交付”使客户满意。通过在软件开发过程中加入灵活性,敏捷方法使用户能够在开发周期的后期增加或改变需求。 敏捷过程的典型方法有很多,每一种方法基于一套原则,这…

内核驱动更新

1.声明我们是开源的 .c 文件末尾加上 2.在Kconfig里面修改设备,bool(双态)-----》tristate(三态) 3.进入menuconfig修改为M 4.编译内核 make modules 也许你会看到一个 .ko 文件 5.复制到根目录文件下 在板子…

【Linux的进程篇章 - 进程终止和进程等待的理解】

Linux学习笔记---008 Linux之fork函数、进程终止和等待的理解1、fork函数1.1、什么是fork?1.2、fork的功能介绍1.3、fork函数返回值的理解1.4、fork函数的总结 2、进程的终止2.1、终止是在做什么?2.2、进程终止的3种情况 3、进程的终止3.1、进程终止的三种情况3.2、…

深度学习简介

深度学习简介 一、引言:深度学习的兴起 简短介绍深度学习的历史背景 深度学习,作为人工智能领域的一颗冉冉升起的新星,其根源可以追溯到上世纪的感知机学习算法。这种算法模拟人类的神经元行为,是最早期的尝试之一。然而&#x…

一天300收入打底,​一个适合任何人的创业项目!

共享旅游卡项目,一天300收入打底,一个适合任何人的创业项目! 只要你不懒,生活总过得不会太差。只要你不贪,就算不能大富大贵,至少不会负债累累。 人性最难戒掉的两个字:一个是懒,另…

Web安全漏洞原理(5万字最全总结)

资料来源–安恒攻防实验室 目录 SQL注入漏洞 漏洞原理 举例说明 测试方式 数字型注入:字符型注入:搜索型注入: 判断注入方式如何利用漏洞 识别数据库类型注入方法(union) 绕过过滤方式 大小写混合替换关键字使用编码…

Java——数组练习

目录 一.数组转字符串 二.数组拷贝 三.求数组中元素的平均值 四.查找数组中指定元素(顺序查找) 五.查找数组中指定元素(二分查找) 六.数组排序(冒泡排序) 七.数组逆序 一.数组转字符串 代码示例: import java.util.Arrays int[] arr {1,2,3,4,5,6}; String…

Python(1):认识Python并且了解一些简单函数

文章目录 一、Python的优势及其使用场景二、Python环境的安装三、Python中的变量及其命名四、Python中的注释五、一些简单常见的函数和认识ASCII表六、Python导入模块的方式 一、Python的优势及其使用场景 优点: 开发效率高:Python具有非常强大的第三方…

工业智能终端助力工业自动化的关键

在当今数字化时代,工业自动化已经成为工业生产中的重要趋势。随着工业互联网的发展,工业智能终端作为关键技术之一,正在为工业自动化的实现提供了重要支持和保障。 一、工业平板电脑 工业平板电脑具备显示与交互功能,可满足数采、…

rust使用print控制台打印输出五颜六色的彩色红色字体

想要在控制台打印输出彩色的字体,可以使用一些已经封装好的依赖库,比如ansi_term这个依赖库,官方依赖库地址:https://crates.io/crates/ansi_term 安装依赖: cargo add ansi_term 或者在Cargo.toml文件中加入&#…

Meta宣布全新训推一体加速器:完全集成PyTorch 2,性能3倍提升

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 Meta 疯狂砸入数十亿美元,一部分招揽人才,一部分造芯片。 Meta 正在不…

PyQt5+Pycharm, QThread

一、创建窗体控件 untitled.ui: PushButton, PushButton_2, PushButton_3 lineEdit, lineEdit_2, lineEdit_3 二、编译窗体 自动生成untitled.py 三、新建py文件 myDemo.py import sys from PyQt5.QtWidgets import QApplication, QMainWindow from untitled…

第四百五十三回

文章目录 1. 问题描述2. 优化方法2.1 缩小范围2.2 替代方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取AppBar的高度"相关的内容,本章回中将介绍关于MediaQuery的优化.闲话休提,让我们一起Talk Flutter吧。 1. 问题描述 我们在…

【学习】移动端兼容性测试有什么方法及重要性

随着移动互联网的快速发展,移动应用程序已经成为人们日常生活中不可或缺的一部分。然而,由于各种移动设备的硬件和软件差异,移动应用程序的兼容性问题也越来越突出。因此,移动端兼容性测试成为了一个重要的环节,它可以…