Erstellen Sie Ihre eigenen Neural Paintings mit DeepStyle & Ubuntu

Erstellen Sie Ihre eigenen Neural Paintings mit DeepStyle & Ubuntu / Future Tech

Neuronale Netze können eine Menge tun. Sie können Bilder interpretieren, unsere Stimmen verstehen. 6 Google Now Funktionen, die die Suche verändern werden 6 Google Now Funktionen, die die Suche ändern Sie verwenden Google Now bereits auf Ihrem Android-Gerät, haben jedoch alles, was Sie können es? Das Wissen um diese kleinen Funktionen kann einen großen Unterschied machen. Weitere Informationen und Übersetzen von Konversationen Funktionsweise von Star Trek Translator von Skype Funktionsweise von Star Trek Translator von Skypes Die neue Übersetzungsfunktion von Skype bietet etwas, wovon Star Trek träumt - eine mühelose Kommunikation über Sprachen hinweg. Weiterlesen . Aber wussten Sie, dass sie auch malen können??

Eine aktuelle Forschungsarbeit (mit dem Titel “Ein neuronaler Algorithmus des künstlerischen Stils“) hat mit vielen auffälligen visuellen Beispielen eine Flut von Online-Diskussionen ausgelöst. Im Wesentlichen wird in diesem Artikel eine Technik beschrieben, mit der ein tiefes neuronales Netzwerk trainiert werden kann. Microsoft vs. Google - Wer führt das Künstliche Intelligenzrennen an? Microsoft vs Google - Wer führt die Künstliche Intelligenz? Forscher der künstlichen Intelligenz machen spürbare Fortschritte, und die Menschen beginnen wieder ernsthaft über die KI zu sprechen. Die beiden Titanen, die das Rennen über künstliche Intelligenz anführen, sind Google und Microsoft. Lesen Sie mehr, um den künstlerischen Stil von der Bildstruktur zu trennen, und kombinieren Sie den Stil eines Bildes mit der Struktur eines anderen. Die Folge davon ist, dass Sie ein riesiges neuronales Netzwerk trainieren können, aus dem Sie Fotos machen können “neuronale Gemälde” das sieht aus, als ob sie von berühmten Künstlern gemalt wurden - “digitale Fälschungen,” sozusagen.

Hier einige Beispiele aus dem Artikel. Das erste Bild ist das Original. Die späteren Bilder sind die erzeugten Ergebnisse, wobei das Bild, von dem der Stil genommen wurde, in Miniatur dargestellt wurde.

Die ursprünglichen Forscher haben ihren Code leider nicht veröffentlicht. Einige unerschrockene Programmierer haben jedoch ihre Ergebnisse in den letzten Tagen repliziert, und ihr Code steht als Open Source im Internet zur Verfügung. Alles, was Sie zum Ausführen benötigen, ist eine Linux-Maschine und ein wenig Geduld.

Heute werde ich Sie durch die einzelnen Schritte führen und Ihnen einige meiner eigenen Ergebnisse zeigen. Sie können sich dies als lose Fortsetzung unseres DeepDream-Tutorials vorstellen. Erstellen Sie Ihre eigenen künstlichen Fieberträume mit Googles "DeepDream". Erstellen Sie Ihre eigenen künstlichen Fieberträume mit Googles "DeepDream". Haben Sie die trippigen Bilder gesehen, die aus DeepDream kommen? Willst du dein eigenes machen? Suchen Sie nicht weiter! Weiterlesen . Es ist ein bisschen kompliziert, aber jeder, der einen Linux-Rechner hat, kann es mitverfolgen - keine Codierkenntnisse erforderlich.

Ich verwandelte ein Picasso-Lichtbild in ein Picasso-Gemälde mit #DeepStyle! pic.twitter.com/cjkEoIhVcF

- James Blaha (@jamesblaha) 5. September 2015

Einrichten der Software

Erstens, wenn Sie nicht in Eile sind oder keinen Linux-Computer haben, können Sie mit DeepStor noch mit dem DeepForger Twitter-Bot spielen (senden Sie ihm ein Bild und einen Stil, und es wird Ihnen schließlich mit den Ergebnissen antworten wollen). Wenn Sie mehr Bilder schnell bearbeiten möchten (und mehr Kontrolle über die Ergebnisse haben), lesen Sie das Tutorial.

