DriveWorks SDK Reference

| 0.6.67 Release

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 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 
45 #ifndef DW_DRIVENET_H__
46 #define DW_DRIVENET_H__
47 
48 #include <dw/core/Context.h>
49 #include <dw/dnn/DNN.h>
50 #include <dw/object/Object.h>
51 #include <dw/object/Clustering.h>
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
58 
61 typedef struct dwDriveNetObject *dwDriveNetHandle_t;
62 
64 {
74 
75 typedef enum dwDriveNetBatchSize
76 {
82 
84 typedef enum dwDriveNetClass
85 {
86 
93 
95 
97 
98 typedef struct dwDriveNetParams
99 {
109 
119 
141 dwStatus dwDriveNet_initialize(dwDriveNetHandle_t *drivenetHandle,
142  dwObjectClusteringHandle_t **objectClusteringHandles,
143  const dwDriveNetClass **objectClasses,
144  uint32_t *numObjectClasses,
145  dwContextHandle_t ctx,
146  const dwDriveNetParams *drivenetParams);
147 
156 dwStatus dwDriveNet_reset(dwDriveNetHandle_t obj);
157 
168 dwStatus dwDriveNet_release(dwDriveNetHandle_t *obj);
169 
179 dwStatus dwDriveNet_getInputBlobsize(dwBlobSize *inputBlobsize, dwDriveNetHandle_t obj);
180 
191 dwStatus dwDriveNet_getClassLabel(const char **classLabel, uint32_t classIdx, dwDriveNetHandle_t obj);
192 
202 dwStatus dwDriveNet_getDNNMetaData(dwDNNMetaData* metaData, dwDriveNetHandle_t obj);
203 
204 
205 #ifdef __cplusplus
206 }
207 #endif
208 
209 #endif // DW_DRIVENET_H__
DriveNet network is loaded with batch size = 1 if available.
Definition: DriveNet.h:78
dwDriveNetBatchSize networkBatchSize
Drivenet network batch size. Default is DW_DRIVENET_BATCHSIZE_1.
Definition: DriveNet.h:107
dwDriveNetBatchSize
Definition: DriveNet.h:75
DW_API_PUBLIC dwStatus dwDriveNet_release(dwDriveNetHandle_t *obj)
Releases the DriveNet module.
uint32_t maxClustersPerClass
Maximum number of clusters per class. Default is 100.
Definition: DriveNet.h:103
NVIDIA DriveWorks API: Core Methods
struct dwDriveNetObject * dwDriveNetHandle_t
Handle to a DriveNet object.
Definition: DriveNet.h:61
Holds blob dimensions.
Definition: DNNTypes.h:57
two wheeled vehicles
Definition: DriveNet.h:89
any light weight vehicle
Definition: DriveNet.h:87
NVIDIA DriveWorks API: DNN Methods
dwStatus
Status definition.
Definition: Status.h:167
DW_API_PUBLIC dwStatus dwDriveNet_initialize(dwDriveNetHandle_t *drivenetHandle, dwObjectClusteringHandle_t **objectClusteringHandles, const dwDriveNetClass **objectClasses, uint32_t *numObjectClasses, dwContextHandle_t ctx, const dwDriveNetParams *drivenetParams)
Initializes DriveNet module.
NVIDIA DriveWorks API: ObjectClustering Methods
DriveNet network is loaded with FP16 precision.
Definition: DriveNet.h:70
DriveNet network is loaded with batch size = 2 if available.
Definition: DriveNet.h:80
DriveNet network is loaded with INT8 precision.
Definition: DriveNet.h:67
DW_API_PUBLIC dwStatus dwDriveNet_reset(dwDriveNetHandle_t obj)
Resets DriveNet.
DW_API_PUBLIC dwStatus dwDriveNet_getClassLabel(const char **classLabel, uint32_t classIdx, dwDriveNetHandle_t obj)
Returns the class label for a given class index.
dwDriveNetNetworkPrecision networkPrecision
Drivenet network precision. Default is DW_DRIVENET_PRECISION_FP32.
Definition: DriveNet.h:105
dwDriveNetClass
Class IDs detectable by the DriveNet implementation.
Definition: DriveNet.h:84
DW_API_PUBLIC dwStatus dwDriveNet_getDNNMetaData(dwDNNMetaData *metaData, dwDriveNetHandle_t obj)
Returns the DNN metadata.
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:78
Specifies TensorRT model header.
Definition: DNN.h:68
NVIDIA DriveWorks API: Object Methods
traffic and road signs
Definition: DriveNet.h:88
DW_API_PUBLIC dwStatus dwDriveNet_initDefaultParams(dwDriveNetParams *params)
Initializes DriveNet parameters with default values.
uint32_t maxProposalsPerClass
Maximum number of RAW detections per class directly obtained from DNN. Default is 100...
Definition: DriveNet.h:101
heavy weight trucks
Definition: DriveNet.h:90
#define DW_API_PUBLIC
Definition: Exports.h:76
struct dwObjectClusteringObject * dwObjectClusteringHandle_t
Handle to an ObjectClustering.
Definition: Clustering.h:96
DriveNet network is loaded with FP32 precision.
Definition: DriveNet.h:72
DW_API_PUBLIC dwStatus dwDriveNet_getInputBlobsize(dwBlobSize *inputBlobsize, dwDriveNetHandle_t obj)
Returns input blob size that DriveNet expects.
dwDriveNetNetworkPrecision
Definition: DriveNet.h:63