开源项目 | 用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.0
cachetools==4.2.4
charset-normalizer==2.0.7
click==8.0.3
clip==0.1.0
deprecated==1.2.13
dlib==19.22.1
et-xmlfile==1.1.0
filelock==3.4.0
ftfy==6.0.3
gdown==4.2.0
google-api-core==1.31.4
google-api-python-client==2.7.0
google-auth==1.35.0
google-auth-httplib2==0.1.0
googleapis-common-protos==1.54.0
httplib2==0.19.1
huggingface-hub==0.1.2
idna==3.3
joblib==1.1.0
oauth2client==4.1.3
opencv-python==4.5.4.58
openpyxl==3.0.7
protobuf==3.19.1
pyasn1==0.4.8
pyasn1-modules==0.2.8
pyqt5==5.13.0
pyqt5-qt5==5.15.2
pyqt5-sip==12.9.0
pysocks==1.7.1
python-magic==0.4.24
pytorch-fid==0.2.1
pytorch-msssim==0.2.1
pytz==2021.3
qdarkgraystyle==1.0.2
qdarkstyle==3.0.2
regex==2021.11.2
requests==2.26.0
rsa==4.8
sacremoses==0.0.46
scikit-learn==1.4.0
soupsieve==2.3.1
threadpoolctl==3.0.0
tokenizers==0.10.3
torchdiffeq==0.2.2
tqdm==4.62.3
transformers==4.12.3
uritemplate==3.0.1
urllib3==1.26.7
wrapt==1.13.3
ninja==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
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。