Stellen Sie zunächst sicher, dass Sie über eine aktuelle Kopie von verfügen Ubuntu (14.04 habe ich verwendet). Sie sollten mindestens einige zusätzliche Festplattenspeicherplatz haben. Weitere Informationen finden Sie in unserem Tutorial zum Dual-Booten von Ubuntu neben Windows Tired Of Windows 8. Wie kann ich Windows & Ubuntu mit Windows 8 müde machen? Wie man einen Dual-Boot von Windows und Ubuntu herstellt Wenn Sie feststellen, dass Windows 8 nicht ganz Ihr Ding ist, und Sie keinen praktikablen Weg für ein Downgrade haben, ist es möglicherweise eine gute Idee, einen Dual-Boot mit Linux zu verwenden, um eine Alternative zu erhalten. Sie benötigen außerdem Root-Berechtigungen, also stellen Sie sicher, dass Sie dies tun, bevor Sie fortfahren.

Basiswerkzeug

Das ist ein Open-Source-Projekt, also wollen wir es haben Git Eingerichtet. Git ist der Goldstandard für Versionskontrollsoftware Was ist Git? Warum sollten Sie die Versionskontrolle verwenden, wenn Sie ein Entwickler sind? Was ist Git? Warum sollten Sie die Versionskontrolle verwenden? Wenn Sie ein Entwickler sind Als Webentwickler eine Menge Zeit Wir neigen dazu, auf lokalen Entwicklungsseiten zu arbeiten und laden dann einfach alles hoch, wenn wir fertig sind. Dies ist in Ordnung, wenn es nur Sie sind und die Änderungen klein sind. So ziemlich jedes wissenswerte Open-Source-Projekt wird auf Github gehostet.

Um Git herunterzuladen und zu installieren, öffnen Sie einfach ein Terminal und geben Sie ein “sudo apt-get install git” und den Anforderungen des Installateurs zustimmen.

Weiter: wir gehen weiter einige grundlegende Werkzeuge einrichten benötigt, um die Software zum Laufen zu bringen.

Installieren Sie zuerst Lua. Dies ist die Sprache, in der das Tool geschrieben ist. Es ist ziemlich einfach. Schreib einfach “sudo apt-get install lua5.2” und folgen Sie dem Installationsvorgang.

Zweitens bekommen wir Luarocks. Dies ist das Tool, das die Installation anderer Tools vereinfacht (lieben Sie Linux nicht?). Geben Sie für dieses ein “sudo apt-get install luarocks” und folgen Sie den Installationsschritten.

Drittens werden wir Luajit installieren. Dies ist ein Just-in-Time-Compiler für Lua, der unser Leben ein bisschen einfacher machen wird. Schreib einfach “sudo apt-get install luajit.”

So weit, ist es gut.

Ich bin ein Bot, der Fälschungen aus Ihren Fotos im Stil berühmter Maler erstellt. Klicken Sie für Anweisungen unten! pic.twitter.com/3MpThDNwRE

- The Deep Forger (@DeepForger) 5. September 2015

Frameworks

Als nächstes werden wir Torch installieren, ein Framework für wissenschaftliches Computing und maschinelles Lernen, das das Rückgrat der Anwendung bildet. Leider kann dieser nicht mit apt-get (dem Standard-Paketmanager von Ubuntu) installiert werden..

Glücklicherweise gibt es ein einzeiliges Installationsprogramm, das einige magische Befehlszeilen verwendet. Kehre zu deinem Terminal zurück und gehe hinein “curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-all | bash“.

Wenn Sie fertig sind, tippen Sie “Luajit-Forch“. Dadurch wird die Brennerschnittstelle geöffnet und überprüft, ob alles korrekt installiert wurde.

Verlasse das.

Jetzt werden wir installieren Loadcaffe - ein neuronales netzwerkspezifisches Paket. Installieren Sie die einzige Abhängigkeit, indem Sie eingeben “sudo apt-get install libprotobuf-dev protobuf-compiler“. Dann können Sie das Paket selbst mit installieren “sudo luarocks installieren loadcaffe ".

