抠图前 vs Python自动抠图后
在平常的工做和生活中,咱们常常会遇到须要抠图的场景,即使是只有一张图片须要抠,也会抠得咱们不耐烦,假若遇到许多张图片须要抠,这时候你的表情应该会颇有趣。python
Python可以成为这样的一种工具:在只有一张图片,须要细致地抠出人物的状况下,能帮你减小抠图步骤;在有多张图片须要抠的状况下,能直接帮你输出这些人物的基本轮廓,虽然不够细致,但也够用了。算法
DeepLabv3+ 是谷歌 DeepLab语义分割系列网络的最新做 ,这个模型能够用于人像分割,支持任意大小的图片输入。若是咱们本身来实现这个模型,那可能会很是麻烦,可是幸运的是,百度的paddle hub已经帮咱们实现了,咱们仅须要加载模型对图像进行分割便可。网络
为了实现这个实验,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
整个步骤分为三步: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自动抠图下载。
不得不认可,谷歌的算法就素厉害啊。只要背景好一点,抠出来的细节都和手动抠的细节不相上下,甚至优于人工手段。
不过在背景和人的颜色不相上下的状况下,会产生一些问题,好比下面这个结果:
背后那个大叔彻底被忽略掉了(求大叔的心里阴影面积)。尽管如此,这个模型是我迄今为止见过的最强抠图模型,没有之一。
咱们的文章到此就结束啦,若是你但愿咱们今天的Python 教程,请持续关注咱们,若是对你有帮助,麻烦在下面点一个赞/在看哦有任何问题均可以在下方留言区留言,咱们都会耐心解答的!
Python实用宝典(pythondict.com)
不仅是一个宝典
欢迎关注公众号:Python实用宝典