Zeichnen Sie den Rest einer Eule anhand neuronaler Netze

Die Idee, eine Eule aus Kreisen zu vervollständigen, wurde mit Hilfe neuronaler Netze verwirklicht.

Bild


Basierend auf maschinellem Lernen und einem neuronalen Netzwerk hat der Entwickler Christopher Hesse einen Onlinedienst erstellt, mit dem Skizzen zu Farbfotos "erstellt" werden können.

Die Website http://affinelayer.com/pixsrv/index.html Christopher Hesse präsentiert ein neuronales Netzwerk, das Katzen fertig machen kann.

Der Benutzer wird aufgefordert, im linken Fenster eine Skizze der Katze zu zeichnen, auf „Verarbeiten“ zu klicken und zu sehen, wie das neuronale Netzwerk die Abbildung zeichnet. Die Seite zeigt so ein schönes Beispiel:

Bild


Je mehr Linien in der Skizze verwendet werden und je mehr die Skizze wie eine Katze aus einem Trainingssatz aussieht, desto besser wird das neuronale Netzwerk eine darauf basierende vollwertige Zeichnung erstellen.

Folgendes schreibt der Autor selbst:

Kürzlich habe ich einen Tensorflow pix2pix-Port für Isola et al. Erstellt , der im Artikel Bild-zu-Bild-Übersetzung in Tensorflow beschrieben wird . Ich habe einige zuvor erstellte Modelle genommen und eine interaktive Webseite zum Testen erstellt. Zum Anzeigen wird ein Chrome-Browser empfohlen.
Das pix2pix-Modell trainiert mit Bildpaaren, z. B. einer Skizze der Gebäudefassade und einem vollständigen Bild der Gebäudefassaden, und versucht dann, das entsprechende Ausgabebild für jedes übertragene Eingabebild zu generieren. Diese Idee stammt aus dem Artikel pix2pix , der zum Lesen empfohlen wird.

Fassaden
Das Modell wurde an Mustern von Skizzen von Gebäudefassaden zu vollwertigen Bildern von Fassaden trainiert. Es ist unwahrscheinlich, dass dieses Modell für Skizzen mit einem großen leeren Bereich geeignet ist. Wenn Sie jedoch eine ausreichende Anzahl von Fenstern in die Skizze zeichnen, liefert das Modell häufig gute Ergebnisse. Im Skizzenbild werden die Fassadenelemente mit farbigen Rechtecken gezeichnet, um nicht nur die Ränder, sondern auch die gesamten Elemente anzuzeigen.

Ich hatte nicht den Namen der verschiedenen Teile der Gebäudefassaden, also habe ich sie nur grob bezeichnet.

Kanten2Katzen
Das Training fand an ca. 2.000 Fotos von Katzen und Skizzen mit automatisch generierten Rändern für diese Fotos statt. Das Modell erstellt Farbbilder von Katzen aus Skizzen, aber einige stoßen auf albtraumhafte Ergebnisse. Eines davon habe ich hier gesehen .
Einige Bilder sehen besonders gruselig aus, finde ich, weil die Katzen nicht richtig gezeichnet wurden, besonders hinter den Augen. Das Verfahren zur automatischen Erzeugung von Rändern war nicht sehr hochwertig und enthüllte in vielen Fällen nicht die Augen einer Katze, was sich auf die Qualität der für das Modelltraining vorbereiteten Bilddatenbank auswirkt.

Kanten2Schuhe
Das Training wurde auf der Grundlage von ungefähr 50.000 Bildern von Schuhen durchgeführt, die von Zappos gesammelt wurden , sowie mit automatisch generierten Umrissrändern für diese Bilder. Wenn Sie die Ränder der Schuhe wirklich gut zeichnen, können Sie versuchen, ein neues Design zu erstellen. Beachten Sie, dass das Modell an realen Objekten trainiert wurde. Wenn Sie also eine bessere 3D-Skizze zeichnen können, sieht das Ergebnis besser aus.

Kanten2Handtaschen
In Analogie zu den vorherigen wurde die Schulung auf der Grundlage von ungefähr 137.000 Fotos von Taschen durchgeführt, die bei Amazon gesammelt wurden, mit automatisch generierten Umrissrändern für diese Fotos. Wenn Sie hier anstelle einer Handtasche einen Schuh zeichnen, erhalten Sie eine sehr seltsame Schuhstruktur.

Implementierung
Das Training und der Export von Modellen wurden mit dem Skript pix2pix.py von pix2pix-tensorflow durchgeführt . Eine interaktive Demo wird basierend auf JavaScript unter Verwendung der Canvas-API erstellt, die mit einem Server interagiert, der Tensorflow-Bilder überträgt. Der Server kann Tensorflow selbst starten oder Anforderungen an die Google-Dienste von Tensorflow Cloud Cloud weiterleiten.
Geschulte Modelle finden Sie im Abschnitt Datasets von GitHub. Modelle, die mit der ursprünglichen pix2pix-Implementierung geliefert werden, sollten ebenfalls verfügbar sein. Modelle können mit dem Skript pix2pix.py aus trainierten Beispielen exportiert werden. Links zu exportierten Modellen befinden sich in der README-Datei auf dem GitHub-Server.
Rahmen für Katzenfotos wurden mit dem Algorithmus zur Erkennung ganzheitlich verschachtelter Kanten erhalten. Diese Funktionalität wurde dem Skript process.py hinzugefügt, und die entsprechenden Abhängigkeiten wurden dem Docker-Bild hinzugefügt.

Source: https://habr.com/ru/post/de401835/


All Articles