--- 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. ![Panoramica dei moduli](assets/screenshots/01_panoramica_annotata.png) ## 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 e colore ![Modulo 9-11](assets/screenshots/03_9-11_annotata.png) ### 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 ![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 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