RadarTargetProcessing#

Functions#

NVCVStatus pvaTargetProcessingCreate(NVCVOperatorHandle *handle, NVCVTensorRequirements const *const detectionListTensorRequirements, NVCVTensorRequirements const *const targetIndexMapTensorRequirements, NVCVTensorRequirements const *const targetAnglesTensorRequirements, NVCVTensorRequirements const *const ddmDopplerOffsetsTensorRequirements, NVCVTensorRequirements const *const targetListTensorRequirements, NVCVTensorRequirements const *const nciTensorRequirements, PVATargetProcessingParams const *const params)

Constructs an instance of the Target Processing operator.

NVCVStatus pvaTargetProcessingSubmit(NVCVOperatorHandle handle, cudaStream_t stream, NVCVTensorHandle const targetCount, NVCVTensorHandle const detectionCount, NVCVTensorHandle const detectionList, NVCVTensorHandle const targetIndexMap, NVCVTensorHandle const targetAngles, NVCVTensorHandle const ddmDopplerOffsets, NVCVTensorHandle const nci, NVCVTensorHandle targetList)

Submits the Target Processing operator to a CUDA stream.

NVCVStatus pvaTargetProcessingSubmit(NVCVOperatorHandle handle, cupvaStream_t stream, NVCVTensorHandle const targetCount, NVCVTensorHandle const detectionCount, NVCVTensorHandle const detectionList, NVCVTensorHandle const targetIndexMap, NVCVTensorHandle const targetAngles, NVCVTensorHandle const ddmDopplerOffsets, NVCVTensorHandle const nci, NVCVTensorHandle targetList)

Submits the Target Processing operator to a cuPVA stream.

Functions#

NVCVStatus pvaTargetProcessingCreate(
NVCVOperatorHandle *handle,
NVCVTensorRequirements const *const detectionListTensorRequirements,
NVCVTensorRequirements const *const targetIndexMapTensorRequirements,
NVCVTensorRequirements const *const targetAnglesTensorRequirements,
NVCVTensorRequirements const *const ddmDopplerOffsetsTensorRequirements,
NVCVTensorRequirements const *const targetListTensorRequirements,
NVCVTensorRequirements const *const nciTensorRequirements,
PVATargetProcessingParams const *const params,
)#

Constructs an instance of the Target Processing operator.

The operator performs Range-Velocity (RV) decoupling and Cartesian coordinate computation for detected radar targets. It consumes detection list indices, a per-target detection index map, DOA angles (and optional NCI for quadratic interpolation) and writes a complete target list: velocity, range, angles, Cartesian coordinates, and optional peak power.

Limitations:

 The maximum number of detections and targets is 8192.
 The maximum number of DDM Doppler folds is 32.

Parameters:
  • handle[out] Where the operator instance handle will be written to.

    • Must not be NULL.

  • detectionListTensorRequirements[in] Detection list tensor requirements

    • Data Layout: [HW] — H: number of detections (numDetections); W: 2 (rangeIdx, dopplerIdx)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_S32

  • targetIndexMapTensorRequirements[in] Target index map tensor requirements

    • Data Layout: [W] — W: number of targets (numTargets)

    • Rank: 1

    • Data Type: NVCV_DATA_TYPE_S32

    • Description: Maps each target to a detection index; each element is the detection index for that target.

  • targetAnglesTensorRequirements[in] Target angles tensor requirements

    • Data Layout: [HW] — H: 3 (azimuth, elevation, power); W: number of targets (numTargets)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_F32

    • Description: DOA estimation — row 0: azimuth (degrees); row 1: elevation (degrees); row 2: peak power (dB)

  • ddmDopplerOffsetsTensorRequirements[in] DDM Doppler Offsets tensor requirements

    • Data Layout: [W] — W: number of Doppler folds (numDopplerFolds)

    • Rank: 1

    • Data Type: NVCV_DATA_TYPE_F32

  • targetListTensorRequirements[in] Target list tensor requirements

    • Data Layout: [HW] — H: 7 (without peak power) or 8 (with peak power); W: number of targets (numTargets)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_F32

    • Description: Target rows — 0: velocity (m/s); 1: range (m); 2: azimuth (degrees); 3: elevation (degrees); 4: X (m); 5: Y (m); 6: Z (m); 7: optional peak power (dB)

  • nciTensorRequirements[in] NCI final output tensor requirements (optional, can be NULL)

    • Data Layout: [HW] — H: number of range bins (numRangeBins); W: number of folded Doppler bins (numFoldedDopplerBins)

    • Rank: 2

    • Data Type: NVCV_DATA_TYPE_U32

    • Description: NCI power for quadratic interpolation (sub-bin range and Doppler). If NULL, interpolation is off. Required when params->enableQuadraticInterpolation is true.

  • params[in] Pointer to the Target Processing parameters. PVATargetProcessingParams.

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null or some parameter is outside valid range.

  • NVCV_ERROR_OUT_OF_MEMORY – Not enough memory to create the operator.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaTargetProcessingSubmit(
NVCVOperatorHandle handle,
cudaStream_t stream,
NVCVTensorHandle const targetCount,
NVCVTensorHandle const detectionCount,
NVCVTensorHandle const detectionList,
NVCVTensorHandle const targetIndexMap,
NVCVTensorHandle const targetAngles,
NVCVTensorHandle const ddmDopplerOffsets,
NVCVTensorHandle const nci,
NVCVTensorHandle targetList,
)#

