-
Notifications
You must be signed in to change notification settings - Fork 1k
Feat: Add PP-OCRv5 model #5388
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
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和战斗时间(不用特地适配每个战斗主题)的识别?