背景
日常生活において、監視カメラは家庭や企業にとって重要なツールとなっています。しかし、従来の監視システムは通常、画像を記録するだけで、単に動きを検出する機能しかなく、画像の内容に関する詳細な説明を提供することはできません。これにより、ユーザーは動画を視聴したり通知を受け取ったりする際に、何が起こったのかを自分で判断する必要があります。
Frigateは、画像内の人、車、動物などの対象を識別し、関連するイベントをトリガーする効率的なオープンソースのビデオ分析ツールです。しかし、その機能は主に「見る」レベルにとどまり、直接的に「何が起こったか」を伝えることはできません。
この不足を補うために、私たちはOllamaというツールを導入しました。このツールは自然言語での説明を生成することができます。これにより、Frigateが検出した視覚的なコンテンツを「誰かが庭に入った」や「車がドアの前に駐車した」といった明確なテキスト説明に変換できます。
このチュートリアルでは、ZimaOSを使用してFrigateとOllamaを組み合わせ、実用的な視覚的説明システムを作成する方法を説明します。家庭のセキュリティを改善したり、小さなプロジェクトにインテリジェントな機能を追加したりする場合、このソリューションはあなたのニーズを満たすことができます。
ハードウェアの準備
- RTSPプロトコルに対応したカメラ
Frigateにリアルタイムのビデオストリーム入力を提供します。 - ZimaBoard2対応のグラフィックカード
AIモデル推論をローカルで加速するために使用されます(例えば、NVIDIAシリーズのグラフィックカード)。参考グラフィックカード https://www.zimaspace.com/docs/zh/zimacube/GPU-Expansion - 容量6GB以上のハードドライブ
AIモデルファイル、ビデオスナップショット、システムデータを保存するために使用されます。
ソフトウェアのインストール
このシステムのソフトウェアインストールは以下の3つのステップに分かれます:
- データ移行
- OllamaのインストールとLLaVAモデルの設定
- Frigateのインストールと設定
ステップ1: データ移行
AIモデルはサイズが大きいため、事前に独立したハードドライブをインストールして、Dockerのデータディレクトリや個人データをハードドライブに移行することをお勧めします。これにより、ダウンロード中の失敗やストレージ容量不足を防ぎ、システムの安定した動作と十分なストレージ容量を確保できます。
重要なファイルをバックアップして、データ損失を防止してください。データ移行にはリスクが伴う場合があります!!!
グラフィックカードをハードドライブに接続し、デバイスを起動してオペレーティングシステムに入ります。
データ移行
- 左上のメニューアイコンをクリックします。
- 「アプリ」をクリックします。
- 関連するアプリケーションまたはデータ管理項目を見つけ、「移行」ボタンをクリックして移行が完了するのを待ちます。
ステップ1: OllamaのインストールとLLaVAモデルの設定
サポートされているモデルの詳細については、Frigateの公式ドキュメントおよびOllamaの公式サイトをご覧ください。
Ollamaのインストール
- アプリストアを開き、検索バーに「Ollama」と入力します。
- グラフィックカードの種類に応じて適切なバージョンをインストールします(例えば、NVIDIAをサポートするバージョンなど)。
LLaVAモデルの設定
- Olamaターミナルを開き、右上のメニューアイコンをクリックします。
- 「設定」を選択して設定インターフェースに入ります。
- 「ターミナル」アイコンをクリックしてコマンドライン制御インターフェースに入ります。
- 以下のコマンドをコマンドラインに入力して、モデルをダウンロードし、llava-llama3をインストールします。
ollama pull llava-llama3
- 「成功」という文字が表示された場合、モデルのダウンロードが完了し、Ollamaの準備が整いました。
- Ollamaを起動した後、実行中のIPアドレスとポート番号(例:
http://10.0.1.3:11434
)を記録します。これは後でFrigateの設定に使用します。
ステップ3: Frigateのインストールと設定
Frigateのインストール
メインインターフェースの右上にある「プラス」ボタンをクリックします。
「カスタマイズアプリのインストール」を選択します。
「インポート」ボタンをクリックします。
以下のfrigate.yaml設定ファイルをインポートします。
name: pure_grace
services:
frigate:
cpu_shares: 90
command: []
container_name: frigate
deploy:
resources:
limits:
memory: 7766M
devices:- /dev/bus/usb:/dev/bus/usb
- /dev/apex_0:/dev/apex_0
- /dev/video11:/dev/video11
- /dev/dri/renderD128:/dev/dri/renderD128
image: ghcr.io/blakeblackshear/frigate:0.15.0
labels:
icon: https://icon.casaos.io/main/all/frigate.png
ports: - target: 8971
published: “8971”
protocol: tcp - target: 8554
published: “8554”
protocol: tcp - target: 8555
published: “8555”
protocol: tcp - target: 8555
published: “8555”
protocol: udp
privileged: true
restart: unless-stopped
shm_size: “67108864”
volumes: - type: bind
source: /etc/localtime
target: /etc/localtime - type: bind
source: /DATA/AppData/frigate/config
target: /config - type: bind
source: /DATA/Media
target: /media/frigate
cap_add: []
environment: []
network_mode: bridge
x-casaos:
author: self
category: self
hostname: “”
icon: https://icon.casaos.io/main/all/frigate.png
index: /
is_uncontrolled: false
port_map: “8971”
scheme: https
store_app_id: pure_grace
tips: null
title:
custom: “”
en_us: frigate
「送信」をクリックします。
「インストール」をクリックしてインストールが完了するのを待ちます。
Frigateのアカウントとパスワードを取得
Frigateを起動後、ログでデフォルトのアカウントとパスワードを確認し、記録してください。
- Frigateターミナルを開き、右上のメニューアイコンをクリックします。
- 「設定」を選択して設定インターフェースに入ります。
- アプリ内の「ターミナル」アイコンをクリックします。
- 「ログ」タブに切り替えて、起動ログを表示します。
- 右上の「全画面」ボタンをクリックして、デフォルトのユーザー名とパスワードを簡単に見つけることができます。
- アカウントとパスワードの情報が表示されるので、記録してください。
Frigateの設定
- 先ほど取得したアカウントとパスワードを入力し、システムにログインします。
- 左メニューの「設定」ボタンをクリックします。
- 「構成エディタ」を選択して構成ファイル編集インターフェースに入ります。
- 構成エディタで、カメラ関連の設定を追加または変更します。以下の設定例を参考にしてください:
mqtt: |
必ず、rtsp
リンクを自分のカメラアドレスに置き換え、OllamaのIPとポートを実際の実行アドレス(例:http://10.0.1.3:11434
)に設定してください。さもないと、Frigateはビデオストリームにアクセスしたり、AIモデルを接続して分析を行ったりできません。
5. 設定が完了したら、「保存」をクリックし、Frigateが自動的に新しい設定を適用して実行を開始します。
Frigateが監視画面で人物オブジェクトを検出すると、自動的にスナップショットを撮影し、AIモデルを呼び出して対応する画像の説明を生成します。検出するオブジェクト、使用するモデル、プロンプトの内容を実際のアプリケーションシナリオに合わせて自由に調整することができ、よりインテリジェントでパーソナライズされた監視体験を作成できます。
構築完了
これで、FrigateとOllamaを使用したインテリジェント監視システムの構築が完了しました。リアルタイム画面を通じて検出効果を確認するか、ログとスナップショットページに入ってAI分析が正常に動作しているかを確認できます。
さらに体験を最適化するために、通知サービスにアクセスしたり、モデルのパラメータを調整したり、カメラを追加したりしてみてください。