点击上方“Python高校”,关注

文末干货立马到手

你是否曾经想将某张照片中的人物抠出来,然后拼接到其他图片上去,从而可以即使你在天涯海角,我也可以到此一游?

专业点的人使用 PhotoShop 的“魔棒”工具可以抠图,非专业人士可以使用各种美图 APP 来实现,但是他们毕竟处理能力有限,一次只能处理一张图片,而且比较复杂的图像可能耗时较久。

今天我来向大家展示第三种途径——用 Python 一键批量抠图。

准备工作

既然要装逼,准备工作是少不了的。所谓“站在巨人的肩膀上,做事事半功倍”,我们这里的“巨人”就是 paddlepaddle 了,中文名称叫“飞桨”,那么这个 paddlepaddle 是什么呢?

它是“源于产业实践的开源深度学习平台,致力于让深度学习技术的创新与应用更简单”,直白点就是我帮你实现了深度学习底层框架,你只要有创意就可以在我平台上运用少量简单代码轻松实现。

它的官网是 https://www.paddlepaddle.org.cn/ 。

它的安装也比较简单,官网首页就有安装指引,我们这里根据官网的安装指引,使用 pip 方式来安装 CPU 版本。

我们首先执行语句:

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

安装成功后,我们在 python 环境中测试一下是否安装成功(这个也是按照官网指引来做),我们切换到 python 环境,运行如下代码:

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddle.fluid
>>> paddle.fluid.install_check.run_check()
Running Verify Paddle Program ...
Your Paddle works well on SINGLE GPU or CPU.
I0506 21:47:48.657404 2923565952 parallel_executor.cc:440] The Program will be executed on CPU using ParallelExecutor, 2 cards are used, so 2 programs are executed in parallel.
W0506 21:47:48.658407 2923565952 fuse_all_reduce_op_pass.cc:74] Find all_reduce operators: 2. To make the speed faster, some all_reduce ops are fused during training, after fusion, the number of all_reduce ops is 1.
I0506 21:47:48.658516 2923565952 build_strategy.cc:365] SeqOnlyAllReduceOps:0, num_trainers:1
I0506 21:47:48.659137 2923565952 parallel_executor.cc:307] Inplace strategy is enabled, when build_strategy.enable_inplace = True
I0506 21:47:48.659595 2923565952 parallel_executor.cc:375] Garbage collection strategy is enabled, when FLAGS_eager_delete_tensor_gb = 0
Your Paddle works well on MUTIPLE GPU or CPU.
Your Paddle is installed successfully! Let's start deep Learning with Paddle now
>>>

看到 Your Paddle is installed successfully 就表示安装成功了。

我们接下来需要使用的是这个平台的 paddlehub 工具,所以我们还需要安装 paddlehub :

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

安装完成后,我们就可以开始运用了。

代码实现

我们的实现步骤很简单:导入模块 -> 加载模型 -> 获取图片文件 -> 调用模块抠图。

下面我们看代码实现:

import os, paddlehub as hub
huseg = hub.Module(name='deeplabv3p_xception65_humanseg') # 加载模型
path = './imgs/' # 文件目录
files = [path + i for i in os.listdir(path)] # 获取文件列表
results = huseg.segmentation(data={'image': files}) # 抠图

我将图片放在代码文件夹的同级目录 imgs 文件夹下,运行代码后,输出的抠图图片会自动放在代码同级目录的 humanseg_output 目录下,文件名称跟原图片的名称相同,但是文件格式是 png 。

我在 imgs 目录下放了5张图片,为了便于展示,我将他们放在一起截图:

运行程序后,在 humanseg_output 目录下生成了5张图片,同样的,我将他们放在一起截图:

我们可以看到程序将每张图片中的人物(可以是一个,也可以是多个)识别出来,并且抠出来成图,背景是白色。

虽然有些细节处还有些许瑕疵,但是看起来还算不错。

本文基于 paddlepaddle 平台,使用简单的五行代码实现了批量抠图,不仅解放了好多人的双手和双眼,而且为某些程序猿/程序媛的装逼工具箱提供了一件宝器。

下次如果碰到某个女生或者闺蜜在为抠图发愁,别忘了掏出神器,赢得芳心哦!

- END -

