Analizar fotograma a fotograma un vídeo con Azure Computer Vision
Una de las pruebas de concepto que me ha tocado desarrollar esta semana era para el análisis de videos con Azure Computer Vision, centrándome principalmente en la detección de contenido adulto, que puede ser sexual, gore o racial. Gracias a esta se ha podido demostrar la fiabilidad con la que el servicio puede detectar este tipo de escenas, fotograma a fotograma. En este artículo te comparto el código de dicha prueba.
El objetivo
Si bien es cierto que Computer Vision ofrece más que la detección de contenido adulto, esta prueba de concepto está centrada en este escenario, aunque podría aprovecharse para más que eso. El objetivo principal es ser capaces de analizar todos los frames, sin discriminar ninguno, y obtener el número total de cada uno de los tipos mencionados: adulto, racial y gore.
El código
Para poder probar este escenario he utilizado el siguiente código en Node.js:
Como puedes ver, en él utilizo el módulo ffmpeg-extract-frames para poder extraer todos los fotogramas del video que quiero analizar. Se crea una carpeta, dentro del directorio frames, con el nombre del video, sin la extensión, y hago la extracción. Una vez que ya tengo qué analizar llamo a Azure Computer Vision, utilizando el módulo @azure/cognitiveservices-computervision, y le paso uno por uno cada frame que tengo en el directorio. Esto dará una salida como la siguiente por cada uno de los fotogramas que estoy analizando:
Para que todo esto funcione debes crear un archivo .env con los siguientes valores:
Y añadir la ruta de tu local donde tengas el archivo que quieras analizar en la constante VIDEO_TO_TEST.
Una vez finalice el análisis obtendrás un resultado como el siguiente:
El código de la PoC lo tienes en mi GitHub.
¡Saludos!
Articulo Original haz click aqui