Estoy trabajando en un proyecto en el que debería diseñar una aplicación que pueda detectar todas las caras de las personas que pasan ... Tengo una base de datos muy grande que incluye varias personas conocidas ... He utilizado el EigenObjectRecognizer para reconocer el marco de la imagen capturado por la cámara web ... Pero el problema es que a veces reconoce erróneamente a algunas personas ... Entonces, si obtengo el valor de confianza de esta coincidencia facial ... Entonces puedo escribir un ciclo condicional para que, si es mayor más del 75%, entonces solo lo detecto si no es así. También sé que el reconocimiento basado en PCA es básico, definitivamente pasaré a otros algoritmos nuevos. Pero debido a la fecha límite del proyecto, debo enviarlo rápidamente ... .Por favor, dígame cómo obtener el valor de confianza de este reconocimiento facial de EigenObjectRecognizer ....¿Cómo obtener el valor de Confianza en el reconocimiento facial usando EMGU CV?
Respuesta
No existe un valor de confianza exacto sin embargo th Hay una escala variable que puede usarse e interpretarse de forma aproximada como tal, que es la Distancia Eigen.
El valor que se clasifica como una buena coincidencia cambia según la cantidad de datos que tenga y los parámetros de entrenamiento, por lo que deberá probar los valores con diferentes caras para calcular su umbral.
Deberá agregar una función a la clase Eigen para obtener este valor. Primero, sobrescribiremos el EigenObjectRecognizer que usamos. Esto es realmente simple: se incluye el archivo EigenObjectRecognizer.cs, se ubica en el directorio de \ EMGU Installation \ Emgu.CV o, donde sea que hayas extraído los archivos, podrás ubicarlo ya que está en la misma carpeta que la carpeta bin con todos los .dlls que usas
Agregue el archivo a su proyecto haciendo clic derecho en el nombre del proyecto en el explorador de soluciones en el estudio visual y seleccionando Agregar> Elemento existente ... Navegue hasta el archivo y agréguelo. Su proyecto utilizará esto automáticamente en lugar de aquel que tiene EMGU.CV.dll en sus referencias.
Abra EigenObjectRecognizer.cs ahora en su proyecto, no se preocupe, es una copia del original, por lo que cualquier cambio que realice no afectará a la fuente original. Para empezar, haga las cosas más fáciles manteniendo presionada la tecla Ctrl presionando la tecla m seguida de la tecla o, esto colapsará todos los campos del método.
Para empezar, necesitamos sobrescribir el espacio de nombres al que llamé Emgu.Custom.
Ahora en la parte superior del código Agregue la siguiente variable por debajo de los demás
private float eigenDistance;
añade el siguiente método a la clase,
/// <summary>
/// Get the calculated Eignen Distance for the last proceessed frame
/// </summary>
public float GetEignenDistance
{
get { return eigenDistance; }
}
Se puede colocar en cualquier lugar que usted, pero, obviamente, dentro de la clase y fuera de un método, ahora el bit importante. Hemos hecho que eigenDistance sea global, pero se crea de manera privada cuando llamamos al método .Recognize (Imagen de imagen).
Encuentra este método dentro EigenObjectRecognizer.cs y cambiar
float eigenDistance;
a
eigenDistance = -1;
que podría eliminar el flotador eigenDistance; línea, pero me gusta asegurar que se sobrescriba con un valor que puedo observar para un error, ya que siempre debe ser positivo si el reconocimiento se ha aplicado correctamente.Usted se dará cuenta de que la siguiente sección de código incluye:
FindMostSimilarObject(image, out index, out eigenDistance, out label);
- índice
- eigenDistance
- etiqueta
¿Son todas las salidas disponibles para su uso con un poco de codificación adicional.
Nos hay necesidad de señalar nuestra variable reconocedor Eigen a la escritura uno:
Emgu.Custom.EigenObjectRecognizer recognizer;
Ahora podemos obtener el EigenDistance con esta llamada de función:
float EigenDistance = recognizer.GetEignenDistance;
Espero que esto aclare las cosas,
Cheers,
Chris
- 1. Reconocimiento facial en el iPhone
- 2. reconocimiento facial OpenCV/EmguCV
- 3. Reconocimiento facial en Java/Procesamiento
- 4. Opencv 2.4.2 Explicación de código-Reconocimiento facial
- 5. Seguimiento de movimiento usando Emgu CV (u OpenCV)
- 6. Rellene los agujeros en emgu cv
- 7. Emgu CV obtener todos los marcos del archivo de video
- 8. software de reconocimiento facial/fusión
- 9. ¿Cómo funcionan los programas de reconocimiento facial?
- 10. EMGU CV SURF coincidencia de imagen
- 11. ¿Cómo instalar y usar Emgu CV en C#?
- 12. Biblioteca de reconocimiento facial en Android
- 13. Estado del arte en reconocimiento facial
- 14. Emgu CV - pérdida de memoria (consumo de memoria)
- 15. ¿Cuál es el método más moderno para hacer reconocimiento facial?
- 16. Reconocimiento de rostro humano, emoción y voz
- 17. ¿Cómo puedo realizar un reconocimiento facial en iOS?
- 18. Cómo cortar una subparte de una imagen usando Emgu CV (u OpenCV)?
- 19. Reconocimiento de valor nominal de los dados
- 20. Obtener una máscara de imagen de las diferencias entre dos imágenes Emgu CV
- 21. Rostros de reconocimiento facial y envejecimiento en C++
- 22. Cómo fusionar bordes detectados a una captura de color en Emgu CV
- 23. ¿Hay alguna biblioteca de reconocimiento facial C# que funcione?
- 24. Reconocimiento/reconocimiento facial PHP o software para galerías de fotos y videos
- 25. ¿Alguna biblioteca para el reconocimiento de rostros en JavaScript?
- 26. C#, cámara web Emgu: elija el tamaño de captura
- 27. ¿Cómo obtener el valor de href usando jQuery?
- 28. cómo obtener el valor de casilla múltiple usando jquery
- 29. ¿Cuál es el mejor lenguaje para el reconocimiento de huella?
- 30. ¿Cómo obtener un editor de confianza/verificado?
Señor, en mi código reconocedor es el nombre de la referencia a EigenObjectRecognizer ... Intenté usar recognizer.Get_Eigen_Results. Pero no pude encontrar ningún miembro con el nombre "Get_Eigen_Results". ¿Me falta agregar una referencia aquí? –
Hola, lo siento, Surya es una función que agregué a la clase Eigen. Actualizaré mi respuesta en consecuencia. – Chris
Hola, ¿crees que podría funcionar si quisiera comparar imágenes si hay la misma persona? Comprueba la distancia contra la base de datos con uno, que con el otro y finalmente comparar estas distancias? O de todos modos cómo comparar 2 fotos de la persona que no está en la base de datos? –