Cheque verde
Enlace copiado en el portapapeles

Crea aplicaciones para drones basadas en IA con Ultralytics YOLO11

Aprende a crear aplicaciones para drones potenciadas por IA con Ultralytics YOLO11, que permite la detección de objetos en tiempo real y tareas de visión por ordenador basadas en drones.

Las compras en tiendas y las compras online pueden parecer iguales, pero dependen de una logística diferente. Las tiendas necesitan que se repongan las estanterías, mientras que los pedidos online dependen de las entregas a domicilio. Gracias a los avances tecnológicos, ambas experiencias de compra se están reconfigurando en paralelo.

Por ejemplo, se está produciendo un cambio importante en las entregas. Los drones dotados de IA están cambiando la forma en que los productos llegan a nuestros hogares. Se espera que estos drones inteligentes realicen unos 808 millones de entregas en la próxima década, convirtiendo los cielos en la nueva ruta de entrega para el comercio cotidiano.

Los drones de reparto utilizan la inteligencia artificial (IA) y la visión por ordenador, un subcampo de la IA que se emplea para analizar datos visuales, para navegar y maniobrar sorteando obstáculos. Los modelos de visión por ordenador como Ultralytics YOLO11 pueden ayudar a los drones a detectar y seguir objetos en tiempo real, permitiéndoles comprender mejor su entorno e interactuar con él.

Fig. 1. Un dron de reparto llevando un paquete a su destino.

Empresas como Meituan y DJI ya están integrando la visión por ordenador en sus drones. De hecho, la rápida adopción de drones en diversas industrias ha hecho que el mercado de drones con IA se dispare hasta los 206.900 millones de dólares en 2031. 

En este artículo, veremos más de cerca cómo pueden utilizarse los modelos de visión por ordenador como Ultralytics YOLO11 en aplicaciones basadas en drones, como las entregas con drones. Recorreremos un ejemplo que mostrará cómo pueden desarrollarse y probarse estas tecnologías antes de utilizarlas en escenarios del mundo real.

Uso de Ultralytics YOLO11 en drones para detectar casas

Una parte clave de los drones de reparto es su capacidad para detectar casas mientras navegan. Para recrear esta capacidad y comprender cómo funciona, entrenaremos un modelo de visión por ordenador que pueda identificar casas en las secuencias captadas por un dron aéreo. Para ello, entrenaremos YOLO11 a medida, lo que implica ajustar un modelo YOLO11 preentrenado para reconocer y detectar casas utilizando ejemplos etiquetados.

Para ello, necesitaremos datos de vídeo de alta calidad de un dron. Curiosamente, incluso sin acceso a un dron real, podemos generar secuencias aéreas realistas. Veamos cómo.

Crear una toma artificial de un dron con Google Earth Studio

Google Earth Studio es una herramienta de animación basada en web que pueden utilizar los usuarios para crear contenidos fijos y animados utilizando las imágenes por satélite y 3D de Google Earth. Podemos utilizarla para crear imágenes aéreas realistas.

El primer paso es abrir Google Earth Studio y crear un proyecto, como se muestra a continuación. 

Necesitarás una cuenta de Google para acceder.

Fig. 2. Crear un proyecto en Google Earth Studio.

Una vez que te hayas identificado, puedes elegir una ubicación para tu vídeo con dron artificial. Utilizando la barra de búsqueda situada en la esquina superior izquierda de la página, puedes buscar ubicaciones. Para este tutorial, elegiremos Canadá. Además, como vamos a entrenar un modelo para detectar casas, nuestro vídeo de dron debe tener una vista aérea de casas.

Fig 3. Elegir una ubicación con Google Earth Studio.

A continuación, podemos fijar el primer y el último fotograma para capturar el movimiento de la toma artificial del dron. Una vez que hayas elegido la ubicación inicial para la toma del dron, fija el primer fotograma utilizando los diamantes azules, como se muestra a continuación. 

Fig 4. Ajustar el primer fotograma utilizando los diamantes azules.

A continuación, podemos elegir el último fotograma para determinar el destino del dron. Esto nos ayudará a crear un efecto de movimiento para la toma del dron. Para ello, desliza la barra (resaltada más abajo) hacia la derecha hasta un momento determinado para crear el efecto de movimiento para la toma del dron. Una vez más, utiliza los diamantes azules para fijar el último punto.

Fig 5. Fijar el último fotograma moviendo la barra.

Por último, puedes guardar este proyecto y renderizarlo haciendo clic en el botón rojo "Renderizar" de la esquina superior derecha de la página. Esto te dará la salida de vídeo final de la toma del dron, creando con éxito secuencias de vídeo de drones artificiales.

Fig. 6. Renderización del vídeo de salida final.

¿Cómo etiquetar los datos del dron?

Ahora que hemos creado secuencias de vídeo de drones artificiales, el siguiente paso es etiquetar o anotar las casas que aparecen en ellas. También tendremos que separar los fotogramas individuales del vídeo. 

Para empezar con esto, instalaremos LabelImg. LabelImg es una herramienta de etiquetado de imágenes de código abierto. Puedes instalarla directamente desde el terminal utilizando el instalador de paquetes pip ejecutando el siguiente comando: "pip install labelImg".

Tras la instalación, puedes ejecutar la herramienta utilizando el comando "labelImg" en tu terminal o símbolo del sistema. Esto te llevará a la página que se muestra a continuación.

Fig 7. La interfaz de la herramienta LabelImg.

Mientras tanto, podemos utilizar un conversor de vídeo a imagen online o una herramienta llamada FFmpeg para dividir el vídeo en fotogramas. FFmpeg es una colección de bibliotecas y herramientas para procesar contenidos multimedia como audio, vídeo, subtítulos y metadatos relacionados. 

Puedes utilizar el siguiente comando de terminal para separar cada fotograma del vídeo de la grabación del dron:

ffmpeg -i input_video.mp4 -vf fps=1 frame_%04d.jpg

Una vez que hemos separado los fotogramas de la grabación del dron, podemos empezar a etiquetar los objetos (casas) que hay en ellos. Navegando a la carpeta de imágenes a través de la herramienta LabelImg, podemos etiquetar los objetos de cada imagen. Asegúrate de guardar y verificar cada imagen etiquetada. Una vez anotadas las imágenes, podemos pasar a entrenar YOLO11 con estos datos.

Fig 8. Un ejemplo de guardar imágenes anotadas.

Flujo de trabajo del entrenamiento del modelo YOLO11

Antes de empezar a entrenar a YOLO11, organizaremos nuestras imágenes y etiquetas. Empieza creando dos carpetas: una llamada "entrenar" y la otra "válido". Divide tus imágenes entre estas carpetas. Dentro de cada una, crea subcarpetas separadas para las imágenes y sus correspondientes archivos de etiquetas (formato texto), como se muestra a continuación.

Fig 9. Ejemplo de creación de carpetas de imágenes y etiquetas.

A continuación, podemos empezar a entrenar el modelo YOLO11 del siguiente modo:

  • Paso 1: Instala el paquetePython Ultralytics . Puedes hacerlo ejecutando el comando "pip install ultralytics" en tu terminal. Si te encuentras con algún problema de instalación, consulta nuestra guía de solución de problemas para obtener consejos y trucos que te ayuden a resolverlos.
  • Paso 2: Tras instalar correctamente el paquete, crea un archivo con el nombre "data.yaml". Se trata de un archivo de configuración que es crucial para entrenar el modelo. En el archivo data.yaml, incluye la siguiente información: la ruta a tu conjunto de datos de entrenamiento, la ruta a tu conjunto de datos de validación, el número de clases (nc) y una lista de nombres de clases (names), como se muestra a continuación.
Fig 10. Ejemplo de archivo data.yaml.

  • Paso 3: Una vez configurado el archivo "data.yaml", puedes empezar a entrenar tu modelo utilizando el siguiente código Python . Este código carga el modelo YOLO11 preentrenado y lo entrena según tus configuraciones.
from ultralytics import YOLO

# Load a YOLO11 model
model = YOLO("yolo11n.pt")  # choose your model, e.g., YOLO11 nano

