如何在Windows 10(WSL)的Linux上运行PULSE(face-depixelizer)?讲解

2020年的一个春天晚上,我读了一篇有关人脸去像素器神经网络的文章经过研究,结果证明这是PULSE引擎的一种前端它基于StyleGAN神经网络(生成具有随机特征的人脸)。



在本教程中,我将引导您完成所有步骤,并演示如何在Windows 10(WSL)上安装Ubuntu,如何设置用于试用PULSE的环境,上传另一张原始照片并获得了不错的效果。

在PULSE中还原原始图像的结果

变形动画和视频教程-进一步。





给了我们什么





Face-Depixelizer是使用PULSE的前端。



PULSE是基于StyleGAN神经网络的引擎。它的含义是从模糊的照片中还原人脸的图像。顺便说一句,这是一个科学工作CFV



StyleGAN是NVidia产生的对抗神经网络,它生成不存在的人的随机面孔(实际上,如果这样的人已经存在,这将很有趣)。最后,





PULSE将大致告诉我们这张照片中眨眼的那个人的样子!





承担脉冲





我想知道PULSE的背后是什么,总的来说,它如何在本地启动。

出于兴趣,在对角地看了一篇科学文章之后,我开始思考如何开始以及如何建立所有这一切(尽管我从未为自己设定“神经网络”这一事实)。



我首先说,在github崩溃之前(如果您知道我的意思),我切换到了PULSE项目。作者指出该安装选项的位置:anaconda和python。那些。无论如何,都需要特定于平台的软件包(库)。我更是Windows用户,而不是Linux。但是,尽管如此,我还是希望在运行时无需编辑和繁琐的库选择。如果没有Linux,这是无法完成的。



前一段时间,一些IT专家正在谈论Windows中的Linux。我会告诉你的,对我来说是徒劳的。事情很方便,尽管尚未完成。

WSL是Windows的Linux子系统,允许开发人员直接在Windows上运行GNU / Linux环境,包括大多数命令行程序,实用程序和应用程序,而无需进行任何修改,从而不需要单独的虚拟机。


那些。这是从Windows访问Linux命令行。使用Linux的终端与cmd一样容易启动。方便。



让我们开始吧



要使用终端,请在此处和视频中使用Windows终端(来自Windows Store)。


简而言之



检查要求



  • 支持CUDA的NVidia视频卡(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. .




下载安装 anaconda。



安装PULSE



  1. 从github PULSE 下载
  2. 编辑pulse.yml:



    • 添加频道anaconda,conda-forge
    • 删除对特定程序集的引用
  3. 使用编辑后的文件安装PULSE环境
  4. 在Python中检查 Pytorch和CUDA Toolkit 性能。


实验中



  1. 使用pip将 Jupyter Notebook 更新到最新版本
  2. 调整图像(他们写道,PULSE适用于1024 * 1024的正方形图像和三个RGB通道,即没有透明度)
  3. 我们增加/减少步数和错误
  4. ...
  5. 利润!




上面是从中间图像创建的变形动画。



俗话说:“看一次比听一百次更好”。该视频显示了所有步骤,从更新WSL2开始和安装Ubuntu。







现在…



更多细节



要求



我将再次重复要求(...,并在进行第100次编辑后,我将第100次记得福勒):



  • Windows 10版本2004内部版本20150或更高版本
  • WSL2(4.19.121及更高版本)
  • 适用于WSL2的Ubuntu 18.04是Windows应用商店中的发行版。在所有Windows 10 Insider更新前滚后安装,包括。WSL2
  • NVidia驱动程序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. 此外,在系统参数“更新和安全”中:

    • 内部程序选项卡(如果为空白,请参见下面的“疑难解答”部分):



      1. 评估选项:抢先体验
      2. 点击“开始”。
    • Windows Update选项卡:



      1. 在“高级”中,确保允许“在更新时可以接收其他Microsoft产品的更新”(这是用于安装WSL2 4.19.121及更高版本)
      2. 我们正在更新。


检查:启动winver在打开的对话框中,查看版本。



NVidia驱动程序CUDA WSL


目的:安装最新版本的NVidia驱动程序CUDA WSL



我们该怎么做



  1. 转到页面
  2. 如果您尚未注册,我们将进行注册;同意参加实验计划
  3. 下载并安装。


验证:将处于“ CUDA可操作性检查”阶段



WSL2


目标:WSL2 4.19.121和更高版本的



预处理



  1. 我们将Windows更新为Windows 10版本2004内部版本20150及更高版本(如果未按照上述步骤更新)
  2. 如果在终端中执行后:



    wsl --update
    帮助的内容将显示(la wsl --help),那么您使用的是旧版本。然后继续执行以下步骤
  3. 如果显示的版本为4.19.121及更高版本,则我们跳过此阶段。


我们的工作



  1. 管理员身份启动PowerShell并按顺序执行:

    • 我们包括附加组件“ Linux的Windows子系统”:



      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    • 然后,启用“虚拟机平台”组件:



      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及更高版本。



WSL2上的Ubuntu 18.04


目标:预先在WSL2上



进行 Ubuntu 18.04的安装:如果先前已在Ubuntu 18.04上安装了WSL(如果我没有测试以下分支,但是如果您在注释中指定,谁会受到帮助将是很好的):



  • 我们在列表中检查它:



    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



准备Ubuntu



预备


  1. 更新包索引:



    sudo apt update
  2. 安装cmake(安装dlib):



    sudo apt install cmake
  3. 要解压缩zip归档文件,请安装例如unzip实用程序



    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


    该应用程序将显示兼容设备的列表。


安装Anaconda


  1. 链接下载发行版
  2. 跑:



    bash Anaconda3-2020.02-Linux-x86_64.sh


    在安装过程中:



    1. 同意许可
    2. 我们离开PREFIX
    3. 我们同意初始化
  3. 重新启动终端,或运行:



    source ~/.bashrc


在Anaconda中设置环境



配置PULSE


  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实用程序来完成:



      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


在python中检查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笔记本进行实验。

Jupyter Notebook是用于交互开发和展示数据科学项目的强大工具。




使用PULSE





让我们开始吧




  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(据我所知,这是优化的准确性; AI开发人员同志,请告诉我它是什么?)



    因此,例如,您需要增加一项或全部:步骤(输入大于400)和\或eps(输入eps = 0.0013或更多,即应使eps> = L2) ...

  4. 如果要查看每个步骤的中间照片,请添加参数-save_intermediate

    图像保存到文件夹runs/:在文件夹中HR-高分辨率,在文件夹中LR-低分辨率)


可能的问题如下。



解决问题



如果您不仅遇到错误,而且还解决了错误,请在这里添加。


Windows Insider程序中的白屏


选项:您在另一个用户下,您没有足够的特权。

解决方案:请参阅链接但是我无需更改注册表即可解决它。



CUDA示例无法开始


选项



  1. 不支援您的显示卡
  2. 您尚未推出最新的WSL2
  3. 您尚未安装NVidia驱动程序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 for WSL在CUDA上的安装说明
  2. WSL下用于CUDA的NVidia驱动程序
  3. 支持的CUDA视频卡列表
  4. CUDA示例
  5. 在Windows 10上安装WSL2的说明
  6. Windows Insider程序帮助和简介-Windows Early Access
  7. 在Linux系统上安装Anaconda的说明
  8. Anaconda发行清单
  9. Jupyter Notbook-分析和实验
  10. PULSE资料库
  11. 人脸去像素器存储库
  12. StyleGAN资料库



All Articles