如果有我们一张低阶的、非常模糊的人脸图像,希望把它恢复成高清人脸,然后辨认这个人脸是否是某个人,应该怎么做?
举个例子,某个小区发生了一起盗窃案,我们只是从监控录像中截取到一个非常模糊的人脸,能够用StyleGAN的方法像公安刑侦的“嫌疑人画像”一样,快速地重建高清人脸吗?
或者,我们找到一张20年前的一张照片,只从上面提取到一个非常小的人脸,能够有办法把它复原成一张高清大图吗?
下面介绍两个 github.com 上的开源项目,一个用于重建人脸(PULSE),一个用于调整参数(ALAE)。
(一)PULSE: Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models
PULSE:通过探索生成模型的潜码空间实现自监督图像上采样
这是美国杜克大学发表的研究成果,在 github.com 上的地址是:https://github.com/adamian98/pulse
在 Windows 10 环境下安装并运行,可以遵循下面的步骤:
(1.1)把项目源代码下载下来,解压缩放到自己的工作目录下:
(1.2)编辑用于创建编译环境的依赖描述文件:pulse.yml
可以手工编辑文件,删除每个依赖项后面的特定版本的 hash 值;同时删除运行 conda env create -n pulse -f pulse.yml 时会抛出错误的依赖项,比如:
(1.2.1)将依赖项:
dependencies
- blas=1.0=mkl
修改为:
dependencies
- blas=1.0
(1.2.2)删除若干会报错的依赖项:
...
- libcxx=10.0.0=1
...
- readline=8.0=h1de35cc_0
...
大家也可以直接参考我已经编辑好的pulse.yml文件,如下所示(最后一行是根据我安装的Anaconda目录指定的,大家可以根据自己的安装目录自行修改):
- cffi=1.14.0
- chardet=3.0.4
- cryptography=2.9.2
- cycler=0.10.0
- freetype=2.9.1
- idna=2.9
- intel-openmp=2019.4
- jpeg=9b
- kiwisolver=1.2.0
- libpng=1.6.37
- libtiff=4.1.0
- matplotlib=3.1.3
- matplotlib-base=3.1.3
- mkl=2019.4
- mkl-service=2.3.0
- mkl_fft=