NVIDIA DeepStream SDK API Reference

9.2 Release
InstanceBank Class Reference

Detailed Description

InstanceBank class for managing and tracking object instances across frames.

This class implements functionality to maintain and update feature representations of object instances across time, supporting object tracking and temporal association.

Definition at line 61 of file sources/gst-plugins/gst-nvdsvideotemplate/ds-sparse4d/postprocess/instance_bank.h.

Inheritance diagram for InstanceBank:
Collaboration diagram for InstanceBank:

Public Member Functions

 InstanceBank (int num_anchor, int embed_dims, const torch::Tensor &anchor, AnchorHandler *anchor_handler=nullptr, int num_temp_instances=0, float default_time_interval=0.5, float confidence_decay=0.6, bool anchor_grad=true, bool feat_grad=true, float max_time_interval=2.0, int reid_dims=-1, int gpu_id=-1)
 Constructor for InstanceBank. More...
 
void init_weight ()
 Initialize weights with proper initialization schemes. More...
 
void reset ()
 Reset internal state. More...
 
std::tuple< torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor > get (int batch_size, const MetaData &metas, const DNMetaData *dn_metas=nullptr)
 Get features, anchors and time intervals for the current batch. More...
 
std::tuple< torch::Tensor, torch::Tensor > update (torch::Tensor instance_feature, torch::Tensor anchor, torch::Tensor confidence)
 Update instance features and anchors. More...
 
void cache (torch::Tensor instance_feature, torch::Tensor anchor, torch::Tensor confidence, const MetaData *metas=nullptr, const std::vector< torch::Tensor > *feature_maps=nullptr)
 Cache features, anchors and metadata for temporal association. More...
 
torch::Tensor get_instance_id (torch::Tensor confidence, torch::Tensor anchor=torch::Tensor(), float threshold=-1.0)
 Get instance IDs based on confidence scores. More...
 
void update_instance_id (torch::Tensor instance_id_tensor, torch::Tensor confidence=torch::Tensor())
 Update instance IDs based on confidence scores. More...
 
torch::Tensor getMask () const
 Get the mask tensor. More...
 
 InstanceBank (int num_anchor, int embed_dims, const torch::Tensor &anchor, AnchorHandler *anchor_handler=nullptr, int num_temp_instances=0, float default_time_interval=0.5, float confidence_decay=0.6, bool anchor_grad=true, bool feat_grad=true, float max_time_interval=2.0, int reid_dims=-1, int gpu_id=-1)
 Constructor for InstanceBank. More...
 
void init_weight ()
 Initialize weights with proper initialization schemes. More...
 
void reset ()
 Reset internal state. More...
 
std::tuple< torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor > get (int batch_size, const MetaData &metas, const DNMetaData *dn_metas=nullptr)
 Get features, anchors and time intervals for the current batch. More...
 
std::tuple< torch::Tensor, torch::Tensor > update (torch::Tensor instance_feature, torch::Tensor anchor, torch::Tensor confidence)
 Update instance features and anchors. More...
 
void cache (torch::Tensor instance_feature, torch::Tensor anchor, torch::Tensor confidence, const MetaData *metas=nullptr, const std::vector< torch::Tensor > *feature_maps=nullptr)
 Cache features, anchors and metadata for temporal association. More...
 
torch::Tensor get_instance_id (torch::Tensor confidence, torch::Tensor anchor=torch::Tensor(), float threshold=-1.0)
 Get instance IDs based on confidence scores. More...
 
void update_instance_id (torch::Tensor instance_id_tensor, torch::Tensor confidence=torch::Tensor())
 Update instance IDs based on confidence scores. More...
 
torch::Tensor getMask () const
 Get the mask tensor. More...
 

Constructor & Destructor Documentation

◆ InstanceBank() [1/2]

InstanceBank::InstanceBank ( int  num_anchor,
int  embed_dims,
const torch::Tensor &  anchor,
AnchorHandler *  anchor_handler = nullptr,
int  num_temp_instances = 0,
float  default_time_interval = 0.5,
float  confidence_decay = 0.6,
bool  anchor_grad = true,
bool  feat_grad = true,
float  max_time_interval = 2.0,
int  reid_dims = -1,
int  gpu_id = -1 
)

Constructor for InstanceBank.

Parameters
num_anchorMaximum number of anchors to use
embed_dimsDimension of the embedding features
anchorInitial anchor tensor
anchor_handlerOptional handler for anchor projection
num_temp_instancesNumber of temporary instances to track
default_time_intervalDefault time interval between frames
confidence_decayDecay factor for confidence scores
anchor_gradWhether to enable gradients for anchor parameters
feat_gradWhether to enable gradients for feature parameters
max_time_intervalMaximum time interval to consider valid
reid_dimsOptional re-identification feature dimension
gpu_idDevice ID to use for computations

◆ InstanceBank() [2/2]

InstanceBank::InstanceBank ( int  num_anchor,
int  embed_dims,
const torch::Tensor &  anchor,
AnchorHandler *  anchor_handler = nullptr,
int  num_temp_instances = 0,
float  default_time_interval = 0.5,
float  confidence_decay = 0.6,
bool  anchor_grad = true,
bool  feat_grad = true,
float  max_time_interval = 2.0,
int  reid_dims = -1,
int  gpu_id = -1 
)

Constructor for InstanceBank.

