python修图库和ps那个方便_比PS还好用!Python 20行代码批量抠图

本文介绍了如何使用Python结合DeepLabv3+模型进行批量抠图,通过20行代码实现自动化抠图,对比传统手动抠图,展示其在多图处理上的便利性。借助百度PaddleHub,无需复杂实现,只需安装相关库,即可完成人像分割任务。尽管在某些特定场景下可能存在不足,但整体效果显著。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

288a56924c5cdc384e2c19450d8a8fc6.png

776edb47ea5e59906a192028845c7c67.png 抠图前 vs Python自动抠图后

在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐烦,倘若遇到许多张图片需要抠,这时候你的表情应该会很有趣。

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

DeepLabv3+ 是谷歌 DeepLab语义分割系列网络的最新作 ,这个模型可以用于人像分割,支持任意大小的图片输入。如果我们自己来实现这个模型,那可能会非常麻烦,但是幸运的是,百度的paddle hub已经帮我们实现了,我们仅需要加载模型对图像进行分割即可。

1.准备

为了实现这个实验,Python是必不可少的,如果你还没有安装Python,可以关注文末的微信公众号获取下载安装指南

然后,我们需要安装baidu的paddlepaddle, 官方网站就有详细的指引:

https://www.paddlepaddle.org.cn/install/quick

4a6897c2430e7990e32670ae83f5f4e2.png

根据你自己的情况选择这些选项,最后一个CUDA版本,由于本实验不需要训练数据,也不需要太大的计算量,所以直接选择CPU版本即可。选择完毕,下方会出现安装指引,不得不说,Paddlepaddle这些方面做的还是比较贴心的(小声bb:就是名字起的不好)。

4e10733715e0890f2483590bf4a3e1a4.png

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

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

还需要安装paddlehub:

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

2.编写代码

整个步骤分为三步:

加载模型

指定待抠图的图片目录

抠图

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的文件夹。这里面存放的是已经抠图成功的图片。

bf47a315057d5063fdd77d9c74796962.png

3.结果分析

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

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

0eae0a772b8a3a4b57817de4a63cd45f.png

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值