用python实现人像分割与背景替换
最近看到paddle的人像分割与背景替换,看着挺酷的,不由得想做点尝试。
首先安装paddle
!pip install PaddlePaddle==2.2.1
克隆paddle的人像分割项目
!git clone https://github.com/PaddlePaddle/PaddleSeg
进入项目目录
%cd PaddleSeg
安装依赖
!pip install -r requirements.txt
进入人像分割目录
cd contrib/PP-HumanSeg
下载预训练模型
!python src/download_inference_models.py
但出现了报错
SyntaxError: Non-ASCII character '\xef' in file /data/jupyter/root/3samples/grid_search/PaddleSeg/paddleseg/models/backbones/hrnet.py on line 37, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
发现是因为
/data/jupyter/root/3samples/grid_search/PaddleSeg/paddleseg/models/backbones/hrnet.py
不是UTF-8格式,因此在该文件第一行加上
# coding: utf8
但仍然报错
在该文件加上环境的打印
import sysprint(sys.path)
发现它打印的环境是python2
原来是因为我们的服务器上同时有python2和python3,将代码稍做修改就好了
!python3 src/download_inference_models.py
然后下载数据
!python3 src/download_data.py
接下来我们上传了一张人物图片和一个背景图片如下:
进行背景替换
!python3 src/seg_demo.py \
--config inference_models/portrait_pp_humansegv2_lite_256x144_inference_model_with_softmax/deploy.yaml \
--img_path data/images/human.jpg \
--bg_img_path data/images/backgroud.jpg \
--save_dir data/images_result/portrait_heng_v2_withbg5.jpg
这个效果不是很好,有点买家秀跟卖家秀的感觉。可能是人物颜色太素了,我们换个人物再试了一次。
这个貌似还凑合,对于使用场景还是有要求了,需要在特定场景下使用,并且对模型进行微调才有可能满足实际使用的要求。
- 点赞
- 收藏
- 关注作者
评论(0)