比PS还好用!Python 20行代码批量抠图


抠图前 vs Python自动抠图后

在平常的工做和生活中,咱们常常会遇到须要抠图的场景,即使是只有一张图片须要抠,也会抠得咱们不耐烦,假若遇到许多张图片须要抠,这时候你的表情应该会颇有趣。python

Python可以成为这样的一种工具:在只有一张图片,须要细致地抠出人物的状况下,能帮你减小抠图步骤;在有多张图片须要抠的状况下,能直接帮你输出这些人物的基本轮廓,虽然不够细致,但也够用了。算法

DeepLabv3+ 是谷歌 DeepLab语义分割系列网络的最新做 ,这个模型能够用于人像分割,支持任意大小的图片输入。若是咱们本身来实现这个模型,那可能会很是麻烦,可是幸运的是,百度的paddle hub已经帮咱们实现了,咱们仅须要加载模型对图像进行分割便可。网络

1.准备

为了实现这个实验,Python是必不可少的,若是你尚未安装Python,建议阅读咱们的这篇文章哦:超详细Python安装指南app

而后,咱们须要安装百度的paddlepaddle, 进入他们的官方网站就有详细的指引:
https://www.paddlepaddle.org.cn/install/quick工具

根据你本身的状况选择这些选项,最后一个CUDA版本,因为本实验不须要训练数据,也不须要太大的计算量,因此直接选择CPU版本便可。选择完毕,下方会出现安装指引,不得不说,Paddlepaddle这些方面作的仍是比较贴心的(就是名字起的很差)。网站

要注意,若是你的Python3环境变量里的程序名称是Python,记得将语句改成Python xxx,以下进行安装:ui

python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple

还须要安装paddlehub:url

pip install -i https://mirror.baidu.com/pypi/simple paddlehub

2.编写代码

整个步骤分为三步:spa

**1.加载模型
2.指定待抠图的图片目录
3.抠图
**3d

import os
import sys
import paddlehub as hub
 
# 1.加载模型
humanseg = hub.Module(name="deeplabv3p_xception65_humanseg")
 
# 2.指定待抠图图片目录
path = './source/'
files = []
dirs = os.listdir(path)
for diretion in dirs:
    files.append(path + diretion)
 
# 3.抠图
results = humanseg.segmentation(data={"image": files})
 
for result in results:
    print(result['origin'])
    print(result['processed'])

很少很多一共20行代码。抠图完毕后会在本地文件夹下产生一个叫作humanseg_output的文件夹。这里面存放的是已经抠图成功的图片。

本文20行代码及全部图片,请在公众号后台回复:Python自动抠图下载。

3.结果分析

不得不认可,谷歌的算法就素厉害啊。只要背景好一点,抠出来的细节都和手动抠的细节不相上下,甚至优于人工手段。

不过在背景和人的颜色不相上下的状况下,会产生一些问题,好比下面这个结果:

背后那个大叔彻底被忽略掉了(求大叔的心里阴影面积)。尽管如此,这个模型是我迄今为止见过的最强抠图模型,没有之一。

咱们的文章到此就结束啦,若是你但愿咱们今天的Python 教程,请持续关注咱们,若是对你有帮助,麻烦在下面点一个赞/在看哦有任何问题均可以在下方留言区留言,咱们都会耐心解答的!


​Python实用宝典(pythondict.com)
不仅是一个宝典
欢迎关注公众号:Python实用宝典

Python实用宝典

相关文章
相关标签/搜索