前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源项目 | 用AI给人像照片换发型和发色(附详细步骤 + 避坑指南)

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

作者头像
Color Space
发布2024-06-04 13:32:35
2300
发布2024-06-04 13:32:35
举报

视觉/图像重磅干货,第一时间送达!

导 读

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

背景介绍

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

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

项目github地址:

代码语言:javascript
复制
https://github.com/ZPdesu/Barbershop

论文地址:

代码语言:javascript
复制
https://zpdesu.github.io/Barbershop/Barbershop.pdf

部署与使用步骤

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

代码语言:javascript
复制
https://huyi-aliang.blog.csdn.net/article/details/122268313?ydreferer=aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTM4MTkzNy9hcnRpY2xlL2RldGFpbHMvMTMyMjgyMDc3

【2】使用Google Colab部署。

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

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

代码语言:javascript
复制
https://colab.research.google.com/#scrollTo=VWAazzVrQjmG

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

下载源码:

代码语言:javascript
复制
!git clone https://github.com/ZPdesu/Barbershop.git

③ 进入根目录:

代码语言:javascript
复制
%cd Barbershop

④ 安装依赖项:

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

代码语言:javascript
复制
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
代码语言:javascript
复制
!pip install -r requirements.txt

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

代码语言:javascript
复制
!pip install Ninja -i https://pypi.tuna.tsinghua.edu.cn/simple

⑤ 人脸预处理:

代码语言:javascript
复制
!python align_face.py

⑥ 进行推理:

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

代码语言:javascript
复制
#(有点耗时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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 OpenCV与AI深度学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档