承接前文:室内毫米波雷达的应用思考(一),继续来聊聊室内毫米波雷达的应用,本文仅个人观点,不作为实际参考。
一、室内毫米波雷达的难度
室内毫米波雷达看起来体积小,硬件结构简单,但实际做起来还是很有难度的,不能因为雷达的尺寸很小就轻视了它的复杂程度。工程应用的本质还是希望采用最便宜的东西做出最稳定的产品,才有利润可图。
在具体实现上:
(1)采用最巧妙的算法方案,主要是算力要低,算法性能还要很好。
(2)硬件成本要低,配合低算力处理器完成实时性和准确度之间的平衡。
(3)工程落地上需要面对很多潜在问题需要解决,比如各种干扰、盲区、误报、漏报等问题。
(4)室内环境复杂,目标也各有不同的特点,雷达处理算法的性能要好。
(5)硬件的一致性问题也比较关键。虽然看起来毫米波雷达体积很小,但是一些厂家做出来的板子,性能的一致性不是很好,有的板子信号质量好一些,有的板子信号质量差一些。另外,电源杂散也容易遇到。
(6)前些年大家都做单个功能的研发,比如人体存在检测就是单纯的人体存在检测功能,后续大家向着多功能集成的方向研发。比如人体存在检测,同时结合手势识别、人数统计、睡眠监测,以及跌倒监测等等。要把这些功能统一集成起来,其实是一个比较难的事情。
(7)某些指标和精度很难上去。
总而言之,面对如此内卷的市场,采用低成本的硬件实现高性能的功能是目前的现状,换句话讲,就是既要马儿跑,又要马儿不吃草。
近三个月以来,博主主要在做人体存在检测雷达、呼吸心率监测雷达、手势识别雷达,以及跌倒监测雷达,下面来谈谈感悟。
二、人体存在检测雷达
24G人体存在检测雷达要实现的功能是完全静止的人体目标、微动人体、大幅度运动的人体的同时感知,且完全静止的人体目标至少4米(参考小米人体存在检测雷达),微动人体和大幅度运动的人体7米,同时角度覆盖范围尽量大一些(110°)。
完全静止的人体目标实现4米,甚至6米的探测不难,目前已经实现,有的甚至能做到8米。但是要保证角度覆盖范围大,同时探测结果稳定,还是有难度的,毕竟天线的增益和波束宽度是矛盾的关系,波束宽度越宽,探测距离越受约束。
探测完全静止的人体,依靠的是探测人体的呼吸引起的身体微动实现的,所以呼吸微弱的人或者背对雷达的人,探测距离还是会受到限制,效果没有人体面向雷达那么好。如果能够探测到人体呼吸的微动,那其实可以进一步实现人体的呼吸频率检测,从而增加人体存在雷达的功能。但是如果距离太远了,心率检测很难实现,除了距离约束之外,还有呼吸引起的谐波太大,即使人体做得很近(1米),能够用24G雷达实现高精度的心率监测也是很难实现稳定的探测。
后面人体存在其实还可以结合睡眠监测和人数统计做更多东西。
信号处理难点:
(1)直流抑制:直流抑制其实不算难点,但人体存在雷达和汽车雷达不同,人体存在雷达需要保留人体呼吸和微动的信息。传统的MTI算法是不行的,难以同时保留静止人体和运动人体的同时探测。
(2)近端泄露:近端泄露会造成前几个距离门出现虚假目标。
(3)干扰:室内的空调、电风扇等运动的物体会引起雷达的误判。
(4)多径效应:如果只检测单个人体,不考虑多个人体的话可以不考虑多径。但是如果要检测多个目标,比如3个人以上的目标,就需要考虑多径,否则人数统计会出现假的目标。
(5)积累增益:一般的人体存在检测只有单发单收,信号处理最多做到速度维FFT,有的甚至仅做了距离维FFT,这时如果增益不够,则需要多帧或者多Chirp积累。
三、呼吸心率监测雷达
呼吸心率监测一直都是一个难点,尤其是实现高精度的心率监测。至少要求探测3米内静坐的人体,且保证呼吸心率都比较稳定,误差可以接受(10%以内)。
常规的相位提取+带通滤波+FFT谱估计的方案大部分人都能做,但是经过实验证明,单纯采用这样的方法难以得到稳定的呼吸心率结果。
看了很多论文,寻找到的可实现方案并不多,一个一个地尝试是必不可少的路。当前我们实现的效果如下视频所示(2min):
未来还是有很多路要走,继续探索,打造更加优秀的产品!呼吸心率是一个比较有突破性的工作,也是一个未来可以持续研究的课题。
信号处理难点:
(1)呼吸谐波抑制:呼吸谐波抑制是心率取得稳定探测的突破点,要么抑制掉,要么避开。
(2)呼吸心率监测的目标距离限制:一般普遍距离都是3米,是否可以更远,且保持稳定精度?比如可以和跌倒雷达结合起来,判断跌倒后人的状态。
(3)人身体微动会影响呼吸心率的精度,一般都是要求人体保持完全静止不动,但是这样会限制雷达的使用场景。呼吸和人体存在集成时,一般要求人体运动时不测呼吸,呼吸时人不要动。
四、手势识别雷达
手势识别是一个比较好玩的东西,我们也尝试玩一玩。人体的手势动作有很多,可以随意定义一些手势(比如上下、左右、前后、转圈),采集一些数据,然后用神经网络训练模型,最后部署到单片机上去,实时跑起来。
手势识别的关键点在于特征提取,特征提取的关键点在于信号处理。只有信号处理过程拿到能够精确代表手势动作的数据,然后提取特征出来,送入到神经网络模型中去,训练出来的模型参数才能获得更高的精度。
有的人不清楚信号处理提取高质量特征对于最终的模型训练很重要,总是给把时间花费在选择复杂网络模型上。其实只要数据的质量够高、样本数据足够多,各种场景都覆盖到,对于网络模型的要求并不是要很复杂的架构,毕竟单片机不能支持计算。
信号处理难点:
(1)特征提取:距离、速度、水平角度、俯仰角度,用于代表手势的特征。获取这些值并不是难点,难度是获取比较精确的值。比如测角可以采用波束形成,速度可以用加权多普勒平均值。
(2)人体微动干扰:如果人体在手势识别检测的覆盖范围内,需要区分是手势运动还是人体运动,否则会引起误判。
五、跌倒监测雷达
跌倒监测和手势识别其实有相似之处,可以共用一套算法,只是输入的数据不同。其实我一直在纠结是通过做异常识别,还是做已知类识别。后续想想还是先从已知类识别开始做起,这样就能够移植手势识别的算法来用。
跌倒雷达对于输入的数据要求很高,常见的数据如4D点云,需要密度越高越好,最好是能够描绘出人体的轮廓,但是目前市场上的雷达芯片很难做到。退而求其次,能够大致描绘出人体的高度、宽度、手臂、脚也可以做跌倒监测,那这样的压力就给到了神经网络了。但是网络的复杂度又不能太高,否则处理器很吃力。
后续跌倒雷达考虑结合呼吸心率,以及手势识别做集成。比如跌倒后用手势识别发出求救信号,然后同时雷达监测人体生物体征,虽然听起来有些瞎扯淡,先做出来再说,万一还真有需求呢。
好了,本次的分享到此结束,感谢大家抽空阅读。后续继续做东西,能够有新的思考和读者探讨。
要实实在在地去做,才有深刻的感悟!由于个人能力有限,本文若有不妥之处,还请指正!