基于毫米波雷达的手势识别原理
1 Introduction/简介
本文以TI的Gesture UserGuide为参考,简述基于毫米波雷达的手势识别原理。
性能要求
可识别如下6种手势:左划、右划、向上、向下、顺时针、逆时针。
2 FMCW Radar 原理
- Chirp and Frame
FMCW雷达发射的一组Chirp,称为一个“Frame”
- 2D-FFT Grid
对每个天线接收到的数据做2D-FFT,将得到包含距离维和多普勒维的二维网格。网格中的峰值表示在距离下存在目标。
- Angle-FFT
通过处理来自多个RX天线的网格中的相应峰值(“角度FFT”),以获得目标的到达角度。
3 手势识别处理流程
算法流程
- 2D-FFT
对每个接收通道的ADC数据进行处理2D-FFT操作,得到包含距离维和多普勒维的2D-FFT matrix。 - Noncoherent accumulation/非相干累加
对多个接收通道的2D-FFT matrix进行非相干累加,得到Range-Doppler Heat map。 - Feature Extraction/特征提取
在Heat map中提取多个特征,每个特征生成时间序列。 - Feature processing/特征处理
对特定时间窗内提取的特征,通过机器学习算法进行分类,输出对应的手势类别。
技术难点
- 确认目标位置
包括:目标的角度和位置 - 雷达应具有较高的距离分辨率及角度分辨率
在Heat map上尽量为点目标。下图中,由于距离、角度分辨率较低,目标进行了发散,传统的峰值检测技术将不再试用。
- Range-Doppler Heat map中提取特定特征
可以将特征视为从热图提取的单个数值,其值可反映特定参数的加权平均值;如:平均多普勒,平均距离,多普勒扩展等。
其中,雷达的每一帧数据为每个特征生成一个值,通过帧序列得到每个特征的时间序列。 - 识别和分类
对于手势识别,在提取了多个特征后,生成特征的时间序列,利用机器学习方法识别和分类各种手势。
特征提取
-
Weighted Doppler / 加权多普勒
对于每一帧数据的 Heat map,计算手的速度权重。
V = ∑ Z i . D i ∑ Z i V=\frac{\sum{Zi.Di}}{\sum{Zi}} V=∑Zi∑Zi.Di
其中, i i i为所有的距离数据索引, Z i Zi Zi为Range Doppler Image的值, D i Di Di为第 i i i个索引对应的doppler value。 -
Instantaneous Energy / 瞬间能量
检测手的存在
I = ∑ Z i I=\sum{Zi} I=∑Zi
Sum of magnitude of values of RDI data -
Weighted Range / 距离加权
检测手的位置
V = ∑ Z i . R i ∑ Z i V=\frac{\sum{Zi.Ri}}{\sum{Zi}} V=∑Zi∑Zi.Ri
其中, i i i为所有的距离数据索引, Z i Zi Zi为Range Doppler Image的值, R i Ri Ri为第 i i i个索引对应的Range value -
Azimuth Angle \ 水平角度
检测手的水平角度,区分左划和右划手势。 -
Elevation Angle / 俯仰角度
检测手的俯仰角度,区分上划和下划手势。 -
Doppler-Azimuth Correlation / 多普勒方位角相关性
统计特征:水平角度随速度变化,区分逆时针和顺时针手势。
C o r r ( V , A ) Corr(V,A) Corr(V,A)
特征分类
利用机器学习的方法,训练人工神经网络模型,实现手势的分类。
处理流程
4 手势识别及分析
-
左划 / 右划
当手从左向右划动及从右向左划动时, Azimuth Angle 及 Doppler-Azimuth Correlation 均有明显的变化。
-
上划 / 下划
当手从上向下划动及从下向上划动时, Elevation Angle 变化趋势明显相反。
3. 顺时针 / 逆时针
当手顺时针或逆时针转动时,Doppler-Azimuth Correlation分别为正相关和负相关。
参考链接 https://edu.21ic.com/m/video/3815.html
如有任何问题,欢迎私信讨论交流。