كيفية تشغيل PULSE (Face-depixelizer) على Linux على Windows 10 (WSL)؟ الدورة التعليمية

في أحد أمسيات الربيع في عام 2020 ، قرأت مقالًا حول الشبكة العصبية لمزيل الوجه . بعد دراسته ، اتضح أن هذا هو نوع من الواجهة الأمامية لمحرك PULSE . والذي يعتمد على الشبكة العصبية StyleGAN (يولد وجوهًا بميزات عشوائية).



في هذا البرنامج التعليمي ، سأرشدك خلال الخطوات وأظهر كيف قمت بتثبيت Ubuntu على Windows 10 (WSL) ، وقم بإعداد بيئة للتجربة مع PULSE ، وحمل صورة أصلية أخرى وحصلت على نتيجة جيدة.

نتيجة استعادة الصورة الأصلية في PULSE

الرسوم المتحركة مورف وتعليمي الفيديو - مزيد.





ما أعطانا





Face-Depixelizer هو الواجهة الأمامية للعمل مع PULSE.



PULSE هو محرك يعتمد على الشبكة العصبية StyleGAN. معناه أنه يعيد صور وجه الشخص من صورة ضبابية. وبالمناسبة ، هذا عمل علمي لـ CFV .



StyleGAN عبارة عن شبكة عصبية خصمية مولدة من NVidia تولد وجهًا عشوائيًا لشخص غير موجود (في الواقع ، سيكون الأمر مضحكًا إذا كان مثل هذا الشخص موجودًا بالفعل). أخيرًا ، سيخبرنا





PULSE تقريبًا كيف يبدو نفس الشخص الذي رمش في هذه الصورة!





أخذ النبض





تساءلت عما كان تحت غطاء PULSE ، وبشكل عام ، كيف يمكن أن يبدأ محليًا.

للاهتمام ، بعد أن نظرت قطريًا من خلال مقال علمي ، بدأت أفكر في كيفية البدء وكيفية تأسيس كل شيء (على الرغم من حقيقة أنني لم أضع نفسي يومًا "شبكة عصبية").



وبدأت بالقول أنه في أقرب وقت ممكن ، قبل سقوط جيثب (إذا كنت تعرف ما أعنيه) ، تحولت إلى مشروع بولس . حيث أشار المؤلف إلى خيار التثبيت هذا: اناكوندا وبيثون. أولئك. في أي حال ، الحزم الخاصة بالنظام الأساسي (المكتبات) مطلوبة. أنا مستخدم Windows أكثر من Linux. ولكن ، على الرغم من ذلك ، أود أن أركض بدون تحرير واختيار المكتبات المملة. وبدون لينكس ، لا يمكن القيام بذلك.



منذ بعض الوقت ، كان بعض متخصصي تكنولوجيا المعلومات يتحدثون عن Linux في Windows. وسأخبركم بذلك ، بالنسبة لي - عبثا. الشيء مريح ، على الرغم من أنه لم يكتمل بعد.

WSL ، نظام Windows الفرعي لـ Linux ، يسمح للمطورين بتشغيل بيئة GNU / Linux ، بما في ذلك معظم برامج سطر الأوامر والأدوات المساعدة والتطبيقات ، مباشرة على Windows دون أي تعديل ، مما يلغي الحاجة إلى جهاز افتراضي منفصل.


أولئك. هذا هو الوصول إلى سطر الأوامر لينكس من النوافذ. من السهل أن تبدأ محطة مع Linux مثل cmd. ملائم.



هيا بنا نبدأ



للعمل مع الجهاز الطرفي ، هنا وفي الفيديو سأستخدم Windows Terminal (من متجر Windows).


باختصار



التحقق من المتطلبات



  • بطاقة فيديو NVidia مع دعم CUDA (تستخدم الشبكة العصبية StyleGAN CUDA). قائمة بطاقات الفيديو المدعومة هنا
  • 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. .




تحميل و تثبيت اناكوندا.



قم بتثبيت PULSE



  1. التحميل من جيثب بولس
  2. تحرير pulse.yml:



    • إضافة قنوات اناكوندا ، كوندا فورج
    • إزالة مراجع لتجمعات معينة
  3. قم بتثبيت بيئة PULSE باستخدام الملف المحرر
  4. التحقق من أداء Pytorch ومجموعة أدوات CUDA في Python.


تجريب



  1. استخدام دفتر الملاحظات jupyter تحديث النقطة إلى أحدث إصدار
  2. ضبط الصورة (في العدد يكتبون أن PULSE يعمل مع صورة مربعة 1024 * 1024 وثلاث قنوات RGB ، أي بدون شفافية)
  3. نقوم بزيادة / تقليل عدد الخطوات والخطأ
  4. ...
  5. ربح!




