Detección y Seguimiento Robusto de UAV mediante Visión por Computadora con IA
Resumen
Con la innovación tecnológica, la seguridad se está convirtiendo en el mayor reto. La accesibilidad exponencialmente creciente de drones representa una gran amenaza para la seguridad general. El uso de UAVs ha aumentado en los últimos años. Teniendo en cuenta los problemas de seguridad, se propone una solución: primero detectar UAVs y luego rastrear su trayectoria.
Para la detección de objetos, los algoritmos de aprendizaje profundo de visión por computadora son muy efectivos. La entrada es procesada por YOLO (You Only Look Once), una red neuronal usada para detección y seguimiento de objetos en tiempo real.
2.1 Entendiendo el Concepto de UAV
Según el título "Detección y seguimiento de UAV usando visión por computadora", UAV (Vehículo Aéreo No Tripulado) es una aeronave sin piloto, controlable remotamente u ordenadores a bordo. 
Los UAVs pueden usarse para fines beneficiosos: agricultura, investigación científica, pronóstico meteorológico, envíos y entregas, operaciones de rescate y sanidad. También para fines perjudiciales: ataques, lanzamientos de misiles, asesinatos selectivos, etc.
2.2 ¿Qué es la Visión por Computadora?
Visión por computadora es el campo científico que permite a las computadoras ver, identificar y procesar imágenes como lo hace la visión humana, proporcionando una salida adecuada. Se usa en casi todos los campos:
- Detección de objetos y rostros
- Cirugía robótica y diagnóstico médico
- Procesamiento de imágenes
- Agricultura
- Tecnología espacial (el Rover de Marte de la NASA incluye capacidades para modelar el terreno, detectar obstáculos y unir imágenes panorámicas)
2.3 ¿Qué es la Técnica de Procesamiento de Imágenes?
La técnica de Procesamiento de Imágenes es usada por la visión por computadora para realizar distintas tareas. Las operaciones y métodos aplicados para mejorar la calidad de una imagen o obtener un resultado específico tras obtenerse como pila de imágenes se denominan procesamiento de imágenes.
El procesamiento de imágenes es una de las áreas de tecnología de la información de más rápida evolución, con aplicaciones crecientes en todos los ámbitos empresariales. Aplicaciones:
Casos de Uso del Procesamiento de Imágenes
El procesamiento de imágenes puede usarse en:
- Robótica
- Médico
- Reconocimiento de patrones
- Procesamiento de video
- Detección facial
2.4 Requisitos de Software
- Anaconda
- Spyder
- Python
- Librería OpenCV
3. Algoritmos para Detección de Objetos
Existen muchos algoritmos para detección de objetos. Algunos:
- VIOLA Y JONES
- Redes Neuronales Convolucionales (CNN)
- You Only Look Once (YOLO)
- Single Shot Detector (SSD)
- Region-based CNN (R-CNN)
Tabla 3.1: Algoritmos para detección
| Algoritmo | Descripción | Fortaleza | Debilidad |
|---|---|---|---|
| VIOLA Y JONES (diseñado por Paul Viola y Michael Jones en 2001) | Propósito principal: detección de rostros y objetos en tiempo real. El algoritmo mira subregiones pequeñas de la imagen y busca objetos mediante características especiales en cada subregión. Usa características tipo Haar. |
|
|
| CNN (Redes Neuronales Convolucionales) Introducida por Kunihiko Fukushima en 1980 | Modelo jerárquico biológicamente inspirado entrenable para variedad de detección, reconocimiento y segmentación. Algoritmo de aprendizaje profundo que toma imágenes como entrada, asigna pesos y sesgos aprendibles a objetos en la imagen y diferencia entre ellos. |
|
|
| YOLO (You Only Look Once) | Algoritmo de detección en tiempo real. Aplica red neuronal a la imagen, la divide en cuadrícula S x S, crea bordes alrededor de imágenes y predice probabilidades para cada borde. Usa regresión. |
|
1. Detecta un objeto por celda de cuadrícula. 2. Favorece alto rendimiento sobre precisión. |
| SSD (Single Shot Detector) | Este método solo toma una pasada para detectar múltiples objetos, es muy rápido. Diseñado para implementación en tiempo real. Contiene dos componentes: backbone y SSD head. |
|
|
Aquí se usará el algoritmo de red neuronal YOLO. Es muy rápido para implementación en tiempo real. Usa red neuronal y divide imagen en cuadrícula S x S creando borde alrededor de la imagen para predecir posibilidades para cada borde. Algoritmos para detección mostrados en Tabla 4.4.
3.1 Algoritmo para Seguimiento
Tras detectar un objeto, el foco está en rastrear. Si el objeto detectado es una cometa o pájaro no hay necesidad de seguimiento, pero si es un dron, el objetivo se rastrea.
Muchos algoritmos se usan para seguimiento de objetos. Pero de nuevo se usa YOLO para seguimiento porque es rápido y preciso, y puede detectar y rastrear hasta que el objetivo sale del rango de la cámara.
4. Implementación del Diseño Propuesto
Aquí está la implementación del diseño propuesto, con todos los pasos para ejecutar el proyecto en software.
4.1 Etapa Inicial
- El procesamiento de imágenes necesita buena CPU/GPU, elige CPU. Instala Anaconda desde su web. Instalación de Anaconda mostrada en figura 4.1

