Feat: Add PP-OCRv5 model#5388
Conversation
|
我没看见产生的优势是什么,正确率下降,单行识别耗时变为现在的2倍,alas 没 det 模型,你的 det 耗时是隔壁同样调用 paddle det 模型的 src 的 2~3 倍。要首先解决这个问题。 项目接入也完全没做,你不能写个小几百行的玩具代码,然后等着我帮你擦屁股,现在是 ai 时代,这样的代码没有价值。你要解决依赖冲突,rpc调用封装,原子设置字符集白名单,多语言模型和调用,det模型和rec模型的懒加载 主动预加载 主动释放,然后慢慢收集badcase进行修复,这个工作量不小的。 |
|
依赖问题:降级onnxruntime至1.10.0可以兼容numpy1.16.6,不过本机环境pip compile会在处理av时报错,pip install正常,不确定是否会有问题 PPOCR-v5不是用来替代已有的CNOCR的,例如科研任务的QDB三个字符太相似,不微调识别不准;目前主要是想在button assets中利用ocr来替代模板匹配文字图片,例如大世界的“深渊海域”,“普通海域”;宿舍计划的“选择宿舍”,“宿舍商店”等button 不确定隔壁的模型是不是指崩铁用的pponnxcr,v3和v5有较大区别,v5默认支持简繁日英四语;主要耗时都在预处理和det模型上,其中det占比80%以上,预处理约10% 性能测试:
如开头,ppocr不是来替代cnocr的,尤其是azur_lane模型,科研任务编号的识别目前替代不了 不过对于ui的按钮识别,ppocrv5自带的多语种和彩图支持是已有的cncor完全比不了的 注:单行文字的识别,默认启用了det模型(可通过参数关闭),因为部分情况下,文字周边存在无效的背景,或是文字右对齐,左边空白较大的情况下容易漏字或重复,先用det过一遍效果会好不少,而且图像裁剪后的耗时如上所述是完全可以接受的 |
增加PP-OCRv5 mobile模型用于OCR识别,仅支持了CPU,模型取自jingsongliujing/OnnxOCR
def ocr(self, img):单张图像的单行文字识别
def atomic_ocr_for_single_lines(self, img_list, cand_alphabet=None):类似CNOCR的多图单行文字识别接口,
没有批处理(batch=1)def detect_then_ocr(self, img, pad=10, threshold=0.3, mode=cv2.RETR_EXTERNAL, debug=False):检测可能的文本区域->OCR识别,
多区域也没有批处理(batch=1)方法2和3实现了批处理,不过性能提升有限
环境要求onnxruntime,在python 3.7上通过pip安装的版本是1.14.1,会升级numpy到1.21.6,cnocr和mxnet会报错numpy版本不匹配,但实际运行目前没遇到报错,不过可能会影响打包?这个pr不处理依赖关系
OCR效果:
竖排文字判断标准为若width*1.5<height,则逆时针旋转90°后再识别
现有的OCR基本用于数字识别,PP-OCRv5不微调没什么优势,而且已有的代码也有针对性的预处理和后处理
可能的用处大概是#1200和战斗时间(不用特地适配每个战斗主题)的识别?