|
NVIDIA DeepStream SDK API Reference
|
7.1 Release
|
Go to the documentation of this file.
110 #ifndef _NVDSINFER_CUSTOM_IMPL_H_
111 #define _NVDSINFER_CUSTOM_IMPL_H_
118 #include <NvInferRuntime.h>
119 #include <NvOnnxParser.h>
138 IModelParser() =
default;
141 virtual ~IModelParser() =
default;
152 nvinfer1::INetworkDefinition& network) = 0;
157 virtual bool hasFullDimsSupported()
const = 0;
163 virtual const char* getModelName()
const = 0;
196 std::vector<float> &perClassThreshold = perClassPreclusterThreshold;
211 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
214 std::vector<NvDsInferObjectDetectionInfo> &objectList);
220 #define CHECK_CUSTOM_PARSE_FUNC_PROTOTYPE(customParseFunc) \
221 static void checkFunc_ ## customParseFunc (NvDsInferParseCustomFunc func = customParseFunc) \
222 { checkFunc_ ## customParseFunc (); }; \
223 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
224 NvDsInferNetworkInfo const &networkInfo, \
225 NvDsInferParseDetectionParams const &detectionParams, \
226 std::vector<NvDsInferObjectDetectionInfo> &objectList);
240 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
243 std::vector<NvDsInferInstanceMaskInfo> &objectList);
249 #define CHECK_CUSTOM_INSTANCE_MASK_PARSE_FUNC_PROTOTYPE(customParseFunc) \
250 static void checkFunc_ ## customParseFunc (NvDsInferInstanceMaskParseCustomFunc func = customParseFunc) \
251 { checkFunc_ ## customParseFunc (); }; \
252 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
253 NvDsInferNetworkInfo const &networkInfo, \
254 NvDsInferParseDetectionParams const &detectionParams, \
255 std::vector<NvDsInferInstanceMaskInfo> &objectList);
271 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
273 float classifierThreshold,
274 std::vector<NvDsInferAttribute> &attrList,
275 std::string &descString);
281 #define CHECK_CUSTOM_CLASSIFIER_PARSE_FUNC_PROTOTYPE(customParseFunc) \
282 static void checkFunc_ ## customParseFunc (NvDsInferClassiferParseCustomFunc func = customParseFunc) \
283 { checkFunc_ ## customParseFunc (); }; \
284 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
285 NvDsInferNetworkInfo const &networkInfo, \
286 float classifierThreshold, \
287 std::vector<NvDsInferAttribute> &attrList, \
288 std::string &descString);
308 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
310 float segmentationThreshold,
311 unsigned int numClasses,
312 int* classificationMap,
313 float*& classProbabilityMap);
319 #define CHECK_CUSTOM_SEM_SEGMENTATION_PARSE_FUNC_PROTOTYPE(customParseFunc) \
320 static void checkFunc_ ## customParseFunc (NvDsInferSemSegmentationParseCustomFunc func = customParseFunc) \
321 { checkFunc_ ## customParseFunc (); }; \
322 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
323 NvDsInferNetworkInfo const &networkInfo, \
324 float segmentationThreshold, \
325 unsigned int numClasses, \
326 int* classificationMap, \
327 float*& classProbabilityMap);
363 nvinfer1::IBuilder *
const builder, nvinfer1::IBuilderConfig *
const builderConfig,
366 nvinfer1::ICudaEngine *& cudaEngine);
372 #define CHECK_CUSTOM_ENGINE_CREATE_FUNC_PROTOTYPE(customEngineCreateFunc) \
373 static void checkFunc_ ## customEngineCreateFunc (NvDsInferEngineCreateCustomFunc = customEngineCreateFunc) \
374 { checkFunc_ ## customEngineCreateFunc(); }; \
375 extern "C" bool customEngineCreateFunc ( \
376 nvinfer1::IBuilder * const builder, \
377 nvinfer1::IBuilderConfig * const builderConfig, \
378 const NvDsInferContextInitParams * const initParams, \
379 nvinfer1::DataType dataType, \
380 nvinfer1::ICudaEngine *& cudaEngine);
428 nvinfer1::ICudaEngine *& cudaEngine)
429 __attribute__((deprecated(
"Use 'engine-create-func-name' config parameter instead")));
std::vector< float > perClassPostclusterThreshold
bool NvDsInferInitializeInputLayers(std::vector< NvDsInferLayerInfo > const &inputLayersInfo, NvDsInferNetworkInfo const &networkInfo, unsigned int maxBatchSize)
Initializes the input layers for inference.
unsigned int maxBatchSize
Holds the maximum number of frames to be inferred together in a batch.
unsigned int numClassesConfigured
Holds the number of classes requested to be parsed, starting with class ID 0.
bool NvDsInferCudaEngineGet(nvinfer1::IBuilder *builder, NvDsInferContextInitParams *initParams, nvinfer1::DataType dataType, nvinfer1::ICudaEngine *&cudaEngine) __attribute__((deprecated("Use 'engine-create-func-name' config parameter instead")))
The NvDsInferCudaEngineGet interface has been deprecated and has been replaced by NvDsInferEngineCrea...
Holds the detection parameters required for parsing objects.
bool(* NvDsInferInstanceMaskParseCustomFunc)(std::vector< NvDsInferLayerInfo > const &outputLayersInfo, NvDsInferNetworkInfo const &networkInfo, NvDsInferParseDetectionParams const &detectionParams, std::vector< NvDsInferInstanceMaskInfo > &objectList)
Type definition for the custom bounding box and instance mask parsing function.
bool NvDsInferPluginFactoryRuntimeGet(nvinfer1::IPluginFactory *&pluginFactory)
Returns a new instance of a Plugin Factory interface to be used during parsing deserialization of CUD...
bool(* NvDsInferEngineCreateCustomFunc)(nvinfer1::IBuilder *const builder, nvinfer1::IBuilderConfig *const builderConfig, const NvDsInferContextInitParams *const initParams, nvinfer1::DataType dataType, nvinfer1::ICudaEngine *&cudaEngine)
Type definition for functions that build and return a CudaEngine for custom models.
Holds information about the model network.
IModelParser * NvDsInferCreateModelParser(const NvDsInferContextInitParams *initParams)
Create a customized neural network parser for user-defined models.
void NvDsInferPluginFactoryRuntimeDestroy(nvinfer1::IPluginFactory *pluginFactory)
Destroys a Plugin Factory instance created by NvDsInferPluginFactoryRuntimeGet().
bool(* NvDsInferSemSegmentationParseCustomFunc)(std::vector< NvDsInferLayerInfo > const &outputLayersInfo, NvDsInferNetworkInfo const &networkInfo, float segmentationThreshold, unsigned int numClasses, int *classificationMap, float *&classProbabilityMap)
Type definition for the custom semantic segmentation output parsing function.
bool(* NvDsInferClassiferParseCustomFunc)(std::vector< NvDsInferLayerInfo > const &outputLayersInfo, NvDsInferNetworkInfo const &networkInfo, float classifierThreshold, std::vector< NvDsInferAttribute > &attrList, std::string &descString)
Type definition for the custom classifier output parsing function.
std::vector< float > perClassPreclusterThreshold
Holds a per-class vector of detection confidence thresholds to be applied prior to the clustering ope...
bool(* NvDsInferParseCustomFunc)(std::vector< NvDsInferLayerInfo > const &outputLayersInfo, NvDsInferNetworkInfo const &networkInfo, NvDsInferParseDetectionParams const &detectionParams, std::vector< NvDsInferObjectDetectionInfo > &objectList)
Type definition for the custom bounding box parsing function.
Holds the initialization parameters required for the NvDsInferContext interface.
NvDsInferStatus
Enum for the status codes returned by NvDsInferContext.