Ir al contenido

Proyecto de Sistema de Alarma de Seguridad Utilizando Ultralytics YOLO11

Sistema de alarma de seguridad

El Proyecto de Sistema de Alarma de Seguridad que utiliza Ultralytics YOLO11 integra capacidades avanzadas de visión artificial para mejorar las medidas de seguridad. YOLO11, desarrollado por Ultralytics, proporciona detección de objetos en tiempo real, lo que permite al sistema identificar y responder a posibles amenazas de seguridad de manera oportuna. Este proyecto ofrece varias ventajas:

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



Ver: Sistema de Alarma de Seguridad con Ultralytics YOLO11 + Soluciones Detección de objetos

Nota

Es necesaria la generación de contraseñas de aplicación

  • Navegar a Generador de contraseñas de aplicaciones, designe un nombre de aplicación como "proyecto de seguridad" y obtenga una contraseña de 16 dígitos. Copie esta contraseña y péguela en el espacio designado password campo en el código siguiente.

Sistema de Alarma de Seguridad utilizando 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

¡Eso es todo! Cuando ejecutes el código, recibirás una única notificación en tu correo electrónico si se detecta algún objeto. La notificación se envía inmediatamente, no repetidamente. Sin embargo, siéntete libre de personalizar el código para que se adapte a los requisitos de tu proyecto.

Muestra de correo electrónico recibido

Muestra de correo electrónico recibido

SecurityAlarm Argumentos

Aquí tiene una tabla con el SecurityAlarm argumentos:

Argumento Tipo Predeterminado Descripción
model str None Ruta al archivo del modelo YOLO de Ultralytics.
records int 5 Conteo total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad.

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

Argumento Tipo Predeterminado Descripción
tracker str 'botsort.yaml' Especifica el algoritmo de seguimiento a utilizar, p. ej., bytetrack.yaml o botsort.yaml.
conf float 0.3 Establece el umbral de confianza para las detecciones; los valores más bajos permiten rastrear más objetos, pero pueden incluir falsos positivos.
iou float 0.5 Establece el umbral de Intersección sobre Unión (IoU) para filtrar detecciones superpuestas.
classes list None Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo rastrea las clases especificadas.
verbose bool True Controla la visualización de los resultados del seguimiento, proporcionando una salida visual de los objetos rastreados.
device str None Especifica 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 cálculo para la ejecución del modelo.

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

Argumento Tipo Predeterminado Descripción
show bool False Si 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_width None or int None Especifica el ancho de línea de los cuadros delimitadores. Si None, el ancho de línea se ajusta automáticamente en función del tamaño de la imagen. Proporciona personalización visual para mayor claridad.
show_conf bool True Muestra la puntuación de confianza para cada detección junto con la etiqueta. Ofrece información sobre la certeza del modelo para cada detección.
show_labels bool True Muestra etiquetas para cada detección en la salida visual. Proporciona una comprensión inmediata de los objetos detectados.

Cómo funciona

El sistema de alarma de seguridad utiliza seguimiento de objetos para supervisar transmisiones de vídeo y detectar posibles amenazas a la seguridad. Cuando el sistema detecta objetos que superan el umbral especificado (establecido por el records parámetro), 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 superen los umbrales de detección

Esta implementación es ideal para la seguridad del hogar, la vigilancia minorista y otras aplicaciones de monitoreo donde la notificación inmediata de los objetos detectados es fundamental.

Preguntas frecuentes

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

Ultralytics YOLO11 mejora los sistemas de alarma de seguridad al ofrecer 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 genuinas. Esta mayor fiabilidad se puede integrar perfectamente con la infraestructura de seguridad existente, mejorando la calidad general de la vigilancia.

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

Sí, Ultralytics YOLO11 se puede integrar perfectamente con su infraestructura de seguridad existente. El sistema admite varios modos y proporciona flexibilidad para la personalización, lo que le permite mejorar su configuración existente con capacidades avanzadas de detección de objetos. Para obtener instrucciones detalladas sobre la integración de YOLO11 en sus proyectos, visite la sección de integración.

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

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

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

Ultralytics YOLO11 proporciona una ventaja sobre modelos como Faster R-CNN o SSD con 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 la 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, puede explorar nuestra guía.

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

Para reducir los falsos positivos, asegúrate de que tu modelo Ultralytics YOLO11 esté adecuadamente entrenado con un conjunto de datos diverso y bien anotado. El ajuste preciso de los hiperparámetros y la actualización regular del modelo con nuevos datos pueden 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.



📅 Creado hace 1 año ✏️ Actualizado hace 4 meses

Comentarios