Progetto di sistema di allarme di sicurezza con Ultralytics YOLO26#
Il progetto di sistema di allarme di sicurezza basato su Ultralytics YOLO26 integra funzionalità avanzate di visione artificiale per potenziare le misure di sicurezza. YOLO26, sviluppato da Ultralytics, offre il rilevamento degli oggetti in tempo reale, consentendo al sistema di identificare e affrontare rapidamente potenziali minacce alla sicurezza. Questo progetto offre diversi vantaggi:
- Rilevamento in tempo reale: l'efficienza di YOLO26 consente al sistema di allarme di sicurezza di rilevare e gestire gli incidenti di sicurezza in tempo reale, riducendo al minimo i tempi di risposta.
- Precisione: YOLO26 è noto per la precisione nel rilevamento degli oggetti, che riduce i falsi positivi e aumenta l'affidabilità del sistema di allarme di sicurezza.
- Funzionalità di integrazione: il progetto può integrarsi senza problemi con l'infrastruttura di sicurezza esistente, aggiungendo un livello potenziato di sorveglianza intelligente.
Invia avvisi di sicurezza con YOLO26#
La soluzione SecurityAlarm monitora gli oggetti nel flusso video e invia un singolo avviso e-mail con un'immagine annotata in allegato non appena il numero di rilevamenti raggiunge la soglia records. Autentica un account Gmail con una password per le app, quindi esegui la soluzione sulla sorgente.
Vai al Generatore di password per le app, assegna un nome all'app, ad esempio "progetto di sicurezza", e genera una password di 16 caratteri. Copia questa password e incollala nel campo password nel codice seguente.
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Scrittore video
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'indirizzo e-mail del mittente
password = "---- ---- ---- ----" # password per le app di 16 caratteri generata tramite: https://myaccount.google.com/apppasswords
to_email = "xyz@gmail.com" # l'indirizzo e-mail del destinatario
# Inizializza l'oggetto del sistema di allarme di sicurezza
securityalarm = solutions.SecurityAlarm(
show=True, # visualizza l'output
model="yolo26n.pt", # ad es., yolo26s.pt, yolo26m.pt
records=1, # conteggio totale dei rilevamenti per inviare un'email
)
securityalarm.authenticate(from_email, password, to_email) # autentica il server email
# Elabora il 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) # accedi all'output
video_writer.write(results.plot_im) # scrivi il fotogramma elaborato.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # chiudi tutte le finestre aperteQuando esegui il codice, riceverai una singola notifica email se viene rilevato un oggetto. La notifica viene inviata immediatamente, non ripetutamente. Puoi personalizzare il codice in base ai requisiti del tuo progetto.
Esempio di email ricevuta#
Argomenti di SecurityAlarm#
Ecco una tabella con gli argomenti di SecurityAlarm:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso a un file modello Ultralytics YOLO. |
records | int | 5 | Numero totale di rilevazioni necessario per attivare un'email con l'allarme di sicurezza. |
line_width | int | 2 | Spessore delle linee dei riquadri, dei punti chiave e dei conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita il log per frame della soluzione, con forma dell'input, conteggi per classe e velocità di elaborazione. La chiamata di tracking è sempre silenziosa. |
La soluzione SecurityAlarm supporta diversi parametri di track:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Specifica l'algoritmo di tracciamento da usare. Opzioni integrate: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Imposta la soglia di confidenza per le rilevazioni; valori più bassi consentono di tracciare più oggetti, ma possono includere falsi positivi. |
iou | float | 0.7 | Imposta la soglia di Intersezione sull'unione (IoU) per filtrare le rilevazioni sovrapposte. |
classes | list | None | Filtra i risultati in base all'indice della classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
device | str | None | Specifica il dispositivo per l'inferenza (ad es. cpu, cuda:0 o 0). Consente di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
imgsz | int or tuple | 640 | Dimensione dell'immagine di destinazione per l'inferenza: un intero per un'immagine quadrata o una coppia (height, width). Le forme vengono adattate allo stride del modello. |
max_det | int | 300 | Numero massimo di rilevazioni da mantenere per fotogramma prima del tracciamento, che limita gli oggetti elaborati da una soluzione nelle scene dense. |
quantize | int or str | None | Precisione dell'inferenza: 16 (FP16) oppure 32/non impostata (FP32) per i modelli PyTorch e TorchScript; gli altri formati eseguono i calcoli con la precisione scelta dall'artefatto e dal runtime. Sostituisce il flag deprecato half. |
Inoltre, sono disponibili le seguenti impostazioni di visualizzazione:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
show | bool | False | Se True, mostra le immagini o i video annotati in una finestra. Utile per ottenere un riscontro visivo immediato durante lo sviluppo o i test. |
show_conf | bool | True | Mostra il punteggio di confidenza di ogni rilevamento accanto all'etichetta. Fornisce indicazioni sul grado di certezza del modello per ciascun rilevamento. |
show_labels | bool | True | Mostra le etichette di ogni rilevamento nell'output visivo. Permette di identificare immediatamente gli oggetti rilevati. |
Come funziona#
Il sistema di allarme di sicurezza usa il tracciamento degli oggetti per monitorare i flussi video e rilevare potenziali minacce alla sicurezza. Quando il numero di oggetti rilevati in un fotogramma raggiunge la soglia specificata (impostata dal parametro records), invia automaticamente una notifica email con un'immagine allegata che mostra gli oggetti rilevati.
Il sistema sfrutta la classe SecurityAlarm, che fornisce metodi per:
- Elaborare i fotogrammi ed estrarre i rilevamenti degli oggetti
- Annotare i fotogrammi con riquadri di delimitazione attorno agli oggetti rilevati
- Inviare notifiche email quando vengono raggiunte le soglie di rilevamento
Questa implementazione è ideale per la sicurezza domestica, la videosorveglianza nei negozi e altre applicazioni di monitoraggio in cui è fondamentale ricevere una notifica immediata degli oggetti rilevati.
Domande frequenti#
Ultralytics YOLO26 migliora i sistemi di allarme di sicurezza offrendo il rilevamento degli oggetti in tempo reale e con un'elevata precisione. I suoi algoritmi avanzati riducono notevolmente i falsi positivi, assicurando che il sistema reagisca solo a minacce reali. Questa maggiore affidabilità si integra senza problemi con l'infrastruttura di sicurezza esistente, migliorando la qualità complessiva della sorveglianza.
Sì, Ultralytics YOLO26 può integrarsi senza problemi con la tua infrastruttura di sicurezza esistente. Il sistema supporta diverse modalità e offre flessibilità per la personalizzazione, consentendoti di migliorare la configurazione esistente con funzionalità avanzate di rilevamento degli oggetti. Per istruzioni dettagliate sull'integrazione di YOLO26 nei tuoi progetti, visita la sezione dedicata all'integrazione.
Per eseguire Ultralytics YOLO26 con una configurazione standard sono in genere necessari circa 5 GB di spazio libero su disco. Questo spazio include il modello YOLO26 e tutte le dipendenze aggiuntive. Per le soluzioni basate sul cloud, Ultralytics Platform offre una gestione efficiente dei progetti e dei dataset, che può ottimizzare le esigenze di archiviazione. Scopri di più sul Piano Pro per accedere a funzionalità avanzate, tra cui maggiore spazio di archiviazione.
Ultralytics YOLO26 si distingue da modelli come Faster R-CNN o SSD per le capacità di rilevamento in tempo reale e la maggiore precisione. La sua architettura specifica gli consente di elaborare le immagini molto più rapidamente senza compromettere la precisione, rendendolo ideale per applicazioni con tempi critici come i sistemi di allarme di sicurezza. Per un confronto completo dei modelli di rilevamento degli oggetti, consulta la nostra guida.
Per ridurre i falsi positivi, assicurati che il tuo modello Ultralytics YOLO26 sia addestrato adeguatamente con un dataset variegato e ben annotato. Ottimizzare gli iperparametri e aggiornare regolarmente il modello con nuovi dati può migliorare notevolmente la precisione del rilevamento. Nella nostra guida all'ottimizzazione degli iperparametri trovi tecniche dettagliate di ottimizzazione degli iperparametri.