开源项目 | 用AI给人像照片换发型和发色(附详细步骤 + 避坑指南)

Color Space 2024-06-15 11:01:02 阅读 53

导  读

    本文主要介绍使用开源项目Barbershop给人像照片换发型和发色(附详细步骤 + 避坑指南)。

背景介绍

图片

    摘要:由于光照、几何和部分遮挡的复杂关系会导致图像不同部分之间的耦合,因此无缝混合多个图像的特征极具挑战性。尽管最近关于 GAN 的研究能够合成真实的头发或面部,但仍然很难将它们组合成单个、连贯且合理的图像,而不是一组不连贯的图像块。我们提出了一种基于 GAN 反转的图像混合新颖解决方案,特别是针对发型转移问题。我们提出了一种新的图像混合潜在空间,它能够更好地保留细节和编码空间信息,并提出一种新的 GAN 嵌入算法,它能够稍微修改图像以符合常见的分割掩码。我们新颖的表示方法能够从多个参考图像中传输视觉属性,包括痣和皱纹等特定细节,并且因为我们在潜在空间中进行图像混合,所以我们能够合成连贯的图像。我们的方法避免了其他方法中存在的混合伪影,并找到全局一致的图像。我们的结果表明,用户研究中的当前技术水平有了显著改进,95% 以上的用户更喜欢我们的混合解决方案。

    开源项目名为Barbershop,可以将一张照片中人的发型和发色换成参考照片的发型和发色,效果较为逼真。

    项目github地址:

https://github.com/ZPdesu/Barbershop

    论文地址:

https://zpdesu.github.io/Barbershop/Barbershop.pdf

图片

 

部署与使用步骤

    【1】本地部署。可以参考下面链接:

https://huyi-aliang.blog.csdn.net/article/details/122268313?ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTM4MTkzNy9hcnRpY2xlL2RldGFpbHMvMTMyMjgyMDc3

    【2】使用Google Colab部署。

    如何使用Colab白嫖GPU算力,大家可以参考以前的文章或者自行百度。

    Google Colab免费使用的GPU加速训练测试

https://colab.research.google.com/#scrollTo=VWAazzVrQjmG

图片

    ① 设置环境,选择GPU和Python版本:

图片

    ② 下载源码:

!git clone https://github.com/ZPdesu/Barbershop.git

图片

   ③ 进入根目录:

%cd Barbershop

图片

   ④ 安装依赖项:

    源码中是用yaml直接创建环境,environment/environment.yaml ,这里我们需要将environment.yaml文件中需要pip的包复制出来,粘贴进新建的一个requirements.txt中,这里我已经在本地电脑建好,直接上传到Barbershop根目录。requirements.txt内容如下:

beautifulsoup4==4.10.0cachetools==4.2.4charset-normalizer==2.0.7click==8.0.3clip==0.1.0deprecated==1.2.13dlib==19.22.1et-xmlfile==1.1.0filelock==3.4.0ftfy==6.0.3gdown==4.2.0google-api-core==1.31.4google-api-python-client==2.7.0google-auth==1.35.0google-auth-httplib2==0.1.0googleapis-common-protos==1.54.0httplib2==0.19.1huggingface-hub==0.1.2idna==3.3joblib==1.1.0oauth2client==4.1.3opencv-python==4.5.4.58openpyxl==3.0.7protobuf==3.19.1pyasn1==0.4.8pyasn1-modules==0.2.8pyqt5==5.13.0pyqt5-qt5==5.15.2pyqt5-sip==12.9.0pysocks==1.7.1python-magic==0.4.24pytorch-fid==0.2.1pytorch-msssim==0.2.1pytz==2021.3qdarkgraystyle==1.0.2qdarkstyle==3.0.2regex==2021.11.2requests==2.26.0rsa==4.8sacremoses==0.0.46scikit-learn==1.4.0soupsieve==2.3.1threadpoolctl==3.0.0tokenizers==0.10.3torchdiffeq==0.2.2tqdm==4.62.3transformers==4.12.3uritemplate==3.0.1urllib3==1.26.7wrapt==1.13.3ninja==1.11.1.1

!pip install -r requirements.txt

图片

    大约需要10分钟左右安装完成,如果遇到个别包版本冲突或异常可使用清华的镜像安装:

!pip install Ninja -i https://pypi.tuna.tsinghua.edu.cn/simple

   ⑤ 人脸预处理:

!python align_face.py

图片

   ⑥ 进行推理:

# 运行可能提示ffhq.pt缺失,可以下载下来放到pretrained_models中即可# !git clone https://drive.google.com/uc?id=1AT6bNR2ppK8f2ETL_evT27f3R_oyWNHS

#(有点耗时GPU跑10-20分钟)!python main.py --im_path1 90.png --im_path2 15.png --im_path3 117.png --sign realistic --smooth 5

    输入图像90.png:

图片

    发型参考图像15.png:

图片

    发色参考图像117.png:

图片

    处理后生成的mask图:

图片

    处理后生成的结果图:

图片

耗时18分钟

图片

    尝试下其他图片的效果(左1输入,中间参考,右1输出):

图片

图片

图片

可能遇到的报错:unexpected EOF, expected 455433 more bytes. The file might be corrupted.

解决方法:删除ffhq.pt重新上传,注意大小大约126M



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。