Subir BioCLIP-2 image encoder (ONNX int8) + embeddings + labels
Browse files- README.md +45 -0
- image_encoder.onnx +3 -0
- labels.json +112 -0
- text_embeddings.json +0 -0
README.md
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
library_name: onnx
|
| 4 |
+
pipeline_tag: zero-shot-image-classification
|
| 5 |
+
tags:
|
| 6 |
+
- onnx
|
| 7 |
+
- bioclip
|
| 8 |
+
- biology
|
| 9 |
+
- spider
|
| 10 |
+
- loxosceles
|
| 11 |
+
- chile
|
| 12 |
+
- on-device
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# laeta-bioclip-onnx — encoder de imagen del detector de araña de rincón
|
| 16 |
+
|
| 17 |
+
Torre visual de [BioCLIP-2](https://huggingface.co/imageomics/bioclip-2) (ViT-L/14) exportada
|
| 18 |
+
a **ONNX y cuantizada a int8** (~293 MB) para correr **en el navegador** (ONNX Runtime Web),
|
| 19 |
+
dentro de la PWA **[aranaderincon.manuelsilva.cl](https://aranaderincon.manuelsilva.cl)**.
|
| 20 |
+
|
| 21 |
+
La foto **nunca sale del teléfono**: el modelo se descarga una vez y toda la inferencia es local.
|
| 22 |
+
|
| 23 |
+
## Cómo funciona
|
| 24 |
+
|
| 25 |
+
Clasificación *zero-shot*. El encoder produce un embedding L2-normalizado de 768-d que se compara
|
| 26 |
+
por producto punto contra los vectores de texto precalculados de las 26 clases
|
| 27 |
+
(`text_embeddings.json`), seguido de softmax. **No se entrena con fotos de arañas**: se midió que
|
| 28 |
+
entrenar con fotos chilenas de iNaturalist mejora en iNaturalist y **empeora en otra fuente**
|
| 29 |
+
(ROC 0.79 vs 0.93 sobre ejemplares de museo).
|
| 30 |
+
|
| 31 |
+
## Archivos
|
| 32 |
+
|
| 33 |
+
| Archivo | Qué es |
|
| 34 |
+
|---|---|
|
| 35 |
+
| `image_encoder.onnx` | Torre visual de BioCLIP-2, int8. Entrada `pixel_values [N,3,224,224]`, salida `image_embedding [N,768]` (ya normalizada). |
|
| 36 |
+
| `text_embeddings.json` | 26×768 vectores de texto de las clases + `logit_scale`. |
|
| 37 |
+
| `labels.json` | Nombres científicos/comunes, `target_index` y umbrales calibrados (🔴 0.9012 / 🟡 0.0458). |
|
| 38 |
+
|
| 39 |
+
Preprocesamiento: center-crop a 224 y normalización OpenCLIP
|
| 40 |
+
(mean `[0.4815, 0.4578, 0.4082]`, std `[0.2686, 0.2613, 0.2758]`).
|
| 41 |
+
|
| 42 |
+
## Aviso
|
| 43 |
+
|
| 44 |
+
Estimación automática, **no un diagnóstico**. Nunca afirma que una araña sea inofensiva.
|
| 45 |
+
Código y mediciones: [github.com/msilvav/laeta](https://github.com/msilvav/laeta).
|
image_encoder.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9c2d9e37e4448a734f9fb902f43b6cbf8e37162f472e283fb45bcf7c8b6d6a15
|
| 3 |
+
size 306238116
|
labels.json
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"target_index": 0,
|
| 3 |
+
"t_alert": 0.9012,
|
| 4 |
+
"t_doubt": 0.0458,
|
| 5 |
+
"calibration": "split de validación; ver deploy/calibrate_pwa.py",
|
| 6 |
+
"species": [
|
| 7 |
+
{
|
| 8 |
+
"scientific": "Loxosceles laeta",
|
| 9 |
+
"common": "araña de rincón"
|
| 10 |
+
},
|
| 11 |
+
{
|
| 12 |
+
"scientific": "Steatoda nobilis",
|
| 13 |
+
"common": "falsa viuda noble"
|
| 14 |
+
},
|
| 15 |
+
{
|
| 16 |
+
"scientific": "Menemerus semilimbatus",
|
| 17 |
+
"common": "saltarina de pared"
|
| 18 |
+
},
|
| 19 |
+
{
|
| 20 |
+
"scientific": "Grammostola rosea",
|
| 21 |
+
"common": "tarántula rosada chilena"
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
"scientific": "Steatoda grossa",
|
| 25 |
+
"common": "falsa viuda"
|
| 26 |
+
},
|
| 27 |
+
{
|
| 28 |
+
"scientific": "Scytodes globula",
|
| 29 |
+
"common": "araña tigre"
|
| 30 |
+
},
|
| 31 |
+
{
|
| 32 |
+
"scientific": "Phrixotrichus vulpinus",
|
| 33 |
+
"common": ""
|
| 34 |
+
},
|
| 35 |
+
{
|
| 36 |
+
"scientific": "Sicarius thomisoides",
|
| 37 |
+
"common": "araña de arena"
|
| 38 |
+
},
|
| 39 |
+
{
|
| 40 |
+
"scientific": "Saphrys rusticana",
|
| 41 |
+
"common": ""
|
| 42 |
+
},
|
| 43 |
+
{
|
| 44 |
+
"scientific": "Polybetes martius",
|
| 45 |
+
"common": "araña del bosque"
|
| 46 |
+
},
|
| 47 |
+
{
|
| 48 |
+
"scientific": "Molinaranea clymene",
|
| 49 |
+
"common": ""
|
| 50 |
+
},
|
| 51 |
+
{
|
| 52 |
+
"scientific": "Zygiella x-notata",
|
| 53 |
+
"common": ""
|
| 54 |
+
},
|
| 55 |
+
{
|
| 56 |
+
"scientific": "Dysdera crocata",
|
| 57 |
+
"common": "araña cazadora de cochinillas"
|
| 58 |
+
},
|
| 59 |
+
{
|
| 60 |
+
"scientific": "Molinaranea magellanica",
|
| 61 |
+
"common": ""
|
| 62 |
+
},
|
| 63 |
+
{
|
| 64 |
+
"scientific": "Tomopisthes horrendus",
|
| 65 |
+
"common": ""
|
| 66 |
+
},
|
| 67 |
+
{
|
| 68 |
+
"scientific": "Argiope argentata",
|
| 69 |
+
"common": "araña plateada"
|
| 70 |
+
},
|
| 71 |
+
{
|
| 72 |
+
"scientific": "Gnolus cordiformis",
|
| 73 |
+
"common": ""
|
| 74 |
+
},
|
| 75 |
+
{
|
| 76 |
+
"scientific": "Acanthogonatus pissii",
|
| 77 |
+
"common": ""
|
| 78 |
+
},
|
| 79 |
+
{
|
| 80 |
+
"scientific": "Oecobius navus",
|
| 81 |
+
"common": "araña de los rincones"
|
| 82 |
+
},
|
| 83 |
+
{
|
| 84 |
+
"scientific": "Allende nigrohumeralis",
|
| 85 |
+
"common": ""
|
| 86 |
+
},
|
| 87 |
+
{
|
| 88 |
+
"scientific": "Euathlus manicata",
|
| 89 |
+
"common": ""
|
| 90 |
+
},
|
| 91 |
+
{
|
| 92 |
+
"scientific": "Tomopisthes varius",
|
| 93 |
+
"common": ""
|
| 94 |
+
},
|
| 95 |
+
{
|
| 96 |
+
"scientific": "Latrodectus thoracicus",
|
| 97 |
+
"common": "viuda negra chilena"
|
| 98 |
+
},
|
| 99 |
+
{
|
| 100 |
+
"scientific": "Euathlus truculentus",
|
| 101 |
+
"common": ""
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
"scientific": "Frigga crocuta",
|
| 105 |
+
"common": ""
|
| 106 |
+
},
|
| 107 |
+
{
|
| 108 |
+
"scientific": "Coenypha ditissima",
|
| 109 |
+
"common": ""
|
| 110 |
+
}
|
| 111 |
+
]
|
| 112 |
+
}
|
text_embeddings.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|