Descripción del Sistema
Este sistema está diseñado para operar en escenarios de drones aéreos, realizando la detección y reconocimiento en tiempo real de múltiples objetivos terrestres. Es aplicable en áreas como supervisión urbana, control de tráfico y gestión de emergencias. Incorpora el modelo YOLOv11 para mantener una precisión elevada incluso bajo ángulos de visión inclinados desde drones.
Categorías de Objetos y Métricas de Confianza
- Peatón: confianza 0.369 - Detección de personas para monitoreo de multitudes.
- Aglomeración: confianza 0.293 - Identiifcación de zonas con alta densidad de personas.
- Ciclista: confianza 0.094 - Reconocimiento de bicicletas para gestión de movilidad.
- Automóvil: confianza 0.765 - Alta fiabilidad en la detección de coches para análisis de flujo vehicular.
- Furgón: confianza 0.401 - Detección de vehículos de carga medianos.
- Camión: confianza 0.317 - Identificación de vehículos de gran porte en áreas restringidas.
- Triciclo: confianza 0.235 - Detección de triciclos convencionales.
- Triciclo con techo: confianza 0.125 - Reconocimiento de variantes específicas de triciclos.
- Autobús: confianza 0.511 - Detección de transporte público para vigilancia de carriles exclusivos.
- Motocicleta: confianza 0.380 - Identificación de vehículos de dos ruedas para detección de infracciones.
Características Principales
- Optimización para perspectiva vertical: El modelo se adapta a vistas cenitales de drones, mitigando problemas de distorsión de objetos.
- Detección multi-escala: Capacidad para identificar tanto objetos grandes como pequeños mediante escalado adaptativo.
- Procesamiento en tiempo real: Alcanza 30 FPS en resolución 1080p, permitiendo análisis durante el vuelo del dron.
- Tolerancia a interferencias: Robustez frente a variaciones de iluminación y oclusiones parciales.
Ajuste de Umbrales de Confianza
El sistema ofrece dos umbrales configurables:
- Umbral base de detección: 0.6 - Define el límite para aceptar detecciones como válidas.
- Umbral de alta confianza: 0.8 - Usado para confirmar objetivos en aplicaciones críticas con baja tolerancia a errores.
Los umbrales pueden modificarse según los requisitos de precisión y sensibilidad de cada uso.
Aplicaciones Comunes
- Ciudades inteligentes: Estadística de tráfico en tiempo real, detección automática de infracciones.
- Respuesta a emergencias: Mapeo de distrbiución de personas en zonas afectadas, coordinación de recursos de rescate.
- Seguridad en eventos masivos: Monitoreo de densidad de multitudes, alertas tempranas de aglomeraciones anómalas.
Script de Inferencia para Video con YOLOv11
A continuación, un ejemplo en Python para procesamiento de video usando Ultralytics YOLOv11, asumiendo un modelo entrenado custom\_model.pt:
from ultralytics import YOLO
import cv2 as cv
# Carga del modelo entrenado
object_detector = YOLO('custom_model.mp')
# Configuración de rutas de video
input_source = 'input_footage.mp4'
output_destination = 'processed_footage.mp4'
# Inicialización de la captura de video
video_stream = cv.VideoCapture(input_source)
# Extracción de parámetros del video original
stream_fps = video_stream.get(cv.CAP_PROP_FPS)
resolution_width = int(video_stream.get(cv.CAP_PROP_FRAME_WIDTH))
resolution_height = int(video_stream.get(cv.CAP_PROP_FRAME_HEIGHT))
# Preparación del escritor de video
encoding_codec = cv.VideoWriter_fourcc(*'mp4v')
output_stream = cv.VideoWriter(output_destination, encoding_codec, stream_fps, (resolution_width, resolution_height))
# Iteración sobre los cuadros del video
while video_stream.isOpened():
frame_available, current_frame = video_stream.read()
if not frame_available:
break
# Ejecución de la inferencia
detection_results = object_detector(current_frame)
# Visualización de los resultados
result_frame = detection_results[0].plot()
# Escritura del cuadro procesado
output_stream.write(result_frame)
# Visualización en vivo (opcional)
cv.imshow('YOLOv11 Detection', result_frame)
if cv.waitKey(1) & 0xFF == ord('q'):
break
# Liberación de recursos
video_stream.release()
output_stream.release()
cv.destroyAllWindows()
print(f"Procesamiento finalizado. Video guardado en: {output_destination}")
Instrucciones de Ejecución
- Instale las depandencias necesarias con
pip install ultralytics opencv-python. - Coloque el modelo entrenado
custom\_model.pten el directorio del script o ajuste la ruta en el código. - Modifique la variable
input\_sourcepara apuntar a su archivo de video. - Ejecute el script; los resultados se almacenarán en
output\_destination.
Parámetros de Inferencia Adicionales
Se pueden personalizar los parámetros durante la inferencia:
detection_results = object_detector(current_frame, conf=0.5, iou=0.5, imgsz=640) # Ejemplo
Parámetros clave:
conf: Umbral de confianza para filtrar detecciones.iou: Umbral de intersección sobre unión para supresión de no máximos.imgsz: Dimensión de la imagen de entrada.device: Dispositivo de cómputo ('cpu', 'cuda:0', etc.).half: Activar precisión media para mayor velocidad.
Para usar una cámara en tiempo real, establezca input_source = 0.
Nota: YOLOv11 es una versión hipotética; en la práctica, Ultralytics ofrece YOLOv8 como versión estable. Ajuste el código según la versión disponible.