基于PaddleOCR的FCENet复现
本项目是基于PaddleOCR的文本检测算法FCENet复现,论文提出了利用傅里叶变换对文本框进行建模的方法,提高了对任意形状文本的检测性能。
FCENet 论文复现
- 本项目基于PaddleOCR对文本检测算法FCENet进行复现,该论文发表于CVPR2021。
Fourier Contour Embedding for Arbitrary-Shaped Text Detection
目录
1. 简介
2. 数据集和复现精度
3. 开始使用
4. 代码结构与详细说明
5. 检测效果
6. 总结
1. 简介
-
论文提出了针对场景文本中的任意形状的文本框利用傅里叶变换进行建模的方法,骨干网络采用了ResNet+FPN的架构。针对Head部分,FCENet具有两个分支,其中分类分支预测文本区域和文本中心区域的概率图,相乘得到属于文本中心分类的得分图;回归分支则负责预测傅里叶特征向量。算法对文本中心置信度大于阈值的像素点所对应的傅里叶特征向量进行反变换,经过NMS得到最终的检测结果。
-
本项目基于PaddleOCR复现,利用其中丰富的OCR相关工具大大减小了项目复现的难度。复现过程中代码参考了mmocr_fcenet中的实现,提高了本repo复现论文的效率。在此表示感谢。
2. 数据集和复现精度
-
数据集大小:
- 训练集:1000
- 验证集:500
-
数据集目录结构:
ctw1500/ └─ imgs/ └─ training/ └─ test/ └─ training.txt └─ test.txt
-
复现精度
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. 检测效果
6. 总结
本次项目使用了PaddlePaddle和PaddleOCR进行论文复现,通过此次复现,加深了对论文的理解。论文复现按照论文复现文档进行的,通过完成复现过程中的核验点,加速了论文复现过程,对复现帮助很大。
更多推荐
所有评论(0)