日本語
AI版
企業紹介 AI 時代のシステム開発 ブログ お問い合わせ AI向けページ

BLOG

WiFiで壁の向こうが見える — カメラなし人物検知OSS『RuView』をESP32で試す

WiFiの反射(CSI)でカメラなしに人の存在・呼吸・姿勢を推定するRust製OSS『RuView』。9ドルのESP32-S3で組める仕組み、Dockerでの試し方、esp-csiとの違いを整理します。

#WiFi#ESP32#CSI#Rust#OSS#センシング

WiFi信号の反射で壁越しに人の姿勢を検知するRuViewのイメージ

カメラを一切使わず、部屋に飛んでいるWiFiの電波だけで、人の存在・呼吸数・心拍数、さらには体の姿勢まで推定する。SFのような話ですが、これを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は大きく3層に分かれています。

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だけではありません。採用判断のために、代表的な3つを整理します。

espressif/esp-csi

Espressif公式のリポジトリで、ESP32でCSIを取るためのファームウェアとサンプルが中心です。位置づけとしては「CSIの取得と基本サンプル」であり、上位の推論・可視化・運用までは自分で組む前提になります。

  • 強み: 公式・軽量・チップに最も近い、確実にCSIが取れる
  • 弱み: 存在検知や姿勢推定まではカバーしない。土台であって完成品ではない

RuViewは、このesp-csi的な「CSIを取る」レイヤーの上に、推論・可視化・運用を積んだもの、と捉えると関係がすっきりします。

WirelessEye

CSIをリアルタイム可視化することに主眼を置いたツールです。「電波に何が映っているか」をまず目で見たい、という研究・学習フェーズで強い。ただし、そのままプロダクトに組み込む処理基盤という性格ではありません。

RuViewの立ち位置

OSS主眼完成度の性格
esp-csiCSIの取得土台(要自作の上物)
WirelessEyeCSIの可視化観察・学習向け
RuView取得〜推論〜可視化統合プラットフォーム

「まず仕組みを理解したい」ならesp-csiやWirelessEyeで電波を覗くのが早い。「存在・呼吸・姿勢まで一気通貫で試したい」ならRuView、という住み分けです。

採用を検討するときの現実的な注意点

夢のある技術ですが、業務で使うなら冷静な線引きが必要です。

  • 精度は環境依存: 家具の配置、壁の材質、他のWiFi機器の干渉でCSIは大きく変わります。「どんな部屋でも即精度が出る」わけではなく、環境ごとのキャリブレーションが前提になります。
  • カメラの代替ではなく別物: 個人の識別や細かい動作認識はカメラの領分です。CSIが強いのは「誰か」ではなく「いる/動いた/呼吸している」といったプライバシーに配慮した粗い状態把握です。
  • 用途を選ぶ: 高齢者見守り、在室検知による空調・照明制御、就寝中のバイタルモニタなど、カメラを置きたくない場所でこそ真価が出ます。

逆に言えば、この「カメラを置けない/置きたくない」という制約がある現場では、9ドルのESP32で始められるRuViewは非常に魅力的な選択肢です。

まとめ

WiFiセンシングは、専用の高価な機材が必要だった時代から、安価なマイコンとOSSで誰でも試せるフェーズに入りました。RuViewはその「取得から推論・可視化まで」を一つにまとめた、現時点で最も入りやすい入口の一つです。

まずはDockerで動かしてCSIに何が映るのかを体感し、手応えがあればESP32-S3を1枚買って実測に進む — この順番なら、数千円と数時間で「WiFiで壁の向こうが見える」世界に触れられます。

センサーデータの処理基盤や、こうしたエッジデバイスを絡めたプロダクト開発を検討されているなら、株式会社ワイアード&エコ までお気軽にご相談ください。

CONTACT

お問い合わせ

プロジェクトのご相談、お気軽にどうぞ。通常 2 営業日以内にご返信します。