● 17个Python的牛逼骚操作,你都OK吗?● 用Python爬取Bilibili上二次元妹子的视频● TensorFlow2.0 来了!高呼:“改变一切,力压 PyTorch”!● 22 个最常用的Python包

批量抠图,只需要这几行python代码!相关推荐

  1. python抠图精确到发丝_3行Python代码,实现批量抠图和换底色的方法

    这篇文章主要介绍了3行Python代码实现图像照片抠图和换底色的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起学习学习吧! 这里介绍Remove I ...

  2. python抠图教程_简单几行Python代码实现8秒抠图的AI神器,根本无需PS(附教程)...

    曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用会代码,点两下鼠标就完成了. 感受下这款抠图工具抠地有多精细: 是不是 ...

  3. 3行Python代码,实现批量抠图和换底色的方法

    这篇文章主要介绍了另外一种3行Python代码实现图像照片抠图和换底色的方法,操作更加简单,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起学习学习吧! 这 ...

  4. python自动修图_3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS

    原标题:3 行 Python 代码 5 秒抠图的 AI 神器,根本无需 PS 文 | 苏克 1900@高级农名工 曾几何时,「抠图」是一个难度系数想当高的活儿,但今天要介绍的这款神工具,只要 3 行代 ...

  5. python怎么换背景_3行Python代码实现图像照片抠图和换底色的方法

    1.项目背景 对于不会PS的小伙伴,抠图是一个难度系数想当高的活儿,某宝照片抠图和证件照换底色均价都是5元RMB,所以今天要介绍的这款神工具,只要 3 行代码 5 秒钟就可以完成高精度抠图,甚至都不用 ...

  6. bert获得词向量_只需几行 Python 代码,即可用 BERT 玩转词嵌入!

    作者 | Anirudh_S 译者 | Sambodhi 编辑 | 张之栋 AI 前线导读: 在自然语言处理领域中,诞生于 2018 年末的 BERT 非常的"火热".强悍如 BE ...

  7. 几行python代码批量对身份证加密

    为保证客户个人关键信息安全,需要对客户四要素:身份证号.手机号.姓名.银行卡等要素进行特定加密,以密文的方式进行业务工作的传输.我们都知道md5.sha256.sm3d等加密方式是无法逆向解密的,是一 ...

  8. 10行 python 代码做出哪些酷炫的事情?

    来源 | Python小二 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的 ...

  9. 10 行 Python 代码能实现哪些有趣功能?

    大家好,我是菜鸟哥 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的操作.下 ...

最新文章

  1. 网站优化有什么值得注意的小细节吗?
  2. dataframe的multiIndex在次级index上做筛选
  3. 大厅安排(normal)
  4. Vue2.x总结(1)
  5. HDU-1241-Oil Deposits
  6. NVIDIA 控制面板闪退问题解决
  7. 第1章 iFIX概述
  8. 30+的华为,也在乘风破浪
  9. 【业务办理】广州市户口市内迁移流程
  10. 银行合规程序KYC、CDD、AML和TM
  11. 网站优化中SEO关键词密度到底多少属于合理?
  12. 笔记本硬盘坏了还能恢复数据吗 笔记本硬盘坏了怎么修复
  13. Windows程序设计-剪贴板
  14. 我的java学习之路之Spring
  15. 根据GPS经纬度判断当前所属的市区
  16. “国家自主贡献亚洲交通倡议项目-中国部分”启动:实现交通运输零排放,中国至关重要...
  17. 导数公式(1)-基本求导公式
  18. 计算机应用基础陈建莉,计算机应用基础——Win7+Office2010
  19. 中级经济师 |《经济基础知识》学习思维导图
  20. 深入理解Java中的容器

热门文章

  1. 国科大本科生9个月设计出处理器芯片 可运行Linux系统
  2. 智能网联「中国百强供应商」都有谁?8月30-31日现场揭晓
  3. 换皮后贴吧玩家反馈整理
  4. if-else语句练习
  5. 【openlayers】ol3切换图层源
  6. FAST-LIO2.0代码解析(一)preprocess.h
  7. UE4 射击类游戏 手机端视角随触摸改变方法
  8. 教你写递归——递归三部曲
  9. Arp中间人攻击原理
  10. 七夕界的浪漫之光,向你安利程序员的表白方式