Cómo entrenar los modelos YOLO de Ultralytics para detectar animales en libertad

Abirami Vina

5 minutos de lectura

15 de abril de 2025

Aprenda a entrenar modelos YOLO para detectar animales en la naturaleza utilizando el conjunto de datos African Wildlife Dataset y utilice el modelo para realizar inferencias en imágenes no vistas.

La fauna salvaje de nuestro planeta es increíblemente diversa, desde abejas zumbadoras hasta imponentes elefantes, y preservar esta biodiversidad es clave para mantener un ecosistema equilibrado. Sin embargo, los esfuerzos de conservación son cada vez más difíciles debido a la pérdida de hábitats, la caza furtiva y el cambio climático. Todos estos factores afectan negativamente a las poblaciones de animales salvajes. 

Los métodos tradicionales de seguimiento de animales, como el análisis manual de imágenes de cámaras trampa y los estudios de campo, pueden ser lentos y requerir muchos recursos. A menudo, estos métodos no cubren eficazmente grandes áreas y poblaciones.

Para superar estas limitaciones, la inteligencia artificial (IA) puede utilizarse como una herramienta de gran impacto en la conservación de la fauna salvaje. En concreto, modelos de visión por ordenador como Ultralytics YOLO11 pueden analizar datos visuales como imágenes y vídeos para automatizar la identificación y el seguimiento de animales en tiempo real. 

Tareas de visión por ordenador como la detección de objetos y la segmentación de instancias, apoyadas por YOLO11, son muy útiles en este caso. Al analizar datos visuales, estas tareas nos ayudan a recopilar datos cruciales, identificar patrones ecológicos y responder más eficazmente a las amenazas medioambientales.

En este artículo, recorreremos el proceso de entrenamiento de YOLO11 para detectar animales. ¡Vamos a empezar!

Introducción a Ultralytics YOLO11

Antes de sumergirnos en el tutorial, echemos un vistazo a las diferentes opciones de configuración y herramientas que necesitarás para entrenar y utilizar YOLO11. 

La principal herramienta que necesitarás es el paquete Ultralytics Python, que facilita el trabajo con modelos YOLO para tareas como el entrenamiento, la detección de objetos y la ejecución de inferencias. Para utilizar el paquete Ultralytics, necesitarás configurar un entorno para ejecutar tu código, y hay varias opciones entre las que puedes elegir.

Estas son algunas de las opciones más populares para configurar su entorno de desarrollo:

  • Interfaz de línea de comandos (CLI): La CLI, también conocida como terminal, es una herramienta basada en texto que te permite interactuar con tu ordenador escribiendo comandos. A diferencia de las interfaces gráficas (GUI), en las que pulsas botones y utilizas un ratón, la CLI requiere que escribas instrucciones de texto para ejecutar programas o ejecutar tareas.
  • Cuadernos Jupyter: Estos cuadernos te permiten escribir y ejecutar código en pequeños fragmentos llamados celdas. Es interactivo, lo que significa que puede ver el resultado de su código de inmediato, por lo que es más fácil de probar y depurar.
  • Google Colab: Google Colab es una plataforma basada en la nube que funciona como los cuadernos Jupyter pero ofrece acceso gratuito a potentes GPU. Es fácil de configurar y no necesitas instalar nada en tu ordenador.

Aunque hay otras opciones para configurar su entorno que puede explorar en la documentación oficial de Ultralytics, las tres opciones mencionadas anteriormente requieren muy poca configuración y son fáciles de usar, lo que las hace ideales para empezar rápidamente. 

En este tutorial, mostraremos cómo configurar y entrenar YOLO11 utilizando Google Colab, Jupyter Notebooks o un simple archivo Python, ya que los pasos son muy similares en todos estos entornos.

Comprender el conjunto de datos sobre la fauna africana

Tras seleccionar un entorno de desarrollo, para entrenar a YOLO11 en la detección específica de animales salvajes, necesitamos un conjunto de datos de alta calidad de imágenes etiquetadas. Cada imagen debe mostrar claramente dónde están los animales y de qué tipo son, para que el modelo pueda aprender a reconocerlos mediante aprendizaje supervisado.

En este tutorial utilizaremos el conjunto de datos African Wildlife Dataset. Es compatible con el paquete Ultralytics Python y está diseñado específicamente para detectar animales que se encuentran habitualmente en los ecosistemas africanos. Contiene imágenes anotadas de cuatro especies clave: búfalos, elefantes, rinocerontes y cebras.

