Navegación
Proyectos
Inicio de sesión
Datos Extras
Coundown Ubuntu
GNU Falco (Parte II) Mas esperado que el mundial sudafrica 2010!!!!
Turkos — Mar, 06/08/2010 - 13:24
![]()
Como diría la conductora rubia de los almuerzos "el publico se renueva", por eso voy a volver comentar de que se trata este proyecto nuevamente:
GNU FALCO es una simple aplicación que podría ser utilizada en circuitos cerrados de televisión donde se requiere la identificación de personas, puede resultar de gran utilidad en diversos ámbitos.
Básicamente el sistema capta rostros, los amplía y guarda con la fecha y la hora de detección. De este modo el operario puede identificar personas a partir de los archivos que se encuentran dentro de la memoria de la PC.
La traducción al español es Aprendizaje Automático y es una rama de la Inteligencia Artificial que se basa en la creación de métodos que le permiten a las computadoras aprender. Esto se logra a través de mecanismos capaces de inducir conocimiento mediante datos no estructurados suministrados en forma de ejemplos, para que estos sean asimilados por el sistema.
Esta disciplina se apoya fundamentalmente en la estadística, y puede ser vista como un intento de automatizar algunas partes del Método Científico mediante métodos matemáticos.
El objetivo de este método es, en primer lugar, convertir datos en información, para que luego la máquina sea capaz de responder por ejemplo a las preguntas:
¿Qué otros datos son similares a esta información?
¿Hay un coche en la imagen?
¿Cuántas personas se encuentran en la habitación?
¿Es este operario parecido a otro?
El Aprendizaje automático funciona con datos tales como los valores de temperatura, precios de las acciones, las intensidades de color, etc. Los datos son a menudo pre-clasificados según “características”. Podríamos, por ejemplo, tener una base de datos de 10.000 imágenes de rostros, ejecutar un detector de bordes en las caras, y recoger características tales como la dirección del borde, el ancho del borde, y el desplazamiento del centro de la misma. Entonces podríamos tener por cada cara 500 valores de ese tipo en un vector de características de 500 entradas. A continuación pueden ser utilizadas técnicas de aprendizaje automático para construir algún tipo de modelo a partir de estos datos recogidos. Si sólo queremos saber en cuál de los diferentes grupos encaja la cara (ancho y estrecho, etc), entonces un algoritmo de agrupamiento sería la opción más adecuada. Si queremos aprender a predecir la edad de una persona, por ejemplo, tomaríamos un patrón de bordes detectados en su cara, luego ejecutaríamos un algoritmo clasificador apropiado.
Aprendizaje supervisado y no supervisado:
El aprendizaje supervisado consiste en producir una función que establece una correspondencia entre las entradas y las salidas deseadas del sistema. Un ejemplo de este tipo de algoritmo es el problema de clasificación, donde el sistema de aprendizaje trata de etiquetar (clasificar) una serie de vectores utilizando una entre varias categorías (clases). La base de conocimiento del sistema está formada por ejemplos etiquetados anteriores.
En el aprendizaje no supervisado todo el proceso de modelado se lleva a cabo sobre un conjunto de ejemplos formado tan sólo por entradas al sistema. No se tiene información sobre las categorías de esos ejemplos.
Face Detection o Haar Classifier:
Es un método desarrollado por Viola y Jones y es una versión del algoritmo “Adaboost” que es un clasificador basado en arboles de decisión con entrenamiento supervisado. Básicamente mediante características locales basadas en el cambio de intensidad podemos obtener un detector de caras bastante robusto. Esta técnica hoy en día es utilizada incluso por empresas no solo para detectar rostros sino también cuerpos rígidos.
El método es determinar una serie de características basadas en las sumas y restas de los niveles de intensidad en la imagen. Para ello se utilizan filtros de Haar de un cierto tamaño y calculados para las posiciones concretas de la sub-imagen que se quiere clasificar. Dichas características son evaluadas por un “clasificador débil” para decidir si la sub-imagen corresponde a una cara (aceptada) o no (rechazada). Si el valor de la característica está por encima de un cierto umbral θ, entonces la ventana se clasificará como cara.
AdaBoost se emplea para encontrar reglas de clasificación altamente precisas (fuertes) combinando muchas reglas de baja precisión (débiles), es decir que se trata de una combinación lineal de clasificadores débiles para obtener clasificadores fuertes.
El clasificador Viola-Jones AdaBoost emplea en cada nodo de la cascada de aprendizaje una alta tasa de detección con el costo de utilizar “multitree” y esto provoca una baja tasa de rechazo.
Este algoritmo incorpora además varias características innovadoras:
1. Utiliza características de entrada de “Haar-like” y le aplica límite a las cantidades y a las diferencias de las regiones de la imagen rectangular.
2. Su técnica de imagen integrada permite el cálculo rápido del valor de las regiones rectangulares giradas 45. Esta estructura de datos se usa para acelerar el cálculo de las características de entrada de “Haar-like”.
3. Utiliza “Boosts” estadísticos para crear clasificadores binarios (cara o no cara) de los nodos que se caracterizan por el rechazo de detección débil.
El algoritmo del método es el siguiente:

