Wie führe ich PULSE (Face-Depixelizer) unter Linux unter Windows 10 (WSL) aus? Lernprogramm

An einem Frühlingsabend im Jahr 2020 las ich einen Artikel über das neuronale Netz des Gesichtsdepixelisierers . Nach dem Studium stellte sich heraus, dass dies eine Art Frontend für die PULSE- Engine ist . Welches auf dem neuronalen StyleGAN- Netzwerk basiert (erzeugt Gesichter mit zufälligen Merkmalen).



In diesem Tutorial werde ich Sie durch die Schritte führen und zeigen, wie ich Ubuntu unter Windows 10 (WSL) installiert, eine Umgebung zum Experimentieren mit PULSE eingerichtet , ein weiteres Originalfoto hochgeladen und ein gutes Ergebnis erzielt habe .

Das Ergebnis der Wiederherstellung des Originalbilds in PULSE

Morph-Animation und Video-Tutorial - weiter.





Was wurde uns gegeben





Face-Depixelizer ist ein Frontend für die Arbeit mit PULSE.



PULSE ist eine Engine, die auf dem neuronalen StyleGAN-Netzwerk basiert. Seine Bedeutung ist, dass es Bilder des Gesichts einer Person von einem unscharfen Foto wiederherstellt. Übrigens ist dies eine wissenschaftliche Arbeit für CFV .



StyleGAN ist ein generatives kontradiktorisches neuronales Netzwerk von NVidia, das ein zufälliges Gesicht einer nicht existierenden Person erzeugt (in der Tat wird es lustig sein, wenn eine solche Person bereits existiert).





PULSE wird uns schließlich ungefähr sagen, wie dieselbe Person aussieht, die auf diesem Foto geblinzelt hat!





Den PULS annehmen





Ich fragte mich, was sich unter der Haube von PULSE befand und wie es im Allgemeinen lokal gestartet werden konnte.

Aus Interesse, nachdem ich einen wissenschaftlichen Artikel diagonal durchgesehen hatte, begann ich darüber nachzudenken, wie ich anfangen und wie ich all dies etablieren sollte (trotz der Tatsache, dass ich mir nie ein "neuronales Netzwerk" eingerichtet hatte).



Und ich begann damit, dass ich so schnell wie möglich, bevor der Github fiel (wenn Sie wissen, was ich meine), zum PULSE- Projekt wechselte . Wo der Autor diese Installationsoption angegeben hat: Anaconda und Python. Jene. In jedem Fall sind plattformspezifische Pakete (Bibliotheken) erforderlich. Ich bin eher ein Windows-Benutzer als Linux. Trotzdem möchte ich ohne Bearbeitung und mühsame Auswahl von Bibliotheken laufen. Und ohne Linux geht das nicht.



Vor einiger Zeit sprachen einige IT-Spezialisten über Linux in Windows. Und das sage ich dir für mich - vergebens. Das Ding ist praktisch, obwohl es noch nicht fertig ist.

Mit WSL , dem Windows-Subsystem für Linux, können Entwickler die GNU / Linux-Umgebung, einschließlich der meisten Befehlszeilenprogramme, Dienstprogramme und Anwendungen, ohne Änderungen direkt unter Windows ausführen, sodass keine separate virtuelle Maschine erforderlich ist.


Jene. Dies ist der Zugriff auf die Linux-Befehlszeile von Windows aus. Ein Terminal unter Linux ist so einfach zu starten wie cmd. Praktisch.



Lass uns anfangen



Um mit dem Terminal zu arbeiten, verwende ich hier und im Video das Windows-Terminal (aus dem Windows Store).


Zusamenfassend



Überprüfung der Anforderungen



  • NVidia-Grafikkarte mit CUDA-Unterstützung (StyleGAN-Neuronales Netzwerk verwendet CUDA). Liste der unterstützten Grafikkarten hier
  • NVidia CUDA WSL2 ( , ).
  • Windows 10 version 2004 build 20150 ( Windows Insider Program ), .
  • WSL2 (4.19.121 ; Windows) linux .
  • Ubuntu 18.04 WSL2 Windows Store.