- Tras instalar Anaconda Navigator, crea un entorno con el cuadro de diálogo de entorno y selecciona la versión de Python.
- Tras crear el entorno con éxito, instala Spyder (fácil de usar). Luego instala OpenCV mediante comando
pip install cv2.
4.2 Preparación del Conjunto de Datos
- Recopila muchas imágenes de distintos objetos aéreos: drones, pájaros, aviones, helicópteros, cometas, globos.
Nota: Crear un dataset es más que recopilar imágenes. Hay que nombrar las imágenes y también indicar la posición de estos objetos en cada imagen. Para ello, se usa un software llamado LabelImg, que convierte imágenes en archivos de texto. Como se muestra en figura 4.6
- Una vez creados los archivos TXT de todos los objetos, mete todas las imágenes y archivos de texto en un archivo zip. También nombra archivo para las clases incluidas.

4.3 Configuración de YOLO
Para configurar, sigue estos pasos:
- Instala darknet con YOLO v3.
- Para configurar YOLO, crea una carpeta en darknet/data incluyendo todas las imágenes y archivos .txt del dataset creado.
- Para hacer un archivo de configuración personalizado, haz las modificaciones requeridas en YOLO v3 de cfg, ajustando batch, subdivisiones y max batches respecto a clases y steps.
- Al introducir el número de clases, cambia la capa convolucional encima de YOLO. También pon random a 1. Parámetros cfg mostrados en Tabla 4.1
Tabla 4.1: Parámetros CFG
| Nombre | Descripción |
|---|---|
| Batch | Cuántas imágenes y etiquetas se usan en el paso forward para calcular gradiente y actualizar pesos via backpropagation. |
| Subdivisions | El batch se subdivide en muchos "bloques". Las imágenes de un bloque se ejecutan en paralelo. |
| Steps | 500,1000: Ajusta learning rate tras 500 y 1000 batches. |
| Layers (Filters) | Cuántos kernels convolucionales hay en una capa. |
| Layers (Random) | Poner en capas YOLO. Si es 1, hace data augmentation redimensionando imágenes a distintos tamaños cada pocos batches, para generalizar sobre tamaños de objetos. |
- Crea carpeta de objeto personalizado mediante data/obj.names con todos los nombres a detectar: drones, UAVs, pájaros, cometas, etc.
- En obj.data se incluyen número de clases, train.txt, valid, names, y carpeta weights y se guarda.

- En train.txt se guardan todos los datos y nombres de imágenes.

4.4 Entrenamiento de YOLO en tu Conjunto de Datos
El entrenamiento de YOLO para dataset personalizado también se hace mediante darknet. Clona y habilita darknet así como OpenCV. Tomando la carpeta ZIP, archivo .cfg, .names, obj.data y train.txt creados, configura la red darknet para entrenamiento de YOLO v3, contando las ejecuciones.
Tras miles de iteraciones (unas 2 horas según potencia de CPU) un dataset entrenado estará listo para usar e integrar con nuestro sistema, indicando la pérdida media (average loss).
4.5 Prueba de Código en Entrada de Imagen y Video
Tras entrenar YOLO para el dataset personalizado, empieza a probar el código en tu dataset entrenado (pesos YOLO). Tiene 4 clases en este caso.
Prueba detección YOLO en distintos. Pesos grandes son buenos en precisión pero el procesamiento es lento por bajos frames por segundo. Haz video de UAV, pájaros y da estos datos como entrada al código. Todos los objetos serán detectados y rastreados exitosamente con etiquetas, fps y umbral.
Ahora el código puede probarse en escenarios reales mediante entrada en tiempo real de webcam; cambia el rango de cámara, vuela tu UAV grabando el resultado y verás la salida requerida: "Detección y Seguimiento de UAV".

Tecnología Industrial
- Sensor de movimiento SmartThings con visión artificial en Raspberry Pi 3
- Integración de Microsoft Kinect con Raspberry Pi para Detección Humana en Tiempo Real en Robot Sonbi
- Siete Formas Comprobadas en que la Visión Artificial Impulsa la Eficiencia y Ahorra Costes
- Revolución en la Industria 4.0: Cómo la Visión Artificial Impulsa la Fabricación Inteligente
- Osciloscopio PC: Construye un Analizador de Formas de Onda de Bajo Costo Usando tu Computadora
- Mastercam Unidad 7: Gestión de Imágenes y Creación de Trayectorias de Herramienta
- Cómo la Visión Robótica Mejora la Automatización: Ventajas y Aplicaciones Clave
- UAV de Alta Altitud Avanzado para Monitorización Meteorológica Precisa
- Prevención de deformación de imagen por calor en cámaras de visión artificial de escaneo lineal
- Top 4 Beneficios de la Detección Inteligente de Fugas para Seguridad de Edificios y Ahorro de Costes
- Por Qué la Detección de Fugas de Agua IoT de Biz4Intellia Impulsa la Eficiencia Industrial – 5 Ventajas Clave