Fig. 1. Un vistazo al African Wildlife Dataset.

Estas son algunas de las principales características de African Wildlife Dataset:

  • Escala: El conjunto de datos consta de 1504 imágenes divididas en tres subconjuntos: 1052 para el entrenamiento, 225 para la validación y 227 para las pruebas. Esta división garantiza que el modelo aprenda eficazmente y se evalúe a fondo.

  • Integración perfecta: Ultralytics proporciona un archivo de configuración YAML que define las rutas de los conjuntos de datos, las clases y otros detalles, lo que facilita su uso a la hora de entrenar modelos YOLO.

  • Licencia abierta: Este conjunto de datos se distribuye bajo la licencia AGPL-3.0, que fomenta la transparencia y la colaboración.

Entrenamiento de Ultralytics YOLO11 para la detección de animales

Ahora que hemos explorado el conjunto de datos de la fauna africana, podemos empezar a entrenar un modelo YOLO11 para detectar animales en imágenes. El proceso consiste en configurar el entorno de desarrollo, entrenar el modelo YOLO11 y evaluar su rendimiento.

Paso 1: Configuración del entorno

Para empezar, prepararemos un entorno para entrenar y probar el modelo. Google Colab, Jupyter Notebooks, o un simple archivo de Python se puede utilizar, dependiendo de su preferencia. Crea un nuevo cuaderno Google Colab, Jupyter Notebook o archivo Python según corresponda.

Si utilizas Google Colab, el entorno se ejecuta por defecto en una CPU (Unidad Central de Procesamiento), lo que puede ralentizar el entrenamiento. Para acelerar el proceso, especialmente en el caso de modelos más grandes, puedes cambiar el tiempo de ejecución para que utilice una GPU. En Google Colab, puedes ir a la pestaña "Tiempo de ejecución" del menú, seleccionar "Cambiar tipo de tiempo de ejecución" y configurar el acelerador de hardware en una GPU (preferiblemente una GPU T4). Esto es importante para reducir los tiempos de entrenamiento.

A continuación, independientemente del entorno que utilice, deberá instalar el paquete Python de Ultralytics. Si utiliza un entorno basado en cuaderno (Google Colab o Jupyter), ejecute el siguiente comando con un signo de exclamación (!) al principio

pip install ultralytics

Paso 2: Carga de YOLO11 y preparación del conjunto de datos

Una vez instalado el paquete Ultralytics, el siguiente paso es cargar el modelo YOLO11 y preparar el conjunto de datos para el entrenamiento. En primer lugar, cargamos el modelo YOLO11, que ya está preentrenado en tareas generales de detección de objetos. Este modelo preentrenado nos proporciona un buen punto de partida, puesto que ya ha aprendido a detectar diversos objetos.

A continuación, especificamos el conjunto de datos mediante un archivo YAML, que contiene información sobre las imágenes y las etiquetas. Este archivo indica al modelo dónde encontrar el conjunto de datos y qué objetos debe aprender a reconocer. 

El conjunto de datos African Wildlife Dataset es compatible con el paquete Ultralytics, por lo que se descargará automáticamente al iniciar el entrenamiento, ahorrándole la molestia de configurarlo manualmente.

Una vez que el conjunto de datos está listo, el modelo empieza a entrenarse. El modelo pasará por el conjunto de datos varias veces, un proceso llamado entrenamiento en múltiples épocas, para mejorar su capacidad de reconocer animales en las imágenes. Durante este proceso, las imágenes se redimensionan a un tamaño consistente para su procesamiento, y el modelo trabaja con un número determinado de imágenes a la vez, lo que se conoce como lote. Esto ayuda al modelo a aprender de forma más eficaz.

En resumen, el modelo se carga, el conjunto de datos se descarga automáticamente y el entrenamiento comienza a ejecutarse para detectar animales basándose en el conjunto de datos de la fauna africana cuando se ejecuta el fragmento de código siguiente.

from ultralytics import YOLO

model = YOLO("yolo11n.pt")

results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)

Paso 3: Recorrido de formación de YOLO11

Una vez ejecutado el fragmento de código anterior, el modelo empieza a entrenarse basándose en la configuración que le hemos dado. Le hemos dicho al modelo a través del código que pase por las imágenes de entrenamiento 30 veces. Esto significa que el modelo mirará todas las imágenes del conjunto de datos 30 veces, aprendiendo cada vez un poco más.

