Aprende a entrenar modelos YOLO para detectar animales en la naturaleza utilizando el Conjunto de Datos de la Fauna Africana y utiliza el modelo para realizar inferencias sobre imágenes no vistas.
La fauna de nuestro planeta es increíblemente diversa, desde las abejas zumbadoras hasta los imponentes elefantes, y conservar 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 la realización de estudios de campo, pueden ser lentos y requerir muchos recursos. A menudo, estos esfuerzos no consiguen cubrir eficazmente grandes zonas y poblaciones.
Para superar estas limitaciones, la inteligencia artificial (IA) puede utilizarse como herramienta de impacto en la conservación de la fauna salvaje. En concreto, los 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.
Las 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 los 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!
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 paquetePython Ultralytics , 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.
Aquí tienes algunas de las opciones más populares para configurar tu entorno de desarrollo:
Aunque hay otras opciones para configurar tu entorno que puedes explorar en la documentación oficial Ultralytics , las tres opciones mencionadas 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.
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 de la Fauna Africana. Es compatible con el paquetePython Ultralytics 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.
He aquí algunas características clave del Conjunto de Datos sobre la Fauna y Flora Silvestres Africanas:
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 implica configurar el entorno de desarrollo, entrenar el modelo YOLO11 y evaluar el rendimiento del modelo.
Para empezar, prepararemos un entorno para entrenar y probar el modelo. Puedes utilizar Google Colab, Jupyter Notebooks o un simple archivo Python , según prefieras. Crea un nuevo cuaderno Google Colab, un cuaderno Jupyter o un 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 para 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 establecer 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 estés utilizando, tienes que instalar el paquetePython Ultralytics . Si utilizas un entorno basado en cuadernosGoogle Colab o Jupyter), ejecuta el siguiente comando con un signo de exclamación (!) al principio
pip install ultralytics
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, pues 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 de la fauna africana es compatible con el paquete Ultralytics , por lo que se descargará automáticamente cuando inicies el entrenamiento, ahorrándote la molestia de configurarlo manualmente.
Una vez que el conjunto de datos está listo, el modelo comienza el entrenamiento. El modelo pasará por el conjunto de datos varias veces, un proceso llamado entrenamiento en varias épocas, para mejorar su capacidad de reconocer animales en las imágenes. Durante este proceso, las imágenes se redimensionarán a un tamaño consistente para su procesamiento, y el modelo trabajará con un número determinado de imágenes a la vez, conocido 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)
Una vez ejecutado el fragmento de código anterior, el modelo empieza a entrenarse basándose en los ajustes que le hemos dado. Le hemos dicho al modelo a través del código que recorra 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 intentas aprender a dibujar un animal. La primera vez que 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 los animales.
Si el código de entrenamiento se está ejecutando correctamente, verás la siguiente salida a medida que avanza el entrenamiento:
Una vez completado el proceso de entrenamiento, puedes revisar y validar las métricas de rendimiento del modelo. En Google Colab, puedes navegar a la carpeta "ejecuciones", luego a la carpeta "detectar" y, por último, a la carpeta "entrenar", donde encontrarás registros que muestran los indicadores clave de rendimiento.
Para los usuarios en un entorno Python , los resultados del entrenamiento se guardan por defecto en el directorio "runs/train/" dentro de tu directorio de trabajo actual. Cada ejecución de entrenamiento crea un nuevo subdirectorio (por ejemplo, runs/train/exp, runs/train/exp2, etc.), donde puedes encontrar los registros y otros resultados relacionados con el entrenamiento.
Si utilizas la CLI, puedes acceder fácilmente a estos resultados y configuraciones mediante el comando "yolo settings", que te 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 finalizado 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 disminuyó la pérdida (la diferencia entre las predicciones del modelo y los valores reales) y cómo aumentó la precisión durante el entrenamiento. Esto te ayuda a comprender lo bien que el modelo aprendió a reconocer animales y lo mucho que mejoró al final del entrenamiento.
Además, aquí tienes un vistazo más de cerca a algunas de las métricas que puedes utilizar para evaluar el rendimiento del modelo:
Estas métricas de evaluación pueden ayudar a afinar el modelo para mejorar su precisión antes de utilizarlo en aplicaciones del mundo real.
Ahora que hemos entrenado y evaluado YOLO11, es hora de utilizarlo para analizar imágenes y realizar inferencias. Puedes utilizar las imágenes de prueba del conjunto de datos o nuevas imágenes de distintas 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 al archivo de pesos del mejor modelo ("mejor.pt") almacenado en el directorio de resultados. El modelo YOLO11 entrenado a medida se carga utilizando estos pesos.
Después, se establece la ruta a una imagen del conjunto de datos de prueba African Wildlife. Se aplica el modelo 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 guardar las imágenes.
Para probar imágenes de distintas fuentes, puedes utilizar el código siguiente. Hemos utilizado una imagen de Pexels. Puedes 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.
Modelos como YOLO11 pueden detectar y seguir automáticamente a los animales, lo que permite una gran variedad de aplicaciones prácticas. He aquí un vistazo a algunas de las áreas clave en las que puede utilizarse la IA de Visión para apoyar los esfuerzos de conservación de la vida salvaje:
Los modelos de visión por ordenador como YOLO11 pueden desempeñar un papel clave en la conservación de la vida salvaje, automatizando 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 realizar evaluaciones precisas de la vida salvaje.
Ultralytics YOLO11, en particular, es una gran elección para la detección de objetos en tiempo real, por lo que es perfecto para tareas como la vigilancia contra la caza furtiva, el análisis del comportamiento y la supervisión de ecosistemas. Al incorporar modelos basados en IA a los esfuerzos de conservación, podemos proteger mejor las especies, mejorar el seguimiento de la biodiversidad y tomar decisiones más informadas para salvaguardar la vida salvaje en peligro.
Únete a nuestra comunidad y explora el repositorio de GitHub para aprender más sobre visión por ordenador. Descubre 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. Consulta las opciones de licencia deUltralytics para empezar a utilizar Vision AI.
Comienza tu viaje con el futuro del aprendizaje automático