123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #ifndef __CRNNRecognizer_H__
- #define __CRNNRecognizer_H__
- #include <iostream>
- #include <fstream>
- #include <numeric>
- #include <opencv2/imgproc.hpp>
- #include <opencv2/highgui.hpp>
- #include <onnxruntime_cxx_api.h>
- #include <locale>
- #include <codecvt>
- #include "../TextBlock.h"
- #ifdef __ANDROID__
- #include <android/log.h>
- #endif
- using namespace cv;
- using namespace std;
- using namespace Ort;
- class InferNetOnnxPaddleOcrCrnnReg
- {
- public:
- InferNetOnnxPaddleOcrCrnnReg();
- void LoadNetwork(const void* modelDataRec, size_t modelDataLengthRec, const void* modelDataKeys, size_t modelDataLengthKeys);
- string Process(cv::Mat& srcimgCv);
- string PostProcess(int wIn, int hIn, float* pdataIn);
- void Dispose();
- private:
- Mat preprocess(Mat srcimg);
- void normalize_(Mat img);
- int inpWidth = 320;
- int inpHeight = 48;
- std::vector<float> input_image_;
- std::vector<string> alphabet;
- int names_len = 0;
- std::vector<int> prebLabel;
- Env env = Env(ORT_LOGGING_LEVEL_ERROR, "CRNN");
- Ort::Session* ort_session = nullptr;
- SessionOptions sessionOptions = SessionOptions();
- std::vector<char*> inputNames;
- std::vector<char*> outputNames;
- std::vector<std::vector<int64_t>> inputNodeDims; // >=1 outputs
- std::vector<std::vector<int64_t>> outputNodeDims; // >=1 outputs
- volatile bool _modelLoadedRec = false;
- };
- #endif
|