Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Configuración de cookies
Al hacer clic en “Aceptar todas las cookies”, aceptas el almacenamiento de cookies en tu dispositivo para mejorar la navegación del sitio, analizar el uso del sitio y ayudar en nuestros esfuerzos de marketing. Más información
Aprenda a entrenar modelos YOLO para detectar animales en la naturaleza utilizando el conjunto de datos de vida silvestre africana y utilice el modelo para ejecutar inferencias en imágenes no vistas.
La vida silvestre de nuestro planeta es increíblemente diversa, desde abejas zumbando hasta elefantes imponentes, 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ábitat, la caza furtiva y el cambio climático. Todos estos factores afectan negativamente a las poblaciones de vida silvestre.
Los métodos tradicionales de monitoreo 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. Estos esfuerzos a menudo no logran cubrir grandes áreas y grandes poblaciones de manera efectiva.
Para superar estas limitaciones, la inteligencia artificial (IA) puede utilizarse como una herramienta impactante en la conservación de la vida silvestre. Específicamente, los modelos de visión artificial como Ultralytics YOLO11 pueden analizar datos visuales como imágenes y videos para automatizar la identificación y el seguimiento de animales en tiempo real.
Las tareas de visión artificial como la detección de objetos y la segmentación de instancias, respaldadas por YOLO11, son muy útiles aquí. Al analizar los datos visuales, estas tareas nos ayudan a recopilar datos cruciales, identificar patrones ecológicos y responder de manera más efectiva a las amenazas ambientales.
En este artículo, repasaremos el proceso de entrenamiento de YOLO11 para detectar animales. ¡Empecemos!
Primeros pasos con 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 usar YOLO11.
La herramienta principal que necesitarás es el paquete de Python 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, deberá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 le permite interactuar con su ordenador escribiendo comandos. A diferencia de las interfaces gráficas (GUI), donde hace clic en los botones y utiliza un ratón, la CLI requiere que escriba instrucciones de texto para ejecutar programas o realizar tareas.
Jupyter Notebooks: Estos notebooks te permiten escribir y ejecutar código en pequeños fragmentos llamados celdas. Es interactivo, lo que significa que puedes ver el resultado de tu código de inmediato, lo que facilita la prueba y la depuración.
Google Colab: Google Colab es una plataforma basada en la nube que funciona como los Jupyter Notebooks, pero ofrece acceso gratuito a potentes GPU. Es fácil de configurar y no es necesario instalar nada en el ordenador.
Si bien existen 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 usando Google Colab, Jupyter Notebooks o un simple archivo de Python, ya que los pasos son muy similares en todos estos entornos.
Entendiendo el Dataset de la Fauna Africana
Después de seleccionar un entorno de desarrollo, para entrenar a YOLO11 para detectar animales salvajes específicamente, necesitamos un conjunto de datos de alta calidad de imágenes etiquetadas. Cada imagen debe mostrar claramente dónde están los animales y qué tipo son, para que el modelo pueda aprender a reconocerlos a través del aprendizaje supervisado.
En este tutorial, utilizaremos el conjunto de datos de vida silvestre africana. Es compatible con el paquete de Python de Ultralytics y está diseñado específicamente para detectar animales que se encuentran comúnmente en los ecosistemas africanos. Contiene imágenes anotadas de cuatro especies clave: búfalos, elefantes, rinocerontes y cebras.
Fig. 1. Un vistazo al conjunto de datos de la vida salvaje africana.
Aquí hay algunas características clave del conjunto de datos de vida silvestre africana:
Escala: El conjunto de datos consta de 1504 imágenes divididas en tres subconjuntos: 1052 para entrenamiento, 225 para validación y 227 para pruebas. Esta división asegura que el modelo aprenda eficazmente y sea evaluado a fondo.
Integración perfecta: Ultralytics proporciona un archivo de configuración YAML que define las rutas del conjunto de datos, las clases y otros detalles, lo que facilita su uso al entrenar modelos YOLO.
Licencia abierta: Este conjunto de datos se distribuye bajo la licencia AGPL-3.0, lo 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 vida silvestre africana, podemos comenzar 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.
Paso 1: Configuración del entorno
Para empezar, prepararemos un entorno para entrenar y probar el modelo. Se puede utilizar Google Colab, Jupyter Notebooks o un simple archivo Python, dependiendo de su preferencia. Cree un nuevo cuaderno de Google Colab, Jupyter Notebook o archivo Python según corresponda.
Si está utilizando Google Colab, el entorno se ejecuta de forma predeterminada en una CPU (Unidad Central de Procesamiento), lo que puede ralentizar el entrenamiento. Para acelerar el proceso, especialmente para modelos más grandes, puede cambiar el tiempo de ejecución para usar una GPU. En Google Colab, puede ir a la pestaña "Runtime" (Entorno de ejecución) en el menú, seleccionar "Change runtime type" (Cambiar tipo de entorno 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, debes instalar el paquete de Python Ultralytics. Si estás utilizando un entorno basado en notebooks (Google Colab o Jupyter), ejecuta 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. Primero, cargamos el modelo YOLO11, que ya está pre-entrenado en tareas generales de detección de objetos. Este modelo pre-entrenado nos da un buen punto de partida, ya que ya ha aprendido a detectar varios objetos.
Luego, especificamos el conjunto de datos utilizando un archivo YAML, que contiene información sobre las imágenes y las etiquetas. Este archivo le indica al modelo dónde encontrar el conjunto de datos y qué objetos debe aprender a reconocer.
El conjunto de datos de vida silvestre africana es compatible con el paquete Ultralytics, por lo que se descargará automáticamente cuando inicie el entrenamiento, lo que le ahorrará la molestia de configurarlo manualmente.
Una vez que el conjunto de datos está listo, el modelo comienza a entrenarse. El modelo recorrerá el conjunto de datos varias veces, un proceso llamado entrenamiento durante múltiples é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 eficiente.
En resumen, el modelo se carga, el conjunto de datos se descarga automáticamente y el entrenamiento comienza a ejecutarse para detectar animales basados en el conjunto de datos de vida silvestre africana cuando se ejecuta el fragmento de código a continuación.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
Paso 3: Tutorial de entrenamiento de YOLO11
Una vez que se ejecuta el fragmento de código anterior, el modelo comienza a entrenarse basándose en la configuración que le hemos dado. A través del código, le hemos dicho al modelo que revise las imágenes de entrenamiento 30 veces. Por lo tanto, significa que el modelo examinará todas las imágenes del conjunto de datos 30 veces, aprendiendo un poco más cada vez.
Imagina que estás intentando aprender a dibujar un animal. La primera vez que dibujas, puede que no se vea bien, pero después de practicar una y otra vez, empiezas a mejorar. Cada vez que lo intentas de nuevo, 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 en el reconocimiento de animales cada vez.
Si el código de entrenamiento se está ejecutando correctamente, verá el siguiente resultado a medida que avance el entrenamiento:
Configuración del entrenamiento: La primera parte muestra la versión de Ultralytics, PyTorch y el hardware que se está utilizando (CPU en este caso), junto con la configuración del entrenamiento, incluyendo 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 el tamaño del modelo.
Optimizador y tasa de aprendizaje: Menciona el optimizador (p. ej., AdamW) y la tasa de aprendizaje, que controlan cómo el modelo ajusta sus parámetros durante el entrenamiento.
Escaneo del dataset: El modelo escanea el dataset, mostrando cuántas imágenes son válidas y están listas para el entrenamiento. Confirma que no hay problemas con el dataset.
Progreso del entrenamiento: La salida se actualiza después de cada época (ciclo de entrenamiento), mostrando el progreso del entrenamiento junto con los valores clave de pérdida (box_loss, cls_loss, dfl_loss), que indican lo bien que está aprendiendo el modelo.
Métricas de rendimiento: Después de cada época, verá métricas de rendimiento como la precisión, la exhaustividad y la mAP (precisión media promedio). Estos valores muestran la precisión del modelo a la hora de detectar y clasificar objetos.
Uso de la memoria de la GPU: Si está utilizando una GPU, la salida muestra el uso de la memoria para realizar un seguimiento de la utilización del hardware.
Fig. 2. El resultado que verá mientras se ejecuta el entrenamiento del modelo.
Paso 4: Evaluación del rendimiento del modelo personalizado entrenado
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 "runs", luego a la carpeta "detect" y, finalmente, a la carpeta "train", donde encontrarás registros que muestran los indicadores clave de rendimiento.
Para los usuarios en un entorno Python, los resultados del entrenamiento se guardan de forma predeterminada en el directorio “runs/train/” dentro de su directorio de trabajo actual. Cada ejecución de entrenamiento crea un nuevo subdirectorio (p. ej., runs/train/exp, runs/train/exp2, etc.), donde puede encontrar los registros y otros resultados relacionados con el entrenamiento.
Si está utilizando la CLI, puede acceder fácilmente a estos resultados y ajustes utilizando 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á algunos gráficos que puede consultar para ver cómo fue el proceso de entrenamiento del modelo. Estos gráficos, creados una vez finalizado el entrenamiento, muestran si el modelo mejoró con el tiempo cometiendo menos errores y volviéndose 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 le 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, aquí hay una mirada más de cerca a algunas de las métricas que puede utilizar para evaluar el rendimiento del modelo:
Precisión media promedio (mAP): Esta métrica mide la precisión general del modelo en la detección de animales en todas las clases promediando las puntuaciones de precisión en diferentes niveles de recuperación.
Precisión: Esto representa el porcentaje de detecciones que son correctas, calculado dividiendo el número de detecciones verdaderas positivas por el número total de detecciones realizadas.
Recall (exhaustividad): Indica el porcentaje de animales reales en las imágenes que fueron identificados correctamente por el modelo, lo que refleja su capacidad para capturar todas las instancias relevantes.
Estas métricas de evaluación pueden ayudar a ajustar el modelo para mejorar la precisión antes de utilizarlo en aplicaciones del mundo real.
Ejecutando inferencias usando tu modelo YOLO11 personalizado y entrenado
Ahora que hemos entrenado y evaluado YOLO11, es hora de usarlo para analizar imágenes y ejecutar inferencias. Puedes usar las imágenes de prueba del conjunto de datos o nuevas imágenes de diferentes fuentes.
Usaremos 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. Luego define la ruta al mejor archivo de pesos del modelo ("best.pt") almacenado en el directorio de resultados. El modelo YOLO11 entrenado a medida se carga utilizando estos pesos.
Después de eso, se establece la ruta a una imagen del conjunto de datos de prueba de vida silvestre africana. El modelo se aplica a esta imagen para la detección de objetos, se generan los resultados y se guarda la salida (como objetos detectados o 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 las 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, puedes utilizar el siguiente código. Hemos utilizado una imagen de Pexels. Puedes utilizar la misma imagen o cualquier otra imagen relevante.
La imagen de salida que se muestra a continuación se guardará en la carpeta correspondiente.
Fig. 5. Detección de vida silvestre utilizando el modelo YOLO11 ajustado en una imagen no vista.
IA para la conservación de la vida silvestre: Aplicaciones en el mundo real
Modelos como YOLO11 pueden detectar y rastrear automáticamente animales, lo que permite una variedad de aplicaciones prácticas. Aquí hay un vistazo a algunas de las áreas clave donde la IA de Visión se puede utilizar para apoyar los esfuerzos de conservación de la vida silvestre:
Monitoreo de especies: Vision AI se puede utilizar para procesar datos visuales como imágenes y videos para identificar con precisión especies, contar poblaciones y rastrear sus movimientos a lo largo del tiempo.
Alertas de cámaras inteligentes: En áreas remotas, la visión artificial se puede utilizar para clasificar continuamente animales y enviar alertas en tiempo real, lo que permite a las autoridades de vida silvestre responder rápidamente a amenazas como comportamientos anormales de animales o conflictos entre humanos y vida silvestre.
Análisis del comportamiento: Mediante la monitorización de la migración, los hábitos alimenticios y las interacciones sociales, los sistemas de visión artificial pueden proporcionar información exhaustiva sobre la dinámica entre especies.
Prevención de la caza furtiva: La IA de visión puede aprovecharse para detectar la presencia humana no autorizada y los signos de caza furtiva, al tiempo que se aprovecha el aprendizaje automático y los datos históricos para identificar los puntos críticos de riesgo.
Conclusiones clave
Los modelos de visión artificial como YOLO11 pueden desempeñar un papel clave en la conservación de la vida silvestre al automatizar la detección y el seguimiento de animales. Con la IA visual, podemos procesar grandes volúmenes de imágenes y videos de diversas fuentes, lo que permite realizar evaluaciones precisas de la vida silvestre.
Ultralytics YOLO11, en particular, es una gran opción para la detección de objetos en tiempo real, lo que lo convierte en una opción perfecta para tareas como la vigilancia contra la caza furtiva, el análisis del comportamiento y el monitoreo de ecosistemas. Al incorporar modelos impulsados por IA en 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 silvestre en peligro de extinción.