File size: 10,973 Bytes
25a98fd
d5e46bc
4dbf02f
 
 
25a98fd
4dbf02f
25a98fd
4dbf02f
25a98fd
 
4dbf02f
 
 
25a98fd
 
d5e46bc
4dbf02f
d5e46bc
4dbf02f
 
 
d5e46bc
 
4dbf02f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
964041a
4dbf02f
 
 
964041a
4dbf02f
964041a
4dbf02f
964041a
4dbf02f
964041a
 
 
 
4dbf02f
964041a
4dbf02f
964041a
 
4dbf02f
964041a
4dbf02f
964041a
4dbf02f
964041a
4dbf02f
964041a
 
 
 
4dbf02f
964041a
4dbf02f
964041a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4dbf02f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d5e46bc
4dbf02f
 
 
 
 
 
 
 
 
d5e46bc
4dbf02f
 
 
 
 
 
 
 
d5e46bc
4dbf02f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d5e46bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4dbf02f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d5e46bc
 
4dbf02f
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
---
title: Computer vision e piante - percorsi 6-16 anni
emoji: 🌱
colorFrom: green
colorTo: gray
sdk: gradio
sdk_version: 5.49.1
app_file: app.py
python_version: "3.10"
license: apache-2.0
short_description: Percorsi didattici su immagini, piante e computer vision.
startup_duration_timeout: 1h
preload_from_hub:
  - Uminosachi/FastSAM FastSAM-s.pt
---

# Computer vision e piante - percorsi 6-16 anni

Lo Space mantiene un unico indirizzo e organizza quattro percorsi progressivi:

- **6-9 anni:** preparazione di schede PDF con fotografie a quadretti;
- **9-11 anni:** esplorazione di matrici di pixel, trasformazioni additive del colore e stima automatica del verde;
- **11-14 anni:** confronto progressivo fra segmentazione HSV, indice ExG e FastSAM guidato da un punto;
- **14-16 anni:** calibrazione del riferimento, segmentazione e misura, FastSAM e metodo ibrido. La documentazione tecnica dettagliata è mantenuta separata in `README_14-16.md`.


## Avvio rapido

1. Aprire la scheda della fascia interessata.
2. Caricare una fotografia. Nei moduli 6-9 e 11-14 è anche possibile usare il dataset sperimentale incluso.
3. Seguire i pulsanti nell'ordine indicato.
4. Controllare sempre la maschera o l'anteprima prima di interpretare un risultato numerico.
5. Aprire il PDF della fascia quando servono istruzioni didattiche più dettagliate.

## Dataset sperimentale

La cartella `dataset/` contiene **48 fotografie**:

- `NS` = assenza di stress idrico;
- `S` = stress idrico;
- `A`, `B`, `C` = repliche;
- `06`, `09`, `11`, `14`, `16`, `19`, `23`, `26` = giorni dal trapianto.

Il dataset completo non viene sostituito da una selezione ridotta. Può essere utilizzato quando la classe non produce fotografie proprie o quando serve confrontare immagini acquisite con un protocollo comune.

![Organizzazione del dataset](assets/screenshots/06_dataset_annotata.png)

---

## 6-9 - Piante a quadretti

![Modulo 6-9](assets/screenshots/02_6-9_annotata.png)

### Procedura

1. Caricare una fotografia oppure selezionare condizione, replica e giorno dal dataset.
2. Inserire il titolo dell'attività.
3. Scegliere il numero di righe e colonne, da 4 a 36.
4. Regolare lo schiarimento. Il valore iniziale è `0,50`.
5. Lasciare disattivata l'opzione colore per produrre una fotografia in bianco e nero; attivarla solo quando serve conservare i colori.
6. Premere **Genera la scheda PDF**.
7. Controllare l'anteprima e scaricare il PDF.

Il PDF contiene:

- titolo dell'attività;
- fotografia schiarita con griglia;
- indicazione della dimensione della griglia;
- spazio finale per annotare a mano il numero di quadratini verdi identificati o colorati.

Il programma non riconosce la pianta, non disegna contorni automatici e non introduce il conteggio dei quadratini parziali.

Guida didattica: `assets/6-9/Guida_piante_a_quadretti.pdf`.

---

## 9-11 - Pixel, colore e confronto del verde

![Modulo 9-11](assets/screenshots/03_9-11_annotata.png)

### A scuola - un solo caricamento

