セキュリティカメラをローカルAIで監視する
(frigate.video)- Frigate NVRは、家庭やオフィスに設置されたセキュリティカメラ向けにローカルAIベースの物体検知ソリューションを提供します
- Home Assistant、OpenHAB、Node-REDなどの人気のある自動化プラットフォームとの統合機能に対応
- FrigateはHome Assistantのメディアブラウザーに直接統合され、即時利用可能なカメラフィードとオートメーションへの活用が可能です
- リアルタイムのセンサーおよびスイッチデータを公開することで、さまざまな通知・自動化シナリオを構成できます
- MQTTを活用した拡張性のある連携性を基盤に、効率的なスマートホーム構築が可能です
Frigate NVRと主な機能
- Frigate NVRはローカルで物体検知AIを実行し、外部のクラウドサービスに依存せずにセキュリティカメラ映像を解析できます
- Home Assistant、OpenHAB、Node-REDなどと連携でき、さまざまなスマートホームオートメーションプラットフォームに簡単に統合可能です
- FrigateはHome Assistantのメディアブラウザーにカメラ映像を直接表示し、低遅延のカメラエンティティを提供します
- 物体検知結果をリアルタイムのセンサーおよびスイッチデータとして公開することで、映像ベースのイベント検知、オートメーションルール、通知設定など多様な活用可能性を示しています
- MQTTプロトコルをサポートすることで、他のIoTおよび自動化システムとの拡張性のある連携を実現できることが強みです
1件のコメント
Hacker Newsコメント
私はFrigateを2年以上運用してきたが、検知速度と信頼性の面で、試したどのシステムよりもはるかに優れていると実感した。以前はRing、Tapo、Eufy Securityなども試したが、現在はTapoカメラのみをRTSPストリームでFrigateに接続して使用している。これらのカメラはインターネット接続を切っているため、プライバシーも完全に守られている。Eufy Securityは、モーション検知アラートを開くたびに新製品広告を表示するなど、広告を自分たちのセキュリティより優先するので信頼できなかった。さらに、有料メンバーシップを払っているのにクラウド映像が開けない問題、パスワードなどの認証情報を暗号化せず保存する問題もあった。こうした点が、私がセルフホスティングソリューションに移った主な理由だ。Frigateは中古ハードウェアとRX 550 GPUでハードウェアアクセラレーションを有効化し、検知遅延は常に1秒未満だ。Frigate APIを使って、スクリーンショット通知をTelegramとPushoverに送るアプリも自作し、2年間ほぼ自律的に運用してきた。その間、サービス再起動は2回しかなかった。VPSから自宅のローカルサーバへトンネリングすることで、外部からも完全に使えている。この素晴らしいプロジェクトには本当に感謝している
Home Assistantと連携しているか気になっている。参考までに、私のISPはhacsサイトへのアクセスを遮断しているため、HACSインテグレーションが正しく機能しない。
wgetでget.hacs.xyzを取得してインストールしようとしてもSSL関連エラーで接続が切れるカメラをインターネットから遮断し、ローカルネットワークのみに置いているが、念のためバックチャネル送信も防ぐ独自手法があれば共有してほしい
EufyカメラをFrigateで使えるか知りたい
Tapoカメラでrtspモード時にFrigateとうまく互換させる方法が知りたい。私はカメラ1台をWi-Fiに接続するだけでネットワークが非常に不安定になる。帯域や1AP当たり1台ずつに分けたのに、問題は残った
これほど機密性の高い映像データを最初からどうして彼らに任せていたのか、少し驚いている。以前はGNU運動家たちが気味悪く感じたが、今は広告ブロッカーすら使わない同僚たちのことが理解できない
私のいつもの不満点はこれだ。最初の文でNVRという略語を説明なしに使っている。NVRはNetwork Video Recorderの略だ。誰もがその分野の経験者とは限らないので、そうしないでほしい
NVRの意味を訪問者が知っていると想定するのは合理的だと思う。少なくともFrigateの文脈で、十分理解できるだろう
それには同意しない。Frigateを探す人の90%以上がNVRを知っているだろうと考える。もちろん全用語を定義すればよいが、NVRは少なくともその製品を使おうとする人が必ず理解している常識レベルのはずだ
一般的にはそう思うが、NVRは業界の人だけでなく消費者の間でも本当に一般的な略語だ。CCTVソリューションを調べる人ならほぼ全員がNVRという言葉に触れる。もし知らないならNetwork Video Recorder自体の意味もない。Frigateの目的はまさに、このようなクローズドで融通の利かない箱(NVRボックス)を置き換えることだから、製品名にもその言葉が使われている
実際の店舗でもほとんどがNVRまたはNVR Recorderとして販売されている(私の経験では)。検索すればすぐ答えが出る
GPU/TPUは必須ではない。カメラ数が少なく検知領域を適切に設定すればよい。私は低解像度/低フレームのMJPEGサブストリームを検知用途として使い、h264は録画/視聴用途だけで使う。CPU推論ではOpenVINOが標準のTensorflowよりずっと速く、6コアVM(Ivy Bridge Xeon)で2台のカメラを動かしてもCPU使用率は約20%にとどまる
動画アクセラレーション(オブジェクト認識ではなく映像デコード)はやや不安定だが、その先のリアルタイム・オブジェクト認識ソリューションとしては最高の体験だった。もう小さな動物で夜中に起こされることはない。参考までに、私は年間サブスクで、私の誤検知データを使ってAIモデルを学習することをサポートしている。これにより精度は大幅に向上した
動物のため夜に起こされないのは良いことだが、さまざまな動物の写真を集められるのは不思議なことだ。隠れていた世界を見つけた気がする
Coral AIボードのドライバとソフトは典型的なGoogle Abandonware(tm)で問題がある。古いPythonを強制するため、新しいOSやGPUとの互換性が悪い。2025年になってもWindows 7級のソフトを必要とするハードを買ったことになる
私の場合、状況は悪化し続けている。2~3年連続で使っているが、最近は子どものおもちゃや庭のスケートボード、海賊旗などがずっと誤検知を引き起こす。個人プライバシーの問題で誤検知データ提出ができないため、蓄積した自分のデータで自分でモデルを学習する予定だ
そのサブスクを払う理由は何点かある。1) 開発者支援 2) トレーニングコストが明確に反映される 3) 学習済みモデルを永続保存できる。AgentDVRとは真逆だ。リモートアクセスやプッシュ通知は自分で対応できるが、AgentDVRは単にVPNアクセスするだけでも月額課金を要求する
Frigateのパッケージ完成度には驚く。デフォルトではgo2rtcやMediaMTXも十分だが、AI処理を入れたければ、ユニックスらしいシンプルなツールは特にない。Pythonで直接実装する必要がある
録画済み動画をリアルタイムで処理するのではなく、たとえば5時間の動画から、特定の場所を通過する車両や、運転者がスマホを持っているシーンだけを抽出したい場合、どこから手を付け、どのフレームワークを使うべきか
OpenCVのドキュメントとサンプルを参照するのを勧める。私はOpenCVで顔認識(face_recognition例)をやっていて、車両などは別途モデルを訓練するか、YOLOv3(YOLO例)のようなものを適用する必要がある
いい商用AIにこの質問をすれば、Pythonで動画を読み込み、特定時間帯に運転者がスマホを持っている場合だけ出力するスクリプトをすぐに出してくれるだろう
You Only Look Once技術が役立つかもしれない
他人が『自分のセキュリティシステムを無視しろ』と書いた大きな看板を立てれば無力化できるのではないかというジョーク的な質問だ
Githubを見るとOpenCVとTensorflowを使っている。モーション検知はopenCVベースなので、人が動く必要があり、かなりゆっくりでない限り回避不能だ。オブジェクト認識(Tensorflow)はOCRを行わないので文字だけでシステムを騙せない。ただし検知オブジェクトのリストが限定的なので、木の模様の服装などで回避可能かもしれない
いわゆる「scramble suit」や、認識回避用プリント入りTシャツを着る方法もあるだろう(scramble suit, adversarial t-shirts)
全身アライグマーの服を着て歩く方法もある
構成は2段階。第1段階はOpenCVでモーション検知、第2段階はハードウェアで異なるモデルでROI内のオブジェクト認識を行う。Coral TPU、Halio Accelerator、ほとんどのGPUをサポート(AMDはROCmがiGPUでは動作しない)。Coralはedgedet、さらにYOLO-NAS、YOLO、D-Fine、RF-DETRをサポートしている。YOLO-NAS専用の有料モデルがあるか、または自分でトレーニングも可能
LLMではなく「普通の」AIモデルだ(ただしLLMで説明の自動生成は可能)
Frigateを5台のIPカメラ(Hikvisionが3台、Amcrestが2台)とUSBカメラ1台で使っている。USB Coral TPUで、古いi7-6700でもCPU使用率は30%前後で安定して動作している。最高ではないが十分使える。Amcrest映像は再生されるが、Hikvisionはコーデック互換問題でトランスコーディングが必要な場合がある。録画映像を外部へ送る内蔵機能がないため、ストレージディレクトリを自前でミラーしても、重要なイベントだけを分離してバックアップするのは構造上難しい
GPU/TPUがなくても、カメラ数と検知エリアをうまく調整すればCPUだけで十分だと強調したい。OpenVINO、Tensorflowなど、さまざまなモデルの使用経験を共有
少し話は変わるが、なぜ今でも自分で監視しているセキュリティカメラを設置するのか疑問だ。この種のカメラは逆にストレスと不安を高めるという心理学の研究がある。実際の犯罪抑止に大きな効果はなく、警察の捜査や保険の証拠にはオフサイトバックアップが必要に見える。CCTVが普及していても、実際に犯罪解決(車両番号を識別するなど)に有意に寄与するケースは極めて少ない
カメラ設置の重要な利点は、市民的秩序の抑止力だ。玄関上にカメラを付けた後、宅配員が荒っぽい行動をしなくなり、フェンスの破損も減った。猫の位置追跡や外出時の遠隔監視、保険請求にも役立つ。一方で、安価なCCTVのほとんどで解像度より夜間IR感度のほうが重要だと感じる。識別目的には低解像度の高性能カメラを使っている。オープンソースではZoneMinderとローカルAIを組み合わせて長年使っている
「ストレスが高まり不安が増える」という点は、読者の感情まで指摘しているように思えて少し不快だ。使う理由は人それぞれだと思う
人は環境、危険度、警察の支援レベルが異なるため、各自で基準、目的、心理が違って監視カメラを運用している。私は人通りの少ない場所に住んでおり、長く家を空けることもあるが、カメラなしの期間より監視できる安心感のほうが大きい
私のドアベルはローカル録画機能があり、インターホンが鳴ると数秒前の画像をデスクトップ/スマホ通知で受け取れる。誰かが来たか確認し、対応を決められるので便利で、家の周囲にカメラを設置してLLMで新種を数えたり、「犬は裏庭にいる?」のようなクエリを投げたりできる
Frigateの主な目的は、ユーザーが常時監視しなくてもよいことだ。小動物の誤検知や知人の車などは気にしなくてよく、重要なイベントだけに集中すればよい
Frigateを4年間使っている既存ユーザーだ。Home AssistantなしでFrigateだけを使ってきたが、最近Home Assistantを再導入し、Nest CamのWebRTCストリームをFrigateにつなげた。これでNest Awareサブスクなしでも同じように使えるようになり、経済的に満足している