¿Cómo puedo usar una red neuronal de convolución (para reconocimiento facial) después del entrenamiento? Quiero darle una cara como entrada y ver la salida predicha.

Se puede usar una red neuronal convolucional (convNet) como detector de características faciales para alimentar clasificadores como una máquina de vectores de soporte lineal (SVM). La idea es entrenar a la convNet de manera que aprenda un conjunto de características o incrustaciones de caras de modo que estos vectores estén cerca uno del otro para caras que se parezcan y muy separadas para caras que son diferentes.

La parte convNet necesita ser entrenada usando dos convNets siameses para aprender la incrustación facial. La idea es presentar la cara [matemática] x_ {i} [/ matemática] a la red A y luego la cara [matemática] x_ {j} [/ matemática] a la red B.

[matemáticas] y_ {A} = f_ {A} (x_ {i}, w) [/ matemáticas]

[matemáticas] y_ {B} = f_ {B} (x_ {j}, w) [/ matemáticas]

Donde [math] w [/ math] = parámetros de red, [math] f () [/ math] es la función de mapeo para aprender

Nota : El parámetro [math] w [/ math] es el mismo porque se trata de redes siamesas.

El objetivo es minimizar

[matemáticas] e ^ 2 = [/ matemáticas] [matemáticas] || y_ {A} -y_ {B} || ^ {2} [/ math]

si las caras [matemática] x_ {i} [/ matemática] y [matemática] x_ {j} [/ matemática] son ​​de la misma persona y maximícela si son de dos personas diferentes. El resultado final será una sola convNet definida por el parámetro [math] w [/ math] que proyecta caras en un nuevo espacio de características [math] y [/ math].

[matemáticas] y = f (x, w) [/ matemáticas]

Luego puede proyectar todas las caras [math] x [/ math] en tal incrustación y luego entrenar un SVM lineal de múltiples clases en los vectores resultantes [math] y [/ math], cada salida SVM lineal corresponde a una cara registrada particular.

La buena parte del uso de esta técnica es que durante el registro de caras nuevas, no es necesario ajustar o volver a entrenar toda la red, solo se debe entrenar la parte SVM lineal. Es muy eficiente de esta manera y, por lo tanto, este sistema puede admitir un número variable de caras registradas para reconocer. Para eliminar una cara simplemente desenganche el SVM correspondiente de la red y para registrar una nueva cara, conecte otra SVM lineal y capacítelo en los nuevos ejemplos de caras utilizando una estrategia de uno contra todos.

Espero que esto ayude.

Puedes usar tu modelo entrenado. No tengo idea de qué marco de aprendizaje profundo está utilizando, o desde cero, por ejemplo, en Keras, puede usar el método save () para guardar su modelo, el método load_model () para cargar su modelo y el método predict () para usar el modelo para tu reconocimiento facial.

Modelo (API funcional) – Documentación de Keras

Muchos modelos de marcos de aprendizaje profundo consisten en estructuras y pesos de redes neuronales. Si lo tiene guardado, estoy seguro de que puede copiarlo.