返回顶部
首页 > 资讯 > 后端开发 > Python >用Python代码实现一键批量扣图
  • 356
分享到

用Python代码实现一键批量扣图

2023-06-20 12:06:21 356人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“用python代码实现一键批量扣图”,在日常操作中,相信很多人在用Python代码实现一键批量扣图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用Python代码实现一键批量扣图”的疑惑有所

这篇文章主要介绍“用python代码实现一键批量扣图”,在日常操作中,相信很多人在用Python代码实现一键批量扣图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用Python代码实现一键批量扣图”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在日常生活或者工作中,经常会遇到想将某张照片中的人物抠出来,然后拼接到其他图片上去。专业点的人可以使用 PhotoShop 的“魔棒”工具进行抠图,非专业人士则使用各种美图 APP 来实现,但是这两类方式毕竟处理能力有限,一次只能处理一张图片,而且比较复杂的图像可能耗时较久。那今天就来向大家展示第三种扣图方式——用 Python代码来实现 一键批量抠图。

1. 准备工作- 安装paddlepaddle

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

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

它的安装比较简单,官网首页就有安装指引,可以通过「安装」菜单,查找到各个系统安装详细及注意事项,如下图所示,我们这里根据官网的安装指引,使用 pip 方式来安装 CPU 版本。

用Python代码实现一键批量扣图

本文以MacOS系统为例:

我们首先执行以下命令安装(推荐使用百度源)::

python3 -m pip install paddlepaddle -i Https://mirror.baidu.com/pypi/simple

或者:

python3 -m pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple

从安装过程中,可以看到在安装paddlepaddle库时,需要安装如下依赖库:

Installing collected packages: pathlib, click, joblib, regex, tqdm, nltk, gast, rarfile, pyyaml, funcsigs, paddlepaddle  Running setup.py install for pathlib ... done  Running setup.py install for regex ... done  Running setup.py install for nltk ... done  Running setup.py install for rarfile ... done  Running setup.py install for pyyaml ... doneSuccessfully installed click-7.1.2 funcsigs-1.0.2 gast-0.3.3 joblib-0.14.1 nltk-3.5 paddlepaddle-1.8.0 pathlib-1.0.1 pyyaml-5.3.1 rarfile-3.1 regex-2020.5.7 tqdm-4.46.0

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

➜  ~ python3Python 3.7.4 (default, Jul  9 2019, 18:15:00)[Clang 10.0.0 (clang-1000.11.45.5)] on darwinType "help", "copyright", "credits" or "license" for more infORMation.>>> import paddle.fluid>>> paddle.fluid.install_check.run_check()Running Verify Fluid Program ...Your Paddle Fluid works well on SINGLE GPU or CPU.W0512 17:41:31.037240 2844976000 build_strategy.cc:170] fusion_group is not enabled for windows/MacOS now, and only effective when running with CUDA GPU.W0512 17:41:31.043959 2844976000 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.Your Paddle Fluid works well on MUTIPLE GPU or CPU.Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now

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

2. 准备工作- 安装paddlehub

要实现本文的一键批量扣图需求,需要借助PaddleHub人像分割模型来实现。

PaddleHub 是基于 PaddlePaddle 开发的预训练模型管理工具,可以借助预训练模型更便捷地开展迁移学习工作,目前的预训练模型涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。

PaddleHub官网:https://www.paddlepaddle.org.cn/hub

PaddleHub项目地址:https://GitHub.com/PaddlePaddle/PaddleHub

更多PaddleHub预训练模型教程合集课程可见:https://aistudio.baidu.com/aistudio/course/introduce/1070

介绍完了项目,接下来我们开始在线安装 paddlehub :

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

或者按指定版本安装:

pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

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

3. 一键扣图代码实现

我们的实现步骤很简单:

  • 导入模块

  • 加载模型

  • 获取图片文件

  • 调用模块抠图

其中扣图功能主要采用PaddleHub DeepLabv3+模型deeplabv3p_xception65_humanseg

下面我们看具体扣图代码实现(demo.py):

import osimport paddlehub as hub # 加载模型humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')  base_dir = os.path.abspath(os.path.dirname(__file__)) # 获取当前文件目录path = os.path.join(base_dir, 'images/')# 获取文件列表files = [path + i for i in os.listdir(path)]  print(files)# 抠图results = humanseg.segmentation(data={'image': files})  for result in results:    print(result)

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

