Project Icon

SimpleHTR

TensorFlow手写文本识别系统,支持单词和整行文本识别

本手写文本识别系统使用TensorFlow实现,并训练于IAM数据集。其能够识别单词和整行文本,验证集中3/4的单词被正确识别,字符错误率约为10%。系统提供预训练模型下载和多种解码器选项,包括适用于Windows的word beam search解码器。此外,还支持快速数据加载和训练设置,适合快速开发与部署文本识别应用。

使用 TensorFlow 进行手写文本识别

  • 更新 2023/2:web demo 可用
  • 更新 2023/1:参见 HTRPipeline 以读取整页的包
  • 更新 2021/2:识别行级别的文本(多个单词)
  • 更新 2021/1:更稳健的模型,更快的数据加载器,Windows平台也可用的word beam search解码器
  • 更新 2020:代码兼容 TF2

使用 TensorFlow(TF)实现的手写文本识别(HTR)系统,并在 IAM 离线 HTR 数据集上训练。该模型的输入是单词或文本行(多个单词)的图像,输出是识别的文本。验证集中四分之三的单词被正确识别,字符错误率约为10%。

htr

运行示例

  • 下载预训练模型之一
  • 将下载的 zip 文件中的内容放入仓库的 model 目录中
  • 转到 src 目录
  • 运行推理代码:
    • 执行 python main.py 以在单词图像上运行模型
    • 执行 python main.py --img_file ../data/line.png 以在文本行图像上运行模型

以下显示了使用文本行模型时的输入图像和期望输出。

![test](https://yellow-cdn.veclightyear.com/2b54e442/550154d8-4633-4cef-baad-a70e6d0d42f0.png)

> python main.py
使用存储值 ../model/snapshot-13 初始化
识别结果:"word"
概率:0.9806370139122009

![test](https://yellow-cdn.veclightyear.com/2b54e442/8841a9ed-449b-406e-b674-04313672f7ac.png)

> python main.py --img_file ../data/line.png
使用存储值 ../model/snapshot-13 初始化
识别结果:"or work on line level"
概率:0.6674373149871826

命令行参数

  • --mode:选择“train”,“validate”或“infer”。默认为“infer”。
  • --decoder:在 CTC 解码器中选择 “bestpath”、“beamsearch” 和 “wordbeamsearch”。默认为 “bestpath”。有关 “wordbeamsearch”的选项,详见下文。
  • --batch_size:批处理大小。
  • --data_dir:包含 IAM 数据集的目录(包含子目录 imggt)。
  • --fast:使用 LMDB 更快地加载图像。
  • --line_mode:训练读取文本行而不是单个单词。
  • --img_file:用于推理的图像。
  • --dump:将神经网络的输出转存到 dump 文件夹中保存的 CSV 文件,可作为 CTCDecoder 的输入。

集成word beam search解码

word beam search decoder 可以代替 TF 附带的两个解码器。单词受到包含在字典中的单词限制,但仍然可以识别任意的非单词字符串(数字、标点符号)。下图显示了一个示例,其中 word beam search 能够识别正确的文本,而其他解码器失败。

![decoder_comparison](https://yellow-cdn.veclightyear.com/2b54e442/ebcb48b9-31a2-48c6-8047-f7e5929e6613.png)

按照以下说明集成word beam search解码:

  1. 克隆仓库 CTCWordBeamSearch
  2. 在 CTCWordBeamSearch 仓库的根目录运行 pip install . 进行编译和安装
  3. 在执行 main.py 时指定命令行选项 --decoder wordbeamsearch 以实际使用解码器

字典在训练和验证模式下自动创建,使用包含在 IAM 数据集中的所有单词(即还包括验证集中的单词),并保存到文件 data/corpus.txt 中。此外,手动创建的单词字符列表可以在文件 model/wordCharList.txt 中找到。beam 宽度设置为 50,以符合普通 beam search 解码的 beam 宽度。

在 IAM 数据集上训练模型

准备数据集

按照以下说明获取 IAM 数据集:

  • 在这个网站 免费注册
  • 下载 words/words.tgz
  • 下载 ascii/words.txt
  • 在磁盘上为数据集创建一个目录,并创建两个子目录:imggt
  • words.txt 放入 gt 目录
  • words.tgz 的内容(目录 a01a02 等)放入 img 目录

运行训练

  • 如果想从头开始训练,请删除 model 目录中的文件
  • 转到 src 目录并执行 python main.py --mode train --data_dir path/to/IAM
  • IAM 数据集分为 95% 训练数据和 5% 验证数据
  • 如果指定选项 --line_mode,模型将在通过将多个单词图像组合成一个文本行图像上训练
  • 在固定轮次没有改进后停止训练

预训练的单词模型在 GTX 1050 Ti 上用以下命令训练:

python main.py --mode train --fast --data_dir path/to/iam  --batch_size 500 --early_stopping 15

行模型用以下命令训练:

python main.py --mode train --fast --data_dir path/to/iam  --batch_size 250 --early_stopping 10

快速图像加载

即使只使用小型 GPU,从磁盘加载和解码 png 图像文件也是瓶颈。 LMDB 数据库用于加快图像加载速度:

  • 转到 src 目录并运行 create_lmdb.py --data_dir path/to/iam,指定 IAM 数据目录
  • 在 IAM 数据目录中创建一个名为 lmdb 的子文件夹,包含 LMDB 文件
  • 当训练模型时,添加命令行选项 --fast

数据集应位于 SSD 驱动器上。 使用 --fast 选项和 GTX 1050 Ti 训练单词大约需要 3 小时,批处理大小为 500。 在文本行上训练需要更长时间。

关于模型的信息

该模型是我为我的论文 实现的 HTR 系统的简化版本。 剩下的是识别具有可接受精度的文本的最低要求。 它由 5 层 CNN、2 层 RNN(LSTM)以及 CTC 损失和解码层组成。 更多详细信息请参见这篇 Medium 文章

参考

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号