Proyecto de sistema de alarma de seguridad usando Ultralytics YOLO26#
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 rapidez. 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.
Envía alertas de seguridad con YOLO26#
La solución SecurityAlarm rastrea objetos en tu flujo de vídeo y envía una única alerta por correo electrónico con una imagen anotada adjunta tan pronto como el número de detecciones alcance el umbral de records. Autentica una cuenta de Gmail con una contraseña de aplicación y luego ejecuta la solución sobre tu fuente.
Nota
La generación de contraseña de aplicación es necesaria
- Navega al generador de contraseñas de aplicación, designa un nombre de 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 designado
passworden el código de abajo.
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 windowsCuando ejecutes 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 repetidamente. Puedes personalizar el código para adaptarlo a los requisitos de tu proyecto.
Ejemplo de correo electrónico recibido#
Argumentos de SecurityAlarm#
Aquí tienes una tabla con los argumentos de SecurityAlarm:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
model | str | None | Ruta a un archivo de modelo YOLO de Ultralytics. |
records | int | 5 | Recuento total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad. |
La solución SecurityAlarm admite una variedad de parámetros de track:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Especifica el algoritmo de seguimiento que se va a utilizar. Opciones integradas: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.1 | Establece el umbral de confianza para las detecciones; valores más bajos permiten el seguimiento de más objetos, pero pueden incluir falsos positivos. |
iou | float | 0.7 | Establece el umbral de Intersection over Union (IoU) para filtrar detecciones superpuestas. |
classes | list | None | Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] solo realiza el seguimiento de las clases especificadas. |
verbose | bool | True | Controla la visualización de los resultados de seguimiento, proporcionando una salida visual de los objetos rastreados. |
device | str | None | Especifica el dispositivo para la inferencia (por ejemplo, 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:
| Argumento | Tipo | Predeterminado | Descripción |
|---|---|---|---|
show | bool | False | Si es True, muestra las imágenes o vídeos anotados en una ventana. Es útil para obtener retroalimentación visual inmediata durante el desarrollo o las pruebas. |
line_width | int or None | None | Especifica el grosor de línea de los cuadros delimitadores. Si es None, el grosor de la línea se ajusta automáticamente según el tamaño de la imagen. Proporciona una personalización visual para mayor claridad. |
show_conf | bool | True | Muestra la puntuación de confianza para cada detección junto a la etiqueta. Proporciona información sobre la certeza del modelo para cada detección. |
show_labels | bool | True | Muestra las 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 el seguimiento de objetos para supervisar los flujos de vídeo 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:
- Procesar fotogramas y extraer detecciones de objetos
- Anotar fotogramas con cuadros delimitadores alrededor de los objetos detectados
- Enviar notificaciones por correo electrónico cuando se superen 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 fundamental.
FAQ#
Ultralytics YOLO26 mejora los sistemas de alarma de seguridad ofreciendo detección de objetos de alta precisión en tiempo real. Sus algoritmos avanzados reducen significativamente los falsos positivos, garantizando que el sistema solo responda a amenazas genuinas. Esta mayor fiabilidad puede integrarse sin problemas con la infraestructura de seguridad existente, mejorando la calidad general de la vigilancia.
Sí, Ultralytics YOLO26 se puede integrar sin problemas en tu infraestructura de seguridad existente. El sistema admite varios modos y ofrece flexibilidad para la personalización, lo que te permite 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.
Ejecutar Ultralytics YOLO26 en una configuración estándar suele requerir unos 5 GB de espacio libre en disco. Esto incluye espacio para almacenar el modelo YOLO26 y cualquier dependencia adicional. Para soluciones basadas en la nube, Ultralytics Platform 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 disfrutar de funciones mejoradas, incluido el almacenamiento ampliado.
Ultralytics YOLO26 ofrece una ventaja sobre modelos como Faster R-CNN o SSD gracias a sus capacidades de detección en tiempo real y a su 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 ver una comparación exhaustiva de los modelos de detección de objetos, puedes explorar nuestra guía.
Para reducir los falsos positivos, asegúrate de que tu modelo Ultralytics YOLO26 esté debidamente 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.