DriveWorks SDK Reference
3.0.4260 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/DNNTypes.h>
55 #include <dw/dnn/Tensor.h>
56 
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60 
62 {
89 
93 typedef struct dwDataConditionerObject* dwDataConditionerHandle_t;
94 
105 
124 dwStatus dwDataConditioner_initialize(dwDataConditionerHandle_t* obj,
125  const dwBlobSize* networkInputBlobSize,
126  const dwDataConditionerParams* dataConditionerParams,
127  cudaStream_t stream, dwContextHandle_t ctx);
128 
151 dwStatus dwDataConditioner_initializeFromTensorProperties(dwDataConditionerHandle_t* obj,
152  const dwDNNTensorProperties* outputProperties,
153  uint32_t maxNumImages,
154  const dwDataConditionerParams* dataConditionerParams,
155  cudaStream_t stream, dwContextHandle_t ctx);
156 
169 dwStatus dwDataConditioner_setCUDAStream(cudaStream_t stream, dwDataConditionerHandle_t obj);
170 
181 dwStatus dwDataConditioner_getCUDAStream(cudaStream_t* stream, dwDataConditionerHandle_t obj);
182 
192 dwStatus dwDataConditioner_reset(dwDataConditionerHandle_t obj);
193 
205 dwStatus dwDataConditioner_release(dwDataConditionerHandle_t obj);
206 
234 dwStatus dwDataConditioner_prepareDataRaw(float32_t* d_outputImage, const dwImageCUDA* const* inputImages,
235  uint32_t numImages, const dwRect* roi,
236  cudaTextureAddressMode addressMode, dwDataConditionerHandle_t obj);
237 
266  const dwImageHandle_t* inputImages,
267  uint32_t numImages, const dwRect* roi,
268  cudaTextureAddressMode addressMode, dwDataConditionerHandle_t obj);
269 
281  dwDataConditionerHandle_t obj);
282 
298  float32_t inputX, float32_t inputY, const dwRect* roi,
299  dwDataConditionerHandle_t obj);
300 #ifdef __cplusplus
301 }
302 #endif
303 
304 #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.
NVIDIA DriveWorks API: DNN Data types
Defines a CUDA image.
Definition: Image.h:266
NVIDIA DriveWorks API: Core Methods
Holds blob dimensions.
Definition: DNNTypes.h:60
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.
NVIDIA DriveWorks API: DNNTensor Structures and Methods
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:166
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.
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...
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.