أعلاه عبارة عن رسم متحرك تم إنشاؤه من صور وسيطة.



كما يقول المثل: "من الأفضل أن ترى مرة واحدة من أن تسمع مائة مرة". يعرض الفيديو جميع الخطوات ، بدءًا من تحديث WSL2 وتثبيت Ubuntu.







و الأن…



المزيد من التفاصيل



المتطلبات



مرة أخرى سأكرر المتطلبات (... وبعد التحرير المائة ، سوف أتذكر فاولر للمرة المائة):



  • إصدار Windows 10 2004 بناء 20150 أو أعلى
  • WSL2 (الإصدار 4.19.121 وأعلى)
  • Ubuntu 18.04 لـ WSL2 هو التوزيع نفسه من متجر Windows. تم التثبيت بعد تقديم جميع تحديثات Windows 10 Insider إلى الأمام ، بما في ذلك. WSL2
  • NVidia Driver WSL هو إصدار تجريبي من برامج التشغيل مع دعم الإصدار الجديد من WSL2. يتطلب الموافقة للمشاركة في برنامج NVidia التجريبي. ولكن لن تعمل كل بطاقة .


إعداد نظام التشغيل



نظام التشغيل Windows 10


الهدف : إصدار Windows 10 2004 بناء 20150 وما فوق



المعالجة المسبقة :



  1. إطلاق التحديثات
  2. ثم ، باستخدام التطبيق winver، نتحقق من الإصدار الحالي من Windows
  3. إذا كان إصدار Windows لديك أقل من إصدار Windows 10 2004 بناء 20150 ، فستحتاج إلى اتباع الخطوات أدناه
  4. وإذا كان كل شيء على ما يرام ، تهانينا ، فلن تضطر إلى الانضمام إلى برنامج Windows Insider! لا تتردد في الانتقال إلى المرحلة التالية!


ماذا نفعل :



  1. دخول برنامج Windows Insider
  2. علاوة على ذلك ، في معلمات النظام "التحديث والأمن":

    • علامة تبويب برنامج Insider (إذا كانت فارغة ، راجع قسم استكشاف الأخطاء وإصلاحها أدناه):



      1. خيارات التقييم: الوصول المبكر
      2. انقر فوق "ابدأ".
    • علامة التبويب Windows Update:



      1. في "Advanced" ، تأكد من السماح "عند التحديث لتلقي تحديثات لمنتجات Microsoft الأخرى" (هذا لتثبيت WSL2 4.19.121 والأحدث)
      2. نحن نقوم بتحديث.


تحقق : الإطلاق winver. في مربع الحوار الذي يفتح ، انظر إلى الإصدار.



برنامج تشغيل NVidia CUDA WSL


الغرض : تثبيت أحدث إصدار من NVidia Driver CUDA WSL



ماذا نفعل :



  1. انتقل إلى الصفحة
  2. إذا لم تقم بالتسجيل بعد ، فإننا نسجل ؛ توافق على المشاركة في البرنامج التجريبي
  3. تنزيل وتثبيت.


التحقق : ستكون في مرحلة "فحص تشغيل CUDA"



WSL2


الهدف : الإصدار 4.19.121 من WSL2 وأعلى



المعالجة :



  1. نقوم بتحديث Windows إلى Windows 10 الإصدار 2004 بناء 20150 والإصدارات الأحدث ، إذا لم يتم التحديث في الخطوات أعلاه
  2. إذا ، بعد التنفيذ في المحطة:



    wsl --update
    سيتم عرض محتويات المساعدة (أ لا wsl --help) ، ثم لديك نسخة قديمة. ثم انتقل إلى الخطوات أدناه
  3. إذا تم عرض إصدار من 4.19.121 وأعلى ، فإننا نتخطى هذه المرحلة.


ماذا نفعل :



  1. إطلاق بوويرشيل باعتباره المشرف وتنفيذ بالتتابع:

    • قمنا بتضمين المكون الإضافي "Windows Subsystem for Linux":



      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    • بعد ذلك ، قم بتمكين مكون "Virtual Machine Platform":



      dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    • نعيد التشغيل.
  2. تحديث WSL:



    wsl --update
  3. بعد ذلك ، نقوم بتثبيت الإصدار الثاني من WSL - كافتراضي لجميع التوزيعات المستقبلية:

    للقيام بذلك ، قم بتشغيل PowerShell بحقوق المسؤول وقم بتنفيذ:



    wsl --set-default-version 2