# Train the model with your data and settings
model.train(data="data.yaml", epochs=100, imgsz=640)
  • Paso 4: Una vez completado el entrenamiento, deberías ver un resultado similar al que se muestra a continuación. Esto significa que has entrenado con éxito tu modelo YOLO11 para aplicaciones basadas en drones.
Fig 11. La salida mostrada tras el entrenamiento del modelo.

Ejecutar predicciones con Ultralytics YOLO11 en drones

El modelo YOLO11 entrenado puede utilizarse ahora para hacer predicciones mediante un proceso llamado inferencia. La inferencia consiste en utilizar un modelo para analizar datos nuevos, no vistos, basándose en lo que aprendió durante el entrenamiento. En este caso, el modelo puede utilizarse para encontrar y etiquetar objetos concretos, como casas, en imágenes o vídeos, dibujando cuadros delimitadores a su alrededor.

Para ejecutar una predicción, puedes utilizar el modelo YOLO11 entrenado en un vídeo de entrada utilizando el siguiente código Python . En este ejemplo, utilizaremos el mismo vídeo de dron artificial que se utilizó para el entrenamiento, pero puedes utilizar cualquier otro archivo de vídeo si lo prefieres.

# Import library
from ultralytics import YOLO

# Load the YOLO model
model = YOLO("best.pt")  # Choose your custom-trained model

# Predict the results from the model
results = model.predict(source="path/to/original/video.mp4", show=True, save=True)

Tras ejecutar este código, se guardará el archivo de vídeo de salida con las predicciones y los cuadros delimitadores.

Fig. 12. Un fotograma del archivo de vídeo de salida. 

Integración de Ultralytics YOLO11 en drones para diversas aplicaciones

Detectar casas para los paquetes de entrega de los drones es sólo un ejemplo de cómo pueden aplicarse la visión por ordenador y YOLO11 . Aquí tienes otros usos reales de la visión por ordenador, YOLO11 y los drones aéreos:

  • Vigilancia y seguridad: Los drones con IA pueden utilizarse para vigilar grandes zonas en tiempo real. Pueden detectar intrusiones, rastrear actividades sospechosas y mejorar la seguridad en las fronteras nacionales, así como en grandes eventos públicos. 
  • Respuesta ante catástrofes y búsqueda y rescate: Equipados con cámaras térmicas y detección de objetos, los drones pueden ayudar a localizar supervivientes en zonas catastróficas. También pueden evaluar los daños y entregar suministros de emergencia..
  • Agricultura y agricultura de precisión: Los drones integrados con visión por ordenador pueden utilizarse para analizar la salud de los cultivos y detectar enfermedades, ayudando a los agricultores a aumentar el rendimiento y reducir los costes. 
  • Cartografía y análisis geoespacial: Al recopilar mapas 3D de alta resolución, los drones con IA pueden ayudar en la planificación urbana y los estudios del terreno. Proporcionan evaluaciones del terreno más rápidas y precisas que los métodos tradicionales. 

Puntos clave

Los drones de IA impulsados por visión por ordenador están cambiando muchos sectores, desde la entrega de paquetes a la ayuda en emergencias y la agricultura. En esta guía, hemos recorrido el proceso de crear un vídeo de dron artificial, etiquetar objetos en él, entrenar a YOLO11 y utilizarlo para detectar casas.

Aplicar la detección de objetos a las grabaciones de los drones los hace más inteligentes, permitiéndoles reconocer y rastrear objetos automáticamente en tiempo real. A medida que mejore la tecnología, es probable que los drones impulsados por IA desempeñen un papel aún más importante en la realización de entregas más rápidas, la mejora de la seguridad y la ayuda en la respuesta a catástrofes.

Únete a nuestra comunidad y explora nuestro repositorio de GitHub para saber más sobre Vision AI, y consulta nuestras opciones de licencia para poner en marcha tus proyectos de visión por ordenador. ¿Te interesan innovaciones como la IA en la fabricación o la visión por ordenador en la industria del automóvil? Visita nuestras páginas de soluciones para descubrir más. 

Logotipo de LinkedInLogotipo de TwitterLogotipo de FacebookSímbolo de enlace de copia

Leer más en esta categoría

¡Construyamos juntos el futuro
de la IA!

Comienza tu viaje con el futuro del aprendizaje automático