Progetto di sistema di allarme di sicurezza utilizzando Ultralytics YOLO26

AI-powered security alarm system with object detection

Il progetto di sistema di allarme di sicurezza che utilizza Ultralytics YOLO26 integra funzionalità avanzate di computer vision per migliorare le misure di sicurezza. YOLO26, sviluppato da Ultralytics, fornisce rilevamento di oggetti in tempo reale, consentendo al sistema di identificare e rispondere 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 rispondere agli incidenti di sicurezza in tempo reale, riducendo al minimo il tempo di risposta.
  • Accuratezza: YOLO26 è noto per la sua accuratezza nel rilevamento di oggetti, riducendo i falsi positivi e migliorando l'affidabilità del sistema di allarme di sicurezza.
  • Capacità di integrazione: il progetto può essere integrato perfettamente nell'infrastruttura di sicurezza esistente, fornendo un livello aggiornato di sorveglianza intelligente.


Watch: Security Alarm System with Ultralytics YOLO26 + Solutions Object Detection
Nota

La generazione della password dell'app è necessaria

  • Vai su App Password Generator, assegna un nome all'app come "security project" e ottieni una password di 16 cifre. Copia questa password e incollala nel campo password designato nel codice sottostante.
Sistema di allarme di sicurezza utilizzando 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="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 windows

Quando esegui il codice, riceverai una singola notifica e-mail 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 e-mail ricevuta

Security alert email notification example

Argomenti di SecurityAlarm

Ecco una tabella con gli argomenti di SecurityAlarm:

ArgomentoTipoPredefinitoDescrizione
modelstrNonePercorso verso un file modello Ultralytics YOLO.
recordsint5Conteggio totale dei rilevamenti per attivare un'email con il sistema di allarme di sicurezza.

La soluzione SecurityAlarm supporta una varietà di parametri di track:

ArgomentoTipoPredefinitoDescrizione
trackerstr'botsort.yaml'Specifica l'algoritmo di tracciamento da utilizzare, ad esempio bytetrack.yaml o botsort.yaml.
conffloat0.1Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono il tracciamento di più oggetti ma potrebbero includere falsi positivi.
ioufloat0.7Imposta la soglia di Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti.
classeslistNoneFiltra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] traccia solo le classi specificate.
verboseboolTrueControlla la visualizzazione dei risultati di tracciamento, fornendo un output visivo degli oggetti tracciati.
devicestrNoneSpecifica il dispositivo per l'inferenza (ad esempio cpu, cuda:0 o 0). Consente agli utenti di scegliere tra CPU, una specifica GPU o altri dispositivi di calcolo per l'esecuzione del modello.

Inoltre, sono disponibili le seguenti impostazioni di visualizzazione:

ArgomentoTipoPredefinitoDescrizione
showboolFalseSe True, visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test.
line_widthint or NoneNoneSpecifica lo spessore della linea dei riquadri di delimitazione. Se None, lo spessore viene regolato automaticamente in base alla dimensione dell'immagine. Fornisce personalizzazione visiva per maggiore chiarezza.
show_confboolTrueVisualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta. Offre informazioni sulla certezza del modello per ogni rilevamento.
show_labelsboolTrueVisualizza le etichette per ogni rilevamento nell'output visivo. Fornisce una comprensione immediata degli oggetti rilevati.

Come funziona

Il sistema di allarme di sicurezza utilizza il monitoraggio degli oggetti per controllare i feed 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 e-mail con un allegato immagine che mostra gli oggetti rilevati.

Il sistema sfrutta la classe SecurityAlarm che fornisce metodi per:

  1. Elaborare frame ed estrarre rilevamenti di oggetti
  2. Annotare i frame con riquadri di delimitazione attorno agli oggetti rilevati
  3. Inviare notifiche e-mail quando vengono superate le soglie di rilevamento

Questa implementazione è ideale per la sicurezza domestica, la sorveglianza della vendita al dettaglio e altre applicazioni di monitoraggio in cui è fondamentale una notifica immediata degli oggetti rilevati.

FAQ

In che modo Ultralytics YOLO26 migliora l'accuratezza di un sistema di allarme di sicurezza?

Ultralytics YOLO26 migliora i sistemi di allarme di sicurezza fornendo un rilevamento di oggetti ad alta precisione in tempo reale. I suoi algoritmi avanzati riducono significativamente i falsi positivi, garantendo che il sistema risponda solo a minacce reali. Questa maggiore affidabilità può essere integrata perfettamente nell'infrastruttura di sicurezza esistente, migliorando la qualità complessiva della sorveglianza.

Posso integrare Ultralytics YOLO26 con la mia infrastruttura di sicurezza esistente?

Sì, Ultralytics YOLO26 può essere integrato perfettamente nella 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 oggetti. Per istruzioni dettagliate sull'integrazione di YOLO26 nei tuoi progetti, visita la sezione integrazione.

Quali sono i requisiti di archiviazione per eseguire Ultralytics YOLO26?

L'esecuzione di Ultralytics YOLO26 su una configurazione standard richiede solitamente circa 5 GB di spazio libero su disco. Ciò include lo spazio per l'archiviazione del modello YOLO26 e di eventuali dipendenze aggiuntive. Per le soluzioni basate su cloud, la piattaforma Ultralytics offre una gestione efficiente dei progetti e la gestione dei set di dati, che può ottimizzare le esigenze di archiviazione. Scopri di più sul Pro Plan per funzionalità avanzate, inclusa l'archiviazione estesa.

Cosa rende Ultralytics YOLO26 diverso da altri modelli di rilevamento oggetti come Faster R-CNN o SSD?

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 unica gli consente di elaborare le immagini molto più velocemente senza compromettere la precisione, rendendolo ideale per applicazioni sensibili al fattore tempo come i sistemi di allarme di sicurezza. Per un confronto completo dei modelli di rilevamento oggetti, puoi esplorare la nostra guida.

Come posso ridurre la frequenza dei falsi positivi nel mio sistema di sicurezza utilizzando Ultralytics YOLO26?

Per ridurre i falsi positivi, assicurati che il tuo modello Ultralytics YOLO26 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 possono essere trovate nella nostra guida all'ottimizzazione degli iperparametri.

Commenti