Projet de système d’alarme de sécurité utilisant 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, fournit une détection d’objets en temps réel, permettant au système d’identifier et de traiter rapidement les menaces potentielles pour la sécurité. 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 traiter les incidents de sécurité en temps réel, réduisant ainsi le temps de réponse.
- Précision : YOLO26 est reconnu pour sa précision en matière de 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, fournissant une couche améliorée de surveillance intelligente.
Envoyer 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 avec un mot de passe d’application, puis exécute la solution sur ta source.
Accède au Générateur de mot de passe d'application, indique 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 du code ci-dessous.
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 windowsLorsque 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, et non de manière répétée. Tu peux personnaliser le code en fonction des besoins de ton projet.
Exemple d’e-mail reçu#
Arguments de SecurityAlarm#
Voici un tableau présentant les 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 comptages dessinés par la solution. |
verbose | bool | True | Active le journal par image de la solution, qui indique la forme d'entrée, les comptages par classe et la vitesse de traitement. L'appel de suivi lui-même est toujours silencieux. |
La solution SecurityAlarm prend en charge divers paramètres track :
| Argument | Type | Valeur par défaut | Description |
|---|---|---|---|
tracker | str | 'botsort.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 union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par 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 de l'image d'inférence cible : un entier pour un carré ou une paire (height, width). Les formes sont ajustées au pas du modèle. |
max_det | int | 300 | Nombre maximal de détections conservées par image avant le suivi, ce qui limite les objets traités par une solution dans les scènes denses. |
quantize | int or str | None | Précision de l'inférence : 16 (FP16) ou 32/non définie (FP32) pour les modèles PyTorch et TorchScript ; les autres formats s'exécutent à la précision sélectionnée par leur artefact et leur environnement d'exécution. Remplace l'indicateur déprécié 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 un aperçu du degré de certitude du modèle pour chaque détection. |
show_labels | bool | True | Affiche les étiquettes de chaque détection dans la sortie visuelle. 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 pour la sécurité. Lorsque le système détecte des objets dont le nombre dépasse le seuil spécifié (défini par le paramètre records), il envoie automatiquement une notification par e-mail avec une image en pièce 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 avec des boîtes englobantes autour des objets détectés
- 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é résidentielle, la surveillance des commerces et d’autres applications de surveillance où une notification immédiate des objets détectés est essentielle.
FAQ#
Oui, Ultralytics YOLO26 peut être intégré de manière transparente à 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 ton installation existante 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 dans 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 stockage du modèle YOLO26 et de toutes les dépendances supplémentaires. Pour les solutions basées sur le cloud, Ultralytics Platform offre une gestion efficace des projets et des jeux de données, ce qui peut optimiser les besoins en stockage. Découvre le Pro Plan pour bénéficier de fonctionnalités améliorées, notamment d’un espace de stockage étendu.
Ultralytics YOLO26 se démarque des modèles tels que 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 précision, ce qui le rend idéal pour les applications sensibles au facteur temps telles que les systèmes d’alarme de sécurité. Pour une comparaison complète des modèles de détection d’objets, tu peux consulter notre guide.
Pour réduire les faux positifs, assure-toi que ton modèle Ultralytics YOLO26 est correctement entraîné avec un jeu de données diversifié et bien annoté. L’ajustement précis 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 d’ajustement des hyperparamètres dans notre guide sur l’ajustement des hyperparamètres.
Ultralytics YOLO26 améliore les systèmes d’alarme de sécurité en fournissant une détection d’objets en temps réel et très précise. Ses algorithmes avancés réduisent considérablement les faux positifs, garantissant que le système ne réagit 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.