Ubuntu





CUDA



  1. CUDA
  2. .




Laden Sie anaconda herunter und installieren Sie es .



Installieren Sie PULSE



  1. Herunterladen von github PULSE
  2. Puls.yml bearbeiten:



    • Fügen Sie Kanäle anaconda, conda-forge hinzu
    • Verweise auf bestimmte Baugruppen entfernen
  3. Installieren Sie die PULSE-Umgebung mithilfe der bearbeiteten Datei
  4. Überprüfen der Leistung von Pytorch und des CUDA Toolkit in Python.


Experimentieren



  1. Verwenden von Pip Update Jupyter Notebook auf die neueste Version
  2. Anpassen des Bildes (in der Ausgabe wird geschrieben, dass PULSE mit einem quadratischen Bild von 1024 * 1024 und drei RGB-Kanälen arbeitet, d. H. Ohne Transparenz)
  3. Wir erhöhen / verringern die Anzahl der Schritte und den Fehler
  4. ...
  5. PROFITIEREN!




Oben ist eine Morph-Animation dargestellt, die aus Zwischenbildern erstellt wurde.



Wie das Sprichwort sagt: "Es ist besser, einmal zu sehen als hundertmal zu hören". Das Video zeigt alle Schritte, beginnend mit der Aktualisierung von WSL2 und der Installation von Ubuntu.







Und jetzt…



Mehr Details



Bedarf



Ich werde die Anforderungen noch einmal wiederholen (... und nach der hundertsten Bearbeitung werde ich mich zum hundertsten Mal an Fowler erinnern):



  • Windows 10 Version 2004 Build 20150 oder höher
  • WSL2 (Version 4.19.121 und höher)
  • Ubuntu 18.04 für WSL2 ist die Distribution selbst aus dem Windows Store. Wird installiert, nachdem alle Windows 10 Insider-Updates vorwärts gerollt wurden. WSL2
  • NVidia Driver WSL ist eine experimentelle Version von Treibern mit Unterstützung für die neue Version von WSL2. Erfordert die Zustimmung zur Teilnahme am NVidia-Experimentalprogramm. Aber nicht jede Karte wird funktionieren .


Vorbereitung des Betriebssystems



Windows 10


Das Ziel : Windows 10 Version 2004 Build 20150 und höher



Vorbehandlung :



  1. Updates starten
  2. Anschließend winverüberprüfen wir mithilfe der Anwendung die aktuelle Windows-Version
  3. Wenn Ihre Windows-Version niedriger als Windows 10 Version 2004 Build 20150 ist, müssen Sie die folgenden Schritte ausführen
  4. Und wenn alles in Ordnung ist, herzlichen Glückwunsch, müssen Sie nicht am Windows Insider-Programm teilnehmen! Fühlen Sie sich frei, um mit der nächsten Stufe fortzufahren!


Was wir tun :



  1. Aufrufen des Windows Insider-Programms
  2. Weiter in den Systemparametern "Update und Sicherheit":

    • Registerkarte "Insider-Programm" (falls leer, siehe Abschnitt "Fehlerbehebung" unten):



      1. Bewertungsoptionen: Frühzeitiger Zugriff
      2. Klicken Sie auf "Start".
    • Registerkarte "Windows Update":



      1. Stellen Sie im Feld "Erweitert" sicher, dass "Beim Aktualisieren Updates für andere Microsoft-Produkte erhalten" zulässig ist (dies gilt für die Installation von WSL2 4.19.121 und höher).
      2. Wir aktualisieren.


Überprüfen Sie : Starten winver. Sehen Sie sich im folgenden Dialogfeld die Version an.



NVidia-Treiber CUDA WSL


Zweck : Installieren der neuesten Version des NVidia-Treibers CUDA WSL



Was tun wir :



  1. Gehen Sie zur Seite
  2. Wenn Sie sich noch nicht registriert haben, registrieren wir uns; erklären sich bereit, am experimentellen Programm teilzunehmen
  3. Herunterladen und installieren.


