Videorahmeninterpolation durch tiefes Lernen Teil 1 [Python]

Ich beschäftige mich an der Universität mit ** Videorahmeninterpolation durch tiefes Lernen ** und werde die Implementierung ausgeben, die ich in diesem Prozess versuche. Ich werde weiterhin die Fortsetzung der Implementierung der Frame-Interpolation für Videos veröffentlichen. Folgen Sie also bitte LGTM und folgen Sie mir, wenn Sie möchten.

Was ich dieses Mal getan habe, ist ein Netzwerk aufzubauen, das tatsächliche Videobilder verwendet, um 1 Zwischenbild aus 6 Bildern vorher und nachher zu erzeugen.

Montageumgebung

Google Colab https://colab.research.google.com/notebooks/welcome.ipynb?hl=ja

Implementierungsübersicht

** Deep Learning, das aus dem vorderen und hinteren Rahmen (3 vordere und 3 hintere) einen Zwischenrahmen erzeugt. ** Das Netzwerk ist DnCNN [1]. Ich habe dieses Netzwerk zur Hand, also benutze ich es. ([1] Kai Zhang, Wangmeng Zuo, Yunjin Chen, Deyu Meng, and Lei Zhang, “Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising”, https://arxiv.org/abs/1608.03981)

image.png

Das Netzwerk von DnCNN ist wie folgt. Ursprünglich sollte es Lärm entfernen. Für die Eingabe beträgt die Bildgröße 160 * 90 und die Anzahl der Kanäle 18 Kanäle (6 Bilder * RBG). Für die Ausgabe ist die Bildgröße ähnlich und die Anzahl der Kanäle beträgt 3.

Ich habe mit den Parametern der blauen Mittelschicht herumgespielt. Es hat 15 Schichten, eine Kernelgröße von 3 * 3 und 72 Kanäle.

image.png

Datensatz

Ich habe MOT17 verwendet, um die Stadt zu fotografieren. https://motchallenge.net/ Die Anzahl der Sätze ist Zug 1320, Test 1285.

Ergebnis

Das erste Bild sind die vorderen 2 Bilder, das erzeugte Zwischenbild und die hinteren 2 Bilder von oben. Eigentlich gibt es für jeden Frame eine andere Eingabe, aber ich habe sie weggelassen, weil das Bild klein wird.

no5-2_series.PNG

Das folgende Bild ist ein Vergleich mit dem richtigen mittleren Rahmen.

no5-2_midonly.PNG

Es ist ein Ergebnis, von dem nicht gesagt werden kann, dass es überhaupt interpoliert ist, wie z. B. Hin- und Herziehen und Farbwechsel.

Leistungsbeurteilung

Klicken Sie hier, um ein Diagramm der Generalisierungsleistung anzuzeigen. Da die Werte nahe beieinander liegen, scheint hier kein Problem zu bestehen. no5-1_hanka.PNG Klicken Sie hier für numerische Daten wie Verlustwerte. image.png

Der Zahlenwert ist nicht so schlecht. Es liegt nahe am Verlustwert und dem durchschnittlichen PSNR, wenn zuvor ein Bild getrimmt und eine Pseudo-Frame-Interpolation durchgeführt wurde. Dies scheint jedoch darauf zurückzuführen zu sein, dass die Vorder- und Rückseite fast dasselbe Bild sind. Die Mid-Top-Rate ist niedrig, daher müssen Sie sie hier erhöhen.

Erwägung

Der Grund, warum es nicht interpoliert werden konnte ・ Kleine Anzahl von Datensätzen ・ Eingabe 6 Frames funktionieren nicht gut ・ Netzwerkprobleme (DnCNN) Ich denke, es gibt drei Punkte.

Es gibt ungefähr 1300 Sätze von Trainings- und Testdaten. Die ursprüngliche Anzahl von Bildern ist groß, aber es ist schwierig, den Betrag zu verdienen, da ein Satz 7 Bilder verbraucht. Ich bin gerade dabei, meinen eigenen Datensatz zu erstellen, daher möchte ich die Anzahl der Datensätze im Auge behalten.

Was ist mit 6 Eingaberahmen? .. Jedes Papier betrachtet die Interpolation in 2 Frames vorher und nachher, daher mache ich mir Sorgen, ob es in 6 Frames weiter funktioniert. Ich begann zu überlegen, ob ich zum Vergleich auf 2 Frames zurückgreifen sollte.

Planen Sie von nun an

-Erhöhen Sie die Anzahl der Sätze mit Ihrem eigenen Datensatz.

Schließlich

Vielen Dank für das Lesen bis zum Ende. Bitte zögern Sie nicht, auf Verbesserungen hinzuweisen. Ich werde dieses System weiterhin veröffentlichen. Bitte folgen Sie LGTM und folgen Sie mir, wenn Sie möchten!

Recommended Posts

Videorahmeninterpolation durch tiefes Lernen Teil 1 [Python]
Python Deep Learning
Deep Learning × Python
Python: Geschlechtsidentifikation (Entwicklung von Deep Learning) Teil 1
Python: Geschlechtsidentifikation (Entwicklung von Deep Learning) Teil 2
Python: Deep Learning-Praxis
Python: Deep Learning Tuning
Python: Überwachtes Lernen: Hyperparameter Teil 1
Python: Überwachtes Lernen: Hyperparameter Teil 2
Versuchen Sie es mit TensorFlow Part 2
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Deep Learning durch Implementierung 1 gelernt (Return Edition)
Abschnittsplanung Lernnotiz ~ von Python ~
(Python) Deep Learning Library Chainer-Grundlagen Grundlagen
Deep Learning 2 durch Implementierung gelernt (Bildklassifizierung)
[Lernnotiz] Grundlagen des Unterrichts mit Python
Python vs Ruby "Deep Learning von Grund auf neu" Kapitel 2 Logikschaltung von Perceptron
Produzieren Sie wunderschöne Seekühe durch tiefes Lernen
Objekterkennung durch tiefes Lernen, Keras tief zu verstehen
Python lernen
Tiefes Lernen
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
"Deep Learning from Grund" Memo zum Selbststudium (Teil 12) Deep Learning
Grundlegende Datenrahmenoperationen, die von Anfängern in einer Woche Python-Lernen geschrieben wurden
Ich habe versucht, Hanana Oba und Emiri Otani durch tiefes Lernen zu klassifizieren (Teil 2)
[Python / Maschinelles Lernen] Warum Deep Learning # 1 Perceptron Neural Network
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
Lernen der Mustererkennung im Video Teil 1 Bereich der Mustererkennung
Tiefes Lernen durch Implementierung gelernt ~ Erkennung von Abnormalitäten (Lernen ohne Lehrer) ~
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
99,78% Genauigkeit bei tiefem Lernen durch Erkennen von handgeschriebenem Hiragana
[Hinweis] Python beim Starten von maschinellem Lernen / Deep Learning [Links]
Aktienkursprognose mit Deep Learning (TensorFlow) -Teil 2-
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen
Paralleles Lernen von Deep Learning durch Keras und Kubernetes
Python vs Ruby "Deep Learning von Grund auf neu" Zusammenfassung
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
Tiefes Lernen durch Implementierung (Segmentierung) ~ Implementierung von SegNet ~
Erstes tiefes Lernen in C # - Einführung in Python implementieren-
QGIS + Python Teil 2
[Python] Lernnotiz 1
Python-Lernnotizen
Report_Deep Learning (Teil 2)
Report_Deep Learning (Teil 1)
Report_Deep Learning (Teil 1)
QGIS + Python Teil 1
Python-Lernausgabe
Starten Sie Deep Learning
Report_Deep Learning (Teil 2)
Python-Lernseite
Python-Lerntag 4
Python-Lernen (Ergänzung)
Python: Scraping Teil 1
Python-Lernnotizen
Lösung Wenn Sie Python 3.6 oder höher verwenden, benötigen Sie die enum34-Bibliothek ebenfalls nicht. Deinstallieren Sie sie daher und verwenden Sie das Standard-Enum-Modul. Enum34 deinstallieren Führen Sie nach der Deinstallation von enum34 erneut `pip install optuna` aus und Sie haben Optuna erfolgreich installiert! Python, pip, Python3, enum, OptunaPython3 Beginn Teil 1
Python: Scraping Teil 2
Aktieninvestitionen durch tiefgreifendes Lernen (Policy Gradient Method) (1)
[Programmieren lernen] Logikvergleich nach Sprache Teil 1 ("Hallo Welt")
[Programmieren lernen] Logikvergleich nach Sprache Teil 3 (bedingte Verzweigung)