msilva commited on
Commit
e7d885c
·
verified ·
1 Parent(s): 139c941

Subir BioCLIP-2 image encoder (ONNX int8) + embeddings + labels

Browse files
Files changed (4) hide show
  1. README.md +45 -0
  2. image_encoder.onnx +3 -0
  3. labels.json +112 -0
  4. 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