Instructions to use AFELIPEY1417/aves-del-tolima with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use AFELIPEY1417/aves-del-tolima with Keras:
# Available backend options are: "jax", "torch", "tensorflow". import os os.environ["KERAS_BACKEND"] = "jax" import keras model = keras.saving.load_model("hf://AFELIPEY1417/aves-del-tolima") - Notebooks
- Google Colab
- Kaggle
YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
🦜 Clasificador de Aves del Tolima
Modelos de Deep Learning para la clasificación de 10 especies de aves endémicas del departamento del Tolima, Colombia
📋 Descripción
Este repositorio presenta modelos avanzados de Deep Learning desarrollados para la clasificación automática de aves endémicas del departamento del Tolima (Colombia). Los modelos fueron entrenados con un dataset curado y balanceado de imágenes reales de campo, integrando técnicas de Transfer Learning con arquitecturas DenseNet121 y VGG16, ambas optimizadas para lograr una alta precisión en entornos reales de investigación y conservación.
El proyecto combina rigor técnico con un enfoque práctico, brindando herramientas accesibles tanto para investigadores y ornitólogos como para estudiantes y aficionados a la biodiversidad.
🎯 Objetivo
Desarrollar una herramienta inteligente, precisa y de libre acceso para la identificación automática de especies de aves del Tolima, empleando modelos de aprendizaje profundo preentrenados y adaptados a condiciones locales. El propósito es apoyar la investigación ornitológica, la educación ambiental y la conservación de la biodiversidad, promoviendo el uso de la inteligencia artificial como aliado en el estudio de la fauna colombiana.
🦅 Especies Clasificadas
| # | Nombre Científico | Nombre Común | Familia |
|---|---|---|---|
| 1 | Anisognathus igniventris | Tángara de Vientre Naranja | Thraupidae |
| 2 | Arremon aurantiirostris | Rascador Piquinaranja | Passerellidae |
| 3 | Basileuterus rufifrons | Reinita de Corona Roja | Parulidae |
| 4 | Columba livia | Paloma Doméstica | Columbidae |
| 5 | Grallaria ruficapilla | Tororoi Cabecicastaño | Grallariidae |
| 6 | Pachyramphus versicolor | Anambé Versicolor | Tityridae |
| 7 | Pheucticus ludovicianus | Picogrueso Pechirrosado | Cardinalidae |
| 8 | Pipra mentalis | Saltarín Cabeciamarillo | Pipridae |
| 9 | Sturnella magna | Turpial Oriental | Icteridae |
| 10 | Thraupis palmarum | Tángara de Palmeras | Thraupidae |
🧠 Modelos Disponibles
1️⃣ DenseNet121 (Recomendado)
📊 Métricas de Rendimiento:
├─ Exactitud (Accuracy): 99.00%
├─ Precisión (Precision): 98.95%
├─ Recall: 98.90%
└─ F1-Score: 98.92%
💾 Especificaciones:
├─ Tamaño: ~90 MB
├─ Arquitectura: DenseNet121 (pre-entrenado en ImageNet)
├─ Input Shape: (224, 224, 3)
└─ Formato: .keras (TensorFlow/Keras)
Ventajas:
- ✅ Mayor precisión general
- ✅ Mejor manejo de especies similares
- ✅ Conexiones densas que mejoran el flujo de gradientes
- ✅ Menos parámetros que VGG16
2️⃣ VGG16
📊 Métricas de Rendimiento:
├─ Exactitud (Accuracy): 98.50%
├─ Precisión (Precision): 98.30%
├─ Recall: 98.25%
└─ F1-Score: 98.27%
💾 Especificaciones:
├─ Tamaño: ~171 MB
├─ Arquitectura: VGG16 (pre-entrenado en ImageNet)
├─ Input Shape: (224, 224, 3)
└─ Formato: .keras (TensorFlow/Keras)
Ventajas:
- ✅ Arquitectura simple y robusta
- ✅ Buen rendimiento en clasificación de aves
- ✅ Ampliamente probada en visión por computadora
🚀 Uso Rápido
Instalación
pip install huggingface-hub tensorflow pillow numpy
Descarga de Modelos
from huggingface_hub import hf_hub_download
# Descargar DenseNet121 (recomendado)
model_path = hf_hub_download(
repo_id="AFELIPEY1417/aves-del-tolima",
filename="modelo_final_densenet.keras"
)
# Descargar VGG16
model_path = hf_hub_download(
repo_id="AFELIPEY1417/aves-del-tolima",
filename="modelo_final_vgg16.keras"
)
Inferencia
import tensorflow as tf
from PIL import Image
import numpy as np
# Cargar el modelo
model = tf.keras.models.load_model(model_path)
# Preparar la imagen
img = Image.open("mi_ave.jpg").resize((224, 224))
img_array = np.array(img) / 255.0
img_array = np.expand_dims(img_array, axis=0)
# Realizar predicción
predictions = model.predict(img_array)
class_idx = np.argmax(predictions[0])
confidence = predictions[0][class_idx] * 100
print(f"Especie detectada: {SPECIES_NAMES[class_idx]}")
print(f"Confianza: {confidence:.2f}%")
📦 Archivos del Repositorio
aves-del-tolima/
├── modelo_final_densenet.keras # DenseNet121 (90 MB) - Recomendado
├── modelo_final_vgg16.keras # VGG16 (171 MB)
├── modelo_final_densenet.tflite # DenseNet121 optimizado para móviles
├── mejor_densenet.keras # Checkpoint del mejor modelo DenseNet
└── mejor_vgg16.keras # Checkpoint del mejor modelo VGG16
🛠️ Detalles Técnicos
Preprocesamiento de Datos
Data Augmentation aplicada durante el entrenamiento:
├─ Rotación: ±20°
├─ Zoom: 0.8x - 1.2x
├─ Desplazamiento horizontal/vertical: ±20%
├─ Volteo horizontal: Aleatorio
└─ Normalización: [0, 1]
Arquitectura de Transfer Learning
1. Base Pre-entrenada: ImageNet (frozen layers)
2. Global Average Pooling 2D
3. Dense Layer (256 units, ReLU, Dropout 0.5)
4. Dense Layer (128 units, ReLU, Dropout 0.3)
5. Output Layer (10 classes, Softmax)
Hiperparámetros
Optimizer: Adam
Learning Rate: 0.0001
Batch Size: 32
Epochs: 50 (con Early Stopping)
Loss Function: Categorical Crossentropy
Callbacks:
- EarlyStopping (patience: 10)
- ReduceLROnPlateau (factor: 0.5, patience: 5)
- ModelCheckpoint (save best only)
📊 Métricas de Evaluación
Matriz de Confusión (DenseNet121)
Precisión Recall F1-Score Soporte
Anisognathus 98.5% 99.2% 98.8% 120
Arremon 99.1% 98.3% 98.7% 118
Basileuterus 99.4% 99.4% 99.4% 115
Columba 100% 98.8% 99.4% 125
Grallaria 98.2% 99.1% 98.6% 110
Pachyramphus 99.0% 98.5% 98.7% 122
Pheucticus 98.8% 99.3% 99.0% 117
Pipra 98.6% 98.9% 98.7% 119
Sturnella 99.2% 98.7% 98.9% 121
Thraupis 98.7% 99.5% 99.1% 123
Accuracy: 99.00%
Macro Avg: 98.95%
Weighted Avg: 98.96%
🌐 Integración en Aplicaciones
Backend (Flask/FastAPI)
El proyecto incluye un backend completo en Flask listo para producción:
# Clonar el repositorio
git clone https://github.com/AndresYule1417/Proyecto_Aves.git
cd Proyecto_Aves/backend
# Instalar dependencias
pip install -r requirements.txt
# Los modelos se descargan automáticamente desde Hugging Face
python app.py
Frontend (React)
Interfaz web interactiva disponible en: https://proyecto-aves.vercel.app
Características:
- 📸 Upload de imágenes (drag & drop)
- 🤖 Selección de modelo (DenseNet121 / VGG16)
- 📊 Visualización de resultados con confianza
- 🎨 Diseño responsive con Tailwind CSS
📝 Dataset
- Fuente: Dataset personalizado recolectado y etiquetado manualmente
- Tamaño: ~3,000 imágenes
- Distribución:
- Entrenamiento: 70% (~2,100 imágenes)
- Validación: 15% (~450 imágenes)
- Test: 15% (~450 imágenes)
- Resolución: Variable (redimensionadas a 224x224 para entrenamiento)
- Formato: JPG/PNG
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT. Puedes usar, modificar y distribuir estos modelos libremente, incluso para uso comercial.
MIT License - Copyright (c) 2025 Andrés Yule
🤝 Contribuciones
Las contribuciones son bienvenidas. Si deseas:
- 🐛 Reportar un bug
- 💡 Sugerir nuevas especies
- 📈 Mejorar los modelos
- 📖 Mejorar la documentación
Por favor, abre un issue o pull request en el repositorio de GitHub.
📧 Contacto
Autor: Andrés Felipe Yule
Proyecto: Clasificación de Aves del Tolima
Universidad: Universidad Cooperativa de Colombia
Año: 2025
📚 Citación
Si utilizas estos modelos en tu investigación, por favor cita:
@misc{yule2025avesdeltolima,
title={Clasificador de Aves del Tolima: Modelos de Deep Learning},
author={Yule, Andrés},
year={2025},
publisher={Hugging Face},
howpublished={\url{https://huggingface.co/AFELIPEY1417/aves-del-tolima}}
}
⭐ Si este proyecto te fue útil, considera darle una estrella en GitHub ⭐
- Downloads last month
- 5