VAP

Introducción a VAP

VAP es un acrónimo de Video Analysis Platform. Al punto actual de desarrollo, se trata de un framework de desarrollo que tienen como objetivo proveer los elementos fundamentales para realizar análisis sobre videos existentes, generando información descriptiva o lanzando procesos a partir de los resultados obtenidos.

El sistema busca equilbrar distintas necesidades a la hora de realizar el análisis: Facilidad de programación de los algoritmos, uso eficiente de la memoria y ejecución performante.

VAP provee un framework de programación en C++, que facilita la programación de algoritmos para:

  1. Acceso a archivos de video y sus frames.
  2. Análisis de frames (obtención de FrameDescriptors).
  3. Detección de shots.
  4. Descripción del video en MPEG-7 y otros formatos XML.
  5. Comparación de tramos de video con descripciones anteriormente obtenidas (búsqueda de signatures).
  6. Al mismo tiempo, el sistema es fácilmente extensible para resolver nuevas necesidades en estas áreas u otras de interés.

Las principales tecnologías que utiliza son:

  1. Programado en C++ (gcc sobre Linux o VC++ sobre Windows)
  2. ffmpeg y FOBS para la codificación/decodificación de video
  3. ITK para el tratamiento de imágenes
  4. XML (con librería Xerces utilizando tecnología DOM) para la descrición de video.

El proyecto inicial fue desarrollado en el marco de un convenio del Programa de Desarrollo Tecnológico (PDT) con la Universidad de la República a través del Instituto de Ingeniería Eléctrica. Originalmente fue desarrollado por Alvaro Pardo, Federico Lecumberry, Pablo Flores y Pablo Arias, liberándose el código a la comunidad Open Source una vez estabilizado un conjunto de funcionalidades básicas.

F.A.Q.

¿En qué plataformas ejecuta?

El sistema está probado en Linux (compilado con gcc) y Windows (compilado con VC++).

¿Qué tipos de video puede utilizar?

Todos los formatos de video decodificados por ffmpeg.

¿Puede trabajar con streaming de videos?

Actualmente no. Es parte del roadmap de desarrollo.

¿Qué herramientas provee para el análisis de los frames?

a) Acceso a los frames en forma de imagen (en formato crudo o imágenes manejadas por la librería ITK).
b) Posibilidad de reutilizar los resultados de algoritmos anteriormente ejecutados sobre los frames, que sirven de base para nuevos análisis.

¿Cómo organiza el uso de memoria?

a) Para el acceso al video, se vale de los caches de lectura provistos por el sistema operativo.
b) Implementa un sistema propio de caches que almacena temporalmente los resultados de algoritmos corridos sobre cada uno de los frames y, en algunos casos, sobre grupos de ellos.
c) Los descriptores en formato XML son almacenados en memoria en forma completa, utilizando tecnología DOM.

¿Cómo mejora la performance?

a) El sistema está programado en C++, teniendo en su diseño e implementación especial cuidado en alivianar la carga computacional de los procesos repetitivos.
b) Implementa un sistema de caches que ayuda a evitar la reiteración de la ejecución de algoritmos.

¿Por qué ITK?

ITK (Insight Toolkit) es una librería de tratamiento de imágenes que se alinea con varios de los objetivos de VAP: Es rápida, extensible, bien programada y documentada.

¿Se puede utilizar VAP con otras librerías de tratamiento de imágenes?

Si. ITK se encuentra en un módulo separado del core de VAP. Para utilizar otras librerías alcanza con programar descriptores que, a partir de los frames en formato crudo, generen imágenes manejables por estas librerías.

¿Qué implementa VAP del estándar MPEG-7?

MPEG-7 es un estándar de descripción de contenidos multimedia. VAP implementa un conjunto de funcionalidades básicas para generar descriptores en XML los cuales, con conocimiento del estándar y una adecuada programación, pueden tomar el formato MPEG-7.

¿Por qué Platform?

Desde el comienzo llamamos al proyecto VAP, significando originalmente Video Analysis Project. Actualmente se trata de un framework, pero el objetivo final es desarrollar una plataforma completa de análisis de video.

¿Cuál es el roadmap de desarrollo?

Algunas prioridades a la vista:
1) Desarrollar un conjunto importante de algoritmos que corran sobre el framework.
2) Mejorar las herramientas para generación de nuevos videos.
3) Trabajar con streaming de video.
4) Adaptar el framework al procesamiento distribuido, en particular a arquitecturas grid.

¿Qué licencia tiene VAP?

El código de VAP utiliza la licencia GPL. Dada la falta de sistemas abiertos que faciliten el análisis de video, se decidió liberar el código del Framework. Se espera a partir de esto que paulatinamente se vayan agregando nuevos algoritmos a la base de datos, de modo de facilitar la realización de distintos tipos de análisis de video.

valida XHTML 1.1