Extraction Of Representative Frames Of Digital Video Based On
Transcripción
Extraction Of Representative Frames Of Digital Video Based On
Extraction Of Representative Frames Of Digital Video Based On Quadtree Partition J. Y. Montiel, J. C. Torres and S. de la O Abstract— In this paper the results of the implementation of an algorithm are reported to extract representative frames of a digital video. The algorithm is based on the partition of video segments as in quadtree partition dimensional space. Discarded frames are compared and the like. A comparison based on PSRN and a recursive process is used. proceso existen múltiples algoritmos y técnicas [9] [10], y entre los recursos de software libre está el proyecto y librería FFmpeg con el cual se pueden extraer los frames representativos de un video [11] y varios software comerciales se basan en este [12]. Keywords— processing, representative frames, quadtree partition, video processing, video summarization. A. Generalidades de los algoritmos de extracción Se considera que una imagen digital I(x,y) en un espacio discreto de dos dimensiones es derivado de una imagen analógica I[M,N] en un espacio continuo de dos dimensiones a través de un proceso de muestreo. En este proceso se divide la imagen en MxN secciones, y cada sección es un pixel que se identifica por su posición (x,y) en la imagen digital y en tal posición existe la información de ese elemento de imagen (profundidad, color, etc). L I. INTRODUCCIÓN A CLASIFICACIÓN y generación de bases de datos de contenidos multimedia es una tarea compleja debido a la gran cantidad de información que se necesita clasificar y ordenar. Los contenidos multimedia principalmente son imágenes, audio y video. Tanto en bases de datos gubernamentales como en internet, la clasificación e indización es un problema que falta por resolver. Existen propuestas de solución, como búsquedas por contenido y técnicas que se utilizan en la búsqueda en la web, entre otras [1]. Para la catalogación e indexado de video digital se debe de analizar y añadir etiquetas que lo describan. Con esto, en las búsquedas se obtendrán resultados más acertados. Por ejemplo, si un video contiene el reportaje de una ciudad, sus etiquetas deberían ser: edificios, automóviles, personas, señales de tránsito, etc. [2]. En general los pasos para catalogar de manera automática un video digital son: (1) tener el video digital en un formato estándar, (2) identificar los frames o segmentos de video representativos del contenido del video [1] [2] [3] [4], (3) analizar los frames o segmentos de video buscando los descriptores para etiquetar [5] [6] [7], (4) generar la base de datos con las etiquetas [8] y (5) emplear algoritmos de búsqueda en consulta de la base de datos [8]. El presente trabajo está dedicado a la extracción de frames representativos de un video. Esta etapa en la catalogación es de suma importancia debido a que estos frames son los que pueden ser analizados con un procesamiento de imagen para encontrar descriptores que se asocien etiquetas. Entonces, entre mejor sea la extracción de los frames, mejor será la descripción que se tendrá del contenido del video. _________________________ J. Y. Montiel, Escuela Superior de Cómputo del Instituto Politécnico Nacional, Ciudad de México, México, [email protected]. J. C. Torres, Escuela Superior de Cómputo del Instituto Politécnico Nacional, Ciudad de México, México, [email protected]. S. de la O, Escuela Superior de Cómputo del Instituto Politécnico Nacional, Ciudad de México, México, [email protected]. El caso extremo es analizar todos los frames del video, pero esto se verá reflejado en el tiempo de análisis. Para realizar este II. MÉTODO Con base en lo anterior, un video se define como el conjunto de imágenes secuenciales en el tiempo V(I)={I(x,y,t1),I(x,y,t2 ),…I(x,y,tm)} (1) donde t es el tiempo en que aparece la imagen en la secuencia. En video con formato estándar se presentan 30 imágenes por segundo para que el ojo humano perciba movimiento en el contenido de la secuencia de imágenes. Las imágenes que componen a un video se les conoce como frames. Para un video con compresión, por ejemplo con formato mp4, si el video tiene una duración de tiempo T, el video se puede dividir en n intervalos de tiempo, siendo estos los frames claves del video, Figura 1. Figura 1. Video de tiempo T segmentado en n partes. Si el primer frame se analiza y compara con el segundo, luego el primero con el tercero y así hasta compararlo con todos los demás. Los frames similares se consideran que son escenas semejantes y se eliminan. Entonces el segundo frame se compara con el tercero y así sucesivamente hasta tener la comparación de todos los frames del video, de igual manera los frames similares se eliminan. Lo mismo se hace con el tercer, cuarto hasta el frame n. El número de análisis y comparaciones se estima por una combinación que se representa por la ecuación (2) [13] n n! C = k k!( n− k )! (2) donde, C es una combinación y en este caso representa el número de comparaciones que se hacen entre los frames del video, n es el número de segmentos del video y k es el número de frames en el conjunto de comparaciones en este caso es 2. El peor de los casos es cuando todos los frames de los segmentos sean diferentes, es decir, cada frame representa una escena distinta en el video. ் La razón de partición de los segmentos del video es de . Este proceso descrito es el utilizado en la librería FFmpeg y es la referencia que se utiliza para comparar con el algoritmo que se propone en el presente trabajo. Análisis(SecuenciaVideo_ps) SI ps < 2%T GUARDAR FrameCentral de SecuenciaVideo_ps TERMINAR Dividir SecuenciaVideo ps/2 SecuenciaVideo_p1 --> FrameCentral_p1 SecuenciaVideo_p2 --> FrameCentral_p2 SI FrameCentral_p1 ≈ FrameCentral_p2 GUARDAR FrameCentral_p1 Análisis(SecuenciaVideo_p1) Análisis(SecuenciaVideo_p2) Terminar ் La razón de partición de los segmentos del video es de ଶ como se muestra en la Figura 3. Los algoritmos de comparación y detección de cambios de escenas son diversas y relativamente complejas. Por lo que ese número de operaciones de comparación se debe de multiplicar por el tiempo en que se hace la operación. B. Propuesta de algoritmo de extracción de frames representativos En el presente trabajo se propone hacer una partición de segmentos de video basada en particiones de espacio unidimensional quadtree [14] [15]. Consiste en que se tiene un video con duración de tiempo T. Este es dividido a la mitad, Figura 2 (a) partición p0, obteniendo dos segmentos de video de tiempo T/2 cada uno, Figura 2 (b). Cada segmento se vuelve a dividir en dos y el frame central, Figura 2 (b) particiones p1 y p2, estas particiones son comparadas con una relación señal a ruido pico, PSRN [16]. Si los frames son semejantes, el segundo segmento se elimina del análisis. Si los frames no son semejantes son marcados como el punto de segmentación para producir ahora cuatro segmentos de video, Figura 2 (c). Cada segmento se divide en dos y los cuatro frames centrales se vuelven a comparar, y se realiza el mismo procedimiento. Figura 3. Partición de los segmentos de video. Cabe mencionar que las particiones que se hacen a los segmentos de video no es exactamente a la mitad; sino que la partición p está alrededor de la mitad en un intervalo aleatorio del 2% al 10% del tiempo total T del video, Figura 4. Este mismo intervalo es utilizado en las comparaciones entre frames. Figura 4. Partición de los segmentos de video en un intervalo que depende de T. El proceso de partición y de análisis tienen una forma jerárquica y semejante a un árbol binario. El software creado utiliza esta característica e inherentemente se tiene el uso de la recursividad en el proceso. Figura 2. Segmentación de video basado en particiones de espacio unidimensional quadtree. El algoritmo se muestra a continuación. El proceso es recursivo y se toma en cuenta que el tiempo mínimo entre frames a analizar es del 2% del tiempo T total del video. Con base en las condiciones descritas, la ecuación (3) para un video de tiempo T, en el peor de los casos se contruye un árbol binario completo de 6 niveles. Esto quiere decir, que como máximo se analizan 63 frames independientemente de la duración del video. respectivo programa tiene como entrada un video con formato mp4 y como salida un conjunto de imágenes en formato ppm. T > 0.02T 2 n−1 (3) Esta relación se refiere a que las particiones del video serán como máximo del 2% de la duración T del video. Las comparaciones entre frames se realiza con el PSRN que se expresa en (4) MAX I2 PSNR = 10 ⋅ log10 MSE (4) donde MAX es el máximo valor que puede tener un pixel en la imagen o frame con una representación de B bits. Para este trabajo B=8 bits. MSE = 1 M −1 N−1 I ( i, j ) − K ( i, j ) MN i=0 j =0 2 (5) Con un error cuadrático medio para dos imágenes I y K; de tamaño MxN. En este trabajo se utilizan imágenes RGB por lo que se usa el promedio aritmético del MSE. Se define por medio de observación que dos frames son similares si se tiene un PSRN mayor que 16. El decir que dos frames son similares significa que sus contenidos y las escenas del video son semejantes y una de ellas se toma como un frame representativo. La librería FFmpeg para extraer frames de un video es de tipo combinatorio como se describió en la sección de generalidades y con la ecuación (1). Las pruebas se distribuyeron en varias etapas: a) prueba general con una colección de 17 videos de diferente duración, b) prueba con videos de corta duración. El algoritmo fue programado en lenguaje C. Por otro lado, la librería de referencia FFmpeg fue utilizada desde un programa en lenguaje C. Las pruebas se realizaron en una computadora MacBookpro con procesador Intel core i7, 2.2 GHz con 16 Gb de memoria RAM y con sistema operativo OS X 10.9.4. Durante las pruebas únicamente se tuvo en ejecución el programa del algoritmo o el de la librería. A. Prueba general Con una colección de 17 videos con formato mp4 y dimensiones de 480x360, con tiempos de duración de 64 s, 95 s, 162 s, ..., 5004 s y 5564 s. Los videos son a color, excepto uno que es en formato blanco y negro y de baja calidad de imagen. Para el video 1.mp4 con duración de 64 s, se obtienen 7 frames representativos y se muestran en la Figura 5. De manera similar se obtienen resultados para los demás videos. En la Figura 6 se muestra el total de los frames representativos por cada video analizado. Cabe mencionar que el máximo número de frames para analizar con el algoritmo propuesto es de 63 más los frames menores del 2% T que se obtengan por partición, veáse el algoritmo. Figura 6. Número de frames que se analizan con el algoritmo propuesto y con la librería de FFmpeg. Figura 5. Conjunto de frames representativos del video 1.mp4 de 64 s. III. PRUEBAS Para las pruebas se utilizó el algoritmo que se presenta en este trabajo y como referencia el algoritmo de extracción de frames contenido en la librería FFmpeg. En ambos casos, su Conforme el video tiene mayor duración, como lo es para el video 15, 16 y 17, mayor es la cantidad de frames que analiza el algoritmo de la librería de FFmpeg. Ambos algoritmos extraen los frames representativos. Se considera la efectividad de extracción como la razón del número de frames representativos y el total de frames analizados, se tiene como resultado la gráfica de la Figura 7. Con respecto a los frames totales que se analizan, el algoritmo de FFmpeg desecha más frames que el algoritmo propuesto y por tanto disminuye su efectividad. En la Figura 8 se muestra el tiempo de procesamiento para los 17 videos ya mencionados. El máximo tiempo de procesamiento del algoritmo propuesto es de 2 segundos en las pruebas. B. Pruebas con videos de corta duración Se consideran como videos de corta duración a videos de En la Figura 9 se muestran los tiempos en que se extrajeron los frames representativos para 5 videos diferentes. Los tiempos marcados para cada video y la cantidad de frames extraídos dependen del contenido de las imágenes que conforman al video. Con estos videos se realizó una prueba de estabilidad o repetitividad de resultados. Esta prueba consiste en que un solo video es tratado por el software varias veces y se comparan resultados en cuestión del número de frames extraídos y su localización temporal en el video. Efectividad de extracción de frames 100.00% 90.00% 80.00% Para cada ejecución del software con el mismo video se obtienen conjuntos de frames diferentes, pero que subjetivamente son representativos del video. Los resultados de esta prueba con un video de 623 segundos se muestran en la Figura 10. 70.00% Efectividad variados; como naturaleza, bosque, animales, ciudades, zonas arqueológicas y reportajes informativos. 60.00% 50.00% 40.00% 30.00% 20.00% Algoritmo 10.00% FFmpeg 0.00% 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Video Figura 7. Efectividad de la extracción de frames para los 17 videos de prueba para el algoritmo propuesto y la librería de FFmpeg. entre 5 a 6 minutos. Se probaron 10 videos con contenidos Tiempo de procesamiento 128 algoritmo 64 FFmpeg 32 Figura 10. Frames señalados con respecto al tiempo que fueron extraídos de un video para varias ejecuciones del algoritmo propuesto. Tiempo, s 16 8 Para el caso del algoritmo contenido en la libería FFmpeg y con el mismo video de la Figura 10, se obtiene el máximo de frames que se pueden analizar en el video. Con intervalos uniformes de tiempo entre frame y frame que tienen caracteristicas generales no necesariamente representativas del video, Figura 11. 4 2 1 0.5 0.25 0.125 0.0625 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Video Figura 8. Tiempo de procesamiento para los 17 videos de prueba para el algoritmo propuesto y la librería de FFmpeg. Figura 11. Frames extraídos del video con la librería FFmpeg. También se realizaron pruebas semejantes a las reportadas en la sección anterior de porcentaje de efectividad y de tiempo de procesamiento. Se obtuvieron resultados similares a los reportados. Figura 9. Frames extraídos de 5 videos diferentes de corta duración. En la Figura 12 se observa que en diez ejecuciones del algoritmo propuesto se tienen cantidades diferentes de frames que se utilizan en el análisis. Cabe destacar que en ninguna se superan los 63 frames que teóricamente se estiman como máximo. Las pruebas son con el mismo video y como se infiere por los resultados mostrados en la Figura 10, los frames analizados probablemente sean diferentes entre ejecución y ejecución del algoritmo. Como medio de comparación el mismo video es procesado con el algoritmo de la librería FFmpeg y en todas se utiliza el mismo número de frames. utiliza la librería FFmpeg, pero para trabajo futuro se hará un análisis de si efectivamente los frames extraídos son los representativos del video. Por lo pronto, el algoritmo propuesto cumple con el requisito mencionado en la sección de la introducción donde se enfátiza que el proceso de extracción de frames debe ser rápido. AGRADECIMIENTOS Figura 12. Número de frames que se analizan con el algoritmo propuesto y con la librería de FFmpeg para un video de corta duración en 10 ejecuciones del algoritmo. Al realizar las pruebas con varias ejecuciones de análisis con el video, se registraron los tiempos de procesamiento que se muestran en la Figura 13. El algoritmo del FFmpeg para cualquier ejecución tiene un tiempo de procesamiento similar, mientras que para el algoritmo propuesto el tiempo es proporcional al número de frames utilizados en el procesamiento y es menor que el de FFmpeg. Figura 13. Tiempo de análisis de un video con el algoritmo propuesto y con la librería de FFmpeg en 10 ejecuciones. Tanto para videos de corta o mayor duración, 5400 segundos, se obtienen resultados similares con ambos algoritmos. IV. CONCLUSIONES El resultado del análisis es un conjunto de imagénes o frames del video, que conforman la información general del contenido del video y con lo cual se puede tener una representación general. Esto debido a que la restricción de la unidad mínima de análisis es del 2% del tiempo de duración del video. Las escenas menores a esta longitud de tiempo es probable que no sea las que describan de manera general al contenido de todo el video. Las pruebas del algoritmo tiene como máximo un tiempo de procesamiento de 2 segundos y en general tiempos menores de 1 segundo. Las pruebas de repetitividad con varias ejecuciones del programa se obtienen resultados diferentes en cuestión de la localización temporal de los frames, pero mantienen la representatividad del contenido del video. En el caso del algoritmo del FFmpeg los frames que se extraen para cualquier video son en intervalos regulares y su número depende de la longitud de tiempo del video. Con base en las gráficas incluidas en este trabajo se observa que el algoritmo propuesto es más rápido y eficiente que el que El presente trabajo se realizó bajo el financiamiento del Instituto Politécnico Nacional con el proyecto de investigación de registro 20141167 y del proyecto bilateral 2011 de ANR-CONACYT 158781 Mex-Culture. REFERENCIAS [1] Markaki, O.I.; Charilas, D.E., "Personalization Mechanisms for Content Indexing, Search, Retrieval and Presentation in a Multimedia Search Engine," Systems, Signals and Image Processing, 2009. IWSSIP 2009. 16th International Conference on , vol., no., pp.1,6, 18-20 June 2009. [2] Shavitt, Y.; Weinsberg, E.; Weinsberg, U., "Applying clustering algorithms on Peer-to-Peer networks for content searching and recommendation," Electrical and Electronics Engineers in Israel (IEEEI), 2010 IEEE 26th Convention of , vol., no., pp.000244,000248, 17-20 Nov. 2010. [3] Kanade, S.S.; Patil, P.M., "Representative Frame Decoration using unsharp filter in video summarization," Communications and Signal Processing (ICCSP), 2011 International Conference on , vol., no., pp.570,573, 10-12 Feb. 2011. [4] Xinding Sun; Kankanhalli, M.S.; Yongwei Zhu; Jiankang Wu, "Content-based representative frame extraction for digital video," Multimedia Computing and Systems, 1998. Proceedings. IEEE International Conference on , vol., no., pp.190,193, 28 Jun-1 Jul 1998. [5] Shiyang Lu; Zhiyong Wang; Yuan Song; Tao Mei; Feng, D.D., "A bag-of-importance model for video summarization," Multimedia and Expo Workshops (ICMEW), 2013 IEEE International Conference on , vol., no., pp.1,6, 15-19 July 2013. [6] Genliang Guan; Zhiyong Wang; Kaimin Yu; Shaohui Mei; Mingyi He; Dagan Feng, "Video Summarization with Global and Local Features," Multimedia and Expo Workshops (ICMEW), 2012 IEEE International Conference on , vol., no., pp.570,575, 9-13 July 2012. [7] Ferman, A.M.; Tekalp, A.M.; Mehrotra, R., "Robust color histogram descriptors for video segment retrieval and identification," Image Processing, IEEE Transactions on , vol.11, no.5, pp.497,508, May 2002. [8] Sangkeun Lee; Hayes, M.H., "A fast clustering algorithm for video abstraction," Image Processing, 2003. ICIP 2003. Proceedings. 2003 International Conference on , vol.2, no., pp.II,563-6 vol.3, 14-17 Sept. 2003. [9] Mohanta, P.P.; Saha, S.K.; Chanda, B., "Detection of representative frames of a shot using multivariate Wald-Wolfowitz test," Pattern Recognition, 2008. ICPR 2008. 19th International Conference on , vol., no., pp.1,4, 8-11 Dec. 2008. [10] Genliang Guan; Zhiyong Wang; Kaimin Yu; Shaohui Mei; Mingyi He; Dagan Feng, "Video Summarization with Global and Local Features," Multimedia and Expo Workshops (ICMEW), 2012 IEEE International Conference on , vol., no., pp.570,575, 9-13 July 2012. [11] FFmpeg, http://www.ffmpeg.org, on line, consultado 10 de febrero 2014. [12] Chergui, A.; Bekkhoucha, A.; Sabbar, W., "Video scene segmentation using the shot transition detection by local characterization of the points of interest," Sciences of Electronics, Technologies of Information and Telecommunications (SETIT), 2012 6th International Conference on , vol., no., pp.404,411, 21-24 March 2012. [13] García Sipols, Ana, “Manual de estadística”, Editorial Dykinson S. L., 2008. [14] Oudin, S.; Helle, P.; Stegemann, J.; Bartnik, C.; Bross, B.; Marpe, D.; Schwarz, H.; Wiegand, T., "Block merging for quadtree-based video coding," Multimedia and Expo (ICME), 2011 IEEE International Conference on , vol., no., pp.1,6, 11-15 July 2011. [15] Bai Jian-jun; Zhao Xue-sheng, "Quadtree-based indexing of hierarchical diamond subdivisions of the global," Geoscience and Remote Sensing Symposium, 2004. IGARSS '04. Proceedings. 2004 IEEE International , vol.5, no., pp.2878,2881 vol.5, 20-24 Sept. 2004. [16] Rani, B.; Bansal, R.K.; Bansal, S., "Comparison of JPEG and SPIHT image compression algorithms using objective quality measures," Multimedia, Signal Processing and Communication Technologies, 2009. IMPACT '09. International , vol., no., pp.90,93, 14-16 March 2009. [17] Shinhaeng Lee; Omachi, S.; Aso, H., "A parallel architecture for quadtree-based fractal image coding," Parallel Processing, 2000. Proceedings. 2000 International Conference on , vol., no., pp.15,22, 2000. [18] Helle, P.; Oudin, S.; Bross, B.; Marpe, D.; Bici, M.O.; Ugur, K.; Jung, J.; Clare, G.; Wiegand, T., "Block Merging for Quadtree-Based Partitioning in HEVC," Circuits and Systems for Video Technology, IEEE Transactions on , vol.22, no.12, pp.1720,1731, Dec. 2012. Jesús Yaljá Montiel Pérez received his Doctoral degree and Master in Science degree from the Escuela Superior de Ingeniería Mecánica, y Eléctrica of Instituto Politécnico Nacional, Engineering degree by Universidad Autónoma Metropolitana in México. His current research interests are artificial intelligence and image processing. Juan Carlos Torres Patiño is student in computer systems engineerings by the Escuela Superior de Cómputo of Instituto Politécnico Nacional. As part of their academic activities has been a fellow in research projects. His current research interests are artificial intelligence and image processing. Saúl de la O Torres received his Master in Science degree and Engineering degree from the Escuela Superior de Ingeniería Mecánica, y Eléctrica of Instituto Politécnico Nacional. His current research interest includes artificial intelligence and image processing.