2890 IEEE LATIN AMERICA TRANSACTIONS, VOL. 14, NO. 6, JUNE 2016 Image Descriptor Extraction Using Android Mobile Devices for a Video Search System F. Quintanilla, B. Bustos and J. Bustos 1 Abstract—The increasing amount of multimedia data makes it challenging to search for content, specially over an unlabeled database. Meanwhile, the proliferation of smartphones, which possess both video cameras and powerful processors, makes it possible to use these devices as part of a video search process. This paper presents a system for performing video searches using an Android mobile device, that records a video and extract one of three different kinds of global image descriptors, then it sends them to a server to perform a similarity search over a database. The precision of each kind of descriptor was measured. The efficiency of the system was compared with an analogous implementation which sends entire videos to the server and it was found to improve the system’s response time and data usage. Keywords—Content-based search, Video copy detection, Android. C de consulta midiendo la distancia entre sus descriptores, según alguna función de distancia apropiada. Se cuenta con soluciones existentes para realizar búsquedas por similitud en colecciones de videos. La herramienta usada en este trabajo se llama P-VCD [2, 3] y es capaz de extraer diversos tipos de descriptores de video y realizar búsquedas por similitud. B. Objetivos El objetivo de este trabajo es diseñar y probar un sistema de búsqueda de video con el cual un usuario puede grabar un video usando un dispositivo móvil, el dispositivo calcula y envía descriptores de imágenes a un servidor capaz de realizar búsqueda por similitud que identifique el video original y le comunique los resultados al cliente. I. INTRODUCCIÓN ada día crece la cantidad de contenido audiovisual disponible gracias en parte a la televisión y por otro lado a la proliferación de métodos de captura de video de bajo costo y de servicios de almacenamiento de video en internet. Sin embargo, gran parte de este contenido no está etiquetado, es decir, no presenta metadatos que faciliten su búsqueda. Para buscar videos en colecciones no etiquetadas se usa la búsqueda por similitud, que se basa en comparar (esto es, medir cuanto se parecen) dos videos. Para medir esta similitud se utilizan descriptores de video, que corresponden a vectores que representan características del contenido del video, y bajo los cuales las comparaciones están definidas por funciones de distancia. La masificación de los smartphones, o teléfonos inteligentes aporta al aumento de contenido no etiquetado, pero a la vez ofrece una solución para la búsqueda de videos. Estos dispositivos permiten grabar video fácilmente, y recientemente han aumentado su poder de cómputo haciendo posible realizar tareas de procesamiento complejo. A. El Problema El problema que se desea solucionar consiste en identificar la fuente de un segmento de video grabado con un celular basándose en su contenido para realizar una búsqueda por similitud. Para realizar la búsqueda por similitud primero se extraen descriptores [1] para cada video dentro de una colección y se almacenan. Luego se extraen los descriptores del video de consulta y se comparan con los extraídos previamente. Finalmente se pueden identificar los videos similares al video 1 B. Bustos, Departamento de Ciencias de la Computación Universidad de Chile, [email protected] J. Bustos Departamento de Ciencias de la Computación Universidad de Chile, [email protected] II. DISEÑO DEL SISTEMA Se diseñaron dos arquitecturas para el sistema, una que graba y envía archivos de videos completos a un servidor, luego el servidor realiza la extracción de descriptores y la búsqueda. En otra alternativa el dispositivo móvil realiza la extracción de descriptores y solo envía los descriptores al servidor. Luego el servidor realiza la búsqueda y le comunica los resultados al cliente. Se implementaron ambas versiones del sistema para poder medir el efecto en la eficiencia (tiempo de respuesta y uso de la red móvil) del sistema al extraer descriptores en el dispositivo móvil. El código de ambas versiones está disponible en repositorios git, uno para el cliente (1 https://github.com/fquintan/MovieDetector ) y otro para el servidor (https://github.com/fquintan/MovieDetectorServidor). A. Diseño centralizado Se le llama centralizada a la versión del sistema que envía videos completos al servidor puesto que todos los cálculos (extracción de descriptores y búsqueda) se realizan de forma centralizada en el servidor. La Figura 1 muestra un diagrama de la arquitectura del sistema. Figura 1. Diagrama de la versión centralizada del sistema. El celular graba un video y envía el archivo al servidor (1), el servidor extrae descriptores para el video recibido (2), y luego realiza la búsqueda (3). Finalmente se envían los resultados de vuelta al cliente. QUINTANILLA et al.: IMAGE DESCRIPTOR EXTRACTION 2891 Este sistema es simple de implementar pero presenta distintas falencias. Por un lado el enviar archivos de video completos al servidor requiere un uso excesivo de la red de datos del cliente. Por otro lado al realizar todos los cálculos en el servidor se corre el riesgo que se convierta en un cuello de botella que limite la escalabilidad del sistema. B. Diseño distribuido Para intentar mejorar las falencias expuestas del diseño anterior se propone la arquitectura ilustrada en la Figura 2, donde el dispositivo móvil se encarga de extraer los descriptores del video y el servidor solo se encarga de realizar la búsqueda. Se le llama distribuida a esta alternativa porque los cálculos necesarios para la búsqueda quedan distribuidos entre el cliente y el servidor. Figura 3. Ilustración del proceso de extracción del descriptor GHD. Descriptor de Distribución de Color (CLD): Figura 2. Diagrama de la versión distribuida del sistema. El celular extrae descriptores del video mientras lo graba (1). Envía solo los descriptores al servidor (2). El servidor realiza la búsqueda usando los descriptores calculados por el cliente (3) y envía los resultados de vuelta al cliente (4). Este descriptor representa la distribución de colores en la imagen [4]. La Figura 4 ilustra la extracción del descriptor. Primero se divide la imagen en secciones iguales, luego se calcula un valor de color promedio para cada sección. El descriptor final se forma concatenando los valores de rojo, verde y azul de cada sección. Al enviar solo los descriptores del video al servidor se reduce la cantidad de datos transferidos. Por otro lado el realizar la extracción de descriptores en el cliente alivia la carga de trabajo del servidor y hace mejor uso de los recursos computacionales del sistema completo. C. Descriptores Un descriptor es una forma de representar un video por sus características, como su distribución de colores, bordes, etc. Comúnmente se extraen descriptores correspondientes a frames equiespaciados del video. En este trabajo se implementaron tres tipos distintos de descriptores que representan distintas características del contenido del video. La implementación está restringida a dispositivos Android puesto que se hizo uso del framework Renderscript de Android, el cual permite hacer uso de los múltiples núcleos del procesador para realizar cálculos. Descriptor de histograma de grises por zona (GHD): Este descriptor representa la distribución espacial de luz en la imagen. La Figura 3 ilustra el proceso de extracción del descriptor GHD. Primero se convierte la imagen a escala de grises, luego se divide en secciones de igual tamaño y se calcula un histograma de grises para cada sección. Finalmente el descriptor corresponde a la concatenación de los histogramas de cada sección. Figura 4. Ilustración del proceso de extracción del descriptor CLD. Descriptor de histograma de bordes (EHD): Este descriptor representa la orientación de bordes presentes en la imagen [5]. Para extraer el descriptor primero se divide la imagen en secciones, luego cada sección se divide en bloques, a su vez cada bloque se divide en cuatro sub-bloques como muestra la Figura 5. Después de dividir la imagen se clasifica cada sub-bloque dependiendo del tipo de borde presente. Para esto se usan los 5 tipos de filtros mostrados en la Figura 6, cada uno asociado a un tipo de borde. Para cada bloque se calcula la energía de cada filtro, la energía corresponde a la sumatoria del producto de cada sub-bloque por su elemento correspondiente del filtro. Luego se selecciona el filtro de mayor energía y se clasifica el bloque con su borde correspondiente. Para cada sección de la imagen se crea un histograma con la cantidad de bloques clasificados con cada tipo de borde. El descriptor final corresponde a la concatenación de los histogramas de cada sección. 2892 IEEE LATIN AMERICA TRANSACTIONS, VOL. 14, NO. 6, JUNE 2016 descriptores aproximadamente un tercio menos tiempo que la versión centralizada. Figura 5. Ilustración del proceso de subdivisión de la imagen usado por el descriptor EHD. Figura 7. Tiempo promedio de respuesta de cada descriptor bajo ambas versiones del sistema. Figura 6. Tipos de borde usados por el descriptor EHD, cada uno con su filtro correspondiente. Al observar el detalle del tiempo usado por cada operación del servidor en la Figura 8 podemos apreciar la razón para la disminución del tiempo de respuesta. La extracción de descriptores del video de consulta toma justamente un tercio del tiempo del servidor, al eliminar esta operación se logra la reducción observada. En la misma Figura se puede apreciar la reducción en el tiempo utilizado transmitiendo datos del cliente al servidor. III. EVALUACIÓN EXPERIMENTAL A. Pruebas Realizadas Para realizar pruebas del sistema de recopiló una colección de videos correspondientes a películas de dominio público. Los videos fueron descargados de un canal de Youtube dedicado a recopilar y almacenar películas que han caído bajo el dominio público2. La colección recopilada consiste de 119 películas que corresponden a aproximadamente 110 horas de video. Se seleccionaron 10 videos aleatorios dentro de la colección y se realizaron 4 consultas para cada uno usando siempre la versión distribuida de la aplicación. Se repitió el proceso anterior variando la cantidad de videos en la base de datos para evaluar la precisión de los descriptores ante un aumento del tamaño de la base de datos. En cada consulta se midió la cantidad de respuestas correctas, la cantidad de datos enviados al servidor y el tiempo de respuesta del sistema, que está definido como el tiempo transcurrido entre que el cliente termina de enviar datos hasta que recibe la respuesta del servidor. Adicionalmente se repitieron las consultas usando la versión centralizada del sistema. Se midió nuevamente el tiempo de respuesta del sistema para comparar la eficiencia de ambos sistemas. B. Resultados La Figura 7 muestra los resultados de comparar el tiempo de respuesta promedio de cada versión del sistema usando cada descriptor. La versión distribuida cumplió su objetivo de disminuir el tiempo de respuesta, tomando para todos los 2 Ver: https://www.youtube.com/user/BestPDMovies Figura 8. Comparación de tiempo requerido por cada operación en ambas versiones del sistema. Con respecto al uso de la red de datos del cliente observamos en la tabla 1 que el uso disminuyó QUINTANILLA et al.: IMAGE DESCRIPTOR EXTRACTION 2893 significativamente al usar la versión distribuida del sistema. Mientras enviar el video completo utiliza más de 6 Megabytes, enviar solo los descriptores toma alrededor de 20 Kilobytes. Kilobytes enviados Centralizado Distribuido GHD Distribuido EHD Distribuido CLD 6389.64 22.69 11.98 19.60 Tabla 1. Resultados de cantidad de datos enviada al servidor por cada implementación del cliente. Finalmente al evaluar la precisión de cada descriptor, esto es, el porcentaje de resultados correctos, se obtuvieron los resultados de la Figura 9. Solo el descriptor CLD obtuvo resultados favorables mientras que la precisión de los otros 2 fue apenas mejor que el azar para tamaños pequeños de la base de datos y prácticamente nulos para la base de datos completa. transformación en distintas medidas, distorsionando cada vez más la imagen, al comparar la efectividad de los descriptores con estos videos se puede deducir su comportamiento ante la transformación. Finalmente, la reducción de tiempo de respuesta y de transmisión de datos lograda al extraer descriptores en el dispositivo revela una oportunidad interesante de hacer uso del poder de cómputo de dispositivos móviles para realizar cálculos que previamente estaban relegados al servidor, especialmente los que involucren procesamiento de imágenes. AGRADECIMIENTOS Este trabajo fue parcialmente financiado por el Núcleo Milenio Centro de Investigación de la Web Semántica, Grant N° NC120004 REFERENCIAS [1] [2] [3] [4] [5] Figura 9. Resultados de medir la precisión de cada descriptor al variar la cantidad de video en la base de datos. Estos resultados pueden explicarse al considerar la manera en que cada descriptor extrae características de la imagen. Mientras que los descriptores GHD y EHD dividen la imagen y realizan un proceso de conteo de ciertas características, CLD funciona calculando un promedio de las características sobre cada sección de la imagen. Si al grabar el video el usuario no logra encuadrar correctamente la pantalla se grabarán características que no estaban presentes en el video original, como por ejemplo el marco de la pantalla. Mientras que en los descriptores basados en histogramas este error puede resultar en un cambio drástico del descriptor final, en CLD el error se suaviza al calcular el promedio sobre cada sección, resultando menos afectado. IV. TRABAJO FUTURO El sistema implementado es capaz de extraer descriptores de video usando un dispositivo móvil Android y de enviarlos a un servidor, que utiliza los descriptores para realizar una búsqueda por similitud en una base de datos de videos. Solo uno de los tres descriptores probados presentó resultados favorables en términos de su precisión. Se presentaron hipótesis de las razones de este desempeño pero es necesario validarlas realizando más pruebas del sistema. Para probar si la ventaja del descriptor CLD es causada por una mayor tolerancia a la transformación ocasionada por la grabación se pueden generar videos donde se simule la Y. Aslandogan and C. Yu. Techniques and systems for image and video retrieval. Knowledge and Data Engineering, IEEE Transactions on, 11(1):56–63, Jan/Feb 1999. Juan Manuel Barrios and Benjamin Bustos. P-vcd: a pivot-based approach for content-based video copy detection. In Proc. IEEE International Conference on Multimedia and Expo (ICME’11), 2011. Juan Manuel Barrios, Benjamin Bustos, and Xavier Anguera. Combining features at search time: Prisma at video copy detection task. In Proc. TRECVID 2011, 2011. E. Kasutani , The MPEG-7 Color Layout Descriptor: A Compact Image Description for High-Speed Image/Video Segment Retrieval. In Proc. of I CI P20D 1 , vol. 1 , pp.74 -677 B. S. Manjunath, J. R. Ohm, V. V. Vasudevan, and A. Yamada. Color and texture descriptors. IEEE Trans. Cir. and Sys. for Video Technol., 11(6):703–715, June 2001. Felipe Quintanilla, Estudiante de Ingeniería en Computación de la Universidad de Chile. Actualmente realizando su memoria de Ingeniería en NIC Chile Research Labs. Sus áreas de interés incluyen procesamiento de imágenes y búsqueda multimedia. Su correo de contacto es [email protected]. Benjamín Bustos es Profesor Asociado del Departamento de Ciencias de la Computación de la Universidad de Chile. Participa como Investigador Joven del Núcleo Milenio, Centro de Investigación de la Web Semántica, y es director del grupo de investigación PRISMA. Sus intereses de investigación se centran en las áreas de búsqueda por similitud, recuperación de información multimedia basada en contenido, y matching de modelos 3D. Obtuvo el grado de Doctor en Ciencias Naturales de la Universität Konstanz, Alemania (2006). Su correo de contacto es [email protected]. Dr. Javier Bustos-Jimenez es actualmente Director Ejecutivo de NIC Chile Research Labs, Universidad de Chile, donde lidera un equipo de alrededor de 20 ingenieros y M.Sc. en la producción de investigación de alto nivel en telecomunicaciones. Desde el 2001 es profesor de la Universidad de Chile. Actualmente enseña el curso de Sistemas Distribuidos. Es Doctor en informática de la Escuela Doctoral STIC, Universidad de Niza Sophia-Antípolis, Francia (2006), ingeniero (2000), M.Sc.(2002) y Phd en Ciencias de la Computación (2006) de la Universidad de Chile. Su correo de contacto es [email protected].