Proyecto de sistema de alarma de seguridad usando Ultralytics YOLO26

AI-powered security alarm system with object detection

El proyecto de sistema de alarma de seguridad que utiliza Ultralytics YOLO26 integra capacidades avanzadas de visión artificial para mejorar las medidas de seguridad. YOLO26, desarrollado por Ultralytics, proporciona detección de objetos en tiempo real, lo que permite al sistema identificar y responder a posibles amenazas de seguridad con prontitud. Este proyecto ofrece varias ventajas:

  • Detección en tiempo real: La eficiencia de YOLO26 permite que el sistema de alarma de seguridad detecte y responda a incidentes de seguridad en tiempo real, minimizando el tiempo de respuesta.
  • Precisión: YOLO26 es conocido por su precisión en la detección de objetos, lo que reduce los falsos positivos y mejora la fiabilidad del sistema de alarma de seguridad.
  • Capacidades de integración: El proyecto puede integrarse sin problemas con la infraestructura de seguridad existente, proporcionando una capa mejorada de vigilancia inteligente.


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

La generación de contraseñas de aplicaciones es necesaria

  • Navega al Generador de contraseñas de aplicaciones, asigna un nombre a la aplicación como "security project" y obtén una contraseña de 16 dígitos. Copia esta contraseña y pégala en el campo password designado en el código a continuación.
Sistema de alarma de seguridad usando 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

Al ejecutar el código, recibirás una única notificación por correo electrónico si se detecta algún objeto. La notificación se envía inmediatamente, no de forma repetida. Puedes personalizar el código para adaptarlo a los requisitos de tu proyecto.

Ejemplo de correo electrónico recibido

Security alert email notification example

Argumentos de SecurityAlarm

Aquí tienes una tabla con los argumentos de SecurityAlarm:

ArgumentoTipoPredeterminadoDescripción
modelstrNoneRuta a un archivo de modelo Ultralytics YOLO.
recordsint5Recuento total de detecciones para activar un correo electrónico con un sistema de alarma de seguridad.

La solución SecurityAlarm admite una variedad de parámetros de track:

ArgumentoTipoPredeterminadoDescripción
trackerstr'botsort.yaml'Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml.
conffloat0.1Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos pero pueden incluir falsos positivos.
ioufloat0.7Establece el umbral de Intersection over Union (IoU) para filtrar detecciones solapadas.
classeslistNoneFiltra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo sigue las clases especificadas.
verboseboolTrueControla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos seguidos.
devicestrNoneEspecifica el dispositivo para la inferencia (p. ej., cpu, cuda:0 o 0). Permite a los usuarios seleccionar entre CPU, una GPU específica u otros dispositivos de computación para la ejecución del modelo.

Además, están disponibles los siguientes ajustes de visualización:

ArgumentoTipoPredeterminadoDescripción
showboolFalseSi es True, muestra las imágenes o vídeos anotados en una ventana. Útil para obtener información visual inmediata durante el desarrollo o las pruebas.
line_widthint or NoneNoneEspecifica el ancho de línea de las cajas delimitadoras. Si es None, el ancho de línea se ajusta automáticamente según el tamaño de la imagen. Proporciona personalización visual para mayor claridad.
show_confboolTrueMuestra la puntuación de confianza para cada detección junto a la etiqueta. Ofrece información sobre la certeza del modelo para cada detección.
show_labelsboolTrueMuestra etiquetas para cada detección en el resultado visual. Proporciona una comprensión inmediata de los objetos detectados.

Cómo funciona

El sistema de alarma de seguridad utiliza seguimiento de objetos para monitorear transmisiones de video y detectar posibles amenazas de seguridad. Cuando el sistema detecta objetos que superan el umbral especificado (establecido por el parámetro records), envía automáticamente una notificación por correo electrónico con una imagen adjunta que muestra los objetos detectados.

El sistema aprovecha la clase SecurityAlarm que proporciona métodos para:

  1. Procesar fotogramas y extraer detecciones de objetos
  2. Anotar fotogramas con cuadros delimitadores alrededor de los objetos detectados
  3. Enviar notificaciones por correo electrónico cuando se superan los umbrales de detección

Esta implementación es ideal para seguridad en el hogar, vigilancia minorista y otras aplicaciones de monitoreo donde la notificación inmediata de objetos detectados es crítica.

Preguntas frecuentes

¿Cómo mejora Ultralytics YOLO26 la precisión de un sistema de alarma de seguridad?

Ultralytics YOLO26 mejora los sistemas de alarma de seguridad al proporcionar una detección de objetos en tiempo real de alta precisión. Sus algoritmos avanzados reducen significativamente los falsos positivos, asegurando que el sistema solo responda a amenazas reales. Esta mayor fiabilidad puede integrarse perfectamente con la infraestructura de seguridad existente, mejorando la calidad general de la vigilancia.

¿Puedo integrar Ultralytics YOLO26 con mi infraestructura de seguridad existente?

Sí, Ultralytics YOLO26 puede integrarse sin problemas con tu infraestructura de seguridad existente. El sistema admite varios modos y ofrece flexibilidad para la personalización, permitiéndote mejorar tu configuración actual con capacidades avanzadas de detección de objetos. Para obtener instrucciones detalladas sobre cómo integrar YOLO26 en tus proyectos, visita la sección de integración.

¿Cuáles son los requisitos de almacenamiento para ejecutar Ultralytics YOLO26?

Ejecutar Ultralytics YOLO26 en una configuración estándar generalmente requiere alrededor de 5GB de espacio libre en disco. Esto incluye espacio para almacenar el modelo YOLO26 y cualquier dependencia adicional. Para soluciones basadas en la nube, la Plataforma Ultralytics ofrece una gestión de proyectos y un manejo de conjuntos de datos eficientes, lo que puede optimizar las necesidades de almacenamiento. Obtén más información sobre el Plan Pro para obtener funciones mejoradas, incluido almacenamiento extendido.

¿Qué diferencia a Ultralytics YOLO26 de otros modelos de detección de objetos como Faster R-CNN o SSD?

Ultralytics YOLO26 ofrece una ventaja sobre modelos como Faster R-CNN o SSD gracias a sus capacidades de detección en tiempo real y mayor precisión. Su arquitectura única le permite procesar imágenes mucho más rápido sin comprometer la precisión, lo que lo hace ideal para aplicaciones sensibles al tiempo como los sistemas de alarma de seguridad. Para una comparación exhaustiva de los modelos de detección de objetos, puedes explorar nuestra guía.

¿Cómo puedo reducir la frecuencia de falsos positivos en mi sistema de seguridad usando Ultralytics YOLO26?

Para reducir los falsos positivos, asegúrate de que tu modelo Ultralytics YOLO26 esté adecuadamente entrenado con un conjunto de datos diverso y bien anotado. Ajustar los hiperparámetros y actualizar regularmente el modelo con nuevos datos puede mejorar significativamente la precisión de la detección. Puedes encontrar técnicas detalladas de ajuste de hiperparámetros en nuestra guía de ajuste de hiperparámetros.

Comentarios