Sicherheitsalarmsystem-Projekt mit Ultralytics YOLO26#
Das Security Alarm System Project, das Ultralytics YOLO26 nutzt, integriert fortschrittliche computer vision-Funktionen, um Sicherheitsmaßnahmen zu verbessern. YOLO26, entwickelt von Ultralytics, bietet object detection in Echtzeit, wodurch das System potenzielle Sicherheitsbedrohungen schnell erkennen und darauf reagieren kann. Dieses Projekt bietet mehrere Vorteile:
- Echtzeit-Erkennung: Die Effizienz von YOLO26 ermöglicht es dem Sicherheitsalarmsystem, Sicherheitsvorfälle in Echtzeit zu erkennen und darauf zu reagieren, was die Reaktionszeit minimiert.
- Accuracy: YOLO26 ist für seine Genauigkeit bei der Objekterkennung bekannt, wodurch Fehlalarme reduziert und die Zuverlässigkeit des Sicherheitsalarmsystems erhöht wird.
- Integrationsfähigkeiten: Das Projekt kann nahtlos in bestehende Sicherheitsinfrastrukturen integriert werden und bietet eine verbesserte Ebene intelligenter Überwachung.
Sende Sicherheitswarnungen mit YOLO26#
Die SecurityAlarm-Lösung verfolgt Objekte in deinem Video-Feed und sendet eine einzelne E-Mail-Benachrichtigung mit einem angehängten kommentierten Bild, sobald die Anzahl der Erkennungen den records-Schwellenwert erreicht. Authentifiziere ein Gmail-Konto mit einem App-Passwort und führe die Lösung dann für deine Quelle aus.
Hinweis
Die Generierung eines App-Passworts ist erforderlich
- Navigiere zum App Password Generator, gib einen App-Namen wie „security project“ an und erhalte ein 16-stellige Passwort. Kopiere dieses Passwort und füge es in das dafür vorgesehene
password-Feld im Code unten 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 versendet. Du kannst den Code an deine Projektanforderungen anpassen.
Beispiel für empfangene E-Mail#
SecurityAlarm-Argumente#
Hier ist eine Tabelle mit den SecurityAlarm-Argumenten:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics YOLO-Modelldatei. |
records | int | 5 | Gesamtzahl der Detektionen, um eine E-Mail mit dem Sicherheitsalarmsystem auszulösen. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählungen, die die Lösung zeichnet. |
verbose | bool | True | Aktiviert das pro-Frame-Protokoll der Lösung für Eingabeform, Klassenzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst verläuft immer im Hintergrund. |
Die SecurityAlarm-Lösung unterstützt eine Vielzahl von track-Parametern:
| Argument | Typ | Standard | 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 Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen. |
iou | float | 0.7 | Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Zum Beispiel 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 Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung. |
Darüber hinaus stehen folgende Visualisierungseinstellungen zur Verfügung:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Falls True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens. |
show_conf | bool | True | Zeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte. |
So funktioniert es#
Das Security Alarm System verwendet object tracking, um Video-Feeds zu überwachen und potenzielle Sicherheitsbedrohungen zu erkennen. Wenn das System Objekte erkennt, die den angegebenen Schwellenwert (festgelegt durch den records-Parameter) überschreiten, sendet es automatisch eine E-Mail-Benachrichtigung mit einem Bildanhang, der die erkannten Objekte zeigt.
Das System nutzt die SecurityAlarm class, die Methoden bereitstellt für:
- Frames zu verarbeiten und Objekterkennungen zu extrahieren
- Frames mit Bounding Boxes um erkannte Objekte zu annotieren
- E-Mail-Benachrichtigungen zu senden, wenn Erkennungsschwellen überschritten werden
Diese Implementierung ist ideal für Heimsicherheit, Einzelhandelsüberwachung und andere Überwachungsanwendungen, bei denen eine sofortige Benachrichtigung über erkannte Objekte entscheidend ist.
FAQ#
Ultralytics YOLO26 verbessert Sicherheitsalarmsysteme durch die Bereitstellung hochpräziser Objekterkennung in Echtzeit. Seine fortschrittlichen Algorithmen reduzieren Fehlalarme erheblich und stellen sicher, dass das System nur auf echte Bedrohungen reagiert. Diese erhöhte Zuverlässigkeit kann nahtlos in bestehende Sicherheitsinfrastrukturen integriert werden, was die gesamte Überwachungsqualität verbessert.
Ja, Ultralytics YOLO26 kann nahtlos in deine bestehende Sicherheitsinfrastruktur integriert werden. Das System unterstützt verschiedene Modi und bietet Flexibilität für Anpassungen, sodass du dein bestehendes Setup um erweiterte Objekterkennungsfunktionen erweitern kannst. Detaillierte Anweisungen zur Integration von YOLO26 in deine Projekte findest du im integration section.
Das Ausführen von Ultralytics YOLO26 auf einem Standard-Setup erfordert typischerweise etwa 5 GB freien Speicherplatz. Dies schließt den Speicherplatz für das YOLO26-Modell und alle zusätzlichen Abhängigkeiten ein. Für cloudbasierte Lösungen bietet Ultralytics Platform eine effiziente Projektverwaltung und Datensatzhandhabung, die den Speicherbedarf optimieren kann. Erfahre mehr über den Pro Plan für erweiterte Funktionen einschließlich erweitertem Speicher.
Ultralytics YOLO26 bietet gegenüber Modellen wie Faster R-CNN oder SSD einen Vorteil durch seine Echtzeiterkennungsfunktionen und höhere Genauigkeit. Seine einzigartige Architektur ermöglicht es, Bilder viel schneller zu verarbeiten, ohne Kompromisse bei der precision einzugehen, was es ideal für zeitkritische Anwendungen wie Sicherheitsalarmsysteme macht. Für einen umfassenden Vergleich von Objekterkennungsmodellen kannst du unseren guide erkunden.
Um Fehlalarme zu reduzieren, stelle sicher, dass dein Ultralytics YOLO26-Modell mit einem vielfältigen und gut annotierten Datensatz ausreichend trainiert ist. Die Feinabstimmung von Hyperparametern und die regelmäßige Aktualisierung des Modells mit neuen Daten können die Erkennungsgenauigkeit erheblich verbessern. Detaillierte hyperparameter tuning-Techniken findest du in unserem hyperparameter tuning guide.