CREATESAMPLES, HAARTRAINING Y PERFORMANCE

Hemos estado hablando de facedetect.c todo este tiempo. Este programa nos ha servido en un principio para tomar muestras y también para localizar dentro de las muestras (caras) las submuestras que nos interesan más (sonrisas, ojos, etc…). No obstante tiene otra función, puede operar en modo detección de emociones.

Para ello simplemente debemos hacer que siga detectando nuestras caras, pero una vez detectadas estas caras debe ser capaz de identificar rasgos inconfundibles dentro de ellas para diferenciarlas del resto de emociones. ¿Cómo hacer esto? OpenCV nos proporciona 3 herramientas muy potentes.

Vamos a explicar el funcionamiento de cada una de ellas:

CREATESAMPLES

La primera vez que nos encontramos con estas herramientas no sabíamos muy bien como usarlas, con objeto de ayudar a posibles nuevos usuarios vamos a explicar ciertos aspectos que nos retrasaron un poco detalladamente.

Createsamples es un programa que viene con OpenCV, debemos buscar createsamples.cpp y compilarlo. El programa está pensado para ejecutarlo directamente con una serie de comandos que podremos identificar como argv[i]’s. Lo que nosotros haremos será ir a las condiciones lógicas en las que intervienen estos argumentos, inicializarlas con el valor que queramos y ejecutar el programa, lo cual es mucho más cómodo. En estos programas lo único que hay que tocar son dichas variables, que son las siguientes.

VARIABLES CREATESAMPLES

Hablaremos solo de las que hay que modificar y dejaremos las demás por defecto.

vecname: Nombre del archivo.vec que contendrá nuestras muestras positivas y que será generado a partir de infoname.

infoname: Nombre del archvo.dat con la información para obtener las muestras.

Este archivo es un simple archivo de texto que tiene la siguiente forma:

File info.dat:

img/img1.jpg  1  140 100 45 45

img/img2.jpg  2  100 200 50 50   50 30 25 25

Donde img/img1.jpg es el directorio en el que se encuentran las muestras de caras positivas tomadas con createsamples. El siguiente número es el número de muestras dentro de la imagen (por ejemplo en una cara podemos querer los dos ojos o una boca). Los dos siguientes números son la posición x,y dentro de la imagen img1.jpg del vértice superior izquierdo de la muestra(siempre será un rectángulo), el siguiente número es la anchura y el siguiente la altura. Todos ellos en píxeles. De tal forma que tendremos un directorio con imágenes de la que hemos tomado con facedetect.c y un archivo de texto también generado con facedetect.c con la posición de la sonrisa, ojo, etc… También podemos pasarle al programa directamente recortes de dichas sonrisas u ojos como imágenes, pero es una práctica desaconsejable pues posteriormente las imágenes de las caras nos vendrán muy bien para probar el clasificador de imágenes creado.

imagename y bgfilename: Son dos variables que no utilizamos. A veces no hay suficientes muestras para realizar nuestro clasificador, en ese caso deberíamos pasar la imagen de muestra en imagename y un conjunto de backgrounds en bgfilename para generar distorsiones sobre la imagen original. Tienen otras variables asociadas de las que no hablaremos por no usarlas tampoco.

bgcolor. Para elegir muestras con color o no. El color según la documentación que hemos leído solo introduce ruido en las muestras, puede que en otras aplicaciones sea útil pero nosotros lo pondremos a 0.

width y height: Cuidado con estas variables, son el tamaño de muestra. Un tamaño de 24×24 es más que suficiente. Más nos causaría problemas de memoria y errores en el programa por requerir mucha potencia. Para sonrisas 24×12. Para ojos puedes usar 20×12 por ejemplo.

num. El numero de muestras positivas que tenemos.

Recapitulando: le hemos pasado a createsamples un archivo .dat que contiene la posición en nuestro ordenador de las imágenes y la posición dentro de las imágenes de las muestras y nos ha generado un archivo.vec con las muestras listas para crear el clasificador. Podemos verlas sin más que volver a ejecutar el programa poniendo infoname a NULL.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: