超声波运动传感技术解析
去年秋季,某机构推出了基于超声波的运动检测功能,使智能语音助手用户能够在检测到(或未检测到)特定类型运动时启动预设动作序列。例如,当检测到用户设备附近有运动时(表示有人进入房间),可配置自动开灯、播放音乐或播报天气交通信息。
运动检测技术种类繁多,但选择超声波是因为其在弱光甚至黑暗环境中有效,且与无线电波不同,超声波不会穿透干墙,因此能降低误检其他房间运动的概率。
在现有硬件上实现该技术需要多方面的创新:通过充分采样长尾数据减少误报;设计自校准功能适应商用硬件差异;在并发超声波检测与音乐播放时过滤失真。下文将详细说明。
超声波存在检测原理
通过设备扬声器发射超声波信号(≥32 kHz),并监测麦克风接收信号的变化来检测运动。超声波传感器可分为多普勒传感和飞行时间传感两类。
多普勒传感通过检测信号频谱中的频移(由运动物体反射引起)来识别运动,这种频移类似于警车驶近或远离时听到的声频变化。飞行时间传感则通过监测反射信号到达时间的变化来检测环境变化。选择多普勒传感是因其运动检测信号稳健,且能同时处理设备播放音频与否的情况。
多普勒频移信号强度受目标距离、大小、吸收系数、房间吸声特性甚至温湿度影响。当人在封闭空间移动时,不仅会因身体各部分不同方向速度运动产生多重多普勒分量,还会因反射出现分量重复。因此接收信号并非简单的频移单音,实际观测信号更为复杂。
移动物体(如风扇、窗帘)会产生自身多普勒频移,需被排除因它们不一定表示人员存在。下图两组频谱图分别显示仅有旋转落地扇的房间及同时有人类运动的情况,两者难以区分。
这些复杂性意味着传统信号处理不足以从多普勒频移信号识别人体运动,因此改用能识别信号中更异构模式的深度学习技术。
算法架构概览
超声波存在检测算法的高级框图如下:发射端通过设备扬声器发射取决于设备和环境的最优超声波信号,该信号经运动物体反射后由设备麦克风阵列捕获,经预处理后传递至基于神经网络的分类器进行运动检测。
误报处理
最大算法挑战是在保持高检测精度的同时降低误报率。因AI长尾问题(众多罕见事件可能误导检测器但训练数据中代表不足),降低误报尤为困难。
解决方案包括:首先用少量数据训练种子模型,利用该模型筛选大量数据提取罕见事件;其次用基于罕见事件数据的模型在内部数据收集中自动捕获罕见事件。通过这些方法获取的数据最终帮助解决长尾问题,实现极低误报率。
部署挑战
部署训练模型带来新挑战:需以最低发射水平实现超声波存在检测,同时保持足够检测范围,且无额外硬件成本(使用设备现有麦克风和扬声器而非专用超声发射器)。此外决定支持持续运动检测,即使用户从设备扬声器播放音乐也能检测运动。最后添加算法改善仅轻微运动时的用户体验,并投入大量努力支持降低设备功耗的目标。
硬件差异与环境条件
使用设备扬声器和麦克风进行超声传输和传感需管理可变声学特性。量产设备存在振幅和相位响应差异,且难以在不影响良率下控制扬声器在超声频段的响应。为管理这些硬件和环境变化,设计自动设备校准模块,根据设备硬件特性和使用房间的声学特性调整发射频率和水平,从而在不增加设备成本下提供一致用户体验。
并发音乐播放的传感
音乐播放是设备的核心使用场景,但使用设备扬声器同时播放音乐和发射超声波带来挑战。具体而言,当低频音乐内容(如低音)与超声波信号同时播放时,失真会以噪声形式出现在超声区域。这种噪声对听众不可闻,但干扰用于传感的频率。
为增强超声波信号并在并发音乐时获得合理范围性能,开发自适应算法,利用失真和运动特征在不同麦克风上的幅度和相位差异来识别和去除失真。
主要与次要运动
人体运动可分为主要和次要运动。主要运动包括走入或穿过区域,次要运动包括坐姿伸手拿电话、翻书、打开文件夹和端起咖啡杯。检测次要运动困难因其超声频谱信噪比远低于主要运动,而检测低信噪比事件常导致高误报率。但同时检测次要运动对识别用户进入房间后的持续存在至关重要。
开发根据上下文(如自上次主要运动经过的时间)调整检测器灵敏度的算法。用户走入房间后,设备以高灵敏度运行检测次要运动以持续感知存在,从而同时实现高运动灵敏度和低误报率。
低功耗模式
降低功耗是重要目标,因此解决方案在低功耗数字信号处理器上实现。这需要大量代码和神经网络架构优化。
具体而言,数字信号处理器作为实时系统有严格计算调度和预算,限制了部署更深神经网络模型,但通过将神经模型与定制数字信号处理器实现结合,以检测延迟(约50毫秒)换取更高准确度。此外,在非必要时禁用超声发射,例如检测到存在后设定时间段内禁用发射。
远场超声波运动传感在设备上的推出是令人兴奋的进展,将使用户能轻松自动化日常需求。期待为用户创造更多价值。
致谢:特别感谢Tarun Pruthi对本文章的贡献。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
公众号二维码

44

被折叠的 条评论
为什么被折叠?



