PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)

前提

美国如火如荼进行的BLM(黑命贵)运动。已经从民间上升到了政界,渗透进商业界,如今已经深入到了AI界

最近,图灵奖得主、人工智能标杆人物Yann LeCun,因为一则言论被群攻,迫不得已出来道歉。而这起事件的导火索,正是最近突然爆火的PULSE算法

该算法由杜克大学推出,可以将模糊的照片秒变清晰,效果出奇的好。这项研究在CVPR 2020上发表,论文标题为《PULSE:通过对生成模型的潜在空间探索实现自监督照片上采样(论文连接:PULSE:Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models)。

正当大家兴致勃勃的把玩的时候,谁料PULSE竟莫名闯了祸。

一张照片引发AI社区大争议,Yann LeCun发推先解释后道歉。

有人发现,将一张奥巴马的模糊照片,用PULSE洗出来以后,变成了一个白人!真•洗白?

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第1张图片

这下美国网民不干了,纷纷将斗争的矛头指向了人工智能。

一向敢说的Yann LeCun,就这张照片发推表示:「结果的偏差,原因在于数据的偏差。为什么PULSE会出现奥巴马被洗白的情况?因为它是在FlickFaceHQ上进行预训练,这个数据集里基本都是白人照片。如果换成来自塞内加尔的数据集,训练完全相同的系统,那必然是每个人都看起来像非洲人。」

这下很多AI研究人员、从业者也不干了,纷纷将斗争的矛头指向了LeCun。

[以上内容来自 搜狐新闻 ]: www.sohu.com/a/404339367_100191017 " 图灵奖得主道歉 因爆火的PULSE算法卷入“种族歧视”风波“

PULSE算法部署运行

具体的舆论争吵就不聊了,看到这条新闻的时候,我感兴趣的就是这个PULSE算法,经过一番了解通俗点来说就是消除马赛克秒变高清人像,听起来好像挺好玩,这么好玩的东西当然要在自己电脑上运行起来了,于是就开始排坑了~

代码下载

代码在github上:https://github.com/adamian98/pulse,首先clone下来,如果特别慢,可以使用gitee导入github库,然后在gitee中下载下来。

代码中有两个数据是需要从google drive中下载的,如果无法下载可以,可以直接迁出我的gitee仓库,里边有已经下载好的数据集,并且代码是可运行成功的

README.md中标明了:

You will need to install cmake first (required for dlib, which is used for face alignment). Currently the code only works with CUDA installed (and therefore requires an appropriate GPU) and has been tested on Linux and Windows. For the full set of required Python packages, create a Conda environment from the provided YAML, e.g.

也就是需要安装cmake,dlib库,以及cuda支持,cuda代表需要nvidia显卡,所以没有N卡的同学也可以退散了,(或许也可以改代码不调用cuda,但我没实现)。

起初,打算在windows上运行起来,发现真的是各种行不通,光安装一个dlib(算法库)都很费劲,编译安装就是报错,还得安装vs,以至于我最一开始放弃运行pulse的想法了,但是我实在是不死心,于是周末又在一台ubuntu系统上重新来过,发现一切都是秒过,直接安装成功,不禁感叹,搞开发还是得linux下。

所以window下的同学也可以退散了,(或许你可以搞定dlib安装,搞定了就可以接着看)。

环境依赖

cmake / c++

sudo apt-get install build-essential cmake
sudo apt-get install libgtk-3-dev
sudo apt-get install libboost-all-dev

python / conda

#建议使用conda,但conda不是必须安装的,主要是解决了包依赖安装即可
#安装conda就不多太详细了,我的python版本使用3.8,估计3.x都可以

#下载Anaconda3
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
bash Anaconda3-2020.02-Linux-x86_64.sh
#进入到pulse代码目录中,创建pulse环境
conda env create -n pulse -f pulse.yml
#激活
conda activate pulse
#conda安装慢可以访问 https://mirror.tuna.tsinghua.edu.cn/help/anaconda/ 使用国内源加快访问下载

dlib

#其实可以直接使用pip install dlib进行安装,但是我安装是一直报错的,如果你也报错的可以先下载下来再进行安装
#dlib安装教程 http://dlib.net/compile.html
#dlib下载连接:http://dlib.net/files/dlib-19.20.tar.bz2,下载完成之后解压,然后进入目录

# Using dlib from Python
python setup.py install

#Using dlib from C++
cd examples
mkdir build
cd build
cmake ..
cmake --build . --config Release

pytorch

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第2张图片

#官网 https://pytorch.org/get-started/locally/

#得到安装命令
conda install pytorch torchvision cudatoolkit=10.2 -c pytorch

cuda

左下角 附加驱动

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第3张图片

然后在附加驱动里边选择专有驱动,点应用更改,安装完成后重启系统

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第4张图片

数据集

文中有两个数据是需要从google drive中下载的,如果无法下载可以,可以直接迁出我的gitee仓库,里边有已经下载好的数据集了,当然我还是建议你使用github的代码。

代码运行

使用pycharm打开项目,如果使用conda 需要要在setting->Project:pulse ->Project Interperter中选择你的conda环境

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第5张图片

可以查看查看几个py文件,如果发现缺失包提示,安装即可,直到所有的包安装完成即可。

到此代码安装工作已经完毕,不过具体的运行并不是直接 运行run.py就可以的。

首先主程序就是run.py ,当你运行他的时候,他会去input文件中寻找png格式的图片,然后运算,结果会保留到runs文件中。但是input中的图片是有要求的(1024*1024),需要经过align_face.py进行面部对齐。所以运行run.py之前,先将你要运算的图片先放到realpics目录中,然后执行align_face.py,然后再执行run.py 。

效果展示

马赛克照片

修复后照片

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第6张图片

实际原图

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第7张图片

擦,直接亚洲脸变成欧洲脸了,怪不得被黑了呢~

要强调的是,通过马赛克重建还原蔡徐坤图像这是不可能的,可以理解为PULSE在人脸库中找到了一张相似的脸,PULSE只是制作了不存在的人的假想面孔。所以pulse目前来说仅仅就是玩玩而已,没什么实际意义,但是亚洲脸变成欧洲脸是我不能接受的,现在我需要的是亚洲脸的训练模型

欢迎关注公众号<无聊看风景>,获取更多有趣(无聊)的技术文章

PULSE: 一秒消除马赛克,有码变无码(含代码部署运行)_第8张图片

你可能感兴趣的:(python)