DriveWorks SDK Reference
3.5.78 Release
For Test and Development only

DataConditioner.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) 2015-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_DNN_DATACONDITIONER_H_
49 #define DW_DNN_DATACONDITIONER_H_
50 
51 #include <dw/core/Context.h>
52 #include <dw/core/Types.h>
53 #include <dw/image/Image.h>
54 #include <dw/dnn/tensor/Tensor.h>
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
61 {
88 
92 typedef struct dwDataConditionerObject* dwDataConditionerHandle_t;
93 
104 
123 dwStatus dwDataConditioner_initialize(dwDataConditionerHandle_t* obj,
124  const dwBlobSize* networkInputBlobSize,
125  const dwDataConditionerParams* dataConditionerParams,
126  cudaStream_t stream, dwContextHandle_t ctx);
127 
150 dwStatus dwDataConditioner_initializeFromTensorProperties(dwDataConditionerHandle_t* obj,
151  const dwDNNTensorProperties* outputProperties,
152  uint32_t maxNumImages,
153  const dwDataConditionerParams* dataConditionerParams,
154  cudaStream_t stream, dwContextHandle_t ctx);
155 
168 dwStatus dwDataConditioner_setCUDAStream(cudaStream_t stream, dwDataConditionerHandle_t obj);
169 
180 dwStatus dwDataConditioner_getCUDAStream(cudaStream_t* stream, dwDataConditionerHandle_t obj);
181 
191 dwStatus dwDataConditioner_reset(dwDataConditionerHandle_t obj);
192 
204 dwStatus dwDataConditioner_release(dwDataConditionerHandle_t obj);
205 
233 dwStatus dwDataConditioner_prepareDataRaw(float32_t* d_outputImage, const dwImageCUDA* const* inputImages,
234  uint32_t numImages, const dwRect* roi,
235  cudaTextureAddressMode addressMode, dwDataConditionerHandle_t obj);
236 
265  const dwImageHandle_t* inputImages,
266  uint32_t numImages, const dwRect* roi,
267  cudaTextureAddressMode addressMode, dwDataConditionerHandle_t obj);
268 
280  dwDataConditionerHandle_t obj);
281 
297  float32_t inputX, float32_t inputY, const dwRect* roi,
298  dwDataConditionerHandle_t obj);
299 #ifdef __cplusplus
300 }
301 #endif
302 
303 #endif // DW_DNN_DATACONDITIONER_H_
DW_API_PUBLIC dwStatus dwDataConditioner_setCUDAStream(cudaStream_t stream, dwDataConditionerHandle_t obj)
Sets the CUDA stream for CUDA related operations.
const dwImageCUDA * meanImage
Mean image to be subtracted.
NVIDIA DriveWorks API: Core Types
float float32_t
Specifies POD types.
Definition: Types.h:70
struct dwImageObject * dwImageHandle_t
Definition: Image.h:99
Defines a rectangle.
Definition: Types.h:189
#define DW_MAX_IMAGE_PLANES
Definition: Image.h:84
struct dwDataConditionerObject * dwDataConditionerHandle_t
Handle to a DataConditioner.
Defines a CUDA image.
Definition: Image.h:266
NVIDIA DriveWorks API: Core Methods
NVIDIA DriveWorks API: Image Conversion and Streaming Functionality
DW_API_PUBLIC dwStatus dwDataConditioner_prepareData(dwDNNTensorHandle_t tensorOutput, const dwImageHandle_t *inputImages, uint32_t numImages, const dwRect *roi, cudaTextureAddressMode addressMode, dwDataConditionerHandle_t obj)
Runs the configured transformations on an image.
bool splitPlanes
Boolean indicating whether planes should be split. Default is true.
bool ignoreAspectRatio
Boolean indicating whether the aspect ratio of the input image should be kept (false) or the image sh...
DW_API_PUBLIC dwStatus dwDataConditioner_initializeFromTensorProperties(dwDataConditionerHandle_t *obj, const dwDNNTensorProperties *outputProperties, uint32_t maxNumImages, const dwDataConditionerParams *dataConditionerParams, cudaStream_t stream, dwContextHandle_t ctx)
Initializes a DataConditioner module.
DW_API_PUBLIC dwStatus dwDataConditioner_initialize(dwDataConditionerHandle_t *obj, const dwBlobSize *networkInputBlobSize, const dwDataConditionerParams *dataConditionerParams, cudaStream_t stream, dwContextHandle_t ctx)
Initializes a DataConditioner module.
dwStatus
Status definition.
Definition: Status.h:178
float32_t stdev[DW_MAX_IMAGE_PLANES]
Standard deviation with range [0, 255].
DW_API_PUBLIC dwStatus dwDataConditioner_release(dwDataConditionerHandle_t obj)
Releases the DataConditioner module.
Holds blob dimensions.
Definition: Types.h:560
bool doPerPlaneMeanNormalization
Boolean indicating whether to perform per-plane mean normalization. Default false.
DW_API_PUBLIC dwStatus dwDataConditioner_outputPositionToInput(float32_t *outputX, float32_t *outputY, float32_t inputX, float32_t inputY, const dwRect *roi, dwDataConditionerHandle_t obj)
Computes the position of a point from the interpreted DNN output on the input image.
DW_API_PUBLIC dwStatus dwDataConditioner_getOutputSize(dwBlobSize *outputBlobSize, dwDataConditionerHandle_t obj)
Computes the output size based on the input size and the operations that have been added...
NVIDIA DriveWorks API: DNNTensor Structures and Methods
enum cudaTextureAddressMode cudaTextureAddressMode
Definition: Context.h:60
float32_t meanValue[DW_MAX_IMAGE_PLANES]
Mean value to be subtracted. Range [0, 255]. Default is 0.
Specifies DNNTensor properties.
Definition: Tensor.h:93
float32_t scaleCoefficient
Scale pixel intensities. Default is 1.0.
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:80
struct dwDNNTensorObject * dwDNNTensorHandle_t
Handles representing Deep Neural Network interface.
Definition: Tensor.h:59
DW_API_PUBLIC dwStatus dwDataConditioner_reset(dwDataConditionerHandle_t obj)
Resets the DataConditioner module.
DW_API_PUBLIC dwStatus dwDataConditioner_prepareDataRaw(float32_t *d_outputImage, const dwImageCUDA *const *inputImages, uint32_t numImages, const dwRect *roi, cudaTextureAddressMode addressMode, dwDataConditionerHandle_t obj)
Runs the configured transformations on an image.
DW_API_PUBLIC dwStatus dwDataConditioner_initParams(dwDataConditionerParams *dataConditionerParams)
Initializes DataConditioner parameters with default values.
#define DW_API_PUBLIC
Definition: Exports.h:56
DW_API_PUBLIC dwStatus dwDataConditioner_getCUDAStream(cudaStream_t *stream, dwDataConditionerHandle_t obj)
Gets the CUDA stream used by the data conditioner.