博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于毫米波的远距离手势识别
阅读量:2085 次
发布时间:2019-04-29

本文共 1967 字,大约阅读时间需要 6 分钟。

背景介绍

基于毫米波的远距手势识别可应用于智能家居、智能音箱等物联网设备应用场景下:当用户在远处做某些特定的手势时,实时系统可以自动识别并响应该手势。

该研发的基本原理是系统通过毫米波在身体上的反射信号来采集每一瞬间人体的动作行为,并学习信号随时间变化与这些行为之间的匹配关系,从而获得对不同手势的识别能力。

因此,该研发可以实现很多便捷有趣的用户体验:例如,用户站在卧室中央挥手,窗帘将自动关闭/打开;用户在书房一侧在空中连敲两下,音箱将自动切换背景音乐,为用户提供一个更加适宜办公的环境。

除此以外,本文关注于应用在手机的自拍功能,即,用户将手机放置在远处,通过几个预先定义好的手势来操作手机,从而实现远焦自拍/远焦合拍等等。

整体架构

远距离手势识别架构

如图所示,毫米波设备先发射天线发射毫米波信号,信号被用户的肢体动作反射,反射信号被毫米波接收天线捕获。之后,毫米波设备将捕获信号进行处理,获得信号的位置信息X、Y、Z,以及Doppler和Intensity的信息,并将这些信息输入神经网络进行学习,通过学习后对用户新动作进行分类预测。这一过程的进一步描述如下:

1)TI-IWR1443毫米波雷达为我们所使用的毫米波发送及接收装置。该设备可以将原始FMCW信号进行预处理后,得到一个帧序列信号,每一帧存在不超过64四个点,每个点有X、Y、Z、Doppler、Intensity,这五种特征值。之后将数据拟合成新的Range-Doppler图进行数据预处理,再提取出新的特征值。

2)利用ResNet神经网络对这些新的特征值进行学习和分类的过程在python中实现,并保存准确度最高的网络模型。

3)由Matlab调用导入好准确度最高的网络模型的python脚本,对新手势的预测,并返还给Matlab一个预测分类结果值。

4)最后,Matlab调用toCamera模块控制相机。每当一个新手势完成分类预测之后,Matlab就会给toCamera发送一个值,根据这个值,toCamera来控制相机进行不同的操作。

matlab模块

神经网络架构

构建一个多分支 CNN 处理特征信息和识别手势如图所示。点云中的每个点包含信息中的五个特征,这些特征可以计算出我们需要的每个反射点的有效信息。因此,卷积神经网络按照特征分为五个层,即 N=(X, Y, Z, V, I)。每一层对应于点的空间坐标,速度和能量强度。首先,我们为每个特征网络建立一个 ResNet 类。 通过 ResNet 层,特征可以进入相应的网络。 但是通过网络提取特征的时空信息,不能完全表示整个手势信息。因此,每次网络计算后的结果进入连接层,在这一层使得每一特征值卷积后结果被组合成最终结果。

  s c r = N ( C a t ( X ( x ) ; Y ( y ) ; Z ( z ) ; V ( v ) ; I ( i ) ) ) \ scr = N(Cat(X(x);Y(y);Z(z);V(v);I(i)))  scr=N(Cat(X(x);Y(y);Z(z);V(v);I(i)))
神经网络

手势设计

本实验目前共设计4种手势,如图所示。

手势1 — 敲打:右手大臂微微前伸,保持不动,右手握拳,掌面与地面垂直。上下活动小臂从而带动右手上下敲击两次。

手势2 — 左划:右手自然打开,手臂沿水平面向左移动,滑动过程中保持虎口打开。

手势3 — 右划:左手自然打开,手臂沿水平面向右移动,滑动过程中保持虎口打开。

手势4 — 旋转:双手握拳,掌面与地面垂直,置于胸前,交替旋转。

手势设计

实时系统流程图

实时系统流程

1)如图所示,一个手势发生后,Ti板子接受到反射信号,生成包含五个特征值X,Y,Z,V(速度),I(能量值)的数据。

2)固定滑动窗口大小为30帧,从头滑至该数据结束,每个滑动窗口出一个预测值pred_return,每次向后滑动一帧。

3)当出现第一个非888的预测值时,意味着该窗口非空,开始进入一条手势。等待半个滑动窗口的时间,使手势数据进入一半左右,再开始累计各个预测值个数。

4)当某个预测值出现次数累计到6次时,判定该预测值为这条手势的预测值。

5)用该预测值调用相机程序toCamera.mat。

拍照应用模块

我们通过Matlab调用webcam来控制相机,相机型号为Logitech Webcam c922。通过传输给该模块的control值的不同而命令相机进行不同的动作。

相机控制

实验结果验证

我们设计了实验来测试在理想条件下模型的离线准确率。具体来说,我们对30名参与者(15名男性和15名女性)进行测试。要求被实验者站在距离雷达2.4米的地方做四个手势,每个手势重复50次。收集所有手势信息后,我们会处理数据并获取相应的离线准确率。最终,我们得到四种手势的平均离线准确率为97.29%

转载地址:http://knvqf.baihongyu.com/

你可能感兴趣的文章
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>
TensorFlow-7-TensorBoard Embedding可视化
查看>>
轻松看懂机器学习十大常用算法
查看>>
一个框架解决几乎所有机器学习问题
查看>>
特征工程怎么做
查看>>
机器学习算法应用中常用技巧-1
查看>>
决策树的python实现
查看>>
了解 Sklearn 的数据集
查看>>
如何选择优化器 optimizer
查看>>
一文了解强化学习
查看>>
CART 分类与回归树
查看>>
seq2seq 的 keras 实现
查看>>
seq2seq 入门
查看>>
什么是 Dropout
查看>>
用 LSTM 做时间序列预测的一个小例子
查看>>
用 LSTM 来做一个分类小问题
查看>>
详解 LSTM
查看>>
按时间轴简述九大卷积神经网络
查看>>
详解循环神经网络(Recurrent Neural Network)
查看>>