Projet de système d’alarme de sécurité avec Ultralytics YOLO26#
Le projet de système d’alarme de sécurité utilisant Ultralytics YOLO26 intègre des capacités avancées de vision par ordinateur pour renforcer les mesures de sécurité. YOLO26, développé par Ultralytics, assure la détection d’objets en temps réel, ce qui permet au système d’identifier rapidement les menaces potentielles et d’y répondre. 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 les incidents de sécurité et d’y répondre en temps réel, ce qui réduit le temps de réaction.
- Précision : YOLO26 est réputé pour la précision de sa 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 s’intègre facilement à l’infrastructure de sécurité existante et ajoute une couche améliorée de surveillance intelligente.
Envoie des alertes de sécurité avec YOLO26#
La solution SecurityAlarm suit les objets dans ton flux vidéo et envoie une seule alerte par e-mail avec une image annotée en pièce jointe dès que le nombre de détections atteint le seuil records. Authentifie un compte Gmail à l’aide d’un mot de passe d’application, puis exécute la solution sur ta source.
Accède au générateur de mots de passe d’application, indique un nom d’application, par exemple « projet de sécurité », et obtiens un mot de passe de 16 caractères. Copie ce mot de passe et colle-le dans le champ password du code ci-dessous.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Écriture de la vidéo
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" # l’adresse e-mail de l’expéditeur
password = "---- ---- ---- ----" # mot de passe d’application de 16 caractères généré via : https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # l’adresse e-mail du destinataire
# Initialiser l’objet d’alarme de sécurité
securityalarm = solutions.SecurityAlarm(
show=True, # afficher le résultat
model="yolo26n.pt", # par exemple, yolo26s.pt, yolo26m.pt
records=1, # nombre total de détections pour envoyer un e-mail
)
securityalarm.authenticate(from_email, password, to_email) # authentifier le serveur de messagerie
# Traiter la vidéo
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) # accéder aux résultats
video_writer.write(results.plot_im) # Écrire l’image traitée.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # fermer toutes les fenêtres ouvertesLorsque tu exécutes le code, tu reçois une seule notification par e-mail si un objet est détecté. La notification est envoyée immédiatement, sans être répétée. Tu peux personnaliser le code selon les besoins de ton projet.
Exemple d’e-mail reçu#
Arguments de SecurityAlarm#
Voici un tableau des arguments de SecurityAlarm :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
model | str | None | Chemin vers un fichier de modèle Ultralytics YOLO. |
records | int | 5 | Nombre total de détections nécessaire pour déclencher un e-mail avec le système d’alarme de sécurité. |
line_width | int | 2 | Épaisseur des lignes des boîtes, des points clés et des compteurs dessinés par la solution. |
verbose | bool | True | Active le journal de la solution pour chaque image, qui indique la forme de l'entrée, le nombre d'éléments par classe et la vitesse de traitement. L'appel de suivi reste toujours silencieux. |
La solution SecurityAlarm prend en charge différents paramètres track :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Indique l'algorithme de suivi à utiliser. Options intégrées : botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Définit le seuil de confiance des détections ; des valeurs plus faibles permettent de suivre davantage d'objets, mais peuvent inclure des faux positifs. |
iou | float | 0.7 | Définit le seuil d'intersection sur l'union (IoU) utilisé pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats selon l'indice de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
device | str | None | Indique le périphérique utilisé pour l'inférence (par exemple, cpu, cuda:0 ou 0). Permet de choisir entre le CPU, un GPU spécifique ou d'autres périphériques de calcul pour l'exécution du modèle. |
imgsz | int or tuple | 640 | Taille cible de l'image pour l'inférence : un entier pour une image carrée ou une paire (height, width). Les dimensions sont ajustées au stride du modèle. |
max_det | int | 300 | Nombre maximal de détections conservées par image avant le suivi, ce qui limite le nombre d'objets qu'une solution traite dans les scènes denses. |
quantize | int or str | None | Précision de l'inférence : 16 (FP16) ou 32/non défini (FP32) pour les modèles PyTorch et TorchScript ; les autres formats utilisent la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'option obsolète half. |
De plus, les paramètres de visualisation suivants sont disponibles :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
show | bool | False | Si True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour obtenir un retour visuel immédiat pendant le développement ou les tests. |
show_conf | bool | True | Affiche le score de confiance de chaque détection à côté de son étiquette. Donne une indication du degré de certitude du modèle pour chaque détection. |
show_labels | bool | True | Affiche les étiquettes de chaque détection dans le résultat visuel. Permet d'identifier immédiatement les objets détectés. |
Fonctionnement#
Le système d’alarme de sécurité utilise le suivi d’objets pour surveiller les flux vidéo et détecter les menaces potentielles. Lorsque le nombre d’objets détectés dans une image atteint le seuil spécifié (défini par le paramètre records), le système envoie automatiquement une notification par e-mail avec une image jointe montrant les objets détectés.
Le système s’appuie sur la classe SecurityAlarm, qui fournit des méthodes pour :
- Traiter les images et extraire les détections d’objets
- Annoter les images en ajoutant des cadres de délimitation autour des objets détectés
- Envoyer des notifications par e-mail lorsque les seuils de détection sont atteints
Cette implémentation est idéale pour la sécurité à domicile, la surveillance des commerces et d’autres applications de surveillance où il est essentiel d’être immédiatement averti des objets détectés.
FAQ#
Ultralytics YOLO26 améliore les systèmes d’alarme de sécurité en offrant une détection d’objets très précise en temps réel. Ses algorithmes avancés réduisent considérablement les faux positifs, afin que le système ne réagisse qu’aux menaces réelles. Cette fiabilité accrue s’intègre facilement à l’infrastructure de sécurité existante et améliore la qualité globale de la surveillance.
Oui, Ultralytics YOLO26 peut s’intégrer facilement à ton infrastructure de sécurité existante. Le système prend en charge différents modes et offre une grande flexibilité de personnalisation, ce qui te permet d’améliorer ta configuration actuelle grâce à des capacités avancées de détection d’objets. Pour obtenir des instructions détaillées sur l’intégration de YOLO26 à tes projets, consulte la section sur l’intégration.
L’exécution d’Ultralytics YOLO26 sur une configuration standard nécessite généralement environ 5 Go d’espace disque libre. Cet espace comprend le modèle YOLO26 et toutes les dépendances supplémentaires. Pour les solutions cloud, l’Ultralytics Platform offre une gestion efficace des projets et des jeux de données, ce qui peut optimiser les besoins de stockage. Découvre le forfait Pro pour profiter de fonctionnalités avancées, notamment d’un espace de stockage étendu.
Ultralytics YOLO26 se démarque de modèles comme Faster R-CNN ou SSD par 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 précision, ce qui en fait un modèle idéal pour les applications où le temps compte, comme les systèmes d’alarme de sécurité. Pour une comparaison complète des modèles de détection d’objets, consulte notre guide.
Pour réduire les faux positifs, assure-toi que ton modèle Ultralytics YOLO26 est correctement entraîné sur un jeu de données 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. Tu trouveras des techniques détaillées de réglage des hyperparamètres dans notre guide sur le réglage des hyperparamètres.