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