# AUTOGENERATED! DO NOT EDIT! File to edit: ../weed_classifier.ipynb. import json # %% auto 0 __all__ = ['learn', 'labels', 'article', 'title', 'description', 'examples', 'interpretation', 'enable_queue', 'predict'] CROPS = ["Maíz", "Soja", "Cebada", "Trigo", "Arroz", "Otro"] STATE = ["pre-emergencia", "post-emergencia", "ambos"] LOCATION = ["Provincia de Buenos Aires", "Provincia de Catamarca", "Provincia del Chaco", "Provincia del Chubut", "Provincia de Córdoba", "Provincia de Corrientes", "Provincia de Entre Ríos", "Provincia de Formosa", "Provincia de Jujuy", "Provincia de La Pampa", "Provincia de La Rioja", "Provincia de Mendoza", "Provincia de Misiones", "Provincia del Neuquén", "Provincia de Río Negro", "Provincia de Salta", "Provincia de San Juan", "Provincia de San Luis", "Provincia de Santa Cruz", "Provincia de Santa Fe", "Provincia de Santiago del Estero", "Provincia de Tierra del Fuego, Antártida e Islas del Atlántico Sur", "Provincia de Tucumán"] # %% ../weed_classifier.ipynb 1 from fastai.vision.all import * import gradio as gr import skimage # %% ../weed_classifier.ipynb 2 learn = load_learner('export.pkl') # JSON de recomendaciones with open("WEEDS_JSON.json", "r") as f: recommendations = json.load(f) # JSON de recomendaciones with open("PROVIDERS.json", "r") as f: providers = json.load(f) script = """ async () => { var intervalId = setInterval(function() { var outputElement = document.querySelector('.output-class'); if (outputElement && outputElement.textContent.trim() !== "") { outputElement.scrollIntoView({ behavior: 'smooth' }); // Si hay contenido en outputElement, se asume que se ha obtenido un resultado clearInterval(intervalId); // Detiene la ejecución del intervalo } else { console.log("Hola"); } }, 200); // 200 milisegundos } """ # %% ../weed_classifier.ipynb 3 labels = learn.dls.vocab print(learn.dls.vocab) def predict(img, crop, area, state, location): img = PILImage.create(img) pred, pred_idx, probs = learn.predict(img) label = labels[pred_idx] # Clasificación con porcentajes classification_output = {labels[i]: float(probs[i]) for i in range(len(labels))} # Información de recomendaciones recommendations_output = recommendations.get(label, {}) # Generación de la salida en formato HTML para las recomendaciones html_output = display_output(label, recommendations_output, crop, area, state, location) return classification_output, html_output def display_output(weed_name, recommendations, crop, area, state, location): products = recommendations.get("products", []) weed_url = recommendations.get("weed_url", "#") control = recommendations.get("text", "") # Crear una lista para almacenar la información de salida output_list = [f"Weed Identified: {weed_name}"] # Añadir recomendaciones de productos # Añadir recomendaciones de productos output_html= "
{supplier_name}
{supplier_price}
{supplier_delivery_time}
Cantidad recomendada: {product_amount} ml
Más infoNo hay productos disponibles para este tipo de maleza actualmente.
" else: output_html += '\n'.join(output_list) # Añade las tarjetas HTML a output_html return output_html # %% ../weed_classifier.ipynb 5 article = """La intuitiva interfaz presenta información detallada sobre los herbicidas, destacando sus características, beneficios y aplicaciones recomendadas. Mantenemos actualizada nuestra base de datos con los últimos avances en la protección de cultivos para ofrecerte la información más actualizada.
Esta herramienta no solo simplifica la toma de decisiones, sino que también fomenta una gestión más sostenible de los cultivos, alineándose con las mejores prácticas agrícolas y el cuidado responsable del medio ambiente.
Este modelo se entrenó con un conjunto de datos que contiene 5.539 imágenes de plántulas de cultivos y malas hierbas. Las imágenes se agrupan en 12 clases. Estas clases representan especies de plantas comunes en la agricultura danesa en distintas fases de crecimiento. Se ajustó un modelo ResNet34 preentrenado utilizando la biblioteca de visión fastai. La tasa de error alcanzada en el conjunto de datos de validación es del 2,5% tras 4 épocas.
Descubre nuestra plataforma diseñada para facilitar la selección de herbicidas de Bayer de manera eficiente. Captura imágenes con tu dispositivo móvil y recibe recomendaciones precisas basadas en las necesidades específicas de tu terreno.