短く答えると、可能です。Channel State Information(CSI)には、ジェスチャーによって生じる再現性のある変化が含まれる場合があり、分類器はその変化を学習できます。難しいのは波形を表示することではありません。十分なパケットを集め、送受信機を安定させ、同じ動作を繰り返せるラベルを定義し、モデルが部屋や参加者、特定の収録セッションではなくジェスチャーを認識していることを示す必要があります。
最初の実験では、左スワイプ、右スワイプ、押す、引く、静止のように語彙を絞ります。同じハードウェアとパケット設定でCSIを収録し、キャリブレーションとジェスチャー区間を分け、学習に使っていない参加者または部屋で評価します。目的が在室や大まかな動きだけなら、既存のWi-Fi在室検知・動作検知ガイドの方が適しています。ジェスチャー認識には、より明確なラベルと厳しい検証が必要です。
この記事では、WIDAR3やSignFiのような研究用データセットと実際の収録手順をつなぎ、ESP32 CSI、LinuxのCSIツール、オープンソースのモデルコードがどこに当てはまるかを整理します。重要なのは、予測を必ず既知の信号源、再現可能なラベル、実際に知りたい失敗を測れるテスト分割に結び付けることです。
Wi-Fi CSIジェスチャー認識が実際に認識するもの
CSIは、サブキャリア、アンテナ、パケット、時間に沿って無線チャネルがどう変わるかを表します。動く手はマルチパスと位相の関係を変え、同じ構成では再現できる特徴になることがあります。モデルが見るのは人間が読めるジェスチャーではありません。パケットの除外、キャリブレーション、正規化、特徴抽出を行った後の時間窓です。最終クラスはその窓に対する推定であり、人物の画像ではありません。
マーケティング上の表現よりタスクを狭く定義しましょう。5種類の手振り、手話の語彙、部屋の活動認識では必要なデータが異なります。1人・1部屋で分離できたモデルは、参加者、受信機、家具、無線トラフィックが変わると失敗する可能性があります。カメラを使わないからといって、普遍的な知覚システムだと表現してはいけません。
- 最初の課題は、3〜6種類の意図的なジェスチャーと静止または未知クラスにする。
- 出力にはクラス、信頼度、曖昧な窓を拒否する未知状態を含める。
- Wi-Fiセンシング対応と書かれたルーターが、生のCSIを公開するとは限らない。
- 在室、動作、姿勢、個人識別、ジェスチャー認識は似ているが別の課題である。
収録からクラス分類までのパイプライン
再現可能な構成は、パケット源、CSI対応受信機、固定した配置、記録したチャネル設定から始まります。各窓について、参加者、ジェスチャー、距離、アンテナ配置、部屋の状態を再現できるように、タイムスタンプとメタデータを保存します。有望な結果を後から確認できるよう、フィルターを試す前に生データまたは最小限の処理データを残してください。
前処理はモデルの境界の一部です。壊れたパケットを除き、必要性を説明できる場合だけ時系列を整列・補間し、振幅を慎重に正規化します。学習用変換とテスト用変換を分離し、記録全体の情報を使うフィルターで評価データを漏らさないようにします。複雑なニューラルネットワークの前に、透明なベースラインを作るのが安全です。
| 段階 | 記録するもの | よくある失敗 |
|---|---|---|
| 収録 | CSIパケット、時刻、チャネル、アンテナ、部屋 | 接続確認だけで使えるCSIが残っていない |
| クリーニング | パケット品質、欠損、キャリブレーション | ジェスチャーを消す、またはテスト情報を漏らす |
| ラベル | 名前、開始・終了、参加者、反復番号 | 異なる動作を含む曖昧な窓 |
| 学習 | 変換、分割、乱数種、モデル版 | 同じセッションの窓が学習とテストに入る |
| 評価 | 未知の人、部屋、日、未知動作 | 最も簡単なセッション内精度だけを報告する |
ハードウェアは製品名ではなくCSIへのアクセスから選ぶ
ESP32 CSIは、ボード、ファームウェア、ESP-IDFの版、パケット源、アンテナ構成が記録されている場合に、低コストの出発点になります。Espressifのesp-csi例は収録側を理解するのに役立ちますが、ESP32ボードだけで完成したジェスチャーセンサーになるわけではありません。安定した送信機、受信コールバックまたはロガー、時間窓、ラベル、モデル、評価が必要です。
互換NICを備えたLinuxノートPCは別の収録経路になります。Raspberry Piは記録、推論、表示を担当できますが、それだけでCSI受信機になるわけではありません。プロジェクトを比較するときは、収録ツール、データセット、可視化デモ、モデルコード、完成アプリのどれかに分類してください。リポジトリの画面がきれいでも、エンドツーエンドで再現できるとは限りません。
- 正確なボードやNICがRSSIだけでなくCSIを公開するか確認する。
- ファームウェア、ドライバー、チャネル幅、サンプリング、アンテナ、パケット源を記録する。
- 最初のベースラインでは送信機と受信機の位置を固定する。
- 経路が不明な場合はESP32 CSIガイドとオープンソースプロジェクトガイドを参照する。
データセットとラベル:WIDAR3、SignFi、自分の部屋
公開データセットは、完全な収録装置を作る前に前処理やモデルを比較するのに役立ちます。WIDAR3は人や場所をまたぐWi-Fiジェスチャー・活動表現の研究に使え、SignFiはWi-Fiを使ったサイン認識の文脈で知られています。ただし、公開データのデバイス、サンプリング、ラベル、環境は自分のハードウェアと一致しないかもしれません。論文の精度は参考値であり、自分の部屋での保証ではありません。
配置が重要な場合は、自分のデータも必要です。各ジェスチャーを短い指示で定義し、速さを変えて複数回収録し、静止や偶発的な動作も含めます。参加者とセッションの識別子を保存し、できれば窓を作る前に参加者またはセッション単位で分割します。同じ収録の隣接窓を学習とテストに入れると、一般化ではなく信号断片の暗記を測ることがあります。
| データ経路 | 向いている用途 | 注意点 |
|---|---|---|
| 公開ジェスチャーデータ | 論文の再現や前処理のベースライン | デバイス、部屋、ラベル、サンプリングが異なる |
| 小規模な管理収録 | ハードウェアが反応するか確認する | 1人だけで精度を過大評価しやすい |
| 複数セッション収録 | 日、部屋、参加者のドリフトを測る | メタデータと厳しい分割が必要 |
| 運用に近いストリーム | 遅延、未知動作、パケット欠損を試す | 精度だけでは信頼性を測れない |
前処理とモデル学習
まず、読者が確認できるベースラインを作ります。振幅や位相の特徴、固定長の窓、単純な分類器、混同行列から始めてください。その後、畳み込み層、再帰モデル、Attention、時間周波数表現などを比較します。大切なのは1つの分割で勝つモデルだけではなく、部屋や参加者が変わっても解釈できる表現かどうかです。
データ拡張を物理的な保証に変えてはいけません。ノイズ、時間伸縮、チャネルマスク、振幅正規化は頑健性を改善することがありますが、実環境の変動を置き換えません。最後のセッションはパイプラインが固まるまで保持し、クラスの偏り、macro-F1やクラス別再現率、遅延、静止時の誤発火、未知状態を報告します。
- 重複窓を作る前にセッションまたは参加者単位で分割する。
- 前処理のパラメーターは学習データだけから求める。
- 似たジェスチャーと静止クラスの混同を確認する。
- 精度と一緒に遅延、欠損、誤発火、未知予測を記録する。
参加者と部屋をまたいで検証する方法
最も重要なテストは、同じ収録からランダムに切り出した別の窓ではないことが多いです。新しい参加者、別の部屋、移動した受信機、別の日、背景の動きで分類器が壊れないかを調べます。よい検証計画は、想定する運用範囲を明示し、その範囲を表すテスト分割を作ります。1人・1部屋だけを対象にするなら、そう明記して一般化を主張しないでください。
各セッションで同じ説明文を使いながら、速度や姿勢まで同じに固定しないようにします。リンクの前を通る人、扇風機、ドア、ペット、空室など、運用上ありそうな負例も加えます。クラス別再現率と誤警報を比較し、代表的な失敗を確認してください。少し精度が低くても未知状態を返せるモデルの方が、すべての窓で自信満々に推測するモデルより安全な場合があります。
- 同一セッション分割:デバッグには有用だが、運用準備の証拠としては弱い。
- 未知の参加者:特定の人の動き方を学習していないかを確認する。
- 未知の部屋や日:マルチパスと環境ドリフトを確認する。
- 負例と未知状態:分類を拒否できるかを確認する。
限界、プライバシー、現実的な次の一歩
CSIジェスチャー認識は、幾何、ハードウェア、ファームウェア、チャネルの混雑、壁、家具、人物の動きに左右されます。同じジェスチャーでも別の部屋では異なる波形になり、無関係な動きが学習クラスに似ることもあります。個人識別、医療、警備、カメラの代替だと表現するには、別の課題に対する証拠と独立した安全策が必要です。
カメラを保存しなくても、無線センシングは在室、動き、生活パターンを示す場合があります。何を収集するかを説明し、ローカル処理を優先し、実験に必要な期間だけ生CSIを保持し、センシング中であることを知らせてください。次はCSIハードウェアガイドを読み、公開データセットまたは5クラスの小さな収録を選び、最初の学習前に参加者・部屋の分割を決めます。
- ジェスチャー語彙、部屋、参加者、ハードウェアを仕様の一部として扱う。
- ジェスチャー分類器から個人、健康状態、隠れた活動を推測しない。
- 高い影響のある動作には未知状態と独立したセンサーを用意する。
- 各スコアをデータ分割、セッション数、失敗の定義に結び付ける。
主要な技術リファレンス
Wi-Fi CSIジェスチャー認識 FAQ
Wi-Fi CSIジェスチャー認識はWi-Fi動作検知と同じですか?
違います。動作検知は変化が起きたかを判定しますが、ジェスチャー認識は時間窓を定義済みの複数クラスに割り当てます。動作検知はベースラインになりますが、ジェスチャーを区別できる証明にはなりません。
ESP32だけでジェスチャーを認識できますか?
互換性のあるCSI収録経路を持つESP32は有用な測定を収集できます。ただし、パケット源、安定した配置、前処理、ラベル、モデル、検証が必要です。ボードは収録部品であり、自動的に完成センサーになるわけではありません。
最初のデータセットには何種類のジェスチャーが必要ですか?
3〜6種類の意図的なジェスチャーと、静止または未知クラスから始めます。小さな語彙ならラベルと失敗を確認できます。新しいセッションと参加者で検証してからクラスを増やしてください。
最適なWi-Fi CSIジェスチャーデータセットはどれですか?
普遍的な最適解はありません。ハードウェア、語彙、サンプリング、参加者・部屋の多様性が目的に合うものを選びます。公開データは再現に役立ちますが、運用にはローカルデータが必要です。
なぜ1つの部屋では動くのに別の部屋で失敗しますか?
CSIはマルチパス、アンテナの幾何、家具、人物、チャネルの混雑、機器配置に依存します。部屋や参加者の変化を分割に含めないと、モデルが持ち運べる表現ではなく環境を学習することがあります。
Wi-Fi CSIジェスチャー認識で人物の特定や健康診断はできますか?
ジェスチャー分類器を個人識別や医療システムとして扱ってはいけません。別のタスク、同意、プライバシー管理、独立した検証が必要です。検証済みのジェスチャー語彙に出力を限定し、曖昧なときは未知を表示します。