在低质量条件下捕获的人脸图像通常会遭受各种退化,如噪声、模糊等。恢复这些图像是一项具有挑战性的任务。代码形成器(码本查找变换器)是一种人脸恢复模型,它将人脸的低质量图像作为输入,并预测人脸的高质量图像。
本教程解释了如何在Linux的Docker容器中安装CodeFormer。命令已经在Ubuntu上测试过了。
准备环境
确保您已经在系统中安装了Docker。如果您使用的是Ubuntu,安装说明可以在邮政.
创建Docker图像
创造Dockerfile并增加以下内容:
FROM nvidia/cuda:12.0.0-runtime-ubuntu22.04
WORKDIR /codeformer
RUN apt-get update \
&& apt-get install --no-install-recommends -y \
libgl1-mesa-glx libglib2.0-0 python3 python3-pip git \
&& git clone https://github.com/sczhou/CodeFormer.git /codeformer \
&& pip3 install -r requirements.txt \
&& python3 basicsr/setup.py develop \
&& python3 scripts/download_pretrained_models.py facelib \
&& python3 scripts/download_pretrained_models.py CodeFormer \
&& apt-get purge --autoremove -y git \
&& rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["python3", "inference_codeformer.py"]
这nvidia/cuda用作基础图像。所以,要确保系统上有NVIDIA显卡。
运行命令创建Docker映像:
docker build -t codeformer .
测试代码生成器
创建存储输入图像的目录:
mkdir ~/inputs
下载样本图像:
curl -o ~/inputs/test.jpg https://raw.githubusercontent.com/sczhou/CodeFormer/master/inputs/whole_imgs/03.jpg
在CodeFormer容器中运行命令以执行面部恢复:
docker run -it --rm
-v ~/inputs:/codeformer/inputs
-v ~/results:/codeformer/results
codeformer -w 0.5 --input_path inputs/test.jpg
输出保存在~/results目录。
很少人脸恢复结果使用的图像来自LFW数据集:

删除Docker图像
要删除CodeFormer映像,请运行以下命令:
docker rmi codeformer