Spaces:
Sleeping
Sleeping
| title: Computer vision e piante - VECCHIO | |
| 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. | |
| # Computer vision e piante - percorsi 6-14 anni | |
| Lo Space mantiene un unico indirizzo e organizza tre percorsi distinti: | |
| - **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 click, eseguito su CPU Basic. | |
| La fascia 14-16 non è inclusa in questa versione. Le relative attività verranno sviluppate separatamente a partire dal precedente Space sperimentale. | |
|  | |
| ## 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 e colore | |
|  | |
| ### A scuola - Esplora una matrice di pixel | |
| 1. Caricare una fotografia. | |
| 2. Scegliere un selettore di `3 × 3` oppure `5 × 5` pixel. | |
| 3. Scegliere lo spazio di colore `RGB` o `HSV`. | |
| 4. Scegliere un singolo canale: | |
| - `R`, `G`, `B` per RGB; | |
| - `H`, `S`, `V` per HSV. | |
| 5. Fare click sull'immagine. | |
| Lo Space mostra: | |
| - la fotografia originale con il selettore quadrato; | |
| - l'area scelta ingrandita senza sfumare i pixel; | |
| - una matrice della stessa dimensione con un valore per ogni pixel. | |
| Nella rappresentazione didattica: | |
| - RGB usa valori da 0 a 255; | |
| - H usa gradi da 0° a 359°; | |
| - S e V usano percentuali da 0% a 100%. | |
| ### A scuola - Laboratorio del colore | |
| 1. Caricare una fotografia nel campo sorgente. | |
| 2. Premere **Carica nel pennello**. | |
| 3. Dipingere la zona da modificare. | |
| 4. Scegliere spazio di colore, canale e variazione additiva. | |
| 5. Premere **Applica la modifica alla zona dipinta**. | |
| Per RGB i valori vengono limitati fra 0 e 255. Per S e V vengono limitati fra 0% e 100%. Il canale H è circolare: aumentando ripetutamente la tonalità si attraversa il cerchio cromatico e si ritorna al colore di partenza. Ogni pressione del pulsante applica un passaggio additivo alla zona dipinta. | |
| ### Con la famiglia - Quanto verde? | |
| 1. Caricare la fotografia orizzontale d'insieme. | |
| 2. Inserire le stime percentuali separate da virgole. | |
| 3. Premere **Calcola la stima automatica**. | |
| 4. Confrontare le stime con il risultato e osservare la maschera. | |
| Il risultato è una stima prodotta da soglie HSV, non una misura assoluta della vegetazione. La maschera rende visibili i pixel inclusi o esclusi. | |
| 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 | |
| Aprire **Prova a modificare le soglie nello spazio HSV**. Gli slider consentono di 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 | |
| Aprire **Prova l'indice ExG**. 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 click | |
| 1. Caricare o selezionare la fotografia sorgente. | |
| 2. Aprire **Adesso prova FastSAM**. | |
| 3. Fare click direttamente sulla pianta nella **fotografia sorgente** mostrata all’inizio del modulo. Non serve caricare una seconda immagine. Il click avvia l'inferenza su CPU. | |
| 4. Attendere la comparsa della maschera e della sovrapposizione. | |
| FastSAM usa il punto come prompt e restituisce una maschera della regione associata all'oggetto selezionato. **Maschera FastSAM** e **Sovrapposizione FastSAM** sono output e non richiedono caricamenti. | |
| 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`. | |
| --- | |
| ## Runtime CPU Basic e FastSAM | |
| Questa revisione riprende il flusso già funzionante nello Space consolidato `wlatt/Plant_segmentation_edu`: | |
| - inferenza su `device="cpu"`; | |
| - modello `FastSAM-s.pt` caricato una sola volta e mantenuto in cache; | |
| - esecuzione avviata direttamente dall'evento di click sull'immagine; | |
| - nessuna funzione `@spaces.GPU` e nessuna dipendenza dal pacchetto `spaces`. | |
| Per un account personale gratuito selezionare **CPU Basic** nelle impostazioni hardware. Il file `FastSAM-s.pt` viene scaricato automaticamente da Ultralytics al primo utilizzo se non è già presente nella cache. Il primo click può quindi richiedere più tempo. | |
| ### Test FastSAM dopo la pubblicazione | |
| 1. Selezionare **CPU Basic** in **Settings > Hardware**. | |
| 2. Eseguire un **Factory reboot**. | |
| 3. Aprire la scheda 11-14 e caricare un'immagine del dataset. | |
| 4. Aprire la sezione FastSAM. | |
| 5. Fare click al centro della pianta nella fotografia sorgente e attendere il risultato. | |
| 6. In caso di errore, leggere i log del container generati subito dopo il click. Gli avvisi del browser relativi a sensori, PixiJS, telemetria o `awswaf.com` non identificano l'errore Python 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. provare FastSAM su un'immagine del dataset. | |
| ## Documenti allegati | |
| - `assets/comuni/Tutorial_setup_sperimentale.pdf`; | |
| - `assets/comuni/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 Spaces e CPU Basic: https://huggingface.co/docs/hub/spaces-overview | |