@Johnicholas Ihre Fälschung, im Stil der Schule von Rembrandt van Rijn. #DigitalArt #StyleNet pic.twitter.com/pf0sZxWkaT

- The Deep Forger (@DeepForger) 7. September 2015

Doppelte Überprüfung von Abhängigkeiten

Schließlich werden wir vorab einige Dinge aktualisieren, um sicherzustellen, dass alles reibungslos läuft.

Art “sudo luarocks install image” So stellen Sie sicher, dass Ihr Image-Paket auf dem neuesten Stand ist. Als nächstes eingeben “luarocks installieren nn” Das wird das gleiche für Ihr 'nn'-Paket tun.

Deep Style installieren

In Ordung! Zu diesem Zeitpunkt können wir die Software selbst installieren. Erstellen Sie aus Gründen der Sauberkeit einen neuen Ordner in Ihrem Home-Verzeichnis ('mkdir DeepStyle'). Geben Sie es dann mit ein “cd Deepstyle“. Jetzt tippen “Sudo Git Klon https://github.com/jcjohnson/neural-style.git ".

Als nächstes müssen wir das Modell herunterladen. Machen Sie eine Tasse Kaffee oder etwas, das wird eine Weile dauern. Zurück zum Terminal und geben Sie ein “sudo sh models / download_models.sh“. Das wird einen langen, aufwendigen Downloadprozess starten. Wenn dies aufgrund von Berechtigungsfehlern fehlschlägt, geben Sie sich mit chmod Lese- und Schreibberechtigungen für die entsprechenden Ordner vor.

@ 44thats44oars hat diese #ProceduralArt #NeuralArt in Auftrag gegeben. pic.twitter.com/tbMH7gsvc8

- The Deep Forger (@DeepForger) 6. September 2015

Deep Style verwenden

Okay, es geht uns gut. Die Verwendung der Software ist ziemlich einfach.

Stellen Sie sicher, dass Sie in der sind DeepStyle / Neural-Style-Verzeichnis im Terminal. Nun brauchen Sie ein paar Bilder, um daran zu arbeiten. Laden Sie sie aus dem Internet (oder was auch immer) herunter und kopieren Sie sie dann in das DeepStyle / Neural-Ordner mit dem Dateibrowser.

Jetzt können Sie die Befehlszeile verwenden, um einzelne Bilder zu verarbeiten. Das Format ist ziemlich einfach:

der neural_style.lua -style_image YOURPAINTINGHERE.jpg - content_image YOURPHOTOHERE.jpg -gpu -1

(Natürlich müssen Sie die Chunks in ALL CAPS durch die Namen Ihrer Dateien ersetzen.).

Damit wird das neuronale Netzwerk gestartet. Es läuft ungefähr eine Stunde lang und spuckt alle paar Minuten neue, teilweise konvergierte Bilder aus, bis es fertig ist. Das -gpu -1 Flag verhindert, dass versucht wird, auf Ihre GPU zuzugreifen.

Nach mehrstündigem Ausprobieren (und mehrmaligem Mauern des Betriebssystems) konnte ich Ubuntu und CUDA nicht dazu bringen, mit meiner GPU (einer NVIDIA GTX 970) gut zu spielen. Wenn Sie mehr Glück damit haben, sollten Sie CUDA und cudann.torch installieren (weitere Informationen finden Sie im Github-Repo). Wenn nicht, ist das in Ordnung - es funktioniert immer noch mit Ihrer CPU. es wird nur etwas langsamer sein.

Wenn Sie Probleme damit haben, das alles zum Laufen zu bringen, fragen Sie mich einfach in den Kommentaren. Ich werde mein Bestes tun, um Ihnen zu helfen.

Ergebnisse

Hier sind einige Bilder, die ich in den letzten Tagen erstellt habe. Die Ergebnisse sind gemischt, aber viele von ihnen sind ziemlich beeindruckend.

Klicken Sie hier für die volle Auflösung.

Dieser ist von meinem Freund Zack auf einer Wanderung nach Yellowstone. Der Stil stammt von einem abstrakten Gemälde von Theresa Paden. Ich war neugierig, wie das System mit einem Bild ohne Struktur auskommt. Die Ergebnisse sind ziemlich ordentlich und Sie können durchaus Ähnlichkeiten mit dem Stilbild erkennen.

Klicken Sie hier für die volle Auflösung.

Dieser stammt von Charles Demuth, einem meiner Lieblingskünstler (siehe: Weihrauch einer neuen Kirche und Abbildung 5 in Gold). Interessanterweise ist Demuth eine der wichtigsten visuellen Inspirationen für die Kunst des Team Fortress 2. Team Fortress 2: Das kostenlose Dampfspiel, das Sie spielen müssen Team Fortress 2: Das kostenlose Dampfspiel, das Sie spielen müssen, ist Team Fortress 2 Nur ein kurzes Spiel, um Grafik und Leistung zu testen, oder ist es ein Spiel, das sich wiederholt lohnt? Lesen Sie mehr, wie Sie dem Stilbild entnehmen können.

Ich fütterte es mit einem Bild von Jersey City, das ich auf Wikimedia gefunden hatte. Die Ergebnisse sind… ziemlich gut. Die Winkeligkeit des Demuth-Stils wurde nicht berücksichtigt, aber der weiche, strukturierte Look und die Farbpalette wurden mit Sicherheit aufgenommen.

Klicken Sie hier für die volle Auflösung.

Dies ist ein Versuch, ein synthetisches O'Keeffe zu erzeugen, wobei ein recht banales Bild einiger Blumen, die ich fand, verwendet wird. Die Ergebnisse sind ehrlich gesagt spektakulär. Ästhetisch ist dies eines meiner Lieblingsergebnisse. Die Farben und Formen von O'Keeffe kommen klar zum Ausdruck. Die geschichteten Ränder der Blütenblätter werden im Hintergrund zu den Rändern der Blätter. Die Blumen selbst lösen sich in Farben auf und werden fast abstrakt.

Es wäre ein gutes Bild, wenn es ein Mensch tun würde. Ich bin sehr versucht, ein paar Tage damit zu verbringen, eine Version mit höherer Auflösung zu rendern und sie umrahmen zu lassen.

Klicken Sie hier für die volle Auflösung.

Hier ist meine Freundin Shannon in ihrem Halloween-Kostüm mit Picasso-Aufdruck. Interessanterweise wählte das Gerät den unteren Teil ihres Gesichts weiß (ähnlich dem Farblayout des Picasso-Stücks). Ich bin mir nicht sicher, ob dies ein Zufall war oder nicht, aber die Ergebnisse sind bemerkenswert. Es scheint auch Shannons Haar auf der linken Seite richtig erkannt zu haben und es unter Verwendung der Farbe und der Linienführung des Stils im Stilbild neu zu zeichnen. Dito für ihren Hut.

Dies ist eines der Stücke, bei denen die Grenzen der Technik klar werden. Wenn Picasso tatsächlich Shannon gemalt hätte, hätte er die Struktur ihres Gesichts weggeworfen und die Gesichtszüge verzerrt, um den gewünschten Effekt zu erzielen. Dieses System versteht solche hochrangigen Konzepte nicht und kann nur oberflächliche Aspekte des Stils imitieren, wie dunkle, eckige Linien und Farbpaletten.

Klicken Sie hier für die volle Auflösung.

Ziemlich unkompliziert: ein Bild vom Eiffelturm und von Van Gogh andere Sternenklare Nacht. Es macht einen guten Job, die Wolke in einem Van Gogh-ey-Stil darzustellen, obwohl im Originalbild keine Wolken vorhanden sind. Es ist auch eine gute Arbeit, um die Szene von Tag zu Nacht zu übersetzen.

Ich war mir nicht sicher, warum es beschlossen wurde, die Spitze des Fiffelturms als Feuersäule darzustellen. Es sieht cool aus, ist aber aufgrund der Eingabedaten nicht wirklich zu rechtfertigen. Dann wurde mir klar, dass das Stilbild dreizehn lange vertikale gelbe Streifen enthält, in Form der Reflexe im Wasser. Das ist ein ziemlich massiver Cluster, angesichts der geringen Trainingsdaten. Die Armen haben wahrscheinlich gelernt, dass jede kontrastreiche vertikale Kante eine dieser Reflexionen sein muss. In den Wolken sind schwache weitere vertikale Streifen sichtbar.

