# DBnet-lite.pytorch **Repository Path**: dlml2/DBnet-lite.pytorch ## Basic Information - **Project Name**: DBnet-lite.pytorch - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-10 - **Last Updated**: 2025-06-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [English](README_en.md) | 简体中文 # DBNet-lite-pytorch ## 这个项目之后会在这里更新,我把之前的项目都做了下整合[pytorchOCR](https://github.com/BADBADBADBOY/pytorchOCR) ## 环境配置 ``` pip install -r requirement.txt cd models/dcn/ sh make.sh ``` *** ## 水平或倾斜文本格式 照着icdar2015的格式, x1,y1,x2,y2,x3,y3,x4,y4,label, ``` image │ 1.jpg │ 2.jpg │ ... label │ gt_1.txt │ gt_2.txt | ... ``` *** ## 弧形文本的格式 数据格式, x1,y1,x2,y2,x3,y3,x4,y4 ...xn,yn,label n个点组成,n的个数可以不定 ``` image │ 1.jpg │ 2.jpg │ ... label │ gt_1.txt │ gt_2.txt | ... ``` *** ## 训练部分 在根目录的config.yaml里配置train部分的一些参数,例如一些图片位置,如果你的图片和gt文件名字是一样的,你可以设置is_icdar2015=False。 如果你不想做验证,可以直接设置start_val_epoch大于n_epoch,如果设置了做验证,会保存一个hmean最高的最优模型。 ``` python3 train.py ``` *** ## 测试部分 测试时,配置config.yaml中test部分,对于弧形文本设置is_poly=True,其它非弧形文本设置为False ``` python3 inference.py ``` *** ## 模型压缩之通道剪裁 ### 训练部分 1. 先进行稀疏训练,首先修改config.yaml将use_sr 设置为True,并设定sr_lr,这个设置越大压的越多,注意设置太大有可能不收敛. ``` python3 train.py ``` 2. 压缩模型 设置好config.yaml中pruned部分参数,运行 ``` python3 ./pruned/prune.py ``` 3. 重新finetune模型 这里精度会很快回升,一般可以训练50-100epoch,具体自己做实验 ``` python3 ./pruned/train_fintune.py ``` ### 测试部分 ``` python3 ./pruned/prune_inference.py ``` *** ## 在icdar2015的测试结果 |Method| head|extra data|prune ratio|model size(M)|precision(%)| recall(%) | hmean(%)|model_file| | - | - | - | - | - | - |- | - |- | | Resnet18|FPN|no|0|62.6|86.11| 76.45| 80.99|[baiduyun](https://pan.baidu.com/s/1wmbGMoluWlZ97LCqOnwjOg) (extract code: p0bk)| | Resnet18|DB|no|0.8|20.1|85.55| 76.40| 80.72|| *** ## 在icdar2015的测试结果图 *** #### 该项目会做 - [x] 转换作者的代码便于阅读和调试 - [x] 展示一些训练结果 - [ ] 加入轻量化的backbone压缩模型 - [ ] 通过通道剪裁压缩DB模型,精度基本不变 - [ ] 通过知识蒸馏进一步提升压缩后模型效果 # 参考 1. https://github.com/whai362/PSENet 2. https://github.com/MhLiao/DB 3. https://github.com/Jzz24/pytorch_quantization