Projekt für ein Sicherheitsalarmsystem mit Ultralytics YOLO26#
Das Projekt für ein Sicherheitsalarmsystem mit Ultralytics YOLO26 nutzt fortschrittliche Computer-Vision-Funktionen, um Sicherheitsmaßnahmen zu verbessern. YOLO26, entwickelt von Ultralytics, ermöglicht die Objekterkennung in Echtzeit, sodass das System potenzielle Sicherheitsbedrohungen umgehend erkennen und darauf reagieren kann. Dieses Projekt bietet mehrere Vorteile:
- Erkennung in Echtzeit: Die Effizienz von YOLO26 ermöglicht es dem Sicherheitsalarmsystem, Sicherheitsvorfälle in Echtzeit zu erkennen und darauf zu reagieren, wodurch sich die Reaktionszeit verkürzt.
- Genauigkeit: YOLO26 ist für seine Genauigkeit bei der Objekterkennung bekannt, reduziert Fehlalarme und erhöht die Zuverlässigkeit des Sicherheitsalarmsystems.
- Integrationsmöglichkeiten: Das Projekt lässt sich nahtlos in bestehende Sicherheitsinfrastrukturen integrieren und stellt eine erweiterte Ebene intelligenter Überwachung bereit.
Sicherheitswarnungen mit YOLO26 senden#
Die Lösung SecurityAlarm verfolgt Objekte in deinem Videostream und sendet eine einzelne E-Mail-Warnung mit einem annotierten Bild im Anhang, sobald die Anzahl der Erkennungen den Schwellenwert records erreicht. Authentifiziere ein Gmail-Konto mit einem App-Passwort und führe die Lösung anschließend mit deiner Quelle aus.
Navigiere zum App Password Generator, gib einen App-Namen wie „Sicherheitsprojekt“ an und erhalte ein 16-stellige Passwort. Kopiere das App-Passwort und füge das App-Passwort 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" # 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 windowsWenn du den Code ausführst, erhältst du eine einzelne E-Mail-Benachrichtigung, sobald ein Objekt erkannt wird. Die Benachrichtigung wird sofort und nicht wiederholt gesendet. Du kannst den Code an die Anforderungen deines Projekts anpassen.
Beispiel für eine empfangene E-Mail#
Argumente von SecurityAlarm#
Hier ist eine Tabelle mit den Argumenten von SecurityAlarm:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer YOLO-Modell-Datei von Ultralytics. |
records | int | 5 | Gesamtzahl der Erkennungen, ab der eine E-Mail des Sicherheitsalarmsystems ausgelöst wird. |
line_width | int | 2 | Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte. |
verbose | bool | True | Aktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe. |
Die Lösung SecurityAlarm unterstützt verschiedene Parameter von track:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an. 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 das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen. |
iou | float | 0.7 | Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung. |
imgsz | int or tuple | 640 | Ziel-Inferenzbildgröße: eine ganze Zahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formate werden an die Modellschrittweite angepasst. |
max_det | int | 300 | Maximale Anzahl pro Frame beibehaltener Detektionen vor dem Tracking, wodurch die Objekte begrenzt werden, die eine Solution in dichten Szenen verarbeitet. |
quantize | int or str | None | Inferenzpräzision: 16 (FP16) oder 32/nicht gesetzt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Präzision, die ihr Artefakt und ihre Laufzeit auswählen. Ersetzt das veraltete half-Flag. |
Darüber hinaus stehen die folgenden Visualisierungseinstellungen zur Verfügung:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens. |
show_conf | bool | True | Zeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte. |
Funktionsweise#
Das Sicherheitsalarmsystem nutzt Objektverfolgung, um Videostreams zu überwachen und potenzielle Sicherheitsbedrohungen zu erkennen. Wenn das System Objekte erkennt, die den angegebenen Schwellenwert überschreiten, der durch den Parameter records festgelegt wird, sendet es automatisch eine E-Mail-Benachrichtigung mit einem Bild im Anhang, auf dem die erkannten Objekte zu sehen sind.
Das System nutzt die Klasse SecurityAlarm, die Methoden zum Folgenden bereitstellt:
- Frames verarbeiten und erkannte Objekte extrahieren
- Frames mit Begrenzungsrahmen um erkannte Objekte annotieren
- E-Mail-Benachrichtigungen senden, wenn Erkennungsschwellenwerte überschritten werden
Diese Implementierung eignet sich ideal für die Sicherheit zu Hause, die Überwachung im Einzelhandel und andere Überwachungsanwendungen, bei denen eine sofortige Benachrichtigung über erkannte Objekte entscheidend ist.
FAQ#
Ultralytics YOLO26 verbessert Sicherheitsalarmsysteme durch eine hochpräzise Objekterkennung in Echtzeit. Seine fortschrittlichen Algorithmen reduzieren Fehlalarme erheblich 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 Flexibilität bei der Anpassung, sodass du deine bestehende Lösung um fortschrittliche Funktionen zur Objekterkennung erweitern kannst. Detaillierte Anweisungen zur Integration von YOLO26 in deine Projekte findest du im Abschnitt zur Integration.
Für die Ausführung von Ultralytics YOLO26 in einer Standardumgebung werden typischerweise etwa 5 GB freier Speicherplatz benötigt. Darin enthalten ist der Speicherplatz für das YOLO26-Modell und zusätzliche Abhängigkeiten. Für cloudbasierte Lösungen bietet die Ultralytics Platform eine effiziente Projektverwaltung und Datensatzverwaltung, wodurch sich der Speicherbedarf optimieren lässt. Erfahre mehr über den Pro Plan und seine erweiterten Funktionen, einschließlich zusätzlichen Speicherplatzes.
Ultralytics YOLO26 bietet gegenüber Modellen wie Faster R-CNN oder SSD Vorteile durch seine Erkennungsfunktionen in Echtzeit und seine höhere Genauigkeit. Seine einzigartige Architektur ermöglicht eine deutlich schnellere Bildverarbeitung ohne Einbußen bei der Präzision, wodurch sich das Modell ideal für zeitkritische Anwendungen wie Sicherheitsalarmsysteme eignet. Einen umfassenden Vergleich von Objekterkennungsmodellen findest du in unserem Leitfaden.
Um Fehlalarme zu reduzieren, solltest du sicherstellen, dass dein Ultralytics YOLO26-Modell mit einem vielfältigen und sorgfältig annotierten Datensatz ausreichend trainiert wurde. Die Feinabstimmung von Hyperparametern und die regelmäßige Aktualisierung des Modells mit neuen Daten können die Erkennungsgenauigkeit deutlich verbessern. Detaillierte Techniken zur Hyperparameterabstimmung findest du in unserem Leitfaden zur Hyperparameterabstimmung.