![]() |
Jetson Inference
DNN Vision Library
|
Object recognition and localization networks with TensorRT support. More...
#include <detectNet.h>
Classes | |
struct | Detection |
Object Detection result. More... | |
Public Types | |
enum | OverlayFlags { OVERLAY_NONE = 0, OVERLAY_BOX = (1 << 0), OVERLAY_LABEL = (1 << 1) } |
Overlay flags (can be OR'd together). More... | |
enum | NetworkType { CUSTOM = 0, COCO_AIRPLANE, COCO_BOTTLE, COCO_CHAIR, COCO_DOG, FACENET, PEDNET, PEDNET_MULTI } |
Network choice enumeration. More... | |
Public Member Functions | |
virtual | ~detectNet () |
Destory. More... | |
int | Detect (float *input, uint32_t width, uint32_t height, Detection **detections, uint32_t overlay=OVERLAY_BOX) |
Detect object locations from an RGBA image, returning an array containing the detection results. More... | |
int | Detect (float *input, uint32_t width, uint32_t height, Detection *detections, uint32_t overlay=OVERLAY_BOX) |
Detect object locations in an RGBA image, into an array of the results allocated by the user. More... | |
bool | Overlay (float *input, float *output, uint32_t width, uint32_t height, Detection *detections, uint32_t numDetections, uint32_t flags=OVERLAY_BOX) |
Draw the detected bounding boxes overlayed on an RGBA image. More... | |
float | GetThreshold () const |
Retrieve the minimum threshold for detection. More... | |
void | SetThreshold (float threshold) |
Set the minimum threshold for detection. More... | |
uint32_t | GetMaxDetections () const |
Retrieve the maximum number of simultaneous detections the network supports. More... | |
uint32_t | GetNumClasses () const |
Retrieve the number of object classes supported in the detector. More... | |
const char * | GetClassDesc (uint32_t index) const |
Retrieve the description of a particular class. More... | |
const char * | GetClassSynset (uint32_t index) const |
Retrieve the class synset category of a particular class. More... | |
const char * | GetClassPath () const |
Retrieve the path to the file containing the class descriptions. More... | |
void | SetClassColor (uint32_t classIndex, float r, float g, float b, float a=255.0f) |
Set the visualization color of a particular class of object. More... | |
![]() | |
virtual | ~tensorNet () |
Destory. More... | |
bool | LoadNetwork (const char *prototxt, const char *model, const char *mean=NULL, const char *input_blob="data", const char *output_blob="prob", uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true, nvinfer1::IInt8Calibrator *calibrator=NULL, cudaStream_t stream=NULL) |
Load a new network instance. More... | |
bool | LoadNetwork (const char *prototxt, const char *model, const char *mean, const char *input_blob, const std::vector< std::string > &output_blobs, uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true, nvinfer1::IInt8Calibrator *calibrator=NULL, cudaStream_t stream=NULL) |
Load a new network instance with multiple output layers. More... | |
bool | LoadNetwork (const char *prototxt, const char *model, const char *mean, const char *input_blob, const Dims3 &input_dims, const std::vector< std::string > &output_blobs, uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true, nvinfer1::IInt8Calibrator *calibrator=NULL, cudaStream_t stream=NULL) |
Load a new network instance (this variant is used for UFF models) More... | |
void | EnableLayerProfiler () |
Manually enable layer profiling times. More... | |
void | EnableDebug () |
Manually enable debug messages and synchronization. More... | |
bool | AllowGPUFallback () const |
Return true if GPU fallback is enabled. More... | |
deviceType | GetDevice () const |
Retrieve the device being used for execution. More... | |
precisionType | GetPrecision () const |
Retrieve the type of precision being used. More... | |
bool | IsPrecision (precisionType type) const |
Check if a particular precision is being used. More... | |
cudaStream_t | GetStream () const |
Retrieve the stream that the device is operating on. More... | |
cudaStream_t | CreateStream (bool nonBlocking=true) |
Create and use a new stream for execution. More... | |
void | SetStream (cudaStream_t stream) |
Set the stream that the device is operating on. More... | |
const char * | GetPrototxtPath () const |
Retrieve the path to the network prototxt file. More... | |
const char * | GetModelPath () const |
Retrieve the path to the network model file. More... | |
modelType | GetModelType () const |
Retrieve the format of the network model. More... | |
bool | IsModelType (modelType type) const |
Return true if the model is of the specified format. More... | |
float | GetNetworkTime () |
Retrieve the network runtime (in milliseconds). More... | |
float2 | GetProfilerTime (profilerQuery query) |
Retrieve the profiler runtime (in milliseconds). More... | |
float | GetProfilerTime (profilerQuery query, profilerDevice device) |
Retrieve the profiler runtime (in milliseconds). More... | |
void | PrintProfilerTimes () |
Print the profiler times (in millseconds). More... | |
Static Public Member Functions | |
static NetworkType | NetworkTypeFromStr (const char *model_name) |
Parse a string to one of the built-in pretrained models. More... | |
static detectNet * | Create (NetworkType networkType=PEDNET_MULTI, float threshold=DETECTNET_DEFAULT_THRESHOLD, uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true) |
Load a new network instance. More... | |
static detectNet * | Create (const char *prototxt_path, const char *model_path, const char *mean_binary, const char *class_labels, float threshold=DETECTNET_DEFAULT_THRESHOLD, const char *input=DETECTNET_DEFAULT_INPUT, const char *coverage=DETECTNET_DEFAULT_COVERAGE, const char *bboxes=DETECTNET_DEFAULT_BBOX, uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true) |
Load a custom network instance. More... | |
static detectNet * | Create (const char *prototxt_path, const char *model_path, float mean_pixel=0.0f, const char *class_labels=NULL, float threshold=DETECTNET_DEFAULT_THRESHOLD, const char *input=DETECTNET_DEFAULT_INPUT, const char *coverage=DETECTNET_DEFAULT_COVERAGE, const char *bboxes=DETECTNET_DEFAULT_BBOX, uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true) |
Load a custom network instance. More... | |
static detectNet * | Create (const char *model_path, const char *class_labels, float threshold, const char *input, const Dims3 &inputDims, const char *output, const char *numDetections, uint32_t maxBatchSize=DEFAULT_MAX_BATCH_SIZE, precisionType precision=TYPE_FASTEST, deviceType device=DEVICE_GPU, bool allowGPUFallback=true) |
Load a custom network instance of a UFF model. More... | |
static detectNet * | Create (int argc, char **argv) |
Load a new network instance by parsing the command line. More... | |
static const char * | Usage () |
Usage string for command line arguments to Create() More... | |
![]() | |
static precisionType | FindFastestPrecision (deviceType device=DEVICE_GPU, bool allowInt8=true) |
Determine the fastest native precision on a device. More... | |
static std::vector< precisionType > | DetectNativePrecisions (deviceType device=DEVICE_GPU) |
Detect the precisions supported natively on a device. More... | |
static bool | DetectNativePrecision (const std::vector< precisionType > &nativeTypes, precisionType type) |
Detect if a particular precision is supported natively. More... | |
static bool | DetectNativePrecision (precisionType precision, deviceType device=DEVICE_GPU) |
Detect if a particular precision is supported natively. More... | |
Protected Member Functions | |
detectNet (float meanPixel=0.0f) | |
bool | allocDetections () |
bool | defaultColors () |
void | defaultClassDesc () |
bool | loadClassDesc (const char *filename) |
bool | init (const char *prototxt_path, const char *model_path, const char *mean_binary, const char *class_labels, float threshold, const char *input, const char *coverage, const char *bboxes, uint32_t maxBatchSize, precisionType precision, deviceType device, bool allowGPUFallback) |
int | clusterDetections (Detection *detections, uint32_t width, uint32_t height) |
![]() | |
tensorNet () | |
Constructor. More... | |
bool | ProfileModel (const std::string &deployFile, const std::string &modelFile, const char *input, const Dims3 &inputDims, const std::vector< std::string > &outputs, uint32_t maxBatchSize, precisionType precision, deviceType device, bool allowGPUFallback, nvinfer1::IInt8Calibrator *calibrator, std::ostream &modelStream) |
Create and output an optimized network model. More... | |
void | PROFILER_BEGIN (profilerQuery query) |
Begin a profiling query, before network is run. More... | |
void | PROFILER_END (profilerQuery query) |
End a profiling query, after the network is run. More... | |
bool | PROFILER_QUERY (profilerQuery query) |
Query the CUDA part of a profiler query. More... | |
Static Protected Attributes | |
static const uint32_t | mNumDetectionSets = 16 |
Object recognition and localization networks with TensorRT support.
Network choice enumeration.
|
virtual |
Destory.
|
protected |
|
protected |
|
protected |
|
static |
Load a new network instance.
networkType | type of pre-supported network to load |
threshold | default minimum threshold for detection |
maxBatchSize | The maximum batch size that the network will support and be optimized for. |
|
static |
Load a custom network instance.
prototxt_path | File path to the deployable network prototxt |
model_path | File path to the caffemodel |
mean_binary | File path to the mean value binary proto |
class_labels | File path to list of class name labels |
threshold | default minimum threshold for detection |
input | Name of the input layer blob. |
coverage | Name of the output coverage classifier layer blob, which contains the confidence values for each bbox. |
bboxes | Name of the output bounding box layer blob, which contains a grid of rectangles in the image. |
maxBatchSize | The maximum batch size that the network will support and be optimized for. |
|
static |
Load a custom network instance.
prototxt_path | File path to the deployable network prototxt |
model_path | File path to the caffemodel |
mean_pixel | Input transform subtraction value (use 0.0 if the network already does this) |
class_labels | File path to list of class name labels |
threshold | default minimum threshold for detection |
input | Name of the input layer blob. |
coverage | Name of the output coverage classifier layer blob, which contains the confidence values for each bbox. |
bboxes | Name of the output bounding box layer blob, which contains a grid of rectangles in the image. |
maxBatchSize | The maximum batch size that the network will support and be optimized for. |
|
static |
Load a custom network instance of a UFF model.
model_path | File path to the UFF model |
class_labels | File path to list of class name labels |
threshold | default minimum threshold for detection |
input | Name of the input layer blob. |
inputDims | Dimensions of the input layer blob. |
output | Name of the output layer blob containing the bounding boxes, ect. |
numDetections | Name of the output layer blob containing the detection count. |
maxBatchSize | The maximum batch size that the network will support and be optimized for. |
|
static |
Load a new network instance by parsing the command line.
|
protected |
|
protected |
int detectNet::Detect | ( | float * | input, |
uint32_t | width, | ||
uint32_t | height, | ||
Detection ** | detections, | ||
uint32_t | overlay = OVERLAY_BOX |
||
) |
Detect object locations from an RGBA image, returning an array containing the detection results.
[in] | input | float4 RGBA input image in CUDA device memory. |
[in] | width | width of the input image in pixels. |
[in] | height | height of the input image in pixels. |
[out] | detections | pointer that will be set to array of detection results (residing in shared CPU/GPU memory) |
[in] | overlay | bitwise OR combination of overlay flags ( |
int detectNet::Detect | ( | float * | input, |
uint32_t | width, | ||
uint32_t | height, | ||
Detection * | detections, | ||
uint32_t | overlay = OVERLAY_BOX |
||
) |
Detect object locations in an RGBA image, into an array of the results allocated by the user.
[in] | input | float4 RGBA input image in CUDA device memory. |
[in] | width | width of the input image in pixels. |
[in] | height | height of the input image in pixels. |
[out] | detections | pointer to user-allocated array that will be filled with the detection results. |
[in] | overlay | bitwise OR combination of overlay flags ( |
|
inline |
Retrieve the description of a particular class.
|
inline |
Retrieve the path to the file containing the class descriptions.
|
inline |
Retrieve the class synset category of a particular class.
|
inline |
Retrieve the maximum number of simultaneous detections the network supports.
Knowing this is useful for allocating the buffers to store the output detection results.
|
inline |
Retrieve the number of object classes supported in the detector.
|
inline |
Retrieve the minimum threshold for detection.
TODO: change this to per-class in the future
|
protected |
|
protected |
|
static |
Parse a string to one of the built-in pretrained models.
Valid names are "pednet", "multiped", "facenet", "face", "coco-airplane", "airplane", "coco-bottle", "bottle", "coco-chair", "chair", "coco-dog", or "dog".
bool detectNet::Overlay | ( | float * | input, |
float * | output, | ||
uint32_t | width, | ||
uint32_t | height, | ||
Detection * | detections, | ||
uint32_t | numDetections, | ||
uint32_t | flags = OVERLAY_BOX |
||
) |
Draw the detected bounding boxes overlayed on an RGBA image.
input | float4 RGBA input image in CUDA device memory. |
output | float4 RGBA output image in CUDA device memory. |
detections | Array of detections allocated in CUDA device memory. |
void detectNet::SetClassColor | ( | uint32_t | classIndex, |
float | r, | ||
float | g, | ||
float | b, | ||
float | a = 255.0f |
||
) |
Set the visualization color of a particular class of object.
|
inline |
Set the minimum threshold for detection.
|
inlinestatic |
Usage string for command line arguments to Create()
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
staticprotected |