用户可以批量上传需要识别的照片,上传成功后,系统会启动Hangfire后台Job来调用PaddleOCR服务并返回结果,这个过程类似于微服务架构模型。

PaddleOCR
PaddleOCR是一个由百度AI团队开源的项目,目前在所有免费开源OCR项目中,识别效果名列前茅。如果您没有Python开发经验,可能在环境部署上会遇到一些挑战,但通常可以找到解决方案。
DEMO: https://RazoR.i247365.net/inVoices/index
用户上传需要识别的文件,由于我的虚拟机性能较差,因此系统必须在后台自动进行识别。

系统完成识别后会自动通知用户并更新状态,用户可以预览识别结果。

运行环境
.NET 5.0 > Python 3.7 > ASP.NET Core Razor Page application 5.0
源代码分支 (feature_inVoice_ocR) RazorPageCleanArchitecture feature_inVoice_ocR PaddleOCR Web API (CentOS 阿里云主机) PaddlePaddle/PaddleOCR Hangfire Dashboard HangfireIO/Hangfire技术栈 ASP.NET Core jQuery/JavaScript EasyUI Python安装PaddleOCR环境
经测试,PaddleOCR可在glibc 2.23上运行,您也可以尝试其他glibc版本或安装glibc 2.23。
PaddleOCR 工作环境
PaddlePaddle 2.0.0
Python 3.7
glibc 2.23
cuDNN 7.6+ (GPU)
建议使用我们提供的Docker来运行PaddleOCR,关于Docker和NVIDIA-Docker的使用,请参考相关链接。
如果您希望在Mac或Windows上直接运行预测代码,可以从第2步开始执行。
在解析发票信息时,目前依然采用较为传统的方法,通过正则表达式匹配需要的字段,例如发票金额、开票日期、发票号码等,因为这种方式是免费的,并没有提供像收费服务那样智能的匹配。只要有足够的数据,也可以通过自我训练实现更智能的识别,因此我预留了Label字段,目的是先手动设定相应的字段,然后通过坐标数据进行训练。

是不是很简单,很酷?
最后
