DBNet训练过程笔记
论文是Real-time Scene Text Detection with Differentiable Binarization,关于论文讲解有很多。
代码来自https://github.com/WenmuZhou/DBNet.pytorch
网络结构如下图。
代码结构
- base:保存模型,数据集处理的基类
- config:训练配置文件
- data_loader:加载数据集,创建文本框,对文本框进行处理
- datasets:放置数据集
- models:backbone,neck,head、Loss
- output:存储训练好的模型,此文件夹需要自己新建
- post_processing:后处理过程
- test:放测试图片和测试结果
- tools:包括训练,预测的py
- trainer:train.py的基类
- utils:评估模型的一些参数
环境配置
按照README.MD去安装,需另外安装natsort,addict这两个包
pip install -r requirement
数据集配置
下载icdar2015数据集,结构如下。
其中test.txt,train.txt需要自己生成,格式如下。
代码见generate_path.py
参考代码
配置文件
需要修改的文件:config文件夹中的
icdar2015_resnet18_FPN_DBhead_polyLR.yaml,
- epoch调小
- batch_size适当调大
- data_path改路径
注:源代码中是
data_path:
- ./datasets/test.json
改成
data_path:
-./datasets/test.txt
训练模型
在控制台输入
python tools/train.py --config_file "config/icdar2015_resnet18_FPN_DBhead_polyLR.yaml"
训练好的模型会保存在output/DBNet_resnet18_FPN_DBHead/checkpoint中
包括最好的和最后一次的模型
测试模型
训练好模型,就可以测试文本检测效果啦
- 在test文件夹中新建output,input文件夹,
- 将测试图片放入input文件夹,
- 修改tools/predict.py中的model_path,input_folder,output_folder,
- 修改完成即可运行predict.py,
- 结果在output文件夹中。
测试结果:
此文章只是本菜鸟的一些理解,有不对的地方欢迎批评指正。😁