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. 数据集和复现精度

CTW1500

  • 数据集大小:

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

      ctw1500/
        └─ imgs/         
            └─ training/             
            └─ test/    
            └─ training.txt
            └─ test.txt 
    
  • 标注文件格式参考PaddleOCR,数据集图像及转换好的标注从此处下载,提取码 b8rn

  • 复现精度

    BackboneDatasetPretrainedBatchSizeHmeanConfiglog
    R50_DCNv2ctw1500ImageNet(torch)60.854det_r50_fce_ctw.ymltrain_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 汇总信息
  • 训练相关:
算法名称模型名称单机单卡单机多卡多机多卡模型压缩(单机多卡)
FCENetdet_r50_fce_ctw正常训练正常训练--
  • 推理相关:基于训练是否使用量化,可以将训练产出的模型可以分为正常模型量化模型,这两类模型对应的推理功能汇总如下,
算法名称模型名称模型类型devicebatchsizetensorrtmkldnncpu多线程
FCENetdet_r50_fce_ctw正常模型GPU1---
FCENetdet_r50_fce_ctw正常模型CPU1-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_ctwLinux 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进行论文复现,通过此次复现,加深了对论文的理解。论文复现按照论文复现文档进行的,通过完成复现过程中的核验点,加速了论文复现过程,对复现帮助很大。

Logo

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