DriveWorks SDK Reference

| 0.6.67 Release

Clustering.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) 2016 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_OBJECT_CLUSTERING_H__
46 #define DW_OBJECT_CLUSTERING_H__
47 
48 #include <dw/object/Object.h>
49 #include <dw/core/Context.h>
50 #include <dw/core/Types.h>
51 
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55 
56 typedef enum {
60 
61 typedef struct dwDBScanClusteringParams {
66  uint32_t minBoxes;
71 
72 typedef struct dwObjectClusteringParams {
76  uint32_t maxProposals;
78  uint32_t maxClusters;
80  dwObjectClusteringAlgorithm algorithm;
92 
96 typedef struct dwObjectClusteringObject *dwObjectClusteringHandle_t;
97 
107 
118 dwStatus dwObjectClustering_initialize(dwObjectClusteringHandle_t *obj, dwContextHandle_t ctx,
119  const dwObjectClusteringParams *clusteringParams);
120 
129 dwStatus dwObjectClustering_reset(dwObjectClusteringHandle_t obj);
130 
141 dwStatus dwObjectClustering_release(dwObjectClusteringHandle_t* obj);
142 
160 dwStatus dwObjectClustering_cluster(dwObject *clusters, size_t *numClusters, const dwObject *detections,
161  size_t numDetections, dwObjectClusteringHandle_t obj);
162 
171  dwObjectClusteringHandle_t obj);
172 
181  dwObjectClusteringHandle_t obj);
182 
190 dwStatus dwObjectClustering_setATHRThreshold(float32_t threshold, dwObjectClusteringHandle_t obj);
191 
199 dwStatus dwObjectClustering_getATHRThreshold(float32_t *threshold, dwObjectClusteringHandle_t obj);
200 
208 dwStatus dwObjectClustering_isATHREnabled(dwBool *enabled, dwObjectClusteringHandle_t obj);
209 
217 dwStatus dwObjectClustering_enableATHR(dwBool enable, dwObjectClusteringHandle_t obj);
218 
219 #ifdef __cplusplus
220 }
221 #endif
222 
224 #endif // DW_OBJECT_CLUSTERING_H__
dwBool enable2_5D
Take the 2.5D fields (horizontalVisibility, bottomVisibility, orientationYaw) into account when clust...
Definition: Clustering.h:88
NVIDIA DriveWorks API: Core Types
DW_API_PUBLIC dwStatus dwObjectClustering_setDBScanParameters(const dwDBScanClusteringParams *dbscanParams, dwObjectClusteringHandle_t obj)
Sets DBScan clustering parameters.
float float32_t
Specifies POD types.
Definition: Types.h:77
uint32_t maxProposals
Maximum number of object proposals that is given at once for clustering. Default value is 100...
Definition: Clustering.h:76
DW_API_PUBLIC dwStatus dwObjectClustering_initialize(dwObjectClusteringHandle_t *obj, dwContextHandle_t ctx, const dwObjectClusteringParams *clusteringParams)
Initializes an ObjectClustering module.
DW_API_PUBLIC dwStatus dwObjectClustering_enableATHR(dwBool enable, dwObjectClusteringHandle_t obj)
Enables or disables Area-To-Hit-Ratio filtering.
dwObjectClusteringAlgorithm algorithm
Clustering algorithm. Default value is DW_CLUSTERING_DBSCAN.
Definition: Clustering.h:80
DW_API_PUBLIC dwStatus dwObjectClustering_getDBScanParameters(dwDBScanClusteringParams *dbscanParams, dwObjectClusteringHandle_t obj)
Returns current DBScan clustering parameters.
uint32_t maxClusters
Maximum number of clusters (if clusters exceed this number, they are truncated). Default value is 100...
Definition: Clustering.h:78
DW_API_PUBLIC dwStatus dwObjectClustering_getATHRThreshold(float32_t *threshold, dwObjectClusteringHandle_t obj)
Returns current Area-To-Hit-Ratio threshold.
NVIDIA DriveWorks API: Core Methods
DW_API_PUBLIC dwStatus dwObjectClustering_cluster(dwObject *clusters, size_t *numClusters, const dwObject *detections, size_t numDetections, dwObjectClusteringHandle_t obj)
Performs clustering.
DW_API_PUBLIC dwStatus dwObjectClustering_initDefaultParams(dwObjectClusteringParams *clusteringParams)
Initializes ObjectClustering parameters with default values.
DBScan clustering.
Definition: Clustering.h:58
dwDBScanClusteringParams dbScanClusteringParams
DBScan clustering parameters.
Definition: Clustering.h:74
dwObjectClusteringAlgorithm
Definition: Clustering.h:56
dwStatus
Status definition.
Definition: Status.h:167
DW_API_PUBLIC dwStatus dwObjectClustering_isATHREnabled(dwBool *enabled, dwObjectClusteringHandle_t obj)
Returns a boolean indicating whether Area-To-Hit-Ratio filtering is enabled.
float32_t minSumOfConfidences
Minimum sum of confidences required to form a dense region.
Definition: Clustering.h:69
float32_t thresholdATHR
Area to hit ratio threshold. Default value is 60.
Definition: Clustering.h:86
float32_t minHeight
Minimum required clustered object height.
Definition: Clustering.h:90
float32_t epsilon
Maximum distance from the core box to be considered within a region. Default value is 0...
Definition: Clustering.h:63
uint8_t dwBool
Definition: Types.h:79
dwBool enableATHRFilter
Boolean indicating whether Area-To-Hit-Ratio filter is enabled.
Definition: Clustering.h:84
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:78
NVIDIA DriveWorks API: Object Methods
DW_API_PUBLIC dwStatus dwObjectClustering_release(dwObjectClusteringHandle_t *obj)
Release ObjectClustering.
uint32_t minBoxes
Minimum number of boxes required to form a dense region.
Definition: Clustering.h:66
DW_API_PUBLIC dwStatus dwObjectClustering_reset(dwObjectClusteringHandle_t obj)
Resets ObjectClustering.
DW_API_PUBLIC dwStatus dwObjectClustering_setATHRThreshold(float32_t threshold, dwObjectClusteringHandle_t obj)
Sets Area-To-Hit-Ratio threshold.
#define DW_API_PUBLIC
Definition: Exports.h:76
struct dwObjectClusteringObject * dwObjectClusteringHandle_t
Handle to an ObjectClustering.
Definition: Clustering.h:96