Descripción del código del programa:
El programa cuenta con una interfase muy sencilla y agradable, que consiste en una ventana y un botón que habilita o deshabilita la captura, además podemos ver en la misma una leyendas del estado del programa y de los posibles errores.
Diagrama de flujo:
El clasificador Viola-Jones AdaBoost emplea en cada nodo de la cascada de aprendizaje una alta tasa de detección con el costo de utilizar “multitree” y esto provoca una baja tasa de rechazo.
Este algoritmo incorpora además varias características innovadoras:
1. Utiliza características de entrada de “Haar-like” y le aplica límite a las cantidades y a las diferencias de las regiones de la imagen rectangular.
2. Su técnica de imagen integrada permite el cálculo rápido del valor de las regiones rectangulares giradas 45. Esta estructura de datos se usa para acelerar el cálculo de las características de entrada de “Haar-like”.
3. Utiliza “Boosts” estadísticos para crear clasificadores binarios (cara o no cara) de los nodos que se caracterizan por el rechazo de detección débil.
- Inicie sesión o regístrese para enviar comentarios


















Saludos
Turkos — Mié, 07/28/2010 - 11:17Hola recién veo el comentario de sebest. Te comento que facedetec, se puede realizar tanto con Matlab (creando los algoritmos uno mismo) o con Harpia, y también Opencv, en cualquier entorno de programación como ejemplo matlab. octave. y en cualquier lenguaje, ejemplo c++, phyton. tenes que definir que queres usar y que tan fácil lo queres hacer. En Harpia es muy simple. si lo tenes andando unis un par de bloques y después podes cambiar el archivo de los clasificadores así podes detectar distintos objetos.
Lo que sí no te vas a salvar de leer bastante. Danos una idea de lo que queres hacer y en que pensas programar y que conocimientos tenes, tambien te recomiendo que leas todo este informe que es muy explicativo.
ayuda opencv o harpia
josb86 — Mar, 07/27/2010 - 19:26podría alguien ayudarme ya sea con opencv o con harpia ha hacer lo del reconocimiento de formas, se los agradecería. veo que tiene un canal en justin no se si algún día puedan dar una clase online
Re: Ayuda
sebest — Mié, 07/28/2010 - 10:07Te podemos ayudar sin problemas, pero tendrías que enviarnos algo que estes intentando hacer así vemos donde estan tus errores. Si haces un esfuerzo vos primero nosotros te ayudamos.
Respecto al canal de justin, por el momento no lo estamos usando por falta de infraestructura.
hola
josb86 — Jue, 07/08/2010 - 17:23hola como estas, voy a ver si vuelvo nuevamente a tratar de entender esto del reconocimiento de imágenes he bajado algunos manuales en este momento estoy utilizando Matlab me imagino que tu utilizas openCV. en los manuales que he leido hablan de como pasar la imagen a grices sacar los bordes de una imagen y todo eso, pero lo que no entiendo es como hace uno para que el programa sepa cuando lo que esta frente a la cámara es una cara o por ejemplo cuando es un cuadrado un triangulo y asi. me podrías dar una explicación. quisiera aprender sobre reconocimiento por que me parece que tiene mucha utilidad.