Spaces:
Running on Zero
Running on Zero
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.

---
## 6-9 - Piante a quadretti

### 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

### 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

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
|