如何在 C++ 项目中,通过源码使用 PaddlePaddle 实现 OCR 功能。 本项目的所有源码:gitee: paddleocr
目前,官方提供使用 PaddleOcr 的方案有:
paddlepaddle
+ paddleocr
包。
deploy/cpp_infer
下的代码形成)
Paddle OCR 提供了一个通过编译 deploy/cpp_infer
下的代码为 ppocr.exe
,然后通过命令行调用获取 OCR 的结果。
具体过程见: 服务器端 C++预测
其它方法:
这里主要介绍一个更加直接的方法:
deploy/cpp_infer
的源码引入到我们的 C++项目。paddle_inference.dll
只支持 release 版。
如果要支持 debug 版,可能需要重新编译 PaddlePaddle。Paddle OCR 的仓库,在github: PaddleOCR 或者 gitee: PaddleOCR
C++ 相关的代码在目录 deploy/cpp_infer
里。
OpenCVDebug.props
OpenCVRelease.props
PaddleDebug.props
PaddleRelease.props
my-paddleocr.vcxproj
release/2.6
。deploy/cpp_infer
目录下的 include
、src
两个目录的内容复制到我们的 C++ 项目中。src
目录名称为 ocr
。ocr/main.cpp
include
目录下创建ocr_flags.h
文件,内容如下:这个文件是为了替换 google 的 gflags 库的使用。
include/args.h
文件,内容如下:不使用 gflags/gflags.h
注释行 // #include <gflags/gflags.h>
增加行 #include "ocr_flags.h"
ocr/args.cpp
文件,内容如下:不使用 gflags/gflags.h
注释行 // #include <gflags/gflags.h>
增加行 #include "include/ocr_flags.h"
include/paddleocr.cpp
文件,内容如下:不使用 auto_log/autolog.h
注释行 // #include "auto_log/autolog.h"
注释方法 PPOCR::benchmark_log
的内容。
include/paddlestructure.cpp
文件,内容如下:不使用 auto_log/autolog.h
注释行 // #include "auto_log/autolog.h"
注释方法 PPOCR::benchmark_log
的内容。
include/utility.cpp
文件,内容如下:不使用 dirent.h
注释行 // #include <dirent.h>
注释方法 Utility::GetAllFiles
的内容。
paddle_util.h
内容如下:paddle_util.cpp
内容如下:my-paddleocr.cpp
内容如下:copy_paddle_dll.bat
,复制 paddle_inference.dll
到输出目录。