一、前言
吹的再好不如直接看結果吧,CVPR最新出爐的開源模型附論文
論文:https://arxiv.org/abs/2004.00626
模型:https://github.com/senguptaumd/Background-Matting
上官方視頻(手動狗頭.jpg)
文末貼上自己跑的證件照效果
二、環境
首先真的要提一下這個模型的環境了,因爲博主的電腦是window10系統,對於這個模型可能不太友好,光是爲了使這個模型能夠成功運行,博主估計查過百條博客又餘,不斷的在tiao bug,真的是難受。。。
最後還要在吐槽一個,tensor的生態是真的亂,各種接口就和下面這張圖一樣,導模型換模板搞到沒脾氣。。
接着說環境,大概是這幾個:
- 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社下載太慢,大家可以用我的鏈接,下來後應該都是這幾個文件:
但這只是目前的,後續還需要添加很多模型和新建一些文件夾。
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
依舊附上博主的鏈接:
下載後的deeplab_model根文件夾下,模型裏面包含的文件有:
重頭戲來了,點開research文件夾,按照官方要求:
cd models/research/
export PYTHONPATH=$PYTHONPATH:pwd
:pwd
/slim
將research和research中的slim文件添加到環境變量在,注,用戶和本機的都要!
3.3 下載官方訓練模型
一共是四個,下載地址:https://drive.google.com/drive/folders/1WLDBC_Q-cA72QC8bB-Rdj53UB2vSPnXv
需要梯子。。。需要梯子,下載的文件如下:
附上博主的鏈接:
接着,就可以開開心心的運行模型了
四、運行結果
首先運行分割的py文件:
python test_segmentation_deeplab.py -i sample_data/input
結果如下:
效果還可以。。
,接着,運行背景替換的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,故,一共有這幾個文件夾
結果如下:
切割圖:
輸出圖:
效果是真的不錯,但也不排除作者自己的模型對自己的數據會比較友好。。。
最後,附上博主自己運行模型扣的切割圖:
,最後證件照的輪廓也大致是這樣,就不放上來了,只能說,還是挺香的吧。。。
博客這幾天會不定時更新,將之前跑模型的坑不斷補上,感興趣的可以點贊關注博主