Background-Matting(CVPR2020)教你证件照不花钱

一、前言

注!!!未经博主许可,请勿随意转载博文,若需转载,底下评论或私信博主。

吹的再好不如直接看结果吧,CVPR最新出炉的开源模型附论文
论文:https://arxiv.org/abs/2004.00626
模型:https://github.com/senguptaumd/Background-Matting
上官方视频(手动狗头.jpg)

文末贴上自己跑的证件照效果

二、环境

首先真的要提一下这个模型的环境了,因为博主的电脑是window10系统,对于这个模型可能不太友好,光是为了使这个模型能够成功运行,博主估计查过百条博客有余,不断的在tiao bug,真的是难受。。。
最后还要在吐槽一个,tensor的生态是真的乱,各种接口就和下面这张图一样,导模型换模板搞到没脾气。。
Background-Matting(CVPR2020)教你证件照不花钱_第1张图片
接着说环境,大概是这几个:

  • CUDA=10.0
  • cudnn=7.x(只要是7开头即可)
  • pytorch=1.1.0
  • torchvision=0.3.0
  • tensorflow-gpu==1.14.0
  • numpy==1.17.0(官方是这样,但是我降到了1.16,版本太高会出现bug)
  • opencv-python==3.4.5.20
  • pandas
  • Pillow==6.1
  • scikit-image==0.14.2
  • scipy==1.2.1
  • tqdm
  • tensorboardX

温馨提示!!!尽量按照官方提供的版本进行安装,特别是前五个环境,丝毫不能错。。

三、模型下载

3.1 分割抠图模型下载

首先大家去官网把模型下载下来,如果嫌G社下载太慢,大家可以用我的链接:https://download.csdn.net/download/weixin_45829462/12414302
下来后应该都是这几个文件:
Background-Matting(CVPR2020)教你证件照不花钱_第2张图片
但这只是目前的,后续还需要添加很多模型和新建一些文件夹。

3.2 DeepLab生态模型下载

因为前面以及下来一个tensor1.14了,但是你发现单纯使用它会不断报bug,所以博主回去看了官方文件,发现还有下载另一个tensor版本,原文注解如下:

Background Matting needs a segmentation mask for the subject. We use tensorflow version of Deeplabv3+

故还需要下载deeplab_model,地址如下:https://github.com/tensorflow/models/tree/master/research/deeplab
依旧附上博主的链接:https://download.csdn.net/download/weixin_45829462/12414074
下载后的deeplab_model根文件夹下,模型里面包含的文件有:
Background-Matting(CVPR2020)教你证件照不花钱_第3张图片
重头戏来了,点开research文件夹,按照官方要求:

cd models/research/
export PYTHONPATH=$PYTHONPATH:pwd:pwd/slim

将research和research中的slim文件添加到环境变量在,注,用户和本机的都要!

Background-Matting(CVPR2020)教你证件照不花钱_第4张图片
3.3 下载官方训练模型
一共是四个,下载地址:https://drive.google.com/drive/folders/1WLDBC_Q-cA72QC8bB-Rdj53UB2vSPnXv
需要梯子。。。需要梯子,下载的文件如下:
在这里插入图片描述
附上博主的链接:
https://download.csdn.net/download/weixin_45829462/12414329
https://download.csdn.net/download/weixin_45829462/12414333
https://download.csdn.net/download/weixin_45829462/12414341
https://download.csdn.net/download/weixin_45829462/12414349
接着,就可以开开心心的运行模型了

四、运行结果

首先运行分割的py文件:

python test_segmentation_deeplab.py -i sample_data/input

结果如下:
Background-Matting(CVPR2020)教你证件照不花钱_第5张图片
效果还可以。。
,接着,运行背景替换的py文件:

python test_background-matting_image.py -m real-hand-held -i sample_data/input/ -o sample_data/output/ -tb sample_data/background/0001.png

命令行很长,讲解一下,

  • -m real-hand-held 是你要选择的权重模型,就是博主之前说的下载的那四个
  • -i sample_data/input/ -i指input ,说的是你要处理的图片,包含之前被分割的中间图,以及有人的图,和没有人的背景图
  • -o sample_data/output/ 指输出后的图片存放的文件夹,所以这里需要新建文件加output,故,一共有这几个文件夹
    Background-Matting(CVPR2020)教你证件照不花钱_第6张图片
    结果如下:
    切割图:
    Background-Matting(CVPR2020)教你证件照不花钱_第7张图片
    Background-Matting(CVPR2020)教你证件照不花钱_第8张图片
    输出图:

    效果是真的不错,但也不排除作者自己的模型对自己的数据会比较友好。。。

最后,附上博主自己运行模型扣的切割图:Background-Matting(CVPR2020)教你证件照不花钱_第9张图片

,最后证件照的轮廓也大致是这样,就不放上来了,只能说,还是挺香的吧。。。

博客这几天会不定时更新,将之前跑模型的坑不断补上,感兴趣的可以点赞关注博主

你可能感兴趣的:(mask,tensorflow,深度学习)