|
NVIDIA DeepStream SDK API Reference
|
7.0 Release
|
Go to the documentation of this file.
119 #ifndef _NVDSINFER_CUSTOM_IMPL_H_
120 #define _NVDSINFER_CUSTOM_IMPL_H_
125 #pragma GCC diagnostic push
126 #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
127 #include "NvCaffeParser.h"
128 #include "NvUffParser.h"
129 #pragma GCC diagnostic pop
150 IModelParser() =
default;
153 virtual ~IModelParser() =
default;
164 nvinfer1::INetworkDefinition& network) = 0;
169 virtual bool hasFullDimsSupported()
const = 0;
175 virtual const char* getModelName()
const = 0;
208 std::vector<float> &perClassThreshold = perClassPreclusterThreshold;
223 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
226 std::vector<NvDsInferObjectDetectionInfo> &objectList);
232 #define CHECK_CUSTOM_PARSE_FUNC_PROTOTYPE(customParseFunc) \
233 static void checkFunc_ ## customParseFunc (NvDsInferParseCustomFunc func = customParseFunc) \
234 { checkFunc_ ## customParseFunc (); }; \
235 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
236 NvDsInferNetworkInfo const &networkInfo, \
237 NvDsInferParseDetectionParams const &detectionParams, \
238 std::vector<NvDsInferObjectDetectionInfo> &objectList);
252 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
255 std::vector<NvDsInferInstanceMaskInfo> &objectList);
261 #define CHECK_CUSTOM_INSTANCE_MASK_PARSE_FUNC_PROTOTYPE(customParseFunc) \
262 static void checkFunc_ ## customParseFunc (NvDsInferInstanceMaskParseCustomFunc func = customParseFunc) \
263 { checkFunc_ ## customParseFunc (); }; \
264 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
265 NvDsInferNetworkInfo const &networkInfo, \
266 NvDsInferParseDetectionParams const &detectionParams, \
267 std::vector<NvDsInferInstanceMaskInfo> &objectList);
283 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
285 float classifierThreshold,
286 std::vector<NvDsInferAttribute> &attrList,
287 std::string &descString);
293 #define CHECK_CUSTOM_CLASSIFIER_PARSE_FUNC_PROTOTYPE(customParseFunc) \
294 static void checkFunc_ ## customParseFunc (NvDsInferClassiferParseCustomFunc func = customParseFunc) \
295 { checkFunc_ ## customParseFunc (); }; \
296 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
297 NvDsInferNetworkInfo const &networkInfo, \
298 float classifierThreshold, \
299 std::vector<NvDsInferAttribute> &attrList, \
300 std::string &descString);
320 std::vector<NvDsInferLayerInfo>
const &outputLayersInfo,
322 float segmentationThreshold,
323 unsigned int numClasses,
324 int* classificationMap,
325 float*& classProbabilityMap);
331 #define CHECK_CUSTOM_SEM_SEGMENTATION_PARSE_FUNC_PROTOTYPE(customParseFunc) \
332 static void checkFunc_ ## customParseFunc (NvDsInferSemSegmentationParseCustomFunc func = customParseFunc) \
333 { checkFunc_ ## customParseFunc (); }; \
334 extern "C" bool customParseFunc (std::vector<NvDsInferLayerInfo> const &outputLayersInfo, \
335 NvDsInferNetworkInfo const &networkInfo, \
336 float segmentationThreshold, \
337 unsigned int numClasses, \
338 int* classificationMap, \
339 float*& classProbabilityMap);
375 nvinfer1::IBuilder *
const builder, nvinfer1::IBuilderConfig *
const builderConfig,
378 nvinfer1::ICudaEngine *& cudaEngine);
384 #define CHECK_CUSTOM_ENGINE_CREATE_FUNC_PROTOTYPE(customEngineCreateFunc) \
385 static void checkFunc_ ## customEngineCreateFunc (NvDsInferEngineCreateCustomFunc = customEngineCreateFunc) \
386 { checkFunc_ ## customEngineCreateFunc(); }; \
387 extern "C" bool customEngineCreateFunc ( \
388 nvinfer1::IBuilder * const builder, \
389 nvinfer1::IBuilderConfig * const builderConfig, \
390 const NvDsInferContextInitParams * const initParams, \
391 nvinfer1::DataType dataType, \
392 nvinfer1::ICudaEngine *& cudaEngine);
486 nvinfer1::ICudaEngine *& cudaEngine)
487 __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.
void NvDsInferPluginFactoryCaffeDestroy(NvDsInferPluginFactoryCaffe &pluginFactory)
Destroys a Plugin Factory instance created by NvDsInferPluginFactoryCaffeGet().
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.
NvDsInferPluginFactoryType
Specifies the type of the Plugin Factory.
bool NvDsInferPluginFactoryRuntimeGet(nvinfer1::IPluginFactory *&pluginFactory)
Returns a new instance of a Plugin Factory interface to be used during parsing deserialization of CUD...
nvcaffeparser1::IPluginFactoryV2 * pluginFactoryV2
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.
Holds a pointer to a heap-allocated Plugin Factory object required during Caffe model parsing.
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...
@ PLUGIN_FACTORY_V2
Specifies nvcaffeparser1::IPluginFactoryV2.
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.
bool NvDsInferPluginFactoryCaffeGet(NvDsInferPluginFactoryCaffe &pluginFactory, NvDsInferPluginFactoryType &type)
Gets a new instance of a Plugin Factory interface to be used during parsing of Caffe models.