Parameters
num_anchorMaximum number of anchors to use
embed_dimsDimension of the embedding features
anchorInitial anchor tensor
anchor_handlerOptional handler for anchor projection
num_temp_instancesNumber of temporary instances to track
default_time_intervalDefault time interval between frames
confidence_decayDecay factor for confidence scores
anchor_gradWhether to enable gradients for anchor parameters
feat_gradWhether to enable gradients for feature parameters
max_time_intervalMaximum time interval to consider valid
reid_dimsOptional re-identification feature dimension
gpu_idDevice ID to use for computations

Member Function Documentation

◆ cache() [1/2]

void InstanceBank::cache ( torch::Tensor  instance_feature,
torch::Tensor  anchor,
torch::Tensor  confidence,
const MetaData *  metas = nullptr,
const std::vector< torch::Tensor > *  feature_maps = nullptr 
)

Cache features, anchors and metadata for temporal association.

Parameters
instance_featureInstance features to cache
anchorAnchors to cache
confidenceConfidence scores
metasOptional metadata
feature_mapsOptional feature maps

◆ cache() [2/2]

void InstanceBank::cache ( torch::Tensor  instance_feature,
torch::Tensor  anchor,
torch::Tensor  confidence,
const MetaData *  metas = nullptr,
const std::vector< torch::Tensor > *  feature_maps = nullptr 
)

Cache features, anchors and metadata for temporal association.

Parameters
instance_featureInstance features to cache
anchorAnchors to cache
confidenceConfidence scores
metasOptional metadata
feature_mapsOptional feature maps

◆ get() [1/2]

std::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor> InstanceBank::get ( int  batch_size,
const MetaData &  metas,
const DNMetaData *  dn_metas = nullptr 
)

Get features, anchors and time intervals for the current batch.

Parameters
batch_sizeSize of the batch
metasMetadata for the current frames
dn_metasOptional denoising metadata
Returns
Tuple of tensors: instance_feature, anchor, cached_feature, cached_anchor, time_interval, reid_feature

◆ get() [2/2]

std::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor> InstanceBank::get ( int  batch_size,
const MetaData &  metas,
const DNMetaData *  dn_metas = nullptr 
)

Get features, anchors and time intervals for the current batch.

Parameters
batch_sizeSize of the batch
metasMetadata for the current frames
dn_metasOptional denoising metadata
Returns
Tuple of tensors: instance_feature, anchor, cached_feature, cached_anchor, time_interval, reid_feature

◆ get_instance_id() [1/2]

torch::Tensor InstanceBank::get_instance_id ( torch::Tensor  confidence,
torch::Tensor  anchor = torch::Tensor(),
float  threshold = -1.0 
)

Get instance IDs based on confidence scores.

Parameters
confidenceConfidence scores for instances
anchorOptional anchor tensor
thresholdOptional confidence threshold (negative value means no threshold)
Returns
Tensor of instance IDs

◆ get_instance_id() [2/2]

torch::Tensor InstanceBank::get_instance_id ( torch::Tensor  confidence,
torch::Tensor  anchor = torch::Tensor(),
float  threshold = -1.0 
)

Get instance IDs based on confidence scores.

Parameters
confidenceConfidence scores for instances
anchorOptional anchor tensor
thresholdOptional confidence threshold (negative value means no threshold)
Returns
Tensor of instance IDs

◆ getMask() [1/2]

torch::Tensor InstanceBank::getMask ( ) const
inline

Get the mask tensor.

Returns
The internal mask tensor

Definition at line 169 of file sources/gst-plugins/gst-nvdsvideotemplate/ds-sparse4d/postprocess/instance_bank.h.

◆ getMask() [2/2]

torch::Tensor InstanceBank::getMask ( ) const
inline

Get the mask tensor.

Returns
The internal mask tensor

Definition at line 169 of file 9.2/sources/gst-plugins/gst-nvdsvideotemplate/ds-sparse4d/postprocess/instance_bank.h.

◆ init_weight() [1/2]

void InstanceBank::init_weight ( )

Initialize weights with proper initialization schemes.

◆ init_weight() [2/2]

void InstanceBank::init_weight ( )

Initialize weights with proper initialization schemes.

◆ reset() [1/2]

void InstanceBank::reset ( )

Reset internal state.

◆ reset() [2/2]

void InstanceBank::reset ( )

Reset internal state.

◆ update() [1/2]

std::tuple<torch::Tensor, torch::Tensor> InstanceBank::update ( torch::Tensor  instance_feature,
torch::Tensor  anchor,
torch::Tensor  confidence 
)

Update instance features and anchors.

Parameters
instance_featureCurrent instance features
anchorCurrent anchors
confidenceConfidence scores
Returns
Updated instance features and anchors

◆ update() [2/2]

std::tuple<torch::Tensor, torch::Tensor> InstanceBank::update ( torch::Tensor  instance_feature,
torch::Tensor  anchor,
torch::Tensor  confidence 
)

Update instance features and anchors.

Parameters
instance_featureCurrent instance features
anchorCurrent anchors
confidenceConfidence scores
Returns
Updated instance features and anchors

◆ update_instance_id() [1/2]

void InstanceBank::update_instance_id ( torch::Tensor  instance_id_tensor,
torch::Tensor  confidence = torch::Tensor() 
)

Update instance IDs based on confidence scores.

Parameters
instance_id_tensorCurrent instance IDs
confidenceOptional confidence scores

◆ update_instance_id() [2/2]

void InstanceBank::update_instance_id ( torch::Tensor  instance_id_tensor,
torch::Tensor  confidence = torch::Tensor() 
)

Update instance IDs based on confidence scores.

Parameters
instance_id_tensorCurrent instance IDs
confidenceOptional confidence scores

The documentation for this class was generated from the following file: