|
|
NVIDIA DeepStream SDK API Reference
|
9.0 Release
|
Go to the documentation of this file.
18 #include "buffer_probe.hpp"
22 #include "gstnvdsinfer.h"
23 #include "nvdsinfer_custom_impl.h"
24 #include "nvdsinfer_dbscan.h"
32 std::vector < NvDsInferObjectDetectionInfo > &objectList);
34 #define PGIE_CLASS_ID_VEHICLE 0
35 #define PGIE_CLASS_ID_PERSON 2
40 class TensorMetaParser :
public BufferProbe::IBatchMetadataOperator
52 for (data.
initiateIterator(frame_itr); !frame_itr->done(); frame_itr->next()) {
53 int network_width = 0;
54 int network_height = 0;
56 int stream_height = 0;
67 float scalers[] = {(float)stream_width/network_width, (
float)stream_height/network_height };
82 std::vector <NvDsInferObjectDetectionInfo> objectList;
88 clusteringParams.
eps = 0.95;
93 std::vector <std::vector<NvDsInferObjectDetectionInfo>> perClassObjectList(n_classes);
94 for (
auto & obj:objectList) {
95 perClassObjectList[obj.classId].emplace_back (obj);
99 for (
unsigned int c = 0; c < perClassObjectList.size(); c++) {
101 size_t numObjects = perClassObjectList[c].size();
104 if (clusteringParams.
minBoxes > 0) {
107 perClassObjectList[c].resize(numObjects);
110 for (
unsigned int i = 0; i < numObjects; i++) {
112 if (data.
acquire(object_meta)) {
118 frame_meta.
append(object_meta);
123 std::cout <<
"Object Counter: " <<
" Pad Idx = " << frame_meta.
padIndex() <<
" Frame Number = " << frame_meta.
frameNum() <<
131 return probeReturn::Probe_Ok;
134 NvDsInferDBScan* dbscan_;
Holds the box parameters of the box to be overlayed.
#define PGIE_CLASS_ID_VEHICLE
void * buffer
Holds a pointer to the buffer for the layer data.
float minScore
Holds the sum of neighborhood confidence thresholds.
float width
Holds the width of the object's bounding box.
int enableATHRFilter
Holds a Boolean; true enables the area-to-hit ratio (ATHR) filter.
float left
Holds the horizontal offset of the bounding box shape for the object.
Represent a custom object for the purpose of probing output buffers.
float thresholdATHR
Holds the area-to-hit ratio threshold.
unsigned int numClassesConfigured
Holds the number of classes requested to be parsed, starting with class ID 0.
NvDsInferDBScanHandle NvDsInferDBScanCreate()
Creates a new DBScan object clustering context.
void NvDsInferDBScanCluster(NvDsInferDBScanHandle handle, NvDsInferDBScanClusteringParams *params, NvDsInferObjectDetectionInfo *objects, size_t *numObjects)
Clusters an array of objects in place using specified clustering parameters.
Holds the detection parameters required for parsing objects.
Holds information about one parsed object from a detector's output.
probeReturn
Return values from user implemented probe interfaces.
Holds information about the model network.
Holds information about one layer in the model.
std::vector< float > perClassPreclusterThreshold
Holds a per-class vector of detection confidence thresholds to be applied prior to the clustering ope...
Holds object clustering parameters required by DBSCAN.
float top
Holds the vertical offset of the object's bounding box.
#define PGIE_CLASS_ID_PERSON
void NvDsInferDBScanDestroy(NvDsInferDBScanHandle handle)
Destroys a DBScan object clustering context.
float height
Holds the height of the object's bounding box.
Holds the color parameters of the box or text to be overlayed.
bool NvDsInferParseCustomResnet(std::vector< NvDsInferLayerInfo > const &outputLayersInfo, NvDsInferNetworkInfo const &networkInfo, NvDsInferParseDetectionParams const &detectionParams, std::vector< NvDsInferObjectDetectionInfo > &objectList)
Object & getProperty(const std::string &name, T &value, Args &... args)
Template for getting multiple properties.