DriveWorks SDK Reference
4.0.0 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 
46 #ifndef DW_DNN_DATACONDITIONER_H_
47 #define DW_DNN_DATACONDITIONER_H_
48 
50 #include <dw/core/base/Types.h>
51 #include <dw/image/Image.h>
52 #include <dw/dnn/tensor/Tensor.h>
53 
54 #ifdef __cplusplus
55 extern "C" {
56 #endif
57 
59 {
86 
90 typedef struct dwDataConditionerObject* dwDataConditionerHandle_t;
91 
102 
121 DW_DEPRECATED("WARNING: dwDataConditioner_initialize() will be removed in the next major "
122  "release. Please use dwDataConditioner_initializeNew() instead.")
123 dwStatus dwDataConditioner_initialize(dwDataConditionerHandle_t* const obj,
124  dwBlobSize const* const networkInputBlobSize,
125  dwDataConditionerParams const* const dataConditionerParams,
126  cudaStream_t const stream, dwContextHandle_t const ctx);
127 
147 dwStatus dwDataConditioner_initializeNew(dwDataConditionerHandle_t* const obj,
148  dwBlobSize const* const networkInputBlobSize,
149  uint32_t const maxNumImages,
150  dwDataConditionerParams const* const dataConditionerParams,
151  cudaStream_t const stream, dwContextHandle_t const ctx);
152 
175 dwStatus dwDataConditioner_initializeFromTensorProperties(dwDataConditionerHandle_t* const obj,
176  dwDNNTensorProperties const* const outputProperties,
177  uint32_t const maxNumImages,
178  dwDataConditionerParams const* const dataConditionerParams,
179  cudaStream_t const stream, dwContextHandle_t const ctx);
180 
193 dwStatus dwDataConditioner_setCUDAStream(cudaStream_t const stream, dwDataConditionerHandle_t const obj);
194 
205 dwStatus dwDataConditioner_getCUDAStream(cudaStream_t* const stream, dwDataConditionerHandle_t const obj);
206 
216 dwStatus dwDataConditioner_reset(dwDataConditionerHandle_t const obj);
217 
229 dwStatus dwDataConditioner_release(dwDataConditionerHandle_t const obj);
230 
258 dwStatus dwDataConditioner_prepareDataRaw(float32_t* const dOutputImage, dwImageCUDA const* const* const inputImages,
259  uint32_t const numImages, dwRect const* const roi,
260  cudaTextureAddressMode const addressMode, dwDataConditionerHandle_t const obj);
261 
290  dwImageHandle_t const* const inputImages,
291  uint32_t const numImages, dwRect const* const roi,
292  cudaTextureAddressMode const addressMode, dwDataConditionerHandle_t const obj);
293 
305  dwDataConditionerHandle_t const obj);
306 
322  float32_t const inputX, float32_t const inputY,
323  dwRect const* const roi, dwDataConditionerHandle_t const obj);
324 #ifdef __cplusplus
325 }
326 #endif
327 
328 #endif // DW_DNN_DATACONDITIONER_H_
NVIDIA DriveWorks API: Core Types
const dwImageCUDA * meanImage
Mean image to be subtracted.
float float32_t
Specifies POD types.
Definition: Types.h:70
struct dwImageObject * dwImageHandle_t
Definition: Image.h:100
Defines a rectangle.
Definition: Types.h:189
#define DW_MAX_IMAGE_PLANES
Definition: Image.h:85
struct dwDataConditionerObject * dwDataConditionerHandle_t
Handle to a DataConditioner.
DW_API_PUBLIC dwStatus dwDataConditioner_initialize(dwDataConditionerHandle_t *const obj, dwBlobSize const *const networkInputBlobSize, dwDataConditionerParams const *const dataConditionerParams, cudaStream_t const stream, dwContextHandle_t const ctx)
Initializes a DataConditioner module.
DW_API_PUBLIC dwStatus dwDataConditioner_release(dwDataConditionerHandle_t const obj)
Releases the DataConditioner module.
DW_API_PUBLIC dwStatus dwDataConditioner_getOutputSize(dwBlobSize *const outputBlobSize, dwDataConditionerHandle_t const obj)
Computes the output size based on the input size and the operations that have been added...
DW_API_PUBLIC dwStatus dwDataConditioner_outputPositionToInput(float32_t *const outputX, float32_t *const outputY, float32_t const inputX, float32_t const inputY, dwRect const *const roi, dwDataConditionerHandle_t const obj)
Computes the position of a point from the interpreted DNN output on the input image.
Defines a CUDA image.
Definition: Image.h:268
NVIDIA DriveWorks API: Image Conversion and Streaming Functionality
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...
enum cudaTextureAddressMode cudaTextureAddressMode
Definition: Context.h:61
DW_API_PUBLIC dwStatus dwDataConditioner_prepareDataRaw(float32_t *const dOutputImage, dwImageCUDA const *const *const inputImages, uint32_t const numImages, dwRect const *const roi, cudaTextureAddressMode const addressMode, dwDataConditionerHandle_t const obj)
Runs the configured transformations on an image.
DW_API_PUBLIC dwStatus dwDataConditioner_initParams(dwDataConditionerParams *const dataConditionerParams)
Initializes DataConditioner parameters with default values.
dwStatus
Status definition.
Definition: Status.h:180
float32_t stdev[DW_MAX_IMAGE_PLANES]
Standard deviation with range [0, 255].
Holds blob dimensions.
Definition: Types.h:560
DW_API_PUBLIC dwStatus dwDataConditioner_getCUDAStream(cudaStream_t *const stream, dwDataConditionerHandle_t const obj)
Gets the CUDA stream used by the data conditioner.
bool doPerPlaneMeanNormalization
Boolean indicating whether to perform per-plane mean normalization. Default false.
#define DW_DEPRECATED(msg)
Definition: Exports.h:66
NVIDIA DriveWorks API: DNNTensor Structures and Methods
DW_API_PUBLIC dwStatus dwDataConditioner_initializeNew(dwDataConditionerHandle_t *const obj, dwBlobSize const *const networkInputBlobSize, uint32_t const maxNumImages, dwDataConditionerParams const *const dataConditionerParams, cudaStream_t const stream, dwContextHandle_t const ctx)
Initializes a DataConditioner module.
float32_t meanValue[DW_MAX_IMAGE_PLANES]
Mean value to be subtracted. Range [0, 255]. Default is 0.
Specifies DNNTensor properties.
Definition: Tensor.h:91
DW_API_PUBLIC dwStatus dwDataConditioner_reset(dwDataConditionerHandle_t const obj)
Resets the DataConditioner module.
DW_API_PUBLIC dwStatus dwDataConditioner_prepareData(dwDNNTensorHandle_t const tensorOutput, dwImageHandle_t const *const inputImages, uint32_t const numImages, dwRect const *const roi, cudaTextureAddressMode const addressMode, dwDataConditionerHandle_t const obj)
Runs the configured transformations on an image.
DW_API_PUBLIC dwStatus dwDataConditioner_setCUDAStream(cudaStream_t const stream, dwDataConditionerHandle_t const obj)
Sets the CUDA stream for CUDA related operations.
float32_t scaleCoefficient
Scale pixel intensities. Default is 1.0.
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:79
struct dwDNNTensorObject * dwDNNTensorHandle_t
Handles representing Deep Neural Network interface.
Definition: Tensor.h:57
NVIDIA DriveWorks API: Core Methods
#define DW_API_PUBLIC
Definition: Exports.h:54
DW_API_PUBLIC dwStatus dwDataConditioner_initializeFromTensorProperties(dwDataConditionerHandle_t *const obj, dwDNNTensorProperties const *const outputProperties, uint32_t const maxNumImages, dwDataConditionerParams const *const dataConditionerParams, cudaStream_t const stream, dwContextHandle_t const ctx)
Initializes a DataConditioner module.