FLImaging 6.10.14.2
ValidatorForInstanceSegmentation.h
1#pragma once
2
3#if _MSC_VER >= 1900 && defined(_M_X64)
4
5#include "ValidatorBase.h"
6
7namespace FLImaging
8{
9 namespace AI
10 {
11 template <typename T>
12 class FL_EXPORT CValidatorForInstanceSegmentation : public CValidatorBase<T>
13 {
14
15 public:
16 CValidatorForInstanceSegmentation();
17 CValidatorForInstanceSegmentation(const CValidatorForInstanceSegmentation<T>& validator);
18 CValidatorForInstanceSegmentation(const CValidatorForInstanceSegmentation<T>* pValidator);
19 virtual ~CValidatorForInstanceSegmentation();
20
21 const CValidatorForInstanceSegmentation<T>& operator=(const CValidatorForInstanceSegmentation<T>& validator);
22
23 virtual const CResult Assign(const CValidatorForInstanceSegmentation<T>& validator);
24 virtual const CResult Assign(const CValidatorForInstanceSegmentation<T>* pValidator);
25
26 virtual const CResult SetNumOfClasses(int64_t i64ClassCount);
27 virtual int64_t GetNumOfClasses() const;
28
29 virtual const CResult SetObjectnessThreshold(T tObjectnessThreshold = .005);
30 virtual T GetObjectnessThreshold() const;
31
32 virtual const CResult SetIoUThreshold(T tIoUThreshold = .5);
33 virtual T GetIoUThreshold() const;
34
35 virtual const CResult SetMaskThreshold(T tMaskThreshold);
36 virtual T GetMaskThreshold() const;
37
38 virtual const CResult SetNMSThreshold(T tNMSThreshold);
39 virtual T GetNMSThreshold() const;
40
41 virtual const CResult EnableIOUThresholdUpdate(bool bIOUThresholdUpdate = true);
42 virtual bool IsIOUThresholdUpdateEnabled() const;
43
44 virtual T GetLastValidation() const;
45
46 virtual T Validate(int32_t* pI32IterationFeedback = nullptr) override;
47
48 virtual const std::vector<T>& GetRecallPerClass();
49 virtual const std::vector<T>& GetPrecisionPerClass();
50 virtual const std::vector<T>& GetAPPerClass();
51
52 DeclareGetClassType();
53 SupportToDuplicateObject(CValidatorForInstanceSegmentation<T>, *this);
54
55 protected:
56 virtual const CResult ResetComputationPerClass();
57
58 T m_tObjectnessThreshold;
59 T m_tIoUThreshold;
60 T m_tMaskThreshold;
61 T m_tNMSThreshold;
62 T m_tLastValidation;
63
64 int64_t m_i64TruthLabelSize;
65 T* m_pTTruthLabels;
66
67 int64_t m_i64ClassCount;
68 int64_t* m_pI64TruthClassesCount;
69
70 int64_t m_i64UniqueTruthCount;
71 int64_t* m_pI64TruthFlag;
72
73 bool m_bIOUThresholdUpdate;
74
75 std::vector<T>& m_vctPrecisionPerClass;
76 std::vector<T>& m_vctRecallPerClass;
77 std::vector<T>& m_vctAPPerClass;
78 };
79
80
81 typedef CValidatorForInstanceSegmentation<float> CValidatorForInstanceSegmentationF;
82 typedef CValidatorForInstanceSegmentation<double> CValidatorForInstanceSegmentationD;
83 }
84}
85
86#endif
Definition AlgorithmAIBase.h:18
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:2798