Progetto di sistema di allarme di sicurezza con Ultralytics YOLO26#
Il progetto di sistema di allarme di sicurezza che utilizza Ultralytics YOLO26 integra funzionalità avanzate di visione artificiale per migliorare le misure di sicurezza. YOLO26, sviluppato da Ultralytics, offre il rilevamento degli oggetti in tempo reale, consentendo al sistema di identificare e reagire tempestivamente a 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 sua precisione nel rilevamento degli oggetti, riducendo i falsi positivi e aumentando l'affidabilità del sistema di allarme di sicurezza.
- Funzionalità di integrazione: il progetto può essere integrato senza problemi con l'infrastruttura di sicurezza esistente, offrendo un livello potenziato di sorveglianza intelligente.
Invia avvisi di sicurezza con YOLO26#
La soluzione SecurityAlarm tiene traccia degli oggetti nel tuo flusso video e invia un singolo avviso via email 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 tua sorgente.
Vai al Generatore di password dell'app, assegna un nome all'app come "progetto di sicurezza" e ottieni una password a 16 cifre. Copia questa password e incollala nel campo password nel codice sottostante.
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 windowsQuando esegui il codice, riceverai una singola notifica via 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 SecurityAlarm#
Ecco una tabella con gli argomenti SecurityAlarm:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
model | str | None | Percorso al file del modello Ultralytics YOLO. |
records | int | 5 | Numero totale di rilevazioni necessario per attivare un'e-mail con il sistema di allarme di sicurezza. |
line_width | int | 2 | Spessore delle linee per i riquadri, i punti chiave e i conteggi disegnati dalla soluzione. |
verbose | bool | True | Abilita il registro per fotogramma della soluzione, con forma dell'input, conteggi delle classi e velocità di elaborazione. La chiamata di tracciamento è sempre silenziosa. |
La soluzione SecurityAlarm supporta diversi parametri track:
| Argomento | Tipo | Predefinito | Descrizione |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Specifica l'algoritmo di tracciamento da utilizzare. 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 inferenza di destinazione: un numero intero per un'immagine quadrata o una coppia (height, width). Le forme vengono regolate in base al passo del modello. |
max_det | int | 300 | Numero massimo di rilevamenti conservati per fotogramma prima del tracciamento, limitando gli oggetti elaborati da una soluzione in scene dense. |
quantize | int or str | None | Precisione dell'inferenza: 16 (FP16) o 32/non impostato (FP32) per i modelli PyTorch e TorchScript; altri formati vengono calcolati alla precisione selezionata dal loro artefatto e runtime. Sostituisce il flag deprecato half. |
Sono inoltre 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 ottenere un feedback visivo immediato durante lo sviluppo o i test. |
show_conf | bool | True | Visualizza il punteggio di confidenza per ogni rilevazione accanto all'etichetta. Fornisce informazioni sul grado di certezza del modello per ogni rilevazione. |
show_labels | bool | True | Visualizza le etichette per ogni rilevazione nell'output visivo. Consente di comprendere immediatamente gli oggetti rilevati. |
Come funziona#
Il sistema di allarme di sicurezza utilizza il tracciamento degli oggetti per monitorare i flussi video e rilevare potenziali minacce alla sicurezza. Quando il sistema rileva oggetti che superano la soglia specificata, impostata dal parametro records, 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:
- Elaborare i frame ed estrarre i rilevamenti degli oggetti
- Annotare i frame con riquadri di delimitazione attorno agli oggetti rilevati
- Inviare notifiche via email quando vengono superate le soglie di rilevamento
Questa implementazione è ideale per la sicurezza domestica, la sorveglianza negli esercizi commerciali e altre applicazioni di monitoraggio in cui è fondamentale ricevere una notifica immediata degli oggetti rilevati.
FAQ#
Ultralytics YOLO26 migliora i sistemi di allarme di sicurezza offrendo un rilevamento degli oggetti in tempo reale e ad alta precisione. I suoi algoritmi avanzati riducono significativamente i falsi positivi, garantendo che il sistema reagisca solo a minacce reali. Questa maggiore affidabilità può essere integrata senza problemi con l'infrastruttura di sicurezza esistente, migliorando complessivamente la qualità della sorveglianza.
Sì, Ultralytics YOLO26 può essere integrato senza problemi con la tua infrastruttura di sicurezza esistente. Il sistema supporta diverse modalità e offre flessibilità per la personalizzazione, consentendoti di potenziare la configurazione esistente con funzionalità avanzate di rilevamento degli oggetti. Per istruzioni dettagliate sull'integrazione di YOLO26 nei tuoi progetti, visita la sezione sull'integrazione.
L'esecuzione di Ultralytics YOLO26 su una configurazione standard richiede in genere circa 5 GB di spazio libero su disco. Questo include lo spazio per archiviare il modello YOLO26 e qualsiasi dipendenza aggiuntiva. 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 usufruire di funzionalità avanzate, tra cui uno spazio di archiviazione esteso.
Ultralytics YOLO26 offre un vantaggio rispetto a modelli come Faster R-CNN o SSD grazie alle sue funzionalità di rilevamento in tempo reale e alla maggiore precisione. La sua architettura esclusiva gli consente di elaborare le immagini molto più velocemente senza compromettere la precisione, rendendolo ideale per applicazioni in cui il fattore tempo è essenziale, come i sistemi di allarme di sicurezza. Per un confronto completo dei modelli di rilevamento degli oggetti, puoi consultare la nostra guida.
Per ridurre i falsi positivi, assicurati che il tuo modello Ultralytics YOLO26 sia addestrato adeguatamente con un dataset diversificato e ben annotato. La regolazione fine degli iperparametri e l'aggiornamento regolare del modello con nuovi dati possono migliorare significativamente la precisione del rilevamento. Tecniche dettagliate di regolazione degli iperparametri sono disponibili nella nostra guida alla regolazione degli iperparametri.