DriveWorks SDK Reference

| 0.6.67 Release

ObjectInPathAnalyzer.h
Go to the documentation of this file.
1 // This code contains IDIA Confidential Information and is disclosed
3 // under the Mutual Non-Disclosure Agreement.
4 //
5 // Notice
6 // ALL IDIA 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 
44 #ifndef DW_OBJECT_OBJECTINPATHANALYZER_H__
45 #define DW_OBJECT_OBJECTINPATHANALYZER_H__
46 
47 #include <dw/core/Context.h>
48 #include <dw/core/Types.h>
49 #include <dw/object/Object.h>
50 #include <dw/lanes/LaneDetector.h>
52 
53 #ifdef __cplusplus
54 extern "C" {
55 #endif
56 
59 typedef struct dwObjectInPathAnalyzerObject *dwObjectInPathAnalyzerHandle_t;
60 
64 typedef struct {
66  uint32_t imageWidth;
68  uint32_t imageHeight;
79  dwTransformation cameraToRig;
83 
84 // TODO: Unify with LaneDetector.h
88 typedef enum {
94 } dwLaneType;
95 
99 typedef struct {
111 
115 typedef struct {
119  uint32_t count;
123 
132 
144 DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_initialize(dwObjectInPathAnalyzerHandle_t *analyzer,
145  const dwObjectInPathAnalyzerParams *params,
146  dwContextHandle_t context);
147 
155 DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_release(dwObjectInPathAnalyzerHandle_t *analyzer);
156 
165 DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_reset(dwObjectInPathAnalyzerHandle_t analyzer);
166 
177  dwObjectInPathAnalyzerHandle_t analyzer);
178 
190  dwObjectInPathAnalyzerHandle_t analyzer);
191 
204  dwObjectInPathAnalyzerHandle_t analyzer);
205 
216 DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_setObjects(const dwObject *objectList, uint32_t count,
217  dwObjectInPathAnalyzerHandle_t analyzer);
218 
231  dwObjectInPathAnalyzerHandle_t analyzer);
232 
241 DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_processDeviceAsync(dwObjectInPathAnalyzerHandle_t analyzer);
242 
252 DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_processHost(dwObjectInPathAnalyzerHandle_t analyzer);
253 
265  dwLaneType lane,
266  dwObjectInPathAnalyzerHandle_t analyzer);
267 
268 #ifdef __cplusplus
269 }
270 #endif
271 
272 #endif // DW_OBJECT_OBJECTINPATHANALYZER_H__
dwBool useFreeSpace
Use free space to calculate intersections.
dwBool normalizePixelCount
Control whether or not the pixels are normalized by total object area.
NVIDIA DriveWorks API: Core Types
uint32_t imageHeight
The height of the image.
float float32_t
Specifies POD types.
Definition: Types.h:77
uint32_t imageWidth
The width of the image.
uint32_t count
The number of elements in the objects list.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_setFreeSpace(const dwFreeSpaceDetection *detection, dwObjectInPathAnalyzerHandle_t analyzer)
Sets the free space.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_setLanes(const dwLaneDetection *laneList, dwObjectInPathAnalyzerHandle_t analyzer)
Sets the lanes.
NVIDIA DriveWorks API: Lane Detector Methods
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_processDeviceAsync(dwObjectInPathAnalyzerHandle_t analyzer)
Process the intersections.
NVIDIA DriveWorks API: Free Space Detector Methods
dwLaneType
The type of lane.
NVIDIA DriveWorks API: Core Methods
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_reset(dwObjectInPathAnalyzerHandle_t analyzer)
Clears the object in-path analyzer.
float32_t intersectionThreshold
The threshold to count object as an acceptable intersection.
dwCalibratedCameraHandle_t calibratedCamera
Calibrated camera to use.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_getObjectsInLane(dwObjectInPathAnalyzerObjects *objects, dwLaneType lane, dwObjectInPathAnalyzerHandle_t analyzer)
Get the current intersections.
float32_t intersectionAmount
The intersection ratio of intersection pixel count / object total area.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_getDefaultInitParams(dwObjectInPathAnalyzerParams *params)
Get the default parameters.
dwStatus
Status definition.
Definition: Status.h:167
Holds the defintion of a boundary in one image.
struct dwCalibratedCameraObject * dwCalibratedCameraHandle_t
A pointer to the handle representing a calibrated camera.
Definition: Camera.h:66
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_setObjects(const dwObject *objectList, uint32_t count, dwObjectInPathAnalyzerHandle_t analyzer)
Sets the objects.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_processHost(dwObjectInPathAnalyzerHandle_t analyzer)
Pull the information from the device to the host.
A list of dwObject.
Definition: Object.h:102
The output format of detected lanes.
Definition: LaneDetector.h:99
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_initialize(dwObjectInPathAnalyzerHandle_t *analyzer, const dwObjectInPathAnalyzerParams *params, dwContextHandle_t context)
Initializes an object in-path analyzer.
struct dwObjectInPathAnalyzerObject * dwObjectInPathAnalyzerHandle_t
Handle to an object lane analyzer.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_setTimesteps(float32_t timesteps, dwObjectInPathAnalyzerHandle_t analyzer)
Sets the timesteps.
const dwObjectInPathAnalyzerIntersection * objects
The array of intersection objects.
uint8_t dwBool
Definition: Types.h:79
Holds the information for one object intersection (lane + object).
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:78
dwObject object
The original dwObject that was intersected.
NVIDIA DriveWorks API: Object Methods
uint32_t objectAreaPixelCount
The object area in pixels given segmented (or not) by freespace.
dwLaneType lane
The intersecting lane.
Holds a list of intersections.
dwLaneType lane
The intersecting lane.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_release(dwObjectInPathAnalyzerHandle_t *analyzer)
Releases the object in-path analyzer.
DW_API_PUBLIC dwStatus dwObjectInPathAnalyzer_setObjectTracks(const dwObjectList *objects, uint32_t count, dwObjectInPathAnalyzerHandle_t analyzer)
Sets the object tracks.
dwTransformation cameraToRig
Camera to rig matrix.
uint32_t intersectionPixelCount
The total number of pixels that intersected between the object and the lane.
Holds the initialization parameters for object in-path analyzer.
#define DW_API_PUBLIC
Definition: Exports.h:76