AI 検出

SkyView には 8 種類の検出機能が組み込まれています:動作 → 物体 → 顔 / ナンバープレート / 転倒 / 荷物 / ジェスチャー / 音声(赤ちゃんの泣き声)。本章では検出の実行順序、パラメータの調整方法、顔ライブラリの管理、敏感エリア、アクセラレーションバックエンドの選び方について説明します。

検出の順序

各カメラは独立して検出を行い、デフォルトで 5 フレーム/秒に制限されます(調整可能)。検出は上から下へ順に実行され、前段を通過しなければ以降の全ステップがスキップされ、計算リソースを節約します:

  1. 動作検出:まずフレーム間の差分を確認し、動きがなければ以降の全ステップをスキップします(最もコストの低いフィルター)
  2. 物体検出:人 / 車両 / 動物など 80 種類の一般的な物体を枠で検出します
  3. 物体追跡:各物体に ID を付与し、同一人物が何度もイベントを発火するのを防ぎます
  4. 詳細認識(任意・並行実行):顔認識、ナンバープレート認識、姿勢 / 転倒
  5. イベント記録:閾値を満たし、かつクールダウン期間外であれば → イベントを記録し、プッシュ通知 / オートメーションをトリガーします

アクセラレーションバックエンドの選び方

イメージの tag によって AI がどのハードウェアアクセラレーションを使うかが決まります。インストール時に一度だけ選択します——バリアントごとに異なる onnxruntime wheel(cpu / openvino-gpu / cuda)が導入されており、実行中にホットスイッチはできません。バックエンドを変更するには、対応するバリアントのイメージを取得し直して docker compose up -d する必要があります。

バックエンドハードウェア10 路・5fps でのおおよその CPU 使用率
cpuCPU のみ4 コアで 70–90%
openvinoIntel iGPU / NPU、第 11 世代以降20–40%
cudaNVIDIA GPU8–15% + GPU 50%
trtNVIDIA GPU(最速)5–10% + GPU 30%(初回起動時はモデル最適化に約 3 分かかります)

動作検出

デフォルトで有効です。感度が高いほど反応しやすくなります。高すぎると風で揺れる木の葉や漂う影で誤トリガーし、低すぎるとゆっくり歩く子どもを見逃します。デフォルト値から始め、誤報の状況に応じて微調整することをおすすめします。

物体検出

80 種類の一般的な物体を認識します。よく使われるのは:人 / 車 / 自転車 / バイク / バス / トラック / 猫 / 犬 / 鳥。イベントページのフィルターで、関心のあるクラスだけを絞り込んで表示できます。

顔認識

事前に顔ライブラリを作成する必要があります:Web 管理画面 → 顔 → 追加。1 人につき正面の写真を 3–5 枚(異なる光条件 / 角度)アップロードすると、システムが顔の特徴を抽出してデータベースに保存します。検出時にはこの特徴と類似度で照合します。

  • 既知の顔:認識されるとイベントに「<氏名>が出現」とラベル付けされます
  • 見知らぬ人:認識はされたが顔ライブラリに一致がない場合 → 「見知らぬ人」とラベル付けされます
  • 顔なし:物体検出で人物は検出されたがカメラの角度上顔が見えない場合 → 「通行人」とラベル付けされます

照明条件が悪いと認識率が下がります

システムから見ると、夜間の赤外線映像と昼間の自然光の映像は別人として扱われます。玄関先のカメラでは、昼間用と夜間用それぞれ 2–3 枚ずつ写真を登録することをおすすめします。顔の類似度閾値を上げるとより厳格になりますが見逃しが増え、下げるとより緩くなりますが誤認識しやすくなります。

ナンバープレート認識

中国国内の青ナンバー / 緑ナンバー / 黄ナンバーいずれにも対応しています。車庫や庭の入り口に車道側を向けたカメラを設置しておけば、認識率が良好な場合「自分の車が帰ってきたら自動でゲートを開ける」といったオートメーションを組めます。

転倒検出(独居の高齢者向け)

誤報を防ぐため、3 段階で判定します:

  1. 単一フレームでの横臥姿勢:現在の姿勢が「横になっている」ように見えるかを判定
  2. 複数フレームでの連続確認:連続する複数フレームでいずれも横臥姿勢であることを確認し、一時的なしゃがみ込みや前かがみを除外
  3. 落下速度ゲート:「立位」から「横臥」への変化が十分に速いことを確認し、「自分の意思で横になる」動作(ソファで寝転がるなど)を除外

リビング / 寝室への設置を推奨

転倒検出はカメラの視野角に敏感です:俯角 30–45° が最適です。設置位置が高すぎる(俯角 80°)と、床にいる人が点のように見えてしまい、検出に失敗します。

検出ゾーンとライン

