Projet de système d'alarme de sécurité utilisant Ultralytics YOLO11
Le projet de système d'alarme de sécurité utilisant Ultralytics YOLO11 intègre des capacités avancées de vision par ordinateur pour améliorer les mesures de sécurité. YOLO11, développé par Ultralytics, fournit une détection d'objets en temps réel, permettant au système d'identifier et de répondre rapidement aux menaces potentielles à la sécurité. Ce projet offre plusieurs avantages :
- Détection en temps réel : L'efficacité de YOLO11 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éponse.
- Précision : YOLO11 est reconnu pour sa précision dans la détection d’objets, réduisant les faux positifs et améliorant 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 améliorée de surveillance intelligente.
Regarder : Système d'alarme de sécurité avec Ultralytics YOLO11 + Solutions Détection d'objets
Remarque
La génération d'un mot de passe d'application est nécessaire
- Accéder à Générateur de mot de passe d'application, désignez un nom d'application tel que « security project » et obtenez un mot de passe à 16 chiffres. Copiez ce mot de passe et collez-le dans l'emplacement désigné
password
champ 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="yolo11n.pt", # i.e. yolo11s.pt, yolo11m.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
C'est tout ! Lorsque vous exécutez le code, vous recevrez 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. N'hésitez pas à personnaliser le code en fonction des exigences de votre projet.
Exemple d'e-mail reçu
SecurityAlarm
Arguments
Voici un tableau avec les SecurityAlarm
arguments :
Argument | Type | Par défaut | Description |
---|---|---|---|
model |
str |
None |
Chemin d'accès au fichier de modèle Ultralytics YOLO. |
records |
int |
5 |
Nombre total de détections pour déclencher un e-mail avec le système d'alarme de sécurité. |
L'argument SecurityAlarm
la solution prend en charge une variété de track
paramètres :
Argument | Type | Par défaut | Description |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Spécifie l'algorithme de suivi à utiliser, par exemple, bytetrack.yaml ou botsort.yaml . |
conf |
float |
0.3 |
Définit le seuil de confiance pour les détections ; des valeurs plus basses permettent de suivre plus d'objets, mais peuvent inclure de faux positifs. |
iou |
float |
0.5 |
Définit le seuil Intersection sur 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] suit uniquement les classes spécifiées. |
verbose |
bool |
True |
Contrôle l'affichage des résultats de suivi, fournissant une sortie visuelle des objets suivis. |
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 | Par 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. |
line_width |
None or int |
None |
Spécifie la largeur de ligne des boîtes englobantes. Si None , la largeur de ligne est automatiquement ajustée en fonction de la taille de l'image. Fournit une personnalisation visuelle pour plus de clarté. |
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. Fournit une compréhension immédiate des objets détectés. |
Comment ça marche
Le système d'alarme de sécurité utilise suivi d'objets pour surveiller les flux vidéo et détecter les menaces potentielles à la sécurité. Lorsque le système détecte des objets qui dépassent le seuil spécifié (défini par le records
paramètre), il envoie automatiquement une notification par e-mail avec une pièce jointe contenant une image montrant les objets détectés.
Le système exploite la classe SecurityAlarm qui fournit des méthodes pour:
- Traiter les trames et extraire les détections d'objets
- Annoter les images avec des cadres de délimitation 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 vente au détail et d'autres applications de surveillance où la notification immédiate des objets détectés est essentielle.
FAQ
Comment Ultralytics YOLO11 améliore-t-il la précision d'un système d'alarme de sécurité ?
Ultralytics YOLO11 améliore les systèmes d'alarme de sécurité en fournissant 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 ainsi la qualité globale de la surveillance.
Puis-je intégrer Ultralytics YOLO11 à mon infrastructure de sécurité existante ?
Oui, Ultralytics YOLO11 peut être intégré de manière transparente à votre infrastructure de sécurité existante. Le système prend en charge divers modes et offre une flexibilité de personnalisation, vous permettant d'améliorer votre configuration existante avec des capacités avancées de détection d'objets. Pour des instructions détaillées sur l'intégration de YOLO11 dans vos projets, consultez la section d'intégration.
Quelles sont les exigences de stockage pour exécuter Ultralytics YOLO11 ?
L'exécution d'Ultralytics YOLO11 sur une configuration standard nécessite généralement environ 5 Go d'espace disque libre. Cela comprend l'espace pour stocker le modèle YOLO11 et toutes les dépendances supplémentaires. Pour les solutions basées sur le cloud, Ultralytics HUB offre une gestion de projet et une gestion des ensembles de données efficaces, ce qui peut optimiser les besoins de stockage. Apprenez-en davantage sur le Pro Plan pour des fonctionnalités améliorées, y compris le stockage étendu.
Qu'est-ce qui différencie Ultralytics YOLO11 des autres modèles de détection d'objets comme Faster R-CNN ou SSD ?
Ultralytics YOLO11 offre un avantage par rapport aux modèles comme Faster R-CNN ou SSD grâce à ses capacités de détection en temps réel et à sa plus grande précision. 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 comme les systèmes d'alarme de sécurité. Pour une comparaison complète des modèles de détection d'objets, vous pouvez explorer notre guide.
Comment puis-je réduire la fréquence des faux positifs dans mon système de sécurité en utilisant Ultralytics YOLO11 ?
Pour réduire les faux positifs, assurez-vous que votre modèle Ultralytics YOLO11 est correctement entraîné avec un ensemble 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 considérablement améliorer la précision de la détection. Vous trouverez des techniques détaillées d’ajustement des hyperparamètres dans notre guide d’ajustement des hyperparamètres.