[en] The advent of mobile devices has changed the way we communicate and obtain infomation. Nevertheless, finding information about something with an unknown or strange name can result tiresome, especially if the search needs to be repeated several times. This issue can be solved including external codes, recognizable from a smartphone's camera, in the objects to be identified; even though this solution breaks the aesthetics of the creation and is difficult to apply to antique elements (such as ancient paintings or printed books). An alternative solution would be to be able to extract information simply by taking a picture, which has a lot of potential and is starting to be exploited with the creation of some image-recognition apps already present in the market, such as Google Goggles (1). In the present work, two different image-recognition techniques that use OpenCV have been tested, firstly in a computer and subsequently implemented in an Android app. One of these is based on the Bag Of Words (BOW) (2) technique. It consists of extracting common features from the pictures in a data base, from which visual keywords are created. Thus, every image in the data base can be classified using some of the keywords in this vocabulary. Extracting the keywords from the image to recognize, it can be classified by searching the most similar one in the data. The other method implemented in this work is based on extracting a string through which the image is completely described (3). This string is generated recursively splitting the image in halves and comparing the amount of gray in each half: If the first is darker than the second, a 0 is inserted into the string, while a 1 is inserted otherwise. The string for each of the images in a data base is then stored in order to be compared later with that of a problem picture. The image with the most similar string is chosen as the most similar to the input one. According to the testing carried out in this work, the second strategy classifies input images better and faster than the former method, and therefore it is the latter that has been implemented in the mobile-device app. In the device, a homography process (4) is applied on top of the classifying process, which confirms the similarity between the input and found images using ORB keypoints and descriptors (5). In order to carry out the testing and for the example app, "Magic: The Gathering" Trading Card Game cards and a book cover database have been used, even though the system is designed to work with any set of bidimensional images.

[es] El uso de los dispositivos móviles ha cambiado la forma en que nos comunicamos y conseguimos información. Sin embargo, tener que hacer una búsqueda en Internet de algo con nombre desconocido o extraño, resulta tedioso para el usuario, especialmente si tiene que repetir el proceso varias veces. El problema se puede solucionar incluyendo en los objetos códigos externos que sean posibles de reconocer con la cámara de un smartphone, pero esto rompe con estética del objeto o creación y resulta difícil de añadir a elementos ya existentes (como cuadros o libros ya publicados). Poder extraer información a partir de una fotografía es algo que tiene mucho potencial y actualmente ya existen algunas aplicaciones en el mercado que usan estas técnicas de reconocimiento imágenes como Google Goggles (1). En el presente trabajo, se han probado dos técnicas diferentes de reconocimiento de imágenes, usando OpenCV, primero en un ordenador y a continuación implementadas en una aplicación para Android. Una de ellas está basada en las bolsas de palabras (BOW) (2). Con ella se extraen características comunes a un conjunto de imágenes que componen una base de datos y se crean palabras visuales con ellas. De esta manera, cada imagen de la base de datos queda clasificada con ciertas palabras de este vocabulario. Extrayendo estas palabras de la imagen que se quiere reconocer, se puede conseguir la más parecida y clasificarla de ese modo. El otro método implementado se basa en extraer una cadena que sea la que describa la imagen completamente (3). Esta cadena es generada partiendo recursivamente una imagen en dos mitades y comparando el nivel de gris de cada mitad, si la primera mitad es más oscura que la segunda se inserta un 0 en la cadena y un 1 si ocurre lo contrario. La cadena de cada imagen de la base de datos es almacenada para luego ser comparada con la cadena extraída de la imagen que se quiere reconocer. La imagen con la cadena más parecida es la más similar a la imagen de entrada. Las pruebas desarrolladas muestran que esta segunda estrategia clasifica mejor y más rápido las imágenes de entrada, por lo que es la llevada a la aplicación para dispositivos móviles. En el dispositivo también se lleva a cabo un proceso de homografía (4), que mediante puntos y descriptores ORB (5), puede confirmar la similitud de la fotografía de entrada con la de la base de datos. Para las pruebas y como aplicación de ejemplo, se ha utilizado una base de datos de cartas del juego "Magic: The Gathering" y con otra de portadas de libros, pero el sistema puede funcionar con cualquier otra biblioteca de imágenes bidimensionales.