MMOCR项目训练与测试全指南

MMOCR项目训练与测试全指南

mmocr OpenMMLab Text Detection, Recognition and Understanding Toolbox mmocr 项目地址: https://gitcode.com/gh_mirrors/mm/mmocr

前言

MMOCR作为一款强大的OCR工具库,提供了丰富的训练和测试功能。本文将全面介绍如何在MMOCR中进行模型训练和测试,涵盖从单机单卡到分布式集群的各种场景,帮助开发者充分利用硬件资源,高效完成OCR模型的训练和评估。

基础训练与测试

单卡训练配置

MMOCR支持使用GPU和CPU进行模型训练。对于初学者或小规模实验,单卡训练是最简单的方式:

# 使用CPU训练DBNet模型
CUDA_VISIBLE_DEVICES=-1 python tools/train.py configs/textdet/dbnet/dbnet_resnet50-dcnv2_fpnc_1200e_icdar2015.py

# 使用GPU训练DBNet模型(指定GPU 0)
CUDA_VISIBLE_DEVICES=0 python tools/train.py configs/textdet/dbnet/dbnet_resnet50-dcnv2_fpnc_1200e_icdar2015.py

训练脚本支持以下关键参数:

  • --work-dir:指定工作目录,用于保存训练日志和模型检查点
  • --resume:从上次中断处恢复训练
  • --amp:启用混合精度训练,减少显存占用并加速训练
  • --auto-scale-lr:根据batch size自动调整学习率

单卡测试方法

模型训练完成后,可以使用测试脚本评估模型性能:

# 使用CPU测试DBNet模型
CUDA_VISIBLE_DEVICES=-1 python tools/test.py configs/textdet/dbnet/dbnet_resnet50-dcnv2_fpnc_1200e_icdar2015.py dbnet_r50.pth

# 使用GPU测试DBNet模型
CUDA_VISIBLE_DEVICES=0 python tools/test.py configs/textdet/dbnet/dbnet_resnet50-dcnv2_fpnc_1200e_icdar2015.py dbnet_r50.pth

测试脚本支持以下实用功能:

  • --show:实时可视化预测结果
  • --show-dir:将可视化结果保存到指定目录
  • --tta:启用测试时数据增强(仅文本识别模型支持)

分布式训练与测试

单机多卡配置

对于拥有多块GPU的服务器,可以使用分布式训练大幅提升效率:

# 使用4块GPU训练DBNet模型
./tools/dist_train.sh configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py 4

# 使用4块GPU测试DBNet模型
./tools/dist_test.sh configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py dbnet_r50.pth 4

多机多卡配置

MMOCR支持跨多台机器的分布式训练,适用于大规模模型训练:

# 机器1(主节点)
NNODES=2 NODE_RANK=0 PORT=29501 MASTER_ADDR=10.140.0.169 ./tools/dist_train.sh configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py 2

# 机器2(从节点)
NNODES=2 NODE_RANK=1 PORT=29501 MASTER_ADDR=10.140.0.169 ./tools/dist_train.sh configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py 2

注意事项:

  1. 确保所有机器在同一局域网内
  2. 主节点IP地址(MASTER_ADDR)需要正确配置
  3. 端口号(PORT)需要在所有机器上保持一致

集群环境部署

对于使用Slurm调度系统的计算集群,MMOCR提供了专门的提交脚本:

# 提交训练任务
GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=5 ./tools/slurm_train.sh dev db_r50 configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py work_dir

# 提交测试任务
GPUS=8 GPUS_PER_NODE=8 CPUS_PER_TASK=5 ./tools/slurm_test.sh dev db_r50 configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py dbnet_r50.pth work_dir

高级技巧

混合精度训练支持

MMOCR中大部分模型支持混合精度训练,可以显著减少显存占用并提升训练速度:

python tools/train.py configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py --amp

断点续训方法

训练意外中断后,可以轻松恢复训练:

# 从最新检查点恢复
python tools/train.py configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py --resume

# 从指定检查点恢复(需在配置文件中设置)
load_from = 'work_dir/dbnet/models/epoch_10000.pth'

结果可视化分析

测试时可视化功能帮助直观评估模型表现:

# 实时显示预测结果
python tools/test.py configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py dbnet_r50.pth --show

# 保存可视化结果
python tools/test.py configs/textdet/dbnet/dbnet_r50dcnv2_fpnc_1200e_icdar2015.py dbnet_r50.pth --show-dir ./vis_results

结语

本文全面介绍了MMOCR的训练和测试方法,从基础的单卡操作到高级的分布式训练技巧。合理运用这些功能,可以充分发挥硬件性能,高效完成OCR模型的开发和评估。建议开发者根据实际硬件条件和项目需求,选择最适合的训练测试方案。

mmocr OpenMMLab Text Detection, Recognition and Understanding Toolbox mmocr 项目地址: https://gitcode.com/gh_mirrors/mm/mmocr

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

### MMOCR 模型部署教程和最佳实践 #### 准备环境 为了成功部署MMOCR模型,需先安装必要的依赖项。推荐使用Anaconda虚拟环境来管理Python包。 ```bash conda create -n mmocr_env python=3.8 conda activate mmocr_env pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 ``` #### 安装MMOCR库 通过`mim`工具可以轻松安装最新版本的MMOCR库: ```bash mim install mmocr ``` #### 下载预训练模型权重 对于特定任务(如文本检测),下载对应的预训练模型权重文件是必需的操作之一。这里以DBNet为例说明如何获取并加载模型参数。 ```python import mmcv from mmdet.apis import init_detector, inference_detector config_file = 'mmocr/configs/textdet/dbnet/dbnet_r18-dcn_v3.py' checkpoint_url = 'https://download.openmmlab.com/mmocr/textdet/dbnet/dbnet_r18-dcn_1200e_icdar2015_20210623_115019-b52b911a.pth' model = init_detector(config_file, checkpoint=None, device='cuda:0') weights_path = './dbnet_weights.pth' mmcv.fileio.load_from_http(checkpoint_url, weights_path) model.load_state_dict(mmcv.runner.load_checkpoint(weights_path)) ``` #### 配置推理脚本 创建一个名为`inference.py`的新文件,在其中定义图像输入路径、输出保存位置以及所使用的配置文件检查点链接。 ```python if __name__ == '__main__': from argparse import ArgumentParser parser = ArgumentParser() parser.add_argument('img', help='Image file') parser.add_argument('out_file', help='Path to output file') args = parser.parse_args() result = inference_detector(model, args.img) # 将预测结果可视化并保存到指定目录下 model.show_result(args.img, result, out_file=args.out_file) ``` #### 执行命令行指令完成一次完整的推断过程 最后一步是在终端中键入如下命令启动程序,实现从图片读取至最终结果展示整个流程自动化处理。 ```bash python tools/inference.py demo/demo_text.jpg output/text_det_result.png \ --config mmocr/configs/textdet/dbnet/dbnet_r18-dcn_v3.py \ --checkpoint ./dbnet_weights.pth ``` 以上即为基于MMOCR框架下的模型部署指南[^3]。值得注意的是,实际应用过程中可能还需要针对具体业务需求调整部分设置选项或优化性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔如黎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值