Wie geht es allen. Mit der Ausbreitung der Coronavirus-Infektion können viele Menschen zu Hause arbeiten oder forschen. In den letzten Monaten habe ich jeden Tag zu Hause auf meinen PC gestarrt. Ich bin wirklich müde lol
Dieses Mal möchte ich mich auf die Rekonstruktionsaufgabe konzentrieren, die das Generierungsmodell verwendet. Versuchen Sie insbesondere, das "Video" zu rekonstruieren. (Was Sie in diesem Artikel verstehen können, sind die experimentellen Ergebnisse und die Berücksichtigung der Rekonstruktionsmethode, die das auf Encoder-Decoder basierende Zeitreihenmodell beißt, das auf die Erkennung von Abnormalitäten von bewegten Bildern erweitert werden kann, sowie der theoretische Hintergrund wie mathematische Formeln. Ich werde nicht jagen.)
Es ist die Rekonstruktion von ** "Bild" **, die häufig im Feld "Anomalieerkennung" verwendet wird. Dies ist eine Methode zur Berechnung des Anomaliegrades durch Eingabe eines Bildes in ein Encoder-Decoder-Modell, Rekonstruktion und Ermittlung der Differenz zwischen Eingabe und Ausgabe. VAE ist besonders bekannt als Generationsmodell, das für die Bildrekonstruktion verwendet werden kann, und in jüngster Zeit sind auch Anomalieerkennungsmethoden (AnoGAN, EfficientGAN usw.) erschienen, die GAN verwenden. Das Folgende ist ein Beispiel für AnoGAN.
Das obige Bild stammt von hier
Aus irgendeinem Grund können jedoch bei der Rekonstruktion von "Videos" keine Forschungsfälle gefunden werden. (In einigen Fällen der "Generierung" von Videos gibt es einige Methoden, die GAN verwenden.)
(** Addendum (2020/05/26) **: Ein Beispiel für die Verwendung der 3D-Faltung wie in Erkennung abnormaler Ereignisse in Videos mit raumzeitlichem Autoencoder Es scheint, dass die Verwendung von Spatio Temporal Networks (STN) als Aufgabe zum Extrahieren raumzeitlicher Merkmale wie Filme gesucht wird. Deep Learning für die Erkennung von Anomalien: Eine Umfrage Von abs / 1901.03407). Ich sehe nicht viel Literatur auf Japanisch, aber lol. In Zukunft möchte ich als Artikel über den Forschungsstatus dieser Erkennung von Bewegtbildanomalien berichten. )
Ich denke, dass die Technologie zur Erkennung von Bildanomalien in der Welt für industrielle Anwendungen extrem weit verbreitet ist. Ich denke, es gibt eine gewisse Nachfrage nach bewegten Bildern, aber ist sie nicht sehr entwickelt?
Wenn Sie sich nicht für die Erkennung von Videoanomalien und die "Rekonstruktion" interessieren, gibt es natürlich verschiedene Dinge von vor langer Zeit. (Klassifizierung mit SVM basierend auf altmodischen ST-Patch-Funktionen usw.)
Es ist jedoch eine Welt, in der Deep Learning so populär geworden ist. Sie können das Video auch rekonstruieren! Dieses Mal werden wir ein Videorekonstruktionsmodell implementieren, indem wir das Zeitreihenmodell GRU und das Encoder-Decoder-Modell kombinieren. ** Der gesamte Code ist unter [hier] verfügbar (https://github.com/satolab12/GRU-Autoencoder). ** **.
Das diesmal zu implementierende Modell ist unten dargestellt.
$ \ Boldsymbol {x_1, x_2, ..., x_T} $ bedeutet ein Video mit einer Länge von T, und $ \ boldsymbol {x_t} $ ist jedes Bild. Der Encoder empfängt das Bild jedes Frames und ordnet es $ \ boldsymbol {z} $ zu. Durch Wiederholen dieser T-Zeiten wird die latente Variable der Serienlänge entsprechend dem Eingangsvideo $ \ boldsymbol {Z_1, Z_2, ..., Z_T} $ erhalten. Diese latente Variable wird mit GRU modelliert. Die Ausgabe bei jedem t entspricht $ \ boldsymbol {\ hat {z_t}} $. Der Rest ist das Verfahren, mit dem dies mit dem Decoder auf den Beobachtungsraum abgebildet wird.
Ich bin mir nicht sicher, ob das obige Modell eine strikte mathematische Korrektheit garantieren kann, da ich mir bei der Eisenplatte der Bewegtbildrekonstruktionsaufgabe nicht sicher bin, aber ich bin mir nicht sicher, ob es besonders gut ist oder nicht. Kann rekonstruiert werden. ** **.
Hier ist eine Ergänzung, aber warum nicht das bewegte Bild an einem Punkt im latenten Raum codieren? In einem normalen Codierer-Decodierer-Modell wird das Eingabebild mit nur einer latenten Variablen codiert. Ich dachte, ich würde dem folgen, wenn ich mich zu einem bewegten Bild ausdehne, aber während ich eine Untersuchung von GAN-basierten Arbeiten in meiner Forschung durchführe, ** ist es zu viel, um einem Punkt im latenten Raum zu entsprechen * Ich fand, dass es eine Diskussion über * gab.
Ich stimme dem als Faustregel in der Vergangenheit zu. Zuvor habe ich versucht, ein bewegtes Bild mit Keras zu rekonstruieren, aber die obige Methode hat nicht zu den gewünschten Ergebnissen geführt.
Aus diesem Grund dachte ich diesmal über die latenten Variablen der Reihe nach und definierte das obige Modell.
** Der Rekonstruktionsfluss ist wie folgt. ** **.
1.human action dataset Diese Daten wurden zur Überprüfung in einem Video-Generierungsmodell namens MocoGAN verwendet. Wie der Name schon sagt (ich kenne das erste Erscheinungsbild nicht), werden Personen beim Gehen und Winken angezeigt. Es ist eine Sache geworden.
Sie können es von [hier] herunterladen (http://www.wisdom.weizmann.ac.il/~vision/SpaceTimeActions.html). (Das obige Bild stammt auch aus den Daten in diesem Link.)
Als nächstes werden wir das Modell unter Verwendung der obigen Daten trainieren. Die Verlustfunktion ist MSE, wodurch der Fehler zwischen Eingabe und Ausgabe natürlich minimiert wird. Einzelheiten zum Modell finden Sie im Implementierungscode (implementiert von PyTorch) von hier.
Das Lernen wurde 10.000 itr gedreht, und der Verlust änderte sich wie folgt. In der zweiten Hälfte wurde es fast 0, und ich sehe nicht viel Veränderung, aber es scheint, dass es sicher konvergiert hat.
Machen Sie Schlussfolgerungen mit dem Modell. In der obigen Implementierung wird das Rekonstruktionsergebnis in generate_videos im Protokollordner für jeden durch das Argument angegebenen Prüfpunkt gespeichert. Wie wir gelernt haben, haben wir das folgende Verhalten gezeigt. Die obere Reihe jedes itr ist die Eingabe und die untere Reihe ist die Ausgabe.
--0 itr Augen Natürlich kann es überhaupt nicht rekonstruiert werden.
1.000 itrth Obwohl es verschwommen ist, hat es eine menschliche Form.
5.000 itr Augen Wenn es 5.000 Mal erreicht, wird das Uhrwerk gut reproduziert.
9.000 itr Augen Das Beispiel ist subtil, aber der Eindruck ist, dass es möglich geworden ist, es in nahezu perfekter Form zu rekonstruieren.
Dieses Mal habe ich versucht, ein bewegtes Bild mit GRU-AE zu rekonstruieren. Es ist ein einfaches Modell, aber der Punkt ist, dass es latente Variablen in chronologischer Reihenfolge behandelt. Mit dieser Methode können wir eine Ausweitung auf die Erkennung von Anomalien erwarten. Aber um ehrlich zu sein, was machst du heutzutage als Neuheit im Vergleich zu GAN? Das ist der Ort. Darüber hinaus ist es nicht zu leugnen, dass es im Vergleich zu aus GAN rekonstruierten Bildern ehrlich minderwertig ist (einige Teile sind unscharf). (Zuvor wurde in meinem Artikel auch VAEGAN eingeführt.) Es ist jedoch eine einfache Methode und einfach zu bedienen, daher würde ich es begrüßen, wenn Sie es versuchen könnten.