Red de conocimiento informático - Espacio del host - ¿Existe algún algoritmo de reconocimiento facial más conveniente? Recomiéndelo.

¿Existe algún algoritmo de reconocimiento facial más conveniente? Recomiéndelo.

Método de rostro característico

Paso 1: obtenga un conjunto S que contenga M imágenes de rostro. En nuestro ejemplo, hay 25 imágenes de rostros (aunque son 25 imágenes de rostros diferentes, no se parecen. ¿Tengo ceguera facial), como se muestra en la siguiente figura? Cada imagen se puede convertir en un vector de N dimensiones (sí, así es, está ordenado píxel por píxel. En cuanto a obtener los píxeles de la imagen original horizontal o verticalmente, depende de usted, siempre que el frente y viceversa están unificados), y luego coloque estos M vectores en un conjunto S, como se muestra en la siguiente fórmula.

Paso 2: Después de obtener el conjunto de vectores faciales S, calcule la imagen promedio Ψ En cuanto a cómo calcular la imagen promedio, la fórmula es la siguiente. Es decir, realizar un recorrido y acumular los vectores en el conjunto S, y luego tomar el promedio. El Ψ? obtenido es realmente bastante interesante. Si lo restauras a la forma de una imagen, puedes obtener la "cara promedio" a continuación. Si quieres ver cómo es el chico promedio en una escuela de informática, simplemente usa el método anterior.

Paso 3: Calcula la diferencia Φ? entre cada imagen y la imagen promedio restando el promedio del paso 2 de cada elemento del conjunto S.

Paso 4: Encuentra M vectores unitarios ortogonales un?, que en realidad se utilizan para describir Φ? (el késimo (k=1, 2, 3....M) vector uk? La fórmula de cálculo es de la siguiente manera:

Cuando este λk (originalmente llamado valor propio) toma el valor mínimo, ¿uk? Agrega un punto. Como dije antes, estos M vectores son ortogonales entre sí y tienen una longitud unitaria, entonces, ¿uk? también satisface la siguiente fórmula:

La fórmula anterior hace que uk? se convierta en un vector ortogonal unitario. El cálculo anterior de uk? es en realidad para calcular el vector propio de la matriz de covarianza. /p>

Entre ellos

Para imágenes dimensionales NxN (por ejemplo, 100x100), el método anterior para calcular directamente los vectores de características es demasiado computacionalmente intensivo (la matriz de covarianza puede alcanzar 10,000x10,000), entonces existe un método de cálculo simple, la fórmula de cálculo es la siguiente:

Para imágenes dimensionales NxN (por ejemplo, 100x100), el método anterior para calcular directamente los vectores de características requiere demasiado cálculo (la matriz de covarianza puede alcanzar 10,000x10,000), por lo que existe un método de cálculo simple, la fórmula de cálculo es la siguiente

Paso 4: si el número de imágenes de entrenamiento es menor que la dimensión de la imagen, por ejemplo (. Mlt; N^2), entonces los únicos vectores de características efectivos son M- 1 en lugar de N^2 (porque los valores propios correspondientes de otros vectores propios son 0), por lo que para resolver los vectores propios, solo necesitamos resolver un NxN. matriz. Esta matriz es la AAT? en el paso 4. Podemos establecer que esta matriz sea L.

Entonces, se pueden expresar los elementos de la m-ésima fila y la n-ésima columna. como:

Una vez que encontramos los vectores propios M vl de la matriz L, la matriz de covarianza. El vector propio ul se puede expresar como:

Si estos vectores propios se simplifican a una disposición de píxeles, En realidad, son muy similares a los rostros humanos, por lo que se denominan rostros propios (como se muestra a continuación. Casualmente, en la figura hay 25 rostros propios, lo que es igual al número de imágenes de entrenamiento. Algunos artículos muestran que 40 rostros propios son suficientes para el general). aplicaciones El artículo "Eigenfaces for Recognition" solo usa 7 eigenfaces para mostrar el experimento.

Paso 5: Reconocer la cara Bien, finalmente estamos aquí, no se confunda, el paso anterior es. reduzca la cara para encontrar el vector apropiado para representar la cara.

Primero considere una nueva cara, podemos marcarla con eigenface:

donde k=1, 2...M, para la k-ésima cara propia uk, la fórmula anterior se puede calcular a partir de sus pesos correspondientes, M los pesos pueden formar un vector:

¡Perfecto, esta es la representación del rostro humano por el rostro propio obtenido!

Entonces, cómo reconocer rostros, mire la siguiente fórmula:

Entre ellos, Ω representa el rostro a distinguir y Ωk representa el rostro específico en el conjunto de entrenamiento, ambos de los cuales están dados por representados por el peso de la cara característica. La fórmula es la distancia euclidiana entre los dos. Cuando la distancia es menor que el umbral, significa que la cara a distinguir y la k-ésima cara en el conjunto de entrenamiento son la misma persona. Cuando la distancia en todos los conjuntos de entrenamiento es mayor que el umbral, se puede clasificar además como una cara nueva o no cara según el tamaño del valor de la distancia. Dependiendo del conjunto de entrenamiento, el establecimiento del umbral no es fijo.

La teoría PCA se complementará más adelante ^_^. Nueva teoría: Base teórica de Eigenface - PCA (análisis de componentes principales)

Referencias:

1. Eigenface para reconocimiento: .pdf

2. Eigenface Wikipedia: http ://zh.wikipedia.org/wiki/E789B9E5BE81E884B8

3. Eigenface_tutorial: http://www.pages.drexel.edu/~sis26/Eigenface20Tutorial.htm