Überprüfung : befindet sich in der Phase der "CUDA-Funktionsfähigkeitsprüfung"



WSL2


Das Ziel : WSL2 Version 4.19.121 und höhere



Vorbehandlung :



  1. Wir aktualisieren Windows auf Windows 10 Version 2004 Build 20150 und höher, wenn nicht in den obigen Schritten aktualisiert
  2. Wenn nach der Ausführung im Terminal:



    wsl --update
    Der Inhalt der Hilfe wird angezeigt (a la wsl --help), dann haben Sie eine alte Version. Fahren Sie dann mit den folgenden Schritten fort
  3. Wenn eine Version ab 4.19.121 und höher angezeigt wird, überspringen wir diese Phase.


Was wir tun :



  1. Starten Sie PowerShell als Administrator und führen Sie es nacheinander aus:

    • Wir fügen die zusätzliche Komponente "Windows Subsystem for Linux" hinzu:



      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    • Aktivieren Sie dann die Komponente "Virtual Machine Platform":



      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    • Wir starten neu.
  2. WSL aktualisieren:



    wsl --update
  3. Als Nächstes installieren wir die zweite Version von WSL - als Standard für alle zukünftigen Distributionen:

    Starten Sie dazu PowerShell mit Administratorrechten und führen Sie Folgendes aus:



    wsl --set-default-version 2


Überprüfen Sie : Befehl:



wsl --update
[nach der Installation des Updates] zeigt Version 4.19.121 und höher an.



Ubuntu 18.04 auf WSL2


Das Ziel : Ubuntu 18.04 auf WSL2-



Vorbehandlung : Wenn (ich habe den folgenden Zweig nicht getestet, aber es wäre schön, wenn Sie in den Kommentaren angeben, wer konfrontiert ist, wenn geholfen wird) auf der WSL zuvor Ubuntu 18.04 installiert wurde:



  • Wir überprüfen es in der Liste:



    wsl --list --all -v
  • Wechseln Sie für diese Distribution die WSL-Version auf Version 2:



    wsl --set-version Distro 2


    Beispielsweise:



    wsl --set-version Ubuntu-18.04 2
  • Wir starten neu.


Was wir tun :



  1. Gehen Sie zum Windows Store
  2. Wir suchen nach Ubuntu 18.04 und installieren


Check : Terminal öffnen, ausführen:



wsl --list --all -v


sehen Ubuntu 18.04 Version 2



Ubuntu vorbereiten



Vorbereitung


  1. Aktualisieren der Paketindizes:



    sudo apt update
  2. Installieren Sie cmake (um dlib zu installieren):



    sudo apt install cmake
  3. Installieren Sie zum Entpacken von Zip-Archiven beispielsweise das Dienstprogramm zum Entpacken :



    sudo apt install unzip


Installieren des CUDA Toolkit


  1. Fügen Sie dem Paketindex CUDA hinzu:



    sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
    
    sudo sh -c 'echo "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64 /" > /etc/apt/sources.list.d/cuda.list'
    
    sudo apt update
  2. Installieren Sie das CUDA Toolkit:



    sudo apt install -y cuda-toolkit-11-0


Überprüfen der Leistung des CUDA Toolkit




Führen Sie dazu die Beispiele aus (das deviceQuery-Programm ist informativ):



  1. Wird heruntergeladen:



    wget https://github.com/NVIDIA/cuda-samples/archive/master.zip
  2. Entpacken:



    unzip master.zip
  3. Mach weiter und baue (alles):



    make
  4. Lauf:



    ./bin/x86_64/linux/release/deviceQuery


    Die Anwendung zeigt eine Liste kompatibler Geräte an.


Anaconda installieren


  1. Laden Sie die Distribution über den Link herunter
  2. Lauf:



    bash Anaconda3-2020.02-Linux-x86_64.sh


    Während der Installation:



    1. Stimmen Sie einer Lizenz zu
    2. Wir verlassen PREFIX
    3. Wir stimmen der Initialisierung zu
  3. Starten Sie das Terminal neu oder führen Sie Folgendes aus:



    source ~/.bashrc


