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中的join()方法的使用
May 19 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
python list排序的两种方法及实例讲解
Mar 20 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
Python中矩阵创建和矩阵运算方法
Aug 04 Python
在python里从协程返回一个值的示例
Feb 19 Python
详解python中的线程与线程池
May 10 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
python pptx复制指定页的ppt教程
Feb 14 Python
pandas DataFrame 数据选取,修改,切片的实现
Apr 24 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
python实现局部图像放大
Nov 17 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中array_merge与array+array的区别
2013/06/21 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
JS简单计算器实例
2015/01/20 Javascript
javascript中Function类型详解
2015/04/28 Javascript
Jquery和JS获取ul中li标签的实现方法
2016/06/02 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
Vue之Watcher源码解析(2)
2017/07/19 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
node.js中TCP Socket多进程间的消息推送示例详解
2018/07/10 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
python利用hook技术破解https的实例代码
2013/03/25 Python
Python实现简单字典树的方法
2016/04/29 Python
Php多进程实现代码
2018/05/07 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
会计专业应届生自荐信
2014/02/07 职场文书
门店业绩提升方案
2014/06/08 职场文书
创建绿色学校先进个人材料
2014/08/20 职场文书
毕业生代领毕业材料的授权委托书
2014/09/29 职场文书
社区综治工作汇报
2014/10/27 职场文书
银行给客户的感谢信
2015/01/23 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
python实现自定义日志的具体方法
2021/05/28 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python
mysql数据库隔离级别详解
2022/06/16 MySQL
Golang gRPC HTTP协议转换示例
2022/06/16 Golang