PPOCR文本方向分类器

自己被这个问题困扰了一下午,特地记录一下。
问题描述:在使用ppocr训练文本方向分类器时遇到的问题,同时ppocrlabel的文本框图片导出结果可能存在类似的问题,发现导出的图片(结果)和实际相比发生了旋转。

原因以及解决方案
百度ppocr会对检测到的文本计算高宽比,若大于某个阈值(表示文本是竖直的),则会对文本进行逆时针旋转90度(np.rot90),之后文本的方向只有0和180之分,就可以使用ppocr的[0, 180]的方向分类器进行分类,并进行旋转修改。
代码在tools/infer/utility.py文件中的get_rotate_crop_image方法,可以进行注释修改。注:PPOCRLabel可能也有类似的情况,导致导出的文本框图片出现倒立的情况(与实际情况不符合,如果需要训练文本方向分类器,需要将代码注释再导出,同时禁用文本方向分类器,use_angle_cls设置为false。

在这里插入图片描述

同时训练文本方向分类器的时候分清楚分清楚自己的文本方向是90度还是270.按照顺时针旋转计算。
并在tools/infer/predict_cls.py文件中进行修改,之前只支持180.

 	cv_rotate_code = {
                    '90': cv2.ROTATE_90_COUNTERCLOCKWISE,
                    '180': cv2.ROTATE_180,
                    '270': cv2.ROTATE_90_CLOCKWISE
                }
    if label in cv_rotate_code and score > self.cls_thresh:
        img_list[indices[beg_img_no + rno]] = cv2.rotate(
            img_list[indices[beg_img_no + rno]], cv_rotate_code[label])

再同时,修改超参数,有两个地方,一个是对应的超参数文件中的label_list[‘0’, ‘270’](训练或者单独推理用),另外一个就是utility文件,label_list也要进行修改(大概118行左右)(整体预测有关,predict_system)同时的同时,对于分类器分数小于cls_thresh的文本框,不会进行旋转调整,可以适当调小。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值