Projet de système d'alarme de sécurité utilisant Ultralytics YOLO26

AI-powered security alarm system with object detection

Le projet de système d'alarme de sécurité utilisant Ultralytics YOLO26 intègre des capacités avancées de computer vision pour renforcer les mesures de sécurité. YOLO26, développé par Ultralytics, permet une object detection en temps réel, ce qui permet au système d'identifier et de répondre rapidement aux menaces potentielles. Ce projet offre plusieurs avantages :

  • Détection en temps réel : L'efficacité de YOLO26 permet au système d'alarme de sécurité de détecter et de répondre aux incidents de sécurité en temps réel, minimisant ainsi le temps de réaction.
  • Accuracy : YOLO26 est reconnu pour sa précision dans la détection d'objets, ce qui réduit les faux positifs et améliore la fiabilité du système d'alarme de sécurité.
  • Capacités d'intégration : Le projet peut être intégré de manière transparente à l'infrastructure de sécurité existante, offrant ainsi une couche de surveillance intelligente améliorée.


Watch: Security Alarm System with Ultralytics YOLO26 + Solutions Object Detection
Remarque

La génération d'un mot de passe d'application est nécessaire

  • Accède au App Password Generator, désigne un nom d'application tel que "security project," et obtiens un mot de passe à 16 chiffres. Copie ce mot de passe et colle-le dans le champ password indiqué dans le code ci-dessous.
Système d'alarme de sécurité utilisant Ultralytics YOLO
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

Lorsque tu exécutes le code, tu recevras une seule notification par e-mail si un objet est détecté. La notification est envoyée immédiatement, et non de manière répétée. Tu peux personnaliser le code pour répondre aux besoins de ton projet.

Exemple d'e-mail reçu

Security alert email notification example

Arguments SecurityAlarm

Voici un tableau avec les arguments SecurityAlarm :

ArgumentTypeDéfautDescription
modelstrNoneChemin d'accès vers un fichier de modèle Ultralytics YOLO.
recordsint5Nombre total de détections pour déclencher un e-mail avec le système d'alarme de sécurité.

La solution SecurityAlarm prend en charge une variété de paramètres track :

ArgumentTypeDéfautDescription
trackerstr'botsort.yaml'Spécifie l'algorithme de suivi à utiliser, par exemple bytetrack.yaml ou botsort.yaml.
conffloat0.1Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre davantage d'objets mais peuvent inclure des faux positifs.
ioufloat0.7Définit le seuil Intersection over Union (IoU) pour filtrer les détections qui se chevauchent.
classeslistNoneFiltre les résultats par index de classe. Par exemple, classes=[0, 2, 3] suit uniquement les classes spécifiées.
verboseboolTrueContrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis.
devicestrNoneSpécifie le périphérique pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet aux utilisateurs de choisir entre le CPU, un GPU spécifique ou d'autres dispositifs de calcul pour l'exécution du modèle.

De plus, les paramètres de visualisation suivants sont disponibles :

ArgumentTypeDéfautDescription
showboolFalseSi True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat lors du développement ou des tests.
line_widthint or NoneNoneSpécifie l'épaisseur de ligne des boîtes englobantes. Si None, l'épaisseur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté.
show_confboolTrueAffiche le score de confiance pour chaque détection à côté de l'étiquette. Donne un aperçu de la certitude du modèle pour chaque détection.
show_labelsboolTrueAffiche les étiquettes pour chaque détection dans la sortie visuelle. Fournit une compréhension immédiate des objets détectés.

Comment ça fonctionne

Le système d'alarme de sécurité utilise object tracking pour surveiller les flux vidéo et détecter les menaces de sécurité potentielles. Lorsque le système détecte des objets dépassant le seuil spécifié (défini par le paramètre records), il envoie automatiquement une notification par e-mail avec une image jointe montrant les objets détectés.

Le système tire parti de la SecurityAlarm class qui fournit des méthodes pour :

  1. Traiter les images et extraire les détections d'objets
  2. Annoter les images avec des cadres de délimitation (bbox) autour des objets détectés
  3. Envoyer des notifications par e-mail lorsque les seuils de détection sont dépassés

Cette implémentation est idéale pour la sécurité domestique, la surveillance de commerce de détail et d'autres applications de surveillance où une notification immédiate des objets détectés est critique.

FAQ

Comment Ultralytics YOLO26 améliore-t-il la précision d'un système d'alarme de sécurité ?

Ultralytics YOLO26 améliore les systèmes d'alarme de sécurité en offrant une détection d'objets en temps réel de haute précision. Ses algorithmes avancés réduisent considérablement les faux positifs, garantissant que le système ne répond qu'aux menaces réelles. Cette fiabilité accrue peut être intégrée de manière transparente à l'infrastructure de sécurité existante, améliorant ainsi la qualité globale de la surveillance.

Puis-je intégrer Ultralytics YOLO26 à mon infrastructure de sécurité existante ?

Oui, Ultralytics YOLO26 peut être intégré de manière transparente à ton infrastructure de sécurité existante. Le système prend en charge divers modes et offre une flexibilité de personnalisation, te permettant d'améliorer ta configuration actuelle avec des capacités avancées de détection d'objets. Pour des instructions détaillées sur l'intégration de YOLO26 dans tes projets, visite la integration section.

Quelles sont les exigences de stockage pour exécuter Ultralytics YOLO26 ?

L'exécution d'Ultralytics YOLO26 sur une configuration standard nécessite généralement environ 5 Go d'espace disque libre. Cela inclut l'espace pour stocker le modèle YOLO26 et toutes les dépendances supplémentaires. Pour les solutions basées sur le cloud, Ultralytics Platform offre une gestion de projet efficace et une manipulation des datasets, ce qui peut optimiser les besoins en stockage. En savoir plus sur le Pro Plan pour des fonctionnalités améliorées, y compris un stockage étendu.

Qu'est-ce qui différencie Ultralytics YOLO26 des autres modèles de détection d'objets comme Faster R-CNN ou SSD ?

Ultralytics YOLO26 offre un avantage sur les modèles comme Faster R-CNN ou SSD grâce à ses capacités de détection en temps réel et sa précision supérieure. Son architecture unique lui permet de traiter les images beaucoup plus rapidement sans compromettre la precision, ce qui le rend idéal pour les applications sensibles au temps comme les systèmes d'alarme de sécurité. Pour une comparaison complète des modèles de détection d'objets, tu peux explorer notre guide.

Comment puis-je réduire la fréquence des faux positifs dans mon système de sécurité utilisant Ultralytics YOLO26 ?

Pour réduire les faux positifs, assure-toi que ton modèle Ultralytics YOLO26 est correctement entraîné avec un dataset diversifié et bien annoté. Le réglage fin des hyperparamètres et la mise à jour régulière du modèle avec de nouvelles données peuvent améliorer considérablement la précision de la détection. Des techniques détaillées de hyperparameter tuning se trouvent dans notre hyperparameter tuning guide.

Commentaires