PaddlePaddle / PaddleOCR

Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80+ languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)
https://paddlepaddle.github.io/PaddleOCR/
Apache License 2.0
43.91k stars 7.8k forks source link

win10 C++与python识别结果不一致 #419

Closed qq61786631 closed 4 years ago

qq61786631 commented 4 years ago

如题,python文字定位和检测都比较正常。 2

但是C++,使用ocr_system.exe识别时,出现文字定位不准确的情况,导致识别结果异常。

360截图16720402076048

两者都用的 超轻量级中文OCR模型 (ch_det_mv3_db)和 文字检测(ch_rec_mv3_crnn_enhance) 模型,参数均为默认参数。

但是用通用中文OCR模型两者都可以正确识别,请问C++实现和python实现为啥会出现这些分别~ 还能抢救下不 (^o^)/

littletomatodonkey commented 4 years ago

你好,感谢反馈,可能是预测库和inference model的版本不一致导致的,稍等我check下

littletomatodonkey commented 4 years ago

你好,初步定位原因如下:官网提供的windows c++预测库版本为1.8.2,PaddleOCR提供的inference model为1.7.1版本,因此加载之后c++预测和py预测的输出diff比较大,有2个解决方法:

  1. 在paddle1.8.2环境下导出检测与识别模型,使用该模型和1.8.2版本的c++预测库结合使用
  2. 在windows按照预测库官网教程编译1.7.1版本的Paddle预测库,再使用PaddleOCR官网提供的inference model进行预测。 我尝试了方案1,结果diff很小,符合预期。 image
qq61786631 commented 4 years ago

thanks,经过测试: 第一种方案和python版本结果差别不大 第二种方案应该是不可行,测试了1.7.2的mkl和openblas ,都不行 ^_^

littletomatodonkey commented 4 years ago

thanks,经过测试: 第一种方案和python版本结果差别不大 第二种方案应该是不可行,测试了1.7.2的mkl和openblas ,都不行 ^_^

好的,目前还是建议使用第一种方案吧~

qq61786631 commented 4 years ago

ok ,谢谢