Ultralytics YOLO26を使用したセキュリティアラームシステムプロジェクト#
Ultralytics YOLO26 を活用したセキュリティアラームシステムプロジェクトは、高度な computer vision 機能を統合してセキュリティ対策を強化します。Ultralytics が開発した YOLO26 はリアルタイムの object detection を提供し、システムが潜在的なセキュリティ脅威を迅速に識別して対応できるようにします。このプロジェクトにはいくつかの利点があります。
- リアルタイム検出: YOLO26の効率性により、セキュリティアラームシステムはセキュリティ上のインシデントをリアルタイムで検出し、対応時間を最小限に抑えます。
- Accuracy: YOLO26 は物体検出の精度で知られており、誤検出を減らし、セキュリティアラームシステムの信頼性を高めます。
- 統合機能: 本プロジェクトは既存のセキュリティインフラとシームレスに統合でき、インテリジェント監視のレイヤーをアップグレードします。
YOLO26でセキュリティアラートを送信する#
SecurityAlarm ソリューションはビデオフィード内のオブジェクトを追跡し、検出数が records しきい値に達するとすぐに、アノテーション付き画像を添付した単一のメールアラートを送信します。アプリパスワードを使用して 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コードを実行すると、何らかの物体が検出された場合にメール通知が一度だけ送信されます。通知は繰り返しではなく、即座に送信されます。プロジェクトの要件に合わせてコードをカスタマイズできます。
受信したメールのサンプル#
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、またはその他の計算デバイスを選択できます。 |
さらに、以下の視覚化設定が利用可能です。
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
show | bool | False | True の場合、注釈付きの画像または動画をウィンドウに表示します。開発やテスト中の即座な視覚的フィードバックに役立ちます。 |
show_conf | bool | True | 各検出の信頼度スコアをラベルと一緒に表示します。各検出に対するモデルの確信度を把握できます。 |
show_labels | bool | True | 視覚的出力において各検出のラベルを表示します。検出されたオブジェクトを即座に理解するのに役立ちます。 |
仕組み#
セキュリティアラームシステムは、object tracking を使用してビデオフィードを監視し、潜在的なセキュリティ脅威を検出します。システムが指定されたしきい値(records パラメータによって設定される)を超えるオブジェクトを検出すると、検出されたオブジェクトを示す画像が添付されたメール通知が自動的に送信されます。
システムは SecurityAlarm class を活用しており、以下のメソッドを提供します。
- フレームを処理し、物体検出を抽出する
- 検出された物体の周囲にバウンディングボックスを付けてフレームに注釈を付ける
- 検出のしきい値を超えた場合に電子メール通知を送信する
この実装は、ホームセキュリティ、小売店の監視、および検出された物体に対する即時の通知が不可欠なその他の監視アプリケーションに最適です。
よくある質問 (FAQ)#
Ultralytics YOLO26は、高精度かつリアルタイムの物体検出を実現することでセキュリティアラームシステムを強化します。その高度なアルゴリズムは誤検知を大幅に減らし、システムが真の脅威にのみ反応するようにします。この信頼性の向上は既存のセキュリティインフラとシームレスに統合でき、監視品質全体を向上させます。
はい、Ultralytics YOLO26 は既存のセキュリティインフラストラクチャとシームレスに統合できます。システムはさまざまなモードをサポートし、カスタマイズの柔軟性を提供するため、高度な物体検出機能で既存のセットアップを強化できます。プロジェクトへの YOLO26 の統合に関する詳細な手順については、integration section をご覧ください。
標準的なセットアップで Ultralytics YOLO26 を実行するには、通常、約 5GB の空きディスク容量が必要です。これには、YOLO26 モデルおよび追加の依存関係を保存するためのスペースが含まれます。クラウドベースのソリューションの場合、Ultralytics Platform は効率的なプロジェクト管理とデータセット処理を提供し、ストレージ要件を最適化できます。拡張ストレージを含む強化された機能については、Pro Plan の詳細をご覧ください。
誤検出を減らすために、Ultralytics YOLO26 モデルが多様で十分にアノテーションされたデータセットで適切にトレーニングされていることを確認してください。ハイパーパラメータの微調整と、新しいデータによるモデルの定期的な更新により、検出精度を大幅に向上させることができます。詳細な hyperparameter tuning のテクニックは、hyperparameter tuning guide に記載されています。