モデル別実行レシピ

FrigateでCCTVの人検知:N100・Coral・Macのどれで動かすか

検知デバイスを付ければ、CPUだけで回すより少ない電力で1080pカメラを複数処理できます。

Frigateはカメラから直接映像を受け、低解像度のサブストリームで人や車両を検知し、本編ストリームを録画します。検知をどこで回すかが消費電力と台数を決め、Apple SiliconはM1以降でプロキシ経由で動きます。

実行条件と要点
  • Frigateは低解像度のサブストリームで検知し、本編ストリームは録画に使います。
  • N100ミニPCは活動量が低めの条件で1080pを複数台処理します。
  • Apple SiliconはM1以降で検知できますが、ZMQプロキシを経由するため遅延が加わります。

Frigateはカメラから直接映像を受け取ります

FrigateはカメラのRTSPアドレスに接続し、映像を直接受け取ります。受け取った映像は2つに分かれます。低解像度のサブストリームは人・車両の検知に、本編ストリームは録画に使います。

検知結果はMQTT1でHome Assistantに届きます。玄関に人が立ったら照明を点けたり、通知を送る自動化が作れます。

ノートPCの横の机と棚に二台の金属製装置が置かれ、ケーブルが手前のスイッチボックスにつながっている
カメラと録画サーバーを同じスイッチにつなぎ、インターネットから分離すれば映像は外に出ません。

カメラが先に備えるべきこと

カメラはH.264映像とAAC音声を出す必要があります。検知・録画・ストリーミングで解像度を変えるにはサブストリームが複数必要で、なければ本編を再エンコードし続けてCPU2が苦しくなります。

WiFiカメラは推奨されません。複数台が同時に流すと接続が切れたり映像が欠けます。4KのReolinkも報告が多いため、5MP以下を選ぶほうが安全です。

検知デバイスを選ぶ基準

検知はCPUより専用デバイスのほうがはるかに速いです。Frigateは複数の検知デバイスに対応し、それぞれ得意なモデルサイズが違います。手持ちの機器があればそれを優先し、なければ消費電力の低い順に選びます。

下の表は検知デバイスごとの対応と向く状況をまとめたものです。表にないCPU検知は試験用だけにしてください。

検知デバイスごとの対応と向く状況
検知デバイス対応モデル向く状況
Google Coral EdgeTPU (USB·m.2)ssdlite・mobilenet系低電力のミニPCにカメラ数台
Hailo-8·8L多様なモデル、小さいモデルが得意m.2スロットやRaspberry Pi 5 HAT
Intel OpenVINOほとんどのモデル、内蔵GPU・NPU・ArcIntelミニPC1台で複数台
Apple SiliconM1以降、ZMQプロキシ経由手持ちのMacで検知まで
NVIDIA GPUONNX・TensorRT、大きいモデルまでグラフィックカードが既にある場合

サーバーの大きさはカメラ台数で決まる

Frigateの資料では、N100ミニPCで1080pカメラを複数台、活動量が低めの条件で処理できると案内しています。活動量の多いカメラを何台も付けると、Intel 1120pや125Hのような大きなプロセッサが必要になります。

サーバーはDebian系Linuxが楽で、AVXとAVX2を使うIntel CPUなら概ね動きます。ミニPCにWindowsが入っている場合はLinuxを入れ直します。

frigate config.yml
# Home AssistantのMQTTブローカー
mqtt:
  host: 192.168.0.10

# Coral USBを検知デバイスに
detectors:
  coral:
    type: edgetpu
    device: usb

cameras:
  front:
    ffmpeg:
      inputs:
        # 検知はサブストリーム
        - path: rtsp://192.168.0.50:554/sub
          roles: [detect]
        # 録画は本編ストリーム
        - path: rtsp://192.168.0.50:554/main
          roles: [record]
ミニPCでFrigateを動かし、カメラ1台とCoral USBをつなぐ最小構成です。MQTTブローカーのアドレスと検知・録画の入力を書きます。
モニターの波形と文書が鍵のかかった本体に入り、クラウドへ向かう点線にはX印がついた図
検知と録画を家の中で完結させれば、クラウド契約なしで同じ映像を見返せます。

Macで動かすとき

Apple SiliconはM1以降なら検知を動かせます。ただしZMQプロキシ経由で接続するため遅延が少し加わり、家の中のネットワークでの利用が前提です。

Macを24時間つけっぱなしにできないなら、検知はミニPCに任せ、Macは録画の確認やHome Assistantの画面に使うほうが向いています。1台で全部やるならスリープと電力の設定を先に確認します。

ネットワークと保存容量

カメラをインターネットから切り離すにはネットワークを分けます。デュアルNICのミニPCならカメラ専用ポートを用意し、そのポートからインターネットへの経路を塞ぎます。

保存容量はビットレートで計算します。1080pカメラが4Mbpsなら1時間に4×3,600÷8=1.8GB、1日で約43GBです。4台を30日保管するには5TB強が必要です。

RTX 3090を挿したケース、色のブロックがコンベヤーで棚へ運ばれ、ネットワーク図のカードが置かれた作業空間
検知アクセラレータがあれば、グラフィックカードなしでも複数台を処理できます。

用語の注釈

  1. MQTT — 機器やプログラムがブローカーを介して値を発行・購読する軽量メッセージプロトコルです。同じブローカーを見るプログラム同士だけが値をやり取りします。

    本文に戻る
  2. CPU — OSや一般的なプログラム命令を実行する中央処理装置です。AIでは前処理やデータ転送などの汎用処理も担います。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
Frigateはカメラから直接映像を受け、低解像度のサブストリームで人や車両を検知し、本編ストリームを録画します。検知をどこで回すかが消費電力と台数を決め、Apple SiliconはM1以降でプロキシ経由で動きます。
選ばないほうがよいのはどのような場合ですか?
WiFiカメラは推奨されません。複数台が同時に流すと接続が切れたり映像が欠けます。4KのReolinkも報告が多いため、5MP以下を選ぶほうが安全です。