Bagaimana menjalankan PULSE (face-depixelizer) di Linux pada Windows 10 (WSL)? Tutorial

Suatu malam di musim semi tahun 2020, saya membaca sebuah artikel tentang jaringan saraf depixelizer wajah . Setelah mempelajarinya, ternyata ini adalah semacam frontend untuk mesin PULSE . Yang didasarkan pada jaringan saraf StyleGAN (menghasilkan wajah dengan fitur acak).



Dalam tutorial ini, saya akan memandu Anda melalui langkah-langkah dan menunjukkan bagaimana saya menginstal Ubuntu pada Windows 10 (WSL), mengatur lingkungan untuk bereksperimen dengan PULSA , mengunggah foto asli lain dan mendapatkan hasil yang baik.

Hasil mengembalikan gambar asli dalam PULSA

Animasi morf dan tutorial video - selanjutnya.





Apa yang telah diberikan kepada kita





Face-Depixelizer adalah antarmuka untuk bekerja dengan PULSE.



PULSE adalah mesin yang didasarkan pada jaringan saraf StyleGAN. Artinya adalah mengembalikan gambar wajah seseorang dari foto yang tidak jelas. Omong-omong, ini adalah karya ilmiah untuk CFV .



StyleGAN adalah jaringan saraf permusuhan generatif dari NVidia yang menghasilkan wajah acak dari orang yang tidak ada (pada kenyataannya, akan lucu jika orang seperti itu sudah ada).





PULSA , akhirnya, akan memberi tahu kami kira-kira seperti apa rupa orang yang berkedip dalam foto ini!





Mengambil PULSA





Saya bertanya-tanya apa yang ada di bawah tenda PULSE dan, secara umum, bagaimana itu bisa dimulai secara lokal.

Yang menarik, setelah melihat secara diagonal melalui artikel ilmiah, saya mulai berpikir tentang bagaimana memulainya dan bagaimana membangun semua ini (terlepas dari kenyataan bahwa saya tidak pernah menetapkan diri saya sebagai "jaringan saraf").



Dan saya mulai dengan mengatakan bahwa sesegera mungkin, sebelum github jatuh (jika Anda tahu apa yang saya maksud), saya beralih ke proyek PULSA . Di mana penulis menunjukkan opsi instalasi ini: anaconda dan python. Itu dalam hal apa pun, paket (pustaka) platform-spesifik diperlukan. Saya lebih sebagai pengguna Windows daripada Linux. Tetapi, sama saja, saya ingin menjalankan tanpa mengedit dan memilih perpustakaan yang membosankan. Dan tanpa Linux, ini tidak dapat dilakukan.



Beberapa waktu yang lalu, beberapa spesialis TI berbicara tentang Linux di Windows. Dan aku akan memberitahumu, untukku - sia-sia. Masalahnya nyaman, meskipun belum selesai.

WSL , Subsistem Windows untuk Linux, memungkinkan pengembang untuk menjalankan lingkungan GNU / Linux, termasuk sebagian besar program baris perintah, utilitas dan aplikasi, langsung pada Windows tanpa modifikasi apa pun, menghilangkan kebutuhan untuk mesin virtual terpisah.


Itu ini adalah akses ke baris perintah linux dari windows. Terminal dengan Linux semudah memulai sebagai cmd. Dengan nyaman.



Mari kita mulai



Untuk bekerja dengan terminal, di sini dan di video saya akan menggunakan Terminal Windows (dari Windows Store).


Pendeknya



Memeriksa persyaratan



  • Kartu video NVidia dengan dukungan CUDA (jaringan saraf StyleGAN menggunakan CUDA). Daftar kartu video yang didukung di sini
  • 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. .




Unduh dan instal anaconda.



Instal PULSA



  1. Mengunduh dari github PULSE
  2. Mengedit pulse.yml:



    • Tambahkan saluran anaconda, conda-forge
    • Menghapus referensi ke majelis tertentu
  3. Instal lingkungan PULSE menggunakan file yang diedit
  4. Memeriksa kinerja Pytorch dan CUDA Toolkit dengan Python.


