Ultralytics YOLO27:

Ultralytics YOLO26を使用したセキュリティアラームシステムプロジェクト#

AI-powered security alarm system with object detection

Ultralytics YOLO26を活用したセキュリティアラームシステムプロジェクトは、高度なコンピュータービジョン機能を統合し、セキュリティ対策を強化します。Ultralyticsが開発したYOLO26は、リアルタイムの物体検出を提供し、システムが潜在的なセキュリティ脅威を迅速に特定して対応できるようにします。このプロジェクトには、次のような利点があります。

  • リアルタイム検出: YOLO26の効率性により、セキュリティアラームシステムはセキュリティインシデントをリアルタイムで検出して対応できるため、対応時間を最小限に抑えられます。
  • 精度: YOLO26は物体検出の精度に定評があり、誤検出を減らしてセキュリティアラームシステムの信頼性を高めます。
  • 統合機能: このプロジェクトは既存のセキュリティインフラストラクチャにシームレスに統合でき、インテリジェント監視のレイヤーを強化します。


Watch: Security Alarm System with Ultralytics YOLO26 + Solutions Object Detection

YOLO26でセキュリティアラートを送信する#

SecurityAlarmソリューションはビデオフィード内の物体を追跡し、検出数がrecordsのしきい値に達すると、注釈付き画像を添付したメールアラートを1通だけ直ちに送信します。アプリパスワードでGmailアカウントを認証してから、ソース上でソリューションを実行します。

アプリパスワードが必要です

App Password Generatorに移動し、「security project」などのアプリ名を指定して、16桁のパスワードを取得します。このパスワードをコピーし、以下のコードのpasswordフィールドに貼り付けます。

Ultralytics YOLOを使用したセキュリティアラームシステム
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
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"  # the sender email address
password = "---- ---- ---- ----"  # 16-digits password generated via: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com"  # the receiver email address

# Initialize security alarm object
securityalarm = solutions.SecurityAlarm(
    show=True,  # display the output
    model="yolo26n.pt",  # e.g., yolo26s.pt, yolo26m.pt
    records=1,  # total detections count to send an email
)

securityalarm.authenticate(from_email, password, to_email)  # authenticate the email server

# Process video
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)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

コードを実行すると、いずれかの物体が検出された場合にメール通知が1通届きます。通知は繰り返しではなく、直ちに送信されます。プロジェクトの要件に合わせてコードをカスタマイズできます。

受信したメールのサンプル#

Security alert email notification example

SecurityAlarmの引数#

以下にSecurityAlarmの引数を示します。

引数デフォルト説明
modelstrNoneUltralytics YOLOモデルファイルへのパスです。
recordsint5セキュリティ警報システムのメールを送信するトリガーとなる検出数の合計です。
line_widthint2ソリューションが描画するボックス、キーポイント、カウントの線の太さです。
verboseboolTrue入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。

SecurityAlarmソリューションは、さまざまなtrackパラメーターをサポートしています。

引数デフォルト説明
trackerstr'botsort.yaml'使用するトラッキングアルゴリズムを指定します。組み込みオプション:botsort.yamlbytetrack.yamlocsort.yamldeepocsort.yamlfasttrack.yamltracktrack.yaml
conffloat0.25検出の信頼度しきい値を設定します。値を下げるとより多くのオブジェクトを追跡できますが、誤検出が含まれる可能性があります。
ioufloat0.7重複する検出結果をフィルタリングするためのIntersection over Union(IoU)しきい値を設定します。
classeslistNoneクラスインデックスで結果をフィルタリングします。たとえば、classes=[0, 2, 3]は指定されたクラスのみを追跡します。
devicestrNone推論に使用するデバイスを指定します(例:cpucuda:00)。CPU、特定のGPU、その他の計算デバイスから、モデルの実行に使用するものを選択できます。
imgszint or tuple640推論対象の画像サイズ:正方形の場合は整数、または (height, width) のペアです。形状はモデルのストライドに合わせて調整されます。
max_detint300トラッキング前にフレームごとに保持される検出の最大数。高密度なシーンにおいてソリューションが処理するオブジェクトの数を制限します。
quantizeint or strNone推論精度:PyTorchおよびTorchScriptモデルの場合は 16 (FP16)または 32 /未設定(FP32);その他のフォーマットは、その成果物とランタイムが選択する精度で計算を行います。非推奨となった half フラグに置き換わるものです。

さらに、次の可視化設定を利用できます。

引数デフォルト説明
showboolFalseTrueの場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即時の視覚的フィードバックに役立ちます。
show_confboolTrue各検出のラベルの横に信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。
show_labelsboolTrue可視化出力に各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。

仕組み#

セキュリティアラームシステムは物体追跡を使用してビデオフィードを監視し、潜在的なセキュリティ脅威を検出します。システムが指定されたしきい値(recordsパラメーターで設定)を超える数の物体を検出すると、検出された物体を示す画像を添付したメール通知を自動的に送信します。

このシステムは、次のメソッドを提供するSecurityAlarmクラスを活用します。

  1. フレームを処理し、物体検出結果を抽出する
  2. 検出された物体の周囲にバウンディングボックスを描画してフレームに注釈を付ける
  3. 検出のしきい値を超えたときにメール通知を送信する

この実装は、家庭のセキュリティ、店舗監視、その他、検出された物体の即時通知が重要となる監視アプリケーションに適しています。

FAQ#

  • Ultralytics YOLO26は、高精度のリアルタイム物体検出を実現することで、セキュリティアラームシステムを強化します。高度なアルゴリズムにより誤検出を大幅に減らし、システムが本物の脅威にのみ対応するようにします。この信頼性の向上により、既存のセキュリティインフラストラクチャへシームレスに統合でき、監視全体の品質を高められます。

  • はい、Ultralytics YOLO26は既存のセキュリティインフラストラクチャにシームレスに統合できます。システムはさまざまなモードをサポートし、カスタマイズにも柔軟に対応できるため、高度な物体検出機能を追加して既存の環境を強化できます。プロジェクトへのYOLO26の統合方法について詳しくは、統合セクションをご覧ください。

  • 標準的な環境でUltralytics YOLO26を実行するには、通常、約5GBの空きディスク容量が必要です。これには、YOLO26モデルと追加の依存関係を保存するための容量が含まれます。クラウドベースのソリューションでは、Ultralytics Platformが効率的なプロジェクト管理とデータセット処理を提供し、必要なストレージ容量を最適化できます。ストレージ容量の拡張などの強化機能については、Pro Planをご覧ください。

  • Ultralytics YOLO26は、リアルタイム検出機能とより高い精度により、Faster R-CNNやSSDなどのモデルを上回ります。独自のアーキテクチャにより、適合率を損なうことなく画像をはるかに高速に処理できるため、セキュリティアラームシステムのような時間が重要なアプリケーションに適しています。物体検出モデルの包括的な比較については、ガイドをご覧ください。

  • 誤検出を減らすには、Ultralytics YOLO26モデルが多様で十分にアノテーションされたデータセットで適切にトレーニングされていることを確認してください。ハイパーパラメーターを微調整し、新しいデータでモデルを定期的に更新すると、検出精度を大幅に向上できます。詳しいハイパーパラメーター調整の手法については、ハイパーパラメーター調整ガイドをご覧ください。

コメント