
フリゲート艦とホームアシスタントを備えたビデオ監視システム
ホームアシスタントをお持ちで、ビデオ監視システムを設定したい場合は、次のことができます (家庭やビジネス向け), まあ、フリゲートをセットアップするしかない, オープンソースとは?. テレグラムでメッセージを受信できるようになります (写真とビデオ付き), カメラが人を検知したとき, イヌ, 猫, 鳥類, 馬匹…
まぁ, 考え方はシンプルです, 防犯カメラを持っている、または設置したい, ビデオ監視, 良質ですが安価なIPカメラで、システムを自分で管理します. どこ フリゲート これは、各カメラを一元化し、必要なものを構成するのに役立ちます. フリゲート艦は、 オブジェクト と私たちは言いました, 人の検出方法, あらゆる種類の動物, 車, 登録… 必要に応じて、指定した時間だけクリップとビデオを保存します。. そして、生成されたイベントは、一連の要因に応じて、それらをHome Assistantに送信できます (私たちは外出しています, 私たちは眠っています…) テレグラムや私たちが望むものなら何でも私たちに警告します.
フリゲートはDockerコンテナで実行されます, また、搭載しているカメラの数によっては、多くのCPUを使用する必要があり、検出のパフォーマンスを向上させるアクセラレータハードウェアを使用することをお勧めします. すべては多くの要因に依存します, カメラで変化するピクセルが多数ある場合は、分析を回避するためにいつでもゾーンを作成できます; カメラの数またはカウント, Raspberry Piで実行できるので. 対して 4-5 カメラ Google Coral USBアクセラレータ 私たちはうまくやっています, コプロセッサです, 負荷を移動するのに役立つ外部TPU.
Coral USBアクセラレータ,
まぁ, これにより、多かれ少なかれ魚が売られるからです, よろ🙂しければ始めましょう。まず、Dockerを搭載したマシンを用意することから始めましょう。, この記事はRaspberry Piに基づいています 4, 2つ目は、Google Coral USBアクセラレータのドライバーをインストールします (または私たちが使用するもの). これを行うには、, Googleリポジトリをダウンロードします:
エコー "デブ https://packages.cloud.google.com/apt coral-edgetpu-stable メイン" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get アップデート
ランタイムとPyCoralライブラリをインストールしました:
sudo apt-get install libedgetpu1-std #Para 最大パフォーマンス --> sudo apt-get libedgetpu1-max sudo apt-get python3-pycoral -y をインストールする
これで、Raspberry Piがすでにデバイスを認識しているかどうかをテストする準備が整いました, サンプルモデルをダウンロードして検証できます:
ワード推奨 && cd coral git clone https://github.com/google-coral/pycoral.git cd pycoral bash examples/install_requirements.sh classify_image.py python3 examples/classify_image.py \ --モデルtest_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \ --ラベル test_data/inat_bird_labels.txt \ --入力test_data/parrot.jpg
そして、すべてがうまくいけば、このようなものを手に入れることができます:
----推論時間---- 手記: Edge TPU での最初の推論は、Edge TPU メモリへのモデルの読み込みが含まれるため、低速です. 11.8MS 3.0MS 2.8MS 2.9MS 2.9MS -------結果-------- アラマカオ (スカーレットコンゴウインコ): 0.75781
フリゲートのデプロイ,
前述したように、フリゲートはインストールされません, コンテナにデプロイします, そのため、以前にDockerをインストールする必要があることを忘れないでください. そして始める前に、フリゲートの構成ファイルを作成する必要があります. 私の場合、 '/mnt/config.yml のままにします’ そして、これは最小限の例です, ここで、イベントを送信するMQTTサーバーが誰であるかを説明します, BDパス, ログ, (必要 に応じて) Coralアクセラレータがあるかどうかを示し、カメラを追加します, 私は最小限の例を主張します:
MQTTの: ホスト: DIRECCIÓN_IP_MQTTポート: 1883 利用者: パスワードUSUARIO_MQTT: CONTRASEÑA_MQTTデータベース: パス: /メディア/フリゲート/frigate.dbロガー: デフォルト: 情報ログ: フリゲート.イベント: デバッグ
検出 器:
珊瑚:
種類: エッジ tpu
デバイス: USB接続
カメラ: NOMBRE_DE_LA_CAMARA: FFメペグ: 入力: - パス: RTSPの://USUARIO_RTS:CONTRASEÑA@DIRECCION_IP_CAMARA:554/av_stream/ch0検出: 幅: 1280 高さ: 720
現在、フリゲート艦は 0.10.1, そして、これらは私たちが持っているマシンに応じて彼らが私たちに与えるさまざまな画像です:
- x86の: ブレイクブラックシャー/フリゲート:0.10.1-AMD64の
- x86 w/ nvidia (ffmpegのみ): ブレイクブラックシャー/フリゲート:0.10.1-AMD64のNVIDIA
- ラズベリーパイ 3/4 (32ビット): ブレイクブラックシャー/フリゲート:0.10.1-アームv7
- ラズベリーパイ 4 (64ビット): ブレイクブラックシャー/フリゲート:0.10.1-aarch64さん
コンテナを作成して起動する必要があります, USBデバイスをお渡しします, のサイズを大きくします 共有メモリ, Frigateが必要とするすべてのデータを保存するディレクトリを渡します (クリップ, 録音…), 設定ファイルを渡します, 時, RTSPパスワードとその管理に使用するポート (5000TCPの), その後、, 私たちが求めるイメージ; Raspberry Piから 4 実行する:
Sudo Docker Run -D --Name Frigate --Restart=Unless-Stopped --Mount Type=tmpfs,target=/tmp/cache,tmpfs-size=10000000000 --device /dev/bus/usb:/dev/bus/usb --shm-size=128m -v /media/frigate:/メディア/フリゲート -v /mnt/config.yml:/config/config.yml:ro -v /etc/localtime:/etc/現地時間:ro -e FRIGATE_RTSP_PASSWORD='CONTRASEÑA' -p 5000:5000 -p 1935:1935 ブレイクブラックシャー/フリゲート:0.10.1-aarch64さん
そして、すべてがアンロードされ、コンテナが始動する数分後、フリゲート艦に接続できます, ブラウザを介してHTTPにアクセスします://DIRECCION_IP_DOCKER:5000 そして、上の画像のようなものになります.
R+Dに必要なDockerコマンドをいくつかお任せください:
sudo Docker PS -a # Lista contenedores sudo docker stop ID_CONT # Apaga contenedores sudo docker start ID_CONT # Arranca contenedores sudo docker restart ID_CONT # Reinicia contenedores sudo docker rm ID_CONT # Elimina contenedores sudo docker system prune -a # キャッシュやその他のゴミを削除し、注意してください! sudo Dockerログ ID_CONT -f # コンテナによって生成されたログを表示する
そして、誰もが自分の好みに合わせてフリゲートを開発する必要があります, 私はあなたに任せます リンク 設定ファイルとそのすべての可能性. フリゲート艦からのすべてのカメラを見ることができます, またはバードアイを使用します, これは画面がオフになり、カメラに動きがあるときにオンになります, または、収集したイベントを表示する…
私たちにはたくさんの可能性があります, 各カメラでマスクを作成して、動きのある興味のない領域をスキャンするのを防ぐことができます, 誤検知を最小限に抑えるため, なぜなら、外部の人を見つけても無駄だからです, 路上で, または、不要な計算を生成する移動ポット… または、ゾーンを作成して、異なるカメラを統一します… かなり多くの可能性があります. 私がカメラで使用している構成がガイドとして役立つ場合に備えて、私はあなたを残します, そして、各カメラの役割を見ることができます, 追跡するオブジェクトの種類, 解像度, FPSの, 画像の保存時間, ビデオ… :
CAMARA03: FFメペグ: output_args: 記録: -fセグメント-segment_time 10 -segment_format mp4 -reset_timestamps 1 -strfタイム 1 -c:v コピー -c:aac入力: - パス: RTSPの://USUARIO_RTSP:CONTRASEÑA@DIRECCION_IP_CAMARA:554//h264Preview_01_mainロール: - 見付ける - クリップ - ターンプ - 記録 - モーションスナップショット: マスク: - 1136,79,1045,62,683,33,576,55,484,69,213,114,30,161,129,278,221,370,238,673,145,709,187,834,253,960,0,960,0,0,954,0,1040,0,1280,0,1280,122 - 1280,402,901,274,708,224,491,191,473,50,503,53,511,159,690,186,692,149,777,156,789,87,893,120,1083,156,1280,224 見付ける: 幅: 1280 高さ: 960 FPSの: 5 オブジェクト: トラック: - 人 - 猫 - 犬 #- 鳥の記録: 有効: 真のretain_days: 0 イベント: 保つ: デフォルト: 10 スナップショット: bounding_box: true が有効: true タイムスタンプ: 真の保持: デフォルト: 10
フリゲート艦とホームアシスタントの統合
ご覧のとおりです, Home AssistantにFrigateを直接インストールしていません, 何ができるか, しかし、それは環境によると思いますし、パフォーマンス上の理由から、コンポーネントを分離する方が良いでしょう. だから、フリゲートを横に、ホームアシスタントを自分の側に, 特にフリゲートは多くのコンピューティングを必要とするため.
Home AssistantとのFrigate統合をインストールするには、HACKSを使用するのが最も便利です. “ハック” > “統合” > “フリゲート” >ダウンロードしてインストールし、その後にホームアシスタントを再起動してください. リストにない場合, このリポジトリ 'https を追加します://github.com/blakeblackshear/frigate-hass-integration'.
統合がインストールされたら、それを構成します, 統合に移動しましょう, をクリックし、[新しい統合を追加] をクリックします, 「フリゲート」を書きました…
そして何もない, 私たちがしなければならないのは、フリゲートのURLを示すことだけです, クリック “送信”. これにより、Frigateで定義したカメラを持つすべてのエンティティがすでに作成されています, あとは、私たちをコントロールパネルにするだけです!
きっと、しばらくすれば君は僕よりも上手くやれると思うよ, これはの一例です。 4 カメラ, 何が起こっているのかをリアルタイムで確認できる場所, カメラをクリックしてマイクが付いている場合は、問題なく聞くこともできます. 各カメラが最後に検出したクリップをいくつか追加できます, そのうちの1つを押すと、ビデオが再生されます…
そして、これがホームアシスタントの自動化の例です, それは夜に猫を検出した場合です, 彼の写真を撮る, テレグラムで送ったところ、見たい場合に備えてビデオへのリンクを貼ってお送りしました. オートメーションは MQTT イベントをリッスンし、テンプレートを使用して、期待するオブジェクトを定義します, この場合は猫です. そして、私たちが望む行動, 写真とビデオへのリンクを受け取るために使用できるYAMLの例を残します:
サービス: telegram_bot.send_photoデータ: 関連URL: >- HTTPの://DIRECCION_IP_FRIGATE:5000/api/events/{{trigger.payload_json["後"]["身分証明書"]}}/snapshot.jpg?bbox = 0&crop=1キャプション: >- {{trigger.payload_json["後"]["カメラ"]|取り替える("フリゲート_","") | アッパー }} {{trigger.payload_json["後"]["ラベル"] | アッパー }} [ビデオを見る](httpsの://DIRECCION_IP_FRIGATE/api/events/{{trigger.payload_json["後"]["身分証明書"]}}/clip.mp4) タイムアウト: 1000
すべてがうまくいった場合, 結果は次のようになります, なぜなら、特定の時間に私たちが受け取る訪問を知るためです, 明らかに、これは人や他の種類のオブジェクトに適用できます, 動物…
ご覧の通り、私たちができることはすべて非常に順応性があります, それぞれが自分の特殊性や何を複雑にしたいかによって異なります… 面白かっただけたでしょうか, 独自のシステムをセットアップするのは、実際にはそれほど高価ではありません, プライベートな画像を外部に持ち出したり、第三者が操作したりすることなく. また、どの商用ソリューションよりも優れたパフォーマンスが得られると確信しています.
フリゲートは梨であり、ホームアシスタントは全能の神です, 何もない, 私はそれが望ましいと願っています, あなたが気に入ったもの, 試みる, ソーシャルネットワークを通じてこのタイプのコンテンツを移動しているあなたのいつものように幸せで感謝してください. tod@sへの抱擁!