The feature extraction based on range-doppler heatmap computes features generated out of range doppler heatmap along with elevation and azimuth indices. The elevation and azimuth indices calculation is done after the AoA (Angle of Arrival) FFT. This is mentioned in section 9.5 of Gesture_Recognition_Demo_documentation.pdf. Along with these we calculate some hybrid metrics by accumulating across the frames. Therefore 16-features (along with hybrid metrics) that are computed include:
[1] Dopler Average: Weighted average of the Doppler across the heatmap.
[2] Dopler Positive Average: Weighted average of the Doppler – averaged only across positive Dopplers in the heatmap.
[3] Dopler Positive Average: Weighted average of the Doppler – averaged only across negative Dopplers in the heatmap.
[4] Range Average: Weighted average of the range across the heatmap.
[5] Number of detected points: number of cells in the heatmap that have a magnitude above a certain threshold.
[6] Azimuth Weighted Mean: Select the N cells of the heat-map with the highest magnitude and for each cell compute the azimuth bin (via angle-FFT). The average azimuth is the weighted average of all these azimuth bin indices.
[7] Elevation Weighted Mean: Select the N of the heat-map with the highest magnitude and for each cell compute the elevation bin (via angle-FFT). The average elevation is the weighted average of all these elevation bin indices.
[8] Azimuth Weighted dispersion: This captures the dispersion (or weighted standard deviation of the cells that were used to compute the Azimuth Weighted Mean.
[9] Elevation Weighted dispersion: This captures the dispersion (or weighted standard deviation of the cells that were used to compute the Elevation Weighted Mean.
[10] Doppler Azimuth Correlation: Doppler Azimuth correlation which show how Doppler and Azimuth values are related across the frames.
[11] Doppler Elevation Correlation: Doppler Elevation correlation which show how Doppler and Elevation values are related across the frames.
[12] Doppler Positive Negative Correlation: Doppler Positive Negative correlation which show how Doppler Positive and Negative values are related across the frames.
[13] Doppler Positive Azimuth Correlation: Doppler Positive Azimuth correlation which show how Doppler Positive and Azimuth values are related across the frames.
[14] Doppler Positive Eelvation Correlation: Doppler Positive Elevation correlation which show how Doppler Positive and Elevation values are related across the frames.
[15] Doppler Negative Azimuth Correlation: Doppler Negative Azimuth correlation which show how Doppler Negative and Azimuth values are related across the frames.
[16] Doppler Negative Elevation Correlation: Doppler Positive Elevation correlation which show how Doppler Positive and Elevation values are related across the frames.
The structures to be used by the user are well-commented in the featExtract.h file.
Description: Feature extraction create function. It allocates memory to store its internal data object, assign the config to internal parameters and returns a handle if it executes successfully.
Parameters:
initCfg – config Pointer to initial configuration parameter.
errCode – errCode Pointer to errCode generates by the API.
Return values:
Success = valid handle
Error != 0: NULL
Description: Feature extraction computation. It computes the features from range-doppler heatmap using computeFeatures_rangeDoppler function, computeFeatures_azimElev function and hybrid metrics using computeFeatures_hybrid function.
Parameters:
handle – featExtract handle.
detMatrix – Pointerto range-doppler heatmap.
frame_no – frame number based on which hybrid metrics will be calculated.
featOut – Pointer to output extracted features.
Return values:
None
Description: feature extraction library deinit/deletion
Parameters:
handle – featExtract handle.
Return values:
None
The entire feature extraction of 16-features on M4F takes ~1.2ms.