#ifndef __OCR_CRNNNET_H__ #define __OCR_CRNNNET_H__ #include "OcrStruct.h" #include #include class CrnnNet { public: ~CrnnNet(); void setNumThread(int numOfThread); void setGpuIndex(int gpuIndex); void initModel(const std::string &pathStr, const std::string &keysPath); std::vector getTextLines(std::vector &partImg, const char *path, const char *imgName); private: bool isOutputDebugImg = false; Ort::Session *session; Ort::Env env = Ort::Env(ORT_LOGGING_LEVEL_ERROR, "CrnnNet"); Ort::SessionOptions sessionOptions = Ort::SessionOptions(); int numThread = 0; std::vector inputNamesPtr; std::vector outputNamesPtr; const float meanValues[3] = {127.5, 127.5, 127.5}; const float normValues[3] = {1.0 / 127.5, 1.0 / 127.5, 1.0 / 127.5}; const int dstHeight = 48; std::vector keys; TextLine scoreToTextLine(const std::vector &outputData, size_t h, size_t w); TextLine getTextLine(const cv::Mat &src); }; #endif //__OCR_CRNNNET_H__