Bereksperimen



  1. Menggunakan pip pembaruan jupyter notebook ke versi terbaru
  2. Menyesuaikan gambar (dalam edisi ini mereka menulis bahwa PULSA bekerja dengan gambar persegi 1024 * 1024 dan tiga saluran RGB, mis. Tanpa transparansi)
  3. Kami menambah / mengurangi jumlah langkah dan kesalahan
  4. ...
  5. KEUNTUNGAN!




Di atas adalah animasi morf yang dibuat dari gambar perantara.



Seperti kata pepatah: "lebih baik melihat sekali daripada mendengar seratus kali". Video menunjukkan semua langkah, mulai dengan memperbarui WSL2 dan menginstal Ubuntu.







Dan sekarang…



Keterangan lebih lanjut



Persyaratan



Sekali lagi saya akan mengulangi persyaratannya ...



  • Windows 10 versi 2004 build 20150 atau lebih tinggi
  • WSL2 (versi 4.19.121 dan lebih tinggi)
  • Ubuntu 18.04 untuk WSL2 adalah distribusi itu sendiri dari Windows Store. Diinstal setelah semua pembaruan Windows 10 Insider digulung ke depan , termasuk. WSL2
  • NVidia Driver WSL adalah versi eksperimental driver dengan dukungan untuk versi baru WSL2. Membutuhkan persetujuan untuk berpartisipasi dalam Program Eksperimental NVidia. Tetapi tidak setiap kartu akan berfungsi .


Persiapan OS



Windows 10


Tujuannya : Windows 10 versi 2004 build 20150 dan di atas



pretreatment di atas :



  1. Meluncurkan pembaruan
  2. Kemudian, menggunakan aplikasi winver, kami memeriksa versi Windows saat ini
  3. Jika versi Windows Anda lebih rendah dari Windows 10 versi 2004 build 20150, maka Anda harus mengikuti langkah-langkah di bawah ini
  4. Dan jika semuanya baik-baik saja, selamat, Anda tidak harus bergabung dengan Program Windows Insider! Jangan ragu untuk melanjutkan ke tahap berikutnya!


Apa yang kita lakukan :



  1. Memasuki Program Windows Insider
  2. Selanjutnya, dalam parameter sistem "Pembaruan dan Keamanan":

    • Tab Program Orang Dalam (jika kosong, lihat bagian Pemecahan Masalah di bawah):



      1. Opsi Evaluasi: Akses Awal
      2. Klik "Mulai".
    • Tab Pembaruan Windows:



      1. Dalam "Advanced" pastikan untuk mengizinkan "Ketika memperbarui untuk menerima pembaruan untuk produk Microsoft lainnya" (ini untuk menginstal WSL2 4.19.121 dan lebih tinggi)
      2. Kami memperbarui.


Periksa : luncurkan winver. Di kotak dialog yang terbuka, lihat versi.



NVidia Driver CUDA WSL


Tujuan : Menginstal versi terbaru NVidia Driver CUDA WSL



Apa yang kita lakukan :



  1. Pergi ke halaman
  2. Jika Anda belum mendaftar, kami mendaftar; setuju untuk berpartisipasi dalam program eksperimental
  3. Unduh dan pasang.


Verifikasi : akan berada pada tahap "CUDA operability check"



WSL2


Tujuannya : WSL2 versi 4.19.121 dan



pretreatment yang lebih tinggi :



  1. Kami memperbarui Windows ke Windows 10 versi 2004 build 20150 dan lebih tinggi, jika tidak memperbarui pada langkah-langkah di atas
  2. Jika, setelah dieksekusi di terminal:



    wsl --update
    isi bantuan akan ditampilkan (ala wsl --help), maka Anda memiliki versi lama. Kemudian lanjutkan ke langkah-langkah di bawah ini
  3. Jika versi dari 4.19.121 dan lebih tinggi ditampilkan, maka kami melewati tahap ini.


Apa yang kita lakukan :



  1. Luncurkan PowerShell sebagai admin dan jalankan secara berurutan:

    • Kami menyertakan komponen tambahan "Subsistem Windows untuk Linux":



      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    • Kemudian, aktifkan komponen "Platform Mesin Virtual":



      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    • Kami reboot.
  2. Memperbarui WSL:



    wsl --update
  3. Selanjutnya, kami memasang versi kedua WSL - sebagai default untuk semua distribusi di masa mendatang:

    Untuk melakukan ini, luncurkan PowerShell dengan hak admin dan jalankan:



    wsl --set-default-version 2


