RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta...

23
1 RECONOCIMIENTO DE PATRONES EMPLEANDO REDES NEURONALES BOOLEANAS. APLICACIÓN AL RECONOCIMIENTO FACIAL Alfonso Mateos Andaluz Alfonso Mateos Andaluz N.I.A N.I.A .: 100027597 .: 100027597 Pablo Javier Pablo Javier Borches Borches Juzgado Juzgado N.I.A N.I.A .: 100021524 .: 100021524

Transcript of RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta...

Page 1: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

1

RECONOCIMIENTO DE PATRONES EMPLEANDO

REDES NEURONALES BOOLEANAS.

APLICACIÓN AL RECONOCIMIENTO FACIAL

Alfonso Mateos AndaluzAlfonso Mateos Andaluz N.I.AN.I.A.: 100027597.: 100027597Pablo Javier Pablo Javier BorchesBorches JuzgadoJuzgado N.I.AN.I.A.: 100021524.: 100021524

Page 2: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

2

Introducción

¿Cómo incorporar comportamientos "inteligentes" tanto en las redes como en los servicios?En nuestro caso:

Adquisición de la capacidad humana del aprendizaje, reconocimiento y clasificación de patrones.Sistema básico: las redes neuronales.

Un tipo particular y “direferente”: Redes Neuronales Redes Neuronales BooleanasBooleanas.

Page 3: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

3

Redes Neuronales Booleanas: (BNN)

Emplean elementos de lógica booleana como componentes básicos.

Puertas lógicas y memorias.Actúan en base a información y reglas lógicas (con ceros y unos).

No responden a la suma ponderada de las entradas (números reales) como las redes neuronales más tradicionales.

⇒ Son redes neuronales “sin pesos”. Formas de implementación:

Hardwaresoftware

Page 4: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

4

BNN: estructura funcional (I)Entrada: matriz de píxeles que conforman la imagen.

Generalmente es necesario un preprocesado de la imagen.Preprocesado “cuidadoso”: no dañar en exceso la imagen.Reducción de la información efectiva con la que trabajar:

☺ Ocupar menos memoria y ganar en velocidad de clasificación.Puede empeorar la calidad de la clasificación.

⇒ ¡Compromiso!

Núcleo: compuesto por memorias RAM.Bits organizados en direcciones (filas) y posiciones dentro de cada dirección (columnas).

Píxeles agrupados de forma aleatoriaTodos los grupos con el mismo número de píxeles: “n-tuplas”.

Page 5: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

5

BNN: estructura funcional (y II)La combinación binaria que forman los píxeles de cada grupo sirve para escribir la información relativa a esa imagen particular.

En la columna correspondiente a esa imagen de todas las memorias.Cada “columna” corresponde a un grupo de clasificación: “discriminadores”.

Hay que entrenar la red con varias (pocas) imágenes para que “aprenda” y luego pueda reconocer los diferentes tipos de patronesPara clasificar una muestra “de test”:

1º) Comparar los resultados de las columnas obtenidas tras el entrenamiento con la salida proporcionada por la red cuando trabaja sobre la muestra sin clasificar.2º) Se clasifica esa muestra en el grupo con el que tenga el mayor número de bits coincidentes.

Page 6: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

6

BNN: en nuestro caso…

Seguimos la estructura general.Implementamos un tipo de red neuronal booleana llamada WISARD.

Se basa en una red neuronal descrita anteriormente por Bledsoe y Browning.

Mediante un ejemplo sencillo de ésta, explicamos la base de funcionamiento de nuestra implementación.

Page 7: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

7

BNN: Máquina de Bledsoe y Browning (ejemplo sencillo)

Reconocer dígitos.Partimos de:

Imagen en blanco y negro.8x8 píxeles.Píxeles agrupados por parejas.

Por tanto: 1280 bits32 memorias.4 posibilidades por pareja.

4 filas por memoria.10 discriminadores (0↔9).

10 columnas por fila.

Page 8: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

8

BNN: WISARDLa misma estructura y la misma idea, pero ampliando el número de bits a agrupar en cada n- tupla.Memoria ocupada:

Imágenes de P píxeles, en grupos de n y con D posibles clases en las que clasificar.

Elección de n: ¡compromiso: reconocer generalizando!n↑↑: aumenta (mucho) la memoria ocupada y desciende la capacidad de generalizar.n↓↓: ocupa menos memoria pero puede saturarse (toda la memoria con unos).Las clasificaciones correctas aumentan con nopt hasta un máximo a partir del cual decrecen hasta cero.

