TICAL2018
TICAL2018
TICAL2018
1 Introducción
Para la extracción de etiquetas que clasifican a cada archivo mutimedia se debe cumplir
las siguientes características.
La extracción de etiquetas es un procedimiento automático que no requiere
intervención del productor de contenido.
Se debe implementar técnicas de procesamiento de señales de audio y video
que permitan trabajar con algunos tipos de multimedia. Por ejemplo, OCR en
texto, ASR en audio, CNN sobre imágenes, etc.
En conjunto las etiquetas extraídas deben describir un video de forma
específica y diferenciarlo de otros videos, por ello se debe combinar etiquetas
que provengan tanto de audio y video.
La extracción de etiquetas debe ser un proceso asíncrono a la transmisión,
permitiendo que el pre-procesamiento de cada archivo multimedia no dependa
de cómo se difunde el contenido.
1
Se entiende por hiperenlace a un enlace electrónico que hace referencia a un recurso web
externo.
2.4 Búsqueda de Información
Este módulo tiene como meta difundir contenido de interés hacia la comunidad
universitaria. Los componentes principales que forman parte de este módulo son la
producción y la difusión de video.
3.1 Producción
Este componente que permite la producción de contenido audiovisual, no requiere
mayor desarrollo en un Instituto de Educación Superior (IES), ya que se viene
ejecutando en la mayoría de universidades por muchos años. En el caso concreto de la
Universidad de Cuenca este proceso tiene como responsable a la Unidad de Relaciones
Públicas y Comunicación. Esta unidad es la encargada de difundir información
relevante sobre la Universidad y cada día produce videos de alta calidad relacionada a
temas relevantes desarrollados en el ambiente universitario. Otro ente que tiene un
amplio repertorio en la generación de contenido audiovisual es la carrera de cine y
audiovisuales. Como parte de sus actividades académicas, los estudiantes de la carrera
producen audios y videos que suelen ser transmitidos por los canales de comunicación
que tiene la Universidad.
Adicionalmente están las facultades y los departamentos; actualmente estas unidades
han empezado a difundir videos sobre sus actividades diarias. Si bien dicho material
audiovisual no está dirigido a toda la comunidad universitaria, éstos son de gran
importancia para el público específico al cual van dirigidos. Por ejemplo, el
Departamento de Investigación de la Universidad de Cuenca (DIUC) está haciendo
importantes esfuerzos para producir entrevistas a sus investigadores y ofrecer reportajes
sobre los resultados de investigación obtenidos a través de los proyectos. Este
contenido puede llegar a otros investigadores que trabajan en temas similares o a
estudiantes que desean desarrollar su trabajo de fin de carrera en dicho proyecto,
ampliando así la participación en los temas de investigación compartidos.
3.2 Difusión
Para difundir todo el material audiovisual generado, este componente hace uso de las
redes interconectadas con las que todas las IES cuentan. En la Universidad de Cuenca,
el primer medio de difusión que fue instalado es un noticiero digital [8]. La plataforma
del noticiero digital consta de un servidor y varios monitores desplegados en las
diferentes unidades académicas de sus campus. El servidor almacena noticias de interés
para la comunidad universitaria y los monitores cuentan con un dispositivo cliente que
despliegan las noticias almacenadas en el servidor. En proyectos recientes la
universidad ha intentado dar mayor uso a estos dispositivos para ello también se ha
adquirido un servidor de videoIP que permite ampliar el alcance de las noticias,
visualizando contenido no solo en la red de monitores sino también a través de la página
Web de la universidad. Este servicio es un complemento a las tareas del noticiero digital
y en gran parte es utilizado para la transmisión de eventos en vivo por parte de los
departamentos y facultades de la universidad. Además se cuenta con una radio
universitaria donde los estudiantes tienen la participación principal. Otros medios de
difusión ya ampliamente utilizados son las redes sociales, donde se difunde gran
cantidad de contenido multimedia y dado su alcance se ha mantenido como el principal
medio de comunicación en la universidad.
Este componente tiene como función principal obtener los caracteres que son parte de
un video. Para ello, el componente trata de buscar palabras y oraciones presentes en
cada frame del video. En primer lugar, es necesario dividir el video en fragmentos más
pequeños. Por esta razón, considerando que un video está compuesto de una secuencia
de frames, la división lógica vendrá dada por shots. Un shot es el nombre que recibe un
conjunto de frames contiguos muy similares. La importancia de esta división se
fundamenta en la reducción del costo computacional debido a que, al tratarse de frames
muy similares no es necesario ejecutar el mismo proceso para cada uno de los frames,
basta con una muestra de un frame por shot para obtener las palabras claves de todos
los frames contiguos.
Fig. 2. Proceso de extracción de etiquetas mediante OCR.
Por otro lado, el contar con palabras claves exclusivas de cada sección del video
permitiría obtener información detallada de videos muy grandes que posean escenas de
diferente índole, como por ejemplo un noticiero completo. Para determinar la división
de los shots se utiliza el framework descrito en [1]. Donde frames contiguos
representados por un hash con una pequeña variación en distancia de hamming
suponen pertenecer a un mismo shot; este concepto será aclarado en la sección de
Perceptual Image Hashing.
Para la implementación de este algoritmo se puede utilizar la librería OpenCV en
Python. Primero se necesita implementar un preprocesamiento a las imágenes que
incluyen “thresholding”, “gradient magnitude” y operaciones morfológicas. Esto ayuda
a extraer los contornos donde se identifican los textos a ser transcritos por OCR.
Posterior a esto se puede utilizar la librería “PIL” de Python que mediante la función
“image_to_string” nos devuelve los caracteres presentes en cada contorno extraído de
la imagen.
Este procedimiento se ilustra en la fig. 2., en la imagen de la izquierda superior se
ve un frame de un video, correspondiente al saludo del señor rector a los nuevos
estudiantes. La imagen superior derecha muestra el procedimiento de “thresholding” y
la imagen inferior izquierda el proceso de extracción morfológica. Finalmente, la
imagen inferior derecha muestra como de este frame se ha podido extraer el nombre
del rector, así el sistema sabe que el video trata sobre el rector de la universidad.
Con este componente se pretende analizar cada video subido a la plataforma para así
detectar objetos importantes que lo caractericen. Una CNN puede ayudar a detectar
objetos pre-entrenados y clasificar cada frame del video según la aparición de los
objetos. Las CNN pertenecen a un conjunto de técnicas recientemente difundidas
denominadas aprendizaje profundo. Dentro del reconocimiento de imágenes su función
principal es dividir la imagen en un conjunto de características y comprobar si un objeto
cumple dichas características para clasificarlo.
Fig. 3. Arquitectura de la red neuronal AlexNet [10].
Mucho del contenido difundido no solo tiene que ver con imágenes sino también con
audio. El componente de transformación de audio a texto analiza los diálogos presentes
en un video y extrae de estos las palabras clave que clasifican al video. La fig 4 muestra
su implementación a través de dos algoritmos como se menciona en [7].
Este módulo permite a la plataforma extender la información sobre las etiquetas de cada
video. La estrategia para su implementación fue desarrollar un algoritmo de
webscraping que haga búsquedas de fuentes web basado en las etiquetas del video.
El webscraping es una manera automática de ir atacando fuentes de información.
Para esto se utiliza un algoritmo desarrollado en Python que mediante el paquete
“request” hace consultas http. Se ordena cada etiqueta del video y se introducen las
mismas como palabras clave para una consulta de tipo “GET” en Google. Se hace un
request a http://google.com.ec en modo consulta de donde se devuelven un conjunto de
enlaces http. Cada enlace es utilizado para hacer un request y así con la respuesta
almacenar varias páginas HTML que pertenecen a cada video.
Por el momento el razonamiento que se hace sobre el contenido HTML es sintáctico.
Es decir solo se compara la fuente de texto del HTML con las etiquetas y
transcripciones del video, midiendo la similitud entre las cadenas de caracteres. Se
pondera cada página web y se las ordena para luego ser presentadas al usuario según su
importancia. Para comparar los textos HTML, etiquetas y transcripciones se utiliza la
librería de Python “difflib” que permite hacer un “ratio” o porcentaje de similitud entre
cadenas de caracteres. Debido al amplio contenido difundido en la web se configura la
consulta de Google para atacar solo fuentes web conocidas como por ejemplo: página
web de la universidad, redes sociales de la universidad, periódicos locales, etc.
2
http://kaldi-asr.org
3
https://gstreamer.freedesktop.org
6.1 Audio Fingerprint
En el caso del audio la aplicación graba unos 10 segundos del video que se está
reproduciendo. Envía dicho audio mediante un protocolo de streaming utilizando las
librerias de android “AudioManager” y “MediaPlayer”. A medida que el audio es
grabado una tarea asíncrona se realiza en background. Dicha tarea conecta un socket al
servidor y recibe los resultados de búsqueda. La tarea es asíncrona porque permite
enviar a la aplicación una respuesta parcial sin depender si el audio ha terminado de
grabarse. Esto debido a que en muchos casos solo con una pequeña muestra de audio
del servidor es suficiente para identificar el vídeo. De no identificar el video a los 10
segundos la aplicación le dará la opción al usuario de volver a hacer una grabación u
optar por captar (tomar una foto) una imagen del video y usar PHASH.
Para las imágenes la tarea que se realiza es enviar una imagen o foto del video que
se visualiza en la pantalla. Esta imagen es enviada a un servidor por medio de un socket,
el servidor hace la búsqueda y da una respuesta si encontró o no la información. Este
proceso es recurrente y funciona similar a lo que hace un escáner de códigos QR.
Primero al usuario se le señala una región donde debe centrar la imagen a ser enviada,
cada cierto tiempo una fotografía, se captura y se envía. El proceso permanece activo
hasta que el usuario haya logrado reconocer el video. En el caso de que no se llegue a
obtener ningún resultado es el usuario el encargado de parar la aplicación. El servidor
tanto de audio como video se encarga de enviar enlaces web hacia la información
extendida y los mismos son listados en la pantalla de la aplicación. El funcionamiento
y las interfaces de la aplicación se observan en la fig 4.
7 Resultados
Para el caso del módulo de sincronización de contenido, éste se evalúa por separado
para los dos algoritmos (audio e imagen) y los resultados se muestran en la Tabla 2. A
pesar que la precisión del 97% en audio fingerprinting es menor al DHASH 99%, este
tiene la ventaja que puede ser usado en streaming de audio y video. Esto lo hace de
mayor alcance multimedia ya que funcionará tanto en las señales del canalIp como en
la radio universitaria.
Perceptual Image Hashing se entiende como un algoritmo de alta precisión, donde
el 99% de los casos de búsqueda son exitosos. La tasa de falsos positivos del 1%, son
debido a ambigüedades que se pueden presentar en las imágenes dado que muchas
publicidades de la universidad a veces comparten el mismo fondo de imagen u otras
veces comparten un fragmento de video similar. También se pueden dar casos en los
que la aplicación no logre capturar una imagen centrada desde el monitor de las
noticias, en este caso no habrá manera de hacer el reconocimiento y se tomará como un
falso negativo. Esta tasa es realmente baja ya que al enviar un flujo constante de frames
al servidor es de esperar que al menos uno de estos ofrezca como resultado el video
buscado.
Tabal 2. Resultados para los algoritmos de Sincronización de Contenido.
8 Conclusiones y Recomendaciones
El presente trabajo es parte de los proyectos que se llevan a cabo por parte del
Departamento de Investigación de la Universidad de Cuenca DIUC.
Referencias
1. F. Vega, J. Medina, D. Mendoza, V. Saquicela, and M. Espinoza, “A robust video
identification framework using perceptual image hashing,” in 43th Latin American
Computing Conference, Lat. Am. Symp. On Computer Graphics, Virtual Reality, and Image
Processing, 2017.
2. J. Medina, F. Vega, D. Mendoza, V. Saquicela, and M. Espinoza, “Audio fingerprint
parametrization for multimedia advertising identification,” 2017, Second Ecuador Technical
Chapters Meetings (ETCM 2017).
3. HB Kekre, Nikita Bhandari, Nisha Nair, Purnima Padmanabhan, and Shravya Bhandari. A
review of audio fingerprinting and comparison of algorithms. International Journal of
Computer Applications, 70(13), 2013.
4. Automated content recognition creating content aware ecosystems. Technical report,
CIVOLUTION, 2013.
5. Munzert, Simon, et al. Automated data collection with R: A practical guide to web scraping
and text mining. John Wiley & Sons, 2014.
6. Mori, Shunji, Hirobumi Nishida, and Hiromitsu Yamada. Optical character recognition. John
Wiley & Sons, Inc., 1999.
7. Sigcha, Erik, et al. "Automatic speech-to-text transcription in an ecuadorian radio broadcast
context." Colombian Conference on Computing. Springer, Cham, 2017.
8. Morocho, Villie, Humberto Chacón, and Jackeline Fernández. "NotiCEDIA una alternativa
digital a un circuito interinstitucional de TV para promover la comunicación entre la
comunidad universitaria.", 2015.
9. Giannakopoulos, T. pyaudioanalysis: An open-source python library for audio signal analysis.
PloS one, 10(12), 2015.
10. A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep
convolutional neural networks. In Advances in neural information processing systems , pages
1097–1105, 2012.
11. A. Berg, J. Deng, and L. Fei-Fei. Large scale visual recognition challenge 2010.
www.imagenet.org/challenges. 2010.