記事一覧に戻る
AI KAGARI研究開発個人研究IoT顔認識VOICEVOX

HUD 風ホームセキュリティ「AI KAGARI」を作っています

個人の研究開発として、AI KAGARI(カガリ) というものを作っています。ひとことで言うと「人感センサー → カメラで顔を照合 → 知らない人なら声で警告する」ホームセキュリティです。画面は SF 映画の HUD(ヘッドアップディスプレイ)風にして、しゃべる声は VOICEVOX の四国めたんさんにお願いしています。

もともと自宅用に組んでいたホームセキュリティシステムがあり、人感センサーで顔を見て判断し、声で伝えるところまではすでに動いていました。今回はそれに HUD 風の画面を実装し、「見える」システムに発展させたのが AI KAGARI です。

待機画面(STANDBY)
待機中の画面。左にセンサーの状態と室温・照度、右に玄関カメラ、下にイベントログ

何が起きるか

玄関に置いた端末を想像してください。

  1. 人感センサーが反応すると、画面が 警戒モード(ARMED)に切り替わり、カメラが起動します。
  2. 映った顔を登録済みの顔と照合します。登録者なら「おかえりなさい」。
  3. 未登録なら赤いアラートとサイレン、そして「ふしんしゃさんです!」。警報中の写真は保存されます。
  4. 解除は、登録者の顔認証・手元のボタン・パスコードのいずれか。画面やキーボードからは解除できません。

派手な演出に見えますが、中身は「誰が来たかを判定して、結果を声で伝える」という従来どおりの流れです。HUD にしたことで、いま何を見ていて何を判断したのかが画面に出るようになり、センサーやカメラの調子もひと目で分かるようになりました。

警戒モード(ARMED)
① 人感センサーが反応して警戒モードに。カメラが起動
顔照合中(VERIFYING)
② 映った顔を登録者と照合中
登録者を確認(CLEAR)
③ 登録者なら緑の CLEAR。「おかえりなさい」
不審者警報(STRANGER)
④ 未登録なら赤い警報。サイレンと「ふしんしゃさんです!」

使っているもの

全部、市販のものです。

役割 使っているもの
人感・動き・ボタン・LED・温湿度・明るさ ソニーの MESH ブロック(BLE 接続)
カメラ Logicool C920(HD Pro Webcam)。内蔵カメラも併用
写真対策・暗所 Intel RealSense D435(深度と赤外線)
顔検出・照合・表情 face-api(vladmandic 版。ブラウザ内で動く)
手振り検知 MediaPipe Hand Landmarker
返事の聞き取り Vosk(オフライン音声認識、日本語小型モデル)
声 VOICEVOX(四国めたん)
本体 Electron(Windows のキオスク全画面)

クラウドは使っていません。顔の照合も音声認識も端末の中で完結するので、家の中の映像や声が外に出ることはありません。

作っていて面白かったところ

MESH ブロックを自前でつなぐ。 MESH は本来スマホアプリでつなぐものですが、BLE のプロトコルが公開されているので、PC から直接接続して通知を受けています。人感ブロックが「検知」を送ってきたら警戒、動きブロックが揺れたら「持ち出し警報」、ボタンブロックを押したら解除、LED ブロックは状態に合わせて色が変わる(待機はシアンの呼吸、不審者はレインボー)。ブロックを足すだけで機能が増える感じが楽しいです。

写真をかざされたらどうするか。 顔認識だけだと、登録者の写真やスマホの画面で通ってしまいます。そこで RealSense の深度を見て、顔が平面なら「それ、しゃしんじゃない?」と言って不審者扱いにしました。平面かどうかを見ているだけなので、立体のマスクには効きません。暗いときは RealSense の赤外線映像に切り替えて照合しますが、これも万能ではなく、部屋に多少の明かりがあれば顔を検出できる一方、真っ暗だと投光器のドット模様だけになって検出できません。

センサーを切られたらどうするか。 侵入者がまずやりそうなのは、センサーの電源を抜くことです。つながっていたブロックとの接続が切れて数秒戻らなければ「センサーが、きられたよ!」と警報を出します。電波の一瞬の途切れで鳴らないよう、猶予を持たせています。

解除の抜け道をなくす。 最初は Esc キーで解除できましたが、それでは画面の前に立った人が誰でも止められます。実機では、警戒・照合・警報中は設定も開けず、解除は顔・ボタン・パスコードだけにしました。パスコードは 4〜8 桁で、5 回間違えると 60 秒ロックします。くつろぎモードへの切り替えや持ち出し警戒の一時解除など、警戒を緩める操作にも同じく顔かパスコードが要ります。

ちょっとした「暮らし」の要素。 待機中もインカメラで手振りを見ていて、手を振ると「はーい!」と返事します。室温が高ければ「エアコンつけますか?」と聞いてきて、マイクで「はい」と答えると(デモなので操作はしませんが)「つけました!」。笑顔なら「なにか、いいことあった?」。セキュリティ機器というより、玄関にいる同居人のつもりで作っています。

キャラクターのこと

表示名は AI KAGARI ですが、設定上は 神狩 愛(かがり あい) という名前です。篝火(かがりび)の「かがり」で、夜の家を見張る火のイメージ。本物の AI モデルが入っているわけではないので、自己紹介では「カガリ、アイです!起動しましたっ」と名乗らせています。起動時には SYSTEM INITIALIZATION の画面で各モジュールが順につながっていく様子を見せる、という完全に趣味の演出も入れました。

起動シーケンス(SYSTEM INITIALIZATION)
起動シーケンス。VOICEVOX、MESH の各ブロック、RealSense が順につながっていく

これから — MAHORO / MAiD につなぐ

いまの AI KAGARI は、状態機械と演出で「それらしく」ふるまっているだけで、頭脳はありません。将来的には、開発中のパーソナル AI エージェント MAHORO と、その土台である MAiD に接続する構想です。

MAiD は家の中で動く複数のエージェントを束ねる枠組みとして考えているので、AI KAGARI はその「目と耳と口」、つまり玄関に立つセンサー側のエージェントという位置づけになります。「誰が来たか」「部屋が暑い」「センサーが切られた」といった出来事を MAHORO に渡し、記憶と文脈を持った判断(この時間にこの人が来るのはいつものこと、など)を返してもらう。そうなってはじめて、カガリは本当の意味で「同居人」になれると思っています。

なお、「エアコンつけますか?」から先の家電操作や、警報時のスマホ通知、玄関以外の部屋の人感センサーは、土台にしている自宅のシステムのほうですでに動いています。家の中には SwitchBot のセンサーが各所に入っていて、エアコン・テレビ・照明は API で制御でき、通知は IFTTT で飛ばしています。その中核は Raspberry Pi なので、小さな筐体に収めるという点もすでに済んでいます。AI KAGARI 側の MESH ブロックはこの HUD のための一式で、次はカガリをこの既存の仕組みと MAHORO の両方につなぐところです。個人研究のひとつとして、しばらく育てていくつもりです。進んだらまた書きます。


音声: VOICEVOX:四国めたん