Periksa : perintah:



wsl --update
[setelah menginstal pembaruan] akan menampilkan versi 4.19.121 dan lebih tinggi.



Ubuntu 18.04 di WSL2


Tujuannya : Ubuntu 18.04 pada



pretreatment WSL2 : if (Saya belum menguji cabang berikut, tapi alangkah baiknya jika Anda tentukan dalam komentar, siapa yang berhadapan jika dibantu) di WSL sebelumnya menginstal Ubuntu 18.04:



  • Kami memeriksanya dalam daftar:



    wsl --list --all -v
  • Untuk distribusi ini, alihkan versi WSL ke ver.2:



    wsl --set-version Distro 2


    Sebagai contoh:



    wsl --set-version Ubuntu-18.04 2
  • Kami reboot.


Apa yang kita lakukan :



  1. Pergi ke Windows Store
  2. Kami mencari Ubuntu 18.04 dan menginstal


Periksa : buka terminal, jalankan:



wsl --list --all -v


Lihat Ubuntu 18.04 Version 2



Mempersiapkan Ubuntu



Pra-persiapan


  1. Memperbarui indeks paket:



    sudo apt update
  2. Instal cmake (untuk menginstal dlib):



    sudo apt install cmake
  3. Untuk membongkar arsip zip, instal, misalnya, utilitas unzip :



    sudo apt install unzip


Menginstal CUDA Toolkit


  1. Tambahkan CUDA ke indeks paket:



    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. Instal CUDA Toolkit:



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


Memeriksa kinerja CUDA Toolkit




Untuk melakukan ini, jalankan contoh (program deviceQuery informatif):



  1. Mengunduh:



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



    unzip master.zip
  3. Maju dan bangun (semuanya):



    make
  4. Lari:



    ./bin/x86_64/linux/release/deviceQuery


    Aplikasi akan menampilkan daftar perangkat yang kompatibel.


Menginstal Anaconda


  1. Unduh distribusi dari tautan
  2. Lari:



    bash Anaconda3-2020.02-Linux-x86_64.sh


    Selama instalasi:



    1. Setuju dengan lisensi
    2. Kami meninggalkan PREFIX
    3. Kami setuju untuk inisialisasi
  3. Mulai ulang terminal, atau jalankan:



    source ~/.bashrc


Menyiapkan lingkungan di anaconda



Mengkonfigurasi PULSA


  1. Mengunduh:



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



    unzip master.zip
  3. Buat cadangan pulse.yml:



    cp pulse.yml pulse.yml.bak
  4. Perbaiki pulse.yml:



    1. Tambahkan saluran (ini adalah sumber paket):

      • conda-forge
      • anaconda
    2. Kami menghapus semua referensi untuk versi spesifik dari paket.

      Contoh : zstd=1.3.7=h5bba6e5_0hapus bagian terakhir dari baris " ", dimulai dengan tanda sama dengan: " =h5bba6e5_0". Akibatnya, kami mendapat " zstd=1.3.7".



      Kami melakukannya dengan tangan atau melalui utilitas 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. Jika Anda membutuhkan paket lain, pastikan untuk memperhatikan saluran, tambahkan jika perlu.
  7. Kami sedang menunggu untuk diinstal
  8. Kemudian kita aktifkan:



    conda activate pulse


Memeriksa kinerja Pytorch dan CUDA dalam python


  1. Skrip ini:



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


    Haruskah hasilkan sesuatu seperti ini:



    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. Dan yang satu ini:



    import torch
    torch.cuda.is_available()


    Akan menghasilkan:



    True


Pada tahap ini, secara teori, Anda bisa berhenti. Tapi saya pergi ke depan dan menginstal notebook jupyter untuk percobaan.

Jupyter Notebook adalah alat yang luar biasa ampuh untuk mengembangkan dan mempresentasikan proyek ilmu data secara interaktif.




Bekerja dengan PULSA





