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