FLImaging 6.8.21.2
DefinitionsAI.h
1#pragma once
2
3#ifdef _M_X64
4
5#include <stdint.h>
6#include <stddef.h>
7
8#define DeclareGetSignletonObject(x) static x<T>* GetSingletonObject() { static x<T> object; CComputationalGraphUtilities<T>::RegisterComputationalBaseObjects(&object); return &object; }
9
10namespace FLImaging
11{
12 namespace ImageProcessing
13 {
15 }
16
17 namespace AI
18 {
19 enum ENodeType
20 {
21 ENodeType_Base = 0,
22 ENodeType_ComputationalGraph,
23 ENodeType_Tensor,
24 };
25
26 enum EDataType
27 {
28 EDataType_None = 0,
29 EDataType_Float,
30 EDataType_Double,
31 };
32
33 enum EValueAttribute
34 {
35 EValueAttribute_None = 0,
36 EValueAttribute_Constant,
37 EValueAttribute_Variable,
38 EValueAttribute_Input,
39 };
40
41 enum ENodeOperator
42 {
43 ENodeOperator_None = 0,
44
45 ENodeOperator_Placeholder,
46 ENodeOperator_Augmentation,
47
48 ENodeOperator_Add,
49 ENodeOperator_Subtract,
50 ENodeOperator_Multiply,
51 ENodeOperator_MatMul,
52 ENodeOperator_Dot,
53 ENodeOperator_Divide,
54 ENodeOperator_Affine,
55 ENodeOperator_Pow,
56
57 ENodeOperator_Conv2D,
58 ENodeOperator_AvgPool2D,
59 ENodeOperator_MaxPool2D,
60 ENodeOperator_MinPool2D,
61 ENodeOperator_TransConv2D,
62 ENodeOperator_AtrousConv2D,
63 ENodeOperator_TransAtrousConv2D,
64 ENodeOperator_BatchNorm1D,
65 ENodeOperator_BatchNorm2D,
66
67 ENodeOperator_Sqrt,
68 ENodeOperator_Square,
69
70 ENodeOperator_Log,
71 ENodeOperator_Exp,
72 ENodeOperator_Tanh,
73 ENodeOperator_GELU,
74 ENodeOperator_Sigmoid,
75 ENodeOperator_SiLU,
76 ENodeOperator_ReLU,
77 ENodeOperator_LeakyReLU,
78 ENodeOperator_Softmax,
79 ENodeOperator_LogSoftmax,
80 ENodeOperator_SoftmaxWithCrossEntropy,
81 ENodeOperator_Softsign,
82 ENodeOperator_SELU,
83 ENodeOperator_CELU,
84 ENodeOperator_ELU,
85
86 ENodeOperator_Transpose,
87 ENodeOperator_Flatten,
88 ENodeOperator_Upsample,
89
90 ENodeOperator_ReduceSum,
91 ENodeOperator_ReduceMean,
92 ENodeOperator_ReduceMin,
93 ENodeOperator_ReduceMax,
94 ENodeOperator_ReduceVar,
95 ENodeOperator_ReduceStdev,
96
97 ENodeOperator_Dropout,
98 ENodeOperator_Linear,
99 ENodeOperator_Softplus,
100 ENodeOperator_Mish,
101 ENodeOperator_MaxOut,
102
103 ENodeOperator_Route,
104 ENodeOperator_Shortcut,
105 ENodeOperator_ObjectDetection,
106 ENodeOperator_ObjectDetectionProcessor,
107 ENodeOperator_Label,
108 ENodeOperator_Crop,
109
110 ENodeOperator_Maximum,
111 ENodeOperator_Minimum,
112
113 ENodeOperator_CustomObjectDetectionConvWithBatchNorm2D,
114 ENodeOperator_Concatenate,
115 ENodeOperator_ArgMax,
116 ENodeOperator_ArgMin,
117 ENodeOperator_BinCount,
118 ENodeOperator_Reshape,
119 ENodeOperator_Split2D,
120 ENodeOperator_Absolute,
121 ENodeOperator_CorrelationCoefficient,
122
123 ENodeOperator_Close2D,
124 ENodeOperator_Open2D,
125 ENodeOperator_Dilate2D,
126 ENodeOperator_Erode2D,
127
128 ENodeOperator_Ceil,
129 ENodeOperator_Floor,
130 ENodeOperator_Clip,
131 ENodeOperator_ArgSort,
132 ENodeOperator_LinSpace,
133 ENodeOperator_Product,
134 ENodeOperator_Diff,
135 ENodeOperator_Where,
136 ENodeOperator_RegionProposalNetwork,
137 ENodeOperator_MaskRCNNHead,
138 ENodeOperator_Sort,
139 ENodeOperator_TopK,
140 ENodeOperator_Random,
141 ENodeOperator_Gather,
142 ENodeOperator_SmoothL1Loss,
143 ENodeOperator_Log1p,
144 ENodeOperator_BCEWithLogistLoss,
145 ENodeOperator_ArcCos,
146 ENodeOperator_ArcTan2,
147 ENodeOperator_Sin,
148 ENodeOperator_Cos,
149 ENodeOperator_Degrees,
150 ENodeOperator_LayerNorm,
151 ENodeOperator_MultiScaleRoIAlign,
152 ENodeOperator_Threshold,
153 ENodeOperator_MaskRCNNIntermediate,
154 ENodeOperator_MaskRCNN,
155 ENodeOperator_GroupNorm,
156 ENodeOperator_Norm,
157 ENodeOperator_ConditionalConcatenate,
158 ENodeOperator_BCELoss,
159 ENodeOperator_CustomAnomalyDetectionMinMaxDiff,
160 ENodeOperator_PixelShuffle,
161 ENodeOperator_CustomAnomalyDetectionPool2D,
162 ENodeOperator_MedianPool2D,
163 ENodeOperator_RNN,
164 ENodeOperator_LSTM,
165 ENodeOperator_CTCLoss,
166 ENodeOperator_SSIM,
167 ENodeOperator_ObjectDetectionProcessorRFLNet,
168 ENodeOperator_CustomSuperResolutionUpsample,
169 ENodeOperator_Log10,
170 ENodeOperator_MSELoss,
171 ENodeOperator_CustomAnomalyDetectionMinMaxDiffInference,
172 ENodeOperator_PixelUnshuffle,
173 ENodeOperator_RReLU,
174 ENodeOperator_LabelForOCR,
175 ENodeOperator_ObjectDetectionProcessorRFLNetWithAngle,
176 ENodeOperator_AngleLoss,
177 ENodeOperator_Unfold,
178 ENodeOperator_Fold,
179 ENodeOperator_Chunk,
180 ENodeOperator_GramMatrix,
181 ENodeOperator_CustomAnomalyDetectionGradient,
182 ENodeOperator_AdaptiveAvgPool2D,
183 ENodeOperator_Involution,
184 ENodeOperator_FractionalMaxPool2D,
185 };
186
187 enum EActivationFunction
188 {
189 EActivationFunction_Sigmoid = 0,
190 EActivationFunction_Tanh,
191 EActivationFunction_ReLU,
192 EActivationFunction_ELU,
193 EActivationFunction_SiLU
194 };
195
196 enum EPooling
197 {
198 EPooling_Max = 0,
199 EPooling_Avg
200 };
201
202 enum ESoftmaxAlgorithm
203 {
204 ESoftmaxAlgorithm_Normal = 0,
205 ESoftmaxAlgorithm_Log
206 };
207
208 enum EResizeMethod
209 {
210 EResizeMethod_ScaleAllAxises = 0,
211 EResizeMethod_ScaleMaxAxis,
212 EResizeMethod_ScaleMinAxis,
213 EResizeMethod_CropCenter,
214 EResizeMethod_CropLeftTop,
215 };
216
217 enum ELabelMethod
218 {
219 ELabelMethod_Segmentation = 0,
220 ELabelMethod_Classifier,
221 ELabelMethod_AnomalyDetection,
222 ELabelMethod_SuperResolution,
223 ELabelMethod_StringBasedOCR,
224 ELabelMethod_GAN,
225 };
226
227 enum EIoU
228 {
229 EIoU_IoU = 0,
230 EIoU_GIoU,
231 EIoU_MSE,
232 EIoU_DIoU,
233 EIoU_CIoU,
234 };
235
237 {
242 };
243
244 enum EInternalOptimizerType
245 {
246 EInternalOptimizerType_GradientDescent = 0,
247 EInternalOptimizerType_StochasticGradientDescent,
248 EInternalOptimizerType_MomentumGradientDescent,
249 EInternalOptimizerType_AdaGradientDescent,
250 EInternalOptimizerType_RMSPropGradientDescent,
251 EInternalOptimizerType_AdamGradientDescent,
252 EInternalOptimizerType_AdaBeliefGradientDescent,
253 };
254
255 enum ELearningRateSchedulerMode
256 {
257 ELearningRateSchedulerMode_Epoch = 0,
258 ELearningRateSchedulerMode_Iteration,
259 };
260
261 enum ENormOrder
262 {
263 ENormOrder_Frobenius = 0,
264 ENormOrder_Nuclear,
265 ENormOrder_Infinite,
266 ENormOrder_MinusInfinite,
267 };
268
269 enum EReductionType : int32_t
270 {
271 EReductionType_Mean = 0,
272 EReductionType_Sum,
273 EReductionType_None,
274 };
275 enum EUniqueResultSettings
276 {
277 EUniqueResultSettings_None = 0x0,
278 EUniqueResultSettings_Index = 0x1,
279 EUniqueResultSettings_Inverse = 0x2,
280 EUniqueResultSettings_Counts = 0x4,
281 EUniqueResultSettings_Index_Inverse = EUniqueResultSettings_Index | EUniqueResultSettings_Inverse,
282 EUniqueResultSettings_Index_Counts = EUniqueResultSettings_Index | EUniqueResultSettings_Counts,
283 EUniqueResultSettings_Inverse_Counts = EUniqueResultSettings_Inverse | EUniqueResultSettings_Counts,
284 EUniqueResultSettings_Index_Inverse_Counts = EUniqueResultSettings_Index_Inverse | EUniqueResultSettings_Counts,
285 };
286
287 enum ENonlinearlity
288 {
289 ENonlinearlity_Tanh = 0,
290 ENonlinearlity_Relu,
291 };
292
293 enum EAlignMode
294 {
295 EAlignMode_Left = 0,
296 EAlignMode_Center,
297 EAlignMode_Right,
298 };
299
305 {
306
311 EBlankColorMethod_ZeroPadding = 0,
312
317 EBlankColorMethod_InpaintingFMM,
318 };
319
320 const int32_t g_i32MinimumChunkSizeOfMultiThreading = 1024;
321 }
322}
323
324#endif
A pseudo random number generator A 32/64bit PRNG based on Xoroshiro64** /Xoroshiro128++ methods.
Definition XorshiroRandomGenerator.h:24
Definition AbsoluteThreshold.h:25
EResizeMethod
Definition DefinitionsImgProcBase.h:213
EIoU
Definition DefinitionsAIModel.h:92
@ EIoU_MSE
Definition DefinitionsAIModel.h:107
@ EIoU_IoU
Definition DefinitionsAIModel.h:97
@ EIoU_DIoU
Definition DefinitionsAIModel.h:112
@ EIoU_GIoU
Definition DefinitionsAIModel.h:102
@ EIoU_CIoU
Definition DefinitionsAIModel.h:117
ENonMaximumSuppressionType
Definition DefinitionsAIModel.h:125
@ ENonMaximumSuppressionType_Corners
Definition DefinitionsAIModel.h:145
@ ENonMaximumSuppressionType_None
Definition DefinitionsAIModel.h:130
@ ENonMaximumSuppressionType_Greedy
Definition DefinitionsAIModel.h:135
@ ENonMaximumSuppressionType_DIoU
Definition DefinitionsAIModel.h:140
EBlankColorMethod
Definition DefinitionsAIModel.h:190