Proyecto de sistema de alarma de seguridad mediante Ultralytics YOLO11
El proyecto de sistema de alarma de seguridad que utiliza Ultralytics YOLO11 integra capacidades avanzadas de visión por ordenador 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 con prontitud a posibles amenazas para la seguridad. Este proyecto ofrece varias ventajas:
- Detección en tiempo real: la eficacia de YOLO11 permite al sistema de alarma de seguridad detectar y responder a incidentes de seguridad en tiempo real, minimizando el tiempo de respuesta.
- Precisión: YOLO11 es conocida por su precisión en la detección de objetos, lo que reduce los falsos positivos y aumenta la fiabilidad del sistema de alarma de seguridad.
- Capacidad de integración: El proyecto puede integrarse perfectamente con la infraestructura de seguridad existente, proporcionando una capa mejorada de vigilancia inteligente.
Observa: Sistema de alarma de seguridad con Ultralytics YOLO11 + Soluciones Detección de objetos
Nota
La generación de contraseñas de aplicaciones es necesaria
- Vaya a Generador de contraseñas de aplicacionesdesigne 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
password
en el siguiente código.
Sistema de alarma de seguridad con 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
Ya está. Cuando ejecute el código, recibirá una única notificación en su correo electrónico si se detecta algún objeto. La notificación se envía inmediatamente, no repetidamente. No obstante, siéntase libre de personalizar el código para adaptarlo a los requisitos de su proyecto.
Muestra de correo electrónico recibido
SecurityAlarm
Argumentos
Aquí tiene una tabla con los SecurityAlarm
argumentos:
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
model |
str |
None |
Ruta al archivo del modeloYOLO Ultralytics . |
records |
int |
5 |
Recuento total de detecciones para activar un correo electrónico con el sistema de alarma de seguridad. |
En SecurityAlarm
soporta una variedad de track
parámetros:
Argumento | Tipo | Por defecto | Descripción |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Especifica el algoritmo de seguimiento a utilizar, por ejemplo, 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 las detecciones solapadas. |
classes |
list |
None |
Filtra los resultados por índice de clase. Por ejemplo, classes=[0, 2, 3] sólo rastrea las clases especificadas. |
verbose |
bool |
True |
Controla la visualización de los resultados del rastreo, 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, un GPU específico 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 | Por defecto | Descripción |
---|---|---|---|
show |
bool |
False |
Si True muestra las imágenes o vídeos anotados en una ventana. Resulta ú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. |
Cómo funciona
El sistema de alarma de seguridad utiliza seguimiento de objetos para supervisar las secuencias de vídeo y detectar posibles amenazas a la seguridad. Cuando el sistema detecta objetos que superan el umbral especificado (establecido por el 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 la seguridad doméstica, la vigilancia de comercios y otras aplicaciones de supervisión en las que es fundamental la notificación inmediata de los objetos detectados.
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 ofreciendo una detección de objetos en tiempo real de gran precisión. Sus avanzados algoritmos reducen significativamente los falsos positivos, garantizando que el sistema sólo responda a las amenazas reales. Esta mayor fiabilidad puede integrarse perfectamente en la infraestructura de seguridad existente, mejorando la calidad general de la vigilancia.
¿Puedo integrar Ultralytics YOLO11 con mi infraestructura de seguridad actual?
Sí, Ultralytics YOLO11 puede integrarse perfectamente con su infraestructura de seguridad existente. El sistema admite varios modos y ofrece flexibilidad para la personalización, lo que le permite mejorar su configuración actual con funciones 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 suele requerir unos 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 eficaz de los proyectos y de los conjuntos de datos, lo que puede optimizar las necesidades de almacenamiento. Obtenga más información sobre el Plan Pro para funciones mejoradas, incluido el almacenamiento ampliado.
¿Qué diferencia a Ultralytics YOLO11 de otros modelos de detección de objetos como Faster R-CNN o SSD?
Ultralytics YOLO11 ofrece una ventaja sobre modelos como Faster R-CNN o SSD gracias a su capacidad de detección en tiempo real y 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 una comparación exhaustiva de los modelos de detección de objetos, puede consultar 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úrese de que su modelo Ultralytics YOLO11 está adecuadamente entrenado con un conjunto de datos diverso y bien anotado. El ajuste fino de los hiperparámetros y la actualización periódica del modelo con nuevos datos pueden mejorar significativamente la precisión de la detección. Encontrará técnicas detalladas de ajuste de hiperparámetros en nuestra guía de ajuste de hiperparámetros.