既定では画面全体が検出の対象です。「庭に入ってくる人だけを見て、道路を通り過ぎる人は気にしない」なら、映像の上にエリアを 1 つ囲みます。入口:カメラ管理 → 対象のカメラ →「検出ゾーン」(Pro 機能)。全部で 4 種類あります:

  • イベントゾーン —— 対象が入ると「エリア侵入」「滞留」「速度超過」イベントが発火します
  • 検出ゾーン —— ゾーン内に入った対象だけを数えます
  • 無視ゾーン —— ゾーン内の対象は破棄します(よく揺れる木、ずっと映っているテレビ)
  • 転倒無視エリア —— エリア内では転倒を通知しませんが、人の検出も顔認識もこれまでどおり動きます(ソファなど)

同じページではラインも引けます。対象がどちら向きに線を越えたかを判定し、「帰宅 / 外出」を見分けるのに使います。

描き方と、パラメータの調整

手順は〈検出ゾーンとライン〉に——滞留の通知、無視ゾーンの 2 つの判定方式、ラインの方向設定まで扱っています。

同じページではラインも引けます。対象がどちら向きに線を越えたかを判定し、「帰宅 / 外出」を見分けるのに使います。

描き方と、パラメータの調整

手順は〈検出ゾーンとライン〉に——滞留の通知、無視ゾーンの 2 つの判定方式、ラインの方向設定まで扱っています。

閾値とクールダウン時間

設定 → 検出 でグローバルに調整でき、各カメラごとに個別上書きも可能です。よく使うもの:

パラメータデフォルト上げた場合の副作用下げた場合の副作用
物体検出の信頼度閾値person 0.40 / vehicle 0.30 / その他 0.25見逃しが増える誤報が増える
顔の類似度閾値0.5認識漏れが増える人物を誤認識しやすくなる
イベントのクールダウン(秒)120(顔)/ 30(音声)/ 5(ジェスチャー)イベントを取りこぼす通知が乱発される
転倒の落下速度閾値0.6(bbox 高さ正規化 / 秒)転倒を見逃すソファで横になっただけを転倒と誤判定

荷物検出(宅配到着)

玄関先のカメラが「宅配便 / 段ボール箱」などの物体を検出し、数秒間その場に留まると「荷物到着」イベントが発火します。荷物が持ち去られると「荷物持ち去り」イベントが発火します。オートメーションと組み合わせれば「荷物が届いたらプッシュ通知 + TTS で知らせる」といったことができます。Web 管理画面 → 設定 → 検出 で手動で有効化する必要があります(デフォルトは無効で、skyview-package.onnx モデルが必要です——商用イメージには標準搭載されています)。

ジェスチャー認識

person の物体枠をもとに手のジェスチャーを認識します。デフォルトで 6 種類のよく使うジェスチャーが有効です:like(いいね)/ ok / peace(V サイン)/ palm(手のひら)/ stop(ストップ)/ fist(拳)。設定 → 検出 → ジェスチャー でオン / オフを切り替えられます。オートメーションと組み合わせれば「カメラに向かって SOS ジェスチャーをすると → プッシュ通知でアラートを送る」といったことができます。

NVIDIA GPU が必要です

ジェスチャー認識は推論コストが比較的高いため、CPU / Intel iGPU 環境では有効化を推奨しません。商用イメージには skyview-gesture.onnx モデルが搭載されていますが、CPU のみで実行するとメインパイプラインの速度が大きく低下します。

音声検出(赤ちゃんの泣き声)

SkyView には BC-ResNet ベースの赤ちゃんの泣き声認識(skyview_audio_cry)が組み込まれています。1 秒ごとのスライディングウィンドウで 2 秒間の音声クリップに対して推論を行い、該当すると「赤ちゃんの泣き声」イベントが発火します。カメラにマイクが搭載されており、RTSP ストリームに音声トラックが含まれている必要があります。デフォルトは無効で、設定 → 検出 → 音声 で有効化できます。

環境ノイズによる誤報に注意

猫の鳴き声、テレビの CM、食洗機の稼働音などで、まれに誤報が発生します。音声の閾値を高めに設定し、RMS ゲートを有効にして無音区間を除外することをおすすめします。新生児のいるご家庭では、「赤ちゃんの泣き声」オートメーションのクールダウンを 60 秒以上に設定し、連続した通知の乱発を避けてください。

一部の検出を無効化する

経験則として、6GB クラスの GPU でフルパイプライン(物体 + 顔 + 転倒 + 荷物 + ジェスチャー + 音声)を実行すると、1080p のサブストリームで 6–8 路程度を安定して処理できます。より多くの路数を扱いたい場合は、各カメラの詳細画面で不要な検出を個別にオフにしてください(例:玄関カメラに転倒検出は不要なのでオフにする)。特定の種類をグローバルにオフにすることも可能です(設定 → 検出 → 有効化項目)。

このページは役に立ちましたか?