PaddleOCR 关于 DB检测方法 推理阶段丢失文字

tktrz96b  于 2022-11-05  发布在  其他
关注(0)|答案(4)|浏览(310)

你好, PaddleOCR
谢谢你们的项目。

在使用我自己训练的 DB 模型做文字检测时候,我发现 DB 有时候莫名其妙的丢失一整个文字;而丢失文字周边的文字却能够准确的检测到;具体如下图所示:

我尝试了在推理阶段 将 PostProcess 中的参数进行修改:
thresh: 0.1
box_thresh: 0.2

可是上述问题依然存在

请问我应该如何改善,或者解决这个问题(从模型训练, PostProcess, 还有其他方面等等)?
还请指教, 谢谢您!

我现在的训练配置文件 训练和后处理如下,其他的部分与默认相同:

PostProcess:
      name: DBPostProcess
      thresh: 0.3
      box_thresh: 0.5
      max_candidates: 6000
      unclip_ratio: 1.5

    Metric:
      name: DetMetric
      main_indicator: hmean

    Train:
      dataset:
        name: SimpleDataSet
        data_dir: ./train_data/paddle_train/text_localization/
        label_file_list:
          - ./train_data/paddle_train/text_localization/train_tag.txt
        ratio_list: [1.0]
        transforms:
          - DecodeImage: # load image
              img_mode: BGR
              channel_first: False
          - DetLabelEncode: # Class handling label
          - IaaAugment:
              augmenter_args:
                - { 'type': Fliplr, 'args': { 'p': 0.5 } }
                - { 'type': Affine, 'args': { 'rotate': [-8, 8] } }
                - { 'type': Resize, 'args': { 'size': [0.5, 3] } }
          - EastRandomCropData:
              size: [640, 640]
              max_tries: 50
              keep_ratio: true
          - MakeBorderMap:
              shrink_ratio: 0.4
              thresh_min: 0.3
              thresh_max: 0.7
          - MakeShrinkMap:
              shrink_ratio: 0.4
              min_text_size:4
          - NormalizeImage:
              scale: 1./255.
              mean: [0.485, 0.456, 0.406]
              std: [0.229, 0.224, 0.225]
              order: 'hwc'
          - ToCHWImage:
          - KeepKeys:
              keep_keys: ['image', 'threshold_map', 'threshold_mask', 'shrink_map', 'shrink_mask'] # the order of the dataloader list
jgovgodb

jgovgodb1#

你是加载提供的预训练模型进行finetune吗?我感觉可以把DB模型中的P图打印出来看看。还有一种方法就是换EAST模型进行训练试试看。

hec6srdp

hec6srdp2#

@yjhtc007,
谢谢你的回复。
是的,我在 PaddleOCR 的 backbone 为 ResNet50_vd 的已有模型进行 finetune。

请问什么是 DB 模型的 P 图?大概要怎么样操作?

嗯嗯,考虑之后尝试 测试SAST, EAST是不是精度没有 DB 高呢?
再次谢谢!

lkaoscv7

lkaoscv73#

@yjhtc007, 谢谢你的回复。 是的,我在 PaddleOCR 的 backbone 为 ResNet50_vd 的已有模型进行 finetune。

请问什么是 DB 模型的 P 图?大概要怎么样操作?

嗯嗯,考虑之后尝试 测试SAST, EAST是不是精度没有 DB 高呢? 再次谢谢!

1.p图就是DB模型里的概率图,是输出检测到的各文本区域的概率的,可以打印出来看一下,是否是某些文本区域没检测到呢?
2.你也可以用paddle提供的中英文通用检测DB模型进行finetune(就是backbone为ResNet18的那个)。
3.EAST可能对于这种长直文本的检测会比DB好一些吧,可以试一试用EAST看看效果

ia2d9nvy

ia2d9nvy4#

@yjhtc007,
非常感谢你的建议!

我首先试一试概率图,看看有没有被检测到。
如果没有,感觉跟这个算法的图片切割有关;不知道能不能通过调整 训练配置文件中的 “EastRandomCropData” 来改善 。。。
谢谢!

相关问题