CRNN-PyTorch: 全语言OCR的PyTorch实现
CRNN-PyTorch 是一个基于 PyTorch 的卷积循环神经网络(Convolutional Recurrent Neural Network, CRNN)的开源项目,主要用于实现全语言的字符识别。该项目主要由 Python 编程语言实现。
项目基础介绍
CRNN-PyTorch 项目提供了一个基于 CRNN 架构的 OCR(Optical Character Recognition,光学字符识别)解决方案。CRNN 结合了卷积神经网络(CNN)和循环神经网络(RNN)的优点,能够有效地识别图像中的文字。该项目不仅支持英文,还可以支持中文等复杂语言字符的识别。
项目核心功能
- OCR 识别: 支持多种语言的文字识别,包括但不限于英文、中文等。
- CTC Loss: 采用 Connectionist Temporal Classification(CTC)损失函数,适用于处理可变长度的序列数据。
- 数据集制作: 提供了方便的数据集制作工具,支持文件夹模式和文件模式两种数据组织方式。
- 多GPU训练: 支持多 GPU 训练,提高训练效率。
- 参数和字符集自定义: 用户可以根据不同的需求调整参数和字符集。
项目最近更新的功能
- 修复了CTC Loss的NaN问题: 在训练过程中,CTC Loss 出现 NaN 的问题已经被修复。如果遇到此类问题,建议减小 batchSize 和学习率。
- 支持中文OCR: 通过修改读取键值的方式,项目现在支持中文OCR。
- 更换CTCLoss实现: 从 warp-ctc 切换到 PyTorch 自带的 CTCLoss,以适应 PyTorch 的最新版本。
- 处理NaN/Inf梯度: 新增参数 dealwith_lossnan,当设置为 True 时,网络会自动检查并替换所有 NaN/Inf 的梯度为0。
- 多GPU训练支持: 通过设置 multi_gpu 参数为 True,并正确设置 ngpu 参数,可以使用多 GPU 进行训练。
通过这些更新,CRNN-PyTorch 项目不仅提高了稳定性,还增加了对中文等复杂语言的支持,使得该项目更加全面和实用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考