Progettazione e sviluppo di applicazione web per la creazione di mappe di calore
by Tullio Facchinetti
La tesi di Andrea Stella ha portato allo sviluppo di un framework per la rappresentazione tramite interfaccia web di mappe di calore relative alle facciate di edifici.
L’obiettivo della tesi è quello di realizzare una applicazione web, fruibile quindi tramite browser, in grado di utilizzare delle immagini di edifici raccolte tramite semplici fotografie, e di visualizzare immagini simili a quelle che si possono ottenere con una termocamera, simulando la distribuzione di calore sulla facciata dell’edificio in base alle temperature delle relative stanze.
I valori delle temperature utilizzate per generare la mappa di calore si assume che possano essere acquisiti tramite dispositivi domotici installati all’interno dell’appartamento. La quantità di calore corrispondende alla temperatura di una stanza viene distribuita sulla superficie dell’immagine in base alle caratteristiche dell’edificio.
Workflow proposto
Per ottenere l’obiettivo, è stato formulato un workflow che permette di combinare l’immagine dell’edificio di interesse con i dati acquisiti dal sistema domotico, al fine di renderizzare la mappa di calore sull’immagine.
Il workflow prevede i seguenti passaggi:
- Viene utilizzato il programma Computer Vision Annotation Tool (CVAT) per segmentare manualmente le aree di interesse della facciata dell’appartamento e ottenere in uscita un file contenente le coordinate delle aree segmentate.
- La configurazione delle aree di interesse ottenute tramite CVAT viene memorizzata su un server che gestisce il servizio di generazione delle mappe di calore.
- Quando si visualizza la pagina web contenente l’immagine dell’edificio, il client richiede al server le informazioni sulle aree di interesse e le temperature delle varie stanze.
- Lato client, uno script realizzato in linguaggio Javascript effettua il rendering dell’immagine finale che visualizza la mappa di calore.
Uso di CVAT
CVAT è uno strumento interattivo sviluppato da Google, usato per annotare immagini e video che costituiscono i dataset usati per il training di sistemi di intelligenza artificiale basati sull’elaborazione di immagini. CVAT permette di annotare oggetti associandogli vari tipi di proprietà.
Le principali funzionalità di CVAT che sono state sfruttate nel progetto sono le seguenti:
- Segmentazione delle aree di interesse.
- Inserimento di label che specificano il tipo di oggetto selezionato.
- Inserimento di attributi per ogni tipologia di label.
Nel framework realizzato, partendo dalla fotografia dell’edificio, CVAT viene utilizzato per annotare tre tipologie di elementi: stanze, termosifoni e finestre.
Tra le informazioni che vengono inserite è incluso un codice che identifica univocamente ogni stanza selezionata. Inoltre, viene indicata la tipologia di ciascun oggetto segmentato.
Le informazioni vengono esportate in un file con formato JSON, e descrivono le coordinate in pixel degli oggetti individuati. Un esempio di tale formato è il seguente:
"annotations": [
{
"id": 0,
"attributes": {
"keyframe": true,
"occluded": false,
"track_id": 0,
"ID": 1.0},
"category_id": 1,
"bbox": [80.13, 341.38, 308.15, 172.49]
},
...
Algoritmo di rendering
L’algoritmo di colorazione dei pixel che realizza la mappa di calore è basato sul metodo dei campi potenziali.
Questo metodo prevede che ciascun punto della superfice sia colorato in base alla distanza tra gli elementi significativi nell’immagine, che nel nostro caso sono la posizione dei termosifoni e il contorno della stanza considerata per la visualizzazione della temperatura.
Nel metodo dei potenziali tradizionale si usano i concetti di goal e ostacoli, che rispettivamente attraggono e respongono un punto. Il potenziale di ciascun punto è calcolato in base alla somma dei potenziali di attrazione e repulsione da goal e ostacoli. Nella generazione della mappa di calore, ad ogni pixel viene associato un potenziale che dipende dalla distanza del pixel dagli elementi di interesse, ovvero i termosifoni, che aumentano il potenziale, e i “confini” della stanza, che invece riducono il potenziale. Infine, il valore del potenziale viene usato per ottenere il colore del pixel in base ad una determinata scala cromatica.
Ci sono alcuni parametri che regolano l’effetto di colorazione:
- Effetto superfici fredde: definisce la costante moltiplicativa del potenziale di repulsione. Aumenta o diminuisce il contributo delle aree fredde sulla colorazione dei pixel.
- Effetto inter-stanza: regola il contributo delle temperature delle stanze vicine sulla costante che moltiplica il potenziale. Aumenta o diminuisce il raggio d’azione delle stanze vicine in modo da influenzare più o meno sulla colorazione dei pixel.
- Soglia di saturazione: definisce la soglia oltre la quale i colori vengono saturati.
- Risoluzione: definisce la qualità dell’immagine renderizzata; inoltre, dal momento che il calcolo del potenziale viene svolto per ciascun pixel dell’immagine, una risoluzione inferiore aumenta la velocità di generazione dell’immagine.
Risultati
L’effetto di rappresentazione delle mappe di calore è soddisfacente, come si può vedere nelle figure, ed è stato testato con varie immagini e diversi valori delle temperature.
L’effetto invece della variazione dei parametri regolabili può essere invece valutato nelle seguenti immagini. In ciascun insieme di immagini viene modificato un solo parametro, per mostrarne l’effetto.