Klicken Sie hier für die volle Auflösung.

Dieselbe Van-Gogh-Malerei, aber dieses Mal habe ich einige echte Sterne zum Malen gegeben. In diesem Fall ist der Säulenabschnitt des Adlernebels. Ich mag die Ergebnisse - obwohl Sie wieder einmal die Besessenheit mit gelben Streifen sehen können. Jeder vertikale Teil der Säule wird zu einer hellen, wackeligen gelben Linie. Es ist auch eindeutig verärgert über das Grün, das in den Trainingsdaten nicht vorgekommen ist, und tut sein Bestes, um es zugunsten von Blau und Schwarz loszuwerden.

Technologie

Einige Ergebnisse sind äußerst überzeugend, obwohl die Technik klare Einschränkungen aufweist. Einige Bilder haben eine lausige Komposition, und das System hat Schwierigkeiten mit abstrakteren Künstlern wie Picasso, die das Thema gerne verzerrten und dessen Eigenschaften zerstreuten. Der Algorithmus nimmt seine Winkellinien und Farbkollisionen auf, ist jedoch immer noch ein Sklave der Pixelwerte des Bildes. Es hat nicht das Verständnis, dass Sie zu weit vom Quellmaterial abweichen müssten.

Was mich an all dem aufregt, ist, dass ich nicht glaube, dass diese Einschränkungen grundlegend sind.

Der hier verwendete Ansatz - ein Netzwerk auf einem Bild trainieren und ein anderes konstruieren - ist im Grunde eine Art Hack. Es gibt dem Netzwerk sehr wenige Daten, mit denen es arbeiten kann. Eine fortgeschrittenere Version dieser Anwendung würde ein Netzwerk verwenden, das Informationen zu vielen Gemälden und möglicherweise sogar zu realen Bildern enthält, um dem Kontext, in dem sich das Bild befindet, einen umfassenden Kontext zu geben “Farbe.”

Ein tiefes Verständnis für Stil kann nur in einem breiteren Kontext bestehen. Sie können es nicht von einem einzelnen Bild ableiten. Das Entwerfen einer Architektur, die dem System Zugriff auf umfassendere Daten gewährt, kann dazu führen, dass weitere Informationen abgerufen werden “menschenähnlich” Verständnis des Bildes und wie Künstler verschiedene Elemente der realen Welt darstellen. Ein solches Netzwerk kann in der Lage sein, abstraktere Bilder zu erstellen, die besser zusammengesetzt sind. Solche Algorithmen würden aufhören, ein cooles Spielzeug (wie dieses) zu sein, und werden zu einer Möglichkeit, echte, originelle Kunst zu produzieren.

Was in gewisser Weise ein sehr eigenartiger Gedanke ist.

Machen Sie Ihre eigenen Bilder

Wenn Sie ein enttäuschendes Ergebnis erhalten, können Sie mit den Optionen ein wenig herumspielen, um überzeugendere Ergebnisse zu erzielen. Die vollständige Liste ist auf der Github. Die wichtigsten sind

  • -content_weight-value Wie viel Gewicht ist der Begriff für die Rekonstruktion der Inhalte? Die Standardeinstellung ist 5e0.
  • -style_weight-value: Wie viel Gewicht muss das Bild des Stils haben? Standardeinstellung ist 1e2.
  • -style_scale - value: Wie viele Bildfelder sollte das System analysieren (Größer wird abstrakter). Die Standardeinstellung ist 1.0.

Wenn Sie alles zu Ihrer Zufriedenheit erledigt haben, posten Sie bitte Ihre interessantesten Bilder in den Kommentaren. Ich bin wirklich daran interessiert zu sehen, was euch dazu bringt.

Bildnachweis: menschlicher Hirnmaler über Shutterstock

Erfahren Sie mehr über: Künstliche Intelligenz, Digitale Kunst, Geeky Science, Linux Desktop-Umgebung, Science Fiction.