在Linux的Docker容器中安装CodeFormer

在低质量条件下捕获的人脸图像通常会遭受各种退化,如噪声、模糊等。恢复这些图像是一项具有挑战性的任务。代码形成器(码本查找变换器)是一种人脸恢复模型,它将人脸的低质量图像作为输入,并预测人脸的高质量图像。

本教程解释了如何在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数据集:

Face restoration using CodeFormer

删除Docker图像

要删除CodeFormer映像,请运行以下命令:

docker rmi codeformer