未验证 提交 8930b445 编写于 作者: D dyning 提交者: GitHub

Merge pull request #326 from littletomatodonkey/fix_png

fix cpp infer png
......@@ -39,6 +39,8 @@ public:
this->cpu_math_library_num_threads =
stoi(config_map_["cpu_math_library_num_threads"]);
this->use_mkldnn = bool(stoi(config_map_["use_mkldnn"]));
this->max_side_len = stoi(config_map_["max_side_len"]);
this->det_db_thresh = stod(config_map_["det_db_thresh"]);
......@@ -64,6 +66,8 @@ public:
int cpu_math_library_num_threads = 1;
bool use_mkldnn = false;
int max_side_len = 960;
double det_db_thresh = 0.3;
......
......@@ -39,7 +39,8 @@ public:
explicit DBDetector(const std::string &model_dir, const bool &use_gpu,
const int &gpu_id, const int &gpu_mem,
const int &cpu_math_library_num_threads,
const int &max_side_len, const double &det_db_thresh,
const bool &use_mkldnn, const int &max_side_len,
const double &det_db_thresh,
const double &det_db_box_thresh,
const double &det_db_unclip_ratio,
const bool &visualize) {
......@@ -47,6 +48,7 @@ public:
this->gpu_id_ = gpu_id;
this->gpu_mem_ = gpu_mem;
this->cpu_math_library_num_threads_ = cpu_math_library_num_threads;
this->use_mkldnn_ = use_mkldnn;
this->max_side_len_ = max_side_len;
......@@ -72,6 +74,7 @@ private:
int gpu_id_ = 0;
int gpu_mem_ = 4000;
int cpu_math_library_num_threads_ = 4;
bool use_mkldnn_ = false;
int max_side_len_ = 960;
......
......@@ -38,11 +38,12 @@ public:
explicit CRNNRecognizer(const std::string &model_dir, const bool &use_gpu,
const int &gpu_id, const int &gpu_mem,
const int &cpu_math_library_num_threads,
const string &label_path) {
const bool &use_mkldnn, const string &label_path) {
this->use_gpu_ = use_gpu;
this->gpu_id_ = gpu_id;
this->gpu_mem_ = gpu_mem;
this->cpu_math_library_num_threads_ = cpu_math_library_num_threads;
this->use_mkldnn_ = use_mkldnn;
this->label_list_ = Utility::ReadDict(label_path);
......@@ -61,6 +62,7 @@ private:
int gpu_id_ = 0;
int gpu_mem_ = 4000;
int cpu_math_library_num_threads_ = 4;
bool use_mkldnn_ = false;
std::vector<std::string> label_list_;
......
......@@ -195,3 +195,8 @@ sh tools/run.sh
<div align="center">
<img src="../imgs/cpp_infer_pred_12.png" width="600">
</div>
### 2.3 注意
* C++预测默认未开启MKLDNN(`tools/config.txt`中的`use_mkldnn`设置为0),如果需要使用MKLDNN进行预测加速,则需要将`use_mkldnn`修改为1,同时使用最新版本的Paddle源码编译预测库。在使用MKLDNN进行CPU预测时,如果同时预测多张图像,则会出现内存泄露的问题(不打开MKLDNN则没有该问题),目前该问题正在修复中,临时解决方案为:预测多张图片时,每隔30张图片左右对识别(`CRNNRecognizer`)和检测类(`DBDetector`)重新初始化一次。
......@@ -50,12 +50,12 @@ int main(int argc, char **argv) {
DBDetector det(config.det_model_dir, config.use_gpu, config.gpu_id,
config.gpu_mem, config.cpu_math_library_num_threads,
config.max_side_len, config.det_db_thresh,
config.use_mkldnn, config.max_side_len, config.det_db_thresh,
config.det_db_box_thresh, config.det_db_unclip_ratio,
config.visualize);
CRNNRecognizer rec(config.rec_model_dir, config.use_gpu, config.gpu_id,
config.gpu_mem, config.cpu_math_library_num_threads,
config.char_list_file);
config.use_mkldnn, config.char_list_file);
auto start = std::chrono::system_clock::now();
std::vector<std::vector<std::vector<int>>> boxes;
......
......@@ -13,7 +13,6 @@
// limitations under the License.
#include <include/ocr_det.h>
#include <stdlib.h>
namespace PaddleOCR {
......@@ -25,7 +24,9 @@ void DBDetector::LoadModel(const std::string &model_dir) {
config.EnableUseGpu(this->gpu_mem_, this->gpu_id_);
} else {
config.DisableGpu();
// config.EnableMKLDNN(); // not sugesteed to use for now
if (this->use_mkldnn_) {
config.EnableMKLDNN();
}
config.SetCpuMathLibraryNumThreads(this->cpu_math_library_num_threads_);
}
......
......@@ -12,21 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
#include "opencv2/core.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/imgproc.hpp"
#include "paddle_api.h"
#include "paddle_inference_api.h"
#include <chrono>
#include <iomanip>
#include <iostream>
#include <ostream>
#include <vector>
#include <cstring>
#include <fstream>
#include <numeric>
#include <include/ocr_rec.h>
namespace PaddleOCR {
......@@ -128,7 +113,9 @@ void CRNNRecognizer::LoadModel(const std::string &model_dir) {
config.EnableUseGpu(this->gpu_mem_, this->gpu_id_);
} else {
config.DisableGpu();
// config.EnableMKLDNN(); // not sugesteed to use for now
if (this->use_mkldnn_) {
config.EnableMKLDNN();
}
config.SetCpuMathLibraryNumThreads(this->cpu_math_library_num_threads_);
}
......
......@@ -2,7 +2,8 @@
use_gpu 0
gpu_id 0
gpu_mem 4000
cpu_math_library_num_threads 1
cpu_math_library_num_threads 10
use_mkldnn 0
# det config
max_side_len 960
......@@ -17,5 +18,5 @@ char_list_file ../../ppocr/utils/ppocr_keys_v1.txt
img_path ../../doc/imgs/11.jpg
# show the detection results
visualize 1
visualize 0
./build/ocr_system ./tools/config.txt ../../doc/imgs/6.jpg
./build/ocr_system ./tools/config.txt ../../doc/imgs/12.jpg
deploy/imgs/cpp_infer_pred_12.png

78.4 KB | W: | H:

deploy/imgs/cpp_infer_pred_12.png

26.2 KB | W: | H:

deploy/imgs/cpp_infer_pred_12.png
deploy/imgs/cpp_infer_pred_12.png
deploy/imgs/cpp_infer_pred_12.png
deploy/imgs/cpp_infer_pred_12.png
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册