Tentative d'ajuster automatiquement la vitesse des vidéos accélérées (partie 2)

Partie 1

Tentatives d'ajuster automatiquement la vitesse des vidéos accélérées (partie 1)

Ceci est une continuation de l'article ci-dessus.

Je n'avais pas assez de pouvoir pour enquêter, alors j'ai bougé ma main pour le moment.

phash (de la première partie)

https://youtu.be/BOHDtW9_tlQ

La distance de hachage entre les images de cette vidéo time-lapse était comme ça.

clip = moviepy.editor.VideoFileClip("path to video file")
phashs = [imagehash.phash(PIL.Image.fromarray(frame)) for frame in clip.iter_frames()]
distances = [phashs[i+1] - phashs[i] for i in range(len(phashs)-1)]

アートボード_1.png

z score

Pour le moment, j'ai pris le score z.

z_scores = scipy.stats.zscore(distances)

z_scores.png

gaussian blur

J'ai brouillé le score z et défini le moins de la moyenne des valeurs absolues comme seuil.

blured = cv2.GaussianBlur(z_scores, (49, 49), 0)
threshold = numpy.average(numpy.sqrt(numpy.power(z_scores, 2)))

blured_z_scores.png

Une séquence en dessous du seuil de la figure ci-dessus est considérée comme un événement. Ce qui suit est la lecture vidéo avec différentes vitesses.

https://youtu.be/iPMuMYygbDg

Tâche

C'est proche de ce que j'avais en tête, Je pensais que ce serait un peu mieux si la vitesse ralentissait progressivement ou devenait plus rapide avant et après la pièce détectée comme événement afin qu'il y ait une marge à la frontière.

J'ai utilisé une bibliothèque python appelée moviepy cette fois Je voudrais contester si je comprends comment l'utiliser un peu plus.

https://github.com/Zulko/moviepy

Placez la bibliothèque que vous avez utilisée.

# requirements.txt
ImageHash==3.1
matplotlib==1.3.1
moviepy==0.2.2.11
numpy==1.7.1
Pillow==3.4.2
progressbar2==3.11.0
scipy==0.13.2
seaborn==0.7.1

Cliquez-ici pour le code. https://github.com/sosuke-k/timelapse-optimizer

Recommended Posts

Tentative d'ajuster automatiquement la vitesse des vidéos accélérées (partie 2)
Tentative d'ajuster automatiquement la vitesse des vidéos time-lapse (partie 1)
J'ai essayé d'effacer la partie négative de Meros
La musique de fond est automatiquement sélectionnée en fonction du contenu de la conversation
Partie 1 Tentative de codage des mathématiques (∈)
Comment exécuter automatiquement la fonction d'exportation de GCP Datastore
[Note] Essayons de prédire la quantité d'électricité utilisée! (Partie 1)
Considérez la vitesse de traitement pour déplacer le tampon d'image avec numpy.ndarray
Une commande pour vérifier facilement la vitesse du réseau sur la console
Projet Euler 4 Tentative d'accélération
Supplément à l'explication de vscode
À propos de l'ordre d'apprentissage des langages de programmation (de débutant à intermédiaire) Partie 2
Comment couper la partie inférieure droite de l'image avec Python OpenCV
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
J'ai essayé d'obtenir automatiquement le RSS de la chanson la plus populaire de l'iTunes Store
L'histoire d'essayer de reconnecter le client
Comment accélérer la belle instanciation de soupe
Script pour changer la description de fasta
Comment vérifier la version de Django
Je veux gérer la rime part1
L'histoire de la mise en place de MeCab dans Ubuntu 16.04
Je veux gérer la rime part3
Comprendre la partie "temporaire" d'UNIX / Linux
L'histoire du changement de pep8 en pycodestyle
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Utilisez Pillow pour rendre l'image transparente et en superposer une partie seulement
Organiser les outils Python pour accélérer le mouvement initial des compétitions d'analyse de données
J'ai créé un outil pour sauvegarder automatiquement les métadonnées de l'organisation Salesforce
Essayez de détecter un objet avec RaspberryPi ~ Partie 1: Comparaison de la vitesse de détection ~
[Vérification] Essayez d'aligner le groupe de points avec la fonction d'optimisation de pytorch Partie 1
L'apprentissage en profondeur facilite considérablement la visualisation du laps de temps des changements physiques
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python