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) 脳 GSD虏
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}
}