Progetto di sistema di allarme di sicurezza che utilizza Ultralytics YOLO11
Il progetto Security Alarm System che utilizza Ultralytics YOLO11 integra funzionalità avanzate di computer vision per migliorare le misure di sicurezza. YOLO11, sviluppato da Ultralytics, fornisce object detection in tempo reale, consentendo al sistema di identificare e rispondere tempestivamente alle potenziali minacce alla sicurezza. Questo progetto offre diversi vantaggi:
- Rilevamento in tempo reale: L'efficienza di YOLO11 consente al sistema di allarme di sicurezza di rilevare e rispondere agli incidenti di sicurezza in tempo reale, riducendo al minimo i tempi di risposta.
- Precisione: YOLO11 è noto per la sua precisione nel rilevamento degli oggetti, riducendo i falsi positivi e migliorando l'affidabilità del sistema di allarme di sicurezza.
- Capacità di integrazione: Il progetto può essere integrato senza problemi con l'infrastruttura di sicurezza esistente, fornendo un livello potenziato di sorveglianza intelligente.
Guarda: Sistema di allarme di sicurezza con Ultralytics YOLO11 + Soluzioni Rilevamento di oggetti
Nota
La generazione della password dell'app è necessaria
- Vai a Generatore di password per app, designare un nome per l'app, ad esempio "security project", e ottenere una password di 16 cifre. Copiare questa password e incollarla nello spazio designato
password
nel campo del codice sottostante.
Sistema di allarme di sicurezza che utilizza 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
Questo è tutto! Quando esegui il codice, riceverai una singola notifica sulla tua email se viene rilevato un oggetto. La notifica viene inviata immediatamente, non ripetutamente. Tuttavia, sentiti libero di personalizzare il codice per adattarlo alle esigenze del tuo progetto.
Esempio di email ricevuta
SecurityAlarm
Argomenti
Ecco una tabella con i SecurityAlarm
argomenti:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Percorso del file del modello Ultralytics YOLO. |
records |
int |
5 |
Conteggio totale dei rilevamenti per attivare un'e-mail con il sistema di allarme di sicurezza. |
Il SecurityAlarm
solution supporta una varietà di track
parametri:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml . |
conf |
float |
0.3 |
Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi. |
iou |
float |
0.5 |
Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes |
list |
None |
Filtra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
verbose |
bool |
True |
Controlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati. |
device |
str |
None |
Specifica il dispositivo per l'inferenza (ad esempio, cpu , cuda:0 oppure 0 ). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
Inoltre, sono disponibili le seguenti impostazioni di visualizzazione:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
show |
bool |
False |
Se True , visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test. |
line_width |
None or int |
None |
Specifica lo spessore della linea dei riquadri di delimitazione. Se None , lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza. |
show_conf |
bool |
True |
Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento. |
show_labels |
bool |
True |
Mostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati. |
Come funziona
Il sistema di allarme di sicurezza utilizza object tracking per monitorare i feed video e rilevare potenziali minacce alla sicurezza. Quando il sistema rileva oggetti che superano la soglia specificata (impostata da records
parametro), invia automaticamente una notifica via email con un'immagine allegata che mostra gli oggetti rilevati.
Il sistema sfrutta la classe SecurityAlarm che fornisce metodi per:
- Elabora i frame ed estrai i rilevamenti degli oggetti
- Annota i frame con bounding box attorno agli oggetti rilevati
- Inviare notifiche via email quando le soglie di detection vengono superate
Questa implementazione è ideale per la sicurezza domestica, la sorveglianza al dettaglio e altre applicazioni di monitoraggio in cui la notifica immediata degli oggetti rilevati è fondamentale.
FAQ
In che modo Ultralytics YOLO11 migliora l'accuratezza di un sistema di allarme di sicurezza?
Ultralytics YOLO11 migliora i sistemi di allarme di sicurezza fornendo un rilevamento di oggetti in tempo reale ad alta precisione. I suoi algoritmi avanzati riducono significativamente i falsi positivi, garantendo che il sistema risponda solo a minacce reali. Questa maggiore affidabilità può essere integrata senza problemi con l'infrastruttura di sicurezza esistente, migliorando la qualità complessiva della sorveglianza.
Posso integrare Ultralytics YOLO11 con la mia infrastruttura di sicurezza esistente?
Sì, Ultralytics YOLO11 può essere integrato senza problemi con la tua infrastruttura di sicurezza esistente. Il sistema supporta varie modalità e offre flessibilità per la personalizzazione, consentendoti di migliorare la tua configurazione esistente con funzionalità avanzate di rilevamento degli oggetti. Per istruzioni dettagliate sull'integrazione di YOLO11 nei tuoi progetti, visita la sezione sull'integrazione.
Quali sono i requisiti di archiviazione per l'esecuzione di Ultralytics YOLO11?
L'esecuzione di Ultralytics YOLO11 su una configurazione standard richiede in genere circa 5 GB di spazio libero su disco. Questo include lo spazio per l'archiviazione del modello YOLO11 e di eventuali dipendenze aggiuntive. Per le soluzioni basate su cloud, Ultralytics HUB offre una gestione efficiente dei progetti e della gestione dei set di dati, che può ottimizzare le esigenze di archiviazione. Scopri di più sul Piano Pro per funzionalità avanzate, tra cui l'archiviazione estesa.
Cosa rende Ultralytics YOLO11 diverso da altri modelli di object detection come Faster R-CNN o SSD?
Ultralytics YOLO11 offre un vantaggio rispetto a modelli come Faster R-CNN o SSD grazie alle sue capacità di rilevamento in tempo reale e alla maggiore accuratezza. La sua architettura unica gli consente di elaborare le immagini molto più velocemente senza compromettere la precisione, rendendolo ideale per applicazioni sensibili al tempo come i sistemi di allarme di sicurezza. Per un confronto completo dei modelli di rilevamento di oggetti, puoi esplorare la nostra guida.
Come posso ridurre la frequenza di falsi positivi nel mio sistema di sicurezza utilizzando Ultralytics YOLO11?
Per ridurre i falsi positivi, assicurati che il tuo modello Ultralytics YOLO11 sia adeguatamente addestrato con un set di dati diversificato e ben annotato. La messa a punto degli iperparametri e l'aggiornamento regolare del modello con nuovi dati possono migliorare significativamente l'accuratezza del rilevamento. Tecniche dettagliate di ottimizzazione degli iperparametri sono disponibili nella nostra guida all'ottimizzazione degli iperparametri.