[RuView解説] Wi-Fi CSI × DensePose:画像を使わずにリアルタイムで人体メッシュを生成する実装ガイド


[RuView解説] Wi-Fi CSI × DensePose:画像を使わずにリアルタイムで人体メッシュを生成する実装ガイド

ruvnet/RuView

2026-03-04

…というわけで、今回は「カメラ不要の監視技術」という、ちょっとSFチックなオープンソースプロジェクト RuView (ruvnet/RuView) について、エンジニアの視点で分かりやすく解説しますね。

一言で言うと、「Wi-Fiの電波を『目』の代わりにして、人間のポーズを可視化する技術」 です。

通常、AIで人の動きを検知(Pose Estimation)するにはカメラ画像を使いますが、RuViewはWi-Fiルーターから出ている電波の乱れ(CSI
Channel State Information)を解析します。

カメラ不要
プライバシーを守りつつ、暗闇でも壁越しでも検知可能。

DensePose
単なる骨組み(棒人間)ではなく、体の表面(メッシュ)まで細かく捉えます。

バイタル検知
呼吸や心拍などの微細な動きもキャッチ。

「これ、何に使うの?」という疑問に、エンジニア的な活用シーンを挙げます。

究極のプライバシー保護監視
「介護施設や浴室で転倒してないか心配、でもカメラを置くのは抵抗がある…」という場所に最適です。データは「波」なので、顔が写る心配がありません。

スマートホームの自動化
「人が座ったら照明を落とす」「寝返りを打ったらエアコンの温度を変える」といった制御が、カメラの死角に関係なく家中で行えます。

マルチモーダルAIの学習データ
densepose-controlnet を使うことで、Wi-Fiデータから得たポーズ情報をベースに、Stable Diffusionなどの画像生成AIと組み合わせて「電波から画像を再構成する」といった研究も捗ります。

RuViewを動かすには、特定のWi-Fiチップ(Intel 5300など)を搭載したデバイスや、CSIデータを出力できるルーターが必要です。

Python環境と、信号処理のためのライブラリを準備します。

git clone https://github.com/ruvnet/RuView.git
cd RuView
pip install -r requirements.txt

Wi-FiのCSIデータを収集します。

送信機(AP)と受信機(PC/NIC)を設置。

人間がその間を通ることで、電波の「影」や「反射」を記録します。

RuViewのモデル(DensePoseベース)にデータを通すと、リアルタイムで3Dモデルが生成されます。

実際のRuViewは複雑なニューラルネットワークですが、エンジニアが「どうやって信号をポーズに変えるのか」をイメージしやすい擬似コードで説明します。

import numpy as np
from ruview import PoseEstimator, WiFiSignal

# 1. Wi-Fi信号(CSIデータ)を取得する
def get_wifi_data():
    # 実際にはハードウェアドライバから生のパケットを受け取ります
    raw_signal = WiFiSignal.capture(interface="wlan0")
    return raw_signal

# 2. 推論エンジンをロード
# DensePose(体の表面メッシュ)を生成する学習済みモデル
model = PoseEstimator.load_model("densepose_v2_wifi.pth")

while True:
    csi_data = get_wifi_data()
    
    # ノイズを除去して、ポーズを推論
    # 振幅と位相の変化から、どこに「動体」があるか特定
    pose_output = model.predict(csi_data)
    
    # 3. 結果の表示(3Dメッシュとして描画)
    pose_output.render_viewer()
    
    # バイタルチェック(呼吸など)
    if pose_output.check_vitals():
        print(f"心拍・呼吸に異常なし: {pose_output.vital_stats}")

「いいか母さん、壁越しに人が見えるからって、隣の家の晩ごはんを覗こうとしちゃダメだぞ!これはあくまで安全と健康のための技術なんだから。あと、『研究費でWi-Fiルーター100台買うから金振り込んで』なんて電話が来ても、それは絶対に偽物だからな!」

冗談はさておき、CSIの取得にはハードウェアの制約(特定のネットワークカードが必要な場合が多い)があるため、導入のハードルは少し高めです。しかし、その分エンジニアとしての「遊び甲斐」は抜群ですよ。

いかがでしたでしょうか?この「電波で見る」技術、あなたのプロジェクトに取り入れてみたいですか?


ruvnet/RuView




シンプル、軽量、多機能なサーバー監視ツール「beszel」入門

henrygd/beszelは、サーバー監視を手軽に行うための軽量なツールです。牛丼の「うまい、はやい、やすい」のように、「シンプル、軽量、多機能」の三拍子が揃った監視ツールと言えます。特に、個人のラボ環境や小規模なプロジェクトで、手軽にサーバーの状態を把握したい場合に役立ちます。


