Closed camelwu closed 1 year ago
比如这个字:崑
那很简单,缩放预处理压缩模式改到一个很大的值(如99999)就行了,宽高低于这个数值的图片都不会被压缩。当然,处理速度会变慢。
生僻字识别率低是正常的,毕竟这只是一个10多M的小模型,参数有限,必然把重心放在常用字上。我记得PPOCR旧版(V2)有100M量级的服务器用完整大模型,也许识别精度会更高一点。Umi-OCR支持导入这个模型库的。
模型下载了Umi-OCR\PaddleOCR-json\ch_ppocr_server_v2.0_rec_train
,配置文件也改了
#! PaddleOCR_json_config_chv2.TXT
# 简中 PP-OCR v2
# det 检测模型库,已支持多语言,一般不用改
det_model_dir ch_PP-OCRv3_det_infer
# cls 方向分类器库,不用改
cls_model_dir ch_ppocr_mobile_v2.0_cls_infer
# rec 识别模型库,目标语言的rec库的路径(文件夹名)
rec_model_dir ch_ppocr_server_v2.0_rec_infer
# 字典路径,目标语言的字典txt文件的路径(文件名)
rec_char_dict_path chinese_cht_dict.txt
# 若为v2版识别库,需要改为32(将下一行开头的#删掉)
rec_img_h 32
根目录的config也改了
"ocrConfig": {
"简体中文": {
"path": "PaddleOCR_json_config_chv2.txt"
}
},
结果:
懌嘶体嘿
漏客▕帚亂冠甥崈吔佀喼仟9:9~俁0伴丨▕翱9:9~俋9`啖Ο}叢@~:<};@儡償吻事僵翱冪亊唯劬s ā喀交宍仟
:
l仟吻沓
崢客徳俽乾彜矍凍供
呢浴噯味嗄l仞土傈凍供
僵à溏│姚l仞彜矍單匂│n
瑺夌匐夙稔l仞姁團彜矍凍供
l仟┅)
测试了一下,将字典改回原来的就不再乱码
# 字典路径,目标语言的字典txt文件的路径(文件名)
rec_char_dict_path ppocr_keys_v1.txt
但是需要识别的文字还是不行,应该是从字典里输出文字吧? 我再试试更换文件编码
你好,你的配置编写有几个错误:
***_train
,实际上应该下载 推理模型 (inference model)。ch_ppocr_server_
是简中库,所以只能使用简中字典(即原本的字典),不能使用繁中字典。模型库必须与字典相匹配,繁中库配繁中字典,简中库配简中字典,否则会乱码。另外我翻了一下,似乎只有简中放出了服务器级模型,繁中只给了小模型。你可以再浏览下 这里 。
谢谢!
PaddleOCR
认为“崑”属于繁体字简单跟你解释一下OCR引擎的原理吧:
模型库 本身是不会输出“汉字”的。它记录一组神经网络的参数,这个网络能将输入的图像转换为一组数字序列。比如它通过推理,认为第一坨像素应该是“3049”,第二坨像素应该是“696”,第三坨应该是“746”,于是输出 [3049, 696, 746] 。
然后,引擎在 字典文件 里查找,发现第3049行是晚
,第696行是上
,746是好
。于是引擎最终输出晚上好
。
因此,如果 模型库 里没有某个字形的参数(如崑
),那么更换 字典文件 是不能让引擎识别这个字的。
同理,简中模型库里没有繁体字的参数,是因此是不能识别繁体字的。
至于为什么没有混合多语言的模型库?为什么PPOCR对生僻字的识别精度低 甚至不能识别?因为 All in one 的难度很大。混合多语言库的字符集数量更多,而且形近字也更多,势必引起网络容量膨胀、性能下降、识别率下降,训练集标注的成本也更高。因此性价比不高,目前市面上很少有多语言库的产品。
好的,非常感谢!
图片是大分辨率的情况下
批量任务时默认宽度960文字识别不准确,即使我改了1125,也没有直接用截图来扫描的结果准确。能不能下啦再加一个选项是不对图片进行缩放 扫描?
还有一些不常见的汉字似乎也不能认,我会再试试加上繁体字会不会好些
谢谢