BLOG
用 WiFi 看穿牆的另一側 — 在 ESP32 上試用無攝像頭人體檢測 OSS 『RuView』
『RuView』是一款用 Rust 編寫的 OSS,靠 WiFi 反射(CSI)在不用攝像頭的情況下推定人的存在、呼吸與姿勢。本文梳理如何用 9 美元的 ESP32-S3 搭建、如何用 Docker 試用,以及它與 esp-csi 的區別。

完全不使用攝像頭,僅憑在房間裡飛來飛去的 WiFi 電波,就能推定人的存在、呼吸次數、心率,甚至身體的姿勢。這聽起來像科幻,但如今已經發展到能用9 美元的單片機與 OSS來重現的地步了。
處於其核心的是 ruvnet/RuView —— 一個彙集了超過 6 萬顆星的 Rust WiFi 傳感平臺。它把 ESP32-S3 作為傳感器節點,解析 WiFi 電波的「反射模式」,在完全不持有影像的情況下讀取空間的狀態。
本文梳理 RuView 的原理與架構、實際的試用方法,以及它與同類 OSS(espressif/esp-csi、WirelessEye)的區別。目的是為你判斷「是否該在自己的項目中採用」提供依據。
為什麼沒有攝像頭也能「看見」人
關鍵在於 CSI(Channel State Information / 信道狀態信息)。
WiFi 電波並非從發射機一直線地到達接收機。它會撞到牆壁、傢俱,以及人體後反射,經由多條路徑抵達接收機。把「哪個頻率的電波、衰減了多少、相位偏移了多少後抵達」細緻記錄下來的,就是 CSI。
- 人在移動 → 反射路徑改變 → CSI 的波形發生變化
- 人在呼吸 → 胸廓以毫米為單位上下起伏 → CSI 上疊加週期性的微小變動
- 人擺出特定姿勢 → 反射模式中出現固有的「指紋」
也就是說,WiFi 路由器僅僅是在發出電波,就已經在「照亮」房間了。RuView 的定位就是讀取那束反射光(電波)的接收傳感器。由於不像攝像頭那樣持有影像,在隱私層面的牴觸感壓倒性地更小,這正是它最大的優點。
RuView 的架構
RuView 大致分為三層。
1. 傳感器節點(ESP32-S3)
9 美元的 ESP32-S3 承擔吐出 CSI 原始數據的角色。ESP32 系列在芯片層面就具備 CSI 獲取 API,因此無需購買專用的 SDR(軟件定義無線電)設備,用市售的廉價單片機就能站在 WiFi 傳感的入口。這一點一舉推進了該領域的民主化。
2. 處理引擎(Rust)
原始 CSI 滿是噪聲。RuView 的本體是用 Rust 編寫的信號處理與推理引擎,在這裡進行以下工作。
- 去噪、相位校正等預處理
- 提取呼吸、心跳這類週期成分
- 用於姿勢與存在檢測的特徵量計算與模型推理
選擇 Rust,想必是為了兼顧實時性與內存安全。對於在邊緣常態運行的信號處理來說,這是合乎道理的選擇。
3. 可視化與 API 層
這是把推定結果經由儀表盤或 API 輸出到外部的層。由於可以用 Docker 整套啟動,先在手邊把握整體樣貌是捷徑。
用 Docker 試用
在深入打磨之前,先看到能跑起來的狀態是理解的捷徑。RuView 是可以用 Docker Compose 一整套啟動的構成。
git clone https://github.com/ruvnet/RuView.git
cd RuView
docker compose up
這樣處理引擎與可視化層就會啟動,可以從瀏覽器訪問儀表盤。這一構成設計成即便手邊沒有實機 ESP32-S3,也可以灌入樣本 CSI 數據來確認其行為,所以若想體感「究竟能從 CSI 中讀出什麼」,從這裡開始是最短路徑。
要實際進行傳感,則需進一步:把固件寫入 ESP32-S3,並把 CSI 流朝引擎發送。到了這一階段,「牆那頭的呼吸」才終於以數字的形式呈現出來。
與 esp-csi / WirelessEye 的區別
WiFi 傳感類 OSS 並非只有 RuView。為了便於採用判斷,這裡梳理有代表性的三款。
espressif/esp-csi
這是 Espressif 官方的倉庫,以在 ESP32 上獲取 CSI的固件與樣本為中心。其定位是「CSI 的獲取與基礎樣本」,上層的推理、可視化、運維則以自行搭建為前提。
- 優勢:官方、輕量、最貼近芯片,能可靠地取到 CSI
- 弱點:不涵蓋存在檢測或姿勢推定。它是地基,而非成品
把 RuView 理解為在這種 esp-csi 式「獲取 CSI」層的之上,疊加了推理、可視化與運維,兩者的關係就一目瞭然了。
WirelessEye
這是一款以實時可視化 CSI 為主旨的工具。在「電波里映出了什麼」想先用眼睛看看的研究與學習階段很強。不過它並非那種能原樣嵌入產品的處理基礎設施。
RuView 的定位
| OSS | 主旨 | 完成度的性質 |
|---|---|---|
| esp-csi | CSI 的獲取 | 地基(上層需自制) |
| WirelessEye | CSI 的可視化 | 觀察、學習向 |
| RuView | 獲取〜推理〜可視化 | 一體化平臺 |
若「想先理解原理」,用 esp-csi 或 WirelessEye 窺看電波會更快。若「想把存在、呼吸、姿勢一氣貫通地試一遍」,那就選 RuView,這就是它們的分工。
考慮採用時的現實注意點
這是一項富有夢想的技術,但若要用於業務,就需要冷靜地劃清界限。
- 精度依賴環境:傢俱的擺放、牆壁的材質、其他 WiFi 設備的干擾,都會讓 CSI 大幅變化。並非「在任何房間都能立刻出精度」,逐環境的校準是前提。
- 不是攝像頭的替代,而是另一回事:個人識別與細緻的動作識別是攝像頭的領域。CSI 擅長的不是「是誰」,而是「有人/動了/在呼吸」這類顧及隱私的粗略狀態把握。
- 要挑用途:老年人守護、通過在室檢測進行的空調與照明控制、睡眠中的生命體徵監測等,正是在不想放攝像頭的地方才顯出真正的價值。
反過來說,在這種存在「無法放/不想放攝像頭」約束的現場,能用 9 美元 ESP32 起步的 RuView 是非常有吸引力的選項。
總結
WiFi 傳感已從需要專用昂貴設備的時代,進入了用廉價單片機與 OSS 誰都能試的階段。RuView 把「從獲取到推理與可視化」匯於一體,是當下最容易上手的入口之一。
先用 Docker 跑起來體感 CSI 裡映出了什麼,若有手感就買一塊 ESP32-S3 進入實測 —— 按這個順序,幾千日元與幾個小時就能觸及「用 WiFi 看穿牆的另一側」的世界。
如果你正在考慮傳感數據的處理基礎設施,或涉及此類邊緣設備的產品開發,歡迎隨時向 株式會社 Wired & Eco 諮詢。