diff --git a/deploy/cpp_infer/docs/vs2019_build_withgpu_config.png b/deploy/cpp_infer/docs/vs2019_build_withgpu_config.png new file mode 100644 index 0000000000000000000000000000000000000000..beff2884480790d97ef3577c77c0336fc04557ed Binary files /dev/null and b/deploy/cpp_infer/docs/vs2019_build_withgpu_config.png differ diff --git a/deploy/cpp_infer/docs/windows_vs2019_build.md b/deploy/cpp_infer/docs/windows_vs2019_build.md index e46f542a323dbe539b4a7f596e4587f7729a4420..24a1e55cd7e5728e9cd56da8a35a72892380d28b 100644 --- a/deploy/cpp_infer/docs/windows_vs2019_build.md +++ b/deploy/cpp_infer/docs/windows_vs2019_build.md @@ -5,20 +5,20 @@ PaddleOCR在Windows 平台下基于`Visual Studio 2019 Community` 进行了测 ## 前置条件 * Visual Studio 2019 -* CUDA 9.0 / CUDA 10.0,cudnn 7+ (仅在使用GPU版本的预测库时需要) +* CUDA 10.2,cudnn 7+ (仅在使用GPU版本的预测库时需要) * CMake 3.0+ 请确保系统已经安装好上述基本软件,我们使用的是`VS2019`的社区版。 **下面所有示例以工作目录为 `D:\projects`演示**。 -### Step1: 下载PaddlePaddle C++ 预测库 fluid_inference +### Step1: 下载PaddlePaddle C++ 预测库 paddle_inference PaddlePaddle C++ 预测库针对不同的`CPU`和`CUDA`版本提供了不同的预编译版本,请根据实际情况下载: [C++预测库下载列表](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows) -解压后`D:\projects\fluid_inference`目录包含内容为: +解压后`D:\projects\paddle_inference`目录包含内容为: ``` -fluid_inference +paddle_inference ├── paddle # paddle核心库和头文件 | ├── third_party # 第三方依赖库和头文件 @@ -46,13 +46,13 @@ fluid_inference ![step2.2](https://paddleseg.bj.bcebos.com/inference/vs2019_step3.png) -3. 点击:`项目`->`cpp_inference_demo的CMake设置` +3. 点击:`项目`->`CMake设置` ![step3](https://paddleseg.bj.bcebos.com/inference/vs2019_step4.png) -4. 点击`浏览`,分别设置编译选项指定`CUDA`、`CUDNN_LIB`、`OpenCV`、`Paddle预测库`的路径 +4. 分别设置编译选项指定`CUDA`、`CUDNN_LIB`、`OpenCV`、`Paddle预测库`的路径 -三个编译参数的含义说明如下(带`*`表示仅在使用**GPU版本**预测库时指定, 其中CUDA库版本尽量对齐,**使用9.0、10.0版本,不使用9.2、10.1等版本CUDA库**): +三个编译参数的含义说明如下(带`*`表示仅在使用**GPU版本**预测库时指定, 其中CUDA库版本尽量对齐): | 参数名 | 含义 | | ---- | ---- | @@ -67,6 +67,11 @@ fluid_inference ![step4](https://paddleseg.bj.bcebos.com/inference/vs2019_step5.png) +下面给出with GPU的配置示例: +![step5](./vs2019_build_withgpu_config.png) +**注意:** + CMAKE_BACKWARDS的版本要根据平台安装cmake的版本进行设置。 + **设置完成后**, 点击上图中`保存并生成CMake缓存以加载变量`。 5. 点击`生成`->`全部生成` @@ -74,24 +79,34 @@ fluid_inference ![step6](https://paddleseg.bj.bcebos.com/inference/vs2019_step6.png) -### Step4: 预测及可视化 +### Step4: 预测 -上述`Visual Studio 2019`编译产出的可执行文件在`out\build\x64-Release`目录下,打开`cmd`,并切换到该目录: +上述`Visual Studio 2019`编译产出的可执行文件在`out\build\x64-Release\Release`目录下,打开`cmd`,并切换到`D:\projects\PaddleOCR\deploy\cpp_infer\`: ``` -cd D:\projects\PaddleOCR\deploy\cpp_infer\out\build\x64-Release +cd D:\projects\PaddleOCR\deploy\cpp_infer ``` -可执行文件`ocr_system.exe`即为样例的预测程序,其主要使用方法如下 +可执行文件`ppocr.exe`即为样例的预测程序,其主要使用方法如下,更多使用方法可以参考[说明文档](../readme.md)`运行demo`部分。 ```shell -#预测图片 `D:\projects\PaddleOCR\doc\imgs\10.jpg` -.\ocr_system.exe D:\projects\PaddleOCR\deploy\cpp_infer\tools\config.txt D:\projects\PaddleOCR\doc\imgs\10.jpg +#识别中文图片 `D:\projects\PaddleOCR\doc\imgs_words\ch\` +.\out\build\x64-Release\Release\ppocr.exe rec --rec_model_dir=D:\projects\PaddleOCR\ch_ppocr_mobile_v2.0_rec_infer --image_dir=D:\projects\PaddleOCR\doc\imgs_words\ch\ + +#识别英文图片 'D:\projects\PaddleOCR\doc\imgs_words\en\' +.\out\build\x64-Release\Release\ppocr.exe rec --rec_model_dir=D:\projects\PaddleOCR\inference\rec_mv3crnn --image_dir=D:\projects\PaddleOCR\doc\imgs_words\en\ --char_list_file=D:\projects\PaddleOCR\ppocr\utils\dict\en_dict.txt ``` -第一个参数为配置文件路径,第二个参数为需要预测的图片路径。 + +第一个参数为配置文件路径,第二个参数为需要预测的图片路径,第三个参数为配置文本识别的字典。 -### 注意 +### FQA * 在Windows下的终端中执行文件exe时,可能会发生乱码的现象,此时需要在终端中输入`CHCP 65001`,将终端的编码方式由GBK编码(默认)改为UTF-8编码,更加具体的解释可以参考这篇博客:[https://blog.csdn.net/qq_35038153/article/details/78430359](https://blog.csdn.net/qq_35038153/article/details/78430359)。 -* 编译时,如果报错`错误:C1083 无法打开包括文件:"dirent.h":No such file or directory`,可以参考该[文档](https://blog.csdn.net/Dora_blank/article/details/117740837#41_C1083_direnthNo_such_file_or_directory_54),新建`dirent.h`文件,并添加到`VC++`的包含目录中。 +* 编译时,如果报错`错误:C1083 无法打开包括文件:"dirent.h":No such file or directory`,可以参考该[文档](https://blog.csdn.net/Dora_blank/article/details/117740837#41_C1083_direnthNo_such_file_or_directory_54),新建`dirent.h`文件,并添加到`utility.cpp`的头文件引用中。同时修改`utility.cpp`70行:`lstat`改成`stat`。 + +* 编译时,如果报错`Autolog未定义`,新建`autolog.h`文件,内容为:[autolog.h](https://github.com/LDOUBLEV/AutoLog/blob/main/auto_log/autolog.h),并添加到`main.cpp`的头文件引用中,再次编译。 + +* 运行时,如果弹窗报错找不到`paddle_inference.dll`或者`openblas.dll`,在`D:\projects\paddle_inference`预测库内找到这两个文件,复制到`D:\projects\PaddleOCR\deploy\cpp_infer\out\build\x64-Release\Release`目录下。不用重新编译,再次运行即可。 + +* 运行时,弹窗报错提示`应用程序无法正常启动(0xc0000142)`,并且`cmd`窗口内提示`You are using Paddle compiled with TensorRT, but TensorRT dynamic library is not found.`,把tensort目录下的lib里面的所有dll文件复制到release目录下,再次运行即可。