PaddleOCR的FCENet复现如何实现细节优化?

2026-05-07 04:591阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3575个文字,预计阅读时间需要15分钟。

PaddleOCR的FCENet复现如何实现细节优化?

相关专题

目录

1. 简介2. 数据集和复现精度3. 开始使用4. 代码结构与详细说明5. 检测效果6. 总结

1. 简介

  • 论文提出了针对场景文本中的任意形状的文本框利用傅里叶变换进行建模的方法,骨干网络采用了ResNet+FPN的架构。针对Head部分,FCENet具有两个分支,其中分类分支预测文本区域和文本中心区域的概率图,相乘得到属于文本中心分类的得分图;回归分支则负责预测傅里叶特征向量。算法对文本中心置信度大于阈值的像素点所对应的傅里叶特征向量进行反变换,经过NMS得到最终的检测结果。

  • 本项目基于PaddleOCR复现,利用其中丰富的OCR相关工具大大减小了项目复现的难度。复现过程中代码参考了mmocr_fcenet中的实现,提高了本repo复现论文的效率。在此表示感谢。

2. 数据集和复现精度

CTW1500

  • 数据集大小:

    • 训练集:1000
    • 验证集:500
  • 数据集目录结构:

    ctw1500/ └─ imgs/ └─ training/ └─ test/ └─ training.txt └─ test.txt

  • 标注文件格式参考PaddleOCR,数据集图像及转换好的标注从此处下载,提取码 b8rn

  • 复现精度

    Backbone Dataset Pretrained BatchSize Hmean Config log
    R50_DCNv2 ctw1500 ImageNet(torch) 6 0.854 det_r50_fce_ctw.yml train_log

    预训练模型使用的是Pytorch版本的ResNet50,转换的预训练模型及训练结果权重从此处下载,提取码0wkj

3. 开始使用

3.1 使用AI Studio 在线运行

  • 1.解压数据集和第三方依赖包

    unzip -qo /home/aistudio/data/data120898/ctw1500.zip -d /home/aistudio/data/ unzip -qo /home/aistudio/data/data123649/external-libraries.zip -d /home/aistudio/

  • 2.训练

    cd /home/aistudio/work/FCENet_Paddle-master/ python -m paddle.distributed.launch --gpus '0' tools/train.py -c configs/det/det_r50_fce_ctw.yml

  • 3.验证

    cd /home/aistudio/work/FCENet_Paddle-master/ python tools/eval.py -c configs/det/det_r50_fce_ctw.yml -o Global.pretrained_model='weights/best_accuracy'

  • 4.推断

    cd /home/aistudio/work/FCENet_Paddle-master/ python tools/infer_det.py -c configs/det/det_r50_fce_ctw.yml -o Global.pretrained_model='weights/best_accuracy'

3.2 训推一体全流程(TIPC)

飞桨除了基本的模型训练和预测,还提供了支持多端多平台的高性能推理部署工具。本文档提供了`您的模型`中所有模型的飞桨训推一体全流程(Training and Inference Pipeline Criterion(TIPC))信息和测试工具,方便用户查阅每种模型的训练推理部署打通情况,并可以进行一键测试。

3.2.1 汇总信息

  • 训练相关:
算法名称 模型名称 单机单卡 单机多卡 多机多卡 模型压缩(单机多卡)
FCENet det_r50_fce_ctw 正常训练 正常训练 - -
  • 推理相关:基于训练是否使用量化,可以将训练产出的模型可以分为正常模型和量化模型,这两类模型对应的推理功能汇总如下,
算法名称 模型名称 模型类型 device batchsize tensorrt mkldnn cpu多线程
FCENet det_r50_fce_ctw 正常模型 GPU 1 - - -
FCENet det_r50_fce_ctw 正常模型 CPU 1 - fp32 支持

3.2.2 测试流程

  • 准备数据

用于基础训练推理测试的数据位于ctw1500_tiny。

  • 准备环境

    • 1.解压第三方依赖包(如已经解压则无需重复解压)

      unzip -qo /home/aistudio/data/data123649/external-libraries.zip -d /home/aistudio/

  • 功能测试

测试方法如下所示,希望测试不同的模型文件,只需更换为自己的参数配置文件,即可完成对应模型的测试。

bash test_tipc/test_train_inference_python.sh ${your_params_file} lite_train_lite_infer

以det_r50_fce_ctw的Linux GPU/CPU 基础训练推理测试为例,命令如下所示。

bash test_tipc/test_train_inference_python.sh test_tipc/configs/det_r50_fce_ctw/train_infer_python.txt lite_train_lite_infer

输出结果如下,表示命令运行成功。

Run successfully with command - xxx

3.3 本地运行

  • 详情请参考进行环境配置。

4. 代码结构

├─configs ├─doc ├─output ├─ppocr ├─test_tipc ├─tools │ infer/ │ eval.py │ export_model.py │ infer_cls.py │ infer_det.py │ infer_e2e.py │ infer_rec.py │ infer_table.py │ program.py │ test_hubserving.py │ train.py ├─train.sh ├─requirements.txt ├─setup.py ├─README.md

