6 resultados para OpenCV
em Universidad Politécnica de Madrid
Resumo:
En este Trabajo fin de Grado se ha creado la parte funcional de una aplicación móvil dejando la parte de la interfaz libre para su futura implementación. La aplicación es un magnificador y está destinada a aquellas personas con baja visión, permitiéndoles hacer aumento de imágenes y textos capturados por la cámara del dispositivo, con la posibilidad de que puedan cambiar algunos parámetros de la magnificación para poderlo ver mejor. La parte funcional de la aplicación fue nombrada como librería magnificador, ya que se compone de métodos implementados en Java que permiten hacer diferentes modificaciones de la imagen o del video visualizado. Se cubrieron todas las fases de desarrollo más significativas de un sistema software: análisis, diseño, implementación y pruebas. La aplicación se desarrolló para Android. Se trabajó en Eclipse con Android SDK. Para el procesamiento de las imágenes se aprovechó una librería externa, OpenCV, para evitar “inventar la rueda”, es decir, no escribir algoritmos de transformación de las imágenes que seguramente no podrían ser tan eficientes como los implementados en dicha librería creada por Intel. ---ABSTRACT---In this Final Project, the functional part of mobile phone application was created, leaving the interface parte for future implementation. The application is a magnifier and is oriented to people with very low vision allowing them to enlarge images of printed documents captured by the camera of the mobile phone device, with the possibility that they can change some parameters of magnification so that it can see better. The functional part of this application was named magnifier library because it composes of methods, implemented in Java, that allows changing between different modes of the preview of the image or video. All of the most significant phases of software development were satisfied: analysis, design, implementation and tests. The application was created for Android. The work was done in Eclipse with Android SDK plugin. For the image processing, an external library, OpenCv, was used, to avoid the unreachable intent of creation of effective algorithms that would never be so potent like the implemented in this library created by Intel.
Resumo:
El presente proyecto trata sobre uno de los campos más problemáticos de la inteligencia artificial, el reconocimiento facial. Algo tan sencillo para las personas como es reconocer una cara conocida se traduce en complejos algoritmos y miles de datos procesados en cuestión de segundos. El proyecto comienza con un estudio del estado del arte de las diversas técnicas de reconocimiento facial, desde las más utilizadas y probadas como el PCA y el LDA, hasta técnicas experimentales que utilizan imágenes térmicas en lugar de las clásicas con luz visible. A continuación, se ha implementado una aplicación en lenguaje C++ que sea capaz de reconocer a personas almacenadas en su base de datos leyendo directamente imágenes desde una webcam. Para realizar la aplicación, se ha utilizado una de las librerías más extendidas en cuanto a procesado de imágenes y visión artificial, OpenCV. Como IDE se ha escogido Visual Studio 2010, que cuenta con una versión gratuita para estudiantes. La técnica escogida para implementar la aplicación es la del PCA ya que es una técnica básica en el reconocimiento facial, y además sirve de base para soluciones mucho más complejas. Se han estudiado los fundamentos matemáticos de la técnica para entender cómo procesa la información y en qué se datos se basa para realizar el reconocimiento. Por último, se ha implementado un algoritmo de testeo para poder conocer la fiabilidad de la aplicación con varias bases de datos de imágenes faciales. De esta forma, se puede comprobar los puntos fuertes y débiles del PCA. ABSTRACT. This project deals with one of the most problematic areas of artificial intelligence, facial recognition. Something so simple for human as to recognize a familiar face becomes into complex algorithms and thousands of data processed in seconds. The project begins with a study of the state of the art of various face recognition techniques, from the most used and tested as PCA and LDA, to experimental techniques that use thermal images instead of the classic visible light images. Next, an application has been implemented in C + + language that is able to recognize people stored in a database reading images directly from a webcam. To make the application, it has used one of the most outstretched libraries in terms of image processing and computer vision, OpenCV. Visual Studio 2010 has been chosen as the IDE, which has a free student version. The technique chosen to implement the software is the PCA because it is a basic technique in face recognition, and also provides a basis for more complex solutions. The mathematical foundations of the technique have been studied to understand how it processes the information and which data are used to do the recognition. Finally, an algorithm for testing has been implemented to know the reliability of the application with multiple databases of facial images. In this way, the strengths and weaknesses of the PCA can be checked.
Resumo:
El objetivo general de este trabajo es el correcto funcionamiento de un sistema de reconocimiento facial compuesto de varios módulos, implementados en distintos lenguajes. Uno de dichos módulos está escrito en Python y se encargarí de determinar el género del rostro o rostros que aparecen en una imagen o en un fotograma de una secuencia de vídeo. El otro módulo, escrito en C++, llevará a cabo el reconocimiento de cada una de las partes de la cara (ojos, nariz, boca) y la orientación hacia la que está posicionada (derecha, izquierda). La primera parte de esta memoria corresponde a la reimplementación de todas las partes de un analizador facial, que constituyen el primer módulo antes mencionado. Estas partes son un analizador, compuesto a su vez por un reconocedor (Tracker) y un procesador (Processor), y una clase visor para poder visualizar los resultados. Por un lado, el reconocedor o "Tracker.es el encargado de encontrar la cara y sus partes, que serán pasadas al procesador o Processor, que analizará la cara obtenida por el reconocedor y determinará su género. Este módulo estaba dise~nado completamente en C y OpenCV 1.0, y ha sido reescrito en Python y OpenCV 2.4. Y en la segunda parte, se explica cómo realizar la comunicación entre el primer módulo escrito en Python y el segundo escrito en C++. Además, se analizarán diferentes herramientas para poder ejecutar código C++ desde programas Python. Dichas herramientas son PyBindGen, Cython y Boost. Dependiendo de las necesidades del programador se contará cuál de ellas es más conveniente utilizar en cada caso. Por último, en el apartado de resultados se puede observar el funcionamiento del sistema con la integración de los dos módulos, y cómo se muestran por pantalla los puntos de interés, el género y la orientación del rostro utilizando imágenes tomadas con una cámara web.---ABSTRACT---The main objective of this document is the proper functioning of a facial recognition system composed of two modules, implemented in diferent languages. One of these modules is written in Python, and his purpose is determining the gender of the face or faces in an image or a frame of a video sequence. The other module is written in C ++ and it will perform the recognition of each of the parts of the face (eyes, nose , mouth), and the head pose (right, left).The first part of this document corresponds to the reimplementacion of all components of a facial analyzer , which constitute the first module that I mentioned before. These parts are an analyzer , composed by a tracke) and a processor, and a viewer to display the results. The tracker function is to find and its parts, which will be passed to the processor, which will analyze the face obtained by the tracker. The processor will determine the face's gender. This module was completely written in C and OpenCV 1.0, and it has been rewritten in Python and OpenCV 2.4. And in the second part, it explains how to comunicate two modules, one of them written in Python and the other one written in C++. Furthermore, it talks about some tools to execute C++ code from Python scripts. The tools are PyBindGen, Cython and Boost. It will tell which one of those tools is better to use depend on the situation. Finally, in the results section it is possible to see how the system works with the integration of the two modules, and how the points of interest, the gender an the head pose are displayed on the screen using images taken from a webcam.
Resumo:
La detección de los bordes de líneas en la carretera es una parte muy importante en los sistemas inteligentes de transportación, así como la detección de objetos tal como vehículos, con la finalidad de informar o prevenir a través de una alerta al conductor o al sistema informático. De aquí nace el interés de analizar algunos métodos de visión artificial (VA) que es un subcampo de la inteligencia artificial, cuyo propósito es programar un computador y que este “entienda” una escena o imagen, algunos de los métodos más comunes en la detección de líneas y vehículos (considerados objetos en nuestra investigación) son la transformada de Hough, el método de Canny, clasificador Haar Cascade, filtros de Fourier, etc. Se desarrollará una aplicación de escritorio o PC (Personal Computer) para el reconocimiento de vehículos y las líneas de bordes, el lenguaje de programación utilizado será Python y la biblioteca OpenCV que contiene más de 500 funciones en el campo de visión por computador. La validación del reconocimiento de objetos se la realizará con una prueba de campo. Este resultado apoyará a la automoción (máquina que se desplaza por acción de un motor como el vehículo) con datos que luego pueden ser procesados.
Resumo:
En este proyecto se realiza el diseño y la implementación de un sistema que genera realidad aumentada, mediante la detección de vehículos que se encuentran en una trayectoria, y sirve de base para la conducción autónoma en vehículospara ambientes nocturnos ya que se ha observado mediante el estudio del arte que no existen aplicaciones de este tipo en dichas condiciones. La implementación de dicho sistema se realiza mediante una aplicación móvil en el sistema operativo de Android, que se apoya en sus librerías para el uso de sensores y la creación de menús, y las de OpenCV para el tratamiento de las imágenes. Además, se han realizado una serie de pruebas para demostrar la validez y la eficiencia de dicho algoritmo y se presenta al usuario mediante una aplicación de fácil manejo y uso en un dispositivo móvil. ABSTRACT. This project is about the design and implemantation of a system which generates augmented reality by detecting vehicles that stand along a followed trayectory, working out the basis for autonomus driving in night environments, because it was noticed that any other applications exist for this particular purpose, under the given circumstances. Implementation works through an Android mobile application, and learns over this operative system libraries in order to work with sensors, menu configurations, and OpenCV for image processing. A number of tests were run to prove the algorithm right and efficient; and it is introduced to the users via an easy-to-use app on a mobile device.
Resumo:
En este proyecto se realiza el diseño y la implementación de un sistema que genera realidad aumentada, mediante la detección de vehículos que se encuentran en una trayectoria, y sirve de base para la conducción autónoma en vehículospara ambientes nocturnos ya que se ha observado mediante el estudio del arte que no existen aplicaciones de este tipo en dichas condiciones. La implementación de dicho sistema se realiza mediante una aplicación móvil en el sistema operativo de Android, que se apoya en sus librerías para el uso de sensores y la creación de menús, y las de OpenCV para el tratamiento de las imágenes. Además, se han realizado una serie de pruebas para demostrar la validez y la eficiencia de dicho algoritmo y se presenta al usuario mediante una aplicación de fácil manejo y uso en un dispositivo móvil. ABSTRACT. This project is about the design and implemantation of a system which generates augmented reality by detecting vehicles that stand along a followed trayectory, working out the basis for autonomus driving in night environments, because it was noticed that any other applications exist for this particular purpose, under the given circumstances. Implementation works through an Android mobile application, and learns over this operative system libraries in order to work with sensors, menu configurations, and OpenCV for image processing. A number of tests were run to prove the algorithm right and efficient; and it is introduced to the users via an easy-to-use app on a mobile device.