当前位置:首页 > 资讯 > 正文

QT使用PaddleOCR和百度OCR进行文字识别

QT使用PaddleOCR和百度OCR进行文字识别

近些年人工智能大热,做这个Demo也是想对其有个初步的了解。关于文字识别已经有了一些很棒的开源项目可供选择,本文最终选择了PaddleOCR,使用项目中提供的代码和模型便可获得比较不错的中英文识别效果,不需要对人工智能领域有深入的了解,应用过程中的麻烦主要来自于环境的配置,本文即是配置过程的记录。

一些开源项目可能更侧重于算法方面,比如我也试了一下opencv教程中的文字识别,感觉官方提供的模型识别效果并不好(也可能是我用法不对),如果你想获得理想的效果,可能需要找到更好的模型甚至自己去训练。

QT使用PaddleOCR和百度OCR进行文字识别

Windows7 Qt Creator 4.5.1 (MSVC2017_64) Qt 5.10.1 opencv 4.5.1 paddle_inference (cpu_avx_mkl版 2.0.0) Visual Studio 2017 CMake 3.17.1

本文不会详细介绍PaddleOCR的接口该如何使用,而是尽可能简化设置来实现一个利用其在本地进行文字识别的demo程序,用户体验什么的也基本没有考虑。本来使用paddleOCR按说与使用其它三方库也没有多大区别,而且有相对丰富的文档可供查阅,然而根据文档来学习如何在Windows系统下使用C++版本的PaddleOCR的过程也没有那么丝般顺滑,因此就想用图文的形式来记录一下。

PaddlePaddle对于操作系统和硬件的要求

关于深度学习

PaddlePaddle提供了一系列深度学习教程 零基础实践深度学习 尽管草草看下来之后自己对深度学习连一知半解都谈不上,不过能够感到文章的质量还是比较高的,看不懂的地方就先跳过。即使不打算深入学习,通过此系列文章来了解一些术语和概念也是非常不错的。

一、下载Paddle_inference Windows C++预测库

paddle inference下载地址

这里更新一下链接,图片就暂不更新了 paddle inference下载地址 QT使用PaddleOCR和百度OCR进行文字识别 我仅下载了红框处的压缩包,目前官网对应版本为2.1.0,而2.0版本的下载页面目前提供的压缩包版本为2.0.1,这里有一个问题是我当初下载的2.0.0的压缩包内的动态库名称是paddle_fluid.dll,而现在此预测库中包含的动态库名称为paddle_inference.dll,若你使用的是我github仓库中的代码,可能需要修改一下.pro文件中的动态库名称

 

上图中的前两个版本都是CPU版的预测库,区别在于使用的数学库,可能部分处理器只支持其中之一。 后面的都是使用GPU的版本,想使用这些版本你需要安装对应版本的CUDA库和cuDNN 7+,而且需要你使用的是NVIDIA的显卡。 关于计算机视觉或者是机器学习相关的计算,都是属于GPU擅长的领域。简单查了一下资料,CPU和GPU对于矩阵计算的效率相差还是挺多的,如果你希望PaddleOCR能有更快的运行速度,你需要在本文的基础上额外折腾一番以使用GPU版本的预测库。

现在,简单起见,我们直接点击上图中红框处下载已经编译好的库即可。

二、安装 OpenCV

我打包上传了当时自己编译的库文件,印象中是CMAKE+VS2017编译的64位release版,环境差不多的话应该可以直接用(审核中,过几天我再看一眼上传成功没) 编译好的opencv