FLImaging 6.6.27.1
ComputationalGraphLabelForOCR.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "ComputationalGraph.h"
6#include "BackendLabel.h"
7#include <vector>
8
9namespace FLImaging
10{
11 namespace AI
12 {
13 template <typename T>
14 class FL_EXPORT CComputationalGraphLabelForOCR : public CComputationalGraphLabel<T>
15 {
16 protected:
17 CComputationalGraphLabelForOCR();
18 CComputationalGraphLabelForOCR(const CComputationalGraphLabelForOCR<T>& cg);
19
20 public:
21
22 CComputationalGraphLabelForOCR(const CComputationalBase<T>& cbOperand, int64_t i64CharacterCount, int64_t i64LongestLabelLength, const std::map<wchar_t, uint32_t>* pMpCharToClassNum = nullptr);
23 virtual ~CComputationalGraphLabelForOCR();
24
25 virtual CTensor<T>& Forward() override;
26
27 virtual CComputationalBase<T>* Clone() const override;
28
29 virtual const std::vector<int64_t>& GetEstimatedShape(bool bRecursive = true) const override;
30
31 virtual const CResult GetBinaryData(Base::CFLData& fldBinary, bool bSuperClass = false, int32_t i32Version = -1, bool bDumpMode = false) const override;
32 virtual const CResult GetBinaryData(Base::CFLData* pFldBinary, bool bSuperClass = false, int32_t i32Version = -1, bool bDumpMode = false) const override;
33
34 virtual const CResult SetBinaryData(const Base::CFLData& fldBinary, int64_t* pI64Offset = nullptr) override;
35 virtual const CResult SetBinaryData(const Base::CFLData* pFldBinary, int64_t* pI64Offset = nullptr) override;
36
37 virtual const CResult SetCharToClassNum(const std::map<wchar_t, uint32_t>* pMpCharToClassNum);
38 virtual std::map<wchar_t, uint32_t>* GetCharToClassNum() const;
39
40 DeclareGetClassType();
41 SupportToDuplicateObjectWithoutCreateNewObject(CComputationalGraphLabelForOCR, *this);
42
43 public:
44 DeclareGetSignletonObject(CComputationalGraphLabelForOCR);
45
46 private:
47 int64_t m_i64LongestLabelLength;
48 std::map<wchar_t, uint32_t>* m_pMpCharToClassNum = nullptr;
49 };
50
51 #define CCGFLabelForOCR(...) (*(new CComputationalGraphLabelForOCR<float>(__VA_ARGS__)))
52 #define CCGDLabelForOCR(...) (*(new CComputationalGraphLabelForOCR<double>(__VA_ARGS__)))
53
54 #define CCGTLabelForOCR(T, ...) (*(new CComputationalGraphLabelForOCR<T>(__VA_ARGS__)))
55 }
56}
57
58#endif
Definition AlgorithmAIBase.h:16