AI 検出
SkyView には 8 種類の検出機能が組み込まれています:動作 → 物体 → 顔 / ナンバープレート / 転倒 / 荷物 / ジェスチャー / 音声(赤ちゃんの泣き声)。本章では検出の実行順序、パラメータの調整方法、顔ライブラリの管理、敏感エリア、アクセラレーションバックエンドの選び方について説明します。
検出の順序
各カメラは独立して検出を行い、デフォルトで 5 フレーム/秒に制限されます(調整可能)。検出は上から下へ順に実行され、前段を通過しなければ以降の全ステップがスキップされ、計算リソースを節約します:
- 動作検出:まずフレーム間の差分を確認し、動きがなければ以降の全ステップをスキップします(最もコストの低いフィルター)
- 物体検出:人 / 車両 / 動物など 80 種類の一般的な物体を枠で検出します
- 物体追跡:各物体に ID を付与し、同一人物が何度もイベントを発火するのを防ぎます
- 詳細認識(任意・並行実行):顔認識、ナンバープレート認識、姿勢 / 転倒
- イベント記録:閾値を満たし、かつクールダウン期間外であれば → イベントを記録し、プッシュ通知 / オートメーションをトリガーします
アクセラレーションバックエンドの選び方
イメージの tag によって AI がどのハードウェアアクセラレーションを使うかが決まります。インストール時に一度だけ選択します——バリアントごとに異なる onnxruntime wheel(cpu / openvino-gpu / cuda)が導入されており、実行中にホットスイッチはできません。バックエンドを変更するには、対応するバリアントのイメージを取得し直して docker compose up -d する必要があります。
| バックエンド | ハードウェア | 10 路・5fps でのおおよその CPU 使用率 |
|---|---|---|
| cpu | CPU のみ | 4 コアで 70–90% |
| openvino | Intel iGPU / NPU、第 11 世代以降 | 20–40% |
| cuda | NVIDIA GPU | 8–15% + GPU 50% |
| trt | NVIDIA GPU(最速) | 5–10% + GPU 30%(初回起動時はモデル最適化に約 3 分かかります) |
動作検出
デフォルトで有効です。感度が高いほど反応しやすくなります。高すぎると風で揺れる木の葉や漂う影で誤トリガーし、低すぎるとゆっくり歩く子どもを見逃します。デフォルト値から始め、誤報の状況に応じて微調整することをおすすめします。
物体検出
80 種類の一般的な物体を認識します。よく使われるのは:人 / 車 / 自転車 / バイク / バス / トラック / 猫 / 犬 / 鳥。イベントページのフィルターで、関心のあるクラスだけを絞り込んで表示できます。
顔認識
事前に顔ライブラリを作成する必要があります:Web 管理画面 → 顔 → 追加。1 人につき正面の写真を 3–5 枚(異なる光条件 / 角度)アップロードすると、システムが顔の特徴を抽出してデータベースに保存します。検出時にはこの特徴と類似度で照合します。
- 既知の顔:認識されるとイベントに「<氏名>が出現」とラベル付けされます
- 見知らぬ人:認識はされたが顔ライブラリに一致がない場合 → 「見知らぬ人」とラベル付けされます
- 顔なし:物体検出で人物は検出されたがカメラの角度上顔が見えない場合 → 「通行人」とラベル付けされます
照明条件が悪いと認識率が下がります
ナンバープレート認識
中国国内の青ナンバー / 緑ナンバー / 黄ナンバーいずれにも対応しています。車庫や庭の入り口に車道側を向けたカメラを設置しておけば、認識率が良好な場合「自分の車が帰ってきたら自動でゲートを開ける」といったオートメーションを組めます。
転倒検出(独居の高齢者向け)
誤報を防ぐため、3 段階で判定します:
- 単一フレームでの横臥姿勢:現在の姿勢が「横になっている」ように見えるかを判定
- 複数フレームでの連続確認:連続する複数フレームでいずれも横臥姿勢であることを確認し、一時的なしゃがみ込みや前かがみを除外
- 落下速度ゲート:「立位」から「横臥」への変化が十分に速いことを確認し、「自分の意思で横になる」動作(ソファで寝転がるなど)を除外
リビング / 寝室への設置を推奨
検出ゾーンとライン
既定では画面全体が検出の対象です。「庭に入ってくる人だけを見て、道路を通り過ぎる人は気にしない」なら、映像の上にエリアを 1 つ囲みます。入口:カメラ管理 → 対象のカメラ →「検出ゾーン」(Pro 機能)。全部で 4 種類あります:
- イベントゾーン —— 対象が入ると「エリア侵入」「滞留」「速度超過」イベントが発火します
- 検出ゾーン —— ゾーン内に入った対象だけを数えます
- 無視ゾーン —— ゾーン内の対象は破棄します(よく揺れる木、ずっと映っているテレビ)
- 転倒無視エリア —— エリア内では転倒を通知しませんが、人の検出も顔認識もこれまでどおり動きます(ソファなど)
同じページではラインも引けます。対象がどちら向きに線を越えたかを判定し、「帰宅 / 外出」を見分けるのに使います。
描き方と、パラメータの調整
同じページではラインも引けます。対象がどちら向きに線を越えたかを判定し、「帰宅 / 外出」を見分けるのに使います。
描き方と、パラメータの調整
閾値とクールダウン時間
設定 → 検出 でグローバルに調整でき、各カメラごとに個別上書きも可能です。よく使うもの:
| パラメータ | デフォルト | 上げた場合の副作用 | 下げた場合の副作用 |
|---|---|---|---|
| 物体検出の信頼度閾値 | 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 が必要です
skyview-gesture.onnx モデルが搭載されていますが、CPU のみで実行するとメインパイプラインの速度が大きく低下します。音声検出(赤ちゃんの泣き声)
SkyView には BC-ResNet ベースの赤ちゃんの泣き声認識(skyview_audio_cry)が組み込まれています。1 秒ごとのスライディングウィンドウで 2 秒間の音声クリップに対して推論を行い、該当すると「赤ちゃんの泣き声」イベントが発火します。カメラにマイクが搭載されており、RTSP ストリームに音声トラックが含まれている必要があります。デフォルトは無効で、設定 → 検出 → 音声 で有効化できます。
環境ノイズによる誤報に注意
一部の検出を無効化する
経験則として、6GB クラスの GPU でフルパイプライン(物体 + 顔 + 転倒 + 荷物 + ジェスチャー + 音声)を実行すると、1080p のサブストリームで 6–8 路程度を安定して処理できます。より多くの路数を扱いたい場合は、各カメラの詳細画面で不要な検出を個別にオフにしてください(例:玄関カメラに転倒検出は不要なのでオフにする)。特定の種類をグローバルにオフにすることも可能です(設定 → 検出 → 有効化項目)。
このページは役に立ちましたか?