Imagina que estás intentando aprender a dibujar un animal. La primera vez que lo dibujas, puede que no quede bien, pero después de practicar una y otra vez, empiezas a mejorar. Cada vez que vuelves a intentarlo, aprendes de lo que salió mal y lo arreglas. Eso es lo que hace cada época para el modelo: mira las imágenes, comete errores, aprende de ellos y mejora cada vez en el reconocimiento de animales.

Si el código de entrenamiento se está ejecutando correctamente, verá la siguiente salida a medida que progresa el entrenamiento:

  • Configuración de entrenamiento: La primera parte muestra la versión de Ultralytics, PyTorch y el hardware utilizado (CPU en este caso), junto con la configuración de entrenamiento, incluido el modelo (yolo11n.pt), el tamaño del lote, las épocas y el tamaño de la imagen.
  • Resumen del modelo: proporciona información sobre la complejidad del modelo, como el número de capas y parámetros, mostrando lo grande que es el modelo.
  • Optimizador y tasa de aprendizaje: Menciona el optimizador (por ejemplo, AdamW) y la tasa de aprendizaje, que controlan cómo el modelo ajusta sus parámetros durante el entrenamiento.
  • Exploración del conjunto de datos: El modelo escanea el conjunto de datos, mostrando cuántas imágenes son válidas y están listas para el entrenamiento. Confirma que no hay problemas con el conjunto de datos.
  • Progreso del entrenamiento: La salida se actualiza después de cada época (ciclo de entrenamiento), mostrando el progreso del entrenamiento junto con los valores de pérdida clave (box_loss, cls_loss, dfl_loss), que indican lo bien que está aprendiendo el modelo.
  • Métricas de rendimiento: Después de cada epoch, verás métricas de rendimiento como precisión, recall y mAP (precisión media). Estos valores muestran la precisión del modelo a la hora de detectar y clasificar objetos.
  • Uso de la memoria de la GPU: Si utilizas una GPU, la salida muestra el uso de memoria para realizar un seguimiento de la utilización del hardware.
Fig. 2. La salida que verá mientras se ejecuta el entrenamiento del modelo.

Paso 4: Evaluación del rendimiento del modelo personalizado

Una vez completado el proceso de entrenamiento, puedes revisar y validar las métricas de rendimiento del modelo. En Google Colab, puedes ir a la carpeta "runs" (ejecuciones), luego a la carpeta "detect" (detectar) y, por último, a la carpeta "train" (entrenar), donde encontrarás registros que muestran los principales indicadores de rendimiento.

Para los usuarios en un entorno Python, los resultados del entrenamiento se guardan por defecto en el directorio "runs/train/" dentro de su directorio de trabajo actual. Cada ejecución de entrenamiento crea un nuevo subdirectorio (por ejemplo, runs/train/exp, runs/train/exp2, etc.), donde puede encontrar los registros y otros resultados relacionados con el entrenamiento.

Si utiliza la CLI, puede acceder fácilmente a estos resultados y configuraciones mediante el comando "yolo settings", que le permite ver o modificar las rutas y otras configuraciones relacionadas con los registros de entrenamiento y los detalles del experimento.

Entre los registros, también encontrarás algunos gráficos que puedes consultar para ver cómo ha ido el proceso de entrenamiento del modelo. Estos gráficos, creados una vez completado el entrenamiento, muestran si el modelo ha mejorado con el tiempo, cometiendo menos errores y siendo más preciso. 

Realizan un seguimiento del progreso del modelo, mostrando cómo disminuye la pérdida (la diferencia entre las predicciones del modelo y los valores reales) y cómo aumenta la precisión durante el entrenamiento. Esto te ayuda a comprender lo bien que el modelo aprendió a reconocer animales y cuánto mejoró al final del entrenamiento.

Fig. 3. Un ejemplo de los gráficos que puede analizar para evaluar su modelo.

Métricas clave de evaluación del rendimiento

Además, a continuación te mostramos algunas de las métricas que puedes utilizar para evaluar el rendimiento del modelo:

  • Precisión media (mAP): Esta métrica mide la precisión general del modelo a la hora de detectar animales en todas las clases promediando las puntuaciones de precisión en diferentes niveles de recuperación.
  • Precisión: Representa el porcentaje de detecciones correctas, calculado dividiendo el número de detecciones positivas verdaderas por el número total de detecciones realizadas.
  • Recuerdo: Indica el porcentaje de animales reales en las imágenes que fueron identificados correctamente por el modelo, lo que refleja su capacidad para captar todos los casos relevantes.

Estas métricas de evaluación pueden ayudar a afinar el modelo para mejorar su precisión antes de utilizarlo en aplicaciones reales.