La fotografia viene caricata una sola volta e alimenta entrambe le attività scolastiche.

#### 1. Esplora un patch 5 x 5

1. Caricare la fotografia condivisa.
2. Fare click su un punto dell'immagine.
3. Scegliere `RGB` oppure `HSV`.
4. Osservare il grande patch 5 x 5.

Il patch contiene i colori reali dei 25 pixel selezionati. Su ogni cella sono scritti direttamente i tre valori dello spazio scelto:

- RGB: R, G e B da 0 a 255;
- HSV: H in gradi, S e V in percentuale.

Non viene mostrata una seconda matrice numerica separata: colore e valori convivono nello stesso ingrandimento.

#### 2. Laboratorio del colore

La stessa fotografia viene trasferita automaticamente nel pennello. Non serve un secondo caricamento.

1. Dipingere la zona da modificare.
2. Scegliere spazio di colore, canale e variazione additiva.
3. Premere **Applica la modifica alla zona dipinta**.
4. Usare **Ripristina la fotografia originale** per ricominciare dallo stesso caricamento.

Per RGB i valori sono limitati fra 0 e 255. Per S e V sono limitati fra 0% e 100%. H è circolare: aumentando ripetutamente la tonalità si attraversa il cerchio cromatico e si ritorna al punto di partenza.

### Con la famiglia - Quale fotografia contiene più verde?

1. Caricare due fotografie, A e B.
2. Formulare una previsione prima di avviare il calcolo.
3. Premere **Confronta: quale fotografia contiene più verde?**.
4. Confrontare percentuali, overlay e maschere.

Le due fotografie vengono elaborate con le stesse soglie HSV. Nel risultato:

- la regione riconosciuta come verde conserva i colori originali;
- tutto il resto viene fortemente desaturato e scurito;
- la percentuale compare in grande sopra ogni fotografia;
- il valore maggiore viene evidenziato e accompagnato da una corona;
- le due maschere binarie utilizzate dal programma sono mostrate sotto i risultati.

La percentuale resta una stima prodotta dalle soglie HSV e va interpretata osservando anche le maschere.

Guida didattica: `assets/9-11/Guida_pixel_e_verde.pdf`.

---

## 11-14 - Confronta i metodi

![Modulo 11-14](assets/screenshots/04_11-14_annotata.png)

La stessa fotografia viene utilizzata in quattro passaggi progressivi.

### 1. Metodo cromatico automatico

Premere **Applica il metodo cromatico**. Lo Space usa soglie HSV iniziali e applica automaticamente una pulizia morfologica della maschera. Il kernel viene scelto in base alle dimensioni dell'immagine:

- `3 × 3` per immagini più piccole;
- `5 × 5` per immagini più grandi.

### 2. Modifica delle soglie HSV

Nel pannello **Modifica le soglie nello spazio HSV**, già visibile, è possibile cambiare:

- intervallo della tonalità H;
- saturazione minima e massima;
- luminosità minima e massima.

Questa sezione serve a osservare come una trasformazione dei limiti numerici modifica la maschera.

### 3. Indice ExG

Nel pannello **Prova l’indice ExG**, già visibile, l’indice viene calcolato per ogni pixel:

`ExG = 2G - R - B`

Il programma conserva i pixel per i quali ExG supera la soglia scelta e applica la stessa pulizia automatica usata dal metodo HSV.

### 4. FastSAM guidato da un punto

1. Caricare o selezionare la fotografia sorgente.
2. Raggiungere il pannello **Prova FastSAM**, già visibile nella sequenza.
3. Usare la copia sincronizzata dell'immagine presente nello stesso pannello: non è necessario tornare alla parte superiore della pagina.
4. Fare click sulla pianta e controllare il punto rosso.
5. Premere **Segmenta l'oggetto indicato**.
6. Attendere la comparsa della maschera e della sovrapposizione.

Il click registra soltanto il punto. L'inferenza parte dal pulsante, così è possibile correggere la selezione prima dell'elaborazione. Le celle **Maschera FastSAM** e **Sovrapposizione FastSAM** restano nascoste fino alla produzione di un risultato e non richiedono caricamenti.

FastSAM usa il punto come prompt e restituisce una maschera della regione associata all'oggetto selezionato. Il pulsante **Confronta l'ultimo metodo cromatico con FastSAM** affianca l'ultima sovrapposizione HSV o ExG alla sovrapposizione FastSAM.

Guide:

