Estoy construyendo una aplicación que tomará una imagen del cuerpo de una sola persona y producirá una "foto policial" para esa persona.¿Cómo obtener una "foto policial" de los cuadros de detección de rostros?
Mugshot significa una imagen de la cara, el cuello, el pelo y las orejas de toda la persona con el mismo tamaño general de otra foto policial.
Actualmente estoy usando
http://askernest.com/archive/2008/05/03/face-detection-in-c.aspx
para implementar OpenCV y estoy usando
harrcascade_frontalface_default.xml
harrcascade_frontalface_alt.xml
harrcascade_frontalface_alt2.xml
harrcascade_frontalface_alt_tree.xml
como mis cascadas.
Uso todas las cascadas porque una sola no detectará todas mis caras. Después de obtener todas las caras detectadas por todas las cascadas, encuentro mi casilla promedio y la utilizo para calcular por última vez qué tan alta y ancha debe ser la ficha policial.
Mi problema es 3 partes.
Mi proceso actual es bastante lento. ¿Cómo puedo acelerar el proceso de detección?
Edit: Estoy descubriendo que el tiempo de procesamiento está directamente relacionado con el tamaño de la foto. Reducir el tamaño de las fotos puede ser útil.Una sola cascada no detectará todas las caras que encuentro, así que las estoy usando todas. Esto, por supuesto, produce muchos cuadrados variados y algunos falsos positivos. ¿Qué método puedo usar para identificar los falsos positivos y dejarlos fuera del cálculo cuadrado promedio? ex.
Edit: Estoy implementando un promedio de valores dentro de la desviación estándar. Publicaremos el código pronto.No estoy seguro de la mejor manera de encontrar la foto de la ficha dado las coordenadas cuadradas de la cara. ¿Dónde puedo encontrar la relación cara a tapa?
Editar: Resolvió esta. Suponiendo que todas mis cabezas son proporciones de sus caras.static public Rectangle GetMugshotRectangle(Rectangle rFace) { int y2, x2, w2, h2; //adjust as neccessary double heightRatio = 2; y2 = Convert.ToInt32(rFace.Y - rFace.Height * (heightRatio - 1.0)/2.0); h2 = Convert.ToInt32(rFace.Height * heightRatio); //height to width ratio is 1.25 : 1 in mugshots w2 = Convert.ToInt32(h2 * 4/5); x2 = Convert.ToInt32((rFace.X + rFace.Width/2) - w2/2); return new Rectangle(x2, y2, w2, h2); }
que sólo tiene que deshacerse de los falsos positivos.
Ok make that 4 issues.
Nuestra cámara que vamos a utilizar esta actualmente fuera de servicio, así que no tengo un método de captura de imágenes en el momento. ¿Dónde puedo encontrar imágenes de cuerpo completo de personas que no son prontas como la búsqueda de imágenes de Google para imágenes de cuerpo completo?
Editar: "Persona de pie" hace una buena búsqueda :)
¿Esa es la iglesia de Thomas Hayden? –
Es el hombre de arena en Spiderman jaja –