不会用Photoshop抠图?Python助你一键“除”人!

640?wx_fmt=gif

导读:看过英剧《黑镜》吗?圣诞特别版《白色圣诞节》中有这样一个场景:其中一个未来科技有自由屏蔽人像的功能,可以让你屏蔽任何一个不想看见或不喜欢的人,然后留下的是一片灰白影像,就像是 Photoshop 软件中的抠图功能应用在了动态场景中。


640?wx_fmt=png


与此不同的是,本文作者则通过在 MS COCO 数据集上使用预先训练好的 Mask R-CNN 模型来自动生成图像中行人的掩码脚本,实现人像屏蔽,并且不需要 GPU 就可以运行这个程序。所以,如果你发现相册里有以前开心合过影但现在讨厌的人,可以让他/她一键变成白底了。此外,你还可以用这个脚本生成多达 80 种不同类型目标的掩码,包括长颈鹿和公交车等事物。


作者:minimaxir

翻译:林椿眄

来源:AI科技大本营(ID:rgznai100)


640?wx_fmt=gif



01 使用方法


可以通过以下命令运行行人掩码脚本:


python3 person_blocker.py -i images / img3.jpg -c'(128,128,128)'-o'bus''truck'


-i / - image:指定的图像文件。

-m / - model:加载预训练好的 COCO 模型权重的路径(默认是当前目录):如果没有或不存在指定路径,模型将自动下载到当前目录(注意:权重文件的大小为 258 MB)。

-c / - color:掩码的颜色,采用引号包装的十六进制或 RGB 3 元组格式(默认是白色)。

-o / - object:要掩码的目标类型列表(或特定对象的 ID)。你可以在 classes.py  中或通过使用 -names 来查看掩码的对象选择(默认值是行人)。

-l / - labeled:保存检测到的对象及其对象 ID 注释的标记图像。

-n / - names:打印目标的类别选项,然后退出。


该脚本输出两张图像:静态图像(双关意图) person_blocked.png 和动画图像 person_blocked.gif。



02 示例


python3 person_blocker.py -i images/img1.jpg


640?wx_fmt=png


python3 person_blocker.py -i images/img2.jpg -c '#c0392b' -o 'giraffe'


640?wx_fmt=png

python3 person_blocker.py -i images/img3.jpg -c '(128, 128, 128)' -o 'bus' 'truck'


640?wx_fmt=png


特定目标的掩码需要两个步骤:在推理模式下运行以获取每个目标 ID,然后掩码这些目标 ID。


python3 person_blocker.py -i images/img4.jpg -l


640?wx_fmt=png


python3 person_blocker.py -i images/img4.jpg -o 1


640?wx_fmt=png



03 安装环境


这个脚本所需的环境配置和 Mask R-CNN 一样:


Python 3.4+

TensorFlow 1.3+

Keras 2.0.8+

Numpy, skimage, scipy, Pillow, cython, h5py


此外,还需要添加 matplotlib 和 imageio 依赖库。


原文链接:

https://github.com/minimaxir/person-blocker


推荐阅读


2018世界杯数据清单:真球迷看球必备,伪球迷速成指南(附完整赛程)

到底需要多少人口,才能找出11个会踢球的?

端午出行大数据:去这几个地方,你就只能看人人人……

各地高考“难度系数”告诉你,天津户口为什么值得抢



Q: 你觉得这比photoshop简单吗?

欢迎留言与大家分享

觉得不错,请把这篇文章分享给你的朋友

转载 / 投稿请联系:baiyu@hzbook.com

更多精彩,请在后台点击“历史文章”查看

640?wx_fmt=jpeg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值