La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Reconocimiento de caras usando Histogramas de Gradientes Orientados

Presentaciones similares


Presentación del tema: "Reconocimiento de caras usando Histogramas de Gradientes Orientados"— Transcripción de la presentación:

1 Reconocimiento de caras usando Histogramas de Gradientes Orientados
Grupo 14: Cristina Canto Pérez Verónica Montes Valencia

2 Objetivo La realización del algoritmo Histogramas de gradientes orientados para su uso en el reconocimiento facial. Tras pasarle una imagen al algoritmo que sea capaz de identificarnos automáticamente la cara de una persona en una imagen digital. Como idea general podríamos decir que consiste en el análisis de las características faciales de un sujeto extraídas de la imagen y comparándolas con una base de datos.

3 Proceso de reconocimiento
Podemos diferenciar dos fases: Extracción de características de una imagen. La clasificación de una imagen en función de sus características.

4 Extracción de características de una imagen
Proceso de obtener ciertos valores de una imagen que puedan describir a la misma. La cara que aparece en la imagen quedaría definida por esos valores. La idea esencial es que la apariencia y la forma de un objeto local dentro de una imagen puede ser descrita por la intensidad de la distribución de las direcciones de los gradientes.

5 Extracción de características de una imagen
En primer lugar la imagen pasa por un preproceso para aumentar la eficiencia y eficacia de fases posteriores. Se transforma una imagen en color a otra en escalas de grises, donde se traduce del valor de los pixeles en el rango de grises. Para obtener una imagen en escala de grises a partir de una en RGB es aplicando al valor RGB de cada pıxel. Ası la imagen se recorre por todos los pıxeles, calculando en cada pıxel la intensidad de gris que le corresponde mediante f (R, G, B) = R G B y asignando dicho valor a las tres componentes (R = rojo, G = verde y B = azul). La imagen de un objeto puede considerarse como un vector de píxeles donde el valor de cada componente del vector es el valor en escala de grises (u otro canal de color) correspondiente al pixel. Una imagen NxN constituye un vector de dimensión N^2 (N es el número de píxeles de la imagen y la longitud del vector).

6 Extracción de características de una imagen
Dividimos la imagen en fragmentos que llamaremos bloques. Para cada bloque se calculará su vector de características.

7 Extracción de características de una imagen
Para cada bloque obtenido se normalizará su intensidad con el fin de que su media sea 0 y su varianza sea 1. Para acelerar este proceso se ha utilizado la imagen integral 𝑖𝑖 𝑐,𝑟 = 𝑐 ′ ≤𝑐,𝑟′≤𝑟 𝑖𝑚𝑔( 𝑐 ′ , 𝑟 ′ ) 𝑆1=𝑖𝑖(𝑐𝑓,𝑟𝑓)+𝑖𝑖(𝑐0−1,𝑟0−1)−𝑖𝑖(𝑐𝑓,𝑟0−1)−𝑖𝑖(𝑐0 −1,𝑟𝑓) 𝑆2= 𝑖𝑖2(𝑐𝑓,𝑟𝑓)+ 𝑖𝑖2(𝑐0,𝑟0)− 𝑖𝑖2(𝑐𝑓,𝑟0−1)− 𝑖𝑖2(𝑐0−1,𝑟𝑓) 𝜇= 𝑆1/𝑁 𝜎=√𝑆2/𝑁− 𝜇2 𝑖𝑚 𝑐,𝑟 = 𝑖𝑚𝑔 𝑐,𝑟 − 𝜇 𝜎 La normalización se hace necesaria para tener cierta independencia de las propiedades de la imagen. Usando la imagen integral, la suma de los píxeles correspondientes a un rectángulo puede calcularse con cuatro accesos a la matriz de la imagen integral. Para normalizar cada bloque de extracción, en primer lugar se calcularía la imagen integral y la imagen integral al cuadrado, para posteriormente normalizar cada bloque de extracción mediante la siguiente ecuación: 𝑖𝑚 𝑐,𝑟 = 𝑖𝑚𝑔 𝑐,𝑟 − 𝜇 𝜎

8 Extracción de características de una imagen
Una vez normalizada la imagen, el siguiente paso es calcular la magnitud y la orientación del gradiente de cada pixel. El gradiente denota una dirección en el espacio según el cual aprecia una variación de una determinada propiedad. El gradiente denota una dirección en el espacio según el cual aprecia una variación de una determinada propiedad, como el contraste de color entre los colores blanco y negro e intensidad de la imagen. La aproximación más sencilla para calcular el gradiente es el cálculo de las diferencias. La magnitud (probabilidad de un borde) y orientación del vector gradiente suele aproximarse por la expresión: |G(i,j)| = |Gf(i,j)|+|Gc(i,j)|

9 Extracción de características de una imagen
Se divide el gradiente en dos componentes, la magnitud y orientación para que el resultado sea una matriz, de la cual se tiene que crear un histograma de orientaciones. Este histograma se construye con un vector de talla N, siendo N el número de orientaciones contempladas. El resultado sería entonces dos matrices, una que represente las magnitudes del gradiente en cada pixel de la imagen original y otra matriz que contenga las orientaciones del gradiente en cada pixel. Partiendo de la matriz de orientaciones y de la matriz de magnitudes asociadas al bloque de extracción se tiene que crear un histograma de orientaciones. Para cada uno de los pixel del bloque de extracción se obtiene la magnitud y se acumula en la posición del vector que viene determinada por la orientación del pixel. Antes de acumular la magnitud del pixel se le aplica un peso. El peso que se aplica a una posición x de la imagen viene determinado por una función gaussiana. El valor acumulado en cada posición del vector de características es la magnitud del gradiente multiplicado por el peso asociado al índice x de la imagen. Suponiendo, por ejemplo, que se consideran 9 orientaciones y que se han utilizado 10 bloques de extracción a la imagen, el vector de característica final tendría una dimensión 9x10 = 90.

10 Extracción de características de una imagen
Se aplica un posproceso al vector de características. Primero se normalizan sus valores para posteriormente umbralizar los picos y volver a normalizar el vector resultante. ¿Problema? Tenemos que diferenciar ahora una serie de números de otros para determinar si se trata de un rostro o no. Variables que condicionan el comportamiento de este proceso: -Alto bloque de extracción. -Solapamiento entre bloques. -Sigma para el vector de pesos. -Número de orientaciones. -Umbral para el posproceso de normalización del vector de características. Parámetros que habrá que variar para conseguir un resultado óptimo en la aplicación. Las técnicas de umbralizacion buscan obtener un valor de umbral que permita binarizar a la imagen separando adecuadamente el fondo (background) y el objeto a separar (foreground). El problema de la umbralización es encontrar el valor T (umbral) adecuado entre los valores de grises en imágenes que permita una óptima separación entre el objeto y el fondo. Este es un caso ideal, el histograma de intensidad de una imagen (niveles de gris) tendría bien marcado los dos picos para objeto y fondo, y diríamos que el umbral óptimo es aquel valor T que separa ambas regiones.

11 Clasificación de una imagen
De nuevo podemos tener en cuenta dos partes: Proceso de aprendizaje del clasificador: De las imágenes de la base de datos se extraen sus características para obtener un valor numérico que defina a la imagen. Estas características se pasan al clasificador junto con la certeza de que ese valor numérico representa la información de que se trata de una cara o no. Proceso de inferencia sobre el clasificador entrenado: Con lo anterior se consigue que el clasificador sea capaz de inferir, cuando se le pasa una foto a estudiar, si el vector de características se trata de una cara o no. Proceso de aprendizaje del clasificador: Es necesario crear una base de datos de imágenes lo suficientemente numerosa para conseguir una muestra estadística válida. Proceso de inferencia sobre el clasificador entrenado: El clasificador ya sabe en términos estadísticos que forma tienen los vectores del rostro, debería ser capaz de determinarlo. Como se ha podido observar, el proceso de extracción de características está incluido en la fase de aprendizaje y en la fase de inferencia.

12 Clasificación de una imagen
Añadimos al clasificador los vectores de características obtenidos de las imágenes de entrenamiento. Junto con información que identifica a cada vector con la clase que pertenece (cara o no). Una vez entrenado el clasificador, para cada vector característico a reconocer se realiza una búsqueda de los K vectores de entrenamiento más cercanos. Y se le asignará la clase a la que pertenece la mayoría de los K vectores característicos más cercanos. Para que el clasificador reconozca que tipo de características son comunes en las imágenes que contienen rostros y en las que no. En este proceso, se obtiene tanto la lista de los K vecinos más cercanos, como las distancias a los mismos. Finalmente, a la imagen que se está evaluando se le asigna la clase a la que pertenecen la mayoría de los K vectores característicos más cercanos. Para saber si un punto P1 de la imagen 1, con descriptor V1, está presente en la imagen 2: Se busca el punto P2 con descriptor V2 más parecido en la imagen 2. Si la distancia entre V1 y V2 es menor que un umbral, entonces P2 corresponde a P1, sino P1 no tiene correspondencia en la imagen 2. Para la clasificación de los vectores de características creados mediante métodos HOG, utilizaremos máquinas de clasificación basadas en soporte vectorial, SVM (analiza datos y reconoce patrones).

13 Implementación…

14 Preguntas? Gracias!


Descargar ppt "Reconocimiento de caras usando Histogramas de Gradientes Orientados"

Presentaciones similares


Anuncios Google