Einrichten der Umgebung in Anaconda



PULSE konfigurieren


  1. Wird heruntergeladen:



    wget https://github.com/adamian98/pulse/archive/master.zip
  2. Entpacken:



    unzip master.zip
  3. Erstellen Sie ein Backup von puls.yml:



    cp pulse.yml pulse.yml.bak
  4. Fix puls.yml:



    1. Kanäle hinzufügen (dies sind Paketquellen):

      • conda-forge
      • Anakonda
    2. Wir entfernen alle Referenzen für eine bestimmte Version des Pakets.

      Beispiel : zstd=1.3.7=h5bba6e5_0Entfernen Sie den letzten Teil aus der Zeile " ", beginnend mit dem Gleichheitszeichen: " =h5bba6e5_0". Als Ergebnis erhalten wir " zstd=1.3.7".



      Wir machen das entweder von Hand oder über das Dienstprogramm sed:



      sed '/==/b; s/=\([^=]*\)$//' pulse.yml > pulse1.yml


      : , , "==", regexp
  5. pulse1.yml:



    conda env create -f pulse1.yml
  6. , - NotResolverPackage. libfortran 3.0.1:



    1. conda libfortran
    2. Anaconda Cloud Files (3.0.1), , , osx-64
    3. Anaconda Cloud, cloud-forge 3.0.0-1 linux-64. !
    4. pulse1.yml libfortran=3.0.1 libfortran=3.0.0=1
    5. :



      conda env create -f pulse1.yml
    6. , !
    7. Wenn Sie andere Pakete benötigen, achten Sie auf die Kanäle und fügen Sie diese gegebenenfalls hinzu.
  7. Wir warten darauf, dass es installiert wird
  8. Dann aktivieren wir:



    conda activate pulse


Überprüfen der Leistung von Pytorch und CUDA in Python


  1. Dieses Skript:



    from __future__ import print_function
    import torch
    x = torch.rand(5, 3)
    print(x)


    Sollte so etwas ausgeben:



    tensor([[0.3380, 0.3845, 0.3217],
    	[0.8337, 0.9050, 0.2650],
    	[0.2979, 0.7141, 0.9069],
    	[0.1449, 0.1132, 0.1375],
    	[0.4675, 0.3947, 0.1426]])
  2. Und das hier:



    import torch
    torch.cuda.is_available()


    Wird ausgegeben:



    True


In diesem Stadium können Sie theoretisch aufhören. Aber ich habe ein Jupyter-Notebook für Experimente installiert.

Jupyter Notebook ist ein unglaublich leistungsfähiges Tool zur interaktiven Entwicklung und Präsentation von Data Science-Projekten.




Arbeiten mit PULSE





Lass uns anfangen




  1. Wir aktivieren die Pulsumgebung:



    conda activate pulse
  2. Jupiter installieren:



    pip install jupyter
  3. Lauf:



    jupyter notebook
    Und weiter:

    1. Neues Notizbuch erstellen Neu-> Python3 (Notizbuch)
    2. Fügen Sie dort den Code aus der Datei ein
    3. Wir werfen die Quelldatei in das Stammverzeichnis des Projekts und benennen sie in source.png um:



      cp /mnt/c/Users//Desktop/face1.png source.png
    4. Wir starten. Wir warten


Anmerkungen


  1. , 500-800, eps
  2. :

    1. , , 1024*1024
    2. PNG
    3. (RGB) RGBA
  3. : "Could not find a face that downscales correctly within epsilon", :



    steps \ eps, , (steps), eps L2. .



    :



    BEST (400) | L2: 0.0013 GEOGROSS: | TOTAL: | time: ...


    Wenn 400 die (angegebene) erreichte Anzahl von Schritten (Schritten) ist, L2 der interessierende Wert ist, muss er kleiner sein als das angegebene EPS (so wie ich es verstehe, ist dies die Genauigkeit der Optimierung; Genossen KI-Entwickler, sagen Sie mir, was es ist?).



    So müssen Sie beispielsweise eine Sache oder alle zusammen erhöhen: Schritte (setzen Sie mehr als 400) und \ oder eps (setzen Sie eps = 0,0013 und mehr, d. H. Es sollte so sein, dass eps> = L2) ...

  4. Wenn Sie für jeden Schritt Zwischenfotos anzeigen möchten, fügen Sie den Parameter hinzu. -save_intermediate

    Bilder werden im Ordner gespeichert runs/: im Ordner HR- hohe Auflösung, im Ordner LR- niedrige Auflösung)


