Giter Club home page Giter Club logo

ai---video-summary's Introduction

IMPORTANTE: En mac es normal que se cree un archivo temporal llamado .DS_store
si este archivo se encuentra en la carpeta que se encuentren las imagenes deberá
ser eliminado.

El código contiene 5 funciones auxiliares además de la principal "main"


Para particionar las imagenes he usado ffmpeg guardando los fotogramas con 
el nombre "captura-x.png", además se ha incluido un script en bash (tiene
versión windows y linux/mac) para realizar la partición de un video que se
encuentre en la carpeta donde se localice el script además de preguntar por el
número de fotogramas por segundo en los que se desea particionar, a mayor
cantidad es posible que se pierda más información.

La función "recorre_imagenes" se encarga de preguntar por la carpeta donde
se encuentren los fotogramas, posteriormente se calculan los histogramas para
los colores BGR (blue green red) y se realiza la media de los mismos con la
función auxiliar "summary_color". Gracias a una variable almacenada luego
podremos calcular el número de K con el método del punto de codo de manera
rápida y efectiva. Esta función devuelve la lista de frames para la función
"aplicarKMedias"

La función "summary_color" se encarga de calcular la media aritmética de los
colores.

"aplicarKMedias" recibe la lista de fotogramas y se encarga de clasificarlos por
el algoritmo de K-Medias previamente preparando los datos para ser representados
una vez que los clusteres sean encontrados. Se hará uso de la función del punto
de codo para que le sea mostrado al usuario una gráfica donde podrá decidir para
cada ejemplo que valor de K es mejor.

"elbowMethod" recibe un array con los valores si él número de fotogramas es
mayor de 20, se calculará hasta con un máximo de 20 centroides calculando su
puntuación a cada uno para posteriormente junto con la gráfica poder decidir
cual es el valor de K más eficiente.

"obtenerFramesEnOutputPath" recibe la lista de frames importantes como un array
con los nombres de los ficheros .png y su función principal es copiar los
fotogramas principales para el resumen de la carpeta INPUTPATH a la carpeta de
salida.


Deberemos crear una carpeta de entrada donde serán introducidas las fotografias
y una carpeta de salida donde serán devueltos los fotogramas claves del video.

Es recomendable usar otra carpeta donde se almacenarán los videos y donde se
podrá cortar, una vez aplicado el script para particionar el video, a la carpeta
de entrada.

Para usar el programa será necesario ejecutarlo como administrador junto con el
comando "sudo python3 VideoSummary.py", escribiremos la contraseña y nos pedirá
la carpeta  entrada donde se encuentren los fotogramas a procesar.
Nos aparecerá el nombre de los fotogramas siendo procesados.

Una vez finalice se nos mostrará una imagen para decidir el valor de K
atendiendo al método del punto de codo.

Deberemos introducir el valor en la terminal y nos mostrará los distintos grupos
encontrados por el algoritmo.

Una vez cerrada la ventana lo último será introducir el nombre de la carpeta de
salida donde se almacenarán los fotogramas clave.


El script puede no funcionar en windows si ffmpeg no se encuentra en el PATH.

ai---video-summary's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.