P↑⇒nopt↑

Certeza: ¿cuán seguros podemos estar de que la clasificación es correcta?

DP n ⋅⋅= 2n

M

n

probablemásgrupoescoincidentPíxelesprobablemásgrupoescoincidentPíxelesC ⎟⎟

⎞⎜⎜⎝

⎛−=

____#___º2__#1

Page 9: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

9

BNN: agrupación aleatoria

Los píxeles que conforman una n-tupla han de agruparse de forma aleatoria y sin solapamientos.Justificación:

Disminuir la posibilidad de errores en la clasificación por confusión entre patrones.

Los patrones cuya distribución es semejante a la distribución de la agrupación de los píxeles constituyen “puntos ciegos”.

Porque los patrones no suelen responder a estructuras aleatorias.

La “aleatoriedad” no tiene un patrón definido al que responda y que pueda asemejarse a casos reales.

Puntos ciegos muy poco probables.

Page 10: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

10

BNN: codificación del color

Las imágenes suelen ser en color, pero las BNN sólo trabajan con “ceros y unos”

Resulta natural para las BNN trabajar con puntos “blancos y negros”.

Preproceso necesario para convertir colores en codificaciones binarias.

Necesarios b bits ⇒ memoria necesaria multiplicada por b.Si no es estrictamente necesario para una clasificación correcta, son preferibles los patrones en blanco y negro (1 bit).

El preproceso ha de ser el adecuado para mantener la informaciónmás relevante.

Page 11: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

11

BNN: Transformación a B/NTransformación adecuada:

Conservar sólo la información más relevante:

Page 12: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

12

Implementación del sistema

Entrada: fotografía de 800X600 = 480.000 píxeles en tono de grises de 8 bits (256 niveles)

480.000 X 256 = 1,2·108 posibilidadesPreproceso: se aplica el umbral 480.000 X 2 = 960.000 posibilidades5 personas a reconocerEntrenamiento: 3 imágenes por persona. Requiere pocas muestras:

Gran cantidad de píxeles en cada imagenUtilización de red booleana basada en bits en memorias en vez de pesos en los enlaces

Page 13: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

13

Implementación del sistemaJAVA lenguaje interpretado Tiempo de procesamiento grandeEnmarcar zona de la fotografía donde se encuentre la cara por dos motivos:

RapidezPermite reconocimiento independientemente de la ropa del individuo

Resultado de enmarcar: Sin enmarcar: 800X600 = 480.000 píxelesEnmarcando: 300X400 = 120.000 píxeles

Mejor reconocimientoEliminación de la redundancia (fondo de la imagen) que no influye en la toma de decisión

Número de RAMs empleadas: 300*400 / 4 = 30.000

Page 14: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

14

Ejemplo del preproceso de la imagen

Page 15: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

15

Ejemplo: Conjunto de muestras de entrenamiento

Page 16: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

16

Ejemplo: Conjunto de muestras de entrenamiento

Sujetos (en orden): Dani, Alfonso, Pablo, Chus, Paco

Page 17: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

17

0

5000

1000015000

20000

25000

Dani Alfonso Pablo Chus Paco

Entrada: Dani

Imagen izquierda Imagen derecha

Page 18: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

18

0

5000

10000

15000

20000

25000

Dani Alfonso Pablo Chus Paco

Entrada: Chus

Page 19: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

19

0

5000

10000

15000

20000

25000

Dani Alfonso Pablo Chus Paco

Entrada: Pablo

Page 20: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

20

Notas importantes

Valor mínimo del recuento de bits de las memorias alrededor de 5.000 bits (aunque podría darse algún caso que fuera menor)Cuando los niveles son bajos (nº de bits pequeño) para la mayor parte de los 5 individuos disminuir el umbral para que haya más píxeles en negro en la imagen binaria.16 pruebas

Reconocimientos acertados 15Reconocimientos fallidos 193.75% de aciertos

Page 21: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

21

Evolución con una imagen modificada

Page 22: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

22

Evolución con una imagen modificada

0

5000

10000

15000

20000

25000

1 2 3 4 5 6 7 8Número de la imagen

bits

coi

ncid

ente

s DaniAlfonsoPabloChusPaco

Page 23: RECONOCIMIENTO DE PATRONES EMPLEANDO REDES …jvillena/irc/practicas/04-05/7pres.pdf · Resulta natural para las BNN trabajar con puntos “blancos y negros”. Preproceso necesario

23