Spiegazione del tracciamento del colore#

Cosa significa tracciare un colore e come lo fa la CMUcam4?#

Il tracciamento del colore è la capacità di prendere un’immagine, isolare un particolare colore ed estrarre informazioni sulla posizione di una regione di quell’immagine che contiene solo quel colore. Ad esempio, supponiamo che ti venga data una fotografia che contiene una palla rossa posata su una strada sterrata. Se qualcuno ti chiedesse di disegnare un riquadro attorno a tutto ciò che è di colore rosso nell’immagine, disegneresti abbastanza facilmente un rettangolo attorno alla palla. Questa è l’idea di base dietro il tracciamento del colore. Non avevi bisogno di sapere che l’oggetto era una palla. Ti serviva solo avere un concetto del colore rosso per isolare l’oggetto nell’immagine. Di seguito, affronteremo brevemente come la CMUcam4 utilizza effettivamente le informazioni in un’immagine della fotocamera per eseguire il tracciamento del colore.

Per specificare un colore, devi definire un valore minimo e massimo consentito per tre canali di colore. Ogni colore univoco è rappresentato da un valore rosso, verde e blu che indica quanto di ciascun canale è mescolato nel colore univoco. La parte complicata dello specificare un colore è che devi definire un intervallo di valori consentiti per tutti e tre i canali di colore. Poiché la luce non è perfettamente uniforme e il colore di un oggetto non è perfettamente uniforme, devi tenere conto di queste variazioni. Tuttavia, non vuoi rilassare troppo questi limiti, altrimenti verranno accettati molti colori indesiderati. Poiché, nel caso della CMUcam4, ogni canale di colore viene convertito in un numero compreso tra 0 e 255, puoi delimitare ciascun canale con due numeri, un limite superiore e uno inferiore. Se hai due limiti per ciascuno dei tre canali, ciò significa che si possono utilizzare sei valori per vincolare l’intero spazio colore che desideri tracciare. Se immagini i colori rappresentati da un cubo in cui ogni lato è un diverso canale di colore (rosso, verde e blu), allora i sei valori utilizzati per selezionare il tuo colore disegnerebbero un riquadro tridimensionale all’interno di quel cubo che definisce l’insieme di colori desiderato.

Una volta che hai un limite per il colore che desideri tracciare, la CMUcam4 prende questi limiti ed elabora l’immagine. Ci sono molti modi per tracciare i colori in un’immagine che possono essere piuttosto complessi. La CMUcam4 utilizza un semplice algoritmo a passaggio singolo che elabora ogni nuovo fotogramma proveniente dalla fotocamera in modo indipendente. Parte dall’angolo in alto a sinistra dell’immagine ed esamina in sequenza ogni pixel riga per riga. Se il pixel che sta ispezionando ricade nell’intervallo di colori specificato dall’utente, contrassegna quel pixel come tracciato. Esamina inoltre la posizione del pixel tracciato corrente per vedere se è la posizione più in alto, più in basso, più a sinistra o più a destra tra tutti i pixel tracciati trovati finora nell’immagine. Se rileva che il pixel è al di fuori dell’attuale riquadro di delimitazione della regione tracciata, ingrandisce il riquadro di delimitazione per contenere questo nuovo pixel. Poiché la posizione anche di un singolo pixel tracciato può cambiare il riquadro di delimitazione, il riquadro di delimitazione a volte può fluttuare parecchio da un fotogramma all’altro. Il filtraggio del rumore (vedi il paragrafo successivo) può essere utilizzato per ridurre parte di questa fluttuazione. L’unica altra informazione importante che viene memorizzata è una somma delle coordinate orizzontali e verticali dei pixel tracciati. Alla fine dell’immagine la CMUcam4 prende la somma orizzontale e la somma verticale dei pixel tracciati e divide ciascuna per il numero totale di pixel tracciati, ottenendo un valore che mostra dove si trova il centro dell’oggetto tracciato. Poiché ogni pixel tracciato contribuisce solo per una piccola parte alle somme orizzontali e verticali finali, il centro (spesso chiamato centroide) dei pixel tracciati è tipicamente una misura molto più stabile del riquadro di delimitazione. Una volta che tutti i pixel dell’immagine sono stati controllati, il numero totale di pixel tracciati può anche essere utilizzato insieme all’area del riquadro di delimitazione per calcolare la confidenza e il numero di pixel dell’oggetto tracciato.

Il filtraggio del rumore ci consente di rendere più ampi gli intervalli di tracciamento del colore così da poter tenere conto di variazioni maggiori nei valori dei pixel dell’immagine senza far sì che altre variazioni casuali nell’immagine vengano tracciate. L’idea alla base del filtraggio del rumore è che vogliamo considerare un pixel come appartenente al colore tracciato solo se fa parte di un gruppo di pixel che rientrano nei limiti di tracciamento del colore. Nella CMUcam4 implementiamo questo in un modo che richiede un solo passaggio sull’immagine. Durante l’elaborazione dei pixel di un’immagine la CMUcam4 mantiene un contatore che tiene traccia di quanti pixel sequenziali nella riga corrente, prima del pixel corrente, rientravano nei limiti del colore tracciato. Se quel valore è superiore al valore del filtro del rumore allora il pixel corrente viene contrassegnato come pixel tracciato.

Cos’è un istogramma e a cosa serve?#

Un istogramma è un tipo di grafico che mostra la frequenza e la distribuzione dei dati. Nel caso della CMUcam4, l’istogramma mostra la frequenza e la distribuzione dei valori di colore presenti in un’immagine. Ogni barra rappresenta un intervallo di valori di colore per uno specifico canale. La CMUcam4 può suddividere i possibili valori di colore da 0 a 255 in 1, 2, 4, 8, 16, 32 e 64 intervalli (bin) diversi. Ogni bin contiene il numero di pixel presenti nell’immagine che ricadono entro determinati limiti di colore. Quindi un valore elevato in un particolare bin significa che molti di quei colori sono stati trovati nell’immagine. Ogni istogramma rappresenta solo un canale di colore selezionato.

Gli istogrammi sono un modo per astrarre il contenuto di un’immagine. Hanno molti usi, come il riconoscimento primitivo di oggetti, la sogliatura o il bilanciamento del colore. Sono particolarmente utili per distinguere tra diverse texture. Prova a puntare la CMUcam4 con l’auto-gain disattivato verso due superfici con texture diverse e nota la differenza nelle loro distribuzioni di colore. Questo effetto può essere utilizzato per distinguere le superfici del pavimento o rilevare ostacoli.