DBNet理论知识(草稿)

基于分割的文本检测网络

检测方法:

基于回归的方法(文本框):

基于分割(基于像素点的分类)的方法(DBNet):

分割:

 

 

 

 

 

 

考:https://www.bilibili.com/video/BV1xf4y1p7Gf?p=2

https://zhuanlan.zhihu.com/p/94677957

项目层级(README)

模型部分:

config/open_dataset_resnet18_FPN_DBhead_polyLR.yaml 配置模型参数,模型结构

models/model.py  完整的DBnet过程

models/backbone/resnet.py  上图对应卷积部分(在models/backbone/_init_.py中实例化。resnet.py __all__ = ['build_backbone'])

models/neck/FPN.py  上图对应卷积部分(models/neck/_init_.py实例化。resnet.py __all__ = ['build_neck'])

models/head/DBHead.py  上图对应卷积部分(models/neck/_init_.py实例化。resnet.py __all__ = ['build_neck'])

推理部分:

tools/predict.py(models/_init_.py实例化model)

推理部分的后处理部分:

post_processing/seg_detector_representer.py

label制作部分:

data_loader/modules/make_shrink_map.py(通过文本框得到probability(shrink) map标注,原图大小)

data_loader/modules/make_border_map.py(threshold map标注)

train部分:

tools/train.py

trainer/trainer.py(_on_epoch_finish()函数:一个epoch评估一次)

评估部分:

DBnet\utils\ocr_metric\icdar2015\quad_metric.py (DetectionIoUEvaluator()核心)

指标: recall, precision, hmean

控制台:训练查看readme文件;预测修改predict.sh文件

DBNet代码实现过程,部分函数原理:

1.推理部分+后处理部分

转置卷积=up-sampling :nn.ConvTranspose2d(in_channels // 4, in_channels // 4, 2, 2)

 

 推理阶段,计算点的轮廓

2.label制作部分:

threshold map label制作

 

3.训练评估部分

评估多边形/矩形

trainer/trainer.py(_on_epoch_finish()函数:一个epoch评估一次)

DBnet\utils\ocr_metric\icdar2015\quad_metric.py (DetectionIoUEvaluator()核心)

DBnet\utils\ocr_metric\icdar2015\detection\iou.py  ---->继上部调用evaluate_image()

DBnet\utils\ocr_metric\icdar2015\quad_metric.py (gather_measure()函数)把所有batch整个一下,求得整个数据集上的评估结果

(trainer/trainer.py调用_eval()函数,再调gather_measure()函数) 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值