Agrovision Plantcount
Modelo de segmentación de instancias para conteo de plantas de arándano (blueberry) en imágenes aéreas de alta resolución.
Model source
- Kind
- Other
- File size
- 124 MB
- Version
- V1.0.0
- Updated
- Nov 1, 2026
- Source
- Hugging Face
Source description
AgroVisión PlantCount v1.0.0
Modelo de segmentación de instancias para conteo de plantas de arándano (blueberry) en imágenes aéreas de alta resolución.
Resumen
| Campo | Valor |
|---|---|
| Arquitectura | RF-DETR-Seg Nano |
| Tarea | Segmentación de instancias |
| Cultivo | Arándano (blueberry) |
| Clases | 1 (Nevado/arbusto) |
| Licencia | Apache 2.0 |
| Versión | 1.0.0 |
Métricas
| Métrica | Box | Mask |
|---|---|---|
| mAP 50 | 0.892 | 0.889 |
| mAP 50:95 | 0.778 | 0.773 |
| Precision | 0.918 | 0.914 |
| Recall | 0.808 | 0.797 |
| F1 | 0.86 | 0.86 |
Uso
Requisitos
pip install onnxruntime
Inferencia
import onnxruntime as ort
import numpy as np
# Cargar modelo
sess = ort.InferenceSession("agrovision-plantcount-v1.0.0.onnx")
# Preparar imagen (RGB, 0-1, letterbox a 312x312)
image = np.random.rand(1, 3, 312, 312).astype(np.float32)
# Inferencia
outputs = sess.run(None, {"images": image})
dets, labels, masks = outputs
# Filtrar por confianza
threshold = 0.5
valid = dets[:, :, 4] > threshold
count = valid.sum()
print(f"Plantas detectadas: {count}")
Contrato de Inferencia (§6.3)
La salida del modelo sigue el contrato de AgroVisión:
{
"task": "segment",
"boxes": [[x1, y1, x2, y2, conf, cls], ...],
"masks": [...],
"areas_px": [area_px_1, area_px_2, ...],
"area_proj_m2": 12.5,
"count": 42,
"conf_threshold": 0.5,
"classes": {"0": "arbusto"},
"crop": "blueberry",
"model_version": "1.0.0",
"architecture": "rfdetr_seg_nano",
"license": "Apache-2.0",
"nms_free": true
}
Preprocesamiento
- Formato: RGB
- Normalización: 0-1 (float32)
- Tamaño: 312x312 (letterbox)
- GSD esperado: 0.02 m/px
Dataset
- Fuente: Roboflow Universe (
ws-l3s1y/vivero-plant-countingv3) - Imágenes: 1728 (113 base + augmentations)
- Anotaciones: 5485 (Instance Segmentation)
- Licencia: CC BY 4.0
- Split: train (1422) / valid (207) / test (99)
Entrenamiento
| Hiperparámetro | Valor |
|---|---|
| Epochs | 100 |
| Batch size | 16 |
| Learning rate | 1e-4 |
| Seed | 42 |
| GPU | RTX 4070 Ti SUPER (16GB) |
Selección de Modelo
Se entrenaron dos candidatos:
- RF-DETR-Seg (Apache 2.0): mAP 50:95 = 0.778, F1 = 0.86
- YOLO26-seg (AGPL-3.0): mAP 50:95 = 0.782, F1 = 0.86
Decisión: RF-DETR-Seg seleccionado por licencia Apache 2.0 (preferida sobre AGPL-3.0).
Área Proyectada
El área de dosel se calcula como:
area_proj_m2 = Σ(mask_pixels) × GSD2
Donde GSD = 0.02 m/px para el ortomosaico de referencia.
Limitaciones
- Validado en arándano (blueberry) - puede requerir fine-tuning para otros cultivos
- GSD óptimo: 0.02 m/px (imágenes aéreas de dron)
- No validado en imágenes satelitales
Citación
@software{agrovision_plantcount_2026,
title = {AgroVisión PlantCount: Modelo de Conteo de Plantas},
author = {Prieto, Alex},
year = {2026},
version = {1.0.0},
license = {Apache-2.0},
url = {https://huggingface.co/aprieto/agrovision-plantcount}
}
Enlaces
Sources
1 source
Sources
1 sourceVerified Nov 1
Model artifacts
1 artifact
Model artifacts
1 artifactagrovision-plantcount-v1.0.0.onnx
onnx · 124 MB · SHA-256 925785ee4d45…ac53 · Hugging Face
Download fileSource excerpts
2 excerpts
Source excerpts
2 excerpts--- language: - es - en license: apache-2.0 library_name: onnx tags: - instance-segmentation - plant-counting - agriculture - computer-vision - blueberry pipeline_tag: image-segmentation --- # AgroVisión PlantCount v1.0.0 Modelo de segmentación de instancias para conteo de plantas de arándano (blueberry) en imágenes aéreas de alta resolución. ## Resumen | Campo | Valor | |-------|-------| | **Arquitectura** | RF-DETR-Seg Nano | | **Tarea** | Segmentación de instancias | | **Cultivo** | Arándano (blueberry) | | **Clases** | 1 (Nevado/arbusto) | | **Licencia** | Apache 2.0 | | **Versión** | 1.0.0 | ## Métricas | Métrica | Box | Mask | |---------|-----|------| | mAP 50 | 0.892 | 0.889 | | mAP 50:95 | 0.778 | 0.773 | | Precision | 0.918 | 0.914 | | Recall | 0.808 | 0.797 | | F1 | 0.86 | 0.86 | ## Uso ### Requisitos ```bash pip install onnxruntime ``` ### Inferencia ```python import onnxruntime as ort import numpy as np # Cargar modelo sess = ort.InferenceSession("agrovision-plantcount-v1.0.0.onnx") # Preparar imagen (RGB, 0-1, letterbox a 312x312) image = np.random.rand(1, 3, 312, 312).astype(np.float32) # Inferencia outputs = sess.run(None, {"images": image}) dets, labels, masks = outputs # Filtrar por confianza threshold = 0.5 valid = dets[:, :, 4] > threshold count = valid.sum() print(f"Plantas detectadas: {count}") ``` ### Contrato de Inferencia (§6.3) La salida del modelo sigue el contrato de AgroVisión: ```json { "task": "segment", "boxes": [[x1, y1, x2, y2, conf, cls], ...], "masks": [...], "areas_px": [area_px_1, area_px_2, ...], "area_proj_m2": 12.5, "count": 42, "conf_threshold": 0.5, "classes": {"0": "arbusto"}, "crop": "blueberry", "model_version": "1.0.0", "architecture": "rfdetr_seg_nano", "license": "Apache-2.0", "nms_free": true } ``` ## Preprocesamiento - **Formato**: RGB - **Normalización**: 0-1 (float32) - **Tamaño**: 312x312 (letterbox) - **GSD esperado**: 0.02 m/px ## Dataset - **Fuente**: Roboflow Universe (`ws-l3s1y/vivero-plant-counting` v3) - **Imágenes**: 1728 (113 base + augmentations) - **Anotaciones**: 5485 (Instance Segmentation) - **Licencia**: CC BY 4.0 - **Split**: train (1422) / valid (207) / test (99) ## Entrenamiento | Hiperparámetro | Valor | |----------------|-------| | Epochs | 100 | | Batch size | 16 | | Learning rate | 1e-4 | | Seed | 42 | | GPU | RTX 4070 Ti SUPER (16GB) | ## Sele...
Source context: 0 downloads · 0 likes · Pipeline image-segmentation · Library onnx · Repo alexp97/agrovision-plantcount
