PytorchOCR的识别模块支持TextLine
和 LMDB
形式的数据格式
-
构造数据集
TextLine
训练集和验证集的格式一致,准备一个txt文件,里面每一行记录了图片路径和对应的标注,使用
\t
作为分隔符 如用其他方式分割将造成训练报错" 图像文件名 图像标注信息 " train_data/train_0001.jpg 简单可依赖 train_data/train_0002.jpg 用科技让复杂的世界更简单
LMDB
准备好
TextLine
的txt文件之后,使用 转换工具 可以生成LMDB
格式的数据集
我们也提供准备好一批准换好的训练数据,具体请参考 https://github.com/WenmuZhou/OCR_DataSet
- 字典 数据集准备完成之后,需要提前准备好一个包含训练验证集里全部字符的字典,应为如下格式,utf8编码保存
0
1
2
3
4
5
PytorchOCR提供了训练脚本和预测脚本,本节将以 CRNN 识别模型为例,按照如下步骤启动训练:
-
下载预训练模型(待提供)
-
拷贝
config/rec_train_config.py
为自己的配置文件,LMDB 数据集使用config/rec_train_lmdb_config.py
-
修改配置文件
- 必须修改的字段说明
config.dataset.alphabet
: 字典文件config.dataset.train.dataset.file
: 训练集txt文件 or LMDB 数据集路径config.dataset.eval.dataset.file
: 验证集集txt文件 or LMDB 数据集路径config.model.head.n_class
: 分类字符数+背景
- 可选修改字段说明
config.train_options.checkpoint_save_dir
: 模型和日志文件保存地址
其他字段可根据需要修改
-
通过如下命令启动训练
CUDA_VISIBLE_DEVICES=0 python3 tools/rec_train.py --config '你的配置文件路径'
PytorchOCR支持训练和评估交替进行, 可以在 config.train_options
中修改 val_interval
设置评估频率,
评估过程中默认将最佳acc模型,保存为 best.pth。
只需修改 config.train_options.resume_from
为模型地址,即可从该模型断掉的地方继续训练
通过以下命令启动预测
CUDA_VISIBLE_DEVICES=0 python3 tools/rec_infer.py --model_path '' --img_path ''