From 3a5b203ce307cd9c45de965b2d0724aec30410ff Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Sun, 24 Apr 2022 11:23:46 +0800 Subject: [PATCH 1/8] features.drawio --- Untitled Diagram.drawio | 1 + 1 file changed, 1 insertion(+) create mode 100644 Untitled Diagram.drawio diff --git a/Untitled Diagram.drawio b/Untitled Diagram.drawio new file mode 100644 index 000000000..d10fef7ee --- /dev/null +++ b/Untitled Diagram.drawio @@ -0,0 +1 @@ +7ZjbctowEIafhksYH8LpEggkM22SmZK218JabDWy5MoCQ56+K1uObZzSZJqUdIYrW7/W2tWu9rOh48/i3ZUiSXQjKfCO59Bdx7/seJ7reT5ejLIvlNHQLYRQMWqNKmHJHsGKjlU3jELaMNRScs2SphhIISDQDY0oJbOm2VrypteEhNASlgHhbfU7ozqyu/CGlX4NLIxKz+5gXMzEpDS2O0kjQmVWk/x5x58pKXVxF+9mwE3yyrwUzy1+M/sUmAKhX/IAvd3tbz8Ng+Fo9TnbphRurvtd1y6zJXxjd3ynwiAiStuo9b5MRZqxmBOBo2mkY46ii7epRltbN4wA56Rij1JoUloEZsAEqPt9Yqy0ArNGyElqimOeae+ljAuUhl1Nsnu7AhmDVns0sbMXNs3lObPDrCrasDxTUa1g3tiKxB6U8GnlKpd4Y9OZD7+moO5WP8xx8xxOVsCLRzteX5AY8NLxBhwdTFcK70Kd77BQWCOng58bU35MEZeq40/yNiD7aqJ6vJ/IlGkmRW15jIsdOmi7JGbLCtYNjzFhXMvcZR/MoFj2wO28mHnyRqq1Tc7y3eZbv4c0NX5uGOegbDnLgHOL2eKukLkMSCXfrdcswJQ5tuBFLPkUrn3hwI7ECYdeIGO7KicBRNjGoJqtzZl4KIRIa0OHiamft8iyrEcVyXpMFobHG8KrnTLbQbUesNWesrjgRtNVQIXfY3je10xgfEXQC0o0MZVCPcXrBk9Pl2xRVGkXY1/0jc9cTrs+BjDqJSJEH1nENCwT3C46yhCvzcZTcoNOqO2gejeZBruRW2ZWyU2NsMCUVUq74Y7j4cVt6A2afdhv96E7eqYPh69vQxzWOvE10PNb0GvBDgSdmNcHjlZ4Yh/uI4YndorygvGyBGskm0Wfa8ZA8d1h1wC+ktm8Eqa5gBMmlywwdDwo4StrksqNCuCPRxnfl0SFcHTFC9t7tPEubNdYAcfW3TZfjWdw/g045zQjihpySqVYaqJss3OqiMhtiEDsqKMc9T4IRy9OylHXeTuUNsnZguu7ofTgi8Z95pPmWZSO/iVK+2eUNgwHZ5SeDKVbgoE53/C3m36OotdfULpkCnMmjzO0fB+emqGDkzJ03PX+d4Qefo1+TIYOzwxtGI7ODD0VQye8+AZ1LqWQOU/bHF3uUw0IE2dCYyaOgtT/ICAdnRSkb4LR9/vMHJ+UkShV/4Hm5rV/kv35Lw== \ No newline at end of file From 990f80bd606c925be3a4511ff7af9b3d302fb8dc Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Sun, 24 Apr 2022 11:25:48 +0800 Subject: [PATCH 2/8] features.drawio --- Untitled Diagram.drawio | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/Untitled Diagram.drawio b/Untitled Diagram.drawio index d10fef7ee..2d5691797 100644 --- a/Untitled Diagram.drawio +++ b/Untitled Diagram.drawio @@ -1 +1,22 @@ -7ZjbctowEIafhksYH8LpEggkM22SmZK218JabDWy5MoCQ56+K1uObZzSZJqUdIYrW7/W2tWu9rOh48/i3ZUiSXQjKfCO59Bdx7/seJ7reT5ejLIvlNHQLYRQMWqNKmHJHsGKjlU3jELaMNRScs2SphhIISDQDY0oJbOm2VrypteEhNASlgHhbfU7ozqyu/CGlX4NLIxKz+5gXMzEpDS2O0kjQmVWk/x5x58pKXVxF+9mwE3yyrwUzy1+M/sUmAKhX/IAvd3tbz8Ng+Fo9TnbphRurvtd1y6zJXxjd3ynwiAiStuo9b5MRZqxmBOBo2mkY46ii7epRltbN4wA56Rij1JoUloEZsAEqPt9Yqy0ArNGyElqimOeae+ljAuUhl1Nsnu7AhmDVns0sbMXNs3lObPDrCrasDxTUa1g3tiKxB6U8GnlKpd4Y9OZD7+moO5WP8xx8xxOVsCLRzteX5AY8NLxBhwdTFcK70Kd77BQWCOng58bU35MEZeq40/yNiD7aqJ6vJ/IlGkmRW15jIsdOmi7JGbLCtYNjzFhXMvcZR/MoFj2wO28mHnyRqq1Tc7y3eZbv4c0NX5uGOegbDnLgHOL2eKukLkMSCXfrdcswJQ5tuBFLPkUrn3hwI7ECYdeIGO7KicBRNjGoJqtzZl4KIRIa0OHiamft8iyrEcVyXpMFobHG8KrnTLbQbUesNWesrjgRtNVQIXfY3je10xgfEXQC0o0MZVCPcXrBk9Pl2xRVGkXY1/0jc9cTrs+BjDqJSJEH1nENCwT3C46yhCvzcZTcoNOqO2gejeZBruRW2ZWyU2NsMCUVUq74Y7j4cVt6A2afdhv96E7eqYPh69vQxzWOvE10PNb0GvBDgSdmNcHjlZ4Yh/uI4YndorygvGyBGskm0Wfa8ZA8d1h1wC+ktm8Eqa5gBMmlywwdDwo4StrksqNCuCPRxnfl0SFcHTFC9t7tPEubNdYAcfW3TZfjWdw/g045zQjihpySqVYaqJss3OqiMhtiEDsqKMc9T4IRy9OylHXeTuUNsnZguu7ofTgi8Z95pPmWZSO/iVK+2eUNgwHZ5SeDKVbgoE53/C3m36OotdfULpkCnMmjzO0fB+emqGDkzJ03PX+d4Qefo1+TIYOzwxtGI7ODD0VQye8+AZ1LqWQOU/bHF3uUw0IE2dCYyaOgtT/ICAdnRSkb4LR9/vMHJ+UkShV/4Hm5rV/kv35Lw== \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + From 718b0df3e4e57469c7ab648f1d54edfbfa5a6f32 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Sun, 24 Apr 2022 03:38:43 +0000 Subject: [PATCH 3/8] test drawio --- README_ch.md | 2 ++ doc/features.drawio | 1 + doc/test.png | Bin 0 -> 7419 bytes 3 files changed, 3 insertions(+) create mode 100644 doc/features.drawio create mode 100644 doc/test.png diff --git a/README_ch.md b/README_ch.md index d3b26ee9d..c0c5b136d 100755 --- a/README_ch.md +++ b/README_ch.md @@ -39,6 +39,8 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 支持多种OCR相关前沿算法,在此基础上打造产业级特色模型[PP-OCR](./doc/doc_ch/ppocr_introduction.md)和[PP-Structure](./ppstructure/README_ch.md),并打通数据生产、模型训练、压缩、预测部署全流程。 ![](./doc/features.png) +![](./doc/features.drawio) +![](./doc/test.png) > 上述内容的使用方法建议从文档教程中的快速开始体验 diff --git a/doc/features.drawio b/doc/features.drawio new file mode 100644 index 000000000..bc6c3c63f --- /dev/null +++ b/doc/features.drawio @@ -0,0 +1 @@ +zZXPb4IwFID/mndcIhShPYJUlyxLTDzs3EknTYo1tQ70r18rBSRqsh0WvTSvX3/xPh4F0KxqFprtyndVcAnhpGgA5RCGCY5t68CxBREmLdhoUbQoGMBKnLiHE08PouD70USjlDRiN4Zrtd3ytRkxprWqx9O+lByfumMbfgVWayav6YcoTNlSHCYDf+ViU3YnB7HPr2LdZJ/JvmSFqi8QooBmWinTRlUz49K567y06+Z3RvsH03xrfrNATyNBP5dEaEmXUpzYW7N48bt8M3nwCQOdAplBlgKNgRBI547YLomAJq5NsU/IHDtLWh22BXcHTQBldSkMX+3Y2o3WtiwsK00lbS+woT+Sa8Obu7kEvSFbWVxV3OijneIX9OXhqyroJNfDO+pZefF+Ys+YL4tNv/VgzgZe3h9EohsiMaQU0txpyzLACChxrfXnSA5Z+HwiyaNFRjdERq7+0uQcYCCp82fvkYw4xy4IXbFar2lwLl8KOHs6tb2yh6md3vzYrT+cO3/WYjZ3am3VkuRMEJDp04lE6P9E2u5wI5/HLn5riP4A \ No newline at end of file diff --git a/doc/test.png b/doc/test.png new file mode 100644 index 0000000000000000000000000000000000000000..5980a7e711b30ff9cfae393ed20bf1894ec383e1 GIT binary patch literal 7419 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 m|Gx!y8>Lfsop0v Date: Sun, 24 Apr 2022 06:59:00 +0000 Subject: [PATCH 4/8] test drawio --- README_ch.md | 2 +- doc/test.svg | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 doc/test.svg diff --git a/README_ch.md b/README_ch.md index c0c5b136d..86732b655 100755 --- a/README_ch.md +++ b/README_ch.md @@ -40,7 +40,7 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 ![](./doc/features.png) ![](./doc/features.drawio) -![](./doc/test.png) +![](./doc/test.svg) > 上述内容的使用方法建议从文档教程中的快速开始体验 diff --git a/doc/test.svg b/doc/test.svg new file mode 100644 index 000000000..f6c0acd5b --- /dev/null +++ b/doc/test.svg @@ -0,0 +1 @@ +zZVNb4IwGIB/zXtcIhShPVI+5g7LsnjwuDRQhQSoqVVkv36tFJGoyXZY9NK8ffrF+/BSAEX18VWybfEucl6BO8uPgGJw3QD7ujWg64GHSQ82ssx75IxgWX5zC2eW7suc7yYTlRCVKrdTmImm4ZmaMCalaKfT1qKanrplG34FlhmrrumqzFXRU+wGI1/wclMMJzu+za9mw2Sbya5guWgvEEoARVII1Uf1MeKVcTd46deld0bPDyZ5o36zoP3k5BBVqw/aLkjX7N6+1umL3eXAqr1NGJI5kAhoCIkPhECYGqK7xIMkMG2IbUKqGyxJsW9ybg6aAaJtUSq+3LLMjLa6LDQrVF3pnqNDeySXih/v5uKcDenK4qLmSnZ6il2ArdNuKBbbb8dX5Azei4vX41vGbFVszjuP4nRg3f3Bo3vDI4YwgTA21igFjCAhptX6DImBuk/nMXi0R3TDo2eqLwxOAQYSGn36FqHEKDaBa0pVaw2dU/EmgOmzmXW9R5v1bn7pWh+OjT4tkabGrK5ZEpwIAjJ/No/I+T+Pujvexqexi18aSn4A \ No newline at end of file From d90bd95ccd8934ae300581396f3131bceefaabf3 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Mon, 25 Apr 2022 12:50:14 +0000 Subject: [PATCH 5/8] refine cpp infer doc --- deploy/cpp_infer/readme.md | 56 ++++++++++++----------- deploy/cpp_infer/readme_ch.md | 85 +++++++++++++++++------------------ 2 files changed, 70 insertions(+), 71 deletions(-) diff --git a/deploy/cpp_infer/readme.md b/deploy/cpp_infer/readme.md index 66c3a4c07..c62fe32bc 100644 --- a/deploy/cpp_infer/readme.md +++ b/deploy/cpp_infer/readme.md @@ -1,38 +1,34 @@ -- [Server-side C++ Inference](#server-side-c-inference) - - [1. Prepare the Environment](#1-prepare-the-environment) - - [Environment](#environment) - - [1.1 Compile OpenCV](#11-compile-opencv) - - [1.2 Compile or Download or the Paddle Inference Library](#12-compile-or-download-or-the-paddle-inference-library) - - [1.2.1 Direct download and installation](#121-direct-download-and-installation) - - [1.2.2 Compile the inference source code](#122-compile-the-inference-source-code) - - [2. Compile and Run the Demo](#2-compile-and-run-the-demo) - - [2.1 Export the inference model](#21-export-the-inference-model) - - [2.2 Compile PaddleOCR C++ inference demo](#22-compile-paddleocr-c-inference-demo) - - [Run the demo](#run-the-demo) - - [1. det+cls+rec:](#1-detclsrec) - - [2. det+rec:](#2-detrec) - - [3. det](#3-det) - - [4. cls+rec:](#4-clsrec) - - [5. rec](#5-rec) - - [6. cls](#6-cls) - - [3. FAQ](#3-faq) +English | [简体中文](readme_ch.md) # Server-side C++ Inference -This chapter introduces the C++ deployment steps of the PaddleOCR model. The corresponding Python predictive deployment method refers to [document](../../doc/doc_ch/inference.md). -C++ is better than python in terms of performance. Therefore, in CPU and GPU deployment scenarios, C++ deployment is mostly used. +- [1. Prepare the Environment](#1) + - [1.1 Environment](#11) + - [1.2 Compile OpenCV](#12) + - [1.3 Compile or Download or the Paddle Inference Library](#13) +- [2. Compile and Run the Demo](#2) + - [2.1 Export the inference model](#21) + - [2.2 Compile PaddleOCR C++ inference demo](#22) + - [2.3 Run the demo](#23) +- [3. FAQ](#3) + + +This chapter introduces the C++ deployment steps of the PaddleOCR model. C++ is better than Python in terms of performance. Therefore, in CPU and GPU deployment scenarios, C++ deployment is mostly used. This section will introduce how to configure the C++ environment and deploy PaddleOCR in Linux (CPU\GPU) environment. For Windows deployment please refer to [Windows](./docs/windows_vs2019_build.md) compilation guidelines. + ## 1. Prepare the Environment -### Environment + +### 1.1 Environment - Linux, docker is recommended. - Windows. -### 1.1 Compile OpenCV + +### 1.2 Compile OpenCV * First of all, you need to download the source code compiled package in the Linux environment from the OpenCV official website. Taking OpenCV 3.4.7 as an example, the download command is as follows. @@ -92,11 +88,12 @@ opencv3/ |-- share ``` -### 1.2 Compile or Download or the Paddle Inference Library + +### 1.3 Compile or Download or the Paddle Inference Library * There are 2 ways to obtain the Paddle inference library, described in detail below. -#### 1.2.1 Direct download and installation +#### 1.3.1 Direct download and installation [Paddle inference library official website](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#linux). You can review and select the appropriate version of the inference library on the official website. @@ -109,7 +106,7 @@ tar -xf paddle_inference.tgz Finally you will see the the folder of `paddle_inference/` in the current path. -#### 1.2.2 Compile the inference source code +#### 1.3.2 Compile the inference source code * If you want to get the latest Paddle inference library features, you can download the latest code from Paddle GitHub repository and compile the inference library from the source code. It is recommended to download the inference library with paddle version greater than or equal to 2.0.1. * You can refer to [Paddle inference library] (https://www.paddlepaddle.org.cn/documentation/docs/en/advanced_guide/inference_deployment/inference/build_and_install_lib_en.html) to get the Paddle source code from GitHub, and then compile To generate the latest inference library. The method of using git to access the code is as follows. @@ -155,8 +152,10 @@ build/paddle_inference_install_dir/ `paddle` is the Paddle library required for C++ prediction later, and `version.txt` contains the version information of the current inference library. + ## 2. Compile and Run the Demo + ### 2.1 Export the inference model * You can refer to [Model inference](../../doc/doc_ch/inference.md) and export the inference model. After the model is exported, assuming it is placed in the `inference` directory, the directory structure is as follows. @@ -175,9 +174,9 @@ inference/ ``` + ### 2.2 Compile PaddleOCR C++ inference demo - * The compilation commands are as follows. The addresses of Paddle C++ inference library, opencv and other Dependencies need to be replaced with the actual addresses on your own machines. ```shell @@ -201,7 +200,9 @@ or the generated Paddle inference library path (`build/paddle_inference_install_ * After the compilation is completed, an executable file named `ppocr` will be generated in the `build` folder. -### Run the demo + +### 2.3 Run the demo + Execute the built executable file: ```shell ./build/ppocr [--param1] [--param2] [...] @@ -342,6 +343,7 @@ The detection visualized image saved in ./output//12.jpg ``` + ## 3. FAQ 1. Encountered the error `unable to access 'https://github.com/LDOUBLEV/AutoLog.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.`, change the github address in `deploy/cpp_infer/external-cmake/auto-log.cmake` to the https://gitee.com/Double_V/AutoLog address. diff --git a/deploy/cpp_infer/readme_ch.md b/deploy/cpp_infer/readme_ch.md index 47c7e032e..2a81e15a9 100644 --- a/deploy/cpp_infer/readme_ch.md +++ b/deploy/cpp_infer/readme_ch.md @@ -1,45 +1,36 @@ -- [服务器端C++预测](#服务器端c预测) - - [1. 准备环境](#1-准备环境) - - [1.0 运行准备](#10-运行准备) - - [1.1 编译opencv库](#11-编译opencv库) - - [1.2 下载或者编译Paddle预测库](#12-下载或者编译paddle预测库) - - [1.2.1 直接下载安装](#121-直接下载安装) - - [1.2.2 预测库源码编译](#122-预测库源码编译) - - [2 开始运行](#2-开始运行) - - [2.1 将模型导出为inference model](#21-将模型导出为inference-model) - - [2.2 编译PaddleOCR C++预测demo](#22-编译paddleocr-c预测demo) - - [2.3 运行demo](#23-运行demo) - - [1. 检测+分类+识别:](#1-检测分类识别) - - [2. 检测+识别:](#2-检测识别) - - [3. 检测:](#3-检测) - - [4. 分类+识别:](#4-分类识别) - - [5. 识别:](#5-识别) - - [6. 分类:](#6-分类) - - [3. FAQ](#3-faq) +[English](readme.md) | 简体中文 # 服务器端C++预测 -本章节介绍PaddleOCR 模型的的C++部署方法,与之对应的python预测部署方式参考[文档](../../doc/doc_ch/inference.md)。 -C++在性能计算上优于python,因此,在大多数CPU、GPU部署场景,多采用C++的部署方式,本节将介绍如何在Linux\Windows (CPU\GPU)环境下配置C++环境并完成 -PaddleOCR模型部署。 +- [1. 准备环境](#1) + - [1.1 运行准备](#11) + - [1.2 编译opencv库](#12) + - [1.3 下载或者编译Paddle预测库](#13) +- [2 开始运行](#2) + - [2.1 准备模型](#21) + - [2.2 编译PaddleOCR C++预测demo](#22) + - [2.3 运行demo](#23) +- [3. FAQ](#3) + +本章节介绍PaddleOCR 模型的的C++部署方法。C++在性能计算上优于Python,因此,在大多数CPU、GPU部署场景,多采用C++的部署方式,本节将介绍如何在Linux\Windows (CPU\GPU)环境下配置C++环境并完成PaddleOCR模型部署。 ## 1. 准备环境 - + -### 1.0 运行准备 +### 1.1 运行准备 - Linux环境,推荐使用docker。 - Windows环境。 * 该文档主要介绍基于Linux环境的PaddleOCR C++预测流程,如果需要在Windows下基于预测库进行C++预测,具体编译方法请参考[Windows下编译教程](./docs/windows_vs2019_build.md) - + -### 1.1 编译opencv库 +### 1.2 编译opencv库 * 首先需要从opencv官网上下载在Linux环境下源码编译的包,以opencv3.4.7为例,下载命令如下。 @@ -103,35 +94,38 @@ opencv3/ |-- share ``` - + -### 1.2 下载或者编译Paddle预测库 +### 1.3 下载或者编译Paddle预测库 -* 有2种方式获取Paddle预测库,下面进行详细介绍。 +可以选择直接下载安装或者从源码编译,下文分别进行具体说明。 + +#### 1.3.1 直接下载安装 -#### 1.2.1 直接下载安装 +[Paddle预测库官网](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#linux) 上提供了不同cuda版本的Linux预测库,可以在官网查看并选择合适的预测库版本(*建议选择paddle版本>=2.0.1版本的预测库* )。 -* [Paddle预测库官网](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#linux) 上提供了不同cuda版本的Linux预测库,可以在官网查看并选择合适的预测库版本(*建议选择paddle版本>=2.0.1版本的预测库* )。 +下载之后解压: -* 下载之后使用下面的方法解压。 - -``` +```shell tar -xf paddle_inference.tgz ``` 最终会在当前的文件夹中生成`paddle_inference/`的子文件夹。 -#### 1.2.2 预测库源码编译 -* 如果希望获取最新预测库特性,可以从Paddle github上克隆最新代码,源码编译预测库。 -* 可以参考[Paddle预测库安装编译说明](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi) 的说明,从github上获取Paddle代码,然后进行编译,生成最新的预测库。使用git获取代码方法如下。 + +#### 1.3.2 预测库源码编译 + +如果希望获取最新预测库特性,可以从github上克隆最新Paddle代码进行编译,生成最新的预测库。 + +* 使用git获取代码: ```shell git clone https://github.com/PaddlePaddle/Paddle.git git checkout develop ``` -* 进入Paddle目录后,编译方法如下。 +* 进入Paddle目录,进行编译: ```shell rm -rf build @@ -151,7 +145,7 @@ make -j make inference_lib_dist ``` -更多编译参数选项介绍可以参考[文档说明](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi)。 +更多编译参数选项介绍可以参考[Paddle预测库编译文档](https://www.paddlepaddle.org.cn/documentation/docs/zh/2.0/guides/05_inference_deployment/inference/build_and_install_lib_cn.html#congyuanmabianyi)。 * 编译完成之后,可以在`build/paddle_inference_install_dir/`文件下看到生成了以下文件及文件夹。 @@ -168,13 +162,13 @@ build/paddle_inference_install_dir/ -## 2 开始运行 +## 2. 开始运行 -### 2.1 将模型导出为inference model +### 2.1 准备模型 -* 可以参考[模型预测章节](../../doc/doc_ch/inference.md),导出inference model,用于模型预测。模型导出之后,假设放在`inference`目录下,则目录结构如下。 +直接下载PaddleOCR提供的推理模型,或者参考[模型预测章节](../../doc/doc_ch/inference_ppocr.md),将训练好的模型导出为推理模型。模型导出之后,假设放在`inference`目录下,则目录结构如下。 ``` inference/ @@ -193,13 +187,13 @@ inference/ ### 2.2 编译PaddleOCR C++预测demo -* 编译命令如下,其中Paddle C++预测库、opencv等其他依赖库的地址需要换成自己机器上的实际地址。 +编译命令如下,其中Paddle C++预测库、opencv等其他依赖库的地址需要换成自己机器上的实际地址。 ```shell sh tools/build.sh ``` -* 具体的,需要修改`tools/build.sh`中环境路径,相关内容如下: +具体的,需要修改`tools/build.sh`中环境路径,相关内容如下: ```shell OPENCV_DIR=your_opencv_dir @@ -211,12 +205,14 @@ CUDNN_LIB_DIR=/your_cudnn_lib_dir 其中,`OPENCV_DIR`为opencv编译安装的地址;`LIB_DIR`为下载(`paddle_inference`文件夹)或者编译生成的Paddle预测库地址(`build/paddle_inference_install_dir`文件夹);`CUDA_LIB_DIR`为cuda库文件地址,在docker中为`/usr/local/cuda/lib64`;`CUDNN_LIB_DIR`为cudnn库文件地址,在docker中为`/usr/lib/x86_64-linux-gnu/`。**注意:以上路径都写绝对路径,不要写相对路径。** -* 编译完成之后,会在`build`文件夹下生成一个名为`ppocr`的可执行文件。 +编译完成之后,会在`build`文件夹下生成一个名为`ppocr`的可执行文件。 ### 2.3 运行demo +本demo支持系统串联调用,也支持单个功能的调用,如,只使用检测或识别功能。 + 运行方式: ```shell ./build/ppocr [--param1] [--param2] [...] @@ -354,6 +350,7 @@ predict img: ../../doc/imgs/12.jpg The detection visualized image saved in ./output//12.jpg ``` + ## 3. FAQ 1. 遇到报错 `unable to access 'https://github.com/LDOUBLEV/AutoLog.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.`, 将 `deploy/cpp_infer/external-cmake/auto-log.cmake` 中的github地址改为 https://gitee.com/Double_V/AutoLog 地址即可。 From 6e6a4af79ec26a5d37f4c287cd9058064f978985 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Tue, 26 Apr 2022 02:47:32 +0000 Subject: [PATCH 6/8] refine cpp infer doc --- doc/features.drawio | 1 - doc/test.png | Bin 7419 -> 0 bytes doc/test.svg | 1 - 3 files changed, 2 deletions(-) delete mode 100644 doc/features.drawio delete mode 100644 doc/test.png delete mode 100644 doc/test.svg diff --git a/doc/features.drawio b/doc/features.drawio deleted file mode 100644 index bc6c3c63f..000000000 --- a/doc/features.drawio +++ /dev/null @@ -1 +0,0 @@ -zZXPb4IwFID/mndcIhShPYJUlyxLTDzs3EknTYo1tQ70r18rBSRqsh0WvTSvX3/xPh4F0KxqFprtyndVcAnhpGgA5RCGCY5t68CxBREmLdhoUbQoGMBKnLiHE08PouD70USjlDRiN4Zrtd3ytRkxprWqx9O+lByfumMbfgVWayav6YcoTNlSHCYDf+ViU3YnB7HPr2LdZJ/JvmSFqi8QooBmWinTRlUz49K567y06+Z3RvsH03xrfrNATyNBP5dEaEmXUpzYW7N48bt8M3nwCQOdAplBlgKNgRBI547YLomAJq5NsU/IHDtLWh22BXcHTQBldSkMX+3Y2o3WtiwsK00lbS+woT+Sa8Obu7kEvSFbWVxV3OijneIX9OXhqyroJNfDO+pZefF+Ys+YL4tNv/VgzgZe3h9EohsiMaQU0txpyzLACChxrfXnSA5Z+HwiyaNFRjdERq7+0uQcYCCp82fvkYw4xy4IXbFar2lwLl8KOHs6tb2yh6md3vzYrT+cO3/WYjZ3am3VkuRMEJDp04lE6P9E2u5wI5/HLn5riP4A \ No newline at end of file diff --git a/doc/test.png b/doc/test.png deleted file mode 100644 index 5980a7e711b30ff9cfae393ed20bf1894ec383e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7419 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 m|Gx!y8>Lfsop0vzZVNb4IwGIB/zXtcIhShPVI+5g7LsnjwuDRQhQSoqVVkv36tFJGoyXZY9NK8ffrF+/BSAEX18VWybfEucl6BO8uPgGJw3QD7ujWg64GHSQ82ssx75IxgWX5zC2eW7suc7yYTlRCVKrdTmImm4ZmaMCalaKfT1qKanrplG34FlhmrrumqzFXRU+wGI1/wclMMJzu+za9mw2Sbya5guWgvEEoARVII1Uf1MeKVcTd46deld0bPDyZ5o36zoP3k5BBVqw/aLkjX7N6+1umL3eXAqr1NGJI5kAhoCIkPhECYGqK7xIMkMG2IbUKqGyxJsW9ybg6aAaJtUSq+3LLMjLa6LDQrVF3pnqNDeySXih/v5uKcDenK4qLmSnZ6il2ArdNuKBbbb8dX5Azei4vX41vGbFVszjuP4nRg3f3Bo3vDI4YwgTA21igFjCAhptX6DImBuk/nMXi0R3TDo2eqLwxOAQYSGn36FqHEKDaBa0pVaw2dU/EmgOmzmXW9R5v1bn7pWh+OjT4tkabGrK5ZEpwIAjJ/No/I+T+Pujvexqexi18aSn4A \ No newline at end of file From 44ab189351638d88bffbdf0d53be659813f8dc88 Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Tue, 26 Apr 2022 02:50:16 +0000 Subject: [PATCH 7/8] refine cpp infer doc --- README_ch.md | 2 -- Untitled Diagram.drawio | 22 ---------------------- 2 files changed, 24 deletions(-) delete mode 100644 Untitled Diagram.drawio diff --git a/README_ch.md b/README_ch.md index 86732b655..d3b26ee9d 100755 --- a/README_ch.md +++ b/README_ch.md @@ -39,8 +39,6 @@ PaddleOCR旨在打造一套丰富、领先、且实用的OCR工具库,助力 支持多种OCR相关前沿算法,在此基础上打造产业级特色模型[PP-OCR](./doc/doc_ch/ppocr_introduction.md)和[PP-Structure](./ppstructure/README_ch.md),并打通数据生产、模型训练、压缩、预测部署全流程。 ![](./doc/features.png) -![](./doc/features.drawio) -![](./doc/test.svg) > 上述内容的使用方法建议从文档教程中的快速开始体验 diff --git a/Untitled Diagram.drawio b/Untitled Diagram.drawio deleted file mode 100644 index 2d5691797..000000000 --- a/Untitled Diagram.drawio +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - From 1ffde5851947838068b115e462a7863d49f6e53c Mon Sep 17 00:00:00 2001 From: MissPenguin Date: Tue, 26 Apr 2022 06:58:07 +0000 Subject: [PATCH 8/8] refine db docs --- doc/doc_ch/algorithm_det_db.md | 15 ++++-- doc/doc_en/algorithm_det_db_en.md | 84 ++++++++++++++++++++++++++++++- 2 files changed, 93 insertions(+), 6 deletions(-) diff --git a/doc/doc_ch/algorithm_det_db.md b/doc/doc_ch/algorithm_det_db.md index fc887743b..7f94ceaee 100644 --- a/doc/doc_ch/algorithm_det_db.md +++ b/doc/doc_ch/algorithm_det_db.md @@ -47,13 +47,13 @@ ### 4.1 Python推理 首先将DB文本检测训练过程中保存的模型,转换成inference model。以基于Resnet50_vd骨干网络,在ICDAR2015英文数据集训练的模型为例( [模型下载地址](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar) ),可以使用如下命令进行转换: -``` +```shell python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.pretrained_model=./det_r50_vd_db_v2.0_train/best_accuracy Global.save_inference_dir=./inference/det_db ``` DB文本检测模型推理,可以执行如下命令: -``` +```shell python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_model_dir="./inference/det_db/" ``` @@ -65,15 +65,20 @@ python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_ ### 4.2 C++推理 -敬请期待 + +准备好推理模型后,参考[cpp infer](../../deploy/cpp_infer/)教程进行操作即可。 ### 4.3 Serving服务化部署 -敬请期待 + +准备好推理模型后,参考[pdserving](../../deploy/pdserving/)教程进行Serving服务化部署,包括Python Serving和C++ Serving两种模式。 ### 4.4 更多推理部署 -敬请期待 + +DB模型还支持以下推理部署方式: + +- Paddle2ONNX推理:准备好推理模型后,参考[paddle2onnx](../../deploy/paddle2onnx/)教程操作。 ## 5. FAQ diff --git a/doc/doc_en/algorithm_det_db_en.md b/doc/doc_en/algorithm_det_db_en.md index 40ba022f8..b387a8ec2 100644 --- a/doc/doc_en/algorithm_det_db_en.md +++ b/doc/doc_en/algorithm_det_db_en.md @@ -14,4 +14,86 @@ - [5. FAQ](#5) -## 1. Introduction \ No newline at end of file +## 1. Introduction + +Paper: +> [Real-time Scene Text Detection with Differentiable Binarization](https://arxiv.org/abs/1911.08947) +> Liao, Minghui and Wan, Zhaoyi and Yao, Cong and Chen, Kai and Bai, Xiang +> AAAI, 2020 + +On the ICDAR2015 dataset, the text detection result is as follows: + +|Model|Backbone|Configuration|Precision|Recall|Hmean|Download| +| --- | --- | --- | --- | --- | --- | --- | +|DB|ResNet50_vd|configs/det/det_r50_vd_db.yml|86.41%|78.72%|82.38%|[trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar)| +|DB|MobileNetV3|configs/det/det_mv3_db.yml|77.29%|73.08%|75.12%|[trained model](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_mv3_db_v2.0_train.tar)| + + + +## 2. Environment +Please prepare your environment referring to [prepare the environment](./environment_en.md) and [clone the repo](./clone_en.md). + + + +## 3. Model Training / Evaluation / Prediction + +Please refer to [text detection training tutorial](./detection_en.md). PaddleOCR has modularized the code structure, so that you only need to **replace the configuration file** to train different detection models. + + +## 4. Inference and Deployment + + +### 4.1 Python Inference +First, convert the model saved in the DB text detection training process into an inference model. Taking the model based on the Resnet50_vd backbone network and trained on the ICDAR2015 English dataset as example ([model download link](https://paddleocr.bj.bcebos.com/dygraph_v2.0/en/det_r50_vd_db_v2.0_train.tar)), you can use the following command to convert: + +```shell +python3 tools/export_model.py -c configs/det/det_r50_vd_db.yml -o Global.pretrained_model=./det_r50_vd_db_v2.0_train/best_accuracy Global.save_inference_dir=./inference/det_db +``` + +DB text detection model inference, you can execute the following command: + +```shell +python3 tools/infer/predict_det.py --image_dir="./doc/imgs_en/img_10.jpg" --det_model_dir="./inference/det_db/" +``` + +The visualized text detection results are saved to the `./inference_results` folder by default, and the name of the result file is prefixed with 'det_res'. Examples of results are as follows: + +![](../imgs_results/det_res_img_10_db.jpg) + +**Note**: Since the ICDAR2015 dataset has only 1,000 training images, mainly for English scenes, the above model has very poor detection result on Chinese text images. + + + +### 4.2 C++ Inference + +With the inference model prepared, refer to the [cpp infer](../../deploy/cpp_infer/) tutorial for C++ inference. + + +### 4.3 Serving + +With the inference model prepared, refer to the [pdserving](../../deploy/pdserving/) tutorial for service deployment by Paddle Serving. + + +### 4.4 More + +More deployment schemes supported for DB: + +- Paddle2ONNX: with the inference model prepared, please refer to the [paddle2onnx](../../deploy/paddle2onnx/) tutorial. + + +## 5. FAQ + + +## Citation + +```bibtex +@inproceedings{liao2020real, + title={Real-time scene text detection with differentiable binarization}, + author={Liao, Minghui and Wan, Zhaoyi and Yao, Cong and Chen, Kai and Bai, Xiang}, + booktitle={Proceedings of the AAAI Conference on Artificial Intelligence}, + volume={34}, + number={07}, + pages={11474--11481}, + year={2020} +} +``` \ No newline at end of file