Ultralytics YOLO26を使用したセキュリティアラームシステムプロジェクト#
Ultralytics YOLO26を活用したセキュリティアラームシステムプロジェクトでは、高度なコンピュータービジョン機能を統合し、セキュリティ対策を強化します。Ultralyticsが開発したYOLO26は、リアルタイムの物体検出を提供し、潜在的なセキュリティ上の脅威を迅速に特定して対応できるようにします。このプロジェクトには、次のようなメリットがあります。
- リアルタイム検出: YOLO26の効率性により、セキュリティアラームシステムはセキュリティインシデントをリアルタイムで検出して対応できるため、対応時間を最小限に抑えられます。
- 精度: YOLO26は物体検出の精度に定評があり、誤検出を減らしてセキュリティアラームシステムの信頼性を高めます。
- 統合機能: このプロジェクトは既存のセキュリティインフラストラクチャにシームレスに統合でき、インテリジェントな監視機能を強化します。
YOLO26でセキュリティアラートを送信#
SecurityAlarmソリューションは動画フィード内のオブジェクトを追跡し、検出数がrecordsのしきい値に達すると、注釈付き画像を添付したメールアラートを1通送信します。アプリパスワードを使ってGmailアカウントを認証し、ソースに対してソリューションを実行します。
アプリパスワード生成ツールに移動し、「security project」などのアプリ名を指定して、16文字のパスワードを取得します。このパスワードをコピーし、以下のコードのpasswordフィールドに貼り付けます。
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# 動画ライター
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("security_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
from_email = "abc@gmail.com" # 送信者のメールアドレス
password = "---- ---- ---- ----" # 16文字のアプリパスワードの生成元: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # 受信者のメールアドレス
# セキュリティアラームオブジェクトを初期化
securityalarm = solutions.SecurityAlarm(
show=True, # 出力を表示する
model="yolo26n.pt", # 例: yolo26s.pt、yolo26m.pt
records=1, # メール送信に必要な検出数
)
securityalarm.authenticate(from_email, password, to_email) # メールサーバーを認証する
# 動画を処理
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = securityalarm(im0)
# print(results) # 出力にアクセス
video_writer.write(results.plot_im) # 処理済みフレームを書き込みます。
cap.release()
video_writer.release()
cv2.destroyAllWindows() # 開いているすべてのウィンドウを破棄コードを実行すると、オブジェクトが1つでも検出された場合に、メール通知が1回届きます。通知はすぐに送信され、繰り返し送信されることはありません。プロジェクトの要件に合わせてコードをカスタマイズできます。
メール受信サンプル#
SecurityAlarmの引数#
SecurityAlarmの引数を以下の表に示します。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
records | int | 5 | セキュリティ警報システムでメールを送信するトリガーとなる検出数の合計です。 |
line_width | int | 2 | Solutionが描画するボックス、キーポイント、カウント表示の線幅です。 |
verbose | bool | True | 各フレームの入力shape、クラス数、処理速度を記録するSolutionのログを有効にします。トラッキング呼び出し自体は常にログを出力しません。 |
SecurityAlarmソリューションは、さまざまなtrackパラメーターに対応しています。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | 使用するトラッキングアルゴリズムを指定します。組み込みのオプション:botsort.yaml、bytetrack.yaml、ocsort.yaml、deepocsort.yaml、fasttrack.yaml、tracktrack.yaml。 |
conf | float | 0.25 | 検出の信頼度しきい値を設定します。値を低くすると、より多くの物体を追跡できますが、誤検出が含まれる可能性があります。 |
iou | float | 0.7 | 重複する検出をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。 |
classes | list | None | クラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]を指定すると、指定したクラスのみを追跡します。 |
device | str | None | 推論に使用するデバイスを指定します(例:cpu、cuda:0、0)。モデル実行に使用するCPU、特定のGPU、その他の計算デバイスを選択できます。 |
imgsz | int or tuple | 640 | 推論時の入力画像サイズです。正方形の場合は整数、または(height, width)のペアを指定します。形状はモデルのストライドに合わせて調整されます。 |
max_det | int | 300 | トラッキング前にフレームごとに保持する検出の最大数です。混雑したシーンでソリューションが処理する物体数を制限します。 |
quantize | int or str | None | 推論精度: CPU以外で実行するPyTorchおよびTorchScriptモデルでは、16(FP16)または32/未設定(FP32)を使用します。その他の形式では、アーティファクトとランタイムによって選択される精度が使用されます。非推奨のhalf引数を置き換えます。 |
さらに、次の可視化設定を利用できます。
| 引数 | 種類 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付き画像または動画をウィンドウに表示します。開発やテスト中にすぐ視覚的なフィードバックを得るのに便利です。 |
show_conf | bool | True | 各検出のラベルとともに信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。 |
show_labels | bool | True | 可視化出力で各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。 |
仕組み#
Security Alarm Systemはオブジェクトトラッキングを使用してビデオフィードを監視し、潜在的なセキュリティ上の脅威を検出します。フレーム内の検出オブジェクト数が指定したしきい値(recordsパラメーターで設定)に達すると、検出オブジェクトを示す画像を添付したメール通知を自動的に送信します。
SecurityAlarmクラスには、次の処理を行うメソッドが用意されています。
- フレームを処理し、オブジェクト検出結果を抽出します
- 検出オブジェクトの周囲にバウンディングボックスを描画して、フレームにアノテーションを付けます
- 検出しきい値に達したときにメール通知を送信します
この実装は、検出オブジェクトの即時通知が重要となるホームセキュリティ、小売店の監視、その他の監視アプリケーションに最適です。
よくある質問#
Ultralytics YOLO26は、高精度かつリアルタイムのオブジェクト検出により、セキュリティアラームシステムを強化します。高度なアルゴリズムによって誤検出を大幅に削減し、システムが実際の脅威にのみ反応するようにします。信頼性が向上するため、既存のセキュリティインフラストラクチャにシームレスに統合でき、監視品質全体を向上させます。
はい。Ultralytics YOLO26は既存のセキュリティインフラストラクチャにシームレスに統合できます。システムはさまざまなモードに対応し、柔軟なカスタマイズが可能なため、高度なオブジェクト検出機能を既存のセットアップに追加できます。プロジェクトへのYOLO26の統合方法について詳しくは、統合セクションをご覧ください。
標準的な環境でUltralytics YOLO26を実行するには、通常、約5GBの空きディスク容量が必要です。この容量には、YOLO26モデルと追加の依存関係を保存するための領域が含まれます。クラウドベースのソリューションでは、Ultralytics Platformを活用してプロジェクト管理とデータセット管理を効率化し、ストレージの必要量を最適化できます。ストレージの拡張などの追加機能については、Pro Planをご覧ください。
誤検出を減らすには、多様で適切にアノテーションされたデータセットを使って、Ultralytics YOLO26モデルを十分にトレーニングしてください。ハイパーパラメーターを微調整し、新しいデータでモデルを定期的に更新すると、検出精度を大幅に向上できます。詳しい手法は、ハイパーパラメーターのチューニングとハイパーパラメーター調整ガイドをご覧ください。