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 fonctionnalités avancées de computer vision pour renforcer les mesures de sécurité. YOLO26, développé par Ultralytics, offre une object detection en temps réel, permettant au système d'identifier et de réagir rapidement aux menaces de sécurité 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éagir aux incidents de sécurité en temps réel, minimisant ainsi le temps de réponse.
- 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 une couche supplémentaire 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 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.
Remarque
La génération d'un mot de passe d'application est nécessaire
- Accède au App Password Generator, 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
passworddésigné dans le 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 recevras une seule notification par e-mail si un objet est détecté. La notification est envoyée immédiatement, et non de façon répétée. Tu peux personnaliser le code pour répondre aux exigences de ton projet.
Exemple d'e-mail reçu#
Arguments de SecurityAlarm#
Voici un tableau avec les arguments de SecurityAlarm :
| Argument | Type | Défaut | Description |
|---|---|---|---|
model | str | None | Chemin d'accès vers un fichier de modèle YOLO d'Ultralytics. |
records | int | 5 | Nombre total de détections pour déclencher un e-mail avec le système d'alarme de sécurité. |
line_width | int | 2 | Épaisseur de ligne pour les boîtes, les points clés et les comptes tracés par la solution. |
verbose | bool | True | Active le journal par trame de la solution concernant la forme d'entrée, les comptes de classes et la vitesse de traitement. L'appel de suivi reste toujours silencieux. |
La solution SecurityAlarm prend en charge une variété de paramètres track :
| Argument | Type | Défaut | Description |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Spécifie 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 pour les détections ; des valeurs plus faibles permettent de suivre plus d'objets, mais peuvent inclure des faux positifs. |
iou | float | 0.7 | Définit le seuil d'Intersection over Union (IoU) pour filtrer les détections qui se chevauchent. |
classes | list | None | Filtre les résultats par index de classe. Par exemple, classes=[0, 2, 3] ne suit que les classes spécifiées. |
device | str | None | Spé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 périphériques de calcul pour l'exécution du modèle. |
De plus, les paramètres de visualisation suivants sont disponibles :
| Argument | Type | Défaut | Description |
|---|---|---|---|
show | bool | False | Si True, affiche les images ou vidéos annotées dans une fenêtre. Utile pour un retour visuel immédiat pendant le développement ou les tests. |
show_conf | bool | True | Affiche 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_labels | bool | True | Affiche les étiquettes pour chaque détection dans la sortie visuelle. Permet une compréhension immédiate des objets détectés. |
Comment ça marche#
Le système d'alarme de sécurité utilise le 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 qui dépassent le seuil spécifié (défini par le paramètre records), il envoie automatiquement une notification par e-mail avec une pièce jointe représentant une image montrant les objets détectés.
Le système s'appuie sur la SecurityAlarm class 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é 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#
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 flexibilité de personnalisation, te permettant d'améliorer ta configuration actuelle avec des fonctionnalités avancées de détection d'objets. Pour des instructions détaillées sur l'intégration de YOLO26 dans tes projets, consulte la integration section.
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 cloud, Ultralytics Platform offre une gestion efficace des projets et des jeux de données, ce qui peut optimiser tes besoins de stockage. Apprends-en plus sur le Pro Plan pour bénéficier de fonctionnalités améliorées, y compris un stockage étendu.
Ultralytics YOLO26 offre un avantage par rapport aux 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 precision, ce qui le rend idéal pour les applications sensibles au 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 explorer 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é. 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. Les techniques détaillées de hyperparameter tuning se trouvent dans notre hyperparameter tuning guide.
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é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 la qualité globale de la surveillance.