DriveWorks SDK Reference
3.0.4260 Release
For Test and Development only

DriveNet.h
Go to the documentation of this file.
1 // This code contains NVIDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
7 // NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
8 // THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
9 // MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
10 //
11 // NVIDIA Corporation assumes no responsibility for the consequences of use of such
12 // information or for any infringement of patents or other rights of third parties that may
13 // result from its use. No license is granted by implication or otherwise under any patent
14 // or patent rights of NVIDIA Corporation. No third party distribution is allowed unless
15 // expressly authorized by NVIDIA. Details are subject to change without notice.
16 // This code supersedes and replaces all information previously supplied.
17 // NVIDIA Corporation products are not authorized for use as critical
18 // components in life support devices or systems without express written approval of
19 // NVIDIA Corporation.
20 //
21 // Copyright (c) 2017-2019 NVIDIA Corporation. All rights reserved.
22 //
23 // NVIDIA Corporation and its licensors retain all intellectual property and proprietary
24 // rights in and to this software and related documentation and any modifications thereto.
25 // Any use, reproduction, disclosure or distribution of this software and related
26 // documentation without an express license agreement from NVIDIA Corporation is
27 // strictly prohibited.
28 //
30 
48 #ifndef DW_DRIVENET_H_
49 #define DW_DRIVENET_H_
50 
51 #include <dw/core/Context.h>
52 #include <dw/dnn/DNN.h>
53 #include <dw/world/Object.h>
54 
55 #ifdef __cplusplus
56 extern "C" {
57 #endif
58 
60 
63 typedef struct dwDriveNetObject* dwDriveNetHandle_t;
64 
66 typedef enum dwDriveNetModel {
81 
83 typedef enum dwDriveNetBatchSize {
88 
90 typedef enum dwDriveNetCameraType {
91  DW_DRIVENET_CAMERA_60FOV, // Camera with 60 degree field of view
92  DW_DRIVENET_CAMERA_120FOV, // Camera with 120 degree field of view
93  DW_DRIVENET_CAMERA_30FOV // Camera with 30 degree field of view
95 
97 typedef struct dwDriveNetParams
98 {
112  DW_DEPRECATED("replaced by `hasObjectDepth`")
113  bool hasDepth;
119  dwDriveNetCameraType cameraType;
121  const void* networkCustomData;
125 
128 {
130  bool hasDepth;
138 
151 
171 dwStatus dwDriveNet_initialize(dwDriveNetHandle_t* drivenetHandle,
172  const dwDriveNetParams* drivenetParams,
173  dwContextHandle_t ctx);
174 
185 dwStatus dwDriveNet_reset(dwDriveNetHandle_t obj);
186 
199 dwStatus dwDriveNet_release(dwDriveNetHandle_t obj);
200 
214 dwStatus dwDriveNet_getAvailableClasses(const dwObjectClass** objectClasses, uint32_t* numObjectClasses, dwDriveNetHandle_t obj);
215 
228 dwStatus dwDriveNet_getProcessorType(dwProcessorType* processorType, dwDriveNetHandle_t obj);
229 
242 dwStatus dwDriveNet_getInputBlobsize(dwBlobSize* inputBlobsize, dwDriveNetHandle_t obj);
243 
256 dwStatus dwDriveNet_getDNNMetaData(dwDNNMetaData* metaData, dwDriveNetHandle_t obj);
257 
271  dwDriveNetHandle_t obj);
272 
273 #ifdef __cplusplus
274 }
275 #endif
276 
277 #endif // DW_DRIVENET_H_
DriveNet network is loaded with batch size = 2 if available.
Definition: DriveNet.h:85
DriveNet model that performs best on front camera.
Definition: DriveNet.h:68
DW_API_PUBLIC dwStatus dwDriveNet_release(dwDriveNetHandle_t obj)
Releases the DriveNet module.
dwDriveNetBatchSize
DriveNet network batch size options.
Definition: DriveNet.h:83
bool suppressRiderInCar
Suppress detected pedestrians which are actually riders in a car.
Definition: DriveNet.h:123
DW_API_PUBLIC dwStatus dwDriveNet_initialize(dwDriveNetHandle_t *drivenetHandle, const dwDriveNetParams *drivenetParams, dwContextHandle_t ctx)
Initializes DriveNet module.
bool hasDepth
Deprecated flag indicating to load a network that outputs depth for detected objects.
Definition: DriveNet.h:113
DriveNet model that performs best on side camera.
Definition: DriveNet.h:70
dwDriveNetCameraType cameraType
Type of camera based on the field of view.
Definition: DriveNet.h:119
bool hasObjectUrgency
Flag indicating to load a network that outputs urgency for detected objects.
Definition: DriveNet.h:117
Stateful Temporal DriveNet model that also predicts urgency on front camera.
Definition: DriveNet.h:72
dwPrecision
Definition: Types.h:140
uint32_t maxClustersPerClass
Maximum number of clusters per class. Default is 100.
Definition: DriveNet.h:102
bool hasDepth
Flag indicating whether a valid depth is provided for a given object class.
Definition: DriveNet.h:130
DW_API_PUBLIC dwStatus dwDriveNet_getClassProperties(dwDriveNetClassProperties *properties, dwObjectClass objectClass, dwDriveNetHandle_t obj)
Returns properties of the DriveNet model for a given class.
NVIDIA DriveWorks API: Core Methods
dwDriveNetModel networkModel
Drivenet network model. Default is DW_DRIVENET_MODEL_FRONT.
Definition: DriveNet.h:106
struct dwDriveNetObject * dwDriveNetHandle_t
Handle to a DriveNet object.
Definition: DriveNet.h:63
Holds blob dimensions.
Definition: DNNTypes.h:60
DW_API_PUBLIC dwStatus dwDriveNet_initDefaultParams(dwDriveNetParams *params, dwContextHandle_t ctx)
Initializes DriveNet parameters with default values.
dwPrecision networkPrecision
Drivenet network precision. Default is DW_PRECISION_FP32.
Definition: DriveNet.h:108
Stateless Temporal DriveNet model that also predicts urgency on front camera.
Definition: DriveNet.h:74
NVIDIA DriveWorks API: DNN Methods
dwStatus
Status definition.
Definition: Status.h:166
DW_API_PUBLIC dwStatus dwDriveNet_getAvailableClasses(const dwObjectClass **objectClasses, uint32_t *numObjectClasses, dwDriveNetHandle_t obj)
Returns the object classes that DriveNet can detect.
DriveNet network is loaded with batch size = 4 if available.
Definition: DriveNet.h:86
dwProcessorType
Processor type definitions.
Definition: Types.h:159
const void * networkCustomData
Custom network data. Must be set if custom model is selected and available.
Definition: DriveNet.h:121
DriveNet network is loaded with batch size = 1 if available.
Definition: DriveNet.h:84
Loads custom drivenet model if available.
Definition: DriveNet.h:79
bool hasObjectDepth
Flag indicating to load a network that outputs depth for detected objects.
Definition: DriveNet.h:115
bool hasUrgency
Flag indicating whether a valid urgency is provided for a given object class.
Definition: DriveNet.h:136
DW_API_PUBLIC dwStatus dwDriveNet_getProcessorType(dwProcessorType *processorType, dwDriveNetHandle_t obj)
Returns processor type that DriveNet runs on.
#define DW_DEPRECATED(msg)
Definition: Exports.h:68
DW_API_PUBLIC dwStatus dwDriveNet_reset(dwDriveNetHandle_t obj)
Resets DriveNet.
DriveNet properties per class.
Definition: DriveNet.h:127
dwDriveNetCameraType
DriveNet camera type based on its field of view.
Definition: DriveNet.h:90
Number of available DriveNet models.
Definition: DriveNet.h:76
dwDriveNetModel
DriveNet network models to be loaded by DriveNet module.
Definition: DriveNet.h:66
DW_API_PUBLIC dwStatus dwDriveNet_getDNNMetaData(dwDNNMetaData *metaData, dwDriveNetHandle_t obj)
Returns the DNN metadata.
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:80
Specifies TensorRT model header.
Definition: DNN.h:69
bool hasOrientation
Flag indicating whether a valid orientation is provided for a given object class. ...
Definition: DriveNet.h:132
NVIDIA DriveWorks API: World Module
dwProcessorType processorType
Processor type. Supported processors: GPU, DLA (only on DDPX)
Definition: DriveNet.h:104
dwObjectClass
Object classes known to DriveWorks.
Definition: Obstacle.h:110
uint32_t maxProposalsPerClass
Maximum number of RAW detections per class directly obtained from DNN. Default is 100...
Definition: DriveNet.h:100
bool hasVisibility
Flag indicating whether a valid visibility is provided for a given object class.
Definition: DriveNet.h:134
#define DW_API_PUBLIC
Definition: Exports.h:56
DW_API_PUBLIC dwStatus dwDriveNet_getInputBlobsize(dwBlobSize *inputBlobsize, dwDriveNetHandle_t obj)
Returns input blob size that DriveNet expects.
dwDriveNetBatchSize batchSize
Drivenet network batch size.
Definition: DriveNet.h:110
DriveNet model parameters.
Definition: DriveNet.h:97