FLImaging 7.10.21.1
ValidatorForSemanticSegmentation.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "Tensor.h"
6#include "ValidatorBase.h"
7#include "ValidatorForObjectDetection.h"
8
9namespace FLImaging
10{
11 namespace AI
12 {
13 template <typename T>
14 class FL_EXPORT CValidatorForSemanticSegmentation : public CValidatorBase<T>
15 {
16
17 public:
18 CValidatorForSemanticSegmentation();
19 CValidatorForSemanticSegmentation(const CValidatorForSemanticSegmentation<T>& validator);
20 CValidatorForSemanticSegmentation(const CValidatorForSemanticSegmentation<T>* pValidator);
21 virtual ~CValidatorForSemanticSegmentation();
22
23 const CValidatorForSemanticSegmentation<T>& operator=(const CValidatorForSemanticSegmentation<T>& validator);
24
25 virtual const CResult Assign(const CValidatorForSemanticSegmentation<T>& validator);
26 virtual const CResult Assign(const CValidatorForSemanticSegmentation<T>* pValidator);
27
28 virtual const CResult Clear() override;
29
30 virtual T Validate(int32_t* pI32IterationFeedback = nullptr) override;
31
32 static const CResult CalculateMeanIoU(const int64_t* pTConfusionMatrix, T& tResultMeanIoU, T& tResultMeanIoUZE, int64_t i64ClassCount);
33
34 virtual T GetLastPa() const;
35 virtual T GetLastMeanIoU() const;
36
37 virtual T GetLastPaZE() const;
38 virtual T GetLastMeanIoUZE() const;
39 virtual T GetLastMeanAP() const;
40 virtual const CResult SetIgnoreIndex(int64_t i64IgnoreIndex);
41 virtual int64_t GetIgnoreIndex() const;
42 virtual int64_t GetZETotalCount() const;
43
44 const CTensor<double>& GetConfusionMatrix() const;
45
46 virtual const std::vector< CDetectionInfo<T>>& GetDetectionInstances();
47
48 virtual const CResult SetIoUThreshold(T tThreshold);
49 virtual T GetIoUThreshold() const;
50
51 virtual const CResult SetConfidenceScoreThreshold(T tThreshold);
52 virtual T GetConfidenceScoreThreshold() const;
53
54 virtual const std::vector<int64_t>& GetTruthClassesCount() const;
55 virtual int64_t GetUniqueTruthCount() const;
56
57 virtual const CResult EnableMeanAP(bool bEnable = false);
58 virtual bool IsMeanAPEnabled() const;
59
60 DeclareGetClassType();
61 SupportToDuplicateObject(CValidatorForSemanticSegmentation<T>, *this);
62
63 protected:
64 T m_tLastPa;
65 T m_tLastMeanIoU;
66
67 T m_tLastPaZE;
68 T m_tLastMeanIoUZE;
69
70 T m_tLastMeanAP;
71
72 int64_t m_i64IgnoreIndex;
73 int64_t m_i64ZETotalCount;
74
75 CTensor<double> m_tsrCM;
76 std::vector<CDetectionInfo<T>>& m_vctDetectionInstances;
77 std::vector<int64_t>& m_vctTruthClassesCount;
78 int64_t m_i64UniqueTruthCount;
79 T m_tIoUThrehsold;
80 T m_tConfidenceScoreThreshold;
81
82 bool m_bEnableMeanAP;
83
84 private:
85 template<typename T>
86 friend class COptimizer;
87
88 template<typename T>
89 friend class COptimizerForSemanticSegmentation;
90 };
91
92
93
94 typedef CValidatorForSemanticSegmentation<float> CValidatorForSemanticSegmentationF;
95 typedef CValidatorForSemanticSegmentation<double> CValidatorForSemanticSegmentationD;
96 }
97}
98
99#endif
Definition FLImagingImgProcBase/AlgorithmAIBase.h:18
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition FLImagingGUICLR/DefinitionsGUIView3D.h:3539
@ Clear
Clear all the figure objects.
Definition FLImagingGUICLR/DefinitionsGUI.h:5069