Spaces:
Running on Zero
A newer version of the Gradio SDK is available: 6.25.0
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
- Aprire la scheda della fascia interessata.
- Caricare una fotografia. Nei moduli 6-9 e 11-14 è anche possibile usare il dataset sperimentale incluso.
- Seguire i pulsanti nell'ordine indicato.
- Controllare sempre la maschera o l'anteprima prima di interpretare un risultato numerico.
- 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
- Caricare una fotografia oppure selezionare condizione, replica e giorno dal dataset.
- Inserire il titolo dell'attività.
- Scegliere il numero di righe e colonne, da 4 a 36.
- Regolare lo schiarimento. Il valore iniziale è
0,50. - Lasciare disattivata l'opzione colore per produrre una fotografia in bianco e nero; attivarla solo quando serve conservare i colori.
- Premere Genera la scheda PDF.
- 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
- Caricare la fotografia condivisa.
- Fare click su un punto dell'immagine.
- Scegliere
RGBoppureHSV. - 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.
- Dipingere la zona da modificare.
- Scegliere spazio di colore, canale e variazione additiva.
- Premere Applica la modifica alla zona dipinta.
- 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?
- Caricare due fotografie, A e B.
- Formulare una previsione prima di avviare il calcolo.
- Premere Confronta: quale fotografia contiene più verde?.
- 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 × 3per immagini più piccole;5 × 5per 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
- Caricare o selezionare la fotografia sorgente.
- Raggiungere il pannello Prova FastSAM, già visibile nella sequenza.
- Usare la copia sincronizzata dell'immagine presente nello stesso pannello: non è necessario tornare alla parte superiore della pagina.
- Fare click sulla pianta e controllare il punto rosso.
- Premere Segmenta l'oggetto indicato.
- 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:
- caricamento unico della fotografia;
- calibrazione automatica del riferimento, con regolazione manuale immediatamente disponibile;
- segmentazione automatica ExG e misure, con confronto manuale fra ExG, HSV, RGB e Lab;
- FastSAM guidato da un punto;
- metodo ibrido automatico con più interrogazioni FastSAM e selezione finale tramite ExG;
- 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.
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
- Mantenere ZeroGPU nelle impostazioni hardware.
- Sostituire tutti i file del repository con quelli di questo pacchetto.
- Eseguire un Factory reboot per eliminare cache e dipendenze della revisione precedente.
- Aprire la scheda 11-14 e caricare un'immagine del dataset.
- Aprire la sezione FastSAM: la fotografia deve comparire automaticamente nel riquadro locale.
- Fare click sulla pianta, controllare il punto rosso e premere Segmenta l'oggetto indicato.
- 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.comnon descrivono l'errore del modello.
Pubblicazione nello Space esistente
Per mantenere invariati i link già presenti nelle schede:
- aprire lo Space esistente;
- sostituire i file con il contenuto di questa cartella, senza creare un nuovo slug;
- verificare che
dataset/contenga 48 immagini; - eseguire un Factory reboot;
- provare prima una funzione CPU;
- 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