تحقق : الأمر:



wsl --update
سيعرض [بعد تثبيت التحديث] الإصدار 4.19.121 وأعلى.



أوبونتو 18.04 على WSL2


الهدف : Ubuntu 18.04 على



المعالجة المسبقة لـ WSL2 : إذا (لم أختبر الفرع التالي ، ولكن سيكون من اللطيف إذا حددت في التعليقات ، الذي واجهته إذا ساعدت) على WSL تم تثبيت Ubuntu 18.04 مسبقًا:



  • نتحقق منها في القائمة:



    wsl --list --all -v
  • بالنسبة لهذا التوزيع ، قم بتبديل إصدار WSL إلى الإصدار 2:



    wsl --set-version Distro 2


    فمثلا:



    wsl --set-version Ubuntu-18.04 2
  • نعيد التشغيل.


ماذا نفعل :



  1. انتقل إلى متجر Windows
  2. نحن نبحث عن Ubuntu 18.04 وتثبيته


تحقق : افتح محطة طرفية ، نفذ:



wsl --list --all -v


نرى Ubuntu 18.04 Version 2



تحضير أوبونتو



التحضير المسبق


  1. تحديث مؤشرات الحزمة:



    sudo apt update
  2. تثبيت cmake (لتثبيت dlib):



    sudo apt install cmake
  3. لفك ضغط الملفات المضغوطة ، قم بتثبيت ، على سبيل المثال ، أداة فك الضغط :



    sudo apt install unzip


تثبيت مجموعة أدوات CUDA


  1. أضف CUDA إلى فهرس الحزمة:



    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. تثبيت مجموعة أدوات CUDA:



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


التحقق من أداء مجموعة أدوات CUDA




للقيام بذلك ، قم بتشغيل الأمثلة (برنامج deviceQuery مفيد):



  1. جارى التحميل:



    wget https://github.com/NVIDIA/cuda-samples/archive/master.zip
  2. فك الضغط:



    unzip master.zip
  3. المضي قدما وبناء (كل شيء):



    make
  4. يركض:



    ./bin/x86_64/linux/release/deviceQuery


    سيعرض التطبيق قائمة بالأجهزة المتوافقة.


تثبيت اناكوندا


  1. قم بتنزيل التوزيع من الرابط
  2. يركض:



    bash Anaconda3-2020.02-Linux-x86_64.sh


    أثناء التثبيت:



    1. الموافقة على الترخيص
    2. نترك PREFIX
    3. نحن نوافق على التهيئة
  3. أعد تشغيل الوحدة الطرفية ، أو قم بتشغيل:



    source ~/.bashrc


تهيئة البيئة في اناكوندا



تكوين النبض


  1. جارى التحميل:



    wget https://github.com/adamian98/pulse/archive/master.zip
  2. فك الضغط:



    unzip master.zip
  3. قم بإنشاء نسخة احتياطية من pulse.yml:



    cp pulse.yml pulse.yml.bak
  4. إصلاح pulse.yml:



    1. أضف القنوات (هذه مصادر الحزم):

      • كوندا - فورج
      • اناكوندا
    2. نقوم بإزالة جميع المراجع الخاصة بإصدار معين من الحزمة.

      مثال : zstd=1.3.7=h5bba6e5_0قم بإزالة الجزء الأخير من السطر " " ، بدءًا بعلامة المساواة: " =h5bba6e5_0". نتيجة لذلك ، نحصل على " zstd=1.3.7".



      نقوم بذلك إما باليد أو من خلال الأداة المساعدة:



      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. إذا كنت بحاجة إلى حزم أخرى ، فتأكد من الانتباه إلى القنوات ، وقم بإضافة إذا لزم الأمر.
  7. نحن في انتظار تثبيته
  8. ثم نقوم بتفعيل:



    conda activate pulse


التحقق من أداء Pytorch و CUDA في الثعبان


  1. هذا البرنامج النصي:



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


    يجب إخراج شيء مثل هذا:



    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. و هذه:



    import torch
    torch.cuda.is_available()


    سيخرج:



    True


في هذه المرحلة ، من الناحية النظرية ، يمكنك التوقف. لكنني مضت قدما وقمت بتثبيت دفتر ملاحظات جوبيتر للتجارب.

Jupyter Notebook هو أداة قوية بشكل لا يصدق لتطوير وعرض مشاريع علم البيانات بشكل تفاعلي.




العمل مع نبض