thingino-firmware:Ingenic SoC搭載カメラをカスタマイズする究極ガイド

まず、このthingino-firmwareについてですが、これはIngenicという会社が製造しているSoC(System on a Chip)を搭載したIPカメラ向けのオープンソースファームウェアです。簡単に言うと、カメラを動かすための「脳みそ」の部分を、自分たちの手でカスタマイズしたり、新しい機能を追加したりできるようにしたものです。


LLMの知性をハードに注入!MCPベースのESP32チャットボットで未来のIoT制御をマスター

特に、その核心にある技術や、組み込みシステムとクラウドAIを連携させる手法は、組み込み開発やIoT、AI連携に関心のあるエンジニアにとって「激安で驚いた商品」を紹介するような感動を提供してくれるでしょう!「78/xiaozhi-esp32」は、ESP32という安価で多機能なマイコンを使い、MCP (Model Context Protocol)という仕組みを通じて、クラウドのLLM(大規模言語モデル)やTTS(Text-to-Speech、音声合成)サービスと連携させることで、本格的な音声対話型AIアシスタントを実現しています。


ソフトウェアエンジニア必見:OpenTelemetry Collectorでシステムの情報を完全掌握

FPSゲームで、敵の位置を正確に把握し、弾薬やヘルスパックの残量をリアルタイムで確認できるレーダーやHUDがあったら心強いですよね?「OpenTelemetry Collector」は、まさにそんな存在です。一言でいうと、あなたのアプリケーションやシステムから発せられる様々な「情報」を収集し、加工し、指定の場所に送り届けてくれる、頼もしい「情報収集・転送マシン」です。


ソフトウェアエンジニアのためのMeshtastic徹底解説:オフグリッド通信とESP32活用術

「meshtastic/firmware」は、電源やインターネット接続がない環境(オフグリッド)でも使える、メッシュネットワーク通信システム「Meshtastic」の公式ファームウェアです。主にESP32などのマイコンボードとLoRa無線モジュールを組み合わせて使います。


【エンジニア向け】監視ラーメン dgtlmoon/changedetection.ioでウェブ変更を自動検知する「黄金スープ」の作り方

このツールは一言でいうと、ウェブサイトの変更を監視し、何か変わったら教えてくれる「最強の監視システム」です。ソフトウェアエンジニアにとって、これは単なるウェブサイトの監視ツール以上の、非常に便利な「具材」になります。要するに、手作業でチェックしていた「面倒な監視」を全部自動化し、エンジニアの貴重な時間を節約してくれるんです!


プロンプト管理から性能監視まで! Langfuseで実現する健全なLLM開発

ソフトウェアエンジニアの皆さん、こんにちは! 最近、LLM(大規模言語モデル)を使った開発が本当に盛んですよね。チャットボットからコンテンツ生成、コードアシストまで、LLMは私たちの仕事を大きく変えつつあります。しかし、一方で「なんか動いているけど、なんでこうなるの?」「本番で急に性能が落ちたけど原因がわからない…」「プロンプトをちょっと変えただけで挙動がおかしくなった!」なんて経験、ありませんか? まさに、手探りでLLMと格闘しているような感覚に陥りがちですよね。


【脱アラート疲れ】Prometheus Alertmanagerによる「賢い」アラート交通整理術と実践導入ガイド

Alertmanagerは、監視システムからのアラート通知を賢く管理してくれる、まさに「アラートの交通整理係」のようなツールです。ソフトウェアエンジニアやオンコール担当者にとって、Alertmanagerは次のような重要な役割を果たし、運用効率を劇的に向上させます。


オブザーバビリティの玄関口!DataDog Agentを使ったGoアプリのメトリクス送信サンプルコード

[go, monitoring, metrics]というヒントがありますが、DataDog Agentの主な役割はズバリ何でしょう?正解は… B!DataDog Agentは、サーバー、コンテナ、アプリケーションの環境にインストールされ、そこからメトリクス(性能指標)、トレース(リクエストの流れ)、ログといったあらゆるデータを収集し、DataDogプラットフォームに送信する監視の「玄関口」となるソフトウェアです。ソフトウェアエンジニアにとっては、「自分のコードが本番環境でどう動いているか」を知るための目であり耳となります。


Nightingale と Prometheus で実現するモダンな監視システム入門

ccfos/nightingaleは、モニタリング、時系列データの収集、メトリクスの管理に特化したツールです。Grafanaがデータの可視化に優れているのと同様に、Nightingaleはデータそのものを収集・管理することに焦点を当てています。つまり、Grafanaが「絵を描く画家」だとすれば、Nightingaleは「絵の具を集めて整理する人」のような役割を担います。