Skip to content

Felipe713/agro-pests

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐛 Agro-Pests — Clasificación de Plagas Agrícolas con PyTorch + ResNet-18

Proyecto de Machine Learning aplicado al sector agrícola, que utiliza el dataset Agricultural Pests Image Dataset para entrenar un modelo de clasificación de imágenes capaz de identificar distintas plagas comunes en entornos agrícolas.

🌱 Objetivo

Desarrollar un flujo completo de aprendizaje automático para reconocer 12 tipos de plagas a partir de imágenes, aplicando Transfer Learning con la red ResNet-18 preentrenada en ImageNet.

⚙️ Estructura del Proyecto

agro-pests/ ├── .devcontainer/ # Configuración del entorno Docker + VS Code ├── data/ │ ├── raw/ # Descarga original del dataset │ ├── pests/ # Dataset organizado por clases │ └── split/ # Conjuntos train / val / test ├── models/ │ └── resnet18.pth # Modelo entrenado ├── src/ │ ├── download_data.py # Descarga y organiza los datos desde Kaggle │ ├── split_data.py # Crea las divisiones train / val / test │ ├── train.py # Entrenamiento del modelo │ └── predict.py # Predicción con el modelo guardado ├── AgroPests_MiniProyecto.ipynb # Notebook principal con todo el flujo ├── requirements.txt └── README.md

🧠 Dataset

Fuente: Kaggle – Agricultural Pests Image Dataset
Contiene 12 clases de plagas, entre ellas: ants, bees, beetle, caterpillar, earwig, earthworms, grasshopper, moth, slug, snail, wasp, weevil.
Todas las imágenes fueron redimensionadas a un máximo de 300×300 px para optimizar el procesamiento.

🧩 Flujo del Proyecto

  1. Descarga automática del dataset desde Kaggle (requiere ~/.kaggle/kaggle.json con tu API Key)
  2. Descompresión y detección automática de clases
  3. División del dataset en train / val / test (70 / 15 / 15)
  4. Entrenamiento con ResNet-18 (Transfer Learning)
  5. Guardado del modelo entrenado
  6. Evaluación y predicción de ejemplo

🚀 Ejecución Rápida

En el DevContainer (recomendado)

  1. Abre la carpeta del proyecto en VS Code.
  2. El contenedor se iniciará automáticamente con todas las dependencias.
  3. Ejecuta los siguientes comandos en la terminal: python src/download_data.py # Descarga y organiza los datos
    python src/split_data.py # Divide el dataset
    WORKERS=0 BATCH=16 EPOCHS=3 python src/train.py # Entrena el modelo
    python src/predict.py "data/split/test/wasp/wasp (671).jpg" # Prueba una imagen

O bien, usa el Notebook

Abre y ejecuta AgroPests_MiniProyecto.ipynb celda por celda (Shift + Enter).
Incluye gráficos, ejemplos y explicaciones paso a paso.

🧰 Requisitos Principales

  • Python ≥ 3.11
  • PyTorch, Torchvision, Torchaudio
  • tqdm, scikit-learn, pillow, matplotlib
  • kaggle, ipykernel
    Instalación general: pip install -r requirements.txt

📊 Resultados

Tras 3 épocas de entrenamiento, el modelo logra una exactitud de validación ≈ 65 %, con capacidad de identificar correctamente clases como wasp, ants o grasshopper en las predicciones Top-1 y Top-5.
Ejemplo de salida: 📄 Imagen: data/split/test/wasp/wasp (671).jpg
✅ Predicción: wasp
🔝 Top-5:

  • wasp: 1.000
  • grasshopper: 0.000
  • bees: 0.000
  • beetle: 0.000
  • weevil: 0.000

🧾 Licencia

Dataset con licencia de uso académico bajo los términos de Kaggle.
El código fuente se distribuye bajo licencia MIT.

✍️ Autor

Felipe Valenzuela P.
Ingeniero Agrónomo y Analista Programador

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors