vilari-mickopf / mmwave-gesture-recognition

Basic Gesture Recognition Using mmWave Sensor - TI AWR1642
MIT License
115 stars 21 forks source link

Peak groups in the configuration file #11

Closed hua812586 closed 10 months ago

hua812586 commented 10 months ago

Hello @vilari-mickopf. Thank you very much for making 'mmwave-gesture-recognition' public, I learned a lot.

Use the profile in your project to accurately identify gestures. Now I want to generate different point cloud data by modifying the configuration file, but in the configuration file, there is a peak grouping instruction, I do not understand. And I can't find it in the mmwave_sdk_user_guide.pdf file. So I would like to ask you some questions: 1: What does each number after this instruction mean? 2: How is this algorithm implemented? Mainly, I want to understand the implementation process of this algorithm. 3: Is peak grouping performed on each frame of point cloud individually, or is it done on the accumulated point cloud of all frames? 4: When I modify peakGrouping -1 1 0 0 1 511 to peakGrouping -1 11 11 511, there is only one target point for the hands. 1003

The following error occurred when I removed the peak packet instruction. error.txt

Looking forward to your reply very much.

vilari-mickopf commented 10 months ago

Here is info from mmwave sdk user guide:

Peak grouping config message to datapath.

With peak grouping scheme enabled, instead of reporting a cluster of detected neighboring points, only one point, the highest one, will be reported, this reducing the total number of detected points per frame. Only the points between start and end range index are considered. Detected points falling outside this range are dropped and not shipped out as part of point cloud.

The values in this command can be changed between sensorStop and sensorStart and even when the sensor is running.

This is a mandatory command.

'peakGrouping': {
'subFrameIdx': int,
'groupingMode': int,
'rangeDimEn': int,
'dopplerDimEn': int,
'startRangeIdx': int,
'endRangeIdx': int
}

subFrameIdx

subframe Index (exists only in xwr16xx mmW demo)

groupingMode

1 – MMW_PEAK_GROUPING_DET_MATRIX_BASED

Peak grouping is based on peaks of the neighboring bins read from detection matrix. CFAR detected peak is reported if it is greater than its neighbors, located in detection matrix.

2 – MMW_PEAK_GROUPING_CFAR_PEAK_BASED

Peak grouping is based on peaks of neighboring bins that are CFAR detected. CFAR detected peak is reported if it is greater than its neighbors, located in the list of CFAR detected peaks.

For more detailed look at mmw demo’s doxygen documentation.

rangeDimEn

peak grouping in Range direction: 0 - disabled 1 - enabled

dopplerDimEn

peak grouping in Doppler direction: 0 - disabled 1 - enabled

startRangeIdx

Minimum range index of detected object that should be sent out. Ex: Value of 1 means Skip 0th bin and start peak grouping from range bin#1

endRangeIdx

Maximum range index of detected object that should be sent out. Ex: Value of (Range FFT size -1) means skip last bin and stop peak grouping at (Range FFT size -1)