其中示例 images 目录下放了9张图片,为了兼顾不同读者喜好的口味,示例图片中既包括了帅哥,也有美女哦,并且将他们缩略图放大了,如下:

用Python代码实现一键批量扣图

运行程序后,上述示例代码运行结果如下所示。

用Python代码实现一键批量扣图

运行成功后,在 humanseg_output 目录下生成了9张图片,同样的,扣图的结果如下所示:

用Python代码实现一键批量扣图

我们可以看到程序将每张图片中的人物(可以是一个人,也可以是多个人)识别出来,并且抠出来成图,背景是白色。虽然有些细节处还有些许瑕疵,但是看起来还算不错。

4. 需要注意的坑

在运行示例代码时,如果没有单独安装模型deeplabv3p_xception65_humanseg,默认会自动在执行前进行安装。但安装完成后,执行结果并没有生成扣图结果及humanseg_output目录,输出结果类似如下所示:

用Python代码实现一键批量扣图

正常情况下,在生成扣图数据,打印results时,应该是类似如下结构才对:

用Python代码实现一键批量扣图

可以通过单独安装模型并指定安装版本来解决。

hub install deeplabv3p_xception65_humanseg==1.0.0

具体原因没有细究,默认自动安装模型时,版本为1.2.0,猜测由于还是模型版本不兼容问题导致。

5. 总结

本文基于 paddlepaddle 平台,利用PaddleHub DeepLabv3+模型(deeplabv3p_xception65_humanseg),使用简单的五行代码就实现了批量抠图。有些读者可能会想,上述示例中提供的代码行数不止五行代码吧,在上述示例中,真正实现扣图的主代码其实只需要下面五行:

humanseg = hub.Module(name='deeplabv3p_xception65_humanseg')  base_dir = os.path.abspath(os.path.dirname(__file__))path = os.path.join(base_dir, 'images/')files = [path + i for i in os.listdir(path)]  results = humanseg.segmentation(data={'image': files})

利用PaddleHub DeepLabv3+模型 不仅可以实现一键扣图,还可以进行图片合成,视频合成等。利用好它不仅解放了人的双手和双眼,而且为某些程序猿/程序媛的装逼工具箱提供了一件宝器。下次如果碰到某个女生或者闺蜜在为抠图发愁,别忘了掏出神器,赢得芳心哦!

paddlepaddle作为一款开源的深度学习平台,本文介绍的扣图训练模型只是其中的冰山一角,实战训练预测模型种类还远远不止,更多的场景结合,读者们可自行挖掘。

到此,关于“用Python代码实现一键批量扣图”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 用Python代码实现一键批量扣图

