Tema 11 Clasificación de imágenes.Técnicas clásicas

Una vez que se dispone de un conjunto de clases y de sus signaturas espectrales características, vamos a tratar de adjudicar cada uno de los pixels a una clase. Para ello existen diversos procedimientos, los más clásicos son:


Entre los métodos más novedosos que se verán en el próximo tema cabe destacar:
 

Clasificación por mínima distancia

Puesto que cada clase dispone de una reflectividad media para cada una de las bandas, podemos situar cada una de las clases como un centroide en un espacio de variables. Es este espacio de variables se puede calcular la distancia entre un pixel y una clase.

Evidentemente el pixel x se asignará a la clase respecto a la cual su distancia sea mínima (figura 5). En definitiva, se definen una serie de hiperesferas que rellenan el hiperespacio de variables sin intersectarse.

Este método no es demasiado bueno ya que sobreclasifica la imagen, es decir ningún pixel queda sin clasificar. Aunque algunos autores señalan esto como una ventaja, realmente es un problema ya que es preferible dejar áreas sin clasificar que clasificarlas sin garantías.

Figura 5: Clasificación por mínima distancia
\includegraphics[width=0.75\textwidth]{fig2.ps}

Se han propuesto diversos métodos para forzar la clasificación de todos los pixels a una u otra clase. Sin embargo lo más adecuado sería cartografiar estos pixels con problemas de clasificación para determinar cual es la razón e intentar solventarla. Normalmente serán los pixels de borde los que den problemas de clasificación por su propia naturaleza mixta.

Figura 6: Importancia del rango de valores de cada clase y su probabilidad en clasificación
\includegraphics[width=0.75\textwidth]{monodimension.ps}

Por otro lado no se tiene en cuenta las desviación típicas de cada una de las bandas para cada una de las clases, así un clase con una baja desviación típica no debería absorber pixels alejados de su centroide (figura 6).

Clasificación por paralelepípedos

En este método se definen una serie de paralelepípedos, hiperparalelepípedos manteniendo la nomenclatura anterior, que definen las fronteras de cada clase (figura 7). La definición de cada uno de los paralelepípedos debe hacerse teniendo en cuenta los valores máximos y mínimos de reflectividad para cada una de las bandas.

Con este método pueden aparecer pixels sin asignar o pixels asignados a varias clases.

Figura 7: Clasificación por paralelepípedos
\includegraphics[width=0.75\textwidth]{fig3.ps}

Clasificación por máxima verosimilitud

Puesto que se tiene la media y la desviación típica de cada una de las clases, se puede utilizar algún modelo de distribución de probabilidad. El clasificador de máxima probabilidad asume que los datos siguen una función de distribución normal para asignar la probabilidad de que un pixel cualquiera pertenezca a cada una de las clases. El pixel se asigna de este modo a la clase a la que es más probable que pertenezca.

Este método puede usarse de forma automática, o puede establecerse algún criterio que permita asignar pixels a una clase sólo si la probabilidad correspondiente es superior a determinado umbral. Permite por otro lado definir algún tipo de criterio para medir la calidad de la asignación, por ejemplo la diferencia entre la máxima probabilidad y la siguiente.

En la figura 8 aparecen una serie de elipses rodeando a cada uno de los centroides, se trata de lineas de isoprobabilidad, por tanto el pixel se clasificará como perteneciente a la clase en la que sus valores resulten más probables.

Sin embargo la hipótesis de que los datos de reflectividad siguen una distribución normal no siempre se cumple y debería verificarse siempre.

Figura 8: Clasificación por máxima probabilidad
\includegraphics[width=0.75\textwidth]{fig4.ps}

Clasificación con GRASS

No existen módulos para hacer clasificación por mínima distancia ni paralelepípedos, ya que son fáciles de programar con r.mapcalc. Si existe sin embargo un módulo de clasificación por máxima verosimilitud, i.maxlik. Que requiere el grupo y subgrupo de la imagen que se va a clasificar, un fichero de signaturas (sigfile) que debe ser uno de los generados con i.gensigi.cluster. Finalmente requiere el nombre del mapa de salida con las clases (class) y el nombre del mapa (reject) que almacenará las probabilidades de pertenencia de cada pixel a la clase al que ha sido asignado.

Podemos probar a hacer dos clasificaciones por máxima verosimilitud. Una con los resultados de la clasificación supervisada y otra con los de la no supervisada.

Para la clasificación supervisada sería:

i.maxlik group=imagen subgroup=imagencl sigfile=signaturassup class=classup reject=classuprej

A continuación podemos dibujar el mapa de clases resultante y consultar sus valores junto con los del mapa de probabilidades.

d.rast classup
d.what.rast map=classup,classuprej
 

Para la no supervisada debemos ejecutar:

i.maxlik group=imagen subgroup=imagencl sigfile=signaturasnosup class=clasnosup reject=clasnosuprej
 
 
 

Error de clasificación

Existen dos posibilidades, evaluar una estimación teórica del error en función de las características del algoritmo de clasificación o analizar una serie de áreas test obtenidas del mismo modo que las áreas de entrenamiento. El segundo modo de proceder permite obtener una estimación más realista de los errores mientras la muestra de pixels para la estimación del error sea lo suficientemente grande y representativo.

Un método simple y apropiado de evaluaciones de los errores es utilizar la matriz de confusión de clases:
 
 

Tabla 6: Matriz de confusiones con 6 clases
  A B C D E F Ni $\frac{n_i}{N_i}$ (ni)ci (nic)i
A 50 3 0 0 2 5 60 83.3 10 21
B 4 62 3 0 0 1 70 88.5 8 10
C 4 4 70 0 8 3 86 81.4 19 6
D 0 0 0 64 0 0 64 100.0 0 3
E 3 0 2 0 71 1 78 91.0 6 10
F 10 3 1 3 0 33 50 66.0 17 10
              408 85.8 60 60

Con este tipo de análisis, se obtiene, no sólo una caracterización del error cometido, sino también una medida sobre la adecuación de las clases consideradas a la realidad y de los parámetros utilizados para caracterizarlas. Puede por tanto utilizarse para definir un nuevo conjunto de clases para realizar una clasificación.

En la tabla aparece un ejemplo de matriz de confusiones, los valores en filas representan las clases reales y en columnas aparecen (en la parte izquierda de la tabla) las clases obtenidas tras la clasificación. Por tanto debe interpretarse como el número de pixels que perteneciendo a la clase fila han sido adjudicados a la clase columna.

En la parte derecha de la tabla aparece: Ni es el número total de pixels de cada clase, $\frac{n_i}{N_i}$ el porcentaje de pixels clasificados correctamente para cada clase. (ni)ci es el número de pixels que correspondiendo a la clase i han sido adjudicados a otras, y (nic)i es el número de pixels adjudicados a i cuando en realidad pertenecen a otra clase. La última fila presenta la totalización de estos resultados.