2026年05月20日
May 2026 — 技術ブログ
S・K · 2026.05
こんにちは、新入社員のS・Kです。
カメラを一切使わず、自宅にあるふつうの WiFi 信号だけで、室内の人の動き・姿勢・呼吸数をリアルタイムに検知する——それを実現しようとしているのが、オープンソースプロジェクト RuView(ruvnet/RuView)です。
「WiFi を目の代わりにする」というアイデアは以前から学術研究の世界に存在していましたが、RuView はそれを低コストなエッジハードウェアと Rust 実装によって現実的な形に落とし込んでいます。今回はこのプロジェクトの仕組みを、技術的な背景も含めて順を追って整理していきます。
RuView の核心は、WiFi のチャネル状態情報(Channel State Information, CSI)を解析することで人体の存在・姿勢・バイタルサインを検知するエッジ AI システムです。2026 年 2 月末の公開後、急速に注目を集め、現在は GitHub で 60,000 以上のスターを獲得しています。主な機能は以下の 4 つです。
人の存在・移動・活動量を WiFi 電波の乱れだけで判定。30 秒以内に環境へ適応する
呼吸数(0.1〜0.5 Hz)・心拍数(約 1〜2 Hz)を非接触・非装着で継続モニタリング
カーネギーメロン大学の DensePose from WiFi 研究を応用した WiFlow アーキテクチャを採用
映像ゼロ・クラウド通信ゼロ・装着デバイス不要。全データはエッジで処理・完結する
これらの機能がどのように成り立っているのか、まず技術的な土台となる CSI の概念から順に見ていきましょう。
一般的な WiFi デバイスが外部に公開するのは RSSI(受信信号強度)という粗粒度の単一値です。これに対し CSI は、OFDM の各サブキャリアごとの振幅・位相情報を提供します。ESP32-S3 であれば 56 以上のサブキャリアから約 20 Hz のサンプリングレートで完全な CSI データを取得できます。
人体が WiFi 電波の届くエリア内で動くと、電波のマルチパス伝播に微小だが測定可能な乱れが生じます。その乱れのパターンが、動作や生体情報の「指紋」になります。
🌬️ 呼吸:胸腔の周期的な変位が 0.1〜0.5 Hz の CSI 位相変化として現れる
💓 心拍:より高周波(約 1〜2 Hz)の微小な乱れとして検出できる
🤸 肢体の動き:複数のサブキャリアにわたる明瞭な振幅変化として記録される
この信号をどのように処理して出力まで届けるか、データの流れを整理すると次のようになります。
この処理をエッジ端末上で完結させるために、RuView は 5 層構成のアーキテクチャを採用しています。
RuView はすべての処理をエッジ端末上で完結させるため、役割の異なる 5 つの層を積み重ねた構成を採用しています。各層の役割を順に見ていきます。
中心となるハードウェアは ESP32-S3(1 台あたり約 9 ドル)。複数のノードで Mesh を構成し「マルチスタティック感知アレイ」とすることで、複数の角度から CSI の乱れを捉え、姿勢推定の精度を高める。周辺の WiFi アクセスポイントをパッシブに電波の送信源として利用できる点も特徴的だ。
ESP32 のファームウェアは Rust で実装されており、収集した CSI データを UDP でリアルタイムに送信する。軽量な在室検知・転倒検知であれば、サーバーなしでデバイス上のみで動作させることも可能。WiFi Mesh による多ノード協調もサポートしている。
サーバー側の sensing-server が UDP ストリームを受信し、ノイズ除去・位相アンラッピング・ドップラー特徴抽出を行う。ここで重要な役割を担うのが MERIDIAN アルゴリズム(ADR-027)だ。部屋ごとの RF 環境に自動適応することで、訓練時と異なる環境でもモデルが機能する汎化性能を実現している。
推論エンジンには Rust 製のベクトルデータベース RuVector を基盤として採用。アテンション機構が CSI 特徴を身体の各キーポイントに対応づけ、HNSW インデックスのベクトルストアで部屋のフィンガープリントを永続化する。シングルスレッドで 11,665 フレーム/秒のバイタル検知スループットを達成している。
在室検知・バイタルモニタリング・17 点骨格ポーズ・睡眠モニタリング・転倒検知・壁越し感知(多ノード構成時)をリアルタイムで出力する。外部システムとの連携は REST および WebSocket API で行える。
このアーキテクチャで解決されていない課題の一つが、AI モデルの訓練データをどのように用意するかという問題です。次の章では、RuView がカメラなしでどのように学習を実現しているかを見ていきます。
従来の WiFi DensePose 研究では、訓練ラベルを得るために同期カメラとの組み合わせが必要でした。RuView の特徴的な取り組みの一つが、カメラを一切使わない自己教師あり学習方式への移行です。
10 系統のセンサー信号を組み合わせることで弱ラベルを自動生成し、訓練データを作り出します。
📍 RSSI 三角測位 → 頭部のおおよその位置を推定
📡 サブキャリア非対称性 → 腕の向きを識別
🦵 振動特徴 → 脚の動きを検出
さらに MERIDIAN アルゴリズムによる環境適応と組み合わせることで、各デプロイノードがその設置場所固有の RF フィンガープリントを継続的に学習し、時間をかけて精度を自律的に向上させていきます。
仕組みの全体像が見えたところで、実際の技術スタックと開発体制を確認しておきましょう。
| コンポーネント | 言語・技術 |
|---|---|
| 感知サーバー | Rust |
| ESP32 ファームウェア | Rust(主) / C(レガシー) |
| AI バックボーン | Rust(RuVector クレート) |
| エッジモジュール | WASM 65 モジュール |
| Workspace クレート数 | 15 クレート |
| API | REST + WebSocket |
| Claude Code プラグイン | 9 Skills・7 つの /ruview-* コマンド |
RuView はプロジェクト設計の段階から Claude Code を開発フローの中核に据えたオープンソースプロジェクトです。96 本のアーキテクチャ決定記録(ADR)の管理やテスト駆動開発(TDD)計画の実行を AI エージェントが担っており、AI がプロダクト開発の主体的な役割を果たす実例として注目されています。
実際に試してみる場合、実機がなくても Docker でシミュレーション環境を立ち上げることができます。
# オプション A:Docker で即体験(実機不要) docker run -p 3000:3000 -p 3001:3001 -p 5005:5005/udp \ -e CSI_SOURCE=simulated \ ruvnet/wifi-densepose:latest # → http://localhost:3000 でリアルタイムのシミュレーション姿勢を確認 # オプション B:Claude Code プラグイン経由 /plugin marketplace add ruvnet/RuView /plugin install ruview@ruview /ruview-start # 対話形式のセットアップガイドが起動
ただし、実際の導入を検討するにあたっては、現時点での技術的な制約を正確に把握しておく必要があります。
技術的に興味深いプロジェクトだからこそ、公式ドキュメントや独立した評価に基づいた現在の制約を整理しておきます。
⚠️ バイタル推定は Alpha 段階:公式ドキュメントに「Alpha notice」と明記されている。BPM 抽出にはヒューリスティックを用いており、静止・制御された環境でのみ精度が安定する。医療用途には適さない
⚠️ RSSI では姿勢推定・バイタル検知は不可:一般的なノート PC は CSI を取得できないため、これらの機能には CSI 対応ハードウェアが必須
⚠️ 同時追跡人数に上限あり:56 サブキャリアという物理的制約から、1 AP あたりの同時追跡は 3〜5 人が限界。それ以上の環境では多 AP 構成が必要
⚠️ 壁材による信号減衰:コンクリートや金属壁では CSI 信号の品質が大幅に低下する。多ノード配置で部分的に補償できるが、環境依存が大きい
⚠️ 骨格ポーズ推定の精度に疑義あり:独立レビューでは、カメラ監督なしの訓練における PCK@20 スコアが約 2.5%(40 点中 1 点しか正しい位置に入らない水準)と報告されている。壁越し17点骨格推定は開発者自身の環境以外での再現検証が現時点で未公表
2026 年 3 月の独立品質工学分析では、「災害生存者検知」「転倒検知」等の宣言が厳密な検証を欠くとして HIGH リスクと評価されているこれらの制約を踏まえると、プライバシー面での設計思想についても改めて考えておく必要があります。
WiFi センシングはその性質上、プライバシーに関する問いを避けて通れません。RuView は映像データを一切生成しない点でカメラ型センシングとは根本的に異なりますが、一方で人体の動きや生理信号を感知できる以上、ユーザーの知らないうちに追跡に使われうるリスクも存在します。
介護施設や病棟のように、映像カメラの設置自体が心理的・倫理的な抵抗を生む環境では、プライバシーを保ちながら見守りを実現する手段として価値があります。ただし導入にあたっては、権限スコープの明確化と法的枠組み(GDPR・個人情報保護法)の確認を事前に行うことが不可欠です。
コードが誰でも確認できるオープンソースであることは、「このシステムが実際に何をしているか」を第三者が検証できるという意味で、信頼の前提条件として機能します。
まとめ
RuView は「WiFi 電波を目の代わりにする」というコンセプトを、低コストなエッジハードウェアと Rust の実装によって現実的な形に引き寄せたプロジェクトです。CSI 感知の学術的な基盤は堅固であり、カメラ不要の自己教師あり学習・MERIDIAN による環境適応・暗号的な証明チェーンといった設計上の工夫は、単なるデモ止まりではない本物の取り組みです。
一方で、バイタル推定は現時点で Alpha 段階であり、生命安全系の宣言には独立した検証が追いついていない部分もあります。研究者・開発者にとっては価値の高い実験プラットフォームですが、本番環境への導入にはシーンごとの慎重な評価が求められます。公開からわずか数ヶ月で 55,000 以上のスターを集めた事実が示す通り、エッジ AI とプライバシーファーストなセンシングの交差点は、今まさに注目すべき領域です。
📦 プロジェクトリポジトリ: github.com/ruvnet/RuView