本文链接: https://lsjlt.com/news/296522.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 用Python代码实现一键批量扣图
    这篇文章主要介绍“用Python代码实现一键批量扣图”,在日常操作中,相信很多人在用Python代码实现一键批量扣图问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”用Python代码实现一键批量扣图”的疑惑有所...
    99+
    2023-06-20
  • 5行Python代码实现一键批量扣图
    目录1. 准备工作- 安装paddlepaddle2. 准备工作- 安装paddlehub3. 一键扣图代码实现4. 需要注意的坑5. 总结今天给大家分享一款Python装逼实用神器。 在日常生活或者工作中,经常会遇...
    99+
    2022-06-02
    Python 批量扣图 Python 扣图
  • Python用20行代码实现批量抠图功能
    目录前言1.准备2.编写代码3.结果分析前言 抠图前 vs Python自动抠图后 在日常的工作和生活中,我们经常会遇到需要抠图的场景,即便是只有一张图片需要抠,也会抠得我们不耐...
    99+
    2024-04-02
  • 怎么用Python代码批量抠图
    这篇文章主要讲解了“怎么用Python代码批量抠图”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python代码批量抠图”吧!1.准备为了实现这个实验,Python是必不可少的,如果你...
    99+
    2023-06-16
  • Python实现一键抠图的示例代码
    目录需求来源实现方法需求来源 好友 A:橡皮擦,可否提供网页,上传带人像的图片,然后可以直接抠图,最好直接生成 PNG 图片下载。 橡皮擦:每天需要调用多少次? 好友 A:大概 10...
    99+
    2024-04-02
  • 如何使用五行Python代码轻松实现批量抠图
    目录前言准备工作代码实现补充:可能遇到的坑总结前言 你是否曾经想将某张照片中的人物抠出来,然后拼接到其他图片上去,从而可以即使你在天涯海角,我也可以到此一游? 专业点的人使用 Pho...
    99+
    2024-04-02
  • Python一键实现PDF文档批量转Word
    目录实现效果环境准备代码实现无论是在工作还是学习当中,大家都会遇到这样一个问题,将“PDF当中的内容(文本和图片)转换为Word的格式”,也就是说从只读转换成...
    99+
    2024-04-02
  • Python批量实现word中查找关键字的示例代码
    目录 一、背景二、开发环境三、实现代码 一、背景 在日常办公和文档处理中,我们常常需要在大量的Word文档中查找特定的关键字,然后进行接下来的操作,比如关键字替换...
    99+
    2023-08-08
    Python word查找关键字 Python 查找关键字
  • 用Python实现批量生成法务函代码
    目录情境问题代码实现:总结情境问题 小王是一名法务专员,工作中会处理所在公司的侵权事件并向侵权方发送法务函。 他会按照【法务函模板.docx】 Word 文件给【封号名单.xlsx】...
    99+
    2024-04-02
  • Python实现批量翻译的示例代码
    目录截图源码Translator.pyLog.pyUtils.py简单的使用案例Python版本截图 源码 Translator.py #!/usr/bin/python # -*...
    99+
    2024-04-02
  • Python实现IP代理批量采集的示例代码
    目录开发环境 模块使用 基本流程(思路)一. 数据来源分析二. 代码实现步骤过程代码开发环境  python 3.8 pycharm 模块使用 ...
    99+
    2024-04-02
  • python实现图片批量压缩
    目录第一种 一:安装包二:导入包三:获取图片文件的大小四:输出文件夹下的文件五:压缩文件到指定大小,我期望的是150KB,step和quality可以修改到最合适的数值六:...
    99+
    2024-04-02
  • [Python]用python实现批量/
      针对前面的代码 http://lxsym.blog.51cto.com/1364623/1065854,还存在的问题进行了改善:     1、去掉明文密码,通过交互输入密码     2、通过传参执行相关命令,增加灵活...
    99+
    2023-01-31
    批量 Python python
  • Python批量爬虫下载PDF文件代码实现
    本文的背景是:大学关系很好的老师问我能不能把Excel中1000个超链接网址对应的pdf文档下载下来。虽然可以手动一个一个点击下载,但是这样太费人力和时间了。我想起了之前的爬虫经验,给老师分析了一下可...
    99+
    2023-09-27
    python 爬虫 pdf
  • Python实现批量文件整理的示例代码
    目录引言 一、准备工作二、制作 excel 的文件清单三、文件的批量重命名四、文件的批量删除引言  批量文件整理一直是日常工作中令人头疼的事,使用 Python 进行大批量文件整理,...
    99+
    2024-04-02
  • Python 代码一键转流程图---python=>flowchart-dsl=>流程图
    简介: 这个项目是基于大名鼎鼎的 flowchart.js。 下面贴几张运行图片:  如果直接输入dsl代码,再进行转化就可以很好的画出流程图       flowchart.js 如果你使用 Typora,可能知道在 Typora ...
    99+
    2023-10-02
    流程图
  • bat和python批量重命名文件的实现代码
    最近从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),现在我也下载完了这些文件,也有这些文件的列表,就是不能一个一个的把文件给重命名吧所以从网上找了这几个脚本。 一、使用bat脚本...
    99+
    2022-06-04
    批量 重命名 代码
  • 如何利用一行python代码实现灰度图抠图
    这篇“如何利用一行python代码实现灰度图抠图”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何利用一行python代码实...
    99+
    2023-06-30
  • Python批量改变图片名字的示例代码
    目录一、系统自带的快捷改名二、用Python按要求改名三、在原有的图片上进行修改总结一、系统自带的快捷改名 1、打开对应的图片文件 2、全选后右击重命名 3、输入:Cat 注意...
    99+
    2024-04-02
  • python批量压缩图片的脚本代码分享
    本篇文章和大家了解一下python批量压缩图片的脚本代码分享。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。简介用Python批量压缩图片,把文件夹或图片直接拖入即可需要 NeedsPython 3Pillow (用pip...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作