← 返回信息流
GitHub 热榜GitHub Trending · 日·2 小时前

ESPectre: 基于Wi-Fi频谱分析(CSI)的运动检测系统

原标题:francescopace/espectre
Python8,029 stars+112 今日

速览

该项目通过解析Wi-Fi频谱数据(CSI)来捕捉环境中的微小运动,无需佩戴任何设备即可实现精准的运动感知。它专为智能家居场景设计,可与Home Assistant无缝集成,提供隐私保护且低成本的安防或自动化触发方案。

AI 深度解读

这是什么

ESPectre 是一个基于 Wi-Fi 频谱分析(CSI, Channel State Information)的运动检测系统,由开发者 francescopace 在 GitHub 上开源(Python 为主,配合 ESPHome 固件)。该项目利用现有的 2.4GHz Wi-Fi 路由器信号,通过廉价的 ESP32 开发板“监听”环境中的无线电信号变化,从而实现对人员移动的感知。

其最大特色在于原生集成 Home Assistant,通过 ESPHome 实现自动发现与数据上报。项目近期引入了基于神经网络的实验性 ML 检测器,无需校准即可在设备端运行,进一步降低了使用门槛。

解决的问题

传统智能家居中的运动检测主要依赖 PIR(被动红外)传感器或摄像头,二者均存在明显痛点:

  1. 隐私泄露风险:摄像头和麦克风会持续录制音视频数据,引发严重的隐私担忧。
  2. 穿戴负担:针对老人跌倒或健康监测的方案往往需要佩戴手环或传感器,依从性差。
  3. 穿透力与盲区:PIR 传感器无法穿透墙壁,且对静止物体不敏感,存在检测死角。
  4. 配置复杂:传统 Wi-Fi 感知方案往往需要修改路由器底层配置或编写复杂的驱动程序。

ESPectre 通过利用环境中已存在的 Wi-Fi 信号进行非侵入式感知,解决了上述隐私、穿戴和穿透性问题,且无需对路由器进行任何修改。

核心功能

  • 非接触式运动检测:利用 Wi-Fi 多径效应(Multipath Effect),当人体移动时,会扰动 Wi-Fi 信号在空间中的传播路径,ESPectre 通过分析 CSI 数据的变化来识别运动。
  • 双模式检测引擎
    • 传统 MVS 模式:基于 NBVI(Normalized Band Variance Index)算法,自动选择 12 个最优子载波进行方差分析,无需手动校准,F1 分数可达 96% 以上。
    • ML 神经网络模式:实验性功能,直接在 ESP32 设备端运行轻量级神经网络,无需启动时的 10 秒静默校准,适合对响应速度要求高的场景。
  • Home Assistant 原生集成
    • 自动发现设备,生成二进制传感器(Binary Sensor)用于状态上报(空闲/运动)。
    • 提供“移动评分”传感器(Movement Score),允许用户通过调整阈值来微调灵敏度。
    • 支持边缘驱动的状态切换(Edge-driven IDLE ↔ MOTION),减少误报。
  • 自适应信号处理
    • Gain Lock:锁定硬件增益,稳定测量基准。
    • Hampel 滤波器:默认启用,用于去除信号中的湍流异常值。
    • 低通滤波:可选启用,用于平滑噪声。

亮点 / 与同类相比

  • 极致隐私保护:完全不采集图像、音频或个人身份信息,仅处理 Wi-Fi 射频信号的幅度与相位统计特征。
  • 超低硬件成本:核心传感器仅需一个 ESP32 开发板(推荐 ESP32-S3 或 C6),成本约 10 欧元,远低于专用雷达传感器或摄像头。
  • 零路由器配置:无需修改路由器固件或设置,传感器仅作为“听众”被动接收信号,兼容所有支持 2.4GHz Wi-Fi 的路由器,包括 Mesh 网络。
  • 穿墙能力:2.4GHz Wi-Fi 信号可穿透石膏板等常见墙体,单个传感器可覆盖约 50 平方米区域,适合多房间部署。
  • 极简上手体验:无需编程知识,仅需 YAML 配置文件。通过 ESPHome 界面或 App 即可烧录固件并配置 Wi-Fi,10-15 分钟即可完成部署。

适合谁用 / 上手

适合人群:

  • Home Assistant 用户:希望在不增加摄像头隐私风险的前提下,实现全屋智能自动化(如人来灯亮、人走关空调)。
  • 隐私敏感用户:对家中监控有顾虑,希望实现无感知的存在检测。
  • 独居老人/儿童看护者:用于监测长时间无活动(可能跌倒)或夜间离床报警。
  • 极客与开发者:对 Wi-Fi CSI 技术感兴趣,希望进行低成本智能家居实验。

上手指南:

  1. 硬件准备:购买 ESP32-S3 或 ESP32-C6 开发板(建议带外置天线接口),以及一个普通的 2.4GHz Wi-Fi 路由器。
  2. 软件环境:确保已部署 Home Assistant,并安装 ESPHome 集成。
  3. 配置烧录
    • 下载项目中的 YAML 配置示例。
    • 根据 SETUP.md 指南,在 ESPHome 中填入 Wi-Fi 信息。
    • 烧录固件到 ESP32 设备。
  4. 部署与调优
    • 将传感器放置在距离路由器 3-8 米、高度 1-1.5 米的位置,避免金属遮挡。
    • 若使用 MVS 模式,设备启动后需保持环境静止 10 秒以完成自动校准;若使用 ML 模式则跳过此步。
    • 在 Home Assistant 中根据实际环境调整 segmentation_threshold 阈值,以平衡灵敏度与误报率。
查看原文 →github.com