هيا بنا نبدأ




  1. نقوم بتنشيط بيئة النبض:



    conda activate pulse
  2. تثبيت المشتري:



    pip install jupyter
  3. يركض:



    jupyter notebook
    وكذلك:

    1. إنشاء مفكرة جديدة New-> Python3 (مفكرة)
    2. الصق الرمز من الملف هناك
    3. نرمي الملف المصدر في جذر المشروع ، ونعيد تسميته إلى source.png:



      cp /mnt/c/Users//Desktop/face1.png source.png
    4. أطلقنا. ننتظر


ملاحظات


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


    حيث 400 هو عدد الخطوات (الخطوات) التي تم تحقيقها (المحدد) ، L2 هي قيمة الفائدة ، يجب أن تكون أقل من eps المحدد (كما أفهمها ، هذه هي دقة التحسين ؛ أيها الرفاق مطوري الذكاء الاصطناعي ، أخبرني ما هو؟).



    لذا ، على سبيل المثال ، تحتاج إلى زيادة شيء واحد أو الكل معًا: الخطوات (ضع أكثر من 400) و \ أو eps (ضع eps = 0.0013 وأكثر ، على سبيل المثال يجب أن يكون eps> = L2) ...

  4. إذا كنت ترغب في رؤية صور وسيطة لكل خطوة ، أضف المعلمة -save_intermediate

    يتم حفظ الصور في المجلد runs/: في المجلد HR- دقة عالية ، في المجلد LR- دقة منخفضة)


المشاكل المحتملة أدناه.



حل المشاكل



إذا لم تواجه أخطاء فحسب ، بل قمت أيضًا بحلها ، فاكتب ، سأضيف هنا.


شاشة بيضاء في برنامج Windows Insider


الخيار : أنت تحت مستخدم مختلف ، ليس لديك امتيازات كافية.

الحل : انظر الرابط . لكني قمت بحلها دون تغيير التسجيل.



لا تبدأ عينات CUDA


الخيارات :



  1. بطاقة الرسومات الخاصة بك غير مدعومة
  2. لم تقم بتدوير أحدث WSL2
  3. لم تقم بتثبيت أحدث إصدار (تجريبي) من NVidia Driver CUDA WSL


jupyter notebookيلقي خطأ عند بدء التشغيل


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

الحل : انسخ سلسلة الاتصال إلى المتصفح (لم أفهم الحلول الأخرى).



عند بدء تشغيل PULSE ، يحدث خطأ باستمرار


خطأ : Google Quota Exceeded

الحل : انسخ الملف المصدر مني وألقيه إلى الجذر - إلى مجلد ذاكرة التخزين المؤقت (قم بإنشائه إذا لم يكن موجودًا).



أو:



  1. قم بتنزيل الملف باستخدام رابط google الأول من PULSE.py
  2. إعادة تسميته باستخدام القالب md5hash _synthesis.pt ، حيث md5hash هو تجزئة md5 للملف الذي تم تنزيله (في الإصدار الحالي هو 6b943ee69b8491ac40e8e9ced6175659_synthesis.pt)
  3. نرميه في مجلد ذاكرة التخزين المؤقت (قم بإنشائه إذا لم يكن في جذر الدليل حيث يوجد PULSE)


عند بدء PULSE أو التحقق من Pytorch يطرح خطأ


خطأ : ModuleNotFoundError: No module named 'torch'

الحل : إذا راجعت pytorch وكان يعمل ، فهذا يعني أنك لم تقم بتنشيط بيئة النبض. للقيام بذلك ، قم بتشغيل الأمر التالي:



conda activate pulse


خاتمة



الخطوة التالية هي دراسة StyleGAN و "الشبكات العصبية" الأخرى بناءً على ذلك.

يسعدني أن أقرأ تعليقاتكم على المقالة ، والتوصيات (بما في ذلك على العرض ، لأن هذه هي مقالتي العامة الأولى) ، والتعديلات.



شكرا لكم جميعا على القراءة!



مراجع وروابط للمرافق والسائقين



  1. تعليمات التثبيت لبرنامج NVidia Driver لـ CUDA على WSL
  2. برامج تشغيل NVidia لـ CUDA تحت WSL
  3. قائمة بطاقات الفيديو CUDA المدعومة
  4. أمثلة CUDA
  5. تعليمات تثبيت WSL2 على Windows 10
  6. تعليمات ومقدمات برنامج Windows Insider - الوصول المبكر لـ Windows
  7. تعليمات تثبيت Anaconda على نظام Linux
  8. قائمة توزيعات أناكوندا
  9. Jupyter Notbook - التحليلات والتجارب
  10. مستودع النبض
  11. مستودع Face-Depixelizer
  12. مستودع StyleGAN



All Articles