Mögliche Probleme sind unten.



Lösung von Problemen



Wenn Sie nicht nur auf Fehler gestoßen sind, sondern diese auch behoben haben, schreiben Sie, ich werde hier hinzufügen.


Weißer Bildschirm im Windows Insider-Programm


Option : Sie befinden sich unter einem anderen Benutzer und haben nicht genügend Berechtigungen.

Lösung : siehe Link . Aber ich habe es gelöst, ohne die Registrierung zu ändern.



CUDA-Proben starten nicht


Optionen :



  1. Ihre Grafikkarte wird nicht unterstützt
  2. Sie haben die neueste WSL2 nicht gewürfelt
  3. Sie haben nicht die neueste (experimentelle) Version von NVidia Driver CUDA WSL installiert


jupyter notebookWirft beim Start einen Fehler


Fehler : Start : This command cannot be run due to the error: The system cannot find the file specified.

Lösung : Kopieren Sie die Verbindungszeichenfolge in den Browser (ich habe andere Lösungen nicht verstanden).



Beim Starten von PULSE fällt ständig ein Fehler aus


Fehler : Google Quota Exceeded

Lösung : Kopieren Sie die Quelldatei von mir und werfen Sie sie in das Stammverzeichnis - in den Cache-Ordner (erstellen Sie sie, wenn sie nicht vorhanden ist).



Oder:



  1. Laden Sie die Datei über den ersten Google-Link von PULSE.py herunter
  2. Benennen Sie es mit der Vorlage md5hash _synthesis.pt um, wobei md5hash der md5-Hash der heruntergeladenen Datei ist (in der aktuellen Version ist es 6b943ee69b8491ac40e8e9ced6175659_synthesis.pt)
  3. Wir werfen es in den Cache-Ordner (erstellen Sie es, wenn es sich nicht im Stammverzeichnis des Verzeichnisses befindet, in dem sich PULSE befindet).


Beim Starten von PULSE oder beim Überprüfen von Pytorch wird ein Fehler ausgegeben


Fehler : ModuleNotFoundError: No module named 'torch'

Lösung : Wenn Sie Pytorch überprüft haben und es funktioniert, bedeutet dies, dass Sie die Pulsumgebung nicht aktiviert haben. Führen Sie dazu den folgenden Befehl aus:



conda activate pulse


Fazit



Der nächste Schritt besteht darin, StyleGAN und andere darauf basierende "neuronale Netze" zu untersuchen.

Ich würde mich freuen, Ihre Kommentare zum Artikel, Empfehlungen (einschließlich der Präsentation, da dies mein erster öffentlicher Artikel ist) und Änderungsanträge zu lesen.



Vielen Dank fürs Lesen!



Verweise und Links zu Dienstprogrammen, Treibern



  1. Installationsanweisungen für NVidia Driver for CUDA unter WSL
  2. NVidia-Treiber für CUDA unter WSL
  3. Liste der unterstützten CUDA-Grafikkarten
  4. CUDA-Beispiele
  5. Anweisungen zur Installation von WSL2 unter Windows 10
  6. Hilfe und Einführung zum Windows Insider-Programm - Windows Early Access
  7. Anweisungen zur Installation von Anaconda auf einem Linux-System
  8. Liste der Anaconda-Distributionen
  9. Jupyter Notbook - Analytik und Experimente
  10. PULSE-Repository
  11. Face-Depixelizer-Repository
  12. StyleGAN-Repository



All Articles