Submits the Target Processing operator to a CUDA stream.

Note

CUDA stream support requirements:

  • PVA SDK 2.7.0 or later

  • Jetpack 7 or later

  • DriveOS 7 or later

  • x86 Emulator is not supported

Parameters:
  • handle[in] Handle to the operator.

  • stream[in] Handle to a valid CUDA stream.

  • targetCount[in] Input tensor: Target Count

  • detectionCount[in] Input tensor: Detection Count

  • detectionList[in] Input tensor: Detection List

  • targetIndexMap[in] Input tensor: Target Index Map

  • targetAngles[in] Input tensor: Target Angles

  • ddmDopplerOffsets[in] Input tensor: DDM Doppler Offsets

  • nci[in] Input tensor: NCI (optional, can be NULL)

  • targetList[out] Output tensor: Target List

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.

NVCVStatus pvaTargetProcessingSubmit(
NVCVOperatorHandle handle,
cupvaStream_t stream,
NVCVTensorHandle const targetCount,
NVCVTensorHandle const detectionCount,
NVCVTensorHandle const detectionList,
NVCVTensorHandle const targetIndexMap,
NVCVTensorHandle const targetAngles,
NVCVTensorHandle const ddmDopplerOffsets,
NVCVTensorHandle const nci,
NVCVTensorHandle targetList,
)#

Submits the Target Processing operator to a cuPVA stream.

Parameters:
  • handle[in] Handle to the operator.

    • Must not be NULL.

  • stream[in] Handle to a valid cuPVA stream.

  • targetCount[in] Input tensor: Target Count (also used as detection count for processing) Data Layout: [W] where W=1 Data Type: NVCV_DATA_TYPE_S32

  • detectionCount[in] Input tensor: Detection Count Data Layout: [W] where W=1 Data Type: NVCV_DATA_TYPE_S32

  • detectionList[in] Input tensor: Range-Doppler Detection List Data Layout: [HW] where H=numDetections, W=2 Data Type: NVCV_DATA_TYPE_S32

  • targetIndexMap[in] Input tensor: Target Index Map Data Layout: [W] where W=numTargets Data Type: NVCV_DATA_TYPE_S32

  • targetAngles[in] Input tensor: Target Angles from DOA Data Layout: [HW] where H=3, W=numTargets Data Type: NVCV_DATA_TYPE_F32

  • ddmDopplerOffsets[in] Input tensor: DDM Doppler Offsets Data Layout: [W] where W=numDopplerFolds Data Type: NVCV_DATA_TYPE_F32

  • nci[in] Input tensor: NCI (optional, can be NULL for no quadratic interpolation) Data Layout: [HW] where H=numRangeBins, W=numFoldedDopplerBins Data Type: NVCV_DATA_TYPE_U32

  • targetList[out] Output tensor: Target List (complete target information) Data Layout: [HW] where H=7 or 8, W=numTargets Data Type: NVCV_DATA_TYPE_F32

Return values:
  • NVCV_ERROR_INVALID_ARGUMENT – Handle is null.

  • NVCV_ERROR_INTERNAL – Internal error in the operator, invalid types passed in.

  • NVCV_SUCCESS – Operation executed successfully.