wlatt's picture
Upload 81 files
d5e46bc verified
|
Raw
History Blame Contribute Delete
11 kB
---
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