Python快速实现一键抠图功能的全过程

时间:2022-01-25 10:45:18

简介

使用百度深度学习框架paddlepaddle对人像图片进行自动化抠图

安装

根据paddlepaddle官网命令安装

Python快速实现一键抠图功能的全过程

?
1
2
pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple
pip install paddlehub -i https://mirror.baidu.com/pypi/simple

初试

1.jpg
Python快速实现一键抠图功能的全过程

2.jpg
Python快速实现一键抠图功能的全过程

3.jpg
Python快速实现一键抠图功能的全过程

4.jpg
Python快速实现一键抠图功能的全过程

5.jpg
Python快速实现一键抠图功能的全过程

?
1
2
3
4
5
6
7
8
import paddlehub as hub
from pathlib import path
 
paths = [str(i) for i in path('.').glob('*.jpg')]  # 当前路径下所有.jpg文件
human_seg = hub.module(name='deeplabv3p_xception65_humanseg')
results = human_seg.segmentation(paths=paths, visualization=true, output_dir='output')
# results = human_seg.segmentation(paths=paths, use_gpu=true, visualization=true, output_dir='output')  # 使用gpu
print(results)

代码会自动下载图像分割模型deeplabv3p_xception65_humansegc:\users\administrator\.paddlehub\modules

效果

文件名 原图 效果
1.jpg Python快速实现一键抠图功能的全过程 Python快速实现一键抠图功能的全过程
2.jpg Python快速实现一键抠图功能的全过程 Python快速实现一键抠图功能的全过程
3.jpg Python快速实现一键抠图功能的全过程 Python快速实现一键抠图功能的全过程
4.jpg Python快速实现一键抠图功能的全过程 Python快速实现一键抠图功能的全过程
5.jpg Python快速实现一键抠图功能的全过程 Python快速实现一键抠图功能的全过程

详解

人像分割api

?
1
2
3
4
5
6
def segmentation(images=none,
                 paths=none,
                 batch_size=1,
                 use_gpu=false,
                 visualization=false,
                 output_dir='humanseg_output')

参数

  • images(list[numpy.ndarray]):图片数据,bgr格式
  • paths(list[str]):图片路径
  • batch_size(int):批量处理数量
  • use_gpu(bool):是否使用 gpu
  • visualization(bool):是否将识别结果保存为图片
  • output_dir(str):图片保存路径

遇到的坑

1. 报错runtimeerror: environment variable cuda_visible_devices is not set correctly. if you wanna use gpu, please set cuda_visible_devices as cuda_device_id.

?
1
2
3
import os
 
os.environ['cuda_visible_devices'] = '0'

?
1
set cuda_visible_devices=0

参考文献

一款python实用神器,5 行 python 代码 实现一键批量扣图

总结

到此这篇关于python快速实现一键抠图功能的文章就介绍到这了,更多相关python一键抠图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/lly1122334/article/details/118196565