Pytorch使用CRNN CTCLoss实现OCR系统

原文链接: https://ptorch.com/news/233.html

卷积递归神经网络

此项目使用CNN + RNN + CTCLoss实现OCR系统,灵感来自CRNN网络。

一、用法

python ./train.py --help

二、演示

1、使用TestDataset数据生成器训练简单的OCR。训练60-100次。

python train.py --test-init True --test-epoch 10 --output-dir 

2、运行test来训练可视化模型。

python test.py --snapshot /crnn_resnet18_10_best --visualize True

三、训练自定义数据集

1、创建数据集

  • 数据集的结构:

---- data
-------- 
...
-------- 
---- desc.json
  • desc.json的结构:
    {
    "abc": ,
    "train": [
    {
    "text": 
    "name": 
    },
    ...
    {
    "text": 
    "name": 
    }
    ],
    "test": [
    {
    "text": 
    "name": 
    },
    ...
    {
    "text": 
    "name": 
    }
    ]
    }

    2、使用自定义数据集训练简单的OCR。

    python train.pt --test-init True --test-epoch 10 --output-dir  --data-path 

    3、运行test来训练可视化模型。

python test.py --snapshot /crnn_resnet18_10_best --visualize True --data-path 

四、依赖

  • pytorch 0.3.0 +
  • warp-ctc

五、相关文章

  • 基于图像序列识别的端到端可训练神经网络及其在场景文本识别中的应用
  • Connectionist Temporal Classification:用递归神经网络标记未分段的序列数据

项目地址:BelBES/crnn-pytorch

prtorch参考手册 https://ptorch.com/docs/8/torch-nn

你可能感兴趣的:(ocr)