DriveWorks SDK Reference
5.6.215 Release
For Test and Development only

FeatureDetector.h
Go to the documentation of this file.
1
2//
3// Notice
4// ALL NVIDIA DESIGN SPECIFICATIONS AND CODE ("MATERIALS") ARE PROVIDED "AS IS" NVIDIA MAKES
5// NO REPRESENTATIONS, WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO
6// THE MATERIALS, AND EXPRESSLY DISCLAIMS ANY IMPLIED WARRANTIES OF NONINFRINGEMENT,
7// MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
8//
9// NVIDIA CORPORATION & AFFILIATES assumes no responsibility for the consequences of use of such
10// information or for any infringement of patents or other rights of third parties that may
11// result from its use. No license is granted by implication or otherwise under any patent
12// or patent rights of NVIDIA CORPORATION & AFFILIATES. No third party distribution is allowed unless
13// expressly authorized by NVIDIA. Details are subject to change without notice.
14// This code supersedes and replaces all information previously supplied.
15// NVIDIA CORPORATION & AFFILIATES products are not authorized for use as critical
16// components in life support devices or systems without express written approval of
17// NVIDIA CORPORATION & AFFILIATES.
18//
19// SPDX-FileCopyrightText: Copyright (c) 2018-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
20// SPDX-License-Identifier: LicenseRef-NvidiaProprietary
21//
22// NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
23// property and proprietary rights in and to this material, related
24// documentation and any modifications thereto. Any use, reproduction,
25// disclosure or distribution of this material and related documentation
26// without an express license agreement from NVIDIA CORPORATION or
27// its affiliates is strictly prohibited.
28//
30
46#ifndef DW_IMAGEPROCESSING_FEATURE_DETECTOR_H_
47#define DW_IMAGEPROCESSING_FEATURE_DETECTOR_H_
48
49#include <dw/core/Config.h>
52#include <dw/core/base/Types.h>
53#include <dw/image/Image.h>
57#include <dw/core/system/PVA.h>
58
59#ifdef __cplusplus
60extern "C" {
61#endif
62
64typedef struct dwFeature2DDetectorObject* dwFeature2DDetectorHandle_t;
65
67typedef struct dwFeature2DDetectorObject const* dwConstFeature2DDetectorHandle_t;
68
75
79
83
86
88typedef enum {
91
95
98
103{
106
109 uint32_t imageWidth;
110
113 uint32_t imageHeight;
114
119
125
127 uint32_t cellSize;
128
131 uint32_t gradientSize;
132
136 uint32_t blockSize;
137
144
151
164
171
178 uint32_t harrisRadius;
179
187 uint32_t NMSRadius;
188
194
200
206
213
220
224
228
234 DW_DEPRECATED("WARNING: will be removed in the next major release")
236
241 DW_DEPRECATED("WARNING: will be removed in the next major release")
243
249
251
261
275 const dwTransformation3f* cameraToRig,
276 dwConstCameraModelHandle_t cameraHandle);
277
291 const dwFeature2DDetectorConfig* config,
292 cudaStream_t cudaStream,
293 dwContextHandle_t context);
294
305
320
340 const uint32_t maskStrideBytes,
341 const uint32_t maskWidth,
342 const uint32_t maskHeight,
344
376 dwImageHandle_t image,
377 dwFeatureArray* preTrackedFeatures,
378 const float32_t* d_normalizedCrossCorrelation,
380
411 const dwPyramidImage* pyramid,
412 dwFeatureArray* preTrackedFeatures,
413 const float32_t* d_normalizedCrossCorrelation,
415
422DW_DEPRECATED("WARNING: will be removed in the next major release, validTrackedCount pointer can be read directly from dwFeatureArray")
424dwStatus dwFeature2DDetector_getValidTrackedCount(const uint32_t** d_validTrackedCount,
426
440
452
466
478
479#ifdef __cplusplus
480}
481#endif
483#endif // DW_IMAGEPROCESSING_FEATURE_DETECTOR_H_
NVIDIA DriveWorks API: Camera Methods
void * cupvaStream_t
Definition: Config.h:77
NVIDIA DriveWorks API: Feature Array and Feature History Array
NVIDIA DriveWorks API: NvMedia Includes
NVIDIA DriveWorks API: Pyramid
NVIDIA DriveWorks API: Core Types
NVIDIA DriveWorks API: Core Methods
NVIDIA DriveWorks API: Core Exports
struct dwCameraModelObject const * dwConstCameraModelHandle_t
A pointer to the handle representing a const calibrated camera.
Definition: CameraModel.h:72
struct dwContextObject * dwContextHandle_t
Context handle.
Definition: Context.h:79
#define DW_DEPRECATED(msg)
Definition: Exports.h:66
#define DW_API_PUBLIC
Definition: Exports.h:54
dwStatus
Status definition.
Definition: Status.h:170
dwProcessorType
Processor type definitions.
Definition: Types.h:168
float float32_t
Specifies POD types.
Definition: Types.h:70
Specifies a 3D rigid transformation.
Definition: Types.h:536
uint32_t imageHeight
Height of the images that the Detector runs on.
float32_t gaussianMaskStDevY
for DW_FEATURE2D_DETECTOR_TYPE_EX only Ignored when not using DW_FEATURE2D_SELECTION_MASK_TYPE_GAUSSI...
bool autoGenerateFeatureID
Determines whether the detector generates unique feature ids for new detections automatically.
uint32_t gradientSize
for DW_PROCESSOR_TYPE_PVA_0 or DW_PROCESSOR_TYPE_PVA_1 only Gradient window size.
bool isMaskAdjustmentEnabled
for DW_FEATURE2D_DETECTOR_TYPE_EX only Switch to use mask adjusment
float32_t gaussianMaskCenterX
for DW_FEATURE2D_DETECTOR_TYPE_EX only Ignored when not using DW_FEATURE2D_SELECTION_MASK_TYPE_GAUSSI...
uint32_t harrisRadius
for DW_FEATURE2D_DETECTOR_TYPE_EX only STD detector use fixed harrisRadius = 1.
uint32_t maxFeatureCount
Upper bound on number of features handled.
float32_t gaussianMaskCenterY
for DW_FEATURE2D_DETECTOR_TYPE_EX only Ignored when not using DW_FEATURE2D_SELECTION_MASK_TYPE_GAUSSI...
uint32_t cellSize
Cell size in pixel to split the image into cells.
uint32_t blockSize
for DW_PROCESSOR_TYPE_PVA_0 or DW_PROCESSOR_TYPE_PVA_1 only Block window size used to compute the Har...
uint32_t imageWidth
Width of the images that the Detector runs on.
bool useHalf
for DW_FEATURE2D_DETECTOR_TYPE_EX only use half-precision floating point to calculate harris corner s...
dwFeature2DSelectionMaskType maskType
for DW_FEATURE2D_DETECTOR_TYPE_EX only STD detector always output UNIFORM distribution.
uint32_t NMSRadius
for DW_FEATURE2D_DETECTOR_TYPE_EX and DW_FEATURE2D_DETECTOR_TYPE_FAST9 STD detector use fixed NMSRadi...
uint32_t detectionLevel
for DW_FEATURE2D_DETECTOR_TYPE_EX only STD detector always detects on level 0 pyramid image.
float32_t gaussianMaskStDevX
for DW_FEATURE2D_DETECTOR_TYPE_EX only Ignored when not using DW_FEATURE2D_SELECTION_MASK_TYPE_GAUSSI...
dwProcessorType processorType
for DW_FEATURE2D_DETECTOR_TYPE_STD only set to DW_PROCESSOR_TYPE_PVA_0 or DW_PROCESSOR_TYPE_PVA_1 to ...
dwFeature2DDetectorType type
Detecting algorithm defined by dwFeature2DDetectorType
uint32_t numEvenDistributionPerCell
for DW_FEATURE2D_DETECTOR_TYPE_STD only Number of features to be appended after high frequency points...
bool useNewToOldMapFromPreTracked
Determines whether the detector uses dwFeatureArray::newToOldMap directly from input preTrackedFeatur...
float32_t detailThreshold
for DW_FEATURE2D_DETECTOR_TYPE_STD only features in the cell that have scores higher than this value ...
float32_t harrisK
Weigting K of the harris corner score defined as det(M) - K * trace(M) * trace(M),...
float32_t scoreThreshold
Threshold to filter out low latency points.
DW_API_PUBLIC dwStatus dwFeature2DDetector_initDefaultParamsForCamera(dwFeature2DDetectorConfig *params, const dwTransformation3f *cameraToRig, dwConstCameraModelHandle_t cameraHandle)
Initializes dwFeature2DDetector parameters with values best suited for the given camera using camera ...
DW_API_PUBLIC dwStatus dwFeature2DDetector_getValidTrackedCount(const uint32_t **d_validTrackedCount, dwFeature2DDetectorHandle_t obj)
dwFeature2DDetector_getValidTrackedCount
DW_API_PUBLIC dwStatus dwFeature2DDetector_detectFromPyramid(dwFeatureArray *outputDetections, const dwPyramidImage *pyramid, dwFeatureArray *preTrackedFeatures, const float32_t *d_normalizedCrossCorrelation, dwFeature2DDetectorHandle_t obj)
Detects new features and append them after old tracked features.
DW_API_PUBLIC dwStatus dwFeature2DDetector_setPVAStream(cupvaStream_t stream, dwFeature2DDetectorHandle_t obj)
Sets the CUPVA stream for PVA related operations.
DW_API_PUBLIC dwStatus dwFeature2DDetector_getCUDAStream(cudaStream_t *stream, dwFeature2DDetectorHandle_t obj)
Gets the CUDA stream used by the feature Detector.
struct dwFeature2DDetectorObject const * dwConstFeature2DDetectorHandle_t
Handle representing a const feature detector.
DW_API_PUBLIC dwStatus dwFeature2DDetector_setCUDAStream(cudaStream_t stream, dwFeature2DDetectorHandle_t obj)
Sets the CUDA stream for CUDA related operations.
DW_API_PUBLIC dwStatus dwFeature2DDetector_detectFromImage(dwFeatureArray *outputDetections, dwImageHandle_t image, dwFeatureArray *preTrackedFeatures, const float32_t *d_normalizedCrossCorrelation, dwFeature2DDetectorHandle_t obj)
Detects new features and append them after old tracked features.
DW_API_PUBLIC dwStatus dwFeature2DDetector_release(dwFeature2DDetectorHandle_t obj)
Releases the feature Detector.
DW_API_PUBLIC dwStatus dwFeature2DDetector_setMask(const uint8_t *d_mask, const uint32_t maskStrideBytes, const uint32_t maskWidth, const uint32_t maskHeight, dwFeature2DDetectorHandle_t obj)
Sets a mask to ignore areas of the image.
DW_API_PUBLIC dwStatus dwFeature2DDetector_reset(dwFeature2DDetectorHandle_t obj)
Resets a feature Detector.
DW_API_PUBLIC dwStatus dwFeature2DDetector_initDefaultParams(dwFeature2DDetectorConfig *params)
Initializes dwFeature2DDetector parameters with default values.
DW_API_PUBLIC dwStatus dwFeature2DDetector_getPVAStream(cupvaStream_t *stream, dwFeature2DDetectorHandle_t obj)
Gets the CUPVA stream used by the feature Detector.
const uint32_t DW_FEATURES2D_DETECTOR_MAX_CELL_SIZE
DW_API_PUBLIC dwStatus dwFeature2DDetector_initialize(dwFeature2DDetectorHandle_t *obj, const dwFeature2DDetectorConfig *config, cudaStream_t cudaStream, dwContextHandle_t context)
Creates and initializes a feature Detector.
struct dwFeature2DDetectorObject * dwFeature2DDetectorHandle_t
Handle representing a feature detector.
dwFeature2DDetectorType
Defines different KLT tracking algorithms.
dwFeature2DSelectionMaskType
Feature distribution mask for extended detector.
@ DW_FEATURE2D_DETECTOR_TYPE_COUNT
@ DW_FEATURE2D_DETECTOR_TYPE_STD
Standard Harris Corner detector with fixed parameters, quicker.
@ DW_FEATURE2D_DETECTOR_TYPE_FAST9
Fast corner detector, quicker.
@ DW_FEATURE2D_DETECTOR_TYPE_EX
Extended Harris Corner detector with more configurable parameters, more flexible, better quality but ...
@ DW_FEATURE2D_SELECTION_MASK_TYPE_GAUSSIAN
output feature in 2D gaussian distribution which has more features in center area and less ones in bo...
@ DW_FEATURE2D_SELECTION_MASK_TYPE_UNIFORM
output feature in uniform distribution
@ DW_FEATURE2D_SELECTION_MASK_TYPE_COUNT
Holds configuration parameters for a feature detector.
struct dwImageObject * dwImageHandle_t
Definition: Image.h:109
Pyramid image structure.
Definition: Pyramid.h:65
NVIDIA DriveWorks API: Image Conversion and Streaming Functionality