Projekt für ein Sicherheitsalarmsystem mit Ultralytics YOLO26#
Das Projekt für ein Sicherheitsalarmsystem mit Ultralytics YOLO26 integriert fortschrittliche Funktionen der Bildverarbeitung, um Sicherheitsmaßnahmen zu verbessern. YOLO26, entwickelt von Ultralytics, ermöglicht die Objekterkennung in Echtzeit, sodass das System potenzielle Sicherheitsbedrohungen schnell erkennen und darauf reagieren kann. Dieses Projekt bietet mehrere Vorteile:
- Erkennung in Echtzeit: Dank der Effizienz von YOLO26 kann das Sicherheitsalarmsystem Sicherheitsvorfälle in Echtzeit erkennen und darauf reagieren, wodurch sich die Reaktionszeit verkürzt.
- Genauigkeit: YOLO26 ist für seine Genauigkeit bei der Objekterkennung bekannt. Dadurch werden falsch positive Ergebnisse reduziert und die Zuverlässigkeit des Sicherheitsalarmsystems erhöht.
- Integrationsmöglichkeiten: Das Projekt lässt sich nahtlos in bestehende Sicherheitsinfrastrukturen integrieren und ergänzt sie um eine intelligente Überwachungsebene.
Sicherheitswarnungen mit YOLO26 versenden#
Die Lösung SecurityAlarm verfolgt Objekte in deinem Videostream und versendet eine einzelne E-Mail-Warnung mit einem angehängten Bild mit Annotationen, sobald die Anzahl der Erkennungen den Schwellenwert records erreicht. Authentifiziere ein Gmail-Konto mit einem App-Passwort und führe die Lösung dann für deine Quelle aus.
Rufe den Generator für App-Passwörter auf, gib einen App-Namen wie „security project“ an und erstelle ein 16-stelliges Passwort. Kopiere dieses Passwort und füge es in das Feld password im folgenden Code ein.
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" # die E-Mail-Adresse des Absenders
password = "---- ---- ---- ----" # 16-stelliges App-Passwort erstellt über: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # die E-Mail-Adresse des Empfängers
# Sicherheitsalarmobjekt initialisieren
securityalarm = solutions.SecurityAlarm(
show=True, # # Ausgabe anzeigen
model="yolo26n.pt", # z. B. yolo26s.pt, yolo26m.pt
records=1, # Gesamtzahl der Erkennungen, ab der eine E-Mail gesendet wird
)
securityalarm.authenticate(from_email, password, to_email) # E-Mail-Server authentifizieren
# Video verarbeiten
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) # auf die Ausgabe zugreifen
video_writer.write(results.plot_im) # das verarbeitete Bild schreiben.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # Alle geöffneten Fenster schließenWenn du den Code ausführst, erhältst du eine einzelne E-Mail-Benachrichtigung, falls ein Objekt erkannt wird. Die Benachrichtigung wird sofort und nicht wiederholt gesendet. Du kannst den Code an die Anforderungen deines Projekts anpassen.
Beispiel einer empfangenen E-Mail#
Argumente für SecurityAlarm#
Hier ist eine Tabelle mit den Argumenten für SecurityAlarm:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics-YOLO-Modelldatei. |
records | int | 5 | Gesamtzahl der Erkennungen, ab der eine E-Mail mit einem Sicherheitsalarm ausgelöst wird. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden. |
verbose | bool | True | Aktiviert das Protokoll der Lösung für jedes Bild, das Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit enthält. Der Tracking-Aufruf selbst gibt grundsätzlich keine Meldungen aus. |
Die Lösung SecurityAlarm unterstützt verschiedene Parameter für track:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Legt den zu verwendenden Verfolgungsalgorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen. |
iou | float | 0.7 | Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern. |
classes | list | None | Filtert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Legt das Gerät für die Inferenz fest (z. B. cpu, cuda:0 oder 0). So kannst du für die Modellausführung zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten wählen. |
imgsz | int or tuple | 640 | Zielbildgröße für die Inferenz: eine Ganzzahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formen werden an den Modellschritt angepasst. |
max_det | int | 300 | Maximale Anzahl der Erkennungen, die pro Bild vor der Verfolgung beibehalten werden. Dadurch wird die Anzahl der Objekte begrenzt, die eine Lösung in dichten Szenen verarbeitet. |
quantize | int or str | None | Inferenzgenauigkeit: 16 (FP16) oder 32/nicht festgelegt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate verwenden die Genauigkeit, die durch ihr Artefakt und ihre Laufzeitumgebung festgelegt wird. Ersetzt das veraltete Flag half. |
Außerdem sind die folgenden Visualisierungseinstellungen verfügbar:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True aktiviert ist, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder beim Testen. |
show_conf | bool | True | Zeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist. |
show_labels | bool | True | Zeigt für jede Erkennung eine Bezeichnung in der visuellen Ausgabe an. So lassen sich erkannte Objekte sofort erkennen. |
So funktioniert es#
Das Sicherheitssystem mit Alarm nutzt Objektverfolgung, um Videostreams zu überwachen und potenzielle Sicherheitsbedrohungen zu erkennen. Sobald die Anzahl der in einem Frame erkannten Objekte den festgelegten Schwellenwert erreicht (festgelegt durch den Parameter records), sendet das System automatisch eine E-Mail-Benachrichtigung mit einem Bildanhang, auf dem die erkannten Objekte zu sehen sind.
Das System nutzt die Klasse SecurityAlarm, die folgende Methoden bereitstellt:
- Frames verarbeiten und Objekterkennungen extrahieren
- Frames mit Begrenzungsrahmen um erkannte Objekte versehen
- E-Mail-Benachrichtigungen senden, wenn Erkennungsschwellenwerte erreicht werden
Diese Implementierung eignet sich ideal für die Haussicherheit, die Überwachung im Einzelhandel und andere Überwachungsanwendungen, bei denen eine sofortige Benachrichtigung über erkannte Objekte entscheidend ist.
Häufig gestellte Fragen#
Ultralytics YOLO26 verbessert Sicherheitssysteme mit Alarm durch hochgenaue Objekterkennung in Echtzeit. Die fortschrittlichen Algorithmen reduzieren Fehlalarme deutlich und stellen sicher, dass das System nur auf tatsächliche Bedrohungen reagiert. Diese höhere Zuverlässigkeit lässt sich nahtlos in bestehende Sicherheitsinfrastrukturen integrieren und verbessert die Überwachungsqualität insgesamt.
Ja, Ultralytics YOLO26 lässt sich nahtlos in deine bestehende Sicherheitsinfrastruktur integrieren. Das System unterstützt verschiedene Modi und bietet Anpassungsmöglichkeiten, sodass du deine bestehende Einrichtung um fortschrittliche Funktionen zur Objekterkennung erweitern kannst. Eine ausführliche Anleitung zur Integration von YOLO26 in deine Projekte findest du im Abschnitt zur Integration.
Für den Betrieb von Ultralytics YOLO26 auf einer Standardkonfiguration werden normalerweise etwa 5 GB freier Speicherplatz benötigt. Dazu gehört Speicherplatz für das YOLO26-Modell und alle zusätzlichen Abhängigkeiten. Für cloudbasierte Lösungen bietet die Ultralytics Platform eine effiziente Projektverwaltung und Datensatzverwaltung, mit denen sich der Speicherbedarf optimieren lässt. Erfahre mehr über den Pro Plan mit erweiterten Funktionen, einschließlich zusätzlichem Speicherplatz.
Ultralytics YOLO26 ist Modellen wie Faster R-CNN oder SSD dank Echtzeiterkennung und höherer Genauigkeit überlegen. Die besondere Architektur ermöglicht eine deutlich schnellere Bildverarbeitung, ohne Abstriche bei der Präzision zu machen. Dadurch eignet sich das Modell ideal für zeitkritische Anwendungen wie Sicherheitssysteme mit Alarm. Einen umfassenden Vergleich von Objekterkennungsmodellen findest du in unserem Leitfaden.
Um Fehlalarme zu reduzieren, solltest du dein Ultralytics YOLO26-Modell mit einem vielfältigen und gut annotierten Datensatz ausreichend trainieren. Die Feinabstimmung von Hyperparametern und regelmäßige Modellaktualisierungen mit neuen Daten können die Erkennungsgenauigkeit deutlich verbessern. Ausführliche Informationen zu Techniken zur Hyperparameteroptimierung findest du in unserem Leitfaden zur Hyperparameteroptimierung.