#include "opencv2/core.hpp" #include "opencv2/imgcodecs.hpp" #include "opencv2/imgproc.hpp" #include #include #include #include #include #include #include #include #include #include #include #include namespace PaddleOCR { class Recognizer { public: explicit Recognizer(std::string model_path, const std::string& label_path); void Run(const std::vector& img_list, std::vector& ocr_results); void SetParameters(int rec_batch_num); void GetParameters(int& rec_batch_num); private: ov::InferRequest infer_request; std::string model_path; std::shared_ptr model; ov::CompiledModel compiled_model; std::recursive_mutex _mutex; std::vector mean_ = { 0.5f, 0.5f, 0.5f }; std::vector scale_ = { 1 / 0.5f, 1 / 0.5f, 1 / 0.5f }; bool is_scale_ = true; std::vector label_list_; int rec_img_h_ = 48; int rec_img_w_ = 320; std::vector rec_image_shape_ = { 3, rec_img_h_, rec_img_w_ }; int rec_batch_num_ = 1; CrnnResizeImg resize_op_; Normalize normalize_op_; PermuteBatch permute_op_; }; }