5. 检测效果

本文共计3575个文字,预计阅读时间需要15分钟。

PaddleOCR的FCENet复现如何实现细节优化?

相关专题

目录

1. 简介2. 数据集和复现精度3. 开始使用4. 代码结构与详细说明5. 检测效果6. 总结

1. 简介

  • 论文提出了针对场景文本中的任意形状的文本框利用傅里叶变换进行建模的方法,骨干网络采用了ResNet+FPN的架构。针对Head部分,FCENet具有两个分支,其中分类分支预测文本区域和文本中心区域的概率图,相乘得到属于文本中心分类的得分图;回归分支则负责预测傅里叶特征向量。算法对文本中心置信度大于阈值的像素点所对应的傅里叶特征向量进行反变换,经过NMS得到最终的检测结果。

  • 本项目基于PaddleOCR复现,利用其中丰富的OCR相关工具大大减小了项目复现的难度。复现过程中代码参考了mmocr_fcenet中的实现,提高了本repo复现论文的效率。在此表示感谢。

2. 数据集和复现精度

CTW1500

  • 数据集大小:

    • 训练集:1000
    • 验证集:500
  • 数据集目录结构:

    ctw1500/ └─ imgs/ └─ training/ └─ test/ └─ training.txt └─ test.txt

  • 标注文件格式参考PaddleOCR,数据集图像及转换好的标注从此处下载,提取码 b8rn

  • 复现精度

    Backbone Dataset Pretrained BatchSize Hmean Config log
    R50_DCNv2 ctw1500 ImageNet(torch) 6 0.854 det_r50_fce_ctw.yml train_log

    预训练模型使用的是Pytorch版本的ResNet50,转换的预训练模型及训练结果权重从此处下载,提取码0wkj

3. 开始使用

3.1 使用AI Studio 在线运行

  • 1.解压数据集和第三方依赖包

    unzip -qo /home/aistudio/data/data120898/ctw1500.zip -d /home/aistudio/data/ unzip -qo /home/aistudio/data/data123649/external-libraries.zip -d /home/aistudio/

  • 2.训练

    cd /home/aistudio/work/FCENet_Paddle-master/ python -m paddle.distributed.launch --gpus '0' tools/train.py -c configs/det/det_r50_fce_ctw.yml

  • 3.验证

    cd /home/aistudio/work/FCENet_Paddle-master/ python tools/eval.py -c configs/det/det_r50_fce_ctw.yml -o Global.pretrained_model='weights/best_accuracy'

  • 4.推断

    cd /home/aistudio/work/FCENet_Paddle-master/ python tools/infer_det.py -c configs/det/det_r50_fce_ctw.yml -o Global.pretrained_model='weights/best_accuracy'

3.2 训推一体全流程(TIPC)

飞桨除了基本的模型训练和预测,还提供了支持多端多平台的高性能推理部署工具。本文档提供了`您的模型`中所有模型的飞桨训推一体全流程(Training and Inference Pipeline Criterion(TIPC))信息和测试工具,方便用户查阅每种模型的训练推理部署打通情况,并可以进行一键测试。

3.2.1 汇总信息

  • 训练相关:
算法名称 模型名称 单机单卡 单机多卡 多机多卡 模型压缩(单机多卡)
FCENet det_r50_fce_ctw 正常训练 正常训练 - -
  • 推理相关:基于训练是否使用量化,可以将训练产出的模型可以分为正常模型和量化模型,这两类模型对应的推理功能汇总如下,
算法名称 模型名称 模型类型 device batchsize tensorrt mkldnn cpu多线程
FCENet det_r50_fce_ctw 正常模型 GPU 1 - - -
FCENet det_r50_fce_ctw 正常模型 CPU 1 - fp32 支持

3.2.2 测试流程

  • 准备数据

用于基础训练推理测试的数据位于ctw1500_tiny。

  • 准备环境

    • 1.解压第三方依赖包(如已经解压则无需重复解压)

      unzip -qo /home/aistudio/data/data123649/external-libraries.zip -d /home/aistudio/

  • 功能测试

测试方法如下所示,希望测试不同的模型文件,只需更换为自己的参数配置文件,即可完成对应模型的测试。

bash test_tipc/test_train_inference_python.sh ${your_params_file} lite_train_lite_infer

以det_r50_fce_ctw的Linux GPU/CPU 基础训练推理测试为例,命令如下所示。

bash test_tipc/test_train_inference_python.sh test_tipc/configs/det_r50_fce_ctw/train_infer_python.txt lite_train_lite_infer

输出结果如下,表示命令运行成功。

Run successfully with command - xxx

3.3 本地运行

  • 详情请参考进行环境配置。

4. 代码结构

├─configs ├─doc ├─output ├─ppocr ├─test_tipc ├─tools │ infer/ │ eval.py │ export_model.py │ infer_cls.py │ infer_det.py │ infer_e2e.py │ infer_rec.py │ infer_table.py │ program.py │ test_hubserving.py │ train.py ├─train.sh ├─requirements.txt ├─setup.py ├─README.md

5. 检测效果