見守りカメラの世界で、いちばん難しいのが 「転倒検知」 です。本当の転倒は絶対に見逃せない一方で、しゃがむ・拾う・座る・寝るといった日常動作でいちいち通報していては、現場では使えません。“見逃さない”と“誤報を出さない”は、しばしばトレードオフになります。
HYAKUME(百目) は、この難題に 二層構成で挑む当社の見守りコンポーネントです。軽量ルール(L0)が「疑い」を漏らさず、リアルタイム動画認識エンジン KAIROS(L1)が「事故か・意図的な動作か」を意味で見分ける ― この役割分担が要点です。本記事では、公開研究データセットの実写クリップで実測した評価結果をご紹介します。
実写デモ ― 実際の映像と、実際の判定ログ
まずは、評価で実際に使った映像に、そのときの L0 / L1 の判定ログを重ねた実写デモをご覧ください(認識エンジンは KAIROS、GPU は RTX 4090)。転倒・紛らわしい日常動作・見逃しやすい着座転倒・別環境のカメラを通して、二層がどう噛み合うかが分かります。仕組みと数字は、この後で順に説明します。
FSR-AC の「眼」としての HYAKUME
HYAKUME は単体のカメラアプリではなく、建物そのものが眼・耳・記憶・行動を持つアンビエント知能OS 「FSR-AC」(Embodied Ambient Intelligence OS) の一部です。その中で HYAKUME は、多数のカメラを「百の眼」に見立てて空間全体を見守る 《眼》 を担います。
設計思想として重要なのは、生映像を外に出さないことです。カメラの生映像はエッジ(現場)で認識だけを行い、上位システムには「意味イベント」だけを渡します。プライバシーに配慮しながら、必要な“できごと”だけを共有する仕組みです。
なぜ二層なのか ― ルールは「幾何」しか見えない
見守りの転倒検知は、まず軽量なルールで組めます。人物の縦横比・臥位・「落下→静止」といった幾何的な特徴を見るやり方で、これはこれで強力です。実際、ルール(L0)単独でも転倒 recall 0.931・歩行での誤報 0 を達成しています。
しかし、ルール単独には壁があります。
- 紛らわしい動作で誤報が出る ― 跪く・拾う・座る・就寝などで、33本中 12本が誤報。
- 低落差の「着座転倒」を見逃す ― 椅子やベッドに崩れ落ちる転倒は、幾何と時間だけでは意図が分からない。
- 語彙が閉じている ―
fall/walk系しか語れず、日常動作(ADL)の意味理解が無い。
つまり、ルールは「幾何」を見るが、「意図」は見えない。ここで、当社のリアルタイム動画認識エンジン KAIROS を、意味解釈のレイヤー(L1)として重ねます。KAIROS 自体の紹介は「映像の“意味”を、いまリアルタイムに理解する ― KAIROS」も併せてご覧ください。
システム構成 ― EVENT NODE が「意味」に変換する
HYAKUME は、カメラ群からの映像を段階的に「意味」へと変換していきます。評価対象になるのは、その中核の EVENT NODE(意味イベント変換層) です。
perception.fall_confirmed のような意味イベントだけで、生映像はカメラ群から出ません。(クリックで拡大)- カメラ群(百の眼) ― 生映像はここから出ない。認識はすべて手前で行います。
- エッジ(姿勢検出) ― YOLO-pose で人物の検出・追跡を行い、骨格・軌跡を得ます。
- EVENT NODE(意味イベント変換層) ― L0 ルール(CPU 常時)と L1 KAIROS(GPU 推論)の二層。ここが本評価の対象です。
- コア(世界モデル・判断) ― 意味イベントを受けて状況を判断し、上位へ配信します。
上位への出力は hyakume.event.v1 の意味イベント(perception.fall_suspect / perception.fall_confirmed / rest.sitting / adl.crouching …)だけ。配信先は、対話・通報、監視HUD、上位運用知能などです。
二層の役割分担 ― L0は漏らさない、L1は見分ける
二層は片方が主でもう片方が従、ではなく、役割が違う共存です。
fail-open(L0 の疑いをそのまま通す)で、「見逃し > 誤報」の安全側に倒します。(クリックで拡大)- L0 ルール ― 常時・全フレーム・CPU のみ。縦横比/臥位/落下→静止の3ルールで、疑いを漏らさない安全層。
- L1 KAIROS ― イベント駆動・GPU 常駐推論。confirm(疑いの前後フレームで事故かを判定)と interpret(動きの境界となる区間を語彙で分類)を担う意味層。
3つの流れで噛み合います。
- L0 が疑いを発火 → L1 が確認 ―
confirmedなら通報、rejectedなら誤報を吸収。 - L0 が見逃し → L1 が interpret ―
fell(転倒)区間を検出して見逃しを回収。 - KAIROS が不調・判定不能 → fail-open ― L0 の疑いをそのまま通す(見逃しより誤報を許す安全設計)。
冒頭の実写デモは、この3つの流れの実演です。
- ① 転倒 ― L0 が疑い、L1 が confirmed で通報へ。
- ② 跪く・拾う ― L0 が誤発火、L1 が誤報を吸収(通報しない)。
- ③ 着座転倒 ― L0 が見逃し、L1 interpret が区間を回収。
- ④ 別環境のカメラ ― 学習環境と異なる部屋でも判定できるか(汎化)。
実測結果 ― 全ゲート合格
公開研究データセットの実写107クリップで実測しました。結果は、設定したすべてのゲートに合格しています。
主要な数字は3つです。
- 二層 fall recall 0.948(55/58)― L0 単独の 0.931 から改善。
- 紛らわしい動作の誤報 12 → 0 ― 跪く・拾う・座る・就寝 33本の誤報を、L1 が 100% 吸収。
- KAIROS レイテンシ p95 1.85秒(p50 1.62秒/実呼び出し 279回)― 転倒からおよそ2秒で判定。
内訳を見ると、二層の効きどころがはっきりします。
| L0 の判定 | 件数 | L1(KAIROS)の結果 | 意味 |
|---|---|---|---|
| 真の転倒 | 54件 | 54件 confirmed | 真の転倒の棄却ゼロ=recall 損失ゼロ |
| 誤報 | 12件 | 12件 rejected | 誤報吸収 100% |
| 見逃し | 4件 | 1件を interpret が回収 | 残3件は着座転倒(次段の課題) |
真の転倒は1件も落とさずに、紛らわしい誤報だけを消す ― これが二層構成のねらいどおりの結果です。
残課題と、実運用への展開
見逃しの残3件は、いずれもマットレスへの着座転倒でした。「崩れ落ちる」動きが「座る」と見た目上ほとんど同一という、本質的な曖昧さがあります。これには、転倒後に起き上がらない継続観察(一定時間 静止が続く=still_too_long)を組み合わせることで対処していきます。
実運用に向けては、次のように配線します。
- エッジ同居 ― カメラノードに L1 ワーカーを同居させ、
fall_confirmed/rejectedを MQTT で発行。 - 通報ポリシー ― L1 が健在なら
confirmedで通報、L1 不調時はsuspectで通報(fail-open)。 - 語彙の活用 ―
interpretが出す開語彙の ADL(sitting/crouching/lying…)を、上位の世界モデルへ渡し、暮らしの文脈理解に使う。
まとめ
- ルールは漏らさない。KAIROS は見分ける。 ― L0(幾何)で疑いを取りこぼさず、L1(意味)で事故か・意図的かを判定。
- 実データで達成 ― 二層で 誤報 12→0・転倒 recall 0.948・判定およそ2秒。真の転倒の棄却はゼロ。
- プライバシー配慮 ― 生映像は外に出さず、エッジで認識して意味イベントだけを上位へ。
- 建物の“眼”として ― HYAKUME は FSR-AC の《眼》。百の眼が、暮らしを見守るための基盤技術です。
HYAKUME と KAIROS による見守りの転倒検知について、デモやご相談を承っています。