Mari kita mulai




  1. Kami mengaktifkan lingkungan pulsa:



    conda activate pulse
  2. Memasang Jupiter:



    pip install jupyter
  3. Lari:



    jupyter notebook
    Dan selanjutnya:

    1. Buat buku catatan baru Baru-> Python3 (buku catatan)
    2. Rekatkan kode dari file di sana
    3. Kami membuang file sumber ke root proyek, menamainya menjadi source.png:



      cp /mnt/c/Users//Desktop/face1.png source.png
    4. Kami meluncurkan. Kami menunggu


Catatan


  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: ...


    Di mana 400 adalah (ditentukan) jumlah langkah yang dicapai (langkah), L2 adalah nilai yang menarik, itu harus kurang dari eps yang ditentukan (seperti yang saya mengerti, ini adalah akurasi optimasi; kawan pengembang AI, katakan padaku apa itu?).



    Jadi, misalnya, Anda perlu meningkatkan satu hal atau bersama-sama: langkah (masukkan lebih dari 400) dan \ atau eps (cantumkan eps = 0,0013 dan lebih banyak, mis. Itu harus sedemikian sehingga eps> = L2) ...

  4. Jika Anda ingin melihat foto antara untuk setiap langkah, tambahkan parameter -save_intermediate

    Gambar disimpan ke folder runs/: di folder HR- resolusi tinggi, di folder LR- resolusi rendah)


Kemungkinan masalah ada di bawah ini.



Solusi masalah



Jika Anda tidak hanya menemukan kesalahan, tetapi juga menyelesaikannya, tulis, saya akan menambahkan di sini.


Layar Putih dalam Program Windows Insider


Opsi : Anda berada di bawah pengguna yang berbeda, Anda tidak memiliki cukup hak istimewa.

Solusi : lihat tautan . Tapi saya menyelesaikannya tanpa mengubah registri.



Sampel CUDA tidak dimulai


Opsi :



  1. Kartu grafis Anda tidak didukung
  2. Anda belum meluncurkan WSL2 terbaru
  3. Anda belum menginstal versi terbaru (percobaan) dari NVidia Driver CUDA WSL


jupyter notebookMelempar kesalahan saat startup


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

Solusi : salin string koneksi ke browser (saya tidak mengerti solusi lain).



Saat memulai PULSA, kesalahan terus-menerus hilang


Kesalahan : Google Quota Exceeded

Solusi : salin file sumber dari saya dan buang ke root - ke folder cache (buat jika tidak ada).



Atau:



  1. Unduh file menggunakan tautan google pertama dari PULSE.py
  2. Ganti nama menggunakan md5hash template _synthesis.pt , di mana md5hash adalah hash md5 dari file yang diunduh (dalam versi saat ini 6b943ee69b8491ac40e8e9ced6175659_synthesis.pt)
  3. Kami membuangnya ke folder cache (buat jika tidak di root direktori tempat PULSE berada)


Saat memulai PULSA atau memeriksa Pytorch melempar kesalahan


Kesalahan : ModuleNotFoundError: No module named 'torch'

Solusi : Jika Anda telah menguji pytorch dan berfungsi, itu berarti Anda belum mengaktifkan lingkungan pulsa. Untuk melakukan ini, jalankan perintah berikut:



conda activate pulse


Kesimpulan



Langkah selanjutnya adalah mempelajari StyleGAN dan "jaringan saraf" lainnya berdasarkan itu.

Saya akan senang membaca komentar Anda pada artikel, rekomendasi (termasuk pada presentasi, karena ini adalah artikel publik pertama saya), amandemen.



Terima kasih sudah membaca!



Referensi dan tautan ke utilitas, driver



  1. Petunjuk instalasi untuk NVidia Driver untuk CUDA di WSL
  2. Driver NVidia untuk CUDA di bawah WSL
  3. Daftar kartu video CUDA yang didukung
  4. Contoh CUDA
  5. Petunjuk untuk menginstal WSL2 pada Windows 10
  6. Bantuan & Pendahuluan Program Windows Insider - Windows Early Access
  7. Petunjuk untuk menginstal Anaconda di sistem Linux
  8. Daftar distribusi Anaconda
  9. Jupyter Notbook - Analisis dan Eksperimen
  10. PULSA repositori
  11. Repositori Face-Depixelizer
  12. Repositori StyleGAN



All Articles