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:
Las principales tecnologías que utiliza son:
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.
¿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.