- `assets/11-14/Guida_confronto_segmentazioni.pdf`;
- `assets/11-14/Approfondimenti_tecnici_docenti.pdf`.

---

## 14-16 - Laboratorio di analisi

La sezione integra le funzioni del precedente `Plant_segmentation_edu` in sei pannelli sempre visibili:

1. caricamento unico della fotografia;
2. calibrazione automatica del riferimento, con regolazione manuale immediatamente disponibile;
3. segmentazione automatica ExG e misure, con confronto manuale fra ExG, HSV, RGB e Lab;
4. FastSAM guidato da un punto;
5. metodo ibrido automatico con più interrogazioni FastSAM e selezione finale tramite ExG;
6. esportazione e documentazione.

Il dataset è lo stesso usato nelle altre fasce e rimane presente una sola volta nella cartella `dataset/`. Il modello FastSAM è condiviso con la sezione 11-14 e viene caricato una sola volta in memoria.

La guida tecnica del precedente Space, completa delle schermate reali, è conservata separatamente: [`README_14-16.md`](README_14-16.md).

Documenti originali della sezione:

- `assets/14-16/Tutorial_setup_sperimentale.pdf`;
- `assets/14-16/Scheda_esperimento.pdf`.

## Runtime ZeroGPU con FastSAM forzato su CPU

Lo Space è predisposto per essere ospitato con hardware **ZeroGPU**, ma le funzioni visibili agli utenti restano sul processo CPU:

- griglie, PDF, pixel, HSV, ExG e pulizia delle maschere vengono eseguiti su CPU;
- FastSAM viene richiamato con `device="cpu"` e il modello viene mantenuto in cache dopo il primo caricamento;
- una funzione minima decorata con `@spaces.GPU` è presente esclusivamente per soddisfare il controllo di avvio del runtime ZeroGPU e non è collegata all'interfaccia;
- poiché la funzione decorata non viene richiamata, il normale uso dello Space non richiede l'assegnazione della GPU dinamica.

Il peso `FastSAM-s.pt` viene precaricato dal repository pubblico `Uminosachi/FastSAM` durante il build. Il codice usa `hf_hub_download` per individuare il file nella cache e non dipende dal download automatico di Ultralytics durante il primo click.

### Test dopo la pubblicazione

1. Mantenere **ZeroGPU** nelle impostazioni hardware.
2. Sostituire tutti i file del repository con quelli di questo pacchetto.
3. Eseguire un **Factory reboot** per eliminare cache e dipendenze della revisione precedente.
4. Aprire la scheda 11-14 e caricare un'immagine del dataset.
5. Aprire la sezione FastSAM: la fotografia deve comparire automaticamente nel riquadro locale.
6. Fare click sulla pianta, controllare il punto rosso e premere **Segmenta l'oggetto indicato**.
7. Verificare nei container log la dicitura di avvio e, in caso di errore, il messaggio Python generato dal pulsante. Gli avvisi del browser relativi a sensori, PixiJS, telemetria o `awswaf.com` non descrivono l'errore del modello.

## Pubblicazione nello Space esistente

Per mantenere invariati i link già presenti nelle schede:

1. aprire lo Space esistente;
2. sostituire i file con il contenuto di questa cartella, senza creare un nuovo slug;
3. verificare che `dataset/` contenga 48 immagini;
4. eseguire un Factory reboot;
5. provare prima una funzione CPU;
6. aprire FastSAM, selezionare il punto nella copia sincronizzata e avviare la segmentazione.

## Documenti allegati

- `assets/14-16/Tutorial_setup_sperimentale.pdf`;
- `assets/14-16/Scheda_esperimento.pdf`;
- `assets/6-9/Guida_piante_a_quadretti.pdf`;
- `assets/9-11/Guida_pixel_e_verde.pdf`;
- `assets/11-14/Guida_confronto_segmentazioni.pdf`;
- `assets/11-14/Approfondimenti_tecnici_docenti.pdf`.

## Fonti tecniche essenziali

- FastSAM: https://docs.ultralytics.com/models/fast-sam/
- Gradio Image: https://www.gradio.app/docs/gradio/image
- Gradio ImageEditor: https://www.gradio.app/docs/gradio/imageeditor
- Hugging Face ZeroGPU: https://huggingface.co/docs/hub/spaces-zerogpu
- Configurazione e `preload_from_hub`: https://huggingface.co/docs/hub/spaces-config-reference