Ejecutar inferencias con su modelo YOLO11 entrenado a medida

Ahora que hemos entrenado y evaluado YOLO11, es el momento de utilizarlo para analizar imágenes y realizar inferencias. Puede utilizar las imágenes de prueba del conjunto de datos o nuevas imágenes de diferentes fuentes.

Utilizaremos el siguiente fragmento de código para ejecutar el modelo en una imagen del conjunto de datos de prueba. Importa los módulos necesarios de la biblioteca Ultralytics. A continuación, define la ruta de acceso al mejor archivo de ponderaciones del modelo ("best.pt") almacenado en el directorio de resultados. El modelo YOLO11 entrenado a medida se carga utilizando estos pesos. 

A continuación, se establece la ruta a una imagen del conjunto de datos de prueba African Wildlife. El modelo se aplica a esta imagen para la detección de objetos, se generan los resultados y se guarda la salida (como los objetos detectados o las anotaciones).

from ultralytics import settings

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"

img_results = model(image_path, save=True) 

La imagen de salida que se muestra a continuación se guardará en la carpeta "predict" situada dentro del directorio runs/detect. Para pruebas posteriores, se crearán nuevas carpetas como "predict2", "predict3", etc. para almacenar las imágenes.

Fig. 4. Ejecución de una inferencia utilizando el modelo YOLO11 ajustado en una imagen de prueba.

Para probar imágenes de diferentes fuentes, puede utilizar el código siguiente. Hemos utilizado una imagen de Pexels. Puede utilizar la misma imagen o cualquier otra imagen relevante.

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)

La imagen de salida que se muestra a continuación se guardará en la carpeta correspondiente.

Fig. 5. Detección de fauna salvaje utilizando el modelo YOLO11 ajustado en una imagen no vista.

IA para la conservación de la fauna salvaje: Aplicaciones reales

Modelos como YOLO11 pueden detectar y rastrear animales automáticamente, lo que permite una gran variedad de aplicaciones prácticas. He aquí algunas de las áreas clave en las que Vision AI puede utilizarse para apoyar los esfuerzos de conservación de la vida salvaje:

  • Seguimiento de especies: Vision AI puede utilizarse para procesar datos visuales como imágenes y vídeos para identificar especies con precisión, contar poblaciones y seguir sus movimientos a lo largo del tiempo.
  • Alertas de cámaras inteligentes: En zonas remotas, la visión por ordenador puede utilizarse para clasificar continuamente a los animales y enviar alertas en tiempo real, lo que permite a las autoridades responsables de la fauna salvaje responder rápidamente a amenazas como comportamientos anómalos de los animales o conflictos entre personas y animales salvajes.
  • Análisis del comportamiento: Mediante el seguimiento de las migraciones, los hábitos alimentarios y las interacciones sociales, los sistemas de IA por visión pueden ofrecer una visión completa de la dinámica entre especies.
  • Prevención de la caza furtiva: Vision AI puede aprovecharse para detectar la presencia humana no autorizada y los indicios de caza furtiva, al tiempo que aprovecha el aprendizaje automático y los datos históricos para señalar los puntos críticos de riesgo.

Principales conclusiones

Los modelos de visión por ordenador como YOLO11 pueden desempeñar un papel clave en la conservación de la fauna salvaje al automatizar la detección y el seguimiento de animales. Con Vision AI, podemos procesar grandes volúmenes de imágenes y vídeos de diversas fuentes, lo que permite ejecutar evaluaciones precisas de la vida salvaje. 

Ultralytics YOLO11, en particular, es una gran opción para la detección de objetos en tiempo real, por lo que es perfecta para tareas como la vigilancia contra la caza furtiva, el análisis del comportamiento y la supervisión de ecosistemas. La incorporación de modelos basados en IA a los esfuerzos de conservación nos permitirá proteger mejor las especies, mejorar el seguimiento de la biodiversidad y tomar decisiones más informadas para salvaguardar la fauna salvaje en peligro de extinción.

Únase a nuestra comunidad y explore el repositorio de GitHub para aprender más sobre visión por ordenador. Descubra más aplicaciones relacionadas con la IA en la sanidad y la visión por ordenador en la fabricación en nuestras páginas de soluciones. Consulte las opciones de licencia de Ultralytics para empezar a utilizar Vision AI.

¡Construyamos juntos el futuro
de la IA!

Comience su viaje con el futuro del aprendizaje automático

Empezar gratis
Enlace copiado en el portapapeles