IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> PaddleOCR 自制模型训练 -> 正文阅读

[人工智能]PaddleOCR 自制模型训练

一、前言

拿文字识别场景举例:文字识别也是图像领域一个常见问题。然而,对于自然场景图像,首先要定位图像中的文字位置,然后才能进行识别。 所以一般来说,从自然场景图片中进行文字识别,需要包括2个步骤:

  • 文字检测:解决的问题是哪里有文字,文字的范围有多少
  • 文字识别:对定位好的文字区域进行识别,主要解决的问题是每个文字是什么,将图像中的文字区域进转化为字符信息。

二、训练检测模型

2.1 数据准备

数据集的制作可以通过PPOCRLabel工具完成。 关于PPOCRLabel的使用,可以参考文章《PaddleOCR 标注工具PPOCRLabel的使用》

本节以icdar15数据集为例,介绍如何完成PaddleOCR中文字检测模型的训练、评估与测试。

来到官网:https://rrc.cvc.uab.es/?ch=4&com=downloads可以看到有各个年份比赛的数据集。我们下载的是2015版数据集。
在这里插入图片描述

我们已经为您准备好了icdar15的数据集,存放在 ~/data/data34815/icdar2015.tar 中,可以运行如下指令完成数据集解压。

cd ~/data/data34815/ && tar xf icdar2015.tar && mv icdar2015  ~/PaddleOCR/train_data/

运行上述指令后 ~/train_data/icdar2015/text_localization 有两个文件夹和两个文件,分别是:

~/train_data/icdar2015/text_localization 
  └─ icdar_c4_train_imgs/         icdar数据集的训练数据
  └─ ch4_test_images/             icdar数据集的测试数据
  └─ train_icdar2015_label.txt    icdar数据集的训练标注
  └─ test_icdar2015_label.txt     icdar数据集的测试标注

2.2 快速启动训练

首先下载pretrain model (预训练模型),PaddleOCR的检测模型目前支持两种backbone,分别是MobileNetV3ResNet50_vd, 您可以根据需求使用PaddleClas中的模型更换backbone。

  • 下载预训练模型
# 下载MobileNetV3的预训练模型
!wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/MobileNetV3_large_x0_5_pretrained.tar
! cd pretrain_models/ && tar xf MobileNetV3_large_x0_5_pretrained.tar
# 下载ResNet50的预训练模型
!wget -P ./pretrain_models/ https://paddle-imagenet-models-name.bj.bcebos.com/ResNet50_vd_ssld_pretrained.tar
! cd pretrain_models/ && tar xf ResNet50_vd_ssld_pretrained.tar
  • 训练backbone为MobileNetV3的db算法的检测模型
# 训练backbone为MobileNetV3的db算法的检测模型
!python3 tools/train.py -c configs/det/det_mv3_db.yml -o Global.eval_batch_step="[0,2000]" 

上述指令中,通过-c 选择训练使用configs/det/det_db_mv3.yml配置文件。 有关配置文件的详细解释,请参考/doc目录下的config.md。
您也可以通过-o参数在不需要修改yml文件的情况下,改变训练的参数,比如,调整训练的学习率为0.0001

python3 tools/train.py -c configs/det/det_db_mv3.yml -o Optimizer.base_lr=0.0001

det_mv3_db.yml 文件内容参考:

Global:
  algorithm: DB
  use_gpu: true
  epoch_num: 1200
  log_smooth_window: 20
  print_batch_step: 2
  save_model_dir: ./output/det_db/
  save_epoch_step: 200
  # evaluation is run every 5000 iterations after the 4000th iteration
  eval_batch_step: [4000, 5000]
  train_batch_size_per_card: 16
  test_batch_size_per_card: 16
  image_shape: [3, 640, 640]
  reader_yml: ./configs/det/det_db_icdar15_reader.yml
  pretrain_weights: ./pretrain_models/MobileNetV3_large_x0_5_pretrained/
  checkpoints:
  save_res_path: ./output/det_db/predicts_db.txt
  save_inference_dir:
  
Architecture:
  function: ppocr.modeling.architectures.det_model,DetModel

Backbone:
  function: ppocr.modeling.backbones.det_mobilenet_v3,MobileNetV3
  scale: 0.5
  model_name: large

Head:
  function: ppocr.modeling.heads.det_db_head,DBHead
  model_name: large
  k: 50
  inner_channels: 96
  out_channels: 2

Loss:
  function: ppocr.modeling.losses.det_db_loss,DBLoss
  balance_loss: true
  main_loss_type: DiceLoss
  alpha: 5
  beta: 10
  ohem_ratio: 3

Optimizer:
  function: ppocr.optimizer,AdamDecay
  base_lr: 0.001
  beta1: 0.9
  beta2: 0.999

PostProcess:
  function: ppocr.postprocess.db_postprocess,DBPostProcess
  thresh: 0.3
  box_thresh: 0.7
  max_candidates: 1000
  unclip_ratio: 2.0

2.3 测试检测效果

训练过程中的检测模型保存在./output/det_db/中 ,模型保存的位置通过det_mv3_db.yml配置文件的Global.save_model_dir参数设置。

  • 使用训练好的模型测试单张图像的检测效果:
python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o TestReader.infer_img="./doc/imgs_en/img_10.jpg"  	Global.checkpoints="./output/det_db/best_accuracy"
  • 使用训练好的模型,测试文件夹下所有图像的检测效果
python3 tools/infer_det.py -c configs/det/det_mv3_db.yml -o TestReader.infer_img="./doc/imgs_en/"  Global.checkpoints="./output/det_db/best_accuracy"

三、训练识别模型

3.1 数据准备

  • 使用自己数据集:
    若您希望使用自己的数据进行训练,请参考下文组织您的数据。
  • 训练集:
    首先请将训练图片放入同一个文件夹(train_images),并用一个txt文件(rec_gt_train.txt)记录图片路径和标签。
  • 注意: 默认请将图片路径和图片标签用 \t 分割,如用其他方式分割将造成训练报错
" 图像文件名                 图像标注信息 "

train_images/train_0001.jpg   简单可依赖
train_images/train_0002.jpg   用科技让复杂的世界更简单

最终训练集应有如下文件结构:

|-train_data
    |-ic15_data
        |- rec_gt_train.txt
        |- train
            |- word_001.png
            |- word_002.jpg
            |- word_003.jpg
            | ...
  • 测试集
    同训练集类似,测试集也需要提供一个包含所有图片的文件夹(test)和一个rec_gt_test.txt,测试集的结构如下所示:
|-train_data
    |-ic15_data
        |- rec_gt_test.txt
        |- test
            |- word_001.jpg
            |- word_002.jpg
            |- word_003.jpg
            | ...

3.2 快速启动训练

首先下载pretrain model,PaddleOCR的检测模型目前支持两种backbone,分别是MobileNetV3ResNet50_vd, 您可以根据需求使用PaddleClas中的模型更换backbone。 本节将以 CRNN 识别模型为例:

  • CRNN 识别模型下载
wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/rec_mv3_none_bilstm_ctc.tar
cd pretrain_models && tar -xf rec_mv3_none_bilstm_ctc.tar && rm -rf rec_mv3_none_bilstm_ctc.tar
  • 开始训练
python3 tools/train.py -c configs/rec/rec_icdar15_train.yml

3.3 测试识别效果

  • 测试单张图像的识别结果
python3 tools/infer_rec.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints=./output/rec_CRNN/best_accuracy Global.infer_img=./doc/imgs_words_en/word_10.png
  • 测试文件夹下所有图像的文字识别效果
python3 tools/infer_rec.py -c configs/rec/rec_icdar15_train.yml -o Global.checkpoints=./output/rec_CRNN/best_accuracy Global.infer_img=./doc/imgs_words_en/

四、参考

十分钟掌握PaddleOCR使用

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 00:29:07  更:2022-09-21 00:32:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 22:53:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码