你好, 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
4条答案
按热度按时间jgovgodb1#
你是加载提供的预训练模型进行finetune吗?我感觉可以把DB模型中的P图打印出来看看。还有一种方法就是换EAST模型进行训练试试看。
hec6srdp2#
@yjhtc007,
谢谢你的回复。
是的,我在 PaddleOCR 的 backbone 为 ResNet50_vd 的已有模型进行 finetune。
请问什么是 DB 模型的 P 图?大概要怎么样操作?
嗯嗯,考虑之后尝试 测试SAST, EAST是不是精度没有 DB 高呢?
再次谢谢!
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看看效果
ia2d9nvy4#
@yjhtc007,
非常感谢你的建议!
我首先试一试概率图,看看有没有被检测到。
如果没有,感觉跟这个算法的图片切割有关;不知道能不能通过调整 训练配置文件中的 “EastRandomCropData” 来改善 。。。
谢谢!