[NeurIPS 2022] 通过代码本查找变换器实现鲁棒的盲目人脸修复


面向鲁棒的盲目人脸修复的代码本查找变换器(NeurIPS 2022)


论文 | 项目页面 | 视频

google colab logo Hugging Face Replicate OpenXLab Visitors


周尚晨,陈克康,李崇义,陈长乐


S-Lab,南洋理工大学


⭐ 如果CodeFormer对您的图片或项目有帮助,请帮忙给这个仓库点个星。谢谢!🤗

 更新

 待办事项


  • 添加训练代码和配置文件

  • 添加人脸修复的检查点和脚本

  • 添加面部着色的检查点和脚本

  • 添加背景图像增强


尝试增强旧照片/修复AI艺术作品

 面部修复



面部颜色增强和修复

 面部修复


依赖和安装

  • Pytorch >= 1.7.1
  • CUDA >= 10.1

  • 其他所需的软件包在 requirements.txt
# git clone this repository
git clone https://github.com/sczhou/CodeFormer
cd CodeFormer

# create new anaconda env
conda create -n codeformer python=3.8 -y
conda activate codeformer

# install python dependencies
pip3 install -r requirements.txt
python basicsr/setup.py develop
conda install -c conda-forge dlib (only for face detection or cropping with dlib)

 快速推断


下载预训练模型:


从[发布 | 谷歌云盘 | OneDrive]下载facelib和dlib预训练模型到 weights/facelib 文件夹。您可以手动下载预训练模型,或者通过运行以下命令进行下载。

python scripts/download_pretrained_models.py facelib
python scripts/download_pretrained_models.py dlib (only for dlib face detector)


从[发布 | 谷歌云盘 | OneDrive]下载CodeFormer预训练模型到 weights/CodeFormer 文件夹。您可以手动下载预训练模型,或者通过运行以下命令进行下载。

python scripts/download_pretrained_models.py CodeFormer

 准备测试数据


您可以将测试图像放在 inputs/TestWhole 文件夹中。如果您想要在裁剪和对齐的人脸上进行测试,可以将它们放在 inputs/cropped_faces 文件夹中。您可以通过运行以下命令获取裁剪和对齐的人脸:

# you may need to install dlib via: conda install -c conda-forge dlib
python scripts/crop_align_face.py -i [input folder] -o [output folder]

 测试


[注意] 如果您想在论文中比较CodeFormer,请运行以下命令,指示 --has_aligned (用于裁剪和对齐的人脸),因为对整个图像进行处理会涉及面部背景融合的过程,可能会损坏边界上的头发纹理,导致不公平的比较。


忠诚度权重w的取值范围为[0, 1]。通常,较小的w倾向于产生更高质量的结果,而较大的w则会产生更高忠诚度的结果。结果将保存在 results 文件夹中。


🧑🏻面部修复(裁剪和对齐面部)

# For cropped and aligned faces (512x512)
python inference_codeformer.py -w 0.5 --has_aligned --input_path [image folder]|[image path]


整体图像增强

# For whole image
# Add '--bg_upsampler realesrgan' to enhance the background regions with Real-ESRGAN
# Add '--face_upsample' to further upsample restorated face with Real-ESRGAN
python inference_codeformer.py -w 0.7 --input_path [image folder]|[image path]

🎬 Video Enhancement

# For Windows/Mac users, please install ffmpeg first
conda install -c conda-forge ffmpeg
# For video clips
# Video path should end with '.mp4'|'.mov'|'.avi'
python inference_codeformer.py --bg_upsampler realesrgan --face_upsample -w 1.0 --input_path 


🌈 面部上色(裁剪和对齐的脸部)

# For cropped and aligned faces (512x512)
# Colorize black and white or faded photo
python inference_colorization.py --input_path [image folder]|[image path]


🎨 人脸修复(裁剪和对齐的脸部)

# For cropped and aligned faces (512x512)
# Inputs could be masked by white brush using an image editing app (e.g., Photoshop) 
# (check out the examples in inputs/masked_faces)
python inference_inpainting.py --input_path [image folder]|[image path]

 培训


培训命令可以在文档中找到:English | 简体中文。

 引用


如果我们的工作对您的研究有用,请考虑引用:

@inproceedings{zhou2022codeformer,
    author = {Zhou, Shangchen and Chan, Kelvin C.K. and Li, Chongyi and Loy, Chen Change},
    title = {Towards Robust Blind Face Restoration with Codebook Lookup TransFormer},
    booktitle = {NeurIPS},
    year = {2022}
}

 许可证


该项目在NTU S-Lab License 1.0下获得许可。重新分发和使用应遵循此许可证。

 确认


该项目基于BasicSR。部分代码来自Unleashing Transformers、YOLOv5-face和FaceXLib。我们还采用了Real-ESRGAN来支持背景图像增强。感谢他们出色的工作。

 联系


如果您有任何问题,请随时联系我,邮箱为 shangchenzhou@gmail.com