[PYTHON] Versuchen Sie, die Geschwindigkeit von Zeitraffervideos automatisch anzupassen (Teil 2).

Teil 1

Versuche, die Geschwindigkeit von Zeitraffervideos automatisch anzupassen (Teil 1)

Dies ist eine Fortsetzung des obigen Artikels.

Ich hatte nicht genug Kraft, um Nachforschungen anzustellen, also bewegte ich vorerst meine Hand.

Phash (aus dem ersten Teil)

https://youtu.be/BOHDtW9_tlQ

Der Hash-Abstand zwischen den Bildern dieses Zeitraffervideos war wie folgt.

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

Vorerst habe ich die Z-Punktzahl genommen.

z_scores = scipy.stats.zscore(distances)

z_scores.png

gaussian blur

Ich habe den z-Wert verwischt und das Minus des Durchschnitts der absoluten Werte als Schwellenwert festgelegt.

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

blured_z_scores.png

Eine Sequenz unterhalb des Schwellenwerts in der obigen Abbildung wird als ein Ereignis angesehen. Das Folgende ist die Videowiedergabe mit unterschiedlichen Geschwindigkeiten.

https://youtu.be/iPMuMYygbDg

Aufgabe

Es ist nah an dem, was ich vorhatte, Ich dachte, dass es etwas besser wäre, wenn die Geschwindigkeit vor und nach dem als Ereignis erkannten Teil allmählich langsamer oder schneller würde, so dass an der Grenze ein Rand vorhanden wäre.

Diesmal habe ich eine Python-Bibliothek namens "moviepy" verwendet Ich würde gerne herausfordern, wenn ich verstehe, wie man es ein bisschen mehr benutzt.

https://github.com/Zulko/moviepy

Platzieren Sie die Bibliothek, die Sie verwendet haben.

# 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

Klicken Sie hier für den Code. https://github.com/sosuke-k/timelapse-optimizer

Recommended Posts

Versuchen Sie, die Geschwindigkeit von Zeitraffervideos automatisch anzupassen (Teil 2).
Versuchen Sie, die Geschwindigkeit von Zeitraffervideos automatisch anzupassen (Teil 1).
Ich habe versucht, den negativen Teil von Meros zu löschen
BGM wird automatisch entsprechend dem Inhalt der Konversation ausgewählt
Teil 1 Versuch, Mathematik zu codieren (∈)
So führen Sie die Exportfunktion des GCP-Datenspeichers automatisch aus
[Anmerkung] Versuchen wir, den Stromverbrauch vorherzusagen! (Teil 1)
Berücksichtigen Sie die Verarbeitungsgeschwindigkeit, um den Bildpuffer mit numpy.ndarray zu verschieben
Ein Befehl zum einfachen Überprüfen der Netzwerkgeschwindigkeit auf der Konsole
Project Euler 4 Versuch zu beschleunigen
Ergänzung zur Erklärung von vscode
Über die Reihenfolge des Lernens von Programmiersprachen (vom Anfänger bis zum Fortgeschrittenen) Teil 2
So schneiden Sie den unteren rechten Teil des Bildes mit Python OpenCV
Ich habe versucht, die Bewegungen von Wiire-Playern automatisch mit Software zu extrahieren
Ich habe versucht, das RSS des Top-Songs des iTunes Store automatisch abzurufen
Die Geschichte des Versuchs, den Client wieder zu verbinden
Wie man die schöne Suppeninstanziierung beschleunigt
Skript zum Ändern der Beschreibung von Fasta
So überprüfen Sie die Version von Django
Ich möchte mit dem Reim Teil1 umgehen
Die Geschichte, MeCab in Ubuntu 16.04 zu setzen
Ich möchte mit dem Reim part3 umgehen
Verstehen Sie den "temporären" Teil von UNIX / Linux
Die Geschichte von pep8 wechselt zu pycodestyle
Ich möchte mit dem Reim part2 umgehen
Ich möchte mit dem Reim part5 umgehen
Ich möchte mit dem Reim part4 umgehen
Verwenden Sie Pillow, um das Bild transparent zu machen und nur einen Teil davon zu überlagern
Organisieren Sie Python-Tools, um die anfängliche Bewegung von Datenanalyse-Wettbewerben zu beschleunigen
Ich habe ein Tool zum automatischen Sichern der Metadaten der Salesforce-Organisation erstellt
Versuchen Sie, ein Objekt mit RaspberryPi zu erkennen ~ Teil 1: Vergleich der Erkennungsgeschwindigkeit ~
[Überprüfung] Versuchen Sie, die Punktgruppe an der Optimierungsfunktion von Pytorch Part 1 auszurichten
Deep Learning macht es dramatisch einfacher, den Zeitraffer körperlicher Veränderungen zu erkennen
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden