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


Posted in Python onJune 29, 2021

简介

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

安装

根据PaddlePaddle官网命令安装

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

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快速实现一键抠图功能的全过程

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

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.

import os

os.environ['CUDA_VISIBLE_DEVICES'] = '0'

set CUDA_VISIBLE_DEVICES=0

参考文献

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

总结

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

Python 相关文章推荐
python根据路径导入模块的方法
Sep 30 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
Python中的FTP通信模块ftplib的用法整理
Jul 08 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
python使用turtle绘制分形树
Jun 22 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
Python面向对象进阶学习
May 21 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
tensorflow求导和梯度计算实例
Jan 23 Python
python爬虫开发之urllib模块详细使用方法与实例全解
Mar 09 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
Apr 21 Python
总结python多进程multiprocessing的相关知识
Jun 29 #Python
python 字典和列表嵌套用法详解
Jun 29 #Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
5行Python代码实现一键批量扣图
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
python geopandas读取、创建shapefile文件的方法
总结Pyinstaller打包的高级用法
You might like
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
提取jquery的ready()方法单独使用示例
2014/03/25 Javascript
js实现ArrayList功能附实例代码
2014/10/29 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
利用canvas实现的加载动画效果实例代码
2017/07/05 Javascript
React-intl 实现多语言的示例代码
2017/11/03 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
django 在原有表格添加或删除字段的实例
2018/05/27 Python
python 以16进制打印输出的方法
2018/07/09 Python
基于Python实现定时自动给微信好友发送天气预报
2018/10/25 Python
Python实现对特定列表进行从小到大排序操作示例
2019/02/11 Python
flask框架jinja2模板与模板继承实例分析
2019/08/01 Python
Python如何读写CSV文件
2020/08/13 Python
Python eval函数介绍及用法
2020/11/09 Python
五种Python转义表示法
2020/11/27 Python
Python实现粒子群算法的示例
2021/02/14 Python
英语系毕业生自荐信
2013/10/31 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
消防器材管理制度
2014/01/28 职场文书
市场营销专业大学生职业生涯规划文
2014/03/06 职场文书
党的群众路线教育实践活动个人整改措施范文
2014/11/04 职场文书
见习期个人总结
2015/03/05 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis