Ultralytics YOLO26を使用したセキュリティアラームシステムプロジェクト#
Ultralytics YOLO26を活用したセキュリティアラームシステムプロジェクトは、高度なコンピュータービジョン機能を統合し、セキュリティ対策を強化します。Ultralyticsが開発したYOLO26は、リアルタイムの物体検出を提供し、システムが潜在的なセキュリティ脅威を迅速に特定して対応できるようにします。このプロジェクトには、次のような利点があります。
- リアルタイム検出: YOLO26の効率性により、セキュリティアラームシステムはセキュリティインシデントをリアルタイムで検出して対応できるため、対応時間を最小限に抑えられます。
- 精度: YOLO26は物体検出の精度に定評があり、誤検出を減らしてセキュリティアラームシステムの信頼性を高めます。
- 統合機能: このプロジェクトは既存のセキュリティインフラストラクチャにシームレスに統合でき、インテリジェント監視のレイヤーを強化します。
YOLO26でセキュリティアラートを送信する#
SecurityAlarmソリューションはビデオフィード内の物体を追跡し、検出数がrecordsのしきい値に達すると、注釈付き画像を添付したメールアラートを1通だけ直ちに送信します。アプリパスワードでGmailアカウントを認証してから、ソース上でソリューションを実行します。
App Password Generatorに移動し、「security project」などのアプリ名を指定して、16桁のパスワードを取得します。このパスワードをコピーし、以下のコードのpasswordフィールドに貼り付けます。
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通届きます。通知は繰り返しではなく、直ちに送信されます。プロジェクトの要件に合わせてコードをカスタマイズできます。
受信したメールのサンプル#
SecurityAlarmの引数#
以下にSecurityAlarmの引数を示します。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
model | str | None | Ultralytics YOLOモデルファイルへのパスです。 |
records | int | 5 | セキュリティ警報システムのメールを送信するトリガーとなる検出数の合計です。 |
line_width | int | 2 | ソリューションが描画するボックス、キーポイント、カウントの線の太さです。 |
verbose | bool | True | 入力形状、クラス数、処理速度をフレームごとにログに記録する機能を有効にします。トラッキング処理自体は常にサイレントです。 |
SecurityAlarmソリューションは、さまざまなtrackパラメーターをサポートしています。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
tracker | str | 'botsort.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 | 推論精度:PyTorchおよびTorchScriptモデルの場合は 16 (FP16)または 32 /未設定(FP32);その他のフォーマットは、その成果物とランタイムが選択する精度で計算を行います。非推奨となった half フラグに置き換わるものです。 |
さらに、次の可視化設定を利用できます。
| 引数 | 型 | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | Trueの場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即時の視覚的フィードバックに役立ちます。 |
show_conf | bool | True | 各検出のラベルの横に信頼度スコアを表示します。各検出に対するモデルの確信度を確認できます。 |
show_labels | bool | True | 可視化出力に各検出のラベルを表示します。検出されたオブジェクトをすぐに把握できます。 |
仕組み#
セキュリティアラームシステムは物体追跡を使用してビデオフィードを監視し、潜在的なセキュリティ脅威を検出します。システムが指定されたしきい値(recordsパラメーターで設定)を超える数の物体を検出すると、検出された物体を示す画像を添付したメール通知を自動的に送信します。
このシステムは、次のメソッドを提供するSecurityAlarmクラスを活用します。
- フレームを処理し、物体検出結果を抽出する
- 検出された物体の周囲にバウンディングボックスを描画してフレームに注釈を付ける
- 検出のしきい値を超えたときにメール通知を送信する
この実装は、家庭のセキュリティ、店舗監視、その他、検出された物体の即時通知が重要となる監視アプリケーションに適しています。
FAQ#
Ultralytics YOLO26は、高精度のリアルタイム物体検出を実現することで、セキュリティアラームシステムを強化します。高度なアルゴリズムにより誤検出を大幅に減らし、システムが本物の脅威にのみ対応するようにします。この信頼性の向上により、既存のセキュリティインフラストラクチャへシームレスに統合でき、監視全体の品質を高められます。
はい、Ultralytics YOLO26は既存のセキュリティインフラストラクチャにシームレスに統合できます。システムはさまざまなモードをサポートし、カスタマイズにも柔軟に対応できるため、高度な物体検出機能を追加して既存の環境を強化できます。プロジェクトへのYOLO26の統合方法について詳しくは、統合セクションをご覧ください。
標準的な環境でUltralytics YOLO26を実行するには、通常、約5GBの空きディスク容量が必要です。これには、YOLO26モデルと追加の依存関係を保存するための容量が含まれます。クラウドベースのソリューションでは、Ultralytics Platformが効率的なプロジェクト管理とデータセット処理を提供し、必要なストレージ容量を最適化できます。ストレージ容量の拡張などの強化機能については、Pro Planをご覧ください。
誤検出を減らすには、Ultralytics YOLO26モデルが多様で十分にアノテーションされたデータセットで適切にトレーニングされていることを確認してください。ハイパーパラメーターを微調整し、新しいデータでモデルを定期的に更新すると、検出精度を大幅に向上できます。詳しいハイパーパラメーター調整の手法については